From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] rpm 4.0.4-alt82
Date: Mon, 14 Jan 2008 22:56:15 +0300
Message-ID: <20080114195615.GB7389@solemn.turbinal> (raw)
In-Reply-To: <20080114190045.GA1483@wo.int.altlinux.org>
[-- Attachment #1: Type: text/plain, Size: 2853 bytes --]
On Mon, Jan 14, 2008 at 10:00:45PM +0300, Dmitry V. Levin wrote:
> > Я пока воспринимаю ещё как экспериментальную. Хотелось бы замутить
> > пересборку сизифа с 4.0.4-alt82 и потом проверить/обсудить, устраивает
> > ли нас новая схема зависимостей или нет.
>
> Это ещё актуально? Сейчас заканчивается очередная тестовая пересборка,
> можно попробовать.
Я думаю что там всё нормально, если только сама идея "цементировать"
или "наращивать" зависимости между подпакетами за счёт файловых
зависимостей не вызывает возражений.
Вот нетривиальный пример того, какой эффект даёт это "цементирование".
В пакете valgrind-devel-3.2.3-alt1.i586.rpm
имеется файл /usr/lib/pkgconfig/valgrind.pc
в котором имеется строка
Libs: -L${libdir}/valgrind/x86-linux -lcoregrind -lvex -lgcc
Здесь речь идёт о зависимостях на файлы
/usr/lib/valgrind/x86-linux/libcoregrind.a
/usr/lib/valgrind/x86-linux/libvex.a
Эти зависимости обнаруживаются с помощью pkgconfiglib.req.
Старый алгоритм поведения pkgconfiglib.req был такой:
поскольку эти файлы обнаружены под $RPM_BUILD_ROOT, то ничего не делать,
потому что как бы "внешнех зависимостей" нет. Куда эти файлы будут
запакованы и будут ли они запакованы вообще, it's up to maintainer.
Новый алгоритм pkgconfiglib.req такой: ok, ставим файловую зависимость
на эти файлы, то есть
Requires: /usr/lib/valgrind/x86-linux/libcoregrind.a
Requires: /usr/lib/valgrind/x86-linux/libvex.a
Если эти файлы запакованы в тот же самый пакет, что и файл
/usr/lib/pkgconfig/valgrind.pc, то rpm оптимизирует (удалит)
эти Requires зависимости. В противном случае зависимости останутся --
появляется требование, что эти файлы должны быть куда-то запакованы
(имеется в виду, что они должны быть запакованы в один из подпакетов,
на которые распилен пакет valgrind, но в точности передать имеено эту
семантику нельзя).
Правда в данном случае состоит в том, что файлы
/usr/lib/valgrind/x86-linux/libcoregrind.a
/usr/lib/valgrind/x86-linux/libvex.a
запакованы в другой пакет -- valgrind-tool-devel-3.2.3-alt1.i586.rpm.
То есть у пакета valgrind-devel появится косвенная зависимость на
valgrind-tool-devel, через файловые зависимости (которые можно понимать
почти что как обычные виртуальные зависимости).
Но пакет valgrind-tool-devel в свою очередь явно зависит от пакета
valgrind-devel (с точностью до = %version-%release).
Получается, что эффект "цементирования" как бы "нарушает" оригинальный
замысел maintainer'а отпилить два *-devel пакета. С другой стороны,
этот оригинальный замысел допускает "прокол": можно установить пакет
valgrind-devel, но при этом нельзя слинковаться через valgrind.pc,
потому что не хватает соответствующих библиотек, которые были отпилены
в другой подпакет. То есть "цементирование" теперь запрещает
незамкнутые зависимости между подпакетами.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-01-14 19:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-03 12:50 Alexey Tourbin
2008-01-14 19:00 ` Dmitry V. Levin
2008-01-14 19:56 ` Alexey Tourbin [this message]
2008-01-14 20:26 ` Dmitry V. Levin
2008-01-14 23:19 ` Alexey Tourbin
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=20080114195615.GB7389@solemn.turbinal \
--to=at@altlinux.ru \
--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