Commit Graph
62 Commits
Author SHA1 Message Date
mirkobrombin 588f72baa9 chore: merge pull request #92 from rayzorben/fix/winrt-activation-imports 2026-10-31 08:15:50 +00:00
mirkobrombin 1adc182ba7 chore: build the installer stack from the own components
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Switched provisioning and packaging to the own components, removed the replaced ReactOS sources and the xmllite patch that no longer applied.
2026-10-31 07:10:22 +00:00
Raymond Bennett 25a223eb04 fix: load the Windows Runtime component for programs that only import its activation
The shell component holds the Windows Runtime's activation (RoInitialize,
RoGetActivationFactory and friends), which combase and runtimeobject
forward to once it is loaded. It was loaded only for programs importing
COM, the shell or user32, so a program that imports just combase,
runtimeobject or the api-ms-win-core-winrt API sets got the placeholder
that registers no class, and activated nothing.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the loading condition, its comment and the winrt_import_client test
2026-10-30 08:17:33 -07:00
mirkobrombin 7b645bce72 chore: replace the ReactOS regsvr32
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote regsvr32 as a new command-line tool from its public description, with tests for its documented exit codes.
2026-10-30 12:43:02 +00:00
mirkobrombin f5d703e8a0 fix: load every component in rundll32 2026-10-30 11:20:47 +00:00
mirkobrombin f4c3da131b feat: add rundll32
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote rundll32 as a new command-line tool from its public description, listed it for prefixes and packages, and added tests.
2026-10-30 10:34:51 +00:00
mirkobrombin 3514eda6d8 chore: merge pull request #80 from rayzorben/feat/private-assemblies 2026-10-30 06:33:00 +00:00
mirkobrombin e28ec6d6d4 chore: merge pull request #61 from rayzorben/feat/dll-search-path 2026-10-30 06:32:59 +00:00
Raymond Bennett 765170acbb feat: find private side-by-side assemblies, also for a library's own manifest at start
Ruby ships the libraries its runtime library imports (libgmp-10.dll and
libwinpthread-1.dll) as a private assembly, ruby_builtin_dlls, in a folder of
that name beside the program, and names it in the runtime library's own
manifest (resource 2). Raven looked for assemblies only in the side-by-side
store and applied a library's own manifest only to libraries loaded later,
so the program could not start. An assembly without a public key token is
now looked for as Windows looks for a private assembly: <name>.manifest in
the program's folder, then <name>\<name>.manifest, with its files beside the
manifest. The libraries a program starts with resolve their imports through
their own manifest first, as later loads already did, and a library found
that way keeps its file for GetModuleFileName. Ruby gets past its libraries
and then stops on its own check of the C runtime (see the session report).

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: private assembly lookup and the start-up use of library manifests
(cherry picked from commit 03b2f65f8289b394126f58e94f8b4126f35d57d6)
2026-10-29 02:26:36 -07:00
Raymond Bennett 28199707a9 feat: search the current directory and PATH for libraries
The standard search order for a library ends with the current directory and
the folders of the PATH variable; Raven stopped at the system folders, so a
program built with llvm-mingw's clang++ could not find libc++.dll on PATH,
and LoadLibrary never found a library there either.

The libraries a program imports are now also looked for in the directory it
starts in and the folders of its PATH (from the environment it was given, or
RAVEN_GUEST_PATH for a program started from the host), and LoadLibrary's
search ends with the PATH the program has at the time.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the search step and the PATH helpers
(cherry picked from commit 1865571d0ccd6e36ace096193e9a7bf71de48161)
2026-10-28 23:19:08 -07:00
Raymond Bennett 36cd7a58c7 feat: find d3d12.dll where the other Direct3D libraries come from
Windows always has d3d12.dll, so a program that links it starts even when it
never draws; qsv does. The loader looked for the DXVK libraries only. It now
finds d3d12.dll and d3d12core.dll in the same places, and
RAVEN_D3D_DIRECTORY may name several directories separated by colons, such
as a DXVK build and a vkd3d-proton build.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the loader rule
(cherry picked from commit 37bbabe709cd5bcb39812005fcdf125e1664e1c0)
2026-10-28 23:14:32 -07:00
mirkobrombin 84a58b75f2 chore: merge main into the command-line tools 2026-10-28 16:32:10 +00:00
Ray Bennett 47132d123c fix: keep prefix setup's regsvr32 runs off the terminal (#34)
The first start of a prefix printed "Native process exited with status 0" once for each registration.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Sent the setup runs' standard output to /dev/null.
2026-10-28 16:50:14 +01:00
Raymond Bennett 39e1ca33f0 feat: add the command-line tools a prompt has beside cmd
find, findstr, more, sort, where, xcopy, attrib, timeout, choice, whoami, hostname, tasklist, taskkill and reg, one program
each for both widths, copied into System32 and SysWOW64.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the fourteen tools and their shared runtime from Microsoft's public command reference, and the batch-file test.
2026-10-27 23:19:39 -04:00
Raymond Bennett ef953e9325 feat: start console programs on the terminal and give every prefix a cmd.exe
A console program started from a terminal gets it as its console without --stdio=inherit. CreateProcess runs .bat and .cmd
files through cmd /c, as Windows does. The console code pages start as UTF-8, since Raven has no table for code page 437.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the subsystem check, the batch-file launch, a first command processor from Microsoft's public cmd documentation and its test.
2026-10-27 23:19:39 -04:00
mirkobrombin 1ce0c0324c feat: add Direct3D 10.1 device creation over d3d10core 2026-10-27 17:21:52 +00:00
mirkobrombin cea6ca7a7a feat: resolve delay-loaded system libraries to the runtime's components
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Made the loader follow delay imports when choosing components, with a delay-load test.
2026-10-27 10:32:01 +00:00
mirkobrombin 06553d4e9b feat: add the AccPropServices class, COM global streams and CoInitializeSecurity
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the AccPropServices component, the global stream and CoInitializeSecurity handlers and their tests from the public headers and documentation.
2026-10-27 08:46:04 +00:00
mirkobrombin 44a593867c feat: run an SSH client's terminal and file transfer windows 2026-10-26 23:13:38 +00:00
mirkobrombin 830f6a0c94 feat: run only a named program's threads in parallel 2026-10-25 22:04:55 +00:00
mirkobrombin 5ca60c6e94 feat: add an experimental X11 desktop backend
Refs #10

