pkg-config mysticism regarding Requires.private
Jeremy Huddleston
jeremyhu at apple.com
Sun Oct 31 01:40:09 PDT 2010
Ah... I'm guessing it's because one was built with --enable-indirect-deps ... sorry for the noise ...
It seems that xterm has some trouble building with the recent libXaw and libXft changes which move libs into Requires.private ... but that is an issue with xterm's build system (it was using API from libXmu and fontconfig and only picking up those links from xaw and xft's 'pkg-config --libs').
http://cgit.freedesktop.org/xorg/lib/libXft/commit/?id=8751e341bcc29952b4603e18767ab994653c6b01
http://cgit.freedesktop.org/xorg/lib/libXaw/commit/?id=b6750449f32c07fe277146b55a9f988bfaa3e0d2
Why was the change to remove xmu from xaw7.pc not also done for xaw6.pc?
On Oct 30, 2010, at 16:20, Jeremy Huddleston wrote:
> $ PKG_CONFIG_PATH=/opt/local/lib/pkgconfig /opt/local/bin/pkg-config xft --libs
> -L/opt/local/lib -lXft -lXrender -lfontconfig -lexpat -liconv -lfreetype -lz -lX11 -lxcb -lXau -lXdmcp
>
> $ PKG_CONFIG_PATH=/opt/local/lib/pkgconfig /usr/local/bin/pkg-config xft --libs
> -L/opt/local/lib -lXft
>
> $ /opt/local/bin/pkg-config --version
> 0.25
>
> $ /usr/local/bin/pkg-config --version
> 0.25
>
> $ cat /opt/local/lib/pkgconfig/xft.pc
> prefix=/opt/local
> exec_prefix=${prefix}
> libdir=${exec_prefix}/lib
> includedir=${prefix}/include
>
> Name: Xft
> Description: X FreeType library
> Version: 2.2.0
> Requires: xproto
> Requires.private: xrender, fontconfig, freetype2
> Cflags: -I${includedir}
> Libs: -L${libdir} -lXft
>
>
> I Added --debug to both and compared the output... it seems that the one in /opt/local is including Requires.private entries and the one in /usr/local isn't. What is going on here?
>
> --- opt.out 2010-10-30 16:12:14.000000000 -0700
> +++ usr.out 2010-10-30 16:12:04.000000000 -0700
> @@ -1906,262 +1906,14 @@ Package Xproto has -I/opt/local/include
> Removing -I/opt/local/include from cflags for xproto
> Adding 'xproto' to list of known packages, returning as package 'xproto'
> line>Requires.private: xrender, fontconfig, freetype2
> -Looking for package 'xrender'
> -Looking for package 'xrender-uninstalled'
> -Reading 'xrender' from file '/opt/local/lib/pkgconfig/xrender.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/xrender.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: Xrender
> - line>Description: X Render Library
> - line>Version: 0.9.6
> - line>Requires: xproto renderproto >= 0.9 x11
> -Looking for package 'renderproto'
> -Looking for package 'renderproto-uninstalled'
> -Reading 'renderproto' from file '/opt/local/lib/pkgconfig/renderproto.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/renderproto.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: RenderProto
> - line>Description: Render extension headers
> - line>Version: 0.11.1
> - line>Cflags: -I${includedir}
> -Path position of 'RenderProto' is 1
> -Package RenderProto has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for renderproto
> -Adding 'renderproto' to list of known packages, returning as package 'renderproto'
> -Looking for package 'x11'
> -Looking for package 'x11-uninstalled'
> -Reading 'x11' from file '/opt/local/lib/pkgconfig/x11.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/x11.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>xthreadlib=
> - Variable declaration, 'xthreadlib' has value ''
> - line>
> - line>Name: X11
> - line>Description: X Library
> - line>Version: 1.3.6
> - line>Requires: xproto kbproto
> -Looking for package 'kbproto'
> -Looking for package 'kbproto-uninstalled'
> -Reading 'kbproto' from file '/opt/local/lib/pkgconfig/kbproto.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/kbproto.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: KBProto
> - line>Description: KB extension headers
> - line>Version: 1.0.5
> - line>Cflags: -I${includedir}
> -Path position of 'KBProto' is 1
> -Package KBProto has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for kbproto
> -Adding 'kbproto' to list of known packages, returning as package 'kbproto'
> - line>Requires.private: xcb >= 1.1.92
> -Looking for package 'xcb'
> -Looking for package 'xcb-uninstalled'
> -Reading 'xcb' from file '/opt/local/lib/pkgconfig/xcb.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/xcb.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>xcbproto_version=1.6
> - Variable declaration, 'xcbproto_version' has value '1.6'
> - line>
> - line>Name: XCB
> - line>Description: X-protocol C Binding
> - line>Version: 1.7
> - line>Requires.private: pthread-stubs xau >= 0.99.2 xdmcp
> -Looking for package 'pthread-stubs'
> -Looking for package 'pthread-stubs-uninstalled'
> -Reading 'pthread-stubs' from file '/opt/local/lib/pkgconfig/pthread-stubs.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/pthread-stubs.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>
> - line>Name: pthread stubs
> - line>Description: Stubs missing from libc for standard pthread functions
> - line>Version: 0.3
> - line>Libs:
> -Path position of 'pthread stubs' is 1
> -Adding 'pthread-stubs' to list of known packages, returning as package 'pthread-stubs'
> -Looking for package 'xau'
> -Looking for package 'xau-uninstalled'
> -Reading 'xau' from file '/opt/local/lib/pkgconfig/xau.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/xau.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: Xau
> - line>Description: X authorization file management libary
> - line>Version: 1.0.6
> - line>Requires: xproto
> - line>Cflags: -I${includedir}
> - line>Libs: -L${libdir} -lXau
> -Path position of 'Xau' is 1
> -Package Xau has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for xau
> -Adding 'xau' to list of known packages, returning as package 'xau'
> -Looking for package 'xdmcp'
> -Looking for package 'xdmcp-uninstalled'
> -Reading 'xdmcp' from file '/opt/local/lib/pkgconfig/xdmcp.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/xdmcp.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: Xdmcp
> - line>Description: X Display Manager Control Protocol library
> - line>Version: 1.1.0
> - line>Requires: xproto
> - line>Cflags: -I${includedir}
> - line>Libs: -L${libdir} -lXdmcp
> -Path position of 'Xdmcp' is 1
> -Package Xdmcp has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for xdmcp
> -Adding 'xdmcp' to list of known packages, returning as package 'xdmcp'
> - line>Libs: -L${libdir} -lxcb
> - line>Libs.private:
> - line>Cflags: -I${includedir}
> -Path position of 'XCB' is 1
> -Package XCB has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for xcb
> -Adding 'xcb' to list of known packages, returning as package 'xcb'
> - line>Cflags: -I${includedir}
> - line>Libs: -L${libdir} -lX11
> - line>Libs.private:
> -Path position of 'X11' is 1
> -Package X11 has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for x11
> -Adding 'x11' to list of known packages, returning as package 'x11'
> - line>Requires.private: x11
> - line>Cflags: -I${includedir}
> - line>Libs: -L${libdir} -lXrender
> -Path position of 'Xrender' is 1
> -Package Xrender has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for xrender
> -Adding 'xrender' to list of known packages, returning as package 'xrender'
> -Looking for package 'fontconfig'
> -Looking for package 'fontconfig-uninstalled'
> -Reading 'fontconfig' from file '/opt/local/lib/pkgconfig/fontconfig.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/fontconfig.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: Fontconfig
> - line>Description: Font configuration and customization library
> - line>Version: 2.8.0
> - line>Libs: -L${libdir} -lfontconfig
> - line>Libs.private: -lexpat -L/opt/local/lib -lfreetype -lz -liconv
> - line>Cflags: -I${includedir}
> -Path position of 'Fontconfig' is 1
> -Package Fontconfig has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for fontconfig
> -Adding 'fontconfig' to list of known packages, returning as package 'fontconfig'
> -Looking for package 'freetype2'
> -Looking for package 'freetype2-uninstalled'
> -Reading 'freetype2' from file '/opt/local/lib/pkgconfig/freetype2.pc'
> -Parsing package file '/opt/local/lib/pkgconfig/freetype2.pc'
> - line>prefix=/opt/local
> - Variable declaration, 'prefix' has value '/opt/local'
> - line>exec_prefix=${prefix}
> - Variable declaration, 'exec_prefix' has value '/opt/local'
> - line>libdir=${exec_prefix}/lib
> - Variable declaration, 'libdir' has value '/opt/local/lib'
> - line>includedir=${prefix}/include
> - Variable declaration, 'includedir' has value '/opt/local/include'
> - line>
> - line>Name: FreeType 2
> - line>Description: A free, high-quality, and portable font engine.
> - line>Version: 12.1.6
> - line>Requires:
> - line>Libs: -L${libdir} -lfreetype
> - line>Libs.private: -lz
> - line>Cflags: -I${includedir}/freetype2 -I${includedir}
> -Path position of 'FreeType 2' is 1
> -Package FreeType 2 has -I/opt/local/include in Cflags
> -Removing -I/opt/local/include from cflags for freetype2
> -Adding 'freetype2' to list of known packages, returning as package 'freetype2'
> line>Cflags: -I${includedir}
> line>Libs: -L${libdir} -lXft
> Path position of 'Xft' is 1
> Package Xft has -I/opt/local/include in Cflags
> Removing -I/opt/local/include from cflags for xft
> Adding 'xft' to list of known packages, returning as package 'xft'
> - original: Xft Xrender Fontconfig FreeType 2 Xproto X11 Xproto RenderProto X11 XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto
> - sorted: Xft Xrender Fontconfig FreeType 2 Xproto X11 Xproto RenderProto X11 XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto
> - original: Xft Xrender Fontconfig FreeType 2 Xproto X11 Xproto RenderProto X11 XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto
> - sorted: Xft Xrender Fontconfig FreeType 2 Xproto X11 Xproto RenderProto X11 XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto XCB Xproto KBProto pthread stubs Xau Xdmcp Xproto Xproto
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate "-L/opt/local/lib"
> - removing duplicate (from back) "-lXdmcp"
> - removing duplicate (from back) "-lXau"
> - removing duplicate (from back) "-lxcb"
> - removing duplicate (from back) "-lX11"
> - removing duplicate (from back) "-lz"
> - removing duplicate (from back) "-lfreetype"
> --L/opt/local/lib -lXft -lXrender -lfontconfig -lexpat -liconv -lfreetype -lz -lX11 -lxcb -lXau -lXdmcp
> + original: Xft Xproto
> + sorted: Xft Xproto
> + original: Xft Xproto
> + sorted: Xft Xproto
> +-L/opt/local/lib -lXft
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
More information about the xorg-devel
mailing list