debian/rules: skip dh_strip on *.so (cross-compiled native libs)
Some checks failed
Forgejo Release postit-deb / release (push) Failing after 7m7s

When cross-compiling PostIt.Desktop for linux-arm64 from an amd64
runner container, the .deb ends up shipping HarfBuzzSharp.so and
SkiaSharp.so in ARM64 format. dh_strip invokes objcopy on every
file under debian/postit/, and objcopy on the amd64 host cannot
parse ARM64 .so files:

  objcopy: Unable to recognise the format of the input file
  `debian/postit/usr/lib/postit/libHarfBuzzSharp.so'
  dh_strip: error: ... returned exit code 1
  dh_strip: error: Aborting due to earlier error

Add --exclude=*.so to override_dh_strip. The upstream .so ships
with its own debug symbols; we don't lose anything by skipping
the strip on them.

Also drop the diag.yml workflow that diagnosed the initial
tag-not-found failure — no longer needed.

Discovered via the Forgejo Actions release.yml run on tag 1.0.6.
This commit is contained in:
Paul Schneider 2026-08-17 16:37:02 +01:00
commit c25e245f5a
No known key found for this signature in database
GPG key ID: 1E66C65EE2B46F1B
2 changed files with 14 additions and 75 deletions

15
debian/rules vendored
View file

@ -129,7 +129,20 @@ override_dh_shlibdeps:
dh_shlibdeps
override_dh_strip:
dh_strip --exclude=.pdb
# --exclude=.pdb : .NET génère des .pdb même en Release, ils
# ne sont pas strippables proprement.
# --exclude=*.so : Avalonia dépend de HarfBuzzSharp et SkiaSharp
# qui livrent leurs .so pré-compilés via NuGet (formats natifs
# multi-arch : linux-x64, linux-arm64, etc.). Quand on cross-
# compile depuis un hôte amd64 (build arm64), dh_strip appelle
# objcopy sur ces .so qui sont en ARM64 et objcopy natif amd64
# ne sait pas les lire :
# objcopy: Unable to recognise the format of the input file
# `debian/postit/usr/lib/postit/libHarfBuzzSharp.so'
# On les exclut donc du strip. Les symboles debug seront
# présents dans le .deb mais ce sont des libs upstream, pas
# notre code — pas critique.
dh_strip --exclude=.pdb --exclude=*.so
define stage_postit