Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
3167b72
test: enable virtiofs tests and enable WSLG during testing (#14387)
benhillis Mar 10, 2026
2e75df3
chore(distributions): Almalinux auto-update - 20260311 14:52:02 (#14404)
almalinuxautobot Mar 11, 2026
515e790
Fix CVE-2026-26127: bump .NET runtime from 10.0.0 to 10.0.4 (#14421)
benhillis Mar 11, 2026
24c3a9a
Notice change from build: 141806547 (#14423)
OneBlue Mar 12, 2026
e5cb458
Ship initrd.img in MSI using build-time generation via powershell scr…
benhillis Mar 13, 2026
81dc9a3
virtiofs: update logic so querying virtiofs mount source does not req…
benhillis Mar 13, 2026
7cd9ed9
virtio networking: add support for ipv6 (#14350)
benhillis Mar 13, 2026
ef8e1c8
Track `bind` syscall when port is 0 (#14333)
damanm24 Mar 14, 2026
65a8dd6
Add iptables to list of apps to install in WSL (#14459)
andremueiot Mar 17, 2026
2020113
Update Microsoft.WSL.DeviceHost to version 1.1.39-0 (#14460)
benhillis Mar 17, 2026
df38f2c
Moves all Ubuntu distros to the tar-based format (#14463)
CarlosNihelton Mar 17, 2026
c5fb4aa
Enable DNS tunneling for VirtioProxy networking mode (#14461)
benhillis Mar 18, 2026
6425aa8
test: disable LoopbackExplicit due to OS build 29555 regression (#14477)
benhillis Mar 19, 2026
d7ff5b9
Refactor: trim unnecessary DLL deps from COMMON_LINK_LIBRARIES (#14426)
benhillis Mar 19, 2026
61e6b9a
Fix wsl stuck when misconfigured cifs mount presents (#14466)
chemwolf6922 Mar 20, 2026
763fcbe
Update localization and notice scripts to target the branch that the …
OneBlue Mar 20, 2026
dd88ff7
test: Add arm64 test distro support (#14500)
benhillis Mar 23, 2026
2b51002
test: remove duplicated DNS test coverage (#14522)
benhillis Mar 25, 2026
83d59d4
Fix: Fail and warn the user when --uninstall is given parameters (#14…
chemwolf6922 Mar 25, 2026
8338eca
Localization change from build: 142847827 (#14525)
OneBlue Mar 25, 2026
7370bf2
virito net: revert to previous DNS behavior while we debug an issue w…
benhillis Mar 25, 2026
9564cc4
devicehost: update to latest devicehost nuget with tracing improvemen…
benhillis Mar 25, 2026
2d428fc
Localization change from build: 142949177 (#14542)
OneBlue Mar 26, 2026
bf759a0
Revert "test: enable virtiofs tests and enable WSLG during testing (#…
benhillis Mar 27, 2026
93fa8b5
Localization change from build: 143033415 (#14553)
OneBlue Mar 27, 2026
a13c157
Update cgmanifest to match CMakeLists.txt (#14550)
OneBlue Mar 27, 2026
107104e
Notice change from build: 143064110 (#14556)
OneBlue Mar 27, 2026
cf31825
Update Microsoft.WSL.DeviceHost to version 1.1.48-0 (#40036)
benhillis Mar 30, 2026
625a44a
Bump Kali to 2026.1 (#14574)
g0tmi1k Mar 30, 2026
4417383
socketshared: add maximum message size to avoid very large allocation…
benhillis Mar 31, 2026
49e245c
Fix: bind interrupted by seccomp signal race (#14554)
chemwolf6922 Apr 1, 2026
3a7cbeb
archlinux: Release 2026.04.01.162669 (#40059)
archlinux-github Apr 1, 2026
29c7f47
triage: pass action inputs via env vars instead of inline expansion (…
benhillis Apr 1, 2026
f8e579a
Set Distro Env HOSTTYPE to aarch64 for ARM64 build (#40048)
wangxin12 Apr 2, 2026
fd2375a
Add /attachdebugger option to automatically launch WinDbgX for test d…
Apr 6, 2026
1c3ecbc
run-tests: use /inproc with /attachdebugger, simplify exit
Apr 6, 2026
357a29f
relay: fix IOCP destructor use-after-free without hanging
Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/actions/triage/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@ runs:
- name: 'Run WTI'
shell: pwsh
env:
INPUT_COMMENT: "${{ inputs.comment }}"
INPUT_ISSUE: "${{ inputs.issue }}"
INPUT_TOKEN: "${{ inputs.token }}"
previous_body: "${{ inputs.previous_body }}"
run: |
$ErrorActionPreference = [System.Management.Automation.ActionPreference]::Stop

$maybe_comment = @()
if (![string]::IsNullOrEmpty("${{ inputs.comment }}"))
if (![string]::IsNullOrEmpty($env:INPUT_COMMENT))
{
$maybe_comment = @("--comment", "${{ inputs.comment }}")
$maybe_comment = @("--comment", $env:INPUT_COMMENT)
}

$maybe_previous_body = @()
Expand All @@ -40,4 +43,4 @@ runs:

curl.exe -L https://github.com/OneBlue/wti/releases/download/v0.1.12/wti.exe -o triage/wti.exe

cd triage && .\wti.exe --issue ${{ inputs.issue }} --config config.yml --github-token "${{ inputs.token }}" --ignore-tags @maybe_comment @maybe_previous_body
cd triage && .\wti.exe --issue $env:INPUT_ISSUE --config config.yml --github-token $env:INPUT_TOKEN --ignore-tags @maybe_comment @maybe_previous_body
3 changes: 2 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,8 @@ Test execution:
- **Requires Administrator privileges** - test.bat will fail without admin rights

Test debugging:
- Wait for debugger: `/waitfordebugger`
- Attach WinDbgX automatically: `/attachdebugger`
- Wait for debugger (manual attach): `/waitfordebugger`
- Break on failure: `/breakonfailure`
- Run in-process: `/inproc`

Expand Down
12 changes: 7 additions & 5 deletions .pipelines/build-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ parameters:
- name: targets
type: object
default:
- target: "wsl;libwsl;wslg;wslservice;wslhost;wslrelay;wslinstaller;wslinstall;init;wslserviceproxystub;wslsettings;wslinstallerproxystub;testplugin"
- target: "wsl;libwsl;wslg;wslservice;wslhost;wslrelay;wslinstaller;wslinstall;initramfs;wslserviceproxystub;wslsettings;wslinstallerproxystub;testplugin"
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"
- target: "msixgluepackage"
pattern: "gluepackage.msix"
Expand Down Expand Up @@ -382,24 +382,26 @@ stages:
- powershell: |
$taefVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.Taef'']/@version').Node.Value
New-Item -ItemType Directory -Path "$(ob_outputDirectory)\bundle" -Force
foreach ($arch in @("x64", "ARM64"))
# TODO: Add "ARM64" to this list once arm64 testing is supported
foreach ($arch in @("x64"))
{
mkdir $(ob_outputDirectory)\testbin\$arch\release

Move-Item -Path "bin\$arch\release\wsltests.dll" -Destination "$(ob_outputDirectory)\testbin\$arch\release\wsltests.dll"
Move-Item -Path "bin\$arch\release\testplugin.dll" -Destination "$(ob_outputDirectory)\testbin\$arch\release\testplugin.dll"
Move-Item -Path "packages\Microsoft.Taef.$taefVersion\build\Binaries\$arch" -Destination "$(ob_outputDirectory)\testbin\$arch\release\taef"
Move-Item -Path "bin\$arch\cloudtest" -Destination "$(ob_outputDirectory)\testbin\$arch\cloudtest"

$TestDistroVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.WSL.TestDistro'']/@version').Node.Value
Copy-Item "packages\Microsoft.WSL.TestDistro.$TestDistroVersion\$arch\test_distro.tar.xz" "$(ob_outputDirectory)\testbin\$arch"
}

Move-Item -Path "bin\x64\cloudtest" -Destination "$(ob_outputDirectory)\testbin\x64\cloudtest"
Move-Item -Path "tools\test\test-setup.ps1" -Destination "$(ob_outputDirectory)\testbin\test-setup.ps1"
Move-Item -Path "tools\test\CloudTest-Setup.bat" -Destination "$(ob_outputDirectory)\testbin\CloudTest-Setup.bat"
Move-Item -Path "diagnostics\wsl.wprp" -Destination "$(ob_outputDirectory)\testbin\wsl.wprp"
Move-Item -Path "test\linux\unit_tests" -Destination "$(ob_outputDirectory)\testbin\unit_tests"

Move-Item -Path bundle\release\* -Destination $(ob_outputDirectory)\bundle
$TestDistroVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.WSL.TestDistro'']/@version').Node.Value
Copy-Item "packages\Microsoft.WSL.TestDistro.$TestDistroVersion\test_distro.tar.xz" "$(ob_outputDirectory)\testbin\x64"

displayName: Move artifacts to drop directory

Expand Down
8 changes: 6 additions & 2 deletions .pipelines/wsl-build-nightly-localization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ schedules:
- "master"
always: true

variables:
targetBranch: ${{ variables['Build.SourceBranchName'] }}

pool:
vmImage: 'windows-latest'

Expand Down Expand Up @@ -45,9 +48,10 @@ steps:

- powershell: |
pip install --user -r tools/devops/requirements.txt
python tools/devops/create-change.py . "$env:token" "WSL localization" "Localization change from build: $env:buildId" "user/localization/$env:buildId"
python tools/devops/create-change.py . "$env:token" "WSL localization" "Localization change from build: $env:buildId" "user/localization/$env:buildId" "$env:targetBranch"

displayName: Create pull request
env:
token: $(GithubPRToken)
buildId: $(Build.BuildId)
buildId: $(Build.BuildId)
targetBranch: $(targetBranch)
8 changes: 6 additions & 2 deletions .pipelines/wsl-build-notice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ trigger:
include:
- master

variables:
targetBranch: ${{ variables['Build.SourceBranchName'] }}

pool:
vmImage: 'windows-latest'

Expand All @@ -25,9 +28,10 @@ steps:

- powershell: |
pip install --user -r tools/devops/requirements.txt
python tools/devops/create-change.py . "$env:token" "WSL notice" "Notice change from build: $env:buildId" "user/notice/$env:buildId"
python tools/devops/create-change.py . "$env:token" "WSL notice" "Notice change from build: $env:buildId" "user/notice/$env:buildId" "$env:targetBranch"

displayName: Create pull request
env:
token: $(GithubPRToken)
buildId: $(Build.BuildId)
buildId: $(Build.BuildId)
targetBranch: $(targetBranch)
21 changes: 15 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ endif()

if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "arm64" OR "${TARGET_PLATFORM}" STREQUAL "arm64")
set(TARGET_PLATFORM "arm64")
set(TEST_DISTRO_PLATFORM "arm64")
elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64|amd64" OR "${TARGET_PLATFORM}" MATCHES "x64|amd64")
set(TARGET_PLATFORM "x64")
set(TEST_DISTRO_PLATFORM "amd64")
else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_GENERATOR_PLATFORM}")
endif()
Expand All @@ -35,6 +33,8 @@ include(FetchContent)

set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/_deps/${TARGET_PLATFORM})

# N.B. Changes to any of the FetchContent dependencies below (GSL, nlohmannjson) must be reflected in cgmanifest.json

FetchContent_Declare(GSL
URL https://github.com/microsoft/GSL/archive/refs/tags/v4.0.0.tar.gz
URL_HASH SHA256=f0e32cb10654fea91ad56bde89170d78cfbf4363ee0b01d8f097de2ba49f6ce9)
Expand Down Expand Up @@ -188,10 +188,12 @@ endif()

if (${TARGET_PLATFORM} STREQUAL "x64")
add_compile_definitions(_AMD64_)
set(DISTRO_HOSTTYPE x86_64)
endif()

if (${TARGET_PLATFORM} STREQUAL "arm64")
add_compile_definitions(_ARM64_)
set(DISTRO_HOSTTYPE aarch64)
endif()

add_definitions(/sdl) # Default-initialize class members
Expand All @@ -214,6 +216,7 @@ add_compile_definitions(UNICODE
WSL_PACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_MAJOR}
WSL_PACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR}
WSL_PACKAGE_VERSION_REVISION=${PACKAGE_VERSION_REVISION}
DISTRO_HOSTTYPE="${DISTRO_HOSTTYPE}"
WSL_BUILD_WSL_SETTINGS=${WSL_BUILD_WSL_SETTINGS})

if (${OFFICIAL_BUILD})
Expand Down Expand Up @@ -250,13 +253,19 @@ set(COMMON_LINK_LIBRARIES
Shlwapi.lib
synchronization.lib
Bcrypt.lib
Iphlpapi.lib
icu.lib
icu.lib)

set(MSI_LINK_LIBRARIES
Wintrust.lib
msi.lib)

set(HCS_LINK_LIBRARIES
computecore.lib
computenetwork.lib
Iphlpapi.lib)

set(SERVICE_LINK_LIBRARIES
MI.lib
Wintrust.lib
msi.lib
wsldeps.lib)

# Linux
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ Note that WSL distro's launch in the Windows Console (unless you have taken step

### Collect WSL logs for networking issues

Install tcpdump in your WSL distribution using the following commands.
Install iptables and tcpdump in your WSL distribution using the following commands.
Note: This will not work if WSL has Internet connectivity issues.

```
# sudo apt-get update
# sudo apt-get -y install tcpdump
# sudo apt-get -y install iptables tcpdump
```

Install [WPR](https://learn.microsoft.com/windows-hardware/test/wpt/windows-performance-recorder)
Expand Down
Loading