652 Commits

Author SHA1 Message Date
Blue
631ee32cc5 Implement WSLA API to mount and unmount Windows folders via plan9 (#13393)
* Implement WSLA API to mount and unmount Windows folders via plan9

* Better handle when the folder is manually unmounted from the guest

* Add a test case to cover non plan9 mounts

* Update test
2025-09-24 17:27:41 -07:00
Blue
d6a2f83837 Signal the VM termination event to unblock any pending call when the service stops (#13389) 2025-09-24 17:27:41 -07:00
Blue
914b81777f Add support for using Linux files as processes' file descriptors (#13382)
* Save state

* Save state

* Add support for using Linux files as processes' file descriptors

* Cosmetics

* Missing return
2025-09-24 17:27:41 -07:00
Blue
9fe5484658 Add pipeline logic to publish nuget packages in the nightly pipeline (#13337)
* Add pipeline logic to publish nuget packages in the nightly pipeline

* Yaml

* Remove condition

* Fix version number

* Fix path

* Fix path
2025-09-24 17:27:41 -07:00
Blue
e9b36a1aac Extend WslWaitForLinuxProcess test coverage (#13366) 2025-09-24 17:27:40 -07:00
Blue
28bcfe39d6 Implement WSLA API to unmount & detach disks (#13364)
* Implement WSLA API to unmount & detach disks

* Add WSL2_TEST_ONLY();

* Fix wslg path
2025-09-24 17:27:40 -07:00
Blue
3451e8213d Implement WSLA API's to query installed components, and install them when needed (#13363)
* Save state

* Save state

* Add tests

* Finalize tests

* Remove test logic
2025-09-24 17:27:40 -07:00
Blue
5438e046f9 Update setup-vm-for-tests.ps1 to include WSLA dll (#13362) 2025-09-24 17:27:40 -07:00
Blue
e44b01447d Disable Firewall in WSLA VM config (#13345)
* Disable Firewall in WSLA VM config

* Add a version check
2025-09-24 17:27:40 -07:00
Blue
82bb9a29a8 Various fixes and improvements to the WSLA VM logic (#13338)
* Various fixes in the WSLA VM logic

* Update tests

* Fix ARM build

* LF
2025-09-24 17:27:40 -07:00
Blue
c07fa29f0d Implement WSL for apps TCP port forwarding (#13299)
* Merge User/oneblue/prototype lsw to a feature/wsl-for-apps (#13278)

* Save state

* Save state

* Save state

* Get the VM booting

* VM booting

* Disk mounting

* CreateLinuxProcess

* Move to a proper API

* Implement env

* Progress on fd

* Redesign fork model

* Add process wait & signal

* Include nuget package

* Format

* Format

* Format

* Cleanup

* Format

* Format

* Format

* Fix nuspec

* Implement VM termination

* Add lsw dll

* Implement termination callbacks

* Save state

* Various fixes in API header

* Save state

* Test coverage

* Don't block all signals by default

* Writeable overlay

* Add struct keyword

* rename WslCreateVirualMachine -> WslCreateVirtualMachine

* rename Environmnent -> Environment

* rename HandleToUlong -> HandleToULong

* ensure correct amount of memory is used to create the LSW VM

* Adjust LSWVirtualMachine::AttachDisk so it does not require caller to have elevated permission

* Add missing struct keyword

* PR feedback

* PR review

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>

* Save state

* Progress

* Save state

* Move tests to socat

* Increase test coverage

* More test coverage

* Cleanup before PR

* Cleanup before PR

* Refresh branch

* Update comment

* Only run LSW tests on wsl2

* Fix missing '.0' in flight-stage.yml

* Revert "Fix missing '.0' in flight-stage.yml"

This reverts commit 9b3e9ae38f5086b201f2100bf4196a7afe14d9eb.

* PR suggestions

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-24 17:27:40 -07:00
Blue
b5769b4f97 Merge User/oneblue/prototype lsw to a feature/wsl-for-apps (#13278)
* Save state

* Save state

* Save state

* Get the VM booting

* VM booting

* Disk mounting

* CreateLinuxProcess

* Move to a proper API

* Implement env

* Progress on fd

* Redesign fork model

* Add process wait & signal

* Include nuget package

* Format

* Format

* Format

* Cleanup

* Format

* Format

* Format

* Fix nuspec

* Implement VM termination

* Add lsw dll

* Implement termination callbacks

* Save state

* Various fixes in API header

* Save state

* Test coverage

* Don't block all signals by default

* Writeable overlay

* Add struct keyword

* rename WslCreateVirualMachine -> WslCreateVirtualMachine

* rename Environmnent -> Environment

* rename HandleToUlong -> HandleToULong

* ensure correct amount of memory is used to create the LSW VM

* Adjust LSWVirtualMachine::AttachDisk so it does not require caller to have elevated permission

* Add missing struct keyword

* PR feedback

* PR review

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-24 17:27:38 -07:00
Blue
4bba074bd2
Add logic to force terminate the VM if the session lock can't be acquired for 30 seconds when the service stops (#13493) 2025-09-24 14:46:28 -07:00
Blue
c8cd16a169
Add a logging profile to collect hvsocket logs (#13510) 2025-09-24 14:46:01 -07:00
Scott Bradnick
95fcc56983
Update openSUSE Tumbleweed v20250923.0 (#13515)
Updating .appx and .wsl offerings.
2025-09-24 11:37:37 -07:00
g0tmi1k
2d976b2ef9
Bump Kali 2025.3 (#13516)
Release notes: https://www.kali.org/blog/kali-linux-2025-3-release/
2025-09-24 11:37:26 -07:00
rodeka
f8c26f7c32
fix: UnboundLocalError in create-release.py (#13499) 2025-09-22 14:18:54 -07:00
Blue
7b17a7a7ab
Add WININET_E_TIMEOUT to g_commonErrors (#13506) 2025-09-22 13:32:12 -07:00
Blue
259ec4e5a9
Remove explicit '--tags' argument from find-release.py (#13481) 2025-09-17 11:27:21 -07:00
Blue
04eb4d4e8f
Increase the MSI installation timeout to 20 minutes (#13489)
* Increase the MSI installation timeout to 20 minutes

* Increase the MSI installation timeout to 20 minutes
2025-09-17 11:27:12 -07:00
Blue
b9e74a3361
Set TargetLatestRuntimePatch to false to prevent automatic framework version increases (#13483)
* Add lock files to wslsettings target to prevent automatic nuget version increases

* Update lock

* Update lock

* Enable strict mode

* Experiment

* Save state

* Experiment

* Experiment

* Experiment

* Experiment

* Experiment

* Experiment

* Experiment

* Try to set a matching version in packages.config

* Try to set a matching version in packages.config

* Experiment

* Experiment

* Experiment

* Restore pipeline

* Experiment

* Experiment

* Experiment

* Experiment

* Experiment

* Experiment

* Simplify

* Remove lock files
2025-09-16 17:46:53 -07:00
Blue
146a7511a5
Add VID event providers to WSL log profile (#13488) 2025-09-16 14:12:38 -07:00
Blue
2eac1dafec
Configure defender process exceptions when running tests (#13470)
* Configure defender process exceptions when running tests

* Use explicit %ls

* Save state

* Save state

* Add exceptions before the package is installed

* Remove extra call
2025-09-10 19:36:25 -07:00
Ben Hillis
25f7a7b38c
Notice change from build: 129899373 (#13475)
Co-authored-by: WSL notice <noreply@microsoft.com>
2025-09-10 19:35:02 -07:00
Ben Hillis
d43b725b3d
Fix: Always use 'WSLInterop` as the binfmt name (#13467)
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-09 09:28:11 -07:00
Ben Hillis
36c077bd69
logging: add more settings to vm create begin / end events. (#13412)
* logging: add more settings to vm create begin / end events.

* pr feedback, less string allocations'

* Handle empty user module list differently

* pr feedback

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-08 15:32:35 -07:00
Ben Hillis
3e322b719c
Update Microsoft .NET and AppSDK nuget packages. (#13450)
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-09-07 12:00:21 -07:00
Scott Bradnick
94f44b692c
SLE15SP7 QU1 update (#13447)
Updating "Url" and "Sha256" for '"Name": "SUSE-Linux-Enterprise-15-SP7"'.
2025-09-03 12:46:07 -07:00
Arch Linux Technical User
513fc5c0c1
archlinux: Release 2025.09.01.145298 (#13442)
This is an automated release [1].

[1] https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/.gitlab-ci.yml
2025-09-03 08:54:16 -07:00
Carlos Nihelton
feb9ad97a4
More stable link for Ubuntu and Ubuntu-24.04 (#13418)
The existing AMD64 link (using the release name - noble in this case) will
break next year as it did two weeks ago when Ubuntu 24.04.3 LTS was
released.

The link I propose here will remain stable when the next point release
comes out, following the same pattern already in place for ARM64.

To prove my point we can use this pattern to fetch the previous version
of Ubuntu 24.04:

- This works:
https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-wsl-amd64.wsl

- This doesn't:
https://releases.ubuntu.com/noble/ubuntu-24.04.2-wsl-amd64.wsl
2025-08-22 11:03:21 -07:00
Carlos Nihelton
8de7016905
Remove Ubuntu-18.04 (#13419)
This distro is being out of standard support for a while now.
Users should really be on more recent LTS releases.
2025-08-22 11:02:58 -07:00
Blue
39b4cd8873
Various fixes in validate-modern.py (#13405)
* Various fixes in validate-modern.py

* Update distributions/validate-modern.py

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

* Fix copilot diff

* Fix copilot diff

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-18 14:07:40 -07:00
Ben Hillis
dc34ebfd8c
Fix for CVE-2025-53788 (#13392)
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-08-15 07:13:22 -07:00
Ben Hillis
fd3b858064
Relaunch the debug shell after it exits. (#13379)
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-08-13 16:31:37 -07:00
Blue
6121b56152
Disable HTTP cache when reading the distribution manifest over HTTP (#13383) 2025-08-13 11:29:25 -07:00
Copilot
17bd3716b4
Remove hardcoded --cd ~ from WSL terminal fragment profiles to support Terminal's startingDirectory (#13350)
* Initial plan

* Fix WSL terminal fragment profiles to support Terminal's startingDirectory

Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>

* clang format

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-08-11 14:08:39 -07:00
Robert Haist
267bbb7426
Update DistributionInfo.json for Debian 13 release (#13371) 2025-08-11 11:37:22 -07:00
Ben Hillis
ca1f883dd0
wslg: update to latest version which uses wslinfo --vm-id instead of env var (#13361)
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-08-08 13:29:29 -07:00
Copilot
3794ba3496
Add comprehensive GitHub Copilot instructions for WSL development (#13352)
* Initial plan

* Add comprehensive GitHub Copilot instructions for WSL repository

Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>

* Address reviewer feedback: fix build commands and test parameters

Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: benhillis <17727402+benhillis@users.noreply.github.com>
2025-08-07 17:24:23 -04:00
Kevin Jagodic
4b237351a9
Ubuntu version links updated. (#13355)
* Update DistributionInfo.json

* Update SHA256 for Ubuntu WSL distributions

* Update distributions/DistributionInfo.json

Co-authored-by: Carlos Nihelton <cnihelton@ubuntu.com>

* Update distributions/DistributionInfo.json

Co-authored-by: Carlos Nihelton <cnihelton@ubuntu.com>

---------

Co-authored-by: Carlos Nihelton <cnihelton@ubuntu.com>
2025-08-07 13:03:58 -07:00
Ben Hillis
642331364d
Switch wslinfo --vm-id to not rely on presence of VM ID environment variable (#13318)
* Switch WSLg to use wslinfo --vm-id instead of relying on environment variable

* DO NOT MERGE: bad WSLg nuget

* dead code removal

* always send response to LxInitMessageQueryVmId message

* add back invalid WslInfoMode error

* remove unneeded wsl2 check

* use temporary workaround until WSLg update is ready

* unit test update

* Update string compare

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

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2.5.10 2.6.1
2025-08-05 14:36:10 -07:00
Carlos Nihelton
b89e1f58c9
Fix json invalid utf-8 from IconPath (#13340)
When storing the IconPath value directly as a string we are subject
to unspecified behaviour as Windows stores paths as 16-bit wchar_t and
std::string doesn't convey a specific char encoding.

To be specific we need to access the icon path in its native format
(which we assume to be std::wstring) and convert it to multibyte.
2025-08-05 11:27:20 -07:00
Arch Linux Technical User
8106556cec
archlinux: Release 2025.08.01.138229 (#13319)
This is an automated release [1].

[1] https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/.gitlab-ci.yml
2025-08-04 11:14:59 -07:00
Jerry Jones
3524feba77
grammar docfixes (#13314) 2025-07-31 08:19:42 -07:00
Blue
0c0ca04ab0
Localization change from build: 127406956 (#13316)
Co-authored-by: WSL localization <noreply@microsoft.com>
2025-07-31 08:13:52 -07:00
Blue
bba5af9aea
Fix the 'WriteWslConfig' test case to reset .wslconfig when done (#13305)
* Save state

* Fix the tests
2025-07-29 15:35:35 -07:00
Josh Soref
6d18bf5074
Spelling (#13289)
* link: report them to the Microsoft Security Response Center (MSRC)

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* link: Microsoft Security Response Center

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: , or

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: adapters

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: at

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: attaching them to the bug, please send them to wsl-gh-logs@microsoft.com with the github issue number in the subject, and include a link to your github issue comment in the message body.

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: disk

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: effect

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: for the file

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: for the mount to be available

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: grandchild

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: last pid

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: nonexistent

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: on which the...

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: path

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: pseudo

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: script

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: service, the

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: session

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: strip

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: that a

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: that the

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: the first one we find in the test

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: to which

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: waitpid

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: whether

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: while the relay was being set up,

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: with an

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: without specifying

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

---------

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: Ben Hillis <benhillis@gmail.com>
2025-07-29 11:24:39 -07:00
Ben Hillis
4867250d11
install: do not attempt to install distros if a reboot is required (#13298)
* install: do not attempt to install distros if a reboot is required

* nfc: update comment

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
2025-07-29 08:48:52 -07:00
Blue
3c800c8661
Update the test packages drop (#13300) 2025-07-29 07:34:32 -07:00
Blue
494808d308
Localization change from build: 127017409 (#13290)
Co-authored-by: WSL localization <noreply@microsoft.com>
2025-07-25 10:10:44 -07:00