Сборка пакета из исходных текстов; upstream, spec

  1. Повторение:
    • Что такое пакет
    • Свойства пакета
    • Установщик и диспетчер пакетов
    • Upstream + сопровождающий
  2. Что делать сопровождающеиу?
    • Крибле! Крабле! Бумс!
      • {X} ошибки сборки

      • {i} заплатки (patches) и параметризация сборки

    • Список файлов для архива
      • {X} ошибки установки, нарушение дисциплины установки (policy)

      • {i} заплатки и ручные действия

    • Регистрация в системе
      • {X} Список зависимостей неочевиден

      • Паспорт пакета
    • Вспомогательные сценарии
    • <!> Спецификация пакета (spec-файл)

  3. Зависимости и сборочные зависимости
    • Понятие сборочной зависимости
    • Сборочная зависимость >= зависимость?

      • + сборка в базовой системе => достаточные зависимости

      • {X} Интерпретируемые языки

  4. Сборка в базовой системе
    • Установка - получение списка - удаление
      • {i} установка в произвольный пользовательский каталог

    • Установка сборочных зависимостей
      • {X} Конфликт с установленным ПО

      • {X} Уникальность сборок

      • {i} Изоляция (chroot, VE)

  5. <!> Изолированная среда сборки

    1. Нет root (fakeroot)

    2. Создаётся "с нуля" под сборку одного пакета (chroot)

    3. Основывается на хранилище, а не на текущих установленных пакетах
    4. {i} Сборка под произвольное хранилище

  6. Фронт работ:
    1. Триггеры и умолчания
    2. Макросы
    3. (полу)Автоматическое определение зависимостей и сборочных зависимостей
    4. Ручная работа внутри изолированного сборщика

Казус: установщик и сборщик часто -- одна и та же программа (rpm, FreeBSD Makerfile).