Some checks failed
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace StellaOps.Testing;
|
|
|
|
/// <summary>
|
|
/// Ensures OpenSSL 1.1 native libraries are visible on platforms that no longer ship them.
|
|
/// </summary>
|
|
public static class OpenSslLegacyShim
|
|
{
|
|
private const string LinuxLibraryVariable = "LD_LIBRARY_PATH";
|
|
|
|
public static void EnsureOpenSsl11()
|
|
{
|
|
if (!OperatingSystem.IsLinux())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var nativeDirectory = Path.Combine(AppContext.BaseDirectory, "native", "linux-x64");
|
|
if (!Directory.Exists(nativeDirectory))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var current = Environment.GetEnvironmentVariable(LinuxLibraryVariable);
|
|
if (string.IsNullOrEmpty(current))
|
|
{
|
|
Environment.SetEnvironmentVariable(LinuxLibraryVariable, nativeDirectory);
|
|
return;
|
|
}
|
|
|
|
const char separator = ':';
|
|
var segments = current.Split(separator, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
|
|
if (segments.Contains(nativeDirectory, StringComparer.Ordinal))
|
|
{
|
|
return;
|
|
}
|
|
|
|
Environment.SetEnvironmentVariable(LinuxLibraryVariable, string.Concat(nativeDirectory, separator, current));
|
|
}
|
|
}
|