Плагин работы с .deb пакетами

Id	Описание	P1) приоритет: 1-maх,3-min	Комментарий
REQ1	Должен быть расширением стандартного проекта CDT	1
REQ2	Структура дерева файлов пакета должна определяться целью install в makefile	1
REQ3	Должен поддерживаться standard проект	1
REQ4	Должен поддерживаться managed проект	2
REQ5	Пользователь указывает местоположение файлов на целевой платформе вручную	1
REQ6	Файлы, входящие в пакет берутся из CDT- проекта или из его целей	1
REQ7	Должен быть предоставлен интерфейс описания пакетов (файл control)	3
REQ8	Должна быть возможность редактирования скриптов установки / удаления пакета	3
REQ9	Пользователь должен уметь изменять changelog	2
REQ10	Должна быть возможность генерации бинарного пакета для целевой платформы	1
REQ11	Проект должен экспортироваться в deb-пакет выбором меню File/Export выбор debian package	1

Определения

Standard makefile project – проект CDT в котором makefile пишется вручную, никогда не изменяется извне струдствами разработки.

Managed makefile project – проект CDT в котором makefile каждый раз генерируется заново при изменении проекта.

Реализация

Разработка пакета (плагина) org.slind.ei.debproducer

Для standard-проектов пользователь вручную заполняет местоположение файлов внутри цели install

Для managed-проектов пользватель может отредактировать переменные указывающие пути для установи файлов в целевой системе(bin,doc,lib,…)

Если в проекте нет каталога debian, (в котором в том числе лежит changelog), то он генерируется dh_make и все файлы добавляются в проект

Любой из шагов экспорта проекта в deb-пакет может завершиться ошибкой

Интерфейс пользователя

Редактирование переменных

Шаг: control

Шаг: changelog

Шаги: файлы из каталога debian

Сценарии

Экспорт проекта в deb-пакет

* Предусловие: В makefile проекта есть цель install, зависящая от DESTDIR * Предусловие: Для managed-проектов заданы пути2) есть ли уже такие переменные в eclipse:doc,bin,lib,… для

Пользователь выбирает меню File/export или Export в контекстном меню проекта. В появившемся дилоге выбирает пункт “General/Debian package”. Мастер имеет следующие экраны:

наименование	обязательный	назначение
control	да	выбор каталога для пакета, описание зависимостей, архитектуры, разработчик, описание пакета, версия
changelog	да	описание изменени (текстовый редактор текущего изменения)
?	нет	интерфейсы для редактирования файлов в каталоге debian

Кнопка Finish генерирует deb-пакет.

!!!!!

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

Имя пакета.

Версия пакета.

Зависимости пакета(пока просто имена, вводимые вручную).

changelog.

Скрипты пред-/пост-инсталляции(создаются, если не существуют).

Папка, в которой выполняется сборка пакета(по умолчанию build).

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

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

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

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

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

Проверяем наличие makefile'а в проекта, если есть работаем дальше, если нет то добавляем в Makefile Generator генерацию цели install.

Зовём debhelp утилиты в правильном порядке - они всё делают.

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

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

Просто запускаем dpkg.

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

Какие поля должны заполняться для debian-каталога обязательно(читай спрашиваться в мастере)?

Какие утилиты debhelp'а нам нужны, какие данные потребуются для их вызова?

Как подключиться к Makefile Generator?

Как “правильно” скормить полученные знания и файлики dpkg?

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

Обзор существующих автоматических средств, для создания пакетов

Описание процедуры сборки пакетов

Проектирование графического интерфейса

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

Почему для SLIND выбран именно debian?

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

Редактор control-файла, выполненый аналогично редактору plugin.xml в PDE.

Автоматическое заполнение зависимостей пакета.

Автоматическое создание цели install в makefile если, её нет.

Создание мастера обновления версии(Дополнние changelog, увеличение номера версии, редактирование зависимостей и их перепроверка).

Ссылки

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