Discussion:
Bug#1004250: contents of syslinux binary package don't match syslinux-common
(too old to reply)
Vangelis Koukis
2022-01-23 15:40:01 UTC
Permalink
Package: syslinux
Version: 3:6.04~git20190206.bf6db5b4+dfsg1-3+b1
Severity: normal
X-Debbugs-Cc: ***@gmail.com

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

-- all / amd64 / i386 Build Daemon (x86-conova-01) <buildd_amd64-x86-conova-***@buildd.debian.org> Sun, 13 Jun 2021 13:52:15 +0000

The problem is that syslinux-common *also* contains binaries [the
syslinux modules], and they no longer match.

I think it makes sense to upload all syslinux binary packages from the
same build to the repository, so everything aligns.

Looking forward to your comments,
Vangelis.


-- System Information:
Debian Release: 11.2
APT prefers stable-updates
APT policy: (990, 'stable-updates'), (990, 'stable-security'), (990, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-0.bpo.8-amd64 (SMP w/4 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=el_GR.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en_GB:en
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages syslinux depends on:
ii libc6 2.31-13+deb11u2
ii mtools 4.0.26-1

Versions of packages syslinux recommends:
ii syslinux-common 3:6.04~git20190206.bf6db5b4+dfsg1-3

Versions of packages syslinux suggests:
ii dosfstools 4.2-1

-- no debconf information
Lukas Schwaighofer
2022-01-26 23:30:01 UTC
Permalink
Hi Vangelis,

thanks for your report!

On Sun, 23 Jan 2022 17:32:34 +0200
Post by Vangelis Koukis
(...)
I see the md5sum of ldlinux.c32 doesn't match the md5sum of
(...)
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.
Your assumption is correct: ldlinux.c32 is embedded into the syslinux
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).
Post by Vangelis Koukis
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.
(...)
The problem is that syslinux-common *also* contains binaries [the
syslinux modules], and they no longer match.
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.
Post by Vangelis Koukis
I think it makes sense to upload all syslinux binary packages from the
same build to the repository, so everything aligns.
I hope to be able to make a new upload fairly soon (recently picked up
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

Loading...