Unmets Creation Policy

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
Stamp90cw.png
Действующая политика Sisyphus

Политика действует, начиная со стабильного бранча 5.0 и выше.

Ответственный за проведение политики в жизнь — Игорь Власенко.


Срок действия полиси.[править]

Данное полиси временное, устареет при появлении полноценных "карманов".

Вводная часть[править]

Unmets (unmet dependencies) -- зависимости пакета, которые не могут быть разрешены в существующем репозитарии.

В Сизифе не рекомендуется создавать unmet dependencies. Рекомендуется переводить транзакциями репозитарий с одного устойчивого состояния в другое. К сожалению, пока (до появления надлежащей реализации карманов?) некоторые транзакции и workflows сборочницей не поддерживаются. В частности, не поддерживаются транзакции, включающие в себя несколько версий одного и того же пакета (bootstrap-сборка). Получается противоречие: сборочница не позволяет создать unmets, в то время как для того, чтобы обновить пакет, unmets необходимо создать.

Это противоречие можно обойти, спрятав unmets под ковер: создав пакет-заглушку, который обманывает сборочную систему, фиктивно предоставляя отсутствующие Provides:. Однако наличие таких пакетов в Сизифе создает другие проблемы, устранение которых является целью данного полиси.

Требования к пакетам, прячущим unmets[править]

Реальные пакеты не должны иметь фиктивных (закрывающих unmets) Provides. Фиктивные Provides необходимо выделять в отдельный исходный пакет.

Название пакета должно иметь вид unment-dependency-<пакет, породивший unments>.

Обоснование: легкая фильтрация таких пакетов.

Рекомендуется ставить в пакете AutoReqProv: noauto, все фиктивные Provides: прописывать вручную.

AutoReqProv: noauto

Обоснование: во избежание.

Требования к сборочной системе[править]

желательно иметь возможность принудительное удалять пакеты, несмотря на возникающие unmets.

В крайнем случае, при удалении пакета вида unment-dependency-* проверка на возникающие unmets не должна проводиться.