socketpair() is used in libnio/libnet to create "marker FDs", which are
only used as destination FD in dup2(). So it is safe to just reserve
those descriptors. Otherwise, calling functions may use uninitialized
stack variables after successful return of socketpair(), which results
in closing arbtrary fds later on.
Fixes#192
This patch contains changes to the libSDL port that were needed to build
the Hatari emulator using cmake.
- Since SDL programs cannot use the posix library (because sdl's init
function needs a way to get hold of the Genode env), the sdl_main
library must be used instead of the posix library. The sdl_main
code implements the Libc::Component::construct function for the
final binary. However, 3rd-party build systems are not aware of this
Genode-specific peculiarity and thereby create binaries that leave
libsdl uninitialized. This patch adds the sdl_main to libsdl by
default and thereby eliminates the need for specifying the extra
sdl_main library. Customizing the Libc::Component::construct is
still possible by overriding the library-provided implementation
in the main program.
- A few missing config definitions are added to compile Hatari
successfully.
- Avoid reliance on the include/SDL convention in SDL_config.h
- Cmake relies on the upper-case naming of the library with no way
to tweak this convention. So we install an symlink named `SDL.lib.so`
when installing the library into the <build-dir>/bin/ directory.
Fixes#161
This patch also prevents the dynamic loading of the rtc_drv when
executed on Linux, which is needed because this version of the rtc_drv
is a hybrid Linux/Genode program.
The "io_editor" component is a simple Qt5 text editor that writes to
standard out and reads back from stdin. It is intended for use with an
interactive interpreter, such as a shell. The "terminal_editor" depot
package is provided to connect the editor to a terminal server.
This package relies on its configuration to be supplied by a launcher
file or through the deploy configuration. How to protect the secret at
rest is an open issue.
A client of the Terminal service that connects to a shell on a remote
SSH server.
It is configured with a "host" file found in its root directory with the
following format:
<host name="sdf-eu.org" port="22" user="root" pass="foo" known="yes"/>
The port, pass, and known attributes are optional. The client will first
try to authenticate with a keypair found in the root directory with a
fallback to password authentication. The client will automatically
disconnect from hosts that are not found in "/known_hosts", unless the
"known" attribute is set to the negative in the host file.
Provides recipes for deploying python3 on sculpt.
Also adds the feature of triggering the execution of python scripts
on ROM updates (see python3.run).
The vfs is now populated with the python libs using a tar file system.
This is necessary because providing the zip from the rom did not work on NOVA.
The issue here is that python's zipimporter uses fseek with SEEK_END to
find the zip header. Unfortunately, the file size cannot be correctly
determined from the ROM session (see #1920) so that the fseek fails.