Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:slind

This is an old revision of the document!


Slind

Slind - это операционная система в основе которой лежит Debian + набор утилит для установки пакетов и построения файловой системы на мобильном устройстве с установленным ядром Linux. Наше направление развития - осуществить взаимодействие с мобильным устройством через IDE Eclipse.

На данный момент slind.org предоставляет plug-in для Eclipse, который осуществляет:

  • Компиляцию под выбранную архитектуру
  • Удаленную отладку

Текущий глобальный план Siemens

  • Кросс-компилятор
  • Интеграция с gdb
  • Сборка .deb
  • .deb Package management
  • Подключение oprofile
  • Генерация deb-пакетов

    Постановка задачи

    Пакет – архив, содержащий в себе файлы, приготовленные для установки в систему. Пакет содержит информацию о содержащихся в нём программах, их версиях, правилах установки и удаления пакета. Помимо всего прочего, пакет содержит в себе полную версию, список файлов которые он предоставляет и список требуемых пакетов(зависимостей). Список требуемых пакетов содержит пакеты, которые уже должны быть установелны, когда будет происходить установка нашего пакета. Разрешением зависимостей занимается менеджер пакетов.

    Входные данные

    Чтобы сгенерировать пакет, необходимо иметь следующие данные:

    • тип пакета (бинарный или с исходными текстами программы);
    • список файлов, которые необходимо запаковать;
    • в случае, если это бинарный пакет необходимо:
      • список требуемых библиотек;*
      • список предоставляемых библиотек;
    • путь, куда ставить какой файл(разные файлы могут быть установлены в различные каталоги)

    FIXME: необходимо уточнить и сделать более конкретный список

    Выходные данные

    Выходными данными является пакет(или несколько пакетов, например, -src, -devel, -lib…), который можно положить в репозитарий и установить при помощи менеджера пакетов.

    "Истории"

    1. Выбор типа пакета. Пользователь перед началом создания пакета, должен выбрать что он хочет сделать:
      • сделать очередную версию уже существующего пакета
      • сделать первую версию нового пакета
    2. Выбор существующего пакета. Если пользователь хотел сделать очередную версию, то он должен выбрать пакет с предыдузей версией.
    3. Ввод основных данных о пакете. Пользователь заполняет набор полей, которые необходимы для создания нового пакета.
    4. Выбор файлов, входящих в пакет. Пользователь находясь в окне, где прелставлены все файлы проекта, выделяет те файлы, которые он хочет поместить в пакет.
    5. Указание каталога установки для файлов. Пользователь видит список ранее выбраных фалов и указывает пути, куда должны быть установленны файлы. Чтобы указать место установки файлов, ему предоставляется возможность выделить один или несколько файлов и нажав на кнопку, в дереве каталогов выбрать необходимый каталог, либо создать новый, если необходимого нет.
    6. Редактирование списка зависимостей нового пакета. Пользователь видит список пакетов, от которых уже зависит данный пакет. При помощи выделения и кнопок он может удалить некоторые из них, либо добавить новые. Если пользователь нажимает на кнопку добавления нового пакета, ему предлагается ввести имя нового пакета, от которого будет зависить его пакет.
    7. Добавление скриптов пре/пост инсталяции/деинсталяции. Пользователь видит список возможных видов скриптов, которые он может добавить. Выбирает какой-то тип, после чего ему предлагается выбрать файл, хранящийся на диске, с этим скриптом. Пользователь может указать свой скрипт для каждого типа.
    8. Ввод “изменений” в changelog пакета. Пользователь просматривает существующий changelog. и имеет возможность ввести текст нового изменения. Все остальные поля проставленны автоматически. Редактировать изменения прошлых версий пользователь не может.
    9. Сборка нового пакета. Пользователь наблюдает все ранее введеные данные в наглядной форме, чтобы удостоверится, что он все сделал правильно и нажимает кнопку “Finish” чтобы собрать пакет.

    Исследование

    Изначально у нас может быть несколько разных штук:

    1. проект Eclipse
    2. проект SLind
    3. пакет с исходниками

    FIXME: Описание deb пакета с исходниками. Что в нем есть, и как его можно преобразовать в бинарный пакет? Возможно при помощи dpkg.

    Текущий план действий

    1. Изучение внутреннего представления CDT–проекта (zan);
    2. Отличия СDT–проекта от Slind–проекта(zan);
    3. Обзор существующих автоматических средств, для создания пакетов (kvm);
    4. Обзор существующих средств управления пакетами(не только под Eclipse) их интерфейс и функциональность. (kvm)
    5. Более детальное изучение содержимого каталога DEBIAN(zps);
    6. Описание deb–пакетов с исходными текстами и способов построения из них бинарных пакетов(zps);
    7. Определение четкого списка обязательной информации о проекте, необходимой для построения пакета(zps);
    8. Сопоставление каждому элементу списка обязательной информации, метода(способа) ее получить(kvm,zan,zps);
    9. Проектирование графического интерфейса(kvm)

    Выполнение плана

    1. Задача затяжная, не уверен что в полном объёме нужная, отчёты о продвижении будут тут
    2. Взялся за задачу шире: исследую существующий плагин(фичу если точно) вообще. Результат здесь. Также напишу выжимку собственно по задаче.

    Построение root-fs конечного устройства

    FIXME: В стадии обдумывания. Предположительно – это просто обертка над cross-shell, который непосредственно умеет это делать.

    Cсылки

    You could leave a comment if you were logged in.
    etc/common_activities/slind.1194386214.txt.gz · Last modified: 2008/01/03 02:32 (external edit)