Commit Graph
68031 Commits
Author SHA1 Message Date
Undefine 1a43db2d50 Kernel: Remove two remaining uses of fallible APIs 2026-11-06 20:34:06 +01:00
Undefine d89d71596d Kernel: Improve error propagation in ProcessExposed 2026-11-06 20:34:06 +01:00
Undefine 8ab8e7db0f Kernel: Improve error propagation in CommandLine code 2026-11-06 20:34:06 +01:00
Undefine 74ea69459c LibVT: Don't use fallable StringBuilder APIs in code used by the kernel
While this is quite ugly for now, realistically it points out a real
issue and this change is needed so the kernel compiles after a later
change.
2026-11-06 20:34:06 +01:00
Undefine 3e01ecd498 LibEDID: Clone a ByteBuffer using clone
The copy operator will be unavailable in the kernel, so use the clone
function explicitly.
2026-11-06 20:34:06 +01:00
Undefine 147b06ad2f AK: Add ByteBuffer::clone
This adds a function to clone a ByteBuffer with a way to propagate
errors if they occur.
2026-11-06 20:34:06 +01:00
Undefine adede105a1 LibDeviceTree: Switch two calls to try_appendff
The rest of the calls used the fallible APIs already, but those were
missed.
2026-11-06 20:34:06 +01:00
Undefine 6c0c3c2f17 Kernel: Use try_append in FATFS SFNUtilities 2026-11-06 20:34:06 +01:00
Undefine d1cb637ec3 Kernel: Propagate errors better in x86_64 ProcessorInfo
This used some of the non fallible APIs which will be removed from the
kernel.
2026-11-06 20:34:06 +01:00
Sönke Holz d2d78ed715 LibC: Add Kernel/API/POSIX/winsize.h to HEADERS
I forgot to do this in be0e1aaf8f.

This makes us actually install that header into the sysroot, unbreaking
ports like openssl, which previously failed to build with:
"fatal error: Kernel/API/POSIX/winsize.h: No such file or directory"
2026-11-05 14:53:49 +01:00
Lucas Chollet 3e6b6a88c5 LibSSH+SSHServer: Provide a properly set environment to children
Before this patch, exec commands were inheriting the environment of the
SSHServer instance while interactive shell spawned with an almost empty
env. Now, both paths start with the same basic environment and also
include modifications requested by the ssh client.

This should improve compatibility in a lot of situations but most
visibly it makes syntax highlighting and autocompletion work in
interactive shells.

The list of default environment variables is heavily inspired by what
OpenSSH is doing. Compared to what it produces on my system, we only
lack XDG_*, SSH_* and DBUS_SESSION_BUS_ADDRESS variables. As noted in
the FIXME the value of PATH also differs.
2026-11-05 09:17:57 +01:00
Lucas Chollet fe92281611 LibCore: Support passing environment variables to Process::spawn 2026-11-05 09:17:57 +01:00
Lucas Chollet 7cba67db00 LibCore: Turn ArgvList into a more general C-string array
This will be soon be used for the environment too. And put it in an
anonymous namespace while at it.
2026-11-05 09:17:57 +01:00
Lucas Chollet e984357e1f LibCore: Move the explicit cast to ArgvList::get
This makes the call site easier to read.
2026-11-05 09:17:57 +01:00
Linus Groh e5966bd819 Ports: Build kiesel with Zig 0.17.1
Combined revert of c08851738 and the version bump.
2026-11-04 10:07:57 +01:00
Linus Groh b30c321e75 Ports: Update Zig to 0.17.1
The dropped patches were upstreamed[1][2].

Also remove the manual fetch and update of the vendored Zig in
zig-bootstrap, upstream does this as part of the release process[3].

[1]: https://codeberg.org/ziglang/zig/commit/245d477879b3b1646ef42c53317e94464325ccaa
[2]: https://codeberg.org/ziglang/zig/commit/ffafcac41573a73f613d9cd2f241d7217a9cca16
[3]: https://codeberg.org/ziglang/zig-bootstrap/commit/b31ecaa6627d4b9e5509f84117a65978909a2700
2026-11-04 10:07:57 +01:00
Sönke Holz be0e1aaf8f Kernel: Make both Ioctl.h and POSIX/termios.h define struct winsize
FreeBSD also makes it available from both sys/ioctl.h and termios.h.
glibc doesn't have the POSIX 2024 tc{set,get}winsize() wrappers yet,
so it doesn't even define it in termios.h at the moment.

