Как мне упаковать свое приложение для Ubuntu Software Center?

Я опытный специалист по разработке программного обеспечения, но не очень разбираюсь в упаковке. Я уже собрал один dpkg, но это был не исходный пакет.

Я работаю над отправкой приложения в магазин приложений Ubuntu. Документация по упаковке немного расплывчата, говоря не намного больше, чем о том, что она должна быть упакована в "формате исходного пакета Debian":

http://developer.ubuntu.com/publish/my-apps-packages/

Я уверен, что смогу запутаться в создании tar-пакета с исходным кодом Debian, но есть несколько моментов, которые меня интересуют:

  • Как обрабатывается 32-битная 64-битная штука? Они берут исходники и создают приложения из обоих?
  • Как обрабатывается поддержка разных версий Ubuntu - 10.04, 10.10, 11.04, 11.10 и т. Д.?
  • Как обрабатываются зависимости? Если, например, мое приложение зависит от SDL, как мне это указать?
  • Если я не хочу распространять исходный код для моего приложения (который является частной лицензией), есть ли чистый способ указать, что источник не должен идти вместе с приложением?
  • Если я не использую autoconf/automake, должен ли мой Makefile быть настроен особым образом, или требуются автоинструменты?

Я предполагаю, что люди из Ubuntu, вероятно, берут исходный код и собирают его для каждой из различных платформ и архитектур, для которых они поддерживают покупку приложений, но, поскольку в процессе отправки нет очевидного способа указать, с чем приложение работает (то есть требуется GTK3 и 64-разрядная поддержка, или только для Intel без поддержки ARM), я могу только надеяться, что материал может быть указан в исходном формате.

Есть ли какая-нибудь хорошая, исчерпывающая документация, конкретно касающаяся создания пакета с исходным кодом, на которую вы можете указать мне?

2 ответа

Решение

На странице, на которую вы ссылаетесь, написано:

Canonical предоставляет вам эту услугу упаковки бесплатно.

и продолжает объяснять, как выложить архив, содержащий ваши двоичные файлы.

Если вы создадите такой архив и отправите его через MyApps, то вся упаковка будет сделана для вас. Как сказано внизу, вы можете предоставить пакет с исходным кодом, если хотите, но это не обязательно. Обратите внимание, что это относится к приложениям с закрытым исходным кодом или платным приложением, все, что является libre и безвозмездно, в настоящее время имеет другой процесс.

Что касается других ваших вопросов:

Как обрабатывается 32-битная 64-битная штука?

Вы можете просто загрузить 32-битную версию, если хотите, так как она работает и на 64-битной версии. Если вы хотите загрузить 32-битную и 64-битную версию, соберите ее дважды и поместите результаты в подкаталоги "i386" и "amd64".

Как обрабатывается поддержка разных версий Ubuntu - 10.04, 10.10, 11.04, 11.10 и т. Д.?

Вы можете указать, для каких версий Ubuntu будут работать загруженные вами двоичные файлы, как часть процесса отправки.

Как обрабатываются зависимости? Если, например, мое приложение зависит от SDL, как мне это указать?

Это будет добавлено как часть процесса упаковки. Если вы хотите добавить комментарий с указанием зависимостей, это, скорее всего, ускорит процесс.

Если я не хочу распространять исходный код для моего приложения (который является частной лицензией), есть ли чистый способ указать, что источник не должен идти вместе с приложением?

Как уже говорилось, вам не нужно предоставлять источник вообще.

Если я не использую autoconf / automake, должен ли мой Makefile быть настроен особым образом, или требуются автоинструменты?

Любая система сборки, поддерживаемая в Ubuntu, разрешена. Если вы используете простые Makefiles, то это нормально. Однако, если вы загружаете только двоичные файлы, это не проблема.

Лучше всего начать с обучения использованию PPA

https://help.launchpad.net/Packaging/PPA

Когда вы загружаете источник, пакеты (архив) создаются для вас.

Вы также можете посмотреть на

https://wiki.ubuntu.com/MOTU/GettingStarted

https://wiki.ubuntu.com/PackagingGuide/Complete

Другие вопросы по тегам