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 нет интерфейсы для редактирования файлов в каталоге debian

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

Подробности

  • 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, увеличение номера версии, редактирование зависимостей и их перепроверка).

Ссылки

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.1196000055.txt.gz · Last modified: 2008/01/03 02:32 (external edit)