From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 12 Nov 2020 16:00:06 +0300 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20201112130006.GB23210@altlinux.org> References: <20201111163426.GF9029@altlinux.org> <20201112120140.GA2021@hydra.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20201112120140.GA2021@hydra.imath.kiev.ua> Subject: Re: [devel] Q: duplicate osgi() self-provides 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: Thu, 12 Nov 2020 13:00:06 -0000 Archived-At: List-Archive: List-Post: On Thu, Nov 12, 2020 at 02:01:40PM +0200, Igor Vlasenko wrote: > On Wed, Nov 11, 2020 at 07:34:26PM +0300, Dmitry V. Levin wrote: > > Hi, > > > > У нас в репозитории обнаружилось 76 пакетов, которые содержат сразу две > > разных версии одного и того же osgi(...) в Provides. > > Предполагаю, что во всех случаях это ошибки, поскольку сравнения версий в > > rpm работают не так, как ожидают люди, когда у пакета больше одной версии. > > Все это нужно для работы механизма зависимостей osgi. > Там всегда явное указание версий в requires и диапазоны в provides. > Та же ситуация, что с mono и qml. Получается, что произошло массовая подмена понятия версионирования интерфейсов. У интерфейса не может быть одновременно несколько разных версий, это несколько разных интерфейсов. На примере libc, $ rpmquery --provides glibc-core |grep '^libc[^=]*$' libc.so.6(ALT_2.24)(64bit) libc.so.6(GLIBC_2.10)(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.12)(64bit) libc.so.6(GLIBC_2.13)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.15)(64bit) libc.so.6(GLIBC_2.16)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.18)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.2.6)(64bit) libc.so.6(GLIBC_2.22)(64bit) libc.so.6(GLIBC_2.23)(64bit) libc.so.6(GLIBC_2.24)(64bit) libc.so.6(GLIBC_2.25)(64bit) libc.so.6(GLIBC_2.26)(64bit) libc.so.6(GLIBC_2.27)(64bit) libc.so.6(GLIBC_2.28)(64bit) libc.so.6(GLIBC_2.29)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.30)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.5)(64bit) libc.so.6(GLIBC_2.6)(64bit) libc.so.6(GLIBC_2.7)(64bit) libc.so.6(GLIBC_2.8)(64bit) libc.so.6(GLIBC_2.9)(64bit) Это не 31 версия у интерфейса libc.so.6, это 31 интерфейс у libc.so.6. Теперь надо думать, как это неправильное понимание версионирования аккуратно исправить. -- ldv