Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:slind:deb_producer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:common_activities:slind:deb_producer [2007/11/21 22:45] zanetc:common_activities:slind:deb_producer [2008/01/17 02:36] kvm
Line 1: Line 1:
-===== Плагин работы с .deb пакетами =====+===== Плагин генерации .deb пакетов =====
  
-==== Исходные предположения ==== +<note>  
-  - Если проект является обычным makefile-проектом, то в makefile имеется цель install, корректно обрабатывающая переменную DESTDIR(на совести пользователя). +для тестирования плагина в cvs(projects/slind/eclipse/tst/лежат исходные коды less. Чтобы вручную собрать deb-пакет достаточно((при условии, что установленны все необходимые для сборки пакеты)) выполнить debuild 
-  - Если проект является управляемым, то мы имеем возможность добавить цель install в динамический makefile(вопрос исследуется).+</note>
  
-==== Сценарии диалога с пользователем ==== 
-=== Создание DEBIAN-каталога в проекте === 
-  - Пользователь выделяет проект, вызвает контекстное меню, выбрает пункт New -> DEBIAN catalog. 
-  - Открывается мастер создания DEBIAN-каталога. 
-  - Пользователь заполняет поля мастера, нажимает кнопку Finish. 
-  - Если операция производится над makefile-проектом, то выполняется проверка наличия цели install. В случае её отсутствия выводится сообщение об ошибке и операция прерывается. 
-  - Генерируется DEBIAN-каталог, открывается control-файл в редакторе. 
-=== Сборка пакета === 
-  - Пользователь вделяет проект, вызвает контекстное меню или выпадающее меню кнопки External tools, выбрает пункт Run as... -> dpkg(рабочее название). 
-  - Выполняется сборка пакета. 
  
-=== Список полей, заполняемых в мастере === +Требования к плагину приведены в таблице. 
-  Имя пакета. +^Id    ^Описание ^P((приоритет: 1-maх,3-min)) ^Комментарий ^ 
-  - Версия пакета. +| REQ1   | Должен быть расширением стандартного проекта CDT                                          | 1 | | 
-  - Зависимости пакета(пока просто имена, вводимые вручную). +| REQ2   | Структура дерева файлов пакета должна определяться целью install в makefile               | 1 | | 
-  - changelog. +| REQ3   | Должен поддерживаться standard проект                                                     | 1 | | 
-  - Скрипты пред-/пост-инсталляции(создаются, если не существуют). +| REQ4   | <del>Должен поддерживаться managed проект</del>                                           | 2 | | 
-  - Папка, в которой выполняется сборка пакета(по умолчанию build).\\ +| REQ5   | Пользователь указывает местоположение файлов на целевой платформе вручную                 | 1 | | 
-FIXME дополнить список+| REQ6   | Файлы, входящие в пакет берутся из CDT- проекта или из его целей                          | 1 | | 
 +| REQ7   | Должен быть предоставлен интерфейс описания пакетов (файл control)                        | 1 | | 
 +| REQ8   | Должна быть возможность редактирования скриптов установки / удаления  пакета              | 3 | | 
 +| REQ9   | Пользователь должен уметь изменять changelog                                              | 2 | | 
 +| REQ10  | Должна быть возможность генерации бинарного пакета для целевой платформы                  | 1 | | 
 +| REQ11  | Проект должен экспортироваться в deb-пакет выбором меню File/Export выбор debian package  | 1 | | 
 +| REQ12  | Должен быть предоставлен помощник создания каталога debian, генерирующий  файлы control, changelog, rules (для source-пакетов)| 1 |не использовать dh_make |
  
-=== Поля, неявно заполняемые в мастером === 
-  - Целевая архитектура. 
  
-==== Подход к решению задачи ==== +==== План работ ==== 
-=== Создание debian-каталога к проекту === +|Освоиться со сборкой source и binary пакетов|21.01| 
-  - Проверяем наличие makefile'а в проекта, если есть работаем дальше, если нет то добавляем в Makefile Generator генерацию цели install+|Экспорт (доработка)|23.01| 
-  - Зовём debhelp утилиты в правильном порядке - они всё делают+едактор control-файла|28.01| 
-=== Генерация пакета === +омощник changelog|28.01| 
-  - При вызове генерации пакета выполняется цель install makefile'а c заменой переменной DESTDIR на путь к какой-то временной папке. +|Генерация rules|6.02|
-  - Просто запускаем dpkg.+
  
-==== Текущие вопросы ==== 
-  * Какие поля должны заполняться для debian-каталога обязательно(читай спрашиваться в мастере)? 
-  * Какие утилиты debhelp'а нам нужны, какие данные потребуются для их вызова? 
-  * Как подключиться к Makefile Generator? 
-  * Как "правильно" скормить полученные знания и файлики dpkg? 
  
-==== Отчёты по задачам ====+==== Определения ====
  
-  * [[.:deb_producer:automation | Обзор существующих автоматических средств, для создания пакетов ]] +  * **Standard makefile project** -- проект CDT в котором makefile пишется вручную, никогда не изменяется извне средствами разработки. 
-  * [[.:deb_producer:deb_building | Описание процедуры сборки пакетов ]] +  * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта. 
-  * [[.:deb_producer:gui | Проектирование графического интерфейса]]+  * **DebianNature** -- свойство проекта CDT, которое означает что проект содержит каталог debian и для него может быть сгенерирован deb-пакет. 
 + 
 + 
 + 
 + 
 +==== Реализация ==== 
 + 
 +  * Разработка пакета (плагина) org.slind.ei.debproducer 
 +  * Для standard-проектов пользователь вручную заполняет местоположение файлов внутри цели install 
 +  * <del>Для managed-проектов пользватель может отредактировать переменные указывающие пути для установи файлов в целевой системе(bin,doc,lib,...)</del>   
 +  * Если в проекте нет каталога debian, (в котором в том числе лежит changelog), то он генерируется помощником, и все файлы добавляются в проект  
 +  * Сборка пакета происходит из специально подготовленного каталога при помощи dpkg 
 +  * Подготовка каталога, где будет запущен dpkg, происходит при помощи make install и копирования директории debian экспортируемого проекта 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +==== Интерфейс пользователя ==== 
 + 
 +  * Генерация каталога DEBIAN (File->New->DEBIAN) ((заполнение файла controlrules для source-пакетов, генерация файла changelog)) 
 +  * Редактор файла control: по аналогии с редактором для plugin.xml. Должен предоставлять возможность заполнения стандартных полей control-файла и добавление специальных полей для пакетов slind 
 +  * Дейсвия редактировани файла changelog: new item, new version, новая подверсия (non-maintainer) 
 +  * Экспорт пакета (File->Export->.deb package) 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +==== Сценарии ==== 
 +  * Предусловие: стандартный cdt-проект. В makefile проекта есть цель install, зависящая от DESTDIR 
 +=== Генерация директории DEBIAN === 
 +  * Пользователь выбирает пункт меню File->New->DEBIAN 
 +[[.:deb_producer:gui | Мастер]] имеет следующие экраны: 
 +^наименование ^обязательный ^назначение ^  
 +| Package type                  | да  | выбор типа пакета, указание пути к директории debian от корня проекта| 
 +|Source description|source|Описание общей части| 
 +|Packages descrition|source|Описание бинарных пакетов| 
 +|Package description|binary|Описание бинарного пакета| 
 +  
 +  * В полях мастера пользователь заполняет поля для файла control  
 +  * Генерируется директория debian, содержащая файлы control, changelog и rules((для source-пакетов)) 
 +  * Пользователь имеет возможность редактировать полученные файлы и добавлять необязательные файлы в созданный каталог 
 +=== Экспорт .deb-пакета === 
 +  * Пользователь выбирает меню File/export или Export в контекстном меню проекта. В появившемся дилоге  
 +выбирает пункт "General/Debian package"
 +Мастер имеет следующие экраны: 
 +^наименование ^обязательный ^назначение ^  
 +| export                | да  | путь для сохранения .deb| 
 + 
 +  * словно по волшебству, в указанной директории появляется deb-пакет... 
 + 
 +==== Подробности ==== 
 + 
 +  * [[.:deb_producer:files_description   | Описание структуры файлов каталога DEBIAN]] 
 +  * [[.:deb_producer:gui          | Интерфейс пользователя]]
  
-==== Общие вопросы ==== 
-  - Делается-ли сборка пакета в makefile. Если да, то нужно-ли учитывать эту возможность или предоставлять её как опцию при генерации пакета? 
  
-==== Возможные направления дальнейшего развития(2 итерация) ==== 
-  * Редактор control-файла, выполненый аналогично редактору plugin.xml в PDE. 
-  * Автоматическое заполнение зависимостей пакета. 
-  * Автоматическое создание цели install в makefile если, её нет. 
-  * Создание мастера обновления версии(Дополнние changelog, увеличение номера версии, редактирование зависимостей и их перепроверка). 
  
 ==== Ссылки ==== ==== Ссылки ====
-[[http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-275.html|плагин для редактирования скриптов]]\\ +[[http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-275.html|плагин для редактирования скриптов]]
-FIXME изучить что умеет/насколько пригоден к использованию+
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
etc/common_activities/slind/deb_producer.txt · Last modified: 2008/03/23 23:16 by zan