libX11.spec: 27 BuildRequires: libXdmcp-devel libXau-devel xorg-xtrans-devel xorg-util-macros libxcb-devel 28 29 %description 30 X11 Library 31 32 %package devel 33 Summary: X11 Libraries and Header Files 34 Group: Development/C 35 PreReq: xorg-x11-proto-devel 36 Requires: %name = %version-%release libXdmcp-devel libXau-devel libxcb-devel 37 Conflicts: XFree86-devel < 4.4 xorg-x11-devel <= 6.9.0 38 39 %description devel 40 %name-devel contains the libraries and header files needed to 41 develop programs which make use of %name. Не следует автоматически переносить зависимости из BuildRequires в Requires для *-devel пакета. Зависимости на уровне pkgconfig(...) обычно оказываются более правильными и точными. $ rpm -qR libX11-devel |grep ^pkgconfig pkgconfig(kbproto) pkgconfig(xcb) pkgconfig(xproto) $ Две последние pkgconfig(...) зависимости соответствуют пакетам libxcb-devel и xorg-xproto-devel (явные зависимости добавлены вручную). Зависимость pkgconfig(kbproto) дополнительно вытягивает xorg-kbproto-devel (вручную не указан). Пакеты libXdmcp-devel libXau-devel, указанные вручную, оказываются лишними. Они используются для сборки libX11 (в BuildRequires), но не требуются при сборке других пакетов с libX11-devel (в Requires). Я приложил скрипт cpp.req, который позволяет дополнительно проверить, какие зависимости требуются для хедеров. $ rpm -ql libX11-devel |grep /usr/include/ |cpp.req -v |sort -u cpp.req: /usr/include/X11/XKBlib.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/XKBlib.h: /usr/include/X11/extensions/XKBstr.h -> xorg-kbproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xcms.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib-xcb.h: /usr/include/xcb/xcb.h -> libxcb-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib-xcb.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib.h: /usr/include/sys/types.h -> glibc-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib.h: /usr/include/X11/X.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib.h: /usr/include/X11/Xfuncproto.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib.h: /usr/include/X11/Xosdefs.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlib.h: /usr/lib64/gcc/x86_64-alt-linux/4.1.2/include/stddef.h -> gcc4.1 (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/X11/Xproto.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/X11/XlibConf.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/errno.h -> glibc-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/X11/Xfuncs.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/include/stdlib.h -> glibc-devel (via rpmdb) cpp.req: /usr/include/X11/Xlibint.h: /usr/lib64/gcc/x86_64-alt-linux/4.1.2/include/stddef.h -> gcc4.1 (via rpmdb) cpp.req: /usr/include/X11/Xlocale.h: /usr/include/X11/Xfuncproto.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlocale.h: /usr/include/X11/Xosdefs.h -> xorg-xproto-devel (via rpmdb) cpp.req: /usr/include/X11/Xlocale.h: /usr/include/locale.h -> glibc-devel (via rpmdb) cpp.req: /usr/include/X11/Xresource.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xutil.h: /usr/include/X11/Xlib.h -> libX11-devel (via rpmdb) cpp.req: /usr/include/X11/Xutil.h: /usr/include/X11/keysym.h -> xorg-xproto-devel (via rpmdb) gcc4.1 glibc-devel libX11-devel libxcb-devel xorg-kbproto-devel xorg-xproto-devel $ Здесь зависимости gcc4.1 и glibc-devel -- тривиальные, зависимость libX11-devel сама на себя "не считаетася" (потому дело происходит в хост-системе, а не в RPM_BUILD_ROOT). Оставшиеся три существенные зависимости соответствуют уже имеющимся зависимостям pkgconfig(...). Значит, можно было бы вообще не писать вручную дополнительные зависимости для libX11-devel.