[oi-dev] pkgdepend can not find existing file

Alan Coopersmith alan.coopersmith at oracle.com
Wed Mar 23 21:54:54 UTC 2016

On 03/23/16 12:33 PM, Till Wegmüller wrote:
> Hi
> While Packaging mate-screensaver i stumbled upon a funny error message
> pkgdepend says:
>  >/root/workspace/oi-userland/components/mate/mate-screensaver/build/manifest-i386-mate-screensaver.depend has unresolved dependency '
>  >    depend type=require fmri=__TBD pkg.debug.depend.file=libGL.so.1 \
>  > pkg.debug.depend.reason=usr/libexec/mate-screensaver-gl-helper \
>  >        pkg.debug.depend.type=elf \
>  >        pkg.debug.depend.path=lib \
>  >        pkg.debug.depend.path=usr/lib'.
> So as far as i understand it it cannot find libGL.so.1
> Funny is that, this file exists in /usr/lib

It's not saying that it can't find the file, but rather that it cannot find a
package containing /lib/libGL.so.1 or /usr/lib/libGL.so.1 (as either a link or
a file).

> Side note usr/lib/libGL is linked to usr/lib/GL/libGL which is linked to
> var/run/opengl/lib/libGL which finaly links to usr/lib/mesa/libGL.
> Why do those links not directly link to usr/lib/mesa/libGL?

Because the ogl-select runtime service sets the links to the nvidia or mesa
version as needed for the system.   This is also why they're not packaged -
the package can't set the link differently based on the hardware installed
on the system.

This is why xscreensaver has a workaround for this in its manifest:

# pkgdepend can't follow the runtime generated symlinks to libGL
set name=pkg.depend.bypass-generate value=libGL\.so\.1

[... all the files in the package ...]

# Second half of workaround for pkgdepend not handling libGL's magic properly
depend type=require fmri=__TBD pkg.debug.depend.file=usr/lib/mesa/libGL.so.1


	-Alan Coopersmith-              alan.coopersmith at oracle.com
	 Oracle Solaris Engineering - http://blogs.oracle.com/alanc

More information about the oi-dev mailing list