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/12 02:06] kvmetc:common_activities:slind:deb_producer [2008/01/17 02:36] kvm
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   | Пользователь указывает местоположение файлов на целевой платформе вручную                 | 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| 
 + 
 + 
 +==== Определения ==== 
 + 
 +  * **Standard makefile project** -- проект CDT в котором makefile пишется вручную, никогда не изменяется извне средствами разработки. 
 +  * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта. 
 +  * **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) ((заполнение файла control, rules для source-пакетов, генерация файла changelog)) 
 +  * Редактор файла control: по аналогии с редактором для plugin.xml. Должен предоставлять возможность заполнения стандартных полей control-файла и добавление специальных полей для пакетов slind 
 +  * Дейсвия редактировани файла changelog: new item, new version, новая подверсия (non-maintainer) 
 +  * Экспорт пакета (File->Export->.deb package)
  
-^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-проекта == 
-  - В меню File->New пользователь выбирает пункт «deb-project» 
-  - В появившемся диалоговом окне предлагается выбор источника: 
-  * существующий deb-пакет 
-  * проект CDT 
-  * FIXME: бинарные файлы? 
-Создается deb-проект, в рабочем каталоге создается каталог <имя_проекта>-1.0.0 c подкаталогом DEBIAN, в котором находятся файлы описания пакета (control, changelog, rules) 
-== Выбор состава конфигурационных файлов == 
-  - Кнопка «add cfg files» в главной панели инструментов открывает диалог, в котором пользователь может отметить необходимые файлы (predinst, postinst, predrm, postrm, FIXME: что еще?) 
-  - Выбранные файлы создаются в каталоге DEBIAN 
-== Редактирование конфигурационных файлов == 
-По двойному щелчку на имени конфигурационного файла в дереве открывается редактор соответствующего типа. 
-  * Редактор для файла control 
-{{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.  
  
-=== Уточняющая информация === 
  
-== Входные данные для генерации пакета == 
  
-Чтобы сгенерировать пакет, необходимо иметь следующие данные: 
-  * тип пакета (бинарный или с исходными текстами программы); 
-  * список файлов, которые необходимо запаковать; 
-  * в случае, если это бинарный пакет необходимо: 
-     * список требуемых библиотек;* 
-     * список предоставляемых библиотек; 
-  * путь, куда ставить какой файл(разные файлы могут быть установлены в различные каталоги) 
  
-== Сборка пакетов для другой платформы == 
  
-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~~
etc/common_activities/slind/deb_producer.txt · Last modified: 2008/03/23 23:16 by zan