ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Dmitry V. Levin" <ldv@altlinux.org>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Q: duplicate qml() self-provides
Date: Thu, 12 Nov 2020 17:59:31 +0300
Message-ID: <20201112145931.GB24577@altlinux.org> (raw)
In-Reply-To: <20201112145252.GA24577@altlinux.org>

On Thu, Nov 12, 2020 at 05:52:52PM +0300, Dmitry V. Levin wrote:
> On Thu, Nov 12, 2020 at 05:26:31PM +0300, Sergey V Turchin wrote:
> > On Thursday, 12 November 2020 16:00:06 MSK Dmitry V wrote:
> > > 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.
> > > 
> > > Получается, что произошло массовая подмена понятия версионирования
> > > интерфейсов.
> > Не совсем так.
> > https://doc.qt.io/qt-5/qtqml-modules-qmldir.html#versioning-semantics
> 
> Там фактически написано, что different major versions - это разные
> интерфейсы, которые, в свою очередь, версионированы с помощью minor
> versions.
> 
> > > У интерфейса не может быть одновременно несколько разных версий
> > В QML может.
> 
> Там по сути тоже произошла подмена понятий, в результате чего стало
> невозможным написать адекватные зависимости.
> 
> Вместо того, чтобы написать, например,
> Provides: qml(QtMultimedia)-5 = 15
> Requires: qml(QtMultimedia)-5 >= 7
> 
> Тебе приходится извращаться следующим образом:
> $ rpmquery --provides -p Sisyphus/files/x86_64/RPMS/libqt5-multimedia-5.15.1-alt1.x86_64.rpm |\
>   grep '^qml(QtMultimedia)'          
> qml(QtMultimedia) = 5.0
> qml(QtMultimedia) = 5.1
> qml(QtMultimedia) = 5.10
> qml(QtMultimedia) = 5.11
> qml(QtMultimedia) = 5.12
> qml(QtMultimedia) = 5.13
> qml(QtMultimedia) = 5.14
> qml(QtMultimedia) = 5.15
> qml(QtMultimedia) = 5.2
> qml(QtMultimedia) = 5.3
> qml(QtMultimedia) = 5.4
> qml(QtMultimedia) = 5.5
> qml(QtMultimedia) = 5.6
> qml(QtMultimedia) = 5.7
> qml(QtMultimedia) = 5.8
> qml(QtMultimedia) = 5.9
> 
> Только для того, чтобы была возможность написать
> Requires: qml(QtMultimedia) = 5.7
> 
> Подумать только, 16 Provides вместо одной!

Кстати, у тебя где-нибудь есть версионированные qml Requires?
Я не нашёл.  Всё, что я вижу, выглядит примерно так:

$ rpmquery --provides -p Sisyphus/files/x86_64/RPMS/{qt5-quickcontrols-5.15.1-alt1.x86_64.rpm,qt5-quickcontrols2-5.15.1-alt1.x86_64.rpm} |\
  grep '^qml(QtQuick.Controls)'
qml(QtQuick.Controls) = 1.0
qml(QtQuick.Controls) = 1.1
qml(QtQuick.Controls) = 1.2
qml(QtQuick.Controls) = 1.3
qml(QtQuick.Controls) = 1.4
qml(QtQuick.Controls) = 1.5
qml(QtQuick.Controls) = 1.6
qml(QtQuick.Controls) = 2.0
qml(QtQuick.Controls) = 2.1
qml(QtQuick.Controls) = 2.10
qml(QtQuick.Controls) = 2.11
qml(QtQuick.Controls) = 2.12
qml(QtQuick.Controls) = 2.13
qml(QtQuick.Controls) = 2.14
qml(QtQuick.Controls) = 2.15
qml(QtQuick.Controls) = 2.2
qml(QtQuick.Controls) = 2.3
qml(QtQuick.Controls) = 2.4
qml(QtQuick.Controls) = 2.5
qml(QtQuick.Controls) = 2.6
qml(QtQuick.Controls) = 2.7
qml(QtQuick.Controls) = 2.8
qml(QtQuick.Controls) = 2.9

$ rpmquery -Rp Sisyphus/files/x86_64/RPMS/plasma5-kwin-5.20.2-alt1.x86_64.rpm |\
  grep '^qml(QtQuick.Controls)'
qml(QtQuick.Controls)  


-- 
ldv


  reply	other threads:[~2020-11-12 14:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-11 16:34 [devel] Q: duplicate osgi() self-provides Dmitry V. Levin
2020-11-12 12:01 ` Igor Vlasenko
2020-11-12 13:00   ` Dmitry V. Levin
2020-11-12 14:26     ` Sergey V Turchin
2020-11-12 14:52       ` [devel] Q: duplicate qml() self-provides Dmitry V. Levin
2020-11-12 14:59         ` Dmitry V. Levin [this message]
2020-11-12 15:21           ` Dmitry V. Levin
2020-11-12 15:28             ` Dmitry V. Levin
2020-11-13  8:18             ` Sergey V Turchin
2020-11-12 15:01         ` Anton Farygin
2020-11-12 15:09           ` Dmitry V. Levin
2020-11-12 15:17             ` Anton Farygin
2020-11-12 15:11           ` Aleksei Nikiforov
2020-11-12 15:06         ` Aleksei Nikiforov
2020-11-12 15:12           ` Dmitry V. Levin
2020-12-08  0:54             ` [devel] Versioned interface provides syntax (Was: Q: duplicate qml() self-provides) Vladimir D. Seleznev
2020-11-13  8:23           ` [devel] Q: duplicate qml() self-provides Sergey V Turchin
2020-11-12 15:24         ` Alexey Gladkov
2020-11-12 15:28           ` Alexey Gladkov
2020-11-13  8:39           ` Sergey V Turchin
2020-11-13  8:20         ` Sergey V Turchin
2020-11-12 18:37     ` [devel] Q: duplicate osgi() self-provides Vladimir D. Seleznev
2020-11-13  8:40       ` Sergey V Turchin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201112145931.GB24577@altlinux.org \
    --to=ldv@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git