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
libva.tar.gz
Description: application/gzip
intel-vaapi-driver.tar.gz
Description: application/gzip
libva-utils.tar.gz
Description: application/gzip