From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 24 Aug 2012 04:40:15 +0400 From: Alexey Tourbin To: ALT Linux Team development discussions Message-ID: <20120824004015.GC27787@altlinux.org> References: <20120822195649.GA23099@dad.imath.kiev.ua> <2649859.fx7qQ3pIBb@summoner.localdomain> <20120823130353.GA18270@altlinux.org> <269159889.cBOWn8puCv@summoner.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <269159889.cBOWn8puCv@summoner.localdomain> X-Mailman-Approved-At: Fri, 24 Aug 2012 04:54:58 +0400 Subject: Re: [devel] I: repocop test for %{get_version ...} is disabled. 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: Fri, 24 Aug 2012 00:40:16 -0000 Archived-At: List-Archive: List-Post: On Thu, Aug 23, 2012 at 07:26:50PM +0400, Sergey V Turchin wrote: > > Для libqt4-core set-версии хорошо очерчивают круг совместимых версий. > > С интересом рассмотрю контрпримеры. > Я не имел ввиду libqt4-core, но я лично наблюдал пример, где программа падала, > хотя, с set-зависимостью было все в порядке. Если надо, укажу конкретно. Программа может падать из-за разыменовывания нулевого указателя. Set-версии дают гарантию, что перед запуском программы имеются в наличии все вызываемые функции. (Следующий бастион - set-версии должны гарантировать, что прототипы вызываемых функций соответствуют вызовам, но для C++ это уже сейчас гарантируется автоматически из-за mangling.) То есть set-версии дают гарантию, что то, что мы собираемся запустить, в каком-то смысле вообще запускаемо. То, что программа не будет падать, set-версии гарантировать не могут. Конкретный пример меня всё еще интересует, если станет ясно, что там случилось. Почему программа падала, а не сам факт падения. > > > > а какую тогда гарантию формально дает %get_version? > > > > > > Немного другую, которой в set-версиях нет, т.к. они применимы не только к > > > ABI, но и к API и к noarch. > > > > Иногда стоит указать зависимость вручную - с минимальной версией, > > но привязка к текущей версии - это просто-таки дедовский метод конторля, > > да, не только ABI, но и API. Достойный старых обезьян. > Ну да. К тому же еще и ленивых ;-) Laziness is a virtue. :-) Вся разница в том, что %get_version - это довольно толстый метод привязки к текущей версии, а set-versions - это гораздо более тонкий метод привязки к текущей версии. :-) > -- > Regards, Sergey. ALT Linux, http://www.altlinux.ru/