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/13 20:54] zanetc:common_activities:slind:deb_producer [2008/03/23 23:16] (current) zan
Line 1: Line 1:
-==== Плагин для сборки пакетов ====+===== Плагин генерации .deb пакетов =====
  
-Пакет -- архив, содержащий в себе файлы, приготовленные для установки в систему. Пакет содержит информацию о содержащихся в нём программах, их версияхправилах установки и удаления пакета+<note>  
 +для тестирования плагина в cvs(projects/slind/eclipse/tst/) лежат исходные коды less. Чтобы вручную собрать deb-пакет достаточно((при условиичто установленны все необходимые для сборки пакеты)) выполнить debuild 
 +</note>
  
-Помимо всего прочего, пакет содержит в себе полную версию, __список файлов которые он предоставляет__ и __список требуемых пакетов(зависимостей)__. Список требуемых пакетов содержит пакеты, которые уже должны быть установелны, когда будет происходить установка нашего пакета. 
  
-Разрешением зависимостей занимается менеджер пакетов.+Требования к плагину приведены в таблице. 
 +^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 |
  
-=== Требования верхнего уровня  === 
  
-В таблице приведены требования самого верхнего уровня к разрабатываемому плагину.+==== План работ ==== 
 +|Освоиться со сборкой source и binary пакетов|21.01| 
 +кспорт (доработка)|23.01| 
 +едактор control-файла|28.01| 
 +|Помощник changelog|28.01| 
 +|Генерация rules|6.02|
  
-^Id    ^Описание ^P((приоритет: 1-maх,3-min)) ^Комментарий ^ 
-| 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) === +==== Определения ==== 
-DELETEME: необходимо обсуждение! + 
-== Создание deb-проекта == +  * **Standard makefile project** -- проект CDT в котором makefile пишется вручную, никогда не изменяется извне средствами разработки
-  - В меню File->New пользователь выбирает пункт «deb-project» +  * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта. 
-  - В появившемся диалоговом окне предлагается выбор источника: +  * **DebianNature** -- свойство проекта CDT, которое означает что проект содержит каталог debian и для него может быть сгенерирован deb-пакет
-  * существующий deb-пакет + 
-  * проект CDT + 
-  * FIXME: бинарные файлы? +==== Реализация ==== 
-Создается deb-проектв рабочем каталоге создается каталог <имя_проекта>-1.0.0 c подкаталогом DEBIAN, в котором находятся файлы описания пакета (control, changelog, rules) + 
-== Выбор состава конфигурационных файлов == +  * Разработка пакета (плагина) org.slind.ei.debproducer 
-  - Кнопка «add cfg files» в главной панели инструментов открывает диалогв котором пользователь может отметить необходимые файлы (predinst, postinst, predrm, postrm, FIXME: что еще?) +  * Для standard-проектов пользователь вручную заполняет местоположение файлов внутри цели install 
-  - Выбранные файлы создаются в каталоге DEBIAN +  * <del>Для managed-проектов пользватель может отредактировать переменные указывающие пути для установи файлов в целевой системе(bin,doc,lib,...)</del>   
-== Редактирование конфигурационных файлов == +  * Если в проекте нет каталога debian, (в котором в том числе лежит changelog)то он генерируется помощником, и все файлы добавляются в проект  
-По двойному щелчку на имени конфигурационного файла в дереве открывается редактор соответствующего типа. +  * Сборка пакета происходит из специально подготовленного каталога при помощи dpkg 
-  * Редактор для файла control +  * Подготовка каталога, где будет запущен dpkg, происходит при помощи make install и копирования директории debian экспортируемого проекта 
-{{etc:common_activities:slind:etc:common_activities:slind:deb_gui_control.jpg|}} \\ +
-В файле control может содержаться описание нескольких пакетов. Для каждого пакета в редакторе есть отдельная вкладка (на рисунке - tetris, another package) +
-  * Редактор для файла rules +
-{{etc:common_activities:slind:etc:common_activities:slind:deb_gui_rules.jpg|}}  +
-  - Пользователь выделяет узел в дереве имеющихся файлов  +
-  - при нажатии на кнопку “>>” открывается диалог для выбора пути назначения  +
-  - в правом окне строится целевое дерево файлов  +
-  с помощью кнопки «<<» пользователь может удалить файл из целевого дерева  +
-Файл rules может редактироваться как обычный скрипт((с использованием плагина ShellEd?)). Для этого нужно переключиться на вкладку “rules” в нижней части редактора. +
-  * Файлы скриптов установки/удаления редактируются как обычные скрипты. +
-== Генерация пакета == +
-При нажатии на кнопку «gen pkg» в главной панели инструментов открывается диалог, в котором пользователь должен ввести +
-  * тип генерируемого пакета: с исходными кодамиинарный  +
-  * информацию об изменениях для файла changelog. +
  
-=== Уточняющая информация === 
  
-== Входные данные для генерации пакета ==+==== Интерфейс пользователя ====
  
-Чтобы сгенерировать пакет, необходимо иметь следующие данные: +  * Генерация каталога DEBIAN (File->New->DEBIAN) ((заполнение файла control, rules для source-пакетов, генерация файла changelog)
-  * тип пакета инарный или с исходными текстами программы); +  * Редактор файла control: по аналогии с редактором для plugin.xml. Должен предоставлять возможность заполнения стандартных полей control-файла и добавление специальных полей для пакетов slind 
-  * список файлов, которые необходимо запаковать; +  * Дейсвия редактировани файла changelog: new item, new version, новая подверсия (non-maintainer) 
-  * в случае, если это бинарный пакет необходимо: +  * Экспорт пакета (File->Export->.deb package)
-     * список требуемых библиотек;* +
-     список предоставляемых библиотек; +
-  * путь, куда ставить какой файл(разные файлы могут быть установлены в различные каталоги)+
  
-== Сборка пакетов для другой платформы == 
  
-FIXME: в работе+==== Сценарии ==== 
 +  * Предусловиестандартный 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-пакет...
  
-FIXME: в работе+==== Подробности ====
  
-== Добавление скриптов пре/пост инсталяции/деинсталяции ==+  * [[.:deb_producer:files_description   | Описание структуры файлов каталога DEBIAN]] 
 +  * [[.:deb_producer:gui          | Интерфейс пользователя]]
  
-есть [[http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-275.html|плагин для редактирования скриптов]]...\\ +==== Ссылки ==== 
-FIXME изучить что умеет/насколько пригоден к использованию+[[http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-275.html|плагин для редактирования скриптов]]
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
etc/common_activities/slind/deb_producer.1194976451.txt.gz · Last modified: 2008/01/03 02:32 (external edit)