Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:slind:deb_producer

This is an old revision of the document!


Исходные предположения

  1. Если проект является обычным makefile-проектом, то в makefile имеется цель install, корректно обрабатывающая переменную DESTDIR(на совести пользователя).
  2. Если проект является управляемым, то мы имеем возможность добавить цель install в динамический makefile(вопрос исследуется).

Сценарии диалога с пользователем

Создание DEBIAN-каталога в проекте

  1. Пользователь выделяет проект, вызвает контекстное меню, выбрает пункт New → DEBIAN catalog.
  2. Открывается мастер создания DEBIAN-каталога.
  3. Пользователь заполняет поля мастера, нажимает кнопку Finish.
  4. Если операция производится над makefile-проектом, то выполняется проверка наличия цели install. В случае её отсутствия выводится сообщение об ошибке и операция прерывается.
  5. Генерируется DEBIAN-каталог, открывается control-файл в редакторе.

Сборка пакета

  1. Пользователь вделяет проект, вызвает контекстное меню или выпадающее меню кнопки External tools, выбрает пункт Run as… → dpkg(рабочее название).
  2. Выполняется сборка пакета.

Список полей, заполняемых в мастере

  1. Имя пакета.
  2. Версия пакета.
  3. Зависимости пакета(пока просто имена, вводимые вручную).
  4. changelog.
  5. Скрипты пред-/пост-инсталляции(создаются, если не существуют).
  6. Папка, в которой выполняется сборка пакета(по умолчанию build).

FIXME дополнить список

Поля, неявно заполняемые в мастером

  1. Целевая архитектура.

Подход к решению задачи

Создание debian-каталога к проекту

  1. Проверяем наличие makefile'а в проекта, если есть работаем дальше, если нет то добавляем в Makefile Generator генерацию цели install.
  2. Зовём debhelp утилиты в правильном порядке - они всё делают.

Генерация пакета

  1. При вызове генерации пакета выполняется цель install makefile'а c заменой переменной DESTDIR на путь к какой-то временной папке.
  2. Просто запускаем dpkg.

Текущие вопросы

  • Какие поля должны заполняться для debian-каталога обязательно(читай спрашиваться в мастере)?
  • Какие утилиты debhelp'а нам нужны, какие данные потребуются для их вызова?
  • Как подключиться к Makefile Generator?
  • Как “правильно” скормить полученные знания и файлики dpkg?

Отчёты по задачам

Общие вопросы

  1. Делается-ли сборка пакета в makefile. Если да, то нужно-ли учитывать эту возможность или предоставлять её как опцию при генерации пакета?

Возможные направления дальнейшего развития(2 итерация)

  • Редактор control-файла, выполненый аналогично редактору plugin.xml в PDE.
  • Автоматическое заполнение зависимостей пакета.
  • Автоматическое создание цели install в makefile если, её нет.
  • Создание мастера обновления версии(Дополнние changelog, увеличение номера версии, редактирование зависимостей и их перепроверка).

Ссылки

плагин для редактирования скриптов
FIXME изучить что умеет/насколько пригоден к использованию

Discussion

cheat, 2008/03/23 23:20

Сейчас по факту у экспорта вообще нет опций. Можно добавить: поле для пути к файлу с подписью(может ему место вообще в настройках плагина?), чекбокс «не подписывать файлы», комбо выбора архитектуры для которой собирается, чекбокс «не выполнять проверку зависимостей». Нужно уточнить что их этого нужно + озвучить проблему с местом оседания файлов.

You could leave a comment if you were logged in.
etc/common_activities/slind/deb_producer.1195674041.txt.gz · Last modified: 2008/01/03 02:32 (external edit)