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!


Плагин работы с .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-пакет.

FIXME!FIXME!FIXME!FIXME!FIXME!

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

  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. Почему для SLIND выбран именно debian?

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

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

Ссылки

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

1)
приоритет: 1-maх,3-min
2)
есть ли уже такие переменные в eclipse:doc,bin,lib,…

Discussion

cheat, 2008/03/23 23:20

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

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