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
etc:common_activities:slind:deb_producer [2007/11/21 22:40] zanetc:common_activities:slind:deb_producer [2008/03/23 23:16] (current) zan
Line 1: Line 1:
-==== Исходные предположения ==== +===== Плагин генерации .deb пакетов =====
-  - Если проект является обычным makefile-проектом, то в makefile имеется цель install, корректно обрабатывающая переменную DESTDIR(на совести пользователя). +
-  - Если проект является управляемым, то мы имеем возможность добавить цель install в динамический makefile(вопрос исследуется).+
  
-==== Сценарии диалога с пользователем ==== +<note>  
-=== Создание DEBIAN-каталога в проекте === +для тестирования плагина в cvs(projects/slind/eclipse/tst/лежат исходные коды lessЧтобы вручную собрать deb-пакет достаточно((при условии, что установленны все необходимые для сборки пакеты)) выполнить debuild 
-  - Пользователь выделяет проект, вызвает контекстное меню, выбрает пункт New -> DEBIAN catalog. +</note>
-  - Открывается мастер создания DEBIAN-каталога. +
-  Пользователь заполняет поля мастера, нажимает кнопку Finish. +
-  - Если операция производится над makefile-проектом, то выполняется проверка наличия цели install. В случае её отсутствия выводится сообщение об ошибке и операция прерывается+
-  - Генерируется DEBIAN-каталог, открывается control-файл в редакторе. +
-=== Сборка пакета === +
-  - Пользователь вделяет проект, вызвает контекстное меню или выпадающее меню кнопки External tools, выбрает пункт Run as... -dpkg(рабочее название). +
-  - Выполняется сборка пакета.+
  
-=== Список полей, заполняемых в мастере === 
-  - Имя пакета. 
-  - Версия пакета. 
-  - Зависимости пакета(пока просто имена, вводимые вручную). 
-  - changelog. 
-  - Скрипты пред-/пост-инсталляции(создаются, если не существуют). 
-  - Папка, в которой выполняется сборка пакета(по умолчанию build).\\ 
-FIXME дополнить список 
  
-=== Поля, неявно заполняемые в мастером === +Требования к плагину приведены в таблице. 
-  - Целевая архитектура.+^Id    ^Описание ^P((приоритет: 1-maх,3-min)) ^Комментарий ^ 
 +| REQ1   | Должен быть расширением стандартного проекта CDT                                          | 1 | | 
 +| REQ2   | Структура дерева файлов пакета должна определяться целью install в makefile               | 1 | | 
 +| REQ3   | Должен поддерживаться standard проект                                                     | 1 | | 
 +| REQ4   | <del>Должен поддерживаться managed проект</del>                                           | 2 | | 
 +| REQ5   | <del>Пользователь указывает местоположение файлов на целевой платформе вручную</del>      | 1 | | 
 +| 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-каталога к проекту === 
-  - Проверяем наличие makefile'а в проекта, если есть работаем дальше, если нет то добавляем в Makefile Generator генерацию цели install. 
-  - Зовём debhelp утилиты в правильном порядке - они всё делают. 
-=== Генерация пакета === 
-  - При вызове генерации пакета выполняется цель install makefile'а c заменой переменной DESTDIR на путь к какой-то временной папке. 
-  - Просто запускаем dpkg. 
  
-==== Текущие вопросы ==== +==== План работ ==== 
-  * Какие поля должны заполняться для debian-каталога обязательноитай спрашиваться в мастере)? +|Освоиться со сборкой source и binary пакетов|21.01| 
-  * Какие утилиты debhelp'а нам нужны, какие данные потребуются для их вызова+кспорт (доработка)|23.01| 
-  * Как подключиться к Makefile Generator? +|Редактор control-файла|28.01| 
-  * Как "правильно" скормить полученные знания и файлики dpkg?+омощник changelog|28.01| 
 +енерация rules|6.02|
  
-==== Отчёты по задачам ==== 
  
-  - [[.:deb_producer:automation | Обзор существующих автоматических средств, для создания пакетов ]] +==== Определения ====
-  - [[.:deb_producer:deb_building | Описание процедуры сборки пакетов ]] +
-  - [[.:deb_producer:gui | Проектирование графического интерфейса]]+
  
-==== Общие вопросы ==== +  * **Standard makefile project** -- проект CDT в котором makefile пишется вручную, никогда не изменяется извне средствами разработки. 
-  - Делаетсяи сборка пакета в makefile. Если да, то нужно-ли учитывать эту возможность или предоставлять её как опцию при генерации пакета?+  * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта
 +  * **DebianNature** -- свойство проекта CDT, которое означает что проект содержит каталог debian и для него может быть сгенерирован deb-пакет.
  
-==== Возможные направления дальнейшего развития(2 итерация==== + 
-  * Редактор control-файла, выполненый аналогично редактору plugin.xml в PDE. +==== Реализация ==== 
-  * Автоматическое заполнение зависимостей пакета. + 
-  * Автоматическое создание цели install в makefile еслиеё нет. +  * Разработка пакета (плагина) org.slind.ei.debproducer 
-  * Создание мастера обновления версии(Дополнние changelog, увеличение номера версииредактирование зависимостей и их перепроверка).+  * Для 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          | Интерфейс пользователя]]
  
 ==== Ссылки ==== ==== Ссылки ====
-[[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.1195674041.txt.gz · Last modified: 2008/01/03 02:32 (external edit)