This is an old revision of the document!
Плагин для сборки пакетов
Пакет – архив, содержащий в себе файлы, приготовленные для установки в систему. Пакет содержит информацию о содержащихся в нём программах, их версиях, правилах установки и удаления пакета.
Помимо всего прочего, пакет содержит в себе полную версию, список файлов которые он предоставляет и список требуемых пакетов(зависимостей). Список требуемых пакетов содержит пакеты, которые уже должны быть установелны, когда будет происходить установка нашего пакета.
Разрешением зависимостей занимается менеджер пакетов.
Требования верхнего уровня
В балице приведены требования самого верхнего уровня к разрабатываемому плагину.
Id | Описание | P1) | Комментарий |
---|---|---|---|
REQ1 | Должен поддерживать проект deb описывающий один или несколько пакетов | 2 | |
REQ2 | Deb-проект должен уметь загружаться и сохраняться | 2 | |
REQ3 | Пользователь должен уметь указывать местоположение файлов на целевой платформе | 1 | |
REQ4 | Должна быть возможность использования файлов и целей CDT-проекта | 3 | |
REQ5 | Должен быть предоставлен интерфейс описания пакетов (файл control) | 1 | |
REQ6 | Должна быть возможность редактирования скриптов установки / удаления пакета | 2 | |
REQ7 | Пользователь должен уметь изменять changelog | 1 | |
REQ8 | Должна быть возможность генерации пакета для целевой платформы | 1 | |
REQ9 | Должен быть мастер создания проекта | 2 | |
REQ10 | Должна быть возможность генерации пакета с исходными текстами | 2 | |
REQ11 | Должна быть возможность генерации бинарного пакета | 1 |
Варианты использования (User story)
Создание deb-проекта
- В меню File→New пользователь выбирает пункт «deb-project»
- В появившемся диалоговом окне предлагается выбор источника:
- существующий deb-пакет
- проект CDT
: бинарные файлы?
Создается deb-проект, в рабочем каталоге создается каталог <имя_проекта>-1.0.0 c подкаталогом DEBIAN, в котором находятся файлы описания пакета (control, changelog, rules)
Выбор состава конфигурационных файлов
- Кнопка «add cfg files» в главной панели инструментов открывает диалог, в котором пользователь может отметить необходимые файлы (predinst, postinst, predrm, postrm,
: что еще?)
- Выбранные файлы создаются в каталоге DEBIAN
Редактирование конфигурационных файлов
По двойному щелчку на имени конфигурационного файла в дереве открывается редактор соответствующего типа.
- Редактор для файла control
В файле control может содержаться описание нескольких пакетов. Для каждого пакета в редакторе есть отдельная вкладка (на рисунке - tetris, another package)
- Редактор для файла rules
- Пользователь выделяет узел в дереве имеющихся файлов
- при нажатии на кнопку “»” открывается диалог для выбора пути назначения
- в правом окне строится целевое дерево файлов
- с помощью кнопки ««» пользователь может удалить файл из целевого дерева
Файл rules может редактироваться как обычный скрипт2). Для этого нужно переключиться на вкладку “rules” в нижней части редактора.
- Файлы скриптов установки/удаления редактируются как обычные скрипты.
Генерация пакета
При нажатии на кнопку «gen pkg» в главной панели инструментов открывается диалог, в котором пользователь должен ввести
- тип генерируемого пакета: с исходными кодами/бинарный
- информацию об изменениях для файла changelog.
Уточняющая информация
Входные данные для генерации пакета
Чтобы сгенерировать пакет, необходимо иметь следующие данные:
- тип пакета (бинарный или с исходными текстами программы);
- список файлов, которые необходимо запаковать;
- в случае, если это бинарный пакет необходимо:
- список требуемых библиотек;*
- список предоставляемых библиотек;
- путь, куда ставить какой файл(разные файлы могут быть установлены в различные каталоги)
Сборка пакетов для другой платформы
: в работе
Пакеты с исходниками: сборка и установка
: в работе
Добавление скриптов пре/пост инсталяции/деинсталяции
есть плагин для редактирования скриптов…
изучить что умеет/насколько пригоден к использованию
Discussion
Сейчас по факту у экспорта вообще нет опций. Можно добавить: поле для пути к файлу с подписью(может ему место вообще в настройках плагина?), чекбокс «не подписывать файлы», комбо выбора архитектуры для которой собирается, чекбокс «не выполнять проверку зависимостей». Нужно уточнить что их этого нужно + озвучить проблему с местом оседания файлов.