Hi,

Zhang Boyang wrote:
> 2) Create my own version of my-DLBD1.iso and my-DLBD2.iso from my private
> mirror.

This explains why a firmware package was missing which is in the official
DLBD-1 but obviously on your my-DLBD2.


With the new script version which merges /firmware trees:
> This time the difference in /firmware is:
> Only in /groundtruth/firmware:
> arm-trusted-firmware-tools_2.4+dfsg-2_amd64.deb
> I don't think this is the merge script's fault. This .deb is not exist in
> both my-DLBD1.iso and my-DLBD2.iso.

Then it's fully ok for me. :))


> There are other differences in filesystem-tree.
> [attachment diff.details.txt]
> .disk/mkisofs

This is just an unchanged copy of the file in your DLBD-1.
(As stated previously i see few reason to overwrite it with the xorriso
arguments which were used for merging.)

> boot/grub/efi.img

Could be about timestamps in the FAT filesystem.

One could try whether exporting SOURCE_DATE_EPOCH=...seconds.since.1970...
with the same value for DLBD and CUSTOM would create the same efi.img
files.
( https://reproducible-builds.org/docs/source-date-epoch/ )

> dists/bullseye/Release

This is a very central file. It would be interesting to see the full diff.

> dists/bullseye/contrib/binary-amd64/Packages.gz

Could be the sequence of packages in this unsorted list of multi-line
records.
Critical are the last package record of DLBD-1 and the first of DLBD-2.
In the merged ISO's Packages.gz they have to be listed with a neat single
empty line between them. (In my tests this was the case.)

> dists/bullseye/contrib/i18n/Translation-cs.gz

At least in the DVD set of 11.2.0 the i18n files which are mentioned in
Release are incomplete counterparts of the respective Packages.gz files
in various languages. Many packages are not listed in them.

> dists/stable

That's a symbolic link to dists/bullseye. So i skip to:

> isolinux/boot.cat

This file contains the block addresses of isolinux/isolinux.bin and of
boot/grub/efi.img. These addresses are subject to many influences during
ISO production. Somewhat random.

> isolinux/f1.txt

Seems to be a production timestamp of d-i.
It would be interesting to see whether it obeys SOURCE_DATE_EPOCH.

> isolinux/isolinux.bin

The -boot-info-table patching at the begin of ISO production writes the
block address of isolinux/isolinux.bin into isolinux/isolinux.bin.

> md5sum.txt

Ouch. My script sorts the merged lines by the MD5 fields rather than by
the file paths.
Further this sorting is subject to locale settings, which is hardly
desirable, if the sequence of lines has a meaning at all.

I committed a new version which fixes both problems in my local tests:
  
https://dev.lovelyhq.com/libburnia/libisoburn/commit/87aab730582cb4268f50062361fec7f13e2b50ab


Have a nice day :)

Thomas

Reply via email to