Различия между версиями 30 и 41 (по 11 версиям)
Версия 30 от 2009-12-02 16:09:37
Размер: 8479
Редактор: FrBrGeorge
Комментарий:
Версия 41 от 2010-02-01 22:34:54
Размер: 5324
Редактор: eSyr
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 1: Строка 1:
== Информация о курсе == == Сопровождение пакетов в Linux ==
Строка 11: Строка 11:
== Экзамен ==
 * Экзамен по спецкурсу состоится 23 декабря в 16:00.
 * [[/Exam|Список тем к экзамену]].
Строка 19: Строка 23:
 1. [[/07|Работа с upstream, Составление спецификаций]] ([[/Conspects/07|конспект]])
 1. [[/08|Составление спецификаций - II, Исправление upstream (заплатки), Помещение в хранилище, Обратная связь с upstream и сообщения об ошибках]] ([[/Conspects/08|конспект]]) ([[/Video/08|видеозапись]])
 1. [[/07|Работа с upstream, Составление спецификаций]] ([[/Conspects/07|конспект]]) ([[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_11_18.ogg|аудиозапись]])
 1. [[/08|Составление спецификаций - II, Исправление upstream (заплатки), Помещение в хранилище, Обратная связь с upstream и сообщения об ошибках]] ([[/Conspects/08|конспект]]) ([[/Video/08|видеозапись]]) ([[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_11_25.ogg|аудиозапись]])
 1. [[/09|Git, Gear и git.alt]] ([[/Video/09|видеозапись]]) ([[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_12_02.ogg|аудиозапись]])
 1. [[/10|Git]] (лекция А. Герасёва) ([[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_12_09.ogg|аудиозапись]])
 1. [[/11|Практика сборки пакета]] ([[/Video/11|видеозапись]]) ([[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_12_16.ogg|аудиозапись 0]], [[http://esyr.org/lections/audio/uneex_2009_winter/uneex_09_12_16.manmachine.ogg|аудиозапись 1]])
Строка 23: Строка 30:
 1. {*} http://www.altlinux.org/Spec
   1. Работа с upstream
     1. Tarballs
     1. VCS, ревизии и теги
   1. Составление спецификаций
     1. Что должно быть в spec-файле, правила оформления
Строка 30: Строка 31:
   1. Составление спецификаций - II
     1. Коротко о spec-файле
     1. Борьба с версиями
     1. Борьба с путями
     1. Борьба со сборочными зависимостями
     1. Макросы
   1. Исправление upstream (заплатки)
     1. `patch` и `diff`
     1. Проталкивание заплаток в upstream
   1. Помещение в хранилище
     1. src.rpm
     1. Электронная подпись участника Team и робота-сборщика
     1. hasher и локальное хранилище
   1. Обратная связь с upstream и сообщения об ошибках
     1. <<PassportLink(HowTo_SmartQuestions, Direct=True)>>
     1. Как правильно отвечать на вопросы
     1. Багзилла как пример BTS
       * Product, component, priority, severity, platform, summary, full description
       * патчи и обсуждения
       * зависимости и дубли
       * статус
 1. {*} Git, Gear и git.alt
   1.#0 Повторение пройденного: что делает сопровождающий:
     1.#0 Получить исходники
     1. Развернуть сборочную среду
     1. Создать/обновить спецификацию
     1. Собрать пакет
     1. Оттестировать пакет
     1. Поместить пакет в хранилище
   1. [[http://ru.wikipedia.org/wiki/Git|Git]]
     * Ссылки
       * http://www.altlinux.org/Git
       * http://progit.org/book/ru/
       * http://jenyay.net/Programming/Git
       * и т. д.
     * Что надо знать:
       * VCS
       * Распределённая VCS: публикация и слияние вместо совместного доступа
       * Ветки и теги
   1. [[http://www.altlinux.org/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Gear|Gear]]
     * [[http://www.altlinux.org/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_gear|Хранение исходного пакета в git-архиве]]
     * `.gear/rules`: [[http://docs.altlinux.org/manpages/gear-rules.5.html|есть документация!]]
       * copy:, tar:, name=, base=, @name@, @version@, @release@
     * Сборка пакета при помощи gear
       * `gear-commit`
       * `gear --hasher -- hsh --apt-config=/home/george/.apt/x86_64/Sisyphus/config --lazy`
     * `gear-update`
   1. [[http://git.altlinux.org|git.alt]]
     * [[http://www.altlinux.org/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F: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


 1. {*}
   1. Полный цикл сборки пакета из upstream (раассказ)
   1. Полный цикл сборки пакета из upstream (рассказ)
Строка 118: Строка 41:
 1. Полный цикл сборки пакета из upstream (практика)

Сопровождение пакетов в 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. Практика сборки пакета (видеозапись) (аудиозапись 0, аудиозапись 1)


  1. {*}

    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)

Материалы


CategoryUneex CategoryLectures CategorySpecCourse CategoryCmc

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