Hi, i just got a bug report about Guix ISO image production failing with
libisofs: FAILURE : HFS+ map nodes aren't implemented The message stems from the HFS+ contribution to libisofs by Vladimir Serbinenko in 2012. About the only program which asks libisofs to produce HFS+ is grub-mkrescue, which to my knowledge is indeed used by Guix. I need a confirmation of my preliminary diagnosis and, if true, a decision how important HFS+ is nowadays for grub-mkrescue. I believe to see a limitation to 30720 files per directory, which would become an official limitation of grub-mkrescue if HFS+ production shall be continued for I386, X86_64, and POWERPC_IEEE1275. ------------------------------------------------------------------------ The code which issues the error is in https://dev.lovelyhq.com/libburnia/libisofs/raw/master/libisofs/hfsplus.c line 1791: if (target->hfsp_nnodes > (cat_node_size - 0x100) * 8) { iso_msg_submit(target->image->id, ISO_MANGLE_TOO_MUCH_FILES, 0, "HFS+ map nodes aren't implemented"); ret = ISO_MANGLE_TOO_MUCH_FILES; goto ex; } This looks not like a mangling problem but more like a plain overflow. target->hfsp_nnodes is a counter which i have difficulties to understand: target->hfsp_levels[level].level_size++; target->hfsp_nnodes += target->hfsp_levels[level].level_size; cat_node_size is set by target->hfsp_cat_node_size = 2 * target->opts->hfsp_block_size; ... cat_node_size = target->hfsp_cat_node_size; target->opts->hfsp_block_size is most probably HFSPLUS_DEFAULT_BLOCK_SIZE = 2048. My rough theory is that a HFS+ directory cannot have more than (4096 - 256) * 8 = 30720 file names. There seems to be a workaround "HFS+ map nodes". But the HFS+ code in libisofs reports not to have it implemented. Have a nice day :) Thomas _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
