#1004250 contents of syslinux binary package don't match syslinux-common

Package:
syslinux
Source:
syslinux
Description:
collection of bootloaders (DOS FAT and NTFS bootloader)
Submitter:
Vangelis Koukis
Date:
2022-01-26 23:21:03 UTC
Severity:
normal
#1004250#5
Date:
2022-01-23 15:32:34 UTC
From:
To:
Hello,

I'm using latest SYSLINUX from bullseye.

After installing syslinux on a FAT32 fs:

   # syslinux --directory syslinux --install /dev/sdb1

I see the md5sum of ldlinux.c32 doesn't match the md5sum of
/usr/lib/syslinux/modules/bios/ldlinux.c32:

   # md5sum syslinux/ldlinux.c32 /usr/lib/syslinux/modules/bios/syslinux.c32
   a9b49d9dd73d9789484255881d3622d1  syslinux/ldlinux.c32
   324de66664a4f9c66b2727ef8a757c21  /usr/lib/syslinux/modules/bios/syslinux.c32

I don't know where syslinux/ldlinux.c32 comes from, I assume it's
embedded in /usr/bin/syslinux, but
/usr/lib/syslinux/modules/bios/syslinux.c32 comes from the
syslinux-common binary package.

I understand there was a recent binary-only upload, which means the
contents of the syslinux package no longer match the contents of
the syslinux-common package. From changelog.Debian.amd64.gz:

syslinux (3:6.04~git20190206.bf6db5b4+dfsg1-3+b1) sid; urgency=low, binary-only=yes

  * Binary-only non-maintainer upload for amd64; no source changes.
  * Rebuild for outdated Built-Using

#1004250#10
Date:
2022-01-26 23:14:37 UTC
From:
To:
Hi Vangelis,

thanks for your report!
installer binary and the embedded copy is copied into the target folder
during the installation.

syslinux.c32 does not get copied automatically by the installer. It
must have been copied either manually or by some other script from
/usr/lib/syslinux/modules/bios/syslinux.c32 (and thus the files are the
same).

I looked into this and found two more things that will cause the
ldlinux.c32 embedded into the installer to be different from the copy
shipped in the syslinux-common package even without the binary-only
non-maintainer upload (binNMU) you mentioned:

* Currently the debug symbols are stripped from the .c32 files after
  the build (dh_strip).  However the ldlinux.c32 copy that's
  embedded into the installer binaries gets included before the
  stripping and still includes the debug symbols.  This is arguably a
  bug.

* The syslinux-common package is an Architecture: all package. That
  means on both amd64 and i386 the same syslinux-common package is
  installed.  I don't believe the toolchains on both systems yield
  exactly the same .c32 files, and currently the Architecture: all
  packages seem to always get built on amd64.
working on https://bugs.debian.org/994274 again), but for the reasons
above there will still be a mismatch between the files.

My understanding so far is that this is a cosmetic issue:  Both the
files built into the installer as well as the c32 module in
syslinux-common work.  Is there something more to this problem that I'm
missing?

Thanks and kind regards
Lukas