[devel] Q: pkgconfig build-deps

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Апр 29 18:54:48 MSD 2006


On Sat, Apr 29, 2006 at 12:26:37PM +0400, Konstantin A. Lepikhov wrote:
> Saturday 29, at 02:29:43 AM you wrote:
> > On Sat, Apr 29, 2006 at 12:56:43AM +0400, Alexey Tourbin wrote:
> > > On Sat, Apr 29, 2006 at 12:39:03AM +0400, Mikhail Zabaluev wrote:
> > > > > Также интересно, считать ли это багой упаковки -devel, если список
> > > > > Requires ее не учитывает список в *.pc?
> > > > 
> > > > Интересно было бы взглянуть на конкретные случаи, но в принципе да.
> > > 
> > > Bug 9448 - libxml2-devel should require zlib-devel
> > > https://bugzilla.altlinux.org/show_bug.cgi?id=9448
> > > 
> > > На самом деле для линковки с разделяемой библиотекой libxml2 библиотека
> > > libz не нужна.  То есть с флагом --as-needed линкер по идее должен эту
> > > библиотеку выкинуть.  То есть проблема стала ещё менее актуальной, но
> > > всё же она имеется: не ясна точная семантика зависимостей в *.pc файлах.
> > 
> > Собственно говоря, если посмотреть архив списка рассылки, то можно
> > увидеть, что бардак в .pc-файлах, следуя которым приложения оказываются
> > слинкованными со всем подряд, и был последней каплей для перехода от
> > эксперименов с --as-needed к массовому внедрению --as-needed.
> > 
> > Невозможно вправить мозги всем авторам и мантейнерам библиотек сразу,
> > а вот включить --as-needed сразу гораздо доступнее.
> таким образом получается, что требования в *.pc -devel части пакета -
> наглая фикция и в расчет не берутся?

Какие требования?  "Requires:" (требования к наличию .pc-файлов) порождают
зависимости (/usr/lib/rpm/pkgconfig.req).  Других требований в .pc-файлах,
кажется, нет.

> И для них (требований в *.pc)
> необходимо прописывать лишние BuildReq в пакете, требующем данный -devel
> для сборки?

Ты имеешь в виду "Libs:"?  Их в первую очередь надо чистить, а уже потом
порождать из них зависимости.  Впрочем, патчи на pkgconfig.req, как обычно,
приветствуются.

> > > Если каждая разделяемая библиотека "замкнута", к чему мы стремимся, то
> > > никаких зависимостей в *.pc файлах быть не должно.  А для статической
> > > линковски нужно "схлопывать" все зависимости по волновому алгоритму (всё
> > > до чего можно дотянуться).
> > 
> > Это верно, но ввиду несознательности и/или занятости авторов и мантейнеров
> > библиотек добиться этой цели будет нелегко.
> 
> но пинать апстрим на предмет лишних библиотек все-таки необходимо.

Давай будем реалистами.  Если, например, убрать "-lz -lm" из
libxml-2.0.pc, то на какой-нибудь платформе сломается статическая сборка.
Поэтому "-lz -lm" апстрим не уберёт.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060429/1484d1dd/attachment-0001.bin>


Подробная информация о списке рассылки Devel