tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Mysterious dependency on x11/libdrm, explained.



While test-building current pkgsrc, I get errors from many graphics
packages:

===> wrapper-message [cairo-1.16.0 pango-1.42.4nb3 dia-0.97.3nb11] ===> Creating toolchain wrappers for cairo-1.16.0
ERROR: libdrm>=2.4.60 libdrm>=2.4.15 is not installed; can't 
buildlink files.
*** Error code 1
 
I have a note somewhere:

    # graphics/MesaLib requires libdrm 2.4.38 but doesn't depend on it?

That seems to be still true?  (modulo the version number)

After some staring, I see what's causing the dependency on drm.
In graphics/MesaLib/buildlink3.mk there is
 
    .if ${X11_TYPE} == "native" && ${OPSYS} != "Cygwin" && exists(${X11BASE}/lib/pkgconfig/dri.pc)
    PKG_BUILD_OPTIONS.MesaLib+=     dri
    .endif
    .if !empty(PKG_BUILD_OPTIONS.MesaLib:Mdri)
    .  include "../../graphics/MesaLib/dri.mk"
    .endif
 
the first block adds dri to PKG_BUILD_OPTIONS.MesaLib and the second one
pulls in dri.mk, which in turn has (slightly conditionally)
 
    .    include "../../x11/libdrm/buildlink3.mk"
 
Since I had already found that GL, dri, gle and glu should all come from
the same source (native or package), I also have this in my mk.conf:
 
    PREFER.libdrm = pkgsrc  # req'd by MesaLib
    PREFER.MesaLib = pkgsrc
    PREFER.glu = ${PREFER.MesaLib}  # automatically correct for most; req'd for xscreensaver
    PREFER.gle = ${PREFER.MesaLib}  # req'd by xscreensaver
    # GL (MesaLib), gle and glu should generally match up, PREFER-wise.
 
but nowhere in the Makefiles it states the actual dependency of MesaLib
on drm.

So, now I manually installed libdrm, and cairo starts building.

At the moment I'm guessing that the dri option in MesaLib only adds some
files that are used by the X server, not by X clients. I base this on
the file names in the PLIST, for instance:

    ${PLIST.i915_dri}lib/dri/i915_dri.so

and the base system i915_dri.so is at

    /usr/X11R7/lib/modules/dri/i915_dri.so.

So I likely won't miss anything if I build MesaLib without dri.

Open question: how to make this consistent? MesaLib built without libdrm
present, so I guess it doesn't really depend on it, so the buildlink
dependency should somewhow be removed?

(edited from irc #pkgsrc)

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- "What good is a Ring of Power
\X/ rhialto/at/falu.nl      -- if you're unable...to Speak." - Agent Elrond

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index