Hi Lunar, On Thu, Sep 03, 2015 at 04:26:57PM +0200, Jérémy Bobbio wrote: > diffoscope uses libmagic (through its Python bindings) to identify the > format of the files its trying to compare. Some coreboot images are > misdetected as text files which results in garbled diffoscope output. > > Proper way to detect Coreboot images is probably to look for a CBFS > header. cbfs_find_header() is how upstream does it: > http://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=util/cbfstool/cbfs_image.c;h=c40bd6641 > > I could tell diffoscope to detect Coreboot images with a similar > mechanism but it would probably be better to teach libmagic to do it. > Is that easily doable? > > Reiner Herrmann: > > file detects them as plain-text: > > > > > /tmp/b1_coreboot.rom: ISO-8859 text, with very long lines, with no line > > > terminators > > > /tmp/b2_coreboot.rom: ISO-8859 text, with very long lines, with no line > > > terminators > > > > That's why diffoscope also treats them as text. > > I'm not sure this can/should be fixed inside diffoscope, as we rely on > > libmagic detecting them correctly. > > Reiner, I remember you had a look into this during DebConf. Have you > made any progress?
Unfortunately I haven't found any easy solution to it. It looked like magic(5) files require constant offsets for checking magic numbers. And I also didn't see a way to look at an offset backwards from the end of a file (where CBFS images have an offset to the header). I just had another look and saw that the "type" field can also be a search. So it could be possible to detect them via pattern files.
signature.asc
Description: Digital signature