LLVM relies on sys/ioctl.h defining struct winsize, so the llvm port and
the zig port failed to build after 312b4440bf.
2026-11-04 10:04:39 +01:00
Lucas Chollet 31d7c87c68 LibSSH/SFTP: Allow relative paths in the OPEN command
Now that SSHServer sets us in the user's home directory, there is no
need to block them as they will resolve correctly according to the spec:
"File names starting with a slash are "absolute", and are relative to
 the root of the file system.  Names starting with any other character
 are relative to the user's default directory (home directory)."

Also note that we were only refusing relative paths in the OPEN command,
but STAT was already accepting them (and resolving them incorrectly).
2026-11-04 09:47:43 +01:00
Lucas Chollet cf26f5faa4 SSHServer: Set the current directory to the user's home on login
We were already changing the home directory for interactive shells, but
with this change single commands also get executed from the user's home
and SFTP relative paths will also resolve from the correct directory.
(Relative paths are still not allowed in the SFTP layer, but everything
will fall in place once we remove that restriction.)
2026-11-04 09:47:43 +01:00
Lucas Chollet 280b0b2bd5 SSHServer: Send the actual exit status of commands
We now report the actual value instead of simply returning 0/-1. We're
now using the conventional representation for signal-terminated
processes and return an exit-status of 128 + signal number.
2026-11-04 09:47:43 +01:00
Lucas Chollet 207c2f6c5f SSHServer: Use the user's default shell instead of hardcoding it 2026-11-04 09:47:43 +01:00
Sönke Holz 312b4440bf Kernel: Move struct winsize definition to API/POSIX/termios.h
POSIX requires it to be defined in this header:
https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/termios.h.html
"The <termios.h> header shall define the winsize structure, [...]"

This unbreaks the readline port after 8e34c970b5, which made it
use tc{get,set}winsize() instead of the ioctl.
Previously, it failed to compile with a -Wincompatible-pointer-types
warning:

"expected 'struct winsize *' but argument is of type 'struct winsize *'"

ioctl() takes the argument as a vararg, so it didn't trigger this
warning.
2026-11-03 13:18:30 -05:00
Lucas Chollet d85d1a984f LibC: Set the pty size in openpty
This aligns the behavior with both Linux and OpenBSD (and probably all
other implementations of openpty).

This bug was visible in SSHServer, indeed when using an interactive
shell, the start pty size was always the default (80x25) instead of
whatever the client's window is using. It is quite visible with `top`,
which now fills the whole window :^)
2026-11-03 12:10:04 +01:00
Lucas Chollet ceed7af2e2 SSHServer: Add support for the window-change request
With this patch, SSHServer is able to update the pty on the server when
the size of the client's window is updated.

Resizing your terminal emulator's window while being connected to
SSHServer no longer make you disconnect.

While the implementation is functional, it seems to have quite more
latency than with a regular SSH server, so visual artifacts may appear
when aggressively resizing the window.
2026-11-03 12:10:04 +01:00
Lucas Chollet 76175e09ba LibCore: Add wrappers for tc{get,set}winsize
On Serenity, this uses the equivalent LibC function, otherwise it
defaults to the pretty standard ioctl equivalent.

At the time of writing, it seems that only musl, BSDs and Serenity have
the standardized POSIX function.
2026-11-03 12:10:04 +01:00
Lucas Chollet 8e34c970b5 LibC: Implement tc{get,set}winsize functions
We already support the operation with ioctl, these functions are simply
the POSIX-compatible way of doing it. They were added in POSIX 2024.
2026-11-03 12:10:04 +01:00
Lucas Chollet 57d7d52024 LibSSH+SSHServer: Add support for interactive shells
Until now, we could only use SSHServer to remotely run single commands
(e.g. `ssh remote command_to_run`). With this patch, we now support
using ssh in the most usual way: starting a remote interactive shell and
then running commands on the host.
2026-11-03 09:31:27 +01:00
Lucas Chollet f680882469 LibSSH+SSHServer: Put child-managing features in a parent of ExecData
This parent will contain the data used for streaming stdin/stdout, the
pid of the child process and a few basic methods required for
subsystems. This refactoring will allow us to easily introduce another
kind of child-managing subsystem, used for interactive shells.
2026-11-03 09:31:27 +01:00
Lucas Chollet dd293dcef1 LibSSH+SSHServer: Add support for the pty-req channel request
This is a step towards supporting interactive shells with SSHServer.
This request includes the options to create the pty associated with the
shell.

