Commit Graph

1152 Commits

Author SHA1 Message Date
Martin Stein 0c60b312be liports/recipes: api/ and src/python 2018-11-16 15:07:53 +01:00
Ehmry - bc539ce892 Native Solo5 bindings
A shared library implementation of the unikernel middleware.

https://github.com/Solo5/solo5

Fix #2945
2018-11-16 15:07:52 +01:00
Ehmry - 5a4dab88d6 PDF viewer: revert changes to framebuffer model
The PDF viewer can crash under a number of conditions due to changes to
the internal framebuffer model that were made to support mouse wheel
panning. These changes are reverted until the model can be reimplemented
to explicitly support page panning.

Fix #3021
2018-11-16 15:07:52 +01:00
Norman Feske 1a75c5227e Rename wm pkg to motif_wm
This way, we can subsequently introduce a new 'wm' pkg that contains the
window manager only, w/o any hard-wired decorator and layouter.

Issue #3024
2018-11-16 15:07:52 +01:00
Christian Helmuth 61863e2ffb qt5: configurable layouter/decorator in run scripts 2018-11-16 15:07:52 +01:00
Norman Feske a973d9902b gems: flexible window layouter
This commit replaces the former floating_window_layouter with a new
window_layouter component that supports the subdivision of screen space
into columns and rows, the concept of layers, and the principle ability
to store window layout information across reboots. The latter is
accomplished by reflecting the component's internal state as a 'rules'
report to the outside.

Fixes #3031
2018-11-16 14:53:20 +01:00
Martin Stein 51cae1f0a3 Add base lib to tests
For being able to build the tests via source archives, the 'base'
library must be denoted as dependency explicitely in their 'target.mk' file.
This is because when building archives, the API dependencies of used APIs are
not taken into account.
2018-11-16 14:37:19 +01:00
Martin Stein ebdb3c4c32 ada lib: prepare for creation of packages 2018-11-16 14:37:19 +01:00
Stefan Kalkowski 24e6a5ee73 test/memcpy: add Genode's memset to the suite
Ref #3016
2018-11-16 14:37:18 +01:00
Christian Prochaska 7c9e850235 qt5: add typeinfo and vtable symbols to symbol files
Fixes #3025
2018-11-16 14:37:18 +01:00
Christian Helmuth 0867da28a2 depot: update recipe hashes 2018-10-29 09:36:23 +01:00
Ehmry - 3e5ac64ee2 Libc: support monotonic time without RTC
Use the Timer session duration for CLOCK_MONOTONIC and  CLOCK_UPTIME.
Use the Genode::Duration object for passing internal time, it supports
sub-millisecond time and helps disambiguate units of time.

Fix #3018
2018-10-29 09:36:23 +01:00
Ehmry - 6178e378c1 Test libc sleep and gettime in run/libc
Ref #3018
2018-10-29 09:36:22 +01:00
Ehmry - 3e31e2ba53 VFS LwIP: blocking TCP write
Block and loop until application writes are sent or buffered in their
entirety. Do not call "tcp_output" directly, LwIP calls this procedure
internally and calling it again appears to disrupt the LwIP TCP state
machine.

