On Fri, Dec 13, 2019 at 11:25 PM Vadim Zhukov <persg...@gmail.com> wrote:

> сб, 14 дек. 2019 г. в 06:10, Brad DeMorrow <b...@demorrow.net>:
> >
> > Thank you both, this is very helpful for me.
> > Attached are updated tarballs.
> > Since the meson module does the right thing, I stuck with using it for
> all three ports.
>
> Then why do you create that symlink mess and complicate SHARED_LIBS?
>
> I've just checked, just setting SHARED_LIBS to 0.0 work fine, as it
> should. You'd simply drop the post-install target all variables
> created for it.
>

The BUILD works, but things will fail at runtime without these symlinks due
to the way that they look for and use them..
(If I'm misunderstanding what you're saying, please correct me..)
There's a big warning in their build file that I eventually stumbled into
after several hours of troubleshooting.

<--Excerpt from libva/meson.build file -->
# libva library version number (generated, do not change)
# XXX: we want the SONAME to remain at libva.so.1 for VA-API major == 0
#
# The library name is generated libva.<x>.<y>.0 where
# <x> = VA-API major version + 1
# <y> = 100 * VA-API minor version + VA-API micro version
#
# For example:
# VA-API 0.32.0 generates libva.so.1.3200.0
# VA-API 0.34.1 generates libva.so.1.3401.0
# VA-API 1.2.13 generates libva.so.2.213.0
<--end-->

Here is what happens before and after I move these symlinks and run vainfo
to test if things will work or not:
brad-laptop$ cd /usr/local/lib
brad-laptop$ mkdir -p /tmp/va/
brad-laptop$ doas mv libva*.so.2*  <--I just tabbed here so you could see
the files I'm moving
libva-drm.so.2            libva-glx.so.2.600.0      libva.so.2
libva-drm.so.2.600.0      libva-x11.so.2            libva.so.2.600.0
libva-glx.so.2            libva-x11.so.2.600.0
brad-laptop$ doas mv libva*.so.2* /tmp/va/
brad-laptop$ vainfo <--The libva*.so.0.0 libraries are available now, but
vainfo fails anyway.
libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva error: /usr/local/lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
brad-laptop$ doas mv /tmp/va/* . <--I move back these libva*.so.2* files
and vainfo will work again properly.
brad-laptop$ vainfo
libva info: VA-API version 1.6.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.6 (libva 2.6.0.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Kaby Lake - 2.4.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSlice
      VAProfileVP9Profile2            : VAEntrypointVLD

The intent of the variables in the Makefile is to allow us to track our
internal version (which I'm setting to 0.0) and to
track the corresponding upstream version in one location.  If I didn't put
them in variables at the top, I would have a bunch
of hard-coded "libX.so.2.600.0" lines at the bottom where I have to do the
symlinks.  I am sorry it's not exactly standard
as far as the ports I've come across.. if there is a better way to
accomplish this I am more than willing to make the change(s)
necessary.


> Also, lib/dri/i965_drv_video.so still lacks @so marker. Do you run
> recent snapshot? Could you post your dmesg, please?
>
My apologies.. I had packaged this on -stable.  I've attached new tarballs
built from the latest snapshot.
I regenerated all PLISTs and the intel-vaapi-driver package now includes
the @so marker you mentioned.


-- 
--Brad DeMorrow

Attachment: libva.tar.gz
Description: application/gzip

Attachment: intel-vaapi-driver.tar.gz
Description: application/gzip

Attachment: libva-utils.tar.gz
Description: application/gzip

Reply via email to