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/25 20:36] zpsetc:common_activities:slind:deb_producer [2008/01/17 02:36] kvm
Line 1: Line 1:
-===== Плагин работы с .deb пакетами =====+===== Плагин генерации .deb пакетов =====
  
-Требования приведены в таблице.+<note>  
 +для тестирования плагина в cvs(projects/slind/eclipse/tst/) лежат исходные коды less. Чтобы вручную собрать deb-пакет достаточно((при условии, что установленны все необходимые для сборки пакеты)) выполнить debuild.  
 +</note> 
 + 
 + 
 +Требования к плагину приведены в таблице.
 ^Id    ^Описание ^P((приоритет: 1-maх,3-min)) ^Комментарий ^ ^Id    ^Описание ^P((приоритет: 1-maх,3-min)) ^Комментарий ^
 | REQ1   | Должен быть расширением стандартного проекта CDT                                          | 1 | | | REQ1   | Должен быть расширением стандартного проекта CDT                                          | 1 | |
 | REQ2   | Структура дерева файлов пакета должна определяться целью install в makefile               | 1 | | | REQ2   | Структура дерева файлов пакета должна определяться целью install в makefile               | 1 | |
 | REQ3   | Должен поддерживаться standard проект                                                     | 1 | | | REQ3   | Должен поддерживаться standard проект                                                     | 1 | |
-| REQ4   | Должен поддерживаться managed проект                                                      | 2 | |+| REQ4   <del>Должен поддерживаться managed проект</del>                                           | 2 | |
 | REQ5   | Пользователь указывает местоположение файлов на целевой платформе вручную                 | 1 | | | REQ5   | Пользователь указывает местоположение файлов на целевой платформе вручную                 | 1 | |
 | REQ6   | Файлы, входящие в пакет берутся из CDT- проекта или из его целей                          | 1 | | | REQ6   | Файлы, входящие в пакет берутся из CDT- проекта или из его целей                          | 1 | |
-| REQ7   | Должен быть предоставлен интерфейс описания пакетов (файл control)                        | | |+| REQ7   | Должен быть предоставлен интерфейс описания пакетов (файл control)                        | | |
 | REQ8   | Должна быть возможность редактирования скриптов установки / удаления  пакета              | 3 | | | REQ8   | Должна быть возможность редактирования скриптов установки / удаления  пакета              | 3 | |
 | REQ9   | Пользователь должен уметь изменять changelog                                              | 2 | | | REQ9   | Пользователь должен уметь изменять changelog                                              | 2 | |
 | REQ10  | Должна быть возможность генерации бинарного пакета для целевой платформы                  | 1 | | | REQ10  | Должна быть возможность генерации бинарного пакета для целевой платформы                  | 1 | |
 | REQ11  | Проект должен экспортироваться в deb-пакет выбором меню File/Export выбор debian package  | 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 пишется вручную, никогда не изменяется извне струдствами разработки.+  * **Standard makefile project** -- проект CDT в котором makefile пишется вручную, никогда не изменяется извне средствами разработки.
   * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта.   * **Managed makefile project** -- проект CDT в котором makefile каждый раз генерируется заново при изменении проекта.
 +  * **DebianNature** -- свойство проекта CDT, которое означает что проект содержит каталог debian и для него может быть сгенерирован deb-пакет.
 +
 +
 +
  
 ==== Реализация ==== ==== Реализация ====
Line 24: Line 43:
   * Разработка пакета (плагина) org.slind.ei.debproducer   * Разработка пакета (плагина) org.slind.ei.debproducer
   * Для standard-проектов пользователь вручную заполняет местоположение файлов внутри цели install   * Для standard-проектов пользователь вручную заполняет местоположение файлов внутри цели install
-  * Для managed-проектов пользватель может отредактировать переменные указывающие пути для установи файлов в целевой системе(bin,doc,lib,...) +  * <del>Для managed-проектов пользватель может отредактировать переменные указывающие пути для установи файлов в целевой системе(bin,doc,lib,...)</del>   
-  * Если в проекте нет каталога debian, (в котором в том числе лежит changelog), то он генерируется  dh_make и все файлы добавляются в проект  +  * Если в проекте нет каталога debian, (в котором в том числе лежит changelog), то он генерируется помощником, и все файлы добавляются в проект 
-  * Любой из шагов экспорта проекта в deb-пакет может завершиться ошибкой+
   * Сборка пакета происходит из специально подготовленного каталога при помощи dpkg   * Сборка пакета происходит из специально подготовленного каталога при помощи dpkg
   * Подготовка каталога, где будет запущен dpkg, происходит при помощи make install и копирования директории debian экспортируемого проекта   * Подготовка каталога, где будет запущен dpkg, происходит при помощи make install и копирования директории debian экспортируемого проекта
 +
 +
 +
 +
 +
 +
 +
  
 ==== Интерфейс пользователя ==== ==== Интерфейс пользователя ====
  
-  * Редактирование переменных +  * Генерация каталога DEBIAN (File->New->DEBIAN) ((заполнение файла control, rules для source-пакетов, генерация файла changelog)) 
-  * Шаг 1 Описание пакета ((редактирование файла control)) +  * Редактор файла control: по аналогии с редактором для plugin.xml. Должен предоставлять возможность заполнения стандартных полей control-файла и добавление специальных полей для пакетов slind 
-  * Шаг 2 : Описание изменений ((редактирование changelog )) +  * Дейсвия редактировани файла changelog: new item, new version, новая подверсия (non-maintainer) 
-  * Шаги: файлы из каталога debian  +  * Экспорт пакета (File->Export->.deb package)
  
-==== Сценарии ==== 
  
-=== Экспорт проекта в deb-пакет === 
- * Предусловие: В makefile проекта есть цель install, зависящая от DESTDIR 
- * Предусловие: Для managed-проектов заданы пути((есть ли уже такие переменные в eclipse:doc,bin,lib,...)) для  
  
-Пользователь выбирает меню File/export или Export в контекстном меню проекта. В появившемся дилоге + 
 + 
 + 
 + 
 +==== Сценарии ==== 
 +  * Предусловие: стандартный 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". выбирает пункт "General/Debian package".
 Мастер имеет следующие экраны: Мастер имеет следующие экраны:
 ^наименование ^обязательный ^назначение ^  ^наименование ^обязательный ^назначение ^ 
-control                  | да  | выбор каталога для пакета, описание зависимостей, архитектуры, разработчик, описание пакета, версия | +export                | да  | путь для сохранения .deb
-| changelog                | да  описание изменени (текстовый редактор текущего изменения)        | + 
-| редактор каталога debian | нет | интерфейсы для редактирования файлов в каталоге debian           | +  * словно по волшебству, в указанной директории появляется deb-пакет...
-Кнопка Finish генерирует deb-пакет.+
  
 ==== Подробности ==== ==== Подробности ====
  
-  * [[.:deb_producer:automation   | Обзор deb-helper ]]+  * [[.:deb_producer:files_description   | Описание структуры файлов каталога DEBIAN]]
   * [[.:deb_producer:gui          | Интерфейс пользователя]]   * [[.:deb_producer:gui          | Интерфейс пользователя]]
  
  
-==== Общие вопросы ==== 
-  - Почему для SLIND выбран именно debian?  
  
 ==== Ссылки ==== ==== Ссылки ====
Line 65: Line 102:
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
- 
etc/common_activities/slind/deb_producer.txt · Last modified: 2008/03/23 23:16 by zan