merge master -> feature/wsl-for-apps#14185
Merged
benhillis merged 3 commits intofeature/wsl-for-appsfrom Feb 9, 2026
Merged
Conversation
benhillis
commented
Feb 9, 2026
| - 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" |
Member
Author
There was a problem hiding this comment.
some of the wsla binaries were missing, went ahead and added them here.
Contributor
There was a problem hiding this comment.
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
bin2cpioPerl tooling and removed the StrawberryPerl dependency. - Added
CreateCpioInitrd()insrc/windows/common/filesystem.*and wired it into MSI install/uninstall viaCreateInitrd/RemoveInitrdexports inwslinstall. - Added/updated Windows tests to validate the generated CPIO archive and
initrd.imglifecycle 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. |
* 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
d36f71a to
4442530
Compare
OneBlue
approved these changes
Feb 9, 2026
Member
Author
|
I will address these copilot comments in a follow-up to the master branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.