SignatureAppearance under Docker Linux and problem with liblibHarfBuzzSharp

Docker base image : .NET 8.0 SDK and Runtime on UBI 8 - Red Hat Ecosystem Catalog ( .NET 8.0 SDK and Runtime on UBI 8 )

   Error Message:
    System.DllNotFoundException : Unable to load shared library 'libHarfBuzzSharp' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
 /usr/lib64/dotnet/shared/Microsoft.NETCore.App/8.0.19/libHarfBuzzSharp.so: cannot open shared object file: No such file or directory
 /opt/app-root/src/PDFUtils.Tests/bin/Debug/net8.0/libHarfBuzzSharp.so: cannot open shared object file: No such file or directory
 /usr/lib64/dotnet/shared/Microsoft.NETCore.App/8.0.19/liblibHarfBuzzSharp.so: cannot open shared object file: No such file or directory
 /opt/app-root/src/PDFUtils.Tests/bin/Debug/net8.0/liblibHarfBuzzSharp.so: cannot open shared object file: No such file or directory
 /usr/lib64/dotnet/shared/Microsoft.NETCore.App/8.0.19/libHarfBuzzSharp: cannot open shared object file: No such file or directory
 /opt/app-root/src/PDFUtils.Tests/bin/Debug/net8.0/libHarfBuzzSharp: cannot open shared object file: No such file or directory
 /usr/lib64/dotnet/shared/Microsoft.NETCore.App/8.0.19/liblibHarfBuzzSharp: cannot open shared object file: No such file or directory
 /opt/app-root/src/PDFUtils.Tests/bin/Debug/net8.0/liblibHarfBuzzSharp: cannot open shared object file: No such file or directory

   Stack Trace:
      at HarfBuzzSharp.HarfBuzzApi.hb_buffer_create()
    at HarfBuzzSharp.Buffer..ctor()
    at♥→↓..ctor()
    at ☻♥↑↓.♥(Object , Boolean, Double ♠, ♥→↓ ☻)
    at GemBox.Pdf.Content.PdfFormattedText↓()
    at GemBox.Pdf.Content.PdfFormattedText.☻↓()
    at GemBox.Pdf.Content.PdfFormattedText.get_Width()
    at GemBox.Pdf.Content.PdfFormattedText.a4z3s9ddx53flw8talam7zrnjuue96fq↓↓

   at ♠↨→↓.☻↓(PdfSize )
    at GemBox.Pdf.Annotations.PdfAppearance.↑↑(PdfContentGroup , PdfSize, PdfFormattedText ♠, PdfExternalObject ☻, PdfTextPlacement ♥, Double , ►↨↓ ♣, Boolean ▬, ►↨↓▬, PdfScaleCondition ♠▬, Boolean ☻▬, PdfPoint ♥▬, PdfPoint ▬, PdfPoint ♣▬, ►↨↓ ↓, PdfScaleCondition↓, Boolean ♠↓, PdfPoint ☻↓, PdfPoint ♥↓, PdfPoint ↓)
    at GemBox.Pdf.Forms.PdfSignatureAppearance.♣dfDocument , PdfSize, PdfSigner ♠)
    at GemBox.Pdf.Forms.PdfSignatureAppearance.dfDocument , PdfSize, PdfSigner ♠)
    at GemBox.Pdf.Forms.PdfSignatureAppearance.♥dfDocument , PdfSize, PdfSigner ♠)
    at GemBox.Pdf.Forms.PdfSignatureAppearance.♥(PdfSigner )
    at GemBox.Pdf.Forms.PdfSignatureAppearance.dlrfz7h2wk263ffqqax3cvac8zcbf3vz↓☻↑()
    at GemBox.Pdf.Annotations.PdfAppearance.♣(Boolean )
    at GemBox.Pdf.PdfDocument.

   at GemBox.Pdf.PdfDocument.↓↑(♣↓ )
    at GemBox.Pdf.PdfDocument.Save(Stream stream)

Under Windows works fine these unittests

Regards

Pawel

PS. into /bin/debug i see the HarfBuzzSharp.dll library

update : when I add into UnitTests csproj the

<PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="8.3.1.1" />

its Works !

I think that the GemBox.PDF should be Package Reference to change (if Linux is as Enviroment) like this :

<PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" Version="8.*" Condition="'$(OS)' == 'UNIX'"/>

Hi Paul,

We have now released a new GemBox.Pdf NuGet package with HarfBuzzSharp.NativeAssets.Linux and SkiaSharp.NativeAssets.Linux dependencies:

So, you can now remove those package references because they will be transitively included.

Regards,
Mario