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