[devel] Q: pkg-config: Requires.private == Requires?

Dmitry V. Levin ldv на altlinux.org
Вт Ноя 2 00:14:41 UTC 2010


On Mon, Nov 01, 2010 at 12:51:55PM +0300, Valery V. Inozemtsev wrote:
> а я уж собрался фиксить .pc файлы. ждем-с

В Сизифе обнаружилось 105 с нетривиальным Requires.private:

ORBit2-devel
libGConf-devel
libGL-devel
libGLUT-devel
libGLw-devel
libSM-devel
libX11-devel
libXScrnSaver-devel
libXaw-devel
libXcomposite-devel
libXcursor-devel
libXdamage-devel
libXevie-devel
libXext-devel
libXfixes-devel
libXfont-devel
libXft-devel
libXi-devel
libXinerama-devel
libXmu-devel
libXp-devel
libXrandr-devel
libXrender-devel
libXres-devel
libXt-devel
libXtst-devel
libXv-devel
libXvMC-devel
libXxf86dga-devel
libXxf86misc-devel
libXxf86vm-devel
libass-devel
libautotrace-devel
libavahi-gobject-devel
libavahi-qt3-devel
libavahi-qt4-devel
libavcodec-devel
libavcore-devel
libavdevice-devel
libavfilter-devel
libavformat-devel
libblkid-devel
libbonoboui-devel
libcairo-devel
libchamplain-devel
libcheese-devel
libdevhelp-devel
libdevmapper-devel
libdevmapper-event-devel
libdmx-devel
libdrm-devel
libdvdnav-devel
libe2fs-devel
libecore-devel
libedbus-devel
libedje-devel
libeet-devel
libeeze-devel
libefreet-devel
libelementary-devel
libesd-devel
libevas-devel
libftgl213-devel
libgnome-bluetooth-devel
libgnome-devel
libgnomecanvas-devel
libgnomeoffice-devel
libgnomeoffice-light-devel
libgnomeui-devel
libgssdp-devel
libgtksourceview-devel
libgucharmap-devel
libgupnp-devel
libgweather-devel
libldb-devel
liblvm2-devel
libmount-devel
libpcre-devel
libpoppler-cpp-devel
libpoppler-glib-devel
libpoppler-qt-devel
libpoppler-qt4-devel
libpowersave-devel
libredland-devel
libselinux-devel
libsemanage-devel
libslab-devel
libsoup-devel
libss-devel
libswscale-devel
libtelepathy-farsight-devel
libtelepathy-glib-devel
libtotem-pl-parser-devel
libupower-devel
libv4l-devel
libvdpau-devel
libwnck-devel
libxcb-devel
libxkbfile-devel
libxprintutil-devel
python-module-pygobject-devel
rhythmbox-devel
rygel-devel
tracker-devel
xorg-sdk

Все эти пакеты при очередной сборке получат больше зависимостей, чем они
имеют сейчас.  Многие из них не соберутся из-за того, что сейчас требуемых
зависимостей нет в сборочных средах этих пакетов.

К сожалению, из-за тупых fdoшников пострадают нормальные пакеты, которые
используют Requires.private именно для зависимостей статической линковки.

Например,
$ grep ^Req libselinux.pc
Requires.private: libsepol
Как известно, для компиляции и нестатической линковки с libselinux
никакой libsepol не нужен.

Мейнтейнерам придётся самим решать, что с этим делать.
Простых варианта два:
- выкинуть Requires.private, поскольку статическая линковка это экзотика;
- добавить мусор в сборочные зависимости, после чего этот мусор попадет в
  зависимости собранных devel-пакетов.

Есть и более сложные варианты.  На примере того же libselinux.pc,
можно заменить
Requires.private: libsepol
на
Libs.private: -lsepol

Тогда и зависимостей лишних не будет, и статическая линковка не сломается.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20101102/c2ae6af5/attachment.bin>


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