Skip to content

merge master -> feature/wsl-for-apps#14185

Merged
benhillis merged 3 commits intofeature/wsl-for-appsfrom
user/benhill/merge_master
Feb 9, 2026
Merged

merge master -> feature/wsl-for-apps#14185
benhillis merged 3 commits intofeature/wsl-for-appsfrom
user/benhill/merge_master

Conversation

@benhillis
Copy link
Copy Markdown
Member

No description provided.

@benhillis benhillis requested a review from a team as a code owner February 9, 2026 17:23
Copilot AI review requested due to automatic review settings February 9, 2026 17:23
- target: "wsl;libwsl;wslg;wslservice;wslhost;wslrelay;wslinstaller;wslinstall;initramfs;wslserviceproxystub;wslsettings;wslinstallerproxystub;testplugin;wslaclient;wsltests"
pattern: "wsl.exe,libwsl.dll,wslg.exe,wslservice.exe,wslhost.exe,wslrelay.exe,wslinstaller.exe,wslinstall.dll,wslserviceproxystub.dll,wslsettings/wslsettings.dll,wslsettings/wslsettings.exe,wslinstallerproxystub.dll,wsldevicehost.dll,WSLDVCPlugin.dll,testplugin.dll,wsldeps.dll,wslaclient.dll"
- target: "wsl;libwsl;wslg;wslservice;wslhost;wslrelay;wslinstaller;wslinstall;wslserviceproxystub;wslsettings;wslinstallerproxystub;testplugin;wslaclient;wslaservice;wslaserviceproxystub;wsladiag;wslc;wsltests"
pattern: "wsl.exe,libwsl.dll,wslg.exe,wslservice.exe,wslhost.exe,wslrelay.exe,wslinstaller.exe,wslinstall.dll,wslserviceproxystub.dll,wslsettings/wslsettings.dll,wslsettings/wslsettings.exe,wslinstallerproxystub.dll,wsldevicehost.dll,WSLDVCPlugin.dll,testplugin.dll,wsldeps.dll,wslaclient.dll,wslaservice.exe,wslaserviceproxystub.dll,wsladiag.exe,wslc.exe"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some of the wsla binaries were missing, went ahead and added them here.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the Perl-based initrd.img generation flow and replaces it with a Windows-native CPIO (“newc”) initrd generator, invoked during MSI install/uninstall via new wslinstall.dll custom actions. It also updates tests and build/packaging inputs to reflect that initrd.img is no longer shipped as a prebuilt artifact.

Changes:

  • Deleted the legacy bin2cpio Perl tooling and removed the StrawberryPerl dependency.
  • Added CreateCpioInitrd() in src/windows/common/filesystem.* and wired it into MSI install/uninstall via CreateInitrd/RemoveInitrd exports in wslinstall.
  • Added/updated Windows tests to validate the generated CPIO archive and initrd.img lifecycle across install/upgrade/uninstall.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tools/bin2cpio/bin2cpio.pl Removed Perl script previously used to generate initrd CPIO.
tools/bin2cpio/CPIOImage.pm Removed Perl CPIO module implementation.
test/windows/SimpleTests.cpp Added unit test validating generated CPIO initrd structure.
test/windows/InstallerTests.cpp Added installer lifecycle test for initrd.img; parameterized version validation helper.
src/windows/wslinstall/wslinstall.def Exported new MSI custom actions CreateInitrd / RemoveInitrd.
src/windows/wslinstall/DllMain.cpp Added WSL_INSTALL_LOG helper macro and implemented CreateInitrd/RemoveInitrd custom actions.
src/windows/service/exe/WslCoreVm.cpp Updated comment clarifying tools folder usage as default rootfs path.
src/windows/common/filesystem.hpp Declared CreateCpioInitrd() API.
src/windows/common/filesystem.cpp Implemented Windows-native CPIO (newc) initrd writer.
src/linux/init/main.cpp Logged WSL package version to kmsg during init startup.
src/linux/init/CMakeLists.txt Removed initramfs custom target that depended on Perl tooling.
packages.config Removed StrawberryPerl NuGet dependency.
msipackage/package.wix.in Stopped shipping initrd.img as a file; added sequencing for initrd create/remove custom actions.
msipackage/CMakeLists.txt Removed initrd.img from Linux binaries list and dropped initramfs dependency.
CMakeLists.txt Removed StrawberryPerl discovery and BIN2CPIO variable.
.pipelines/build-stage.yml Updated build target list/patterns to remove initramfs and include additional targets.

Comment thread test/windows/SimpleTests.cpp
Comment thread src/windows/common/filesystem.cpp
Comment thread src/windows/common/filesystem.cpp
Comment thread msipackage/package.wix.in
Comment thread msipackage/package.wix.in
benhillis and others added 3 commits February 9, 2026 09:39
* Move from shipping the initrd to generating during package install.

* pr feedback

* working

* adjust custom action conditions

* update initrd test to cover more cases

* Update msipackage/package.wix.in

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* use stack buffer

* move initrd helper to filesystem.cpp and add unit test

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

s
@benhillis benhillis force-pushed the user/benhill/merge_master branch from d36f71a to 4442530 Compare February 9, 2026 17:40
@benhillis benhillis enabled auto-merge February 9, 2026 18:44
@benhillis
Copy link
Copy Markdown
Member Author

I will address these copilot comments in a follow-up to the master branch.

@benhillis benhillis merged commit 38322a3 into feature/wsl-for-apps Feb 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants