Различия между версиями 35 и 36
Версия 35 от 2009-12-16 16:18:00
Размер: 8618
Редактор: FrBrGeorge
Комментарий:
Версия 36 от 2009-12-20 16:56:46
Размер: 8634
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 1: Строка 1:
== Информация о курсе == == Сопровождение пакетов в Linux ==

Сопровождение пакетов в Linux

  • Лектор: Георгий Владимирович Курячий

  • В течение курса возможно проведение практических занятий по сборке пакетов
  • В конце курса будет экзамен
  • Спецкурс проходит по средам в 18:00 в аудитории П-12. Первая лекция — 30 сентября
  • Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.

План курса

«

Возьми консервную банку, в нужных местах пробей дырочки, продень проволоку, загни концы... Теперь приделай к этому ручку, и аппарат готов!»

© Даниил Хармс

  • Место пакета в дистрибутиве
    • Дистрибутив ОС на основе свободного ПО: принципы формирования.
    • Хранилище пакетов: назначение и жизненный цикл; изготовление дистрибутивов из хранилища
    • Пакет как составная часть дистрибутива: требования и особенности; понятие сборки пакета.
    • Сборка пакета из исходных текстов; upstream, spec
  • Сопровождение пакета в составе хранилища
    • социальная составляющая, роль сообщества и личности сопровождающего
    • помещение стороннего ПО в хранилище: от upsrteam до binary package
    • packaging policy: цели и задачи
    • почему хранилище — не дистрибутив: хранилище как инструмент разработки и сизифов труд

  • Технологии, облегчающие сопровождение пакета (сопровождающему и сообществу)
    • Частью даются ознакомительно, так как в будущем семестре планируется прочесть курс на схожую тему
    • инструменты разработчика и их использование в процессе сопровождения
    • изолированная сборка; автоматизация изолированной сборки
    • входное тестирование пакета и контроль собираемости хранилища
  • Сборка пакета в хранилище свободного ПО Sisyphus, пошагово

Конспекты и планы лекций

  1. Организационное собрание, посвящённое выборе темы лекций (аудиозапись)

  2. Дистрибутив ОС на основе свободного ПО: принципы формирования (конспект) (аудиозапись)

  3. Пакет как составная часть дистрибутива: требования и особенности; понятие сборки пакета (конспект) (аудиозапись 0, аудиозапись 1)

  4. Сборка пакета из исходных текстов; upstream, spec (конспект) (аудиозапись)

  5. Сопровождающий (maintainer) пакета (конспект) (аудиозапись)

  6. Изолированная среда сборки (введение) (конспект) (аудиозапись)

  7. Лекция Александра Герасёва о пакетах в GNU Debian (конспект) (аудиозапись 0, аудиозапись 1)

  8. Работа с upstream, Составление спецификаций (конспект)

  9. Составление спецификаций - II, Исправление upstream (заплатки), Помещение в хранилище, Обратная связь с upstream и сообщения об ошибках (конспект) (видеозапись)

  10. Git, Gear и git.alt

  11. Git (лекция А. Герасёва)

  12. Пактика сборки пакета


  1. {*} http://www.altlinux.org/Spec

    1. Работа с upstream
      1. Tarballs
      2. VCS, ревизии и теги
    2. Составление спецификаций
      1. Что должно быть в spec-файле, правила оформления
  2. {*}

    1. Составление спецификаций - II
      1. Коротко о spec-файле
      2. Борьба с версиями
      3. Борьба с путями
      4. Борьба со сборочными зависимостями
      5. Макросы
    2. Исправление upstream (заплатки)
      1. patch и diff

      2. Проталкивание заплаток в upstream
    3. Помещение в хранилище
      1. src.rpm
      2. Электронная подпись участника Team и робота-сборщика
      3. hasher и локальное хранилище
    4. Обратная связь с upstream и сообщения об ошибках
      1.  Как правильно задавать вопросы

      2. Как правильно отвечать на вопросы
      3. Багзилла как пример BTS
        • Product, component, priority, severity, platform, summary, full description
        • патчи и обсуждения
        • зависимости и дубли
        • статус
  3. {*} Git, Gear и git.alt

    1. Повторение пройденного: что делает сопровождающий:
      1. Получить исходники
      2. Развернуть сборочную среду
      3. Создать/обновить спецификацию
      4. Собрать пакет
      5. Оттестировать пакет
      6. Поместить пакет в хранилище
    2. Git

    3. Gear

    4. git.alt

      • информация на сайте altlinux.org

      • Хранение git
      • ssh git.alt:
        $ ssh git.alt help
        Available commands:
        help
        charset <path to git repository> [<charset>]
        clone <path to git repository> [<path to directory>]
        default-branch <path to git repository> [<branch>]
        find-package <pattern>
        init-db <path to directory>
        ls [<path to directory>]
        mv-db <path to source directory> <path to destination directory>
        quota
        repack <path to git repository> [<value>]
        rm-db <path to git repository>
        task {--help|ls|show|new|add|delsub|run|share|approve|rm} ...
        build [-b <binary_repository_name>] <gear_repo_1> <gear_tag_1> ...
        acl {--help|<binary_repository_name> ...}
      • Сборка из хранилища
        $ git push && gear-create-tag && git push origin --tags && ssh git.alt build `basename $PWD` `git describe`
      • ACL: show check add/del replace leader nmu
      • Task, shared task
  4. {*}

    1. Полный цикл сборки пакета из upstream (раассказ)
    2. Эффективные инструменты сопровождения пакетов:
      1. Адаптация к системам разработки в upstream (autotools, *make и т. п.)
      2. Адаптация к различным ЯП
      3. Поиск зависимостей и сборочных зависимостей
      4. Умолчания (триггеры, обязательные действия, пути)
      5. Хранение исходных текстов и заплаток (git.alt, gear)
      6. Совместная модификация пакета (git.alt, gear)
      7. Автоматическая сборка (git.alt, git.alt)
      8. Контроль качества (sisyphus-check, repocop, QA)
  5. Полный цикл сборки пакета из upstream (практика)

Материалы


CategoryUneex CategoryLectures CategorySpecCourse CategoryCmc

LecturesCMC/PackageMaintaining2009 (последним исправлял пользователь eSyr 2010-02-01 22:34:54)