Unmets Creation Policy

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «{{span|font-size: 180%|}} {{DraftPolicy |responsible=Igor Vlasenko }} ==Unmets Creation Policy. == === Вводная часть === Unmets (unmet dependencies) -...»)
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
-
{{span|font-size: 180%|}}
+
{{Policy|since_branch=5.0|responsible=Игорь Власенко}}
-
{{DraftPolicy
+
-
|responsible=Igor Vlasenko
+
-
}}
+
-
==Unmets Creation Policy. ==
+
 +
=== Срок действия полиси. ===
 +
Данное полиси временное, устареет при появлении полноценных "карманов".
=== Вводная часть ===
=== Вводная часть ===
Строка 36: Строка 34:
Обоснование: легкая фильтрация таких пакетов.
Обоснование: легкая фильтрация таких пакетов.
-
Рекомендуется делать пакет с фиктивными Provides: не устанавливаемым.
+
Рекомендуется ставить в пакете AutoReqProv: noauto,
-
Для этого рекомендуется создавать файловый конфликт на существующий пакет.
+
все фиктивные Provides: прописывать вручную.
-
 
+
<pre>
<pre>
AutoReqProv: noauto
AutoReqProv: noauto
-
Requires(pre): diffutils.
 
-
...
 
-
touch $RPM_BUILD_ROOT/usr/bin/diff
 
-
...
 
-
 
-
%files
 
-
/usr/bin/diff
 
</pre>
</pre>
-
Обоснование: чтобы пока в процессе обновления  Сизиф разломан,
+
Обоснование: во избежание.
-
пользователи не могли обновиться до разломанного состояния.
+
-
 
+
-
Рекомендуется ставить в пакете AutoReqProv: noauto,
+
-
все фиктивные Provides: прописывать вручную.
+
-
 
+
-
Обоснование: во избежание. Например, в примере выше можно на
+
-
автомате получить Provides: /usr/bin/diff.
+
=== Требования к сборочной системе ===
=== Требования к сборочной системе ===

Текущая версия на 15:58, 4 октября 2009

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 не должна проводиться.

 
Личные инструменты