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
next prev parent 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