etc:common_activities:slind:deb_producer
This is an old revision of the document!
Table of Contents
Плагин работы с .deb пакетами
Id | Описание | P1) | Комментарий |
---|---|---|---|
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) для
Пользователь выбирает меню 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, увеличение номера версии, редактирование зависимостей и их перепроверка).
Ссылки
etc/common_activities/slind/deb_producer.1195930853.txt.gz · Last modified: 2008/01/03 02:32 (external edit)
Discussion
Сейчас по факту у экспорта вообще нет опций. Можно добавить: поле для пути к файлу с подписью(может ему место вообще в настройках плагина?), чекбокс «не подписывать файлы», комбо выбора архитектуры для которой собирается, чекбокс «не выполнять проверку зависимостей». Нужно уточнить что их этого нужно + озвучить проблему с местом оседания файлов.