Note that we don't validate or do anything else with the options
themselves. We just store them, and any issues with the values will be
discovered when we actually create the pty during the handling of the
"shell" request.
2026-11-03 09:31:27 +01:00
Stephan Unverwerth ac779f06cc LibSoftGPU: Improve depth interpolation precision
This should get rid of various artifacts when exact depth equality is
needed, such as when using GL_EQUAL or similar depth functions.
2026-11-02 18:27:57 -05:00
Tgpi7 8e6e5a697c Base: Add Spanish-latam keymap 2026-11-02 12:09:44 +01:00
Eduardo Casadei 78085e276d LibShell: Stop reading error source text directly from the source file
Use the saved source text instead of trying to read it directly from the
source file, as the source file may be a relative path and the script
could have changed the current working directory which would make the
path invalid.
2026-11-02 09:33:46 +01:00
Eduardo Casadei 47b533f8d8 LibShell: Save the source text for script files
The function for running a script file already reads its source data
into a buffer, so also set the source text to it.
2026-11-02 09:33:46 +01:00
Linus Groh 68500490e7 Ports: Update vim to 9.2.1254 2026-11-01 19:28:03 -05:00
Linus Groh 8df61c6908 Ports: Update qemu to 11.1.3 2026-11-01 19:28:03 -05:00
Linus Groh d10b070281 Ports: Update python3 to 3.15.2 2026-11-01 19:28:03 -05:00
Linus Groh d8fa0b6105 Ports: Update patchelf to 0.19.3 2026-11-01 19:28:03 -05:00
Linus Groh c5f0eb07fb Ports: Update luv to 1.53.0-1 2026-11-01 19:28:03 -05:00
Linus Groh 9cb69743a2 Ports: Update libslirp to 4.9.7 2026-11-01 19:28:03 -05:00
Linus Groh ee701da65f Ports: Update libmikmod to 3.3.16 2026-11-01 19:28:03 -05:00
Linus Groh ff5c685582 Ports: Update libiconv to 1.19.1 2026-11-01 19:28:03 -05:00
Linus Groh 2238a7d3c6 Ports: Update libarchive to 3.8.11 2026-11-01 19:28:03 -05:00
Linus Groh 7c71f1fc59 Ports: Update fribidi to 1.0.18 2026-11-01 19:28:03 -05:00
Linus Groh 968fb434c7 Ports: Update composer to 2.11.1 2026-11-01 19:28:03 -05:00
Sönke Holz cb9e1feee3 LibGL+LibSoftGPU: Support GL_{UN,}PACK_SKIP_{PIXELS,ROWS}
We already store these glPixelStorei() parameters in
m_unpacking_parameters/m_packing_parameters, but didn't do anything
with them.

Setting these parameters is equivalent to offsetting the input/output
texture data pointer by a constant offset.
2026-11-01 21:27:28 +01:00
Undefine b339c4d6ea LibACPI: Add a missing warnln to dbgln define
This was missed in TableStream.cpp.
2026-11-01 15:08:28 +01:00
Undefine b25994bb29 Tests: Add some tests for new LibACPI features
Just as the previous test, the AML table was compiled with using
IASL 20260930 without any flags.
2026-11-01 15:08:28 +01:00
Undefine 5d5f089490 LibACPI: Add an evaluate overload for passing the path as StringView 2026-11-01 15:08:28 +01:00
UndefineandRatcheT2497 e18c3fbcc5 LibACPI: Add missing predefined namespace objects
Now that we have all the primitives we need, let's add the missing
objects.

Co-authored-by: RatcheT2497 <[email protected]>
2026-11-01 15:08:28 +01:00
UndefineandRatcheT2497 1b1cd99667 LibACPI: Add support for reading ProcessorOp
While this opcode is deprecated, it is still widely used and we need to
support it.

Co-authored-by: RatcheT2497 <[email protected]>
2026-11-01 15:08:28 +01:00