* 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
* 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>
* 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>
* Configure defender process exceptions when running tests
* Use explicit %ls
* Save state
* Save state
* Add exceptions before the package is installed
* Remove extra call
* 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>
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
* 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>
* 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>
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.
* 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>
* install: do not attempt to install distros if a reboot is required
* nfc: update comment
---------
Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>