Расширенные атрибуты старого Mac в Snow Leopard
В прошлом году мне пришлось конвертировать старый Mac-шрифт из OS 9 для использования на ПК. Я обнаружил, что тогда данные о шрифтах хранились в расширенном атрибуте com.apple.ResourceFork. Фактический размер файла будет отображаться как 0 в терминале. Я смог обойти это, просто распечатав значение этого расширенного атрибута, используя xattr -p com.apple.ResourceFork font > font.ttf.
Теперь с Snow Leopard и сжатием файлов HFS+ все изменилось. Если вы сейчас попытаетесь распечатать расширенный атрибут старого стиля, вы получите только гекс, а не значение. Новые расширенные атрибуты появляются без каких-либо шестнадцатеричных значений, если это не указано с параметром -x. Вот пример:
xattr -l com.apple.FinderInfo Rublof
Rublof: com.apple.ResourceFork:
00000000 00 00 01 00 00 00 9E 50 00 00 9D 50 00 00 00 32 |.......P...P...2|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...
Rublof: com.apple.quarantine: 0000;4b75ae02;Mail;39396996-3C5C-48F5-8BDD-775EB40CAD9C|com.apple.mail
Выполнение xattr -p в ResourceFork приведет к выводу hex, запустив его на карантин, и вы получите ASCII. Очевидно, что Apple изменила способ обработки расширенных атрибутов, и, возможно, они забыли о людях, которые до сих пор хранят свои шрифты OS 9.
Я что-то здесь упускаю или я просто пишу скрипт для преобразования гекса в ASCII?
2 ответа
Вы также можете получить доступ к ветвям ресурсов, добавив "/ rsrc" или "/..namedfork/rsrc" к имени файла. Пытаться cp Rublof/rsrc Rublof.ttf
, Тем не менее, вилки ресурсов устарели, а расширенные атрибуты - нет. Механизм "/..namedfork" может исчезнуть из будущих выпусков. Если это произойдет, вы можете попробовать xxd преобразовать обратно в двоичный файл:
xattr -p com.apple.ResourceFork Rublof | xxd -r > Rublof.ttf
Преобразование ветвления ресурса в ветвь данных не будет делать то, что вам нужно - оно все еще в формате ветвления ресурса, поэтому ничто не сможет его использовать. Чтобы получить его в кроссплатформенном формате, вам нужен конвертер, такой как фондю. Он будет копаться в чемодане шрифтов Mac старого стиля и извлекать ресурсы sfnt (шрифты TrueType и OpenType) в файлы.ttf и.otf, ресурсы POST (шрифты PostScript) в файлы.pbf, а также ресурсы NFNT и FONT (растровые шрифты) в.bdf файлы.
Кстати, пакет Mac OS/X из раздела загрузки SourceForge выдает ошибку при установке, но в любом случае кажется, что установка прошла успешно.