Assisted-by: Claude Code:claude-opus-5.5
AI-Scope: wrote the XCB presentation, Vulkan and EGL surface support, the --desktop=x11 option and the Xvfb tests from the issue #10 plan
2026-10-25 16:17:49 +00:00
mirkobrombin 1fc462a544 fix: preserve handles and security tokens across processes 2026-10-25 08:52:34 +01:00
mirkobrombin 5a3e759248 fix: resolve runtime dependencies during prefix setup
Assisted-by: Codex:GPT-6
AI-Scope: Reuse parent prefix preparation for child processes and verify child startup.
2026-10-25 05:21:48 +01:00
mirkobrombin 14d44fb628 feat: add a native OpenGL bridge 2026-10-25 01:39:15 +02:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
Mirko Brombin 1d8a861015 feat: run the Windows Installer server and its custom actions in a session whose window station is not visible 2026-10-12 13:26:25 +00:00
Mirko Brombin ad47486595 feat: enable .NET Framework 3.5 through DISM and Features on Demand from its offline package, with regedit and the case tables it needs 2026-10-12 13:26:25 +00:00
Mirko Brombin d134bb9e2d feat: pass the whole 32-bit exit code of a child process to its parent 2026-09-23 16:32:57 +00:00
Mirko Brombin ea32d26a36 feat: load .NET images, mixed and nested libraries, and unload a library whose DllMain refuses 2026-09-23 00:12:49 +00:00
Mirko Brombin a9fe7807dc feat: build the ReactOS setup helpers and setup API as components that INF installers run through 2026-09-21 23:47:16 +00:00
Mirko Brombin 1074a7e5be feat: add snapshot the prefix before installations, restore it with one command, and carry out what installers leave for a restart 2026-09-21 19:09:11 +00:00
Mirko Brombin 177f41973e feat: load the libraries a program's side-by-side assemblies declare from their WinSxS folders 2026-09-21 15:02:08 +00:00
Mirko Brombin 6c33a2eeac feat: start 32-bit programs named like installers elevated, as installer detection does 2026-09-21 14:17:12 +00:00
Mirko Brombin 499f30318a feat: add a control panel in the Windows 11 Settings layout for the visual style, installed apps and runtime options 2026-09-21 11:15:42 +00:00
Mirko Brombin b888778ee1 feat: build the imaging stack, urlmon and the bind contexts from ReactOS and serve them as components 2026-09-21 09:15:25 +00:00
Mirko Brombin 11997af41b feat: build msxml3, libxslt, atl100, oleaut32 and regsvr32 from ReactOS and register the component classes in each prefix 2026-09-21 07:15:16 +00:00
Mirko Brombin 8fe7b1e18f feat: build rpcrt4 from ReactOS and serve it as a component instead of an unanswered system library 2026-09-21 05:40:59 +00:00
Mirko Brombin 91e09443bb feat: build msiexec, keep it in the system directories of both widths, and install and remove packages through it in the tests 2026-09-21 04:34:23 +00:00
Mirko Brombin 3fc2448977 feat: build the Windows Installer, cabinet, side-by-side and structured storage components from ReactOS and serve them to programs 2026-09-21 06:00:50 +02:00
Mirko Brombin b264bbd6c6 feat: find shared libraries in the system directory, keep the system's own libraries the runtime's, and redirect System32 for 32-bit programs 2026-09-21 05:13:14 +02:00
Mirko Brombin a95af2bb28 feat: give opened streams msvcrt's lock so programs that lock them no longer corrupt the heap 2026-09-04 05:59:42 +02:00
Mirko Brombin bd7fe3c8bd feat: add keyed events, inherited working directory, msvcrt locks and process exit that ends other threads first 2026-09-04 05:41:39 +02:00
Mirko Brombin ab62d80bea feat: serve leaf API calls without stopping the guest, run blocking Vulkan calls off the scheduler and keep input in order 2026-09-04 04:31:00 +02:00
Mirko Brombin d31a7641ed feat: run a Direct3D 11 game with msvcrt, wave audio, raw mouse input, cursor confinement and system fonts 2026-09-03 22:48:04 +02:00
Mirko Brombin 5a6297633c feat: show Steam's sign-in window with cross-process window surfaces, web fonts, elevation and service configuration 2026-09-03 18:36:13 +02:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00
Mirko Brombin 66087052d8 feat: run Chromium's helper processes with DirectWrite, named pipes, jobs, inherited handles and shared sections 2026-09-03 06:06:54 +02:00
Mirko Brombin 966069f911 feat: run Steam to its web helper with real sockets, TLS chains, child environments and image protection 2026-09-03 02:50:56 +02:00
Mirko Brombin a7256dafac feat: run the Steam installer to Finish with child processes, shell links and sockets 2026-09-03 01:15:07 +02:00
Mirko Brombin 39ef22a7a4 feat: load static dependencies of 32-bit programs and run Direct3D 11 through the 32-bit DXVK 2026-08-02 10:05:42 +02:00