iso-image: Use fixed-order mcopy instead of file globbing
mcopy file globbing is non-deterministic with respect to the underlying file system. As a result, the current mcopy approach is less likely to reproduce efi.img on different machines. We replace mcopy file globbing with fixed-order mmd and mcopy operations for better determinism. We also use faketime on mmd for the same reason. We use faketime, mmd, and mcopy directly, becase they are already in PATH. Thank misuzu@ for the feedback.
This commit is contained in:
parent
2f48585f3f
commit
e3cd644458
1 changed files with 18 additions and 1 deletions
|
@ -415,7 +415,24 @@ let
|
|||
echo "Image size: $image_size"
|
||||
truncate --size=$image_size "$out"
|
||||
faketime "2000-01-01 00:00:00" mkfs.vfat -i 12345678 -n EFIBOOT "$out"
|
||||
mcopy -psvm -i "$out" ./EFI ./boot ::
|
||||
|
||||
# Force a fixed order in mcopy for better determinism, and avoid file globbing
|
||||
for d in $(find EFI -type d | sort); do
|
||||
faketime "2000-01-01 00:00:00" mmd -i "$out" "::/$d"
|
||||
done
|
||||
|
||||
for d in $(find boot -type d | sort); do
|
||||
faketime "2000-01-01 00:00:00" mmd -i "$out" "::/$d"
|
||||
done
|
||||
|
||||
for f in $(find EFI -type f | sort); do
|
||||
mcopy -pvm -i "$out" "$f" "::/$f"
|
||||
done
|
||||
|
||||
for f in $(find boot -type f | sort); do
|
||||
mcopy -pvm -i "$out" "$f" "::/$f"
|
||||
done
|
||||
|
||||
# Verify the FAT partition.
|
||||
fsck.vfat -vn "$out"
|
||||
''; # */
|
||||
|
|
Loading…
Reference in a new issue