Fix #3017
2018-10-29 09:36:22 +01:00
Josef Söntgen 82fb76c142 libssh: add async event bind patch
Issue #3014.
2018-10-29 09:36:22 +01:00
Josef Söntgen 9ab288d8e3 libports: update libssh to 0.8.4
Issue #3014.
2018-10-29 09:36:22 +01:00
Alexander Boettcher 5446c52c43 base: make Entrypoint placeable on specific cpu
Fixes #3008
2018-10-29 09:36:22 +01:00
Pirmin Duss b112b7b4ce mesa: fix port_prepare on ARCH Linux
Issue #3003
2018-10-29 09:36:22 +01:00
Norman Feske f21493272d test for measuring memcpy throughput (fix #3016) 2018-10-29 09:36:22 +01:00
Martin Stein 304cb290d9 nic_router: rework quota accounting
* Account all RAM/CAP quota of a session except quota for metadata used in
  core. The latter is considered when asking if a session can afford to make
  an operation but it does not get accounted to always be able to pay back all
  quota when a session closes. The general accounting mechanism is moved from
  atop of the allocators down to the level of RAM/RM session operations.
* report statistics about session objects and quota if <report stats="yes"
  quota="yes"/> is configured. (default is yes if <report> is present)

Issue #2953
2018-10-29 09:36:21 +01:00
Christian Prochaska 31ca9d9ad7 libusb: fix page fault after failed USB transfer
Fixes #3002
2018-10-01 10:41:46 +02:00
Ehmry - c697fb6345 Simple bulk TCP test
Send 8 MiB from one socket to another, anticipating short writes and
short reads from sockets.

Fix #2989
2018-09-24 11:18:23 +02:00
Christian Prochaska 1f5a083129 qt5: load nic_drv without dynamic linker on Linux
Fixes #2982
2018-09-13 15:25:25 +02:00
Christian Helmuth 5dcf06d208 depot: update recipe hashes 2018-09-13 15:21:26 +02:00
Martin Stein abe1b98486 nic_router.run: fix resource requests
Raise cap quotas.

Issue #2972
2018-09-13 15:21:11 +02:00
Ehmry - 98380cebda VFS LwIP: do not free TCP PCBs on error
The VFS LwIP plugin is page-faulting on connect error because the LwIP
library frees a failed TCP protocol control block before calling the
error callback, and then the VFS plugin dereferences the PCB to free it
a second time. This problem was caused by a failure to follow
documentation during a transition from a C callback to a C++ method.

Fix #2972
2018-09-13 15:21:11 +02:00
Christian Prochaska 5adb6f0c5f socket_fs: show ioctl FIONREAD error message only once
Fixes #2969
2018-09-13 15:21:10 +02:00
Christian Prochaska 35f61475f5 libc_vfs: don't suspend in 'notify_read_ready()'
When 'notify_read_ready()' is called during 'select()' and fails,
suspending can cause a deadlock when the libc IO response handler becomes
active and calls 'select_notify()', which tries to acquire the
'select callback list lock', which is already acquired by the suspended
'select()' call.

It seems possible to ignore a failed 'notify_read_ready()' call instead of
suspending. When the VFS plugin calls the IO handler later when the
notification request can be processed, the 'select_notify()' call of the
libc IO response handler will eventually call 'notify_read_ready()' again.

Fixes #2970
2018-09-13 15:21:10 +02:00
Ehmry - 874ba409ca Libc: single-user getpwent implementation
Implement the passwd database subroutines with single-user database.
This database is populated with a <passwd/> sub-node of the libc
configuration node. All fields of the "passwd" struct may be specified
with reasonable defaults provided for a "root" user. This allows a
libc-based component to spoof user information for the sake of porting
existing Unix software.

A test is provided at run/libc_getpwent.

Fix #2919
2018-09-13 15:21:10 +02:00
Ehmry - 9f6838ae42 Libc: internal accessor for <libc/> config
Add an internal accessor for the libc configuration node.

Ref #2919
2018-09-13 15:21:10 +02:00
Ehmry - 64a63885d1 VFS: line buffer LOG file-system
Buffer data written to log file handles until newline or overflow.

Ref #2467
Ref #2919
2018-09-13 15:21:10 +02:00
Christian Helmuth 3697f50bd3 qt5: explicit file modification time in tar archives
GNU tar interprets the passed time value in local time by default, which
lead to unstable hashes again. So, now provide a complete date/time
value incl. time zone.

Related to #2842
2018-09-13 14:54:21 +02:00
Norman Feske 2049498af0 depot: update recipe hashes 2018-09-05 11:04:24 +02:00
Christian Helmuth cc311355cd libports: update hash of downloaded fatfs sources (again)
The author updated http://www.elm-chan.org/fsw/ff/arc/ff13b.zip again
with a marginal documentation changes and an additional example.

Issue #2766
2018-09-05 11:04:24 +02:00
Christian Helmuth 20668ccfa3 libports: download bzip2 port from fossies.org
The original bzip.org domain expired.

Issue #2766
2018-09-05 11:04:24 +02:00
Alexander Boettcher 50dcf40f24 acpica: fix regressions (poweroff and semaphore)
introduced by acpica update to version 2018-08-10.

Fixes #2935
2018-09-05 11:04:23 +02:00
Ehmry - fcbe060096 Remove legacy lwIP plugins
Now that the lwIP VFS plugin has become a first class IP stack it is
time to remove the lwIP 1.x library and the associated libc plugins.

Fix #2958
2018-09-05 11:04:22 +02:00
Christian Helmuth c2e0d0ae20 depot: update recipe hashes 2018-08-30 09:25:10 +02:00
Christian Prochaska aa1488c768 qt5: handle 'Qt::WindowMaximized' and 'Qt::WindowFullScreen'
Fixes #2952
2018-08-30 09:24:48 +02:00
Ehmry - 6f8e8a6ea4 LwIP: clamp reads to a value that can be expressed in 16 bits
There is a bug in the LwIP VFS plugin, the chained buffers used by Lwip
use sizes expressed in sixteen bits, and under conditions such as a read
of 1<<16 the higher bits are lost and the plugin performs a zero length
read, and the application interprets this as a closed connection.

Fix #2947
2018-08-30 09:24:47 +02:00
Christian Prochaska 9d712b2ce9 vfs: libc_vfs_fs_chained.run script
Fixes #2944
2018-08-28 17:10:58 +02:00
Ehmry - babb633922 Pdf_view: restore page up/down keys, wheel scroll
The component now handles key presses as documented.

Fix #2942
2018-08-28 17:10:57 +02:00
Ehmry - 26611db95b LwIP VFS: remove link status messages
Remove warnings from the plugin that were used to check behavior of
applications waiting for link and IP status changes.

Ref #2335
2018-08-28 17:10:57 +02:00
Christian Helmuth 40a84e0c81 input/ps2: poll for mouse-reset results
The PS/2 driver retries to get mouse-reset results for 700 ms, sleeping
after each attempt for 10 ms. So, the driver needs a Timer session now.

Fixes #2713
2018-08-28 17:10:55 +02:00
Martin Stein 023de11dc6 acpica port: update to version 2018-08-10
Fixes #2935
2018-08-28 16:48:46 +02:00
Ehmry - ffd688642a VFS LwIP: state tracking fixes
Better track the state of TCP connections and PCB pointers. Allow
received data that has queued to be read under any conditions.

Ref #2335
2018-08-28 16:45:27 +02:00
Ehmry - 67d88526b9 VFS LwIP: delay accepted connections
Ref #2335
2018-08-28 16:45:27 +02:00
Christian Prochaska 14a338af40 qt5: QtTest support
Fixes #2933
2018-08-28 16:45:27 +02:00
Christian Helmuth 3dc822f767 qt5: honor --depot-user in run scripts 2018-08-28 16:45:26 +02:00
Christian Helmuth a8b6fbcc31 qt5: enable xhci in drivers run util 2018-08-28 16:45:26 +02:00
Ehmry - c75d9e2ee0 Rename network scenarios to make use of lxip explicit 2018-08-28 16:45:23 +02:00
Ehmry - 22ef3ed474 LwIP: manage Nic pbufs with a slab allocator
LwIP skips a packet copy by wrapping Nic stream buffer regions in LwIP
pbuf objects. Move from a fixed size array to a potentially unbounded
slab allocator for managing this buffer metadata.

Ref #2335
2018-08-28 16:45:23 +02:00
Josef Söntgen bb8e532361 http_srv: use libc print API
Thereby one can set 'stdout' to /dev/null.
2018-08-08 13:33:37 +02:00
Ehmry - 4678f27802 Propagate LwIP connect errors with sync
Ref #2335
Ref #2920
2018-08-08 11:34:21 +02:00
Christian Prochaska 80974b8f62 qt5: print error message in qtwebkit on failed 'mmap()'
Fixes #2927
2018-08-08 11:29:57 +02:00
Christian Prochaska 0d7dec0436 qt5: destroy finished thread in 'QThread::start()'
A 'QThread' can be reused when its execution is finished by calling
'QThread::start()' again. Before this commit, this created a new Genode
thread, but did not destroy a previously finished Genode thread first.

Fixes #2928
2018-08-08 11:29:32 +02:00
Christian Helmuth f4ea50c6ff depot: update recipe hashes 2018-08-08 10:59:04 +02:00
Ehmry - e521e100f1 Move LwIP to API package
This fix vfs_lwip recursion on archive creation.

Ref #2335
2018-08-08 10:59:03 +02:00
Johannes Kliemann 06a72facc5 Ada: fix ada_secondary_stack test 2018-08-08 10:59:03 +02:00
Johannes Kliemann 0ca197374e Ada: cleanup sources (license headers, beautify) 2018-08-08 10:59:03 +02:00
Alexander Senier 069a9ad56f Ada: runtime support for 64bit arithmetics 2018-08-08 10:59:02 +02:00
Alexander Senier ad3f020605 Ada: support for memcmp 2018-08-08 10:59:02 +02:00
Johannes Kliemann ea8b7d8128 Ada: exception support 2018-08-08 10:59:02 +02:00
Ehmry - e208fbb1b3 VFS LwIP: notify peek handles on recv
Ref #2335
2018-08-08 10:59:02 +02:00
Christian Prochaska 3a1c1d1fd5 libc: allocate more backing store in memory allocator
Add the size of the 'Dataspace' object and AVL-node slab blocks like in
the 'Genode::Heap' implementation.

Fixes #2925
2018-08-02 14:36:50 +02:00
Josef Söntgen a7eb347ce2 libports: remove obsolete pingpong client 2018-08-02 14:36:50 +02:00
Christian Prochaska 7fabc45313 libc: return MAP_FAILED if 'mmap()' failed
Fixes #2924
2018-08-02 14:36:49 +02:00
Ehmry - bf8b52ec3a Update LwIP to 2.1.0.rc1
This release candidate suppresses the remaining build warnings.

Ref #2335
2018-08-02 14:36:49 +02:00
Martin Stein 9b31aac1de LwIP tests: use VFS LwIP plugin
Issue #2335
2018-08-02 14:36:48 +02:00
Emery Hemingway d9a4773194 LwIP VFS plugin
This patch reintroduces the LwIP stack to libc as a VFS plugin
implementing the socket_fs interface. Rather than use LwIP's socket
emulation layer this plugin interfaces directly to LwIP raw API and is
single threaded.

The internal TCP parameters of the stack are untuned.

Fix #2050
Fix #2335
2018-08-02 14:36:48 +02:00
Ehmry - ac30e49df7 Update libssh to 0.7.5
Fix #2921
2018-08-02 14:36:48 +02:00
Josef Söntgen e6c5ea21b4 sdl: react upon framebuffer resize to 0x0
Treat minimizing the framebuffer as explicit SDL_QUIT event.
2018-08-02 14:36:47 +02:00
Sebastian Sumpf 82075a340d qemu-usb: add isochronous packet support to XHCI
fixes #2910
2018-08-02 14:36:46 +02:00
Christian Prochaska deb839ba6f libc: use 'alloc_aligned()' in fd allocator
`Allocator_avl_base::alloc()` now uses address size alignment, so
`Allocator_avl_base::alloc_aligned()` must be used for 1-byte alignment.

Fixes #2915
2018-08-02 14:36:43 +02:00
Christian Prochaska 526680e977 libc: initialize fd sets before use in 'poll()'
Fixes #2914
2018-08-02 14:36:43 +02:00
Christian Prochaska e3005266b6 vfs: no 'handle_io_response()' in regular VFS functions
Calling 'handle_io_response()' in a regular VFS function (in contrast to a
post-signal hook) can cause problems if the caller of the VFS function holds
a lock which prevents the io response handler from returning.

With this commit, the user of the VFS becomes responsible for unblocking
threads which might be blocking after a failed 'queue_read()', 'queue_sync()'
or 'write()' call.

Fixes #2896
2018-08-02 14:36:43 +02:00
Christian Prochaska b4dd9bc802 libc vfs plugin: serialize more file system calls
Issue #2635
2018-08-02 14:36:42 +02:00
Christian Helmuth 5f9ac94bef libports: update hash of downloaded fatfs sources
The author updated http://www.elm-chan.org/fsw/ff/arc/ff13b.zip recently
with a marginal change of documents/doc/appnote.html.
2018-08-02 14:36:42 +02:00
Pirmin Duss 436b10729e acpica: create a package
Allow start of acpica inside the deploy config of sculpt.

Issue #2909
2018-08-02 14:36:40 +02:00
Norman Feske 4b46abf813 base: rm first-class support for static binaries
This patch removes the detection of statically linked executables from
the base framework. It thereby fixes the corner cases encountered with
Sculpt when obtaining the binaries of the runtime from the depot_rom
service that is hosted within the runtime.

Statically linked binaries and hybrid Linux/Genode (lx_hybrid) binaries
can still be started by relabeling the ROM-session route of "ld.lib.so"
to the binary name, pretending that the binary is the dynamic linker.
This can be achieved via init's label rewriting mechanism:

  <route>
    <service name="ROM" unscoped_label="ld.lib.so">
      <parent label="test-platform"/> </service>
  </route>

However, as this is quite cryptic and would need to be applied for all
lx_hybrid components, the patch adds a shortcut to init's configuration.
One can simply add the 'ld="no"' attribute to the <start> node of the
corresponding component:

  <start name="test-platform" ld="no"/>

Fixes #2866
2018-08-02 14:36:38 +02:00
Ehmry - d2923253f3 Remove 'libc' from vfs_jitterentropy dependencies
Libc is no longer necessary for building the jitterentropy VFS plugin.

Ref #2900
2018-08-02 14:36:36 +02:00
Martin Stein 45347749fe nic_bridge: verbose mode
The verbosity mode of the NIC bridge can be toggled with the verbose attribute
(default value shown):

! <config verbose="no" />

If enabled, the NIC bridge logs sent and received packets as well as the
lifetime of interfaces connected to the bridge.

Issue #2899
2018-08-02 14:36:34 +02:00
Christian Prochaska 32d41388e2 pthread: 'pthread_join()' improvements
Make pthread_join() work in more situations and support passing the thread
return value.

Fixes #2892
2018-08-02 14:36:34 +02:00
Christian Helmuth b485caf33c depot: update recipe hashes 2018-07-03 09:40:11 +02:00
Martin Stein 052ed10a17 nic_router.run: fix invalid uplink
Do not generate invalid configurations for the uplink domain anymore. If
some tests are disabled and therefore their routing rules at the uplink
domain would be invalid, spare out these routing rules.

Issue #2899
2018-07-03 09:39:35 +02:00
Christian Helmuth 8d1d57fbdf Tweak run scripts for sel4 (caps, timeout) 2018-07-03 09:39:32 +02:00
Sebastian Sumpf 10485b0d39 run: rename 'check_installed' to 'installed_command'
Also remove 'requires_installation_of', while also checking sbin
directories in 'have_installed'. The run scripts have been adjusted
accordingly.

Fixes #2853
2018-07-03 09:39:31 +02:00
Ehmry - 745926d588 Convert pdf_view to a Nitpicker client
A native Nitpicker client uses less resources than a Framebuffer client
wrapped in a sub-init with nit_fb.

Fix #2871
2018-06-29 10:44:57 +02:00
Christian Prochaska 042ff27366 libc: remove VFS header dependency in 'component.h'
Fixes #2870
2018-06-29 10:44:57 +02:00
Johannes Schlatow 4ae47c3f38 libc: add clock_getres (required by python 3) 2018-06-29 10:44:56 +02:00
Christian Prochaska 6616b0efe7 pthread: improve stack attribute handling
- initialize the stack size attribute with `Libc::Component::stack_size()`
  as default value
- remove the possibly uninitialized `pthread` member from the attribute
  structure and obtain current attribute values in the
 `pthread_attr_get_np()` function, where the `pthread` object reference
  is given as argument
- let each thread obtain its stack address and actual stack size at thread
  start to have the information available for other threads

Fixes #2865
2018-06-29 10:44:56 +02:00
Josef Söntgen 74dcc7a3d5 libc: use socket fs for DNS information
The libc will now use the file given by the 'nameserver_file' attribute
to get the DNS nameserver address instead of reading '/etc/resolv.conf'.
It defaults to '/socket/nameserver' which is the common location when
using the lxip VFS plugin. As a constraint the libc will read the first
line and expects the nameserver address without any keywords in front of
it.

Fixes #2861.
2018-06-29 10:44:55 +02:00
Ehmry - a7a160eebc Package pdf_view to read from file-system
Merge the configuration from raw/pdf_view into the pkg/pdf_view runtime
file. Request a File_system session and load files from there, rather
than by ROM.

Ref #2859
2018-06-29 10:44:55 +02:00
Ehmry - fb0a50c71c Pdf_view: load arbitrary *.pdf files, input improvements
The component is no longer loads from '/test.pdf', the first PDF file
found in the root directory of the file-system is loaded automatically.
The behavior cannot be overridden by configuration.

Feed MuPDF with characters from input events to MuPDF rather than
translate raw key codes to ASCII. This enables almost all MuPDF key
bindings without the need to maintain a lookup table. Mouse navigation
has been enabled as well. To print the key-bindings to log, press '?'.

Fix #2859
2018-06-29 10:44:55 +02:00
Martin Stein 49a3a0e0d0 nic_router: multiple uplinks
Introduce the uplink tag:

! <config>
!    <uplink label="wifi"  domain="uplink">
!    <uplink label="wired" domain="wired_bridge">
!    <uplink               domain="wired_bridge">
! <config/>

For each uplink tag, the NIC router requests a NIC session with the
corresponding label or an empty label if there is no label attribute.
These NIC sessions get attached to the domain that is set in their
uplink tag as soon as the domain appears. This means their lifetime is
not bound to the domain. Uplink NIC sessions can be safely moved from
one domain to another without being closed by reconfiguring the
corresponding domain attribute.

Attention: This may render previously valid NIC router configurations
useless. A domain named "uplink" doesn't automatically request a NIC
session anymore. To fix these configurations, just add

! <uplink domain="uplink"/>

or

! <uplink label="[LABEL]" domain="uplink"/>

as direct subtag of the <config> tag.

Issue #2840
2018-06-29 10:44:53 +02:00
Christian Helmuth e3fd554026 qt5: fix file metadata when creating tar archives
This supports stable package hashes in all combinations of user, umask,
and creation time.

Related to #2842
2018-06-14 15:08:46 +02:00
Christian Helmuth 246bacd9da depot: update recipe hashes 2018-06-13 13:52:12 +02:00
Christian Helmuth 33f55d84eb Remove init from runtime for qt5_textedit pkg 2018-06-13 13:52:11 +02:00
Christian Helmuth 91b2e023b8 vfs/lxip: make gateway config attribute optional
This enables the application in router/gateway-less network
configurations, e.g., test environments.
2018-06-12 12:11:46 +02:00
Christian Helmuth 639c838707 Update URL of ccid and pcsc-lite ports 2018-06-12 12:11:42 +02:00
Christian Prochaska 38d5a5bf0e qt5: set fixed file times when creating tar archives for raw packages
Fixes #2842
2018-05-31 17:16:18 +02:00
Christian Prochaska 1093adca7e qt5_textedit improvements for use with sculpt
- support saving of files with no file name extension
- make the the "All Files (*)" file selection filter the default to see
  configuration files immediately

Fixes #2844
2018-05-31 17:15:14 +02:00
Christian Prochaska de328c412a depot: qt5_textedit runtime package recipe
Fixes #2845
2018-05-31 17:11:17 +02:00
Christian Helmuth bd86efe5fe depot: update recipe hashes 2018-05-31 14:02:21 +02:00
Martin Stein bbc73e96ac nic_bridge.run: remove libm from boot modules
libm is obviously not needed anymore and not build. Thus, this fixes a run
error.

Issue #2837
2018-05-30 13:36:33 +02:00
Alexander Senier 43faf63fde pthread: fix deadlock in pthread_rwlock_*
Properly initialize and reset the _owner member, otherwise
correlating the unlock operation with the respective read/write
lock does not work.

Move locking the _nbr_mutex in the unlock operation after the
owner check. Otherwise, a reader holding that mutex and waiting
for the write lock would deadlock a writer trying to unlock the
_global_mutex.

Ref. Componolit/componolit#86
Ref. #2656
Fixes #2832
2018-05-30 13:36:32 +02:00
Alexander Boettcher 0ef7e58ef9 platform_drv.inc: support acpi_drv and acpica
Issue #2816
2018-05-30 13:36:31 +02:00
Alexander Boettcher 487e8ea934 acpica: adjust acpi device reports
If ACPI IRQs are received but no changes to the watched state for a specified
count can be observed, than generate nonetheless a Genode report.

Issue #2816
2018-05-30 13:36:25 +02:00
Norman Feske df9eb55c5a depot: recipe for api/jitterentropy
The API archive makes the library usable for src/gpt_write.
2018-05-30 13:36:24 +02:00
Ehmry - 72cb71c827 Replace SHA1 hashes of port downloads with SHA256
Now SHA256 has been shown to be an adequate replacement for SHA1, use
SHA256 for verifying all port downloads.

Ref #2767
2018-05-30 13:36:22 +02:00
Ehmry - e36ddaf659 Rename lwip library to lwip_legacy
Rename LwIP library in preparation for removal of LwIP libc plugin. The
current LwIP library will be replaced with a new version stripped of its
synchronous socket support. The next version will be incompatible with
the current, so removing 'lwip.lib.so' completely for a period makes it
easy to identify legacy users.

Fix #2797
2018-05-30 13:36:22 +02:00
Alexander Boettcher 0efa67893e acpica: generate report usable by platform_drv
Fixes #2816
2018-05-30 13:36:21 +02:00
Norman Feske 94db45036c fetchurl: expand report buffer on demand 2018-05-30 13:36:17 +02:00
Ehmry - 1097a5c7c2 Libc: ignore address argument to TCP sendto
Generic code that operates over both UDP and TCP sockets might use
'sendto', but in the case of TCP the destination address ought to be
safely discarded. This seems to be the case for certain DNS software
that operates over both UDP and TCP.

Fix #2807
2018-05-30 13:36:13 +02:00
Johannes Kliemann 8bffc33d8f ada: test secondary stack 2018-05-30 13:36:08 +02:00
Johannes Kliemann e8e2fc48f8 ada: secondary stack support 2018-05-30 13:36:08 +02:00
Christian Helmuth a6e0fdd505 libc: support syscall(SYS_thr_self,...)
This syscall returns the thread ID / light-weight PID of the calling
thread under FreeBSD.

Issue #2791
2018-05-30 13:36:07 +02:00
Sebastian Sumpf ea6b4a0caf libports: port of ffi library
required by jdk

issue #2791

Forein function interface library, which takes care of calling
conventions of different platforms.
2018-05-30 13:36:07 +02:00
Sebastian Sumpf 9cdc24bd32 vfs: serialize file system calls
issue #2635
issue #2791
2018-05-30 13:36:06 +02:00
Sebastian Sumpf eccfa5e1e7 pthread: retrieve stack address and size
issue #2791
2018-05-30 13:36:06 +02:00
Sebastian Sumpf b4209cb3bb pthread: remove 'pthread_attr' from pthread class
issue #2791
pthread_attr is not associated with any thread, the statistics must be
gathered at runtime, while 'pthread_attr_get_np' may retrieve attributes
by from any thread. Addtionally, the attributes given to
'pthread_create' will most likely be deleted after the creation call.
2018-05-30 13:36:05 +02:00
Sebastian Sumpf 2ff11dc063 phtread: limit stack size to Genode's max stack size
issue #2791
2018-05-30 13:36:05 +02:00
Sebastian Sumpf dfc2e2bd68 pthread: 'phtread_join'
issue #2791
2018-05-30 13:36:05 +02:00
Sebastian Sumpf 8605e15b4f libc: add suspend and resume_all to symbol map
This commit enables the pthread library to hook into the libc execution
model and can be reverted after #2812 is fixed.

Issue #2791
2018-05-30 13:36:05 +02:00
Sebastian Sumpf bfd9c48039 libc: support RTLD_DEFAULT in dlsym
issue #2791
2018-05-30 13:36:04 +02:00
Sebastian Sumpf 419dc40c4d libc: rlimit add address-space size + number fds
issue #2791
2018-05-30 12:26:20 +02:00
Ehmry - 51722c1fe6 Update Nim to 0.18.0
Fix #2804
2018-05-30 12:26:20 +02:00
Christian Prochaska f347cb90f1 depot: qt5 recipes
Fixes #2792
2018-05-30 12:26:19 +02:00
Ehmry - e2661c58dc Convert static VFS library to dynamic library
Fix #2759
2018-05-30 12:26:19 +02:00
Christian Helmuth cbfec0deed ldso: check ctors sections of shared-object deps
The sole existence of shared-object dependencies lead to fatal
static-constructor errors before. Now, ldso checks if the ctors section
of objects in the init list are non-empty before whining.

Issue #2759
2018-05-30 12:26:18 +02:00
Christian Helmuth 3b7d6394d7 depot: update recipe hashes 2018-05-03 15:32:01 +02:00
Christian Helmuth 5657375c9f Disable network tests on imx53_qsb_tz 2018-05-03 15:32:01 +02:00
Christian Helmuth 674b0ba947 Depot: nic_router-nat-dns
A runtime package that provides a Nic session with NAT via the
nic_router and a DNS service via Stubby.

Ref #2682
2018-05-03 15:31:59 +02:00
Ehmry - 60eeddf639 Port of libyaml
http://pyyaml.org/wiki/LibYAML

Ref #2682
2018-05-03 15:31:58 +02:00
Ehmry - 96579a72e0 Libc: gracefully handle invalid socketaddr arguments
Ref #2682
2018-05-03 15:31:58 +02:00
Ehmry - e4328de251 Test of the gettaddrinfo POSIX facility.
Ref #2682
2018-05-03 15:31:58 +02:00
Ehmry - 401ba6e7fd Manage socket_fs socket lifetime via handles
Socket_fs sockets are now created each time a 'new_socket' control file
is opened, not each time a 'new_socket' file is read. When a handle on a
'new_socket' file is closed the socket and its socket files are
destroyed. The accept control file on a listening socket reads "1" or
reads nothing to indicate a client connection is queued. Client sockets
are accepted by opening an 'accept_socket' file in the listen socket
directory. This file behaves like the aforementioned 'new_socket' file.

Ref #2707
2018-05-03 15:31:57 +02:00
Ehmry - 0b980073c1 VFS: close handles via handle method
The using pattern 'handle->close' is less error prone than attempting
'handle->ds().close(handle)' or 'fs.close(handle)'.

Ref #2782
2018-05-03 15:31:57 +02:00
Martin Stein 09ad962418 nic_bridge.run: don't execute on hardware
The nic_bridge test is not suitable to be executed on hardware so it should,
in case, print an appropriate message and return without doing anything else.

Issue #2788
2018-05-03 15:31:57 +02:00
Martin Stein 80749798c3 nic_bridge.run: remove posix.lib.so
The library is not needed anymore and led to an error when executing
the script.

Issue #2788
2018-05-03 15:31:57 +02:00
Martin Stein 375a7c701a test/lwip clients: exit with error code
Issue #2751
2018-05-03 15:31:56 +02:00
Martin Stein 6ec8824d75 test/lwip/udp/client: handle missing attributes
Print a useful message if a manadatory config attribute is
missing and exit.

Issue #2751
2018-05-03 15:31:55 +02:00
Christian Helmuth 58fcf577ea Fix hash-input list of drm port 2018-05-03 15:31:54 +02:00
Christian Prochaska cbdeb41094 depot: icu recipe
Fixes #2785
2018-05-03 15:31:54 +02:00
Christian Prochaska be8addc608 depot: mesa recipe
Fixes #2784
2018-05-03 15:31:53 +02:00
Christian Prochaska 0bded4478e qt5: modifier-state tracking
Issue #2761
2018-05-03 15:31:53 +02:00
Norman Feske afcad2a968 os: new Input::Event representation
This commit changes the 'Input::Event' type to be more safe and to
deliver symbolic character information along with press events.

Issue #2761
Fixes #2786
2018-05-03 15:31:25 +02:00
Johannes Kliemann c02ef3ec94 ada: compile runtime bodies, customizable tools
This is a follow-up commit for "ada: runtime and library support".

Issue #2748
2018-05-03 15:31:21 +02:00
Martin Stein 178efe9c97 fetchurl.run: add missing gpio driver
Fixes #2780
2018-05-03 15:31:20 +02:00
Christian Prochaska b2935b504d depot: drm recipe
Fixes #2772
2018-05-03 15:31:20 +02:00
Christian Prochaska f58717205a depot: qoost recipe
Fixes #2771
2018-05-03 15:31:20 +02:00
Christian Prochaska 1d6301c689 depot: expat recipe
Fixes #2769
2018-05-03 15:31:20 +02:00
Christian Prochaska 4aefa395af depot: pcre16 recipe
Fixes #2768
2018-05-03 15:31:19 +02:00
Ehmry - b8ad9ad880 Update FatFS port to v0.13b
Remove integer patch. The tests pass without applying it, and better to
use unmodified upstream code whenever practical.

Fix #2766
2018-05-03 15:31:19 +02:00
Ehmry - 1afbc7f952 Update egl_api port
Use Github URL that references a commit rather than the unversioned
Khronos URL.

Fix #2765
2018-05-03 15:31:19 +02:00
Christian Helmuth 47569458d4 depot: update recipe hashes 2018-04-19 12:39:20 +02:00
Christian Helmuth f9ca0ae119 Remove unused libm/posix libraries from extract test 2018-04-19 12:39:19 +02:00
Johannes Kliemann 1261c18ce9 ada: runtime and library support
The Ada runtime can now be set with the ADA_RTS variable. The ada
library builds a (currently) minimal runtime from the gcc sources that
come with Genode (to stay consistent with the used compiler) and sets
the runtime path accordingly. It is build as a shared library ada.lib.so
which needs to be added to the build files.

I split the existing Ada test into program and library, and moved it
to libports as it depends on the runtime library residing in this
repository too.

Fixes #2748
2018-04-19 12:38:54 +02:00
Norman Feske cb78516bf1 os: add tests to autopilot
Since the autopilot has become able to use the depot, futher tests can
be enabled by default.
2018-04-19 12:38:53 +02:00
Ehmry - 82a683eccc VFS: construct file-systems using Vfs::Env object
Reduce the size and forward compatibility of VFS file-system
constructors by passing an object holding accessors for 'Genode::Env',
'Genode::Allocator', response handlers, and the root file-system.

Fix #2742
2018-04-19 12:38:27 +02:00
Stefan Kalkowski ad99688853 imx53_qsb: enable automated network tests
Fix #2749
2018-04-19 12:38:24 +02:00
Josef Söntgen 77a2e02a0d libc: increase FS_BLOCK_SIZE to 4KiB
Fixes #2752.
2018-04-19 12:38:23 +02:00
Ehmry - 7091f5febe libc: enforce suspend is not called from initial stack
In other words: Loosen the former property that suspend can only be
called from the first user stack and, thus, enable additional user
stacks, e.g., in coroutine libraries.

Fix #2737
2018-04-19 12:38:23 +02:00
Christian Helmuth d54f95d497 depot: update recipe hashes 2018-04-10 13:03:26 +02:00
Norman Feske 10c9b8a221 sculpt: change DNS server to 1.1.1.1
The previously used nameserver 213.73.91.35 of the CCC seems to be no
longer available.
2018-04-10 13:03:26 +02:00
Martin Stein d6e1c462cc nic_dump: default attribute
The 'default' attribute is useful to change the default value for those
protocol attributes that are not explicitely set in the configuration of
the component.

Issue #2738
2018-04-10 11:20:49 +02:00
Martin Stein ed13a0a262 nic_dump: make protocols configurable
Each supported protocol now has an attribute with the name of the protocol in
the config tag. Each of these attributes accepts one of four possible values:

* no      - do not print out this protocol
* name    - print only the protocol name
* default - print a short summary of the most important header values
* all     - print all available header values

Example:

! <config eth="name"
!         arp="all"
!         ipv4="default"
!         dhcp="no"
!         icmp="all"
!         udp="no"
!         tcp="default"
!         ... />

Corresponding output example:

! ETH IPV4 10.0.2.212 > 10.0.2.55   time 7158 ms (Δ 11 ms)
! ETH IPV4 10.0.2.55 > 10.0.2.201  TCP 80 > 49154 flags ' time 6976 ms (Δ 5 ms)
! ETH ARP hw 1 prot 2048 hwsz 6 protsz 4 op 1 srcmac 02:02:02:02:02:01 srcip 10.0.2.212 dstmac 00:00:00:00:00:00 dstip 10.0.2.55 time 7074 ms (Δ 98 ms)

Issue #2738
2018-04-10 11:20:49 +02:00
Norman Feske 97317b0c95 terminal: change term caps from linux to screen
Fixes #2743
2018-04-10 11:20:43 +02:00
Martin Stein 9c73326bbb lwip: enable ICMP support
This switches on the LwIP opts flag for handling ICMP packets (as far as
supported).

Issue #2732
2018-04-10 11:11:52 +02:00
Ehmry - 8ba26c612a FatFS watch support
Implement watch support using a watch handle list.

Test at run/fs_rom_update_fat.

Ref #1934
2018-04-10 11:11:51 +02:00
Ehmry - e1a079954b Fetchurl: optionally attempt to re-fetch failed URLs.
Fix #2733
2018-04-10 11:11:50 +02:00
Norman Feske 738b64909e libports: add ttf-bitstream-vera port 2018-04-10 11:09:46 +02:00
Norman Feske f837df34b1 libports: stb single-file header libraries 2018-04-10 11:09:19 +02:00
Norman Feske b0b92e4ee2 vfs: pass root directory to plugins
This patch enables the use of the VFS from VFS plugins by passing a
reference of the root directory to the constructors of file-system
instances. Since it changes the signature of 'Vfs::Dir_file_system',
any code that uses the VFS directly requires an adaptation.

Fixes #2701
2018-04-10 11:09:17 +02:00
Ehmry - 864e8ab0c8 Add Report session to fetchurl's used_apis
The fetch progress report requires Report headers to be present.

Ref #2702
2018-04-10 11:09:17 +02:00
Alexander Boettcher fce15b4f13 sel4: adjust network scenarios for wandboard
Issue #2665
2018-04-10 11:09:16 +02:00
Martin Stein c8fcaf007e nic_router.run: provide test for 'dns_server_from'
Fixes #2730
2018-04-10 11:06:01 +02:00
Martin Stein a3b04c55f3 nic_router_dyn_config.run: test re-configurability
A very basic test of the re-configurability. It overwrites the configuration
once without making any changes, once with removing all domains except
uplink, and a third time recovering to the initial configuration to see if
the clients keep going as soon as their domains are back.

Fixes #2670
2018-03-29 15:39:45 +02:00
Martin Stein 2a77976164 nic_router: add verbose_packets per domain
A domain logs its packets if one of the global 'verbose_packets' or its local
'verbose_packets' is switched on.

Ref #2670
2018-03-29 15:20:20 +02:00
Martin Stein bd16f89617 nic_router: add verbose_packets attribute
This separates the decision wether to log the received and sent packets
from the 'verbose' attribute. This information is now only logged if
'verbose_packets' is switched on. If 'verbose' is switched on, only
routing decisions and optional hints are printed.

Ref #2670
2018-03-29 15:20:15 +02:00
Martin Stein b69134f1fe nic_router.run: test DHCP server
Very basic test of the DHCP server functionality.

Ref #2670
2018-03-29 15:19:29 +02:00
Martin Stein 95005a0ae3 test/lwip/udp/client: deal with packet loss
Try it 10 times and expect 5 of them to succeed.

Ref #2670
2018-03-29 15:16:35 +02:00
Martin Stein 72036d3f88 test/lwip/http_clnt: don't succeed falsely
Ref #2670
2018-03-29 15:09:47 +02:00
Christian Helmuth b07d6eced8 depot: update recipe hashes 2018-03-29 14:59:07 +02:00
Alexander Senier ac42670a0e Add fstatfs to libc ABI symbols
Fixes #2721
2018-03-29 14:59:05 +02:00
Ehmry - 219c2fa2e1 EGL api library
Library for EGL headers only. Useful for components that dynamically
load an EGL shared library.

Fix #2718
2018-03-27 13:44:27 +02:00
Christian Helmuth f2b9a6238c stdcxx: std::istream::ignore support 2018-03-27 13:43:08 +02:00
Ehmry - 4b165190ee Link EGL to Mesa
Link the EGL library with Mesa. SDL's `GL_GetProcAddress` now calls
`eglGetProcAddress` rather than lookup procedures directly in the Mesa
library.

Components may still wish to list 'mesa_api' in LIBS to access OpenGL
headers.

Fix #2711
2018-03-27 13:43:08 +02:00
Christian Helmuth 1f7b5e75bf depot: update recipe hashes 2018-03-08 12:05:10 +01:00
Ehmry - 84ac5891b2 Fetchurl progress reporting
Refactor the fetchurl utility to optionally report the initial fetch
state, fetch progress, and the final state.

Fix #2702
2018-03-08 12:05:09 +01:00
Boris Mulder d15b396202 fetchurl: fail on error 2018-03-08 12:05:07 +01:00
Alexander Senier 37b08797c0 pthread: basic pthread_rwlock_* operations
Fixes #2656
2018-03-08 12:05:06 +01:00
Christian Helmuth db23227ac3 libc: sync before calling ftruncate()
Issue #2695
2018-03-08 12:05:05 +01:00
Josef Söntgen d67e369433 libc: sync before calling fstat()
Issue #2695
2018-03-08 12:05:04 +01:00
Christian Helmuth a8f186c7d4 depot: update recipe hashes 2018-02-28 11:05:05 +01:00
Christian Helmuth adc3aa452a libc: close all handles of a socket before release
This prevents diagnostic messages like

  Error: partial write detected 0 vs 31

for writes into already released socket directories due to a still-open
handle to the socket data file.
2018-02-28 11:05:05 +01:00
Christian Helmuth ddd5e8abb4 Provide /dev/random in runtime for fetchurl
libcrypto transparently opens /dev/random to seed its PRNG or logs an
error if this fails.
2018-02-28 11:05:04 +01:00
Christian Helmuth e3d1b8b044 openssl: clarify error message on missing /dev/random 2018-02-28 11:05:04 +01:00
Christian Helmuth 064e738d53 libc: reduce noise on setsockopt/getsockopt 2018-02-28 11:05:04 +01:00
Christian Prochaska ecff980761 libc: 'rmdir()': delete directories only
Fixes #2685
2018-02-28 11:04:58 +01:00
Emery Hemingway 88757a674a libc: sync socket control files to check for write errors
Ref #2335
2018-02-28 11:04:58 +01:00
Stefan Kalkowski 9f945a782f run: enable Wandquad board for network tests
Ref #2665
2018-02-28 11:04:57 +01:00
Ehmry - e1f7dd0553 Migrate fetchurl to socket_fs
Remove the dependency on the deprecated LwIP libary.

Remove the progress logging callback. Should a progress indicator be
desired, a progress report would be more appropriate.

Fix #2684
2018-02-28 11:01:31 +01:00
Norman Feske e79ce5a036 depot: update recipe hashes 2018-02-16 08:42:31 +01:00
Josef Söntgen dd73cf9baf libc: silence common not implemented warnings 2018-02-16 08:42:30 +01:00
Norman Feske 126c72c9c8 mesa-gears.run: add missing rtc config
Without the 'rtc' configuration, the gears won't move.
2018-02-16 08:42:29 +01:00
Norman Feske fc902b797e depot: runtime definitions for sculpt installation
This patch supplements 'runtime' files to several pkg archives,
which thereby become deployable by the depot_deploy tool.

Issue #2676
2018-02-15 10:22:10 +01:00
Ehmry - 2bbb183a18 Libc: check O_DIRECTORY flag at 'open' and 'read'
Return an error when opening a file with 'O_DIRECTORY'. Return an error
when reading directories.

Ref #2533
2018-02-15 10:22:09 +01:00
Alexander Boettcher accc7e7521 fs servers: handle result propagation better
This patch removes the notion of partial writes from the file-system
servers. Since write operations are asynchronously submitted, they are
expected to succeed completely, except for I/O errors. I/O errors are
propagated with the write acknowledgement but those are usually handled
out of band at the client side. Partial writes must never occur because
they would go undetected by clients, which usually don't wait for the
completion of each single write operation.

Until now, most file-system servers returned the number of written bytes
in the acknowledgement packet. If a server managed to write a part of
the request only, it issued the acknowledgement immediately where it
should have cared about writing the remaining part first.

The patch detects such misbehaving server-side code. If partial writes
unexpectedly occur, it prints a message and leaves the corresponding
request unacknowdleged.

Issue #2672
2018-02-15 10:22:08 +01:00
Ehmry - 90753f3e50 Update Fatfs library to 0.13a, vfs_fatfs recipe
Fix #2673
2018-02-14 20:41:07 +01:00
Norman Feske cd45a3b8d6 libports: set mupdf gamma value to 1.5
This makes the look of tikz illustrations consistent with the look when
viewing them in evince (as I do while creating them).
2018-02-14 20:41:04 +01:00
Norman Feske 8d09d02b85 depot: update recipe hashes 2018-02-09 13:34:24 +01:00
Stefan Kalkowski 9d16169a65 run: remove NIC driver from nic_*.run tests
Instead of having a lot of platform specific quirks in the run test,
and to also test it on platforms currently missing a NIC driver,
this commit removes hardware drivers from the nic_router and
nic_bridge run scripts, and uses the nic_loopback server instead.
2018-02-09 13:34:24 +01:00
Christian Helmuth 4853d61c3b qt5: download qtscriptclassic via http
FTP repeatedly causes trouble in some regions.
2018-02-09 13:34:24 +01:00
Christian Helmuth 30b0bd641f Remove obsolete config_args library dependency 2018-02-09 13:34:21 +01:00
Christian Helmuth 166e487559 libc: withstand pthreads calling with_libc() 2018-02-09 13:34:21 +01:00
Norman Feske c2590995c0 posix ABI: require 'main' symbol
Issue #2648
2018-02-09 13:34:20 +01:00
Ehmry - abd536d5d3 Libc: zero sysctl buffer before strncpy
The uname utility from coreutils needs its read buffer zero-terminated,
regardless of read length.

Fix #2657
2018-02-09 13:34:18 +01:00
Roman Iten 9175d801e0 qt5: emit started signal in qthread
Fixes #2651.
2018-02-09 13:34:17 +01:00
Christian Prochaska d0eacdd0d6 stdcxx: define _GLIBCXX11_USE_C99_STDLIB
Fixes #2652
2018-02-09 13:34:17 +01:00
Pirmin Duss 0423eb4499 stdcxx: fix src recipe
fixes #2649
2018-02-09 13:34:16 +01:00
Alexander Senier 33ba587813 stdcxx: Add missing symbols to ABI
- typeinfo for std::runtime_error
- typeinfo for std::regex_error
- vtable for std::regex_error
2018-02-09 13:34:16 +01:00
Norman Feske f07cfbe02d depot: add missing nit_fb to pkg/pdf_view 2018-02-09 13:34:14 +01:00
Norman Feske c8c910a41b fetchurl: dim debug-message noise 2018-02-09 13:34:13 +01:00
Norman Feske f1ce555cd9 depot: recipes for src/extract and used libs 2018-02-09 13:34:13 +01:00
Norman Feske 5b6bd8459f Signature checking tool based on GnuPG
The new 'verify' component facilitates the code of GnuPG to verify
detached OpenPGP signatures against public keys.

Since GnuPG depends on libgcrypt and libgpg-error, the patch adds these
libraries to the libports repository.

Fixes #2640
2018-02-09 13:34:13 +01:00
Christian Helmuth 6013889028 depot: update recipe hashes 2018-01-17 12:14:44 +01:00
Christian Helmuth a1e22789af fetchurl: NIC driver binary from platform_drv.inc 2018-01-17 12:14:43 +01:00
Christian Helmuth 55b070d204 Update download URL of mpc library port 2018-01-17 12:14:43 +01:00
Christian Helmuth b7fffb1b24 abi: remove duplicates and internal symbols, fix sizes
The most important part of this patch are symbol-size changes, which
potentially lead to data corruption.

Issue #2639
2018-01-17 12:14:42 +01:00
Josef Söntgen a867c29633 libc: return on nanosleep with zero timeout
In case the calculated timeout value is zero return directly and do
not call Libc::suspend as it will suspend us indefinitely.

Fixes #2636.
2018-01-17 12:14:40 +01:00
Christian Helmuth 81ada6b4f2 lwip: tweak configuration for downloading clients
The TCP window scaling is implemented for servers (like netperf's
netserver) only. The client implementation just uses the lower 16 bits
of the TCP_WND configuration value, which we therefore maximize to ~64K.
2018-01-17 12:14:40 +01:00
Norman Feske bdc8e1f8fb libports: component for extracting archives
Issue #2528
2018-01-17 12:14:39 +01:00
Norman Feske 219218dd38 libarchive: enable support for tar.xz
Issue #2528
2018-01-17 12:14:39 +01:00
Ben Larson dc246544de port library: liblzma
Issue #2528
2018-01-17 12:14:39 +01:00
Ben Larson b34f70d312 port library: lz4
Issue #2528
2018-01-17 12:14:39 +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
Ehmry - 36104098ad libc: fill stdio descriptors even if invalid
Stdin, stdout, and stderr are mapped to descriptors 0, 1, and 2
respectively. If these first three descriptors are not allocated before
the application becomes active then normal files and sockets can be
opened under these numbers, potentially causing unexpected application
behavior.

Fix #2628
2018-01-17 12:14:33 +01:00
Norman Feske 61e1bed2c2 Adaptation to changed RTC handling in libc
This is a follow-up commit to "libc: prevent timer session if rtc not
configured".

Issue #2625
2018-01-17 12:14:33 +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
Norman Feske d873c13e16 fetchurl: create compound dir of downloaded file
Fixes #2623
2017-12-22 11:43:39 +01:00
Norman Feske fd89f510ca fetchurl.run: update list of needed boot modules 2017-12-22 11:43:39 +01:00
Norman Feske e40b3bbb30 fetchurl: with_libc around curl_global_init
This is needed when downloading files via https.
2017-12-22 11:43:39 +01:00
Christian Prochaska 3f74862666 depot: recipe for stdcxx library
Issue #2446
2017-12-22 11:43:39 +01:00
Christian Helmuth 553cf556af depot: update recipe hashes 2017-12-21 15:01:56 +01:00
Martin Stein edf1f9d849 nic_router: report some useful information
The NIC router can now be configured to periodically send reports.
Configuration example (shows default values):

<config>
	<report interval_sec="5" bytes="yes" config="yes">
</config>

If the 'report' tag is not available, no reports are send.
The attributes of the 'report' tag:

'bytes'        : Boolean : Whether to report sent bytes and received bytes per
                           domain
'config'       : Boolean : Whether to report ipv4 interface and gateway per
                           domain
'interval_sec' : 1..3600 : Interval of sending reports in seconds

Issue #2614
2017-12-21 15:01:54 +01:00
Martin Stein 4d6fcbb8b6 nic_router.inc: automatically count clients
Avoid that the user has to define the number of HTTP/UDP clients manually.
This count is used by the run scripts to generate the expected log output.

Fix #2609
2017-12-21 15:01:54 +01:00
Martin Stein 3ced146733 nic_router.run: more tailored router config
Add to the router config only what is needed according to which tests are
enabled.

Issue #2609
2017-12-21 15:01:53 +01:00
Martin Stein 9e1d776da5 nic_router.run: test hub functionality
The new test 7 is by now deactivated by default as enabling all tests at a time
would trigger resource exhaustion on some platforms.

Issue #2609
2017-12-21 15:01:53 +01:00
Martin Stein 2d153c40e4 nic_router.run: generate result string via loop
Issue #2609
2017-12-21 15:01:52 +01:00
Martin Stein cfbd1f0749 nic_router.inc: allow for individual peer names
Previously, the function that returned the XML config for a network test
client/server in the scripts formed the component name of the peer solely
by combining the protocol name, "client" or "server", and a suffix that
is given as argument. However, to group multiple clients together in one
domain via their session label at the NIC router we want peers with the same
name prefix. Thus, the function now simply takes the whole name as argument.

Issue #2609
2017-12-21 15:01:52 +01:00
Norman Feske 079f00e083 depot: recipe for src/fetchurl 2017-12-21 15:01:43 +01:00
Norman Feske c9a5f0ce45 libports: import fetchurl from world
Fixes #2578
2017-12-21 15:01:43 +01:00
Norman Feske a3c217757c depot: recipes for api/curl and src/curl 2017-12-21 15:01:43 +01:00
Norman Feske 531a4bbb7e libports: ABI for curl 2017-12-21 15:01:42 +01:00
Norman Feske 6d4e0c456b depot: recipes for api/libssh, src/libssh 2017-12-21 15:01:42 +01:00
Norman Feske de38b2ece3 libports: ABI for libssh 2017-12-21 15:01:42 +01:00
Norman Feske 5574dd3465 Port of libarchive
Fixes #2528
2017-12-21 15:01:42 +01:00
Alexander Boettcher 419a48aa06 acpica: support AcpiOSStall
Fixes #2597
2017-12-21 15:01:39 +01:00
Emery Hemingway b32f2d126a update Nim toolchain recipe
The current upstream development version has improved asyndispatch
performance for Genode.

Fix #2599
2017-12-21 15:01:38 +01:00
Martin Stein c3853494c8 nic_router: domain-state-verbose flag
When this flag is set in the config tag, the NIC router will print a
short information to the log for each general state change of a domain.
This includes currently the IP-configuration state and the number of
connected NIC sessions. This a useful addition as the normal verbose
flag's purpose is a very deep insight into almost every activity in the
router, which is cool for debugging sophisticated problems but normally
floods the log and therefore discards this option for, e.g., desktop
systems. In such systems, the new verbosity is pretty discreet but
already gives a good hint on why packets may get dropped by the router
although the routing rules are correct.

Issue #2534
2017-12-21 15:01:37 +01:00
Josef Söntgen dcce3d5a40 libports: create avplay recipe
Issue #2602.
2017-12-21 15:01:35 +01:00
Josef Söntgen 26f3a43df0 libports: create libav recipe
Issue #2602.
2017-12-21 15:01:35 +01:00
Josef Söntgen f591c12e77 libports: create SDL_image recipe
Issue #2602.
2017-12-21 15:01:35 +01:00
Josef Söntgen 64f7a04cec libports: create SDL_mixer recipe
Issue #2602.
2017-12-21 15:01:34 +01:00
Josef Söntgen 7fad78ba03 libports: create SDL_net recipe
Issue #2602.
2017-12-21 15:01:34 +01:00
Josef Söntgen 841b99ba3b libports: create SDL recipe
Fixes #2602.
2017-12-21 15:01:34 +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 Helmuth 1ae527ea67 qt5: qtvirtualkeyboard example depends on swrast 2017-11-30 11:23:22 +01:00
Christian Prochaska a0a54df74c qt5: pointer shape support
Fixes #2586
2017-11-30 11:23:22 +01:00
Christian Prochaska 15a5db61c8 Reduce number of write-read rounds on Qemu in libc fs tests 2017-11-30 11:23:19 +01:00
Christian Helmuth d5518aa938 lib/vfs/lxip: support configuration of MTU
The MTU can be set via the "mtu" attribute like follows.

  <vfs> <lxip mtu="1200" dhcp="yes"/> </vfs>
2017-11-30 11:23:18 +01:00
Christian Helmuth 2b649cb633 libc: handle socket_fs special cases
- catch inaccessible file on bind()
- support UDP ENETDOWN and TCP EAGAIN on sendto()
2017-11-30 11:23:17 +01:00
Josef Söntgen ad3ec34690 avplay: limit requested video-mode
In case the video geometry (WxH) is larger than the current size of
the framebuffer, match its size and let libav do the scaling. This
enables the playback of 1080p movies on smaller screens.

Issue #2583.
2017-11-30 11:23:16 +01:00
Josef Söntgen d57ebae6a0 test/sdl: handle resizing
Issue #2583.
2017-11-30 11:23:16 +01:00
Josef Söntgen af1c965831 sdl: forcefully disable double-buffering
Issue #2583.
2017-11-30 11:23:16 +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
Josef Söntgen 86c1f65dfe pthread: implement stacksize attribute
Issue #2583.
2017-11-30 11:23:15 +01:00
Alexander Boettcher 0a5dcc86ed platform_drv: separate acpi and system feature 2017-11-30 11:23:14 +01:00
Sebastian Sumpf b8eae11356 qemu-usb: device updates 2017-11-30 11:23:13 +01:00
Norman Feske 4e115a7de2 acpica: request 'Acpi' only if 'acpi_ready="yes"'
The synchronization with the ACPI driver is not needed when starting
acpica at a later stage. It could already be disabled via the
'acpi_ready="yes"' config attribute. However, acpica still
unconditionally requests the so-called "Acpi" service, which is an
alias for the platform_drv's "Platform" service. This patch disables the
use of this alias when the 'acpi_ready' synchronization is disabled.
2017-11-30 11:23:13 +01:00
Norman Feske 9b09f0e2cb depot: recipe for src/acpica 2017-11-30 11:23:12 +01:00
Norman Feske b7eb5d94f2 acpica: remove debug version
The debug version comes with an unwelcome libc dependency, which is
solely needed for the formatted output of error messages. Since the
distinction between the regular and the debug versions remained unused
in practice, this patch removes the debug version.
2017-11-30 11:23:12 +01:00
Martin Stein d37f32fb21 nic_router.run: raise timeouts for sel4+qemu 2017-11-30 11:23:11 +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
Emery Hemingway 0de751a1c9 Rename app/mupdf to app/pdf_view, create depot recipes
The name 'mupdf' is both the name of a library and a component, thus
preventing a depot recipes for both the shared library and component.

Fix #2582
2017-11-30 11:23:10 +01:00
Norman Feske e8db9bda9a libports: fix download location of fribidi
Apparently, fribidi.org is no more and just points to the GitHub project
now.
2017-11-30 11:23:07 +01:00
Josef Söntgen 5a5af878f7 libports: create vfs_jitterentropy recipe 2017-11-30 11:23:07 +01:00
Josef Söntgen c364c4de2a libports: create libssl recipe 2017-11-30 11:23:07 +01:00
Josef Söntgen a6b4812b78 libports: create libcrypto recipe 2017-11-30 11:23:06 +01:00
Josef Söntgen f32344138f openssl: patch source relative paths in SSL 2017-11-30 11:23:06 +01:00
Emery Hemingway caba2d3021 Enforce use of a custom Nim compiler
Use a custom Nim compiler at '/usr/local/genode-nim' that can be built
with a makefile at 'tool/tool_chain_nim'.

Fix #2545
2017-11-30 11:23:06 +01:00
Josef Söntgen a110fef4d9 libports: initial e2fsck port
In contrast to the already available e2fsprogs port, this one does not
depend on Noux.

Issue #2558.
2017-11-30 11:23:05 +01:00
Christian Helmuth 44a43aa060 libc: generate nsparser.h in build directory 2017-11-30 11:23:03 +01:00
Christian Helmuth c76faff7d4 ncurses: remove absolute path from generated source
This is for a stable source-package hash.
2017-11-30 11:23:03 +01:00
Martin Stein 9e888df3c9 nic_dump/router.run: share nic_router.inc
Move common stuff from both scripts to the new include file.

Ref #2543
2017-11-30 11:23:03 +01:00
Martin Stein 657fa16f8c nic_router: use LwIP- instead of LxIP UDP-tests
Currently, LxIP peers need a lot of RAM (the simple test-client/server for the
nic_router test need at least 28 MB per component). As the nic_router test
previously used 6 instances of such components and a lot of other components,
it had issues with insufficient RAM on some platforms. By using two new
LwIP-based UDP tests instead, we save more than 100 MB.

Ref #2543
2017-11-30 11:23:03 +01:00
Christian Helmuth b1c9db8a0d libc: dispatch pending signals at selective points 2017-11-24 09:02:03 +01:00
Christian Helmuth 491be000ca depot: update recipe hashes 2017-11-09 12:19:59 +01:00
Johannes Kliemann 6cbf54aefb qt5: example of qtvirtualkeyboard
Fixes #2496
2017-11-09 12:18:40 +01:00
Johannes Kliemann b0187ddc28 qt5: setup QPlatformInputContext on nitpicker
Issue #2496
Fixes #2495
2017-11-09 12:18:40 +01:00
Alexander Senier 520eedb829 libc: Signal ELOOP if file not found and O_NOFOLLOW set 2017-11-09 12:18:40 +01:00
Christian Prochaska 547cc06976 ram_fs: throw exception when unlinked node gets accessed
Fixes #2536
2017-11-09 12:18:05 +01:00
Christian Helmuth 30948a4b0d depot: update recipe hashes 2017-11-06 13:57:25 +01:00
Josef Söntgen 3b5a34c163 libc: fix DIOCGMEDIASIZE handling in VFS plugin
Use the provided argp pointer to store the result but bail out early if
it points into the void.

Issue #2558.
2017-11-06 13:57:24 +01:00
Christian Helmuth b0683a5acf Increase test RAM quotas for sel4 64-bit 2017-11-06 13:57:23 +01:00
Christian Helmuth d67db5cd74 Increase timeouts for some tests on Qemu 2017-11-06 13:57:23 +01:00
Stefan Kalkowski 61739de2f4 depot: recipe for pcre library
Issue #2446
2017-11-06 13:57:23 +01:00
Christian Helmuth 88a3fda36a netty: check result of UDP sendto 2017-11-01 08:39:49 +01:00
Alexander Boettcher d18262da1f libc: add mempool for rwx memory
Issue #1723
2017-10-20 11:45:20 +02:00
Alexander Boettcher e87b322616 libc: support executable memory allocations
in internal memory allocator used by libc and vbox*

Issue #1723
2017-10-20 11:45:20 +02:00
Christian Helmuth ee4ee6a8ac depot: update recipe hashes 2017-10-19 13:31:18 +02:00
Martin Stein e5b9a6cc8b nic_router: rework round-trip-time handling
Do not use two times the RTT for the lifetime of links but use it as
it is configured to simplify the usage of the router. Internally, use
Microseconds/Duration type instead of plain integers.

Ref #2490
2017-10-19 13:29:45 +02:00
Christian Helmuth 23f65803fa libc: update recipe for resolv integration 2017-10-05 17:40:05 +02:00
Emery Hemingway 226fcbc02f Remove remote shell support from libc
The remote shell facilities are past deprecation and there is an
obligation to prevent their use rather than to support them. This patch
removes the related function definitions from 'unistd.h', which have not
been been included in the Genode libc ABI regardless.

Fix #2530
2017-10-05 17:40:05 +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
Christian Helmuth 170b532892 Support read-only data symbols in ABI
This also adapts existing symbol files
2017-10-05 17:40:04 +02:00
Christian Helmuth 82d20f94cd Enable writeable in ahci_drv for libc vfs tests
Thanks to Steven Harp for reporting.
2017-10-05 17:40:04 +02:00
Sebastian Sumpf 7c269cb933 qemu-usb: Handle failing packet allocations gracefully
* catch failed allocations
* if a packet allocation fails, return NAK USB packet state
* increase packet stream size to 6 MiB

fixes #2527
2017-10-05 17:40:04 +02:00
Norman Feske 4835da0f4d depot: add posix lib to api/libc archive 2017-10-05 17:40:01 +02:00
Norman Feske 15606dfc49 depot: recipe for api/stdcxx
This recipe copies the entire stdcxx library into the API archive, which
is an interim solution until we introduce a proper ABI for stdcxx. With
this current version, every user of the stdcxx ABI will implicitly build
the stdcxx library.
2017-10-05 17:40:01 +02:00
Norman Feske ace5400953 depot: recipe for src/libiconv 2017-10-05 17:40:01 +02:00
Norman Feske 2ad57d3850 libports: libiconv ABI 2017-10-05 17:40:01 +02:00
Norman Feske 9d3d7c4cb4 depot: recipes for ncurses,vim,coreutils,e2fsprogs 2017-10-05 17:39:58 +02:00
Norman Feske 0574cdf705 libports: ncurses ABI 2017-10-05 17:39:57 +02:00
Norman Feske 040e331f77 mupdf: support resizeable framebuffers 2017-10-05 17:39:57 +02:00
Emery Hemingway 8207fb8d98 libc: sync bind sock control file before continuing with listen
Fix #2512
2017-10-05 17:39:54 +02:00
Norman Feske a79378ff19 mupdf: add missing 'with_libc' call
Ref #2286
2017-10-05 17:39:54 +02:00
Martin Stein 68cd5e8004 nic_router & timer* tests: prioritize timer driver
The timer driver should always be of the highest priority to avoid
problem with timers that have low max-counter values like the PIT
with only 53 ms.

Ref #2400
2017-09-07 11:47:15 +02:00
Christian Helmuth 2ed904faab depot: update recipe hashes 2017-08-30 12:41:43 +02:00
Martin Stein 570b5a6920 libc_resolv/_lxip: fix undefined references...
... to Libc::Plugin::getdirentries, Libc::Plugin::mmap, and
Libc::Plugin::msync.

Ref #2490
2017-08-30 10:01:35 +02:00
Christian Helmuth 23b78c76cb Increase cap quota for test-smartcard 2017-08-30 10:00:01 +02:00
Christian Helmuth ae0c9e7692 Increase cap quota for usb_drv 2017-08-30 10:00:00 +02:00
Josef Söntgen bc0c78708c sdl: add OpenGL support
Issue #2507.
2017-08-30 09:59:59 +02:00
Josef Söntgen 0fa9a0dda7 sdl: adapt test programm
Issue #2507.
2017-08-30 09:59:59 +02:00
Sebastian Sumpf b9bc48dd63 mesa: split lib and API (headers)
Issue #2507.
2017-08-30 09:59:58 +02:00
Sebastian Sumpf 89cb3aa238 mesa-demos: add more examples
Issue #2507.
2017-08-30 09:59:58 +02:00
Sebastian Sumpf dbeb7410f8 mesa: adjust i965 EGL backend for Gpu session
Issue #2507.
2017-08-30 09:59:58 +02:00
Josef Söntgen 947235ee34 drm: use Gpu session for i965 driver
Issue #2507.
2017-08-30 09:59:58 +02:00
Emery Hemingway 604ff9ca2c msync and Sytem V semaphore dummies
Ref #2467
2017-08-30 09:59:57 +02:00
Emery Hemingway c2c47d2e35 libc: silence close() failure messages
Return EBADF but do not log an error for invalid descriptors.

Ref #2467
2017-08-28 16:49:51 +02:00
Emery Hemingway 2c4f0e5505 port of PCG random number generator library
http://www.pcg-random.org/
http://www.pcg-random.org/using-pcg-c.html

Ref #2477
Fix #2499
2017-08-28 16:49:51 +02:00
Emery Hemingway 1fce8d0d74 default ahci_drv and part_blk Block sessions to read-only
Add a "writeable" policy option to the ahci_drv and part_blk Block
servers and default from writeable to ready-only. Should a policy
permit write acesss the session request argument "writeable" may still
downgrade a session to ready-only.

Fix #2469
2017-08-28 16:49:51 +02:00
Christian Helmuth 2356128237 Remove unused Qemu TCP redir from autopilot scripts 2017-08-28 16:49:48 +02:00
Christian Helmuth 1f0f182151 Increase cap quota for test-pthread
The test creates 100 pthreads in a loop, which should immediately
self-destruct. Therefore, we can grant more than 130 caps.
2017-08-28 16:49:48 +02:00
Christian Prochaska 2e62d2d4be libc: construct 'Timeout' object on-demand for pthreads
Fixes #2502
2017-08-28 16:49:45 +02:00
Christian Prochaska f5afd28d1f test/libc_vfs_block: add missing 'Libc::with_libc()'
Fixes #2500
2017-08-28 16:49:45 +02:00