Я не согласен, что это невозможно. Вы, безусловно, можете делать все, что PackageMaker делает в OSX в другой ОС. Это просто вопрос создания этих файлов:
Contents/
Archive.bom
Archive.pax.gz
Info.plist
PkgInfo
Resources/
TokenDefinitions.plist
package_version
en.lproj/
Description.plist
Файлы .plist могут быть легко созданы в Python с помощью plistlib , который теперь является стандартным в Python. .Bom и .pax.gz немного сложнее, но все остальные текстовые файлы.
.gz часть файла .pax.gz означает, что он сжат с помощью gzip. Это доступно в Windows и Linux.
Согласно справочной странице pax файл pax может иметь несколько различных форматов архивов, включая cpio и tar , что также легко сделать в Linux или Окна. Похоже, что PackageMaker создает сжатые файлы cpio , по крайней мере 10.6.
Файл .bom представляет собой список всех файлов в пакете и их размеры. Это, вероятно, самая сложная часть для создания вне OSX. BOM расшифровывается как Bill Of Materials и происходит из операционной системы NextSTEP. Я не смог найти много информации о формате спецификации, но вот некоторые подсказки: Страница руководства по NextSTEP bom , Страница руководства по OSX
Редактировать: Теперь я реализовал версию lsbom , которую я разместил в открытом доступе. Код можно найти в Subversion здесь: https://cauldrondevelopment.com/svn/osxbom/trunk
Возможно, кто-то также может реализовать mkbom , и тогда будет полное решение. См. Заголовочный файл bom.h в вышеприведенном коде для несколько полного описания формата файла спецификации.
Редактировать 2: Рабочая версия mkbom теперь реализована и может быть найдена здесь:
https://github.com/hogliux/bomutils
вместе с подробным руководством по созданию установщика в Linux:
http://hogliux.github.io/bomutils/tutorial.html
Также см. Вопрос как собрать встроенную mac-os-x-installer-on-a-non-mac-platform .