Win32-OpenSSH icon indicating copy to clipboard operation
Win32-OpenSSH copied to clipboard

Windows ARM64 prebuilt distribution

Open awakecoding opened this issue 3 years ago • 5 comments

The current Win32-OpenSSH distribution is only prebuilt for x86 and x64. Windows on ARM is gaining in importance and it would be important to include a proper ARM64 prebuilt distribution, especially since ARM64 Azure VMs are now available in preview.

This should be a low hanging fruit as I have managed to make my own Win32 OpenSSH builds for Windows ARM64 by providing the missing prebuilt libraries not already available in the Microsoft prebuilt ones. The current project files already account for ARM64. Here is the list of prebuilt dependencies for ARM64, only LibreSSL is missing:

Surprisingly, libfido2 depends on LibreSSL/OpenSSL, so someone somewhere must already be building it, but it's not packaged in the prebuilt LibreSSL package currently used by PowerShell. All prebuilt dependencies are currently available as GitHub releases for each project fork under github.com/PowerShell. OpenSSH is currently built with a shared library (libcrypto.dll) from LibreSSL, while libfido2 appears to be built against a static version of the same library. If that's the case, then maybe switch either both to using a shared library, or statically link both OpenSSH and libfido2 against the same library.

FPqmaNJXsBAKpRs

awakecoding avatar Apr 11 '22 15:04 awakecoding

@bagajjal @SteveL-MSFT as I've managed to rebuild all those dependencies on my side in preparation for my Win32 OpenSSH distribution, I can provide assistance if you have any questions.

awakecoding avatar Apr 11 '22 15:04 awakecoding

We will consider publishing ARM32/ARM64 for next win32-openssh release. We already have the infrastructure in place to generate binaries for ARM32/ARM64, there is no additional work required.

bagajjal avatar Apr 11 '22 18:04 bagajjal

It IS a Feature on Demand for win-arm64. Since MSI doesn't officially support ARM64 yet, it'd have to be a zip pkg.

SteveL-MSFT avatar Aug 03 '22 21:08 SteveL-MSFT

Hi, @awakecoding, we are interested in building OpenSSH on Windows ARM64. Could you share the instructions to building OpenSSH and its dependencies for Windows ARM64?

steplong avatar Aug 11 '22 21:08 steplong

We have our own Win32-OpenSSH fork + we build all of its dependencies from source, here are our conan build recipes: https://github.com/Devolutions/conan-public/tree/master/recipes

For Windows only, you can probably use a much simplified approach, as we also build the same dependencies on other platforms.

I have a branch with patches on top of OpenSSH, here's the build recipe that injects our build dependencies into it: https://github.com/Devolutions/conan-public/blob/master/recipes/openssh/conanfile.py

The upstream Win32-OpenSSH sources fetch prebuilt dependencies from Microsoft in zip files, some of which lack ARM64 libraries.

awakecoding avatar Aug 11 '22 21:08 awakecoding

The ARM32/ARM64 binaries will be published as zip pkgs, starting with the next release.

tgauth avatar Oct 31 '22 20:10 tgauth