[MacPorts] #19503: xorg-libX11, xrender: some build dependencies should be lib dependencies

MacPorts noreply at macports.org
Fri May 1 14:09:26 PDT 2009


#19503: xorg-libX11, xrender: some build dependencies should be lib dependencies
-------------------------------------+--------------------------------------
 Reporter:  ryandesign@…             |       Owner:  jeremyhu@…           
     Type:  defect                   |      Status:  new                  
 Priority:  Normal                   |   Milestone:                       
Component:  ports                    |     Version:  1.7.1                
 Keywords:                           |        Port:  xorg-libX11, xrender 
-------------------------------------+--------------------------------------

Comment(by ryandesign@…):

 I cannot run `pkg-config --modversion gtk+-2.0` unless xorg-xproto, xorg-
 renderproto and xorg-kbproto are installed. This means I cannot build any
 port that depends on gtk2 unless those other ports are installed. gtk2's
 gtk+-2.0.pc doesn't itself mention these requirements. But some other
 pkgconfig files do. So it feels to me like the responsibility of those
 ports to declare dependencies on the proto ports their pc files say they
 require. For example:

 {{{
 $ grep ' xproto' /mp/lib/pkgconfig/*.pc
 /mp/lib/pkgconfig/ice.pc:Requires: xproto
 /mp/lib/pkgconfig/libfs.pc:Requires: xproto fontsproto
 /mp/lib/pkgconfig/sm.pc:Requires: ice xproto
 /mp/lib/pkgconfig/x11.pc:Requires: xproto kbproto
 /mp/lib/pkgconfig/xau.pc:Requires: xproto
 /mp/lib/pkgconfig/xaw6.pc:Requires: xproto xt xmu
 /mp/lib/pkgconfig/xaw7.pc:Requires: xproto xt xmu
 /mp/lib/pkgconfig/xcomposite.pc:Requires: xproto compositeproto >= 0.4
 xfixes
 /mp/lib/pkgconfig/xcursor.pc:Requires: xproto
 /mp/lib/pkgconfig/xdamage.pc:Requires: xproto damageproto >= 1.1 xfixes
 /mp/lib/pkgconfig/xdmcp.pc:Requires: xproto
 /mp/lib/pkgconfig/xevie.pc:Requires: xproto
 /mp/lib/pkgconfig/xfixes.pc:Requires: xproto fixesproto >= 4.0
 /mp/lib/pkgconfig/xfont.pc:Requires: xproto fontsproto
 /mp/lib/pkgconfig/xft.pc:Requires: xproto, xrender, fontconfig, freetype2
 /mp/lib/pkgconfig/xmu.pc:Requires: xproto x11 xt
 /mp/lib/pkgconfig/xmuu.pc:Requires: xproto x11
 /mp/lib/pkgconfig/xrandr.pc:Requires: xproto randrproto >= 1.3
 /mp/lib/pkgconfig/xrender.pc:Requires: xproto renderproto >= 0.9 x11
 /mp/lib/pkgconfig/xres.pc:Requires: xproto
 /mp/lib/pkgconfig/xt.pc:Requires: xproto x11 sm
 /mp/lib/pkgconfig/xv.pc:Requires: xproto videoproto
 /mp/lib/pkgconfig/xvmc.pc:Requires: xproto videoproto xv
 }}}

 Beginning with the first, ice.pc:

 {{{
 $ port provides /mp/lib/pkgconfig/ice.pc
 /mp/lib/pkgconfig/ice.pc is provided by: xorg-libice
 $ port deps xorg-libice
 xorg-libice has build dependencies on:
         pkgconfig
         xorg-xproto
         xorg-xtrans
 }}}

 So the ice.pc file that xorg-libice installs says it requires "xproto",
 provided by the xorg-xproto port. Ports that depend on xorg-libice will
 probably use pkg-config to find out how to link with libice. This pkg-
 config call will fail unless xorg-xproto is installed. Therefore, xorg-
 libice must declare a lib dependency on xorg-xproto, to indicate that it
 may not be uninstalled after a build.

 It is not reasonable that every port that wants to use xorg-libice should
 be required to know what other proto ports xorg-libice requires and to
 declare dependencies on them. What if a new version of xorg-libice
 requires another proto port? It's not reasonable to have to update all
 ports that use xorg-libice to also list that dependency. This is what the
 dependency engine is for -- handling this for us by declaring dependencies
 at the source.

 "depends_build foo" means foo is required to build this software.
 "depends_run foo" means foo is required to run this software. I feel that
 running pkg-config against a .pc file installed by this port is included
 in the definition of running  this software. "depends_lib foo" is
 equivalent to "depends_build foo\ndepends_run foo".

-- 
Ticket URL: <http://trac.macports.org/ticket/19503#comment:4>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list