* [devel] kde4games & dep optimizations
@ 2011-02-06 3:31 Alexey Tourbin
2011-02-06 21:27 ` Dmitry V. Levin
0 siblings, 1 reply; 7+ messages in thread
From: Alexey Tourbin @ 2011-02-06 3:31 UTC (permalink / raw)
To: devel
Новый rpm выполняет оптимизацию зависимостей между подпакетами: если
пакет A содержит строгую зависимость на libA (Requires: libA =
%version-%release), то все остальные зависимости пакета A,
которые разрешаются в libA, - например Requires: libA.so.0, -
удаляются.
В этом примере названия пакетов A и libA условны, оптимизация работает
для пакетов с любыми именами (я выбрал имена A и libA, чтобы пример
был интуитивно понятнее).
Оптимизация в том числе выстраивает цепочки строгих зависимостей:
A -> libA0 -> libA1 -> ... libAN,
чтобы удалить лишние зависимости пакета A, разрешающиеся в libAN
(в случае, если пакет A требует только libA0, но libA0 в свою очередь
требует libA1 и т.д.)
К сожалению, для некоторых пакетов эта оптимизация не сработает,
потому что у этих пакетов нет строгих зависимостей между подпакетами.
Как ни странно, одним из первых пакетов такого рода мне попался kde4games
(в то время как kde4 у нас собирается с очень жесткими зависимостями).
$ hsh-install kde4games-bovo
...
$ hsh-run -- rpm -e --test libkdegames4
error: removing these packages would break dependencies:
libkdegames.so.5()(64bit) >= set:okXdnAZtmOhWJfrPk02zqtrC0apKQoS0 is needed by kde4games-bovo-4.5.5-alt1
$ hsh-run -- rpm -q --qf '%{SOURCERPM}\n' kde4games-bovo libkdegames4
kde4games-4.5.5-alt1.src.rpm
kde4games-4.5.5-alt1.src.rpm
$
Отсюда видно, что подпакеты kde4games-bovo и libkdegames4 собираются из
одного исходного пакета, и между ними существует soname-зависимость с
set-версией; но в тоже время нет ни одной строгой зависимости на имя
пакета с библиотекой - ни прямой, ни по цепочке.
Таким образом, во всех kde4games-* подпакетах не удастся соптимизировать
дорогостоящую зависимость с set-версией (которая занимает больше места,
и для проверки которой будет выполняться rpmsetcmp) на более строгую
и дешевую зависимость - имя пакета с версией (для проверки такой версии
обычно будет достаточно strcmp).
Получается, что мои усилия по оптимизации зависимостей во многом
бесполезны, потому что некоторые толстые пакеты собраны не по понятиям.
Интересно, что тогда дальше делать? С одной стороны, следовало бы
исправить такие пакеты (для этого нужно сначала научиться их
диагностировать). С другой стороны, если мейнтейнерам это в голову не
приходит, то может лучше научить rpm автоматически вставлять строгие
зависимости туда, где они будут иметь смысл?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-06 3:31 [devel] kde4games & dep optimizations Alexey Tourbin
@ 2011-02-06 21:27 ` Dmitry V. Levin
2011-02-06 23:55 ` Alexey Tourbin
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Dmitry V. Levin @ 2011-02-06 21:27 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 653 bytes --]
On Sun, Feb 06, 2011 at 06:31:15AM +0300, Alexey Tourbin wrote:
> Интересно, что тогда дальше делать? С одной стороны, следовало бы
> исправить такие пакеты (для этого нужно сначала научиться их
> диагностировать). С другой стороны, если мейнтейнерам это в голову не
> приходит, то может лучше научить rpm автоматически вставлять строгие
> зависимости туда, где они будут иметь смысл?
Для того, чтобы проставлять такие зависимости автоматически, нужно
- научиться диагностировать нехватку таких зависимостей;
- выдать packager'ам интерфейс для отключения новой автоматики в случае,
если она принимает неправильное решение.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-06 21:27 ` Dmitry V. Levin
@ 2011-02-06 23:55 ` Alexey Tourbin
2011-02-07 0:07 ` Dmitry V. Levin
2011-02-08 5:13 ` Alexey Tourbin
2011-02-12 13:13 ` Alexey Tourbin
2 siblings, 1 reply; 7+ messages in thread
From: Alexey Tourbin @ 2011-02-06 23:55 UTC (permalink / raw)
To: ALT Devel discussion list
On Mon, Feb 07, 2011 at 12:27:02AM +0300, Dmitry V. Levin wrote:
> On Sun, Feb 06, 2011 at 06:31:15AM +0300, Alexey Tourbin wrote:
> > Интересно, что тогда дальше делать? С одной стороны, следовало бы
> > исправить такие пакеты (для этого нужно сначала научиться их
> > диагностировать). С другой стороны, если мейнтейнерам это в голову не
> > приходит, то может лучше научить rpm автоматически вставлять строгие
> > зависимости туда, где они будут иметь смысл?
>
> Для того, чтобы проставлять такие зависимости автоматически, нужно
> - научиться диагностировать нехватку таких зависимостей;
Я ещё раз проверил зависмости kde4games, там всё не так глупо.
$ hsh-run -- rpm -e --test kde4games-common
error: removing these packages would break dependencies:
kde4games-common = 4.5.5-alt1 is needed by kde4games-core-4.5.5-alt1
kde4games-common = 4.5.5-alt1 is needed by libkdegames4-4.5.5-alt1
$
Зависимости устроены по принципу
%package common
%package -n libkdegames4
Requires: %name-common = %version-%release
%package game1
Requires: %name-common = %version-%release
%package game2
Requires: %name-common = %version-%release
...
%package gameN
Requires: %name-common = %version-%release
То есть, с одной стороны, все зависимости вроде бы строгие. С другой
стороны, строгой цепочки от kde4games-gameN к libkdegames4 нет.
Смысл этого феномена мне ещё не сосем понятен. Нельзя ли из всего
этого каким-то образом заключить, что можно добавить (или "усилить")
строгую зависимость на libkdegames4?
> - выдать packager'ам интерфейс для отключения новой автоматики в случае,
> если она принимает неправильное решение.
Понятно, что автоматика будет работать по принципу: если между двумя
подпакетами есть виртуальная зависимость, но нет строгой зависимости на
имя пакета, то нужно добавить строгую зависимость на имя пакета.
Мне пока известно всего одно необходимое и разумное исключение из этого
правила: пакет gcc4.5 требует libgcc4.5 >= 4.5.1-alt7. Такая конструкция
позволит сосуществовать старому компилятору gcc4.5 с новой библиотекой
libgcc4.6. Этот класс случаев, когда зависимость на имя пакета
с библиотекой уже есть, но она специально не строгая, легко учитывать
автоматически.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-06 23:55 ` Alexey Tourbin
@ 2011-02-07 0:07 ` Dmitry V. Levin
0 siblings, 0 replies; 7+ messages in thread
From: Dmitry V. Levin @ 2011-02-07 0:07 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1950 bytes --]
On Mon, Feb 07, 2011 at 02:55:09AM +0300, Alexey Tourbin wrote:
> Зависимости устроены по принципу
>
> %package common
> %package -n libkdegames4
> Requires: %name-common = %version-%release
> %package game1
> Requires: %name-common = %version-%release
> %package game2
> Requires: %name-common = %version-%release
> ...
> %package gameN
> Requires: %name-common = %version-%release
>
> То есть, с одной стороны, все зависимости вроде бы строгие. С другой
> стороны, строгой цепочки от kde4games-gameN к libkdegames4 нет.
> Смысл этого феномена мне ещё не сосем понятен. Нельзя ли из всего
> этого каким-то образом заключить, что можно добавить (или "усилить")
> строгую зависимость на libkdegames4?
Теоретически возможно установить другой libkdegames4, у которого нет
строгой зависимости на %name-common = %version-%release; если бы можно
было предположить, что у всех мыслимых сборок libkdegames4 всегда есть эта
строгая зависимость, то да, можно проставить строгую зависимость на
libkdegames4 = %version-%release.
> > - выдать packager'ам интерфейс для отключения новой автоматики в случае,
> > если она принимает неправильное решение.
>
> Понятно, что автоматика будет работать по принципу: если между двумя
> подпакетами есть виртуальная зависимость, но нет строгой зависимости на
> имя пакета, то нужно добавить строгую зависимость на имя пакета.
>
> Мне пока известно всего одно необходимое и разумное исключение из этого
> правила: пакет gcc4.5 требует libgcc4.5 >= 4.5.1-alt7.
Если бы пакет честно назывался не libgcc4.5, а libgcc_s1 по имени soname,
то никаких нестрогих зависимостей не потребовалось бы.
> Такая конструкция
> позволит сосуществовать старому компилятору gcc4.5 с новой библиотекой
> libgcc4.6. Этот класс случаев, когда зависимость на имя пакета
> с библиотекой уже есть, но она специально не строгая, легко учитывать
> автоматически.
Да, наверное.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-06 21:27 ` Dmitry V. Levin
2011-02-06 23:55 ` Alexey Tourbin
@ 2011-02-08 5:13 ` Alexey Tourbin
2011-02-12 13:13 ` Alexey Tourbin
2 siblings, 0 replies; 7+ messages in thread
From: Alexey Tourbin @ 2011-02-08 5:13 UTC (permalink / raw)
To: ALT Devel discussion list
On Mon, Feb 07, 2011 at 12:27:02AM +0300, Dmitry V. Levin wrote:
> On Sun, Feb 06, 2011 at 06:31:15AM +0300, Alexey Tourbin wrote:
> > Интересно, что тогда дальше делать? С одной стороны, следовало бы
> > исправить такие пакеты (для этого нужно сначала научиться их
> > диагностировать). С другой стороны, если мейнтейнерам это в голову не
> > приходит, то может лучше научить rpm автоматически вставлять строгие
> > зависимости туда, где они будут иметь смысл?
>
> Для того, чтобы проставлять такие зависимости автоматически, нужно
> - научиться диагностировать нехватку таких зависимостей;
4.0.4-alt100.18-2-g7891bc3
build/interdep.c: diagnose non-strict dependencies between subpackages
Пример работы:
warning: util-linux: non-strict dependency on libblkid
warning: util-linux: non-strict dependency on libuuid
warning: util-linux: non-strict dependency on libmount
warning: mount: non-strict dependency on libblkid
warning: cfdisk: non-strict dependency on libblkid
warning: fdisk: non-strict dependency on libblkid
warning: libblkid: non-strict dependency on libuuid
warning: libblkid-devel: non-strict dependency on libuuid-devel
warning: libmount-devel: non-strict dependency on libblkid-devel
warning: util-linux-debuginfo: non-strict dependency on libblkid-debuginfo
warning: util-linux-debuginfo: non-strict dependency on libuuid-debuginfo
warning: util-linux-debuginfo: non-strict dependency on libmount-debuginfo
warning: mount-debuginfo: non-strict dependency on libblkid-debuginfo
warning: cfdisk-debuginfo: non-strict dependency on libblkid-debuginfo
warning: fdisk-debuginfo: non-strict dependency on libblkid-debuginfo
warning: libblkid-debuginfo: non-strict dependency on libuuid-debuginfo
Note that the right time for this check is after strict dependencies
are propagated, and also after debuginfo dependencies have been lifted.
Причем не обязательно исправлять все зависимости, упомянутые в этом
предупреждении. Возьмем util-linux: если добавить строгую зависимость
на libblkid, а в libblkid добавить строгую зависимость на libuuid,
то зависиость на libuuid будет "засчитана" автоматически (по цепочке
строгих зависимостей). Более того, все зависимости, которые могут
быть "засчитаны" таким образом, будут автоматически удаляться.
Нестрогие зависимости между debuginfo пакетами являются отражением
нестрогих зависимостей между основными пакетами; иначе бы зависимости
между debuginfo пакетами были "усилены" (lifted).
> - выдать packager'ам интерфейс для отключения новой автоматики в случае,
> если она принимает неправильное решение.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-06 21:27 ` Dmitry V. Levin
2011-02-06 23:55 ` Alexey Tourbin
2011-02-08 5:13 ` Alexey Tourbin
@ 2011-02-12 13:13 ` Alexey Tourbin
2011-02-14 14:15 ` Sergey V Turchin
2 siblings, 1 reply; 7+ messages in thread
From: Alexey Tourbin @ 2011-02-12 13:13 UTC (permalink / raw)
To: ALT Devel discussion list
On Mon, Feb 07, 2011 at 12:27:02AM +0300, Dmitry V. Levin wrote:
> Для того, чтобы проставлять такие зависимости автоматически, нужно
> - научиться диагностировать нехватку таких зависимостей;
> - выдать packager'ам интерфейс для отключения новой автоматики в случае,
> если она принимает неправильное решение.
Попробовал исправить зависимости у qt4. Вроде бы это не очень сложно,
т.к. rpm теперь говорит, что нужно исправлять. С другой стороны,
пакет монструозный, а rpm говорит очень много. Так что пришлось
несколько раз запускать 'gear-rpm -bl', а это не очень быстро выходит.
В общем даже не знаю, стоит ли надеяться, что другие пакеты будут
исправлены packager'ами таким же образом, как я исправил qt4, или нет.
Вообще много кривоватых пакетов попадается. Как из такой груды кривоватых
пакетов можно создать Национальную ОС, или хотя бы стабильный LTS бранч,
не понятно.
Взять например тот же qt4.
%package -n lib%{name}-clucene
Summary: CLucene library for the Qt%major GUI toolkit
%description -n lib%{name}-clucene
CLucene library for the Qt%major GUI toolkit
Оказывается, libqt4-clucene - это библиотека CLucene для Qt4.
Не хватает разве что локализации этого замечательного факта:
libqt4-clucene - это библиотека "клюсене" для кью-ти-фоур.
commit 4aab082715fa94c2bb61a8fd8b57462941ef9fd1
Author: Alexey Tourbin <at@altlinux.ru>
Date: Sat Feb 12 12:56:47 2011 +0300
- enabled strict dependencies between subpackages
Before this change, dependencies between subpackages were arranged like
this (arrows indicate strict dependencies - Requires: N = [E:]V-R).
libqt4-core libqt4-gui
| |
v v
qt4-common
This scheme does not ensure strict dependency between libqt4-core
and libqt4-gui, though (note that libqt4-gui requires libQtCore.so.4).
Logically, it is possible that another package provides libQtCore.so.4.
Hence it is not possible to deduce strict dependency between libqt4-gui
and libqt4-core.
With this change, I rearrange dependencies like this:
libqt4-gui
|
v
libqt4-core
|
v
qt4-common
Note that, since rpm will propagate strict dependencies, it is also
safe to assume that there is strict dependency between libqt4-gui and
qt4-common: libqt4-gui -> qt4-common.
As to why rearrangement is needed.
1) With strict dependencies between subpackages, rpm will optimize
/usr/src/debug files in their corresponding debuginfo packages.
E.g. rpm will remove libqt4-gui-debuginfo sources which are already
part of libqt4-core-debuginfo. (Normally, there won't be many source
dups between subpackages, with one notable exception: header files).
2) With strict dependencies between subpackages, rpm will optimize
dependencies. E.g. rpm will remove libQtCore.so.4 dependency from
libqt4-gui, along with its set-version, since it is provided by
libqt4-core. Furthermore, rpm will also remove dependencies which
are already required by libqt4-core, such as libstdc++.so.6.
diff --git a/altlinux/qt4.spec b/altlinux/qt4.spec
index d0def3b..995e4a4 100644
--- a/altlinux/qt4.spec
+++ b/altlinux/qt4.spec
@@ -52,11 +52,13 @@ Summary: Shared library for the Qt%major GUI toolkit
Url: http://www.trolltech.com/products/qt/
License: GPLv3 / LGPLv2.1
-Provides: %name-x11 = %version-%release
-Requires: %name-sql lib%name %name-assistant
+Requires: lib%name = %version-%release
+Requires: %name-sql = %version-%release
+Requires: %name-assistant = %version-%release
%if_enabled dbus
-Requires: %name-dbus
+Requires: %name-dbus = %version-%release
%endif
+Provides: %name-x11 = %version-%release
Source0: kde-qt-everywhere-opensource-src-%version%beta.tar
#
@@ -158,14 +160,27 @@ Common package for Qt%major
BuildArch: noarch
Summary: Shared library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: lib%{name}-core lib%{name}-gui lib%{name}-network
-Requires: lib%{name}-opengl lib%{name}-sql lib%{name}-xml
-Requires: lib%{name}-qt3support lib%{name}-svg lib%{name}-script
-Requires: lib%{name}-designer lib%{name}-uitools
-Requires: lib%{name}-webkit lib%{name}-xmlpatterns lib%{name}-multimedia
-Requires: lib%{name}-help lib%{name}-declarative
-Requires: lib%{name}-clucene %{?_enable_dbus:lib%{name}-dbus}
-Provides: lib%{name}-x11 = %version-%release
+Requires: lib%name-core = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-network = %version-%release
+Requires: lib%name-opengl = %version-%release
+Requires: lib%name-sql = %version-%release
+Requires: lib%name-xml = %version-%release
+Requires: lib%name-qt3support = %version-%release
+Requires: lib%name-svg = %version-%release
+Requires: lib%name-script = %version-%release
+Requires: lib%name-designer = %version-%release
+Requires: lib%name-uitools = %version-%release
+Requires: lib%name-webkit = %version-%release
+Requires: lib%name-xmlpatterns = %version-%release
+Requires: lib%name-multimedia = %version-%release
+Requires: lib%name-help = %version-%release
+Requires: lib%name-declarative = %version-%release
+Requires: lib%name-clucene = %version-%release
+%if_enabled dbus
+Requires: lib%name-dbus = %version-%release
+%endif
+Provides: lib%name-x11 = %version-%release
%description -n lib%name
Qt is a GUI software toolkit. Qt simplifies the task of writing and maintaining
@@ -186,7 +201,10 @@ well as the README files for Qt.
%package -n lib%{name}-qt3support
Summary: Qt3 support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-network = %version-%release
+Requires: lib%name-sql = %version-%release
+Requires: lib%name-xml = %version-%release
%description -n lib%{name}-qt3support
Qt3 support library for the Qt%major GUI toolkit
@@ -203,7 +221,7 @@ Core library for the Qt%major GUI toolkit
%package -n lib%{name}-gui
Summary: GUI support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
Provides: libqtgui%major = %version-%release
Conflicts: yachat < 3.1.0 yapsi < 3.1.0
%description -n lib%{name}-gui
@@ -213,7 +231,7 @@ GUI support library for the Qt%major GUI toolkit
%package -n lib%{name}-dbus
Summary: DBus support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-xml = %version-%release
%description -n lib%{name}-dbus
DBus support library for the Qt%major GUI toolkit
@@ -221,7 +239,7 @@ DBus support library for the Qt%major GUI toolkit
%package -n lib%{name}-network
Summary: Network support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-dbus = %version-%release
%description -n lib%{name}-network
Network support library for the Qt%major GUI toolkit
@@ -229,7 +247,7 @@ Network support library for the Qt%major GUI toolkit
%package -n lib%{name}-uitools
Summary: Designer UI tools library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
%description -n lib%{name}-uitools
Designer UI tools library for the Qt%major GUI toolkit
@@ -237,7 +255,7 @@ Designer UI tools library for the Qt%major GUI toolkit
%package -n lib%{name}-svg
Summary: SVG support for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
%description -n lib%{name}-svg
Support for rendering Scalable Vector Graphics (SVG)
drawings and animations for the Qt%major GUI toolkit
@@ -246,7 +264,7 @@ drawings and animations for the Qt%major GUI toolkit
%package -n lib%{name}-opengl
Summary: OpenGL support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
%description -n lib%{name}-opengl
OpenGL support library for the Qt%major GUI toolkit
@@ -254,7 +272,7 @@ OpenGL support library for the Qt%major GUI toolkit
%package -n lib%{name}-sql
Summary: SQL support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n lib%{name}-sql
SQL support library for the Qt%major GUI toolkit
@@ -262,7 +280,7 @@ SQL support library for the Qt%major GUI toolkit
%package -n lib%{name}-test
Summary: Unit Testing Library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n lib%{name}-test
Unit Testing Library for the Qt%major GUI toolkit
@@ -270,7 +288,9 @@ Unit Testing Library for the Qt%major GUI toolkit
%package -n lib%{name}-designer
Summary: Libraries for the Qt%major Designer
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-script = %version-%release
+Requires: lib%name-xml = %version-%release
%description -n lib%{name}-designer
Libraries for the Qt%major Designer
@@ -278,7 +298,7 @@ Libraries for the Qt%major Designer
%package -n lib%{name}-xml
Summary: XML support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n lib%{name}-xml
XML support library for the Qt%major GUI toolkit
@@ -286,7 +306,7 @@ XML support library for the Qt%major GUI toolkit
%package -n lib%{name}-script
Summary: Scripting support library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-dbus = %version-%release
%description -n lib%{name}-script
Qt Script is based on the ECMAScript scripting language, as defined in
standard ECMA-262. Microsoft's JScript, and Netscape's JavaScript are
@@ -296,7 +316,7 @@ also based on the ECMAScript standard.
%package -n lib%{name}-xmlpatterns
Summary: XmlPatterns library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-network = %version-%release
%description -n lib%{name}-xmlpatterns
XmlPatterns library for the Qt%major GUI toolkit
@@ -304,7 +324,8 @@ XmlPatterns library for the Qt%major GUI toolkit
%package -n lib%{name}-scripttools
Summary: ScriptTools library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-script = %version-%release
%description -n lib%{name}-scripttools
ScriptTools library for the Qt%major GUI toolkit
@@ -312,7 +333,10 @@ ScriptTools library for the Qt%major GUI toolkit
%package -n lib%{name}-help
Summary: Help library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-clucene = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-network = %version-%release
+Requires: lib%name-sql = %version-%release
%description -n lib%{name}-help
Help library for the Qt%major GUI toolkit
@@ -320,7 +344,8 @@ Help library for the Qt%major GUI toolkit
%package -n lib%{name}-webkit
Summary: WebKit library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-network = %version-%release
%description -n lib%{name}-webkit
WebKit library for the Qt%major GUI toolkit
@@ -328,7 +353,7 @@ WebKit library for the Qt%major GUI toolkit
%package -n lib%{name}-clucene
Summary: CLucene library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n lib%{name}-clucene
CLucene library for the Qt%major GUI toolkit
@@ -336,7 +361,7 @@ CLucene library for the Qt%major GUI toolkit
%package -n lib%{name}-multimedia
Summary: Multimedia framework library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
%description -n lib%{name}-multimedia
Multimedia framework library for the Qt%major GUI toolkit
@@ -344,7 +369,13 @@ Multimedia framework library for the Qt%major GUI toolkit
%package -n lib%{name}-declarative
Summary: Ddeclarative framework library for the Qt%major GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-network = %version-%release
+Requires: lib%name-opengl = %version-%release
+Requires: lib%name-script = %version-%release
+Requires: lib%name-sql = %version-%release
+Requires: lib%name-webkit = %version-%release
+Requires: lib%name-xmlpatterns = %version-%release
%description -n lib%{name}-declarative
Declarative framework library for the Qt%major GUI toolkit
Declarative module provides a declarative framework
@@ -355,9 +386,11 @@ for building highly dynamic, custom user interfaces
BuildArch: noarch
Group: System/Libraries
Summary: Meta-package for development with Qt%major GUI toolkit
-Requires: lib%name-devel %name-designer %name-assistant
+Requires: lib%name-devel = %version-%release
+Requires: %name-designer = %version-%release
+Requires: %name-assistant = %version-%release
%if_enabled docs
-Requires: %name-doc
+Requires: %name-doc = %version-%release
%endif
%description devel
Meta-package for development with Qt%major GUI toolkit
@@ -366,10 +399,10 @@ Meta-package for development with Qt%major GUI toolkit
%package -n lib%name-devel
Summary: Header files and libraries for developing apps which will use Qt%major
Group: Development/KDE and QT
-Requires: %name-common = %version-%release
-Requires: lib%name
+Requires: lib%name = %version-%release
+Requires: lib%name-test = %version-%release
+Requires: lib%name-scripttools = %version-%release
Requires: xorg-devel libssl-devel freetype2-devel fontconfig-devel libpng-devel zlib-devel libtiff-devel libGLU-devel
-Requires: lib%{name}-test lib%{name}-scripttools
%if_enabled dbus
Requires: libdbus-devel
%endif
@@ -398,8 +431,7 @@ This package contains the files necessary to develop applications
%package -n lib%name-devel-static
Summary: Version of the Qt GUI toolkit for static linking
Group: Development/KDE and QT
-Requires: %name-common = %version-%release
-Requires: lib%name-devel
+Requires: lib%name-devel = %version-%release
Obsoletes: %name-devel-static
%description -n lib%name-devel-static
This package package contains the files necessary to link applications
@@ -411,8 +443,7 @@ on the system running the application.
%package qml
Summary: QML modules Qt%major
Group: Development/KDE and QT
-Requires: %name-common = %version-%release
-Requires: lib%name-devel
+Requires: lib%name-devel = %version-%release
%description qml
The package contains a QML modules and viewer for the Qt%major toolkit.
@@ -420,8 +451,7 @@ The package contains a QML modules and viewer for the Qt%major toolkit.
%package designer
Summary: Designer for the Qt%major
Group: Development/KDE and QT
-Requires: %name-common = %version-%release
-Requires: lib%name-devel
+Requires: lib%name-devel = %version-%release
%description designer
The package contains an User Interface designer
tool for the Qt%major toolkit.
@@ -430,7 +460,7 @@ tool for the Qt%major toolkit.
%package -n lib%name-styles
Summary: Extra styles for the Qt GUI toolkit
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n lib%name-styles
Extra styles (themes) for the Qt GUI toolkit.
@@ -439,25 +469,25 @@ Extra styles (themes) for the Qt GUI toolkit.
BuildArch: noarch
Group: System/Libraries
Summary: Meta-package for SQL support of Qt%major GUI toolkit
-Requires: lib%name-sql-mysql
-Requires: lib%name-sql-sqlite
+Requires: lib%name-sql-mysql = %version-%release
+Requires: lib%name-sql-sqlite = %version-%release
%if_enabled sql_tds
-Requires: lib%name-sql-tds
+Requires: lib%name-sql-tds = %version-%release
%endif
%if_enabled sql_ibase
-Requires: lib%name-sql-interbase
+Requires: lib%name-sql-interbase = %version-%release
%endif
%if_enabled sql_pgsql
-Requires: lib%name-sql-postgresql
+Requires: lib%name-sql-postgresql = %version-%release
%endif
%if_enabled sql_ibase
-Requires: lib%name-sql-interbase
+Requires: lib%name-sql-interbase = %version-%release
%endif
%if_enabled sql_sqlite2
-Requires: lib%name-sql-sqlite2
+Requires: lib%name-sql-sqlite2 = %version-%release
%endif
%if_enabled sql_odbc
-Requires: lib%name-sql-odbc
+Requires: lib%name-sql-odbc = %version-%release
%endif
%description sql
Meta-package for SQL support of Qt%major GUI toolkit
@@ -466,7 +496,7 @@ Meta-package for SQL support of Qt%major GUI toolkit
%package -n lib%name-sql-odbc
Summary: ODBC drivers for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-odbc
ODBC driver for Qt's SQL classes (QODBC)
@@ -475,7 +505,7 @@ ODBC driver for Qt's SQL classes (QODBC)
%package -n lib%name-sql-tds
Summary: FreeTDS(Sybase) driver for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-tds
FreeTDS(Sybase) driver for Qt's SQL classes (QTDS)
@@ -484,7 +514,7 @@ FreeTDS(Sybase) driver for Qt's SQL classes (QTDS)
%package -n lib%name-sql-mysql
Summary: MySQL driver for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-mysql
MySQL driver for Qt's SQL classes (QMYSQL)
@@ -493,7 +523,7 @@ MySQL driver for Qt's SQL classes (QMYSQL)
%package -n lib%name-sql-postgresql
Summary: PostgreSQL drivers for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-postgresql
PostgreSQL driver for Qt's SQL classes (QPSQL)
@@ -502,7 +532,7 @@ PostgreSQL driver for Qt's SQL classes (QPSQL)
%package -n lib%name-sql-interbase
Summary: InterBase drivers for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-interbase
InterBase driver for Qt's SQL classes (QIBASE)
@@ -511,7 +541,7 @@ InterBase driver for Qt's SQL classes (QIBASE)
%package -n lib%name-sql-sqlite
Summary: SQLite driver for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-sqlite
SQLite driver for Qt's SQL classes (QSQLITE)
@@ -520,7 +550,7 @@ SQLite driver for Qt's SQL classes (QSQLITE)
%package -n lib%name-sql-sqlite2
Summary: SQLite2 driver for Qt%major SQL classes
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-sql = %version-%release
Provides: lib%name-plugin-sql = %version-%release
%description -n lib%name-sql-sqlite2
SQLite2 driver for Qt's SQL classes (QSQLITE2)
@@ -560,7 +590,7 @@ This package contains documentation in man format.
%package doc-examples
Summary: Examples for developing apps which will use Qt%{major}
Group: Development/KDE and QT
-Requires: %name-common = %version
+Requires: lib%name = %version-%release
%description doc-examples
This package contains sources for example programs.
@@ -568,8 +598,9 @@ This package contains sources for example programs.
%package assistant
Summary: Assistant for the Qt%major
Group: Text tools
-Requires: %name-common = %version-%release
-Requires: lib%name-sql-sqlite
+Requires: lib%name-help = %version-%release
+Requires: lib%name-webkit = %version-%release
+Requires: lib%name-sql-sqlite = %version-%release
%description assistant
This package contains an documentation browser
for the Qt%major toolkit and Qt-based programs.
@@ -578,7 +609,9 @@ for the Qt%major toolkit and Qt-based programs.
%package dbus
Summary: D-Bus utilities for the Qt%major
Group: System/Configuration/Other
-Requires: %name-common = %version-%release
+Requires: lib%name-dbus = %version-%release
+Requires: lib%name-gui = %version-%release
+Requires: lib%name-xml = %version-%release
Requires: dbus-tools-gui
%description dbus
This package contains D-Bus utilities
@@ -589,7 +622,7 @@ for the Qt%major toolkit and Qt-based programs.
Version: %phonon_ver
Summary: Phonon Multimedia Framework library
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n libphonon
Phonon Multimedia Framework library
@@ -598,7 +631,7 @@ Phonon Multimedia Framework library
Version: %phonon_ver
Summary: Development files for Phonon
Group: System/Libraries
-Requires: %name-common = %version-%release
+Requires: lib%name-core = %version-%release
%description -n phonon-devel
Development files for Phonon
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] kde4games & dep optimizations
2011-02-12 13:13 ` Alexey Tourbin
@ 2011-02-14 14:15 ` Sergey V Turchin
0 siblings, 0 replies; 7+ messages in thread
From: Sergey V Turchin @ 2011-02-14 14:15 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: Text/Plain, Size: 765 bytes --]
On Saturday 12 February 2011 16:13, Alexey Tourbin wrote:
[...]
> В общем даже не знаю, стоит ли надеяться, что другие пакеты будут
> исправлены packager'ами таким же образом, как я исправил qt4, или нет.
[...]
> @@ -578,7 +609,9 @@ for the Qt%major toolkit and Qt-based programs.
> %package dbus
> Summary: D-Bus utilities for the Qt%major
> Group: System/Configuration/Other
> -Requires: %name-common = %version-%release
> +Requires: lib%name-dbus = %version-%release
> +Requires: lib%name-gui = %version-%release
> +Requires: lib%name-xml = %version-%release
Не, IMHO фигня получается.
Зачем rpm тогда? Отслеживать изменения тоже мне?
Мне в kde4* совершенно не хочется таким заниматься.
[...]
--
Regards, Sergey. ALT Linux, http://www.altlinux.ru/
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-02-14 14:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-06 3:31 [devel] kde4games & dep optimizations Alexey Tourbin
2011-02-06 21:27 ` Dmitry V. Levin
2011-02-06 23:55 ` Alexey Tourbin
2011-02-07 0:07 ` Dmitry V. Levin
2011-02-08 5:13 ` Alexey Tourbin
2011-02-12 13:13 ` Alexey Tourbin
2011-02-14 14:15 ` Sergey V Turchin
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