From c0c50270012ac7071ac10f84ea87545c37ac602c Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Mon, 17 Aug 2026 16:52:18 +0100 Subject: [PATCH] debian/rules: drop override_dh_strip entirely MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previous fix (--exclude=*.so --no-automatic-dbgsym) failed because dh_strip does MULTIPLE strip passes (--strip-unneeded, --strip-debug, --only-keep-debug), and objcopy's ARM64-format recognition issue surfaces again in a pass that does not honour --exclude: strip: Unable to recognise the format of the input file `debian/postit/usr/lib/postit/libHarfBuzzSharp.so' dh_strip: error: strip --remove-section=.comment ... returned exit code 1 The cleanest fix is to skip dh_strip entirely. The cost is minor for our use case (no strip on managed DLLs saves a few KB; no postit-dbg auto-package — the debug info in libHarfBuzzSharp / libSkiaSharp is from Avalonia deps, not our code). If stripping becomes important, the proper fix is binutils-multiarch (multi-arch objcopy) in the container runner. Out of scope here. Discovered via Forgejo Actions run #9 on tag 1.0.6. --- debian/rules | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/debian/rules b/debian/rules index ddb299a..1088f61 100755 --- a/debian/rules +++ b/debian/rules @@ -129,27 +129,9 @@ override_dh_shlibdeps: dh_shlibdeps override_dh_strip: - # --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. - # --no-automatic-dbgsym : dh_strip crée automatiquement un - # paquet postit-dbg avec --only-keep-debug, qui appelle - # objcopy une seconde fois sur les .so. Le --exclude ci-dessus - # ne s'applique PAS à cette phase. Désactiver le dbgsym - # automatique évite l'erreur et reste cohérent (les libs - # upstream n'ont pas de symboles debug utiles pour le debug - # utilisateur). - dh_strip --exclude=.pdb --exclude=*.so --no-automatic-dbgsym + # dh_strip disabled entirely. See MEMORY.md / AGENTS.md for the + # rationale (cross-compiled native .so via NuGet from Avalonia + # deps cannot be parsed by amd64 objcopy/strip). define stage_postit