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)
: требует существенной переработки
- Выбор типа пакета. Пользователь перед началом создания пакета, должен выбрать что он хочет сделать:
- сделать очередную версию уже существующего пакета
- сделать первую версию нового пакета
- Выбор существующего пакета. Если пользователь хотел сделать очередную версию, то он должен выбрать пакет с предыдузей версией.
- Ввод основных данных о пакете. Пользователь заполняет набор полей, которые необходимы для создания нового пакета.
- Выбор файлов, входящих в пакет. Пользователь находясь в окне, где прелставлены все файлы проекта, выделяет те файлы, которые он хочет поместить в пакет.
- Указание каталога установки для файлов. Пользователь видит список ранее выбраных фалов и указывает пути, куда должны быть установленны файлы. Чтобы указать место установки файлов, ему предоставляется возможность выделить один или несколько файлов и нажав на кнопку, в дереве каталогов выбрать необходимый каталог, либо создать новый, если необходимого нет.
- Редактирование списка зависимостей нового пакета. Пользователь видит список пакетов, от которых уже зависит данный пакет. При помощи выделения и кнопок он может удалить некоторые из них, либо добавить новые. Если пользователь нажимает на кнопку добавления нового пакета, ему предлагается ввести имя нового пакета, от которого будет зависить его пакет.
- Добавление скриптов пре/пост инсталяции/деинсталяции. Пользователь видит список возможных видов скриптов, которые он может добавить. Выбирает какой-то тип, после чего ему предлагается выбрать файл, хранящийся на диске, с этим скриптом. Пользователь может указать свой скрипт для каждого типа.
- Ввод “изменений” в changelog пакета. Пользователь просматривает существующий changelog. и имеет возможность ввести текст нового изменения. Все остальные поля проставленны автоматически. Редактировать изменения прошлых версий пользователь не может.
- Сборка нового пакета. Пользователь наблюдает все ранее введеные данные в наглядной форме, чтобы удостоверится, что он все сделал правильно и нажимает кнопку “Finish” чтобы собрать пакет.
Уточняющая информация
Входные данные для генерации пакета
Чтобы сгенерировать пакет, необходимо иметь следующие данные:
- тип пакета (бинарный или с исходными текстами программы);
- список файлов, которые необходимо запаковать;
- в случае, если это бинарный пакет необходимо:
- список требуемых библиотек;*
- список предоставляемых библиотек;
- путь, куда ставить какой файл(разные файлы могут быть установлены в различные каталоги)
Сборка пакетов для другой платформы
: в работе
Пакеты с исходниками: сборка и установка
: в работе
Добавление скриптов пре/пост инсталяции/деинсталяции
есть плагин для редактирования скриптов…
изучить что умеет/насколько пригоден к использованию
Discussion
Сейчас по факту у экспорта вообще нет опций. Можно добавить: поле для пути к файлу с подписью(может ему место вообще в настройках плагина?), чекбокс «не подписывать файлы», комбо выбора архитектуры для которой собирается, чекбокс «не выполнять проверку зависимостей». Нужно уточнить что их этого нужно + озвучить проблему с местом оседания файлов.