Skip to content

community/powershell: move from testing

As the build process for this is confusing (like most dotnet stuff), this'll likely stay in canary for a little while before inclusion in community.

See issue The following tasks need to be complete for eventual inclusion:

Make sure there are no prebuilt artifacts, as Microsoft likes to pull artifacts rather than build them locally. Sus files:

  • libpsl-native.so
  • libSystem.IO.Ports.Native.so (this one even links to glibc.so)

complete: Apparently, this is to be accepted with dotnet - there will be prebuilts. In libpsl-native's case, it was prudent to create an aport due to libpsl-native.so not being pulled for armv7.

  • fix test unit PSTests.Parallel.FileSystemProviderTests.TestMode (fixed in !37566 (merged) | Issue)

While neutralized by check patch, it'd be important to confirm if its non-fatal, or fix the issue that causes the error. Error as is:

[xUnit.net 00:00:06.26]     PSTests.Parallel.FileSystemProviderTests.TestMode [FAIL]
  Failed PSTests.Parallel.FileSystemProviderTests.TestMode [5 ms]
  Error Message:
   Assert.Equal() Failure
          ↓ (pos 0)
Expected: -----
Actual:   l----
          ↑ (pos 0)
  Stack Trace:
     at PSTests.Parallel.FileSystemProviderTests.TestMode() in /home/user/projects/powershell/testing/powershell/src/PowerShell-7.2.5/test/xUnit/csharp/test_FileSystemProvider.cs:line 123

complete: Test was broken on Alpine, and was easily fixed by a patch.

  • confirm safe removal of libSystem.IO.Ports.Native.so (Issue)

As this links to glibc.so, it was removed in package() function. It'd be nice to make sure that pwsh doesn't care. All test units (except above) works despite removal.

complete: This is caused by https://github.com/dotnet/runtime/issues/63187, unrelated to PowerShell, thus will ignore and assume that it is safe for removal, as even Microsoft's build has a broken library.

  • test general functionality

As I don't use this tool, the benefits of dogfooding escapes me. @tigerinus, as you had requested this package, could you do some more in-depth field testing?

complete: As there isn't any response from requester, and as I've confirmed binary partity between pwsh built by my build process, and pwsh built when pwsh builds itself (normal build is self-hosted...), and (for the most part) successful checks, going to assume that general functionality is a thing.

See error:

   System.IO.FileNotFoundException : Could not load file or assembly 'Microsoft.Management.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.

Full log: https://img.ayaya.dev/H5qMI0ixOYbq

complete: Fix by setting RID explicitely during build

It appears as though build process for aarch64 / armv7 tries to crosscompile even on arm platform.

complete: Fixed by disabling code optimization, as this is broken on armv7 and aarch64 due to https://github.com/dotnet/runtime/issues/73908

Edited by Antoine Martin

Merge request reports