From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.2.5 Date: Tue, 15 Sep 2009 18:25:10 +0300 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20090915152510.GA24809@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.18 (2008-05-17) Received-SPF: pass (dad.imath.kiev.ua: domain of vlasenko@dad.imath.kiev.ua designates 127.0.0.1 as permitted sender) receiver=dad.imath.kiev.ua; client-ip=127.0.0.1; helo=dad.imath.kiev.ua; envelope-from=vlasenko@dad.imath.kiev.ua; x-software=spfmilter 0.95 http://www.acme.com/software/spfmilter/ with libspf2; Subject: [devel] unmets policy X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2009 15:25:17 -0000 Archived-At: List-Archive: List-Post: Уважаемые господа, раз уже с карманами у нас не складывается, предлагаю к обсуждению http://www.altlinux.org/Unmets_Creation_Policy Unmets Creation Policy. ----------------------- == Вводная часть == Unmets (unmet dependencies) -- зависимости пакета, которые не могут быть разрешены в существующем репозитарии. В Сизифе не рекомендуется создавать unmet dependencies. Рекомендуется переводить транзакциями репозитарий с одного устойчивого состояния в другое. К сожалению, пока (до появления надлежащей реализации карманов?) некоторые транзакции и workflows сборочницей не поддерживаются. В частности, не поддерживаются транзакции, включающие в себя несколько версий одного и того же пакета (bootstrap-сборка). Получается противоречие: сборочница не позволяет создать unmets, в то время как для того, чтобы обновить пакет, unmets необходимо создать. Это противоречие можно обойти, спрятав unmets под ковер: создав пакет-заглушку, который обманывает сборочную систему, фиктивно предоставляя отсутствующие Provides:. Однако наличие таких пакетов в Сизифе создает другие проблемы, устранение которых является целью данного полиси. == Требования к пакетам, прячущим unmets == Реальные пакеты не должны иметь фиктивных (закрывающих unmets) Provides. Фиктивные Provides необходимо выделять в отдельный исходный пакет. Название пакета должно иметь вид unment-dependency-<пакет, породивший unments>. Обоснование: легкая фильтрация таких пакетов. Рекомендуется делать пакет с фиктивными Provides: не устанавливаемым. Для этого рекомендуется создавать файловый конфликт на существующий пакет. AutoReqProv: noauto Requires(pre): diffutils. ... touch $RPM_BUILD_ROOT/usr/bin/diff ... %files /usr/bin/diff Обоснование: чтобы пока в процессе обновления Сизиф разломан, пользователи не могли обновиться до разломанного состояния. Рекомендуется ставить в пакете AutoReqProv: noauto, все фиктивные Provides: прописывать вручную. Обоснование: во избежание. Например, в примере выше можно на автомате получить Provides: /usr/bin/diff. == Требования к сборочной системе == желательно иметь возможность принудительное удалять пакеты, несмотря на возникающие unmets. В крайнем случае, при удалении пакета вида unment-dependency-* проверка на возникающие unmets не должна проводиться. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine