Bug 209619 - multimedia/ffmpeg: make libvdpau a runtime dependency
Summary: multimedia/ffmpeg: make libvdpau a runtime dependency
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Thomas Zander
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-18 18:58 UTC by Walter Hop
Modified: 2016-05-18 22:36 UTC (History)
1 user (show)

See Also:
riggs: maintainer-feedback+
riggs: merge-quarterly+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Walter Hop 2016-05-18 18:58:29 UTC
When ffmpeg is built with the VDPAU option, multimedia/libvdpau is a build dependency, and not a runtime dependency. (See #153581)

However, the resulting ffmpeg binary does depend on this library at runtime.

Recently 'pkg autoremove' has started to remove the libvdpau package, which causes ffmpeg to fail. I'm not sure why I haven't seen this problem before, though my pkg is now at 1.7.2, so perhaps the autoremove algorithm was tweaked. 

At the other hand, 'pkg install ffmpeg' does want to install libvdpau, which might be strange if it's just a build dependency.

It seems somebody has run into this problem earlier and has created a patch:
https://lists.freebsd.org/pipermail/freebsd-multimedia/2014-December/015403.html
This looks good to me, but I would recommend a quick check to see if pkg is doing the right thing.

Example:

# sudo pkg install -y ffmpeg
Updating lifeforms repository catalogue...
lifeforms repository is up-to-date.
All repositories are up-to-date.
Checking integrity... done (0 conflicting)
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	ffmpeg: 2.8.7,1
	libvdpau: 1.1.1

The process will require 47 MiB more space.
[1/2] Installing ffmpeg-2.8.7,1...
[1/2] Extracting ffmpeg-2.8.7,1: 100%
[2/2] Installing libvdpau-1.1.1...
[2/2] Extracting libvdpau-1.1.1: 100%

# sudo pkg autoremove -y
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages:

Installed packages to be REMOVED:
	libvdpau-1.1.1
[1/1] Deinstalling libvdpau-1.1.1...
[1/1] Deleting files for libvdpau-1.1.1: 100%

# ffmpeg
Shared object "libvdpau.so.1" not found, required by "ffmpeg"

# ldd `which ffmpeg`
/usr/local/bin/ffmpeg:
	libavdevice.so.56 => /usr/local/lib/libavdevice.so.56 (0x80084c000)
	libavfilter.so.5 => /usr/local/lib/libavfilter.so.5 (0x800a5a000)
	libavformat.so.56 => /usr/local/lib/libavformat.so.56 (0x800dcc000)
	libavcodec.so.56 => /usr/local/lib/libavcodec.so.56 (0x8011a8000)
	libavresample.so.2 => /usr/local/lib/libavresample.so.2 (0x80252d000)
	libpostproc.so.53 => /usr/local/lib/libpostproc.so.53 (0x80274b000)
	libswresample.so.1 => /usr/local/lib/libswresample.so.1 (0x802977000)
	libswscale.so.3 => /usr/local/lib/libswscale.so.3 (0x802b92000)
	libavutil.so.54 => /usr/local/lib/libavutil.so.54 (0x802e24000)
	libX11.so.6 => /usr/local/lib/libX11.so.6 (0x803089000)
	libm.so.5 => /lib/libm.so.5 (0x8033bf000)
	libthr.so.3 => /lib/libthr.so.3 (0x8035e0000)
	libvdpau.so.1 => not found (0)
	libc.so.7 => /lib/libc.so.7 (0x803803000)
	libv4l2.so.0 => /usr/local/lib/libv4l2.so.0 (0x803b5e000)
	libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x803d6b000)
	libssl.so.8 => /usr/local/lib/libssl.so.8 (0x804004000)
	libcrypto.so.8 => /usr/local/lib/libcrypto.so.8 (0x804277000)
	libbz2.so.4 => /usr/lib/libbz2.so.4 (0x80465a000)
	libz.so.6 => /lib/libz.so.6 (0x80486a000)
	libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x804a7e000)
	libva.so.1 => /usr/local/lib/libva.so.1 (0x804d7a000)
	libxvidcore.so.4 => /usr/local/lib/libxvidcore.so.4 (0x804f95000)
	libx265.so.79 => /usr/local/lib/libx265.so.79 (0x8052b0000)
	libx264.so.144 => /usr/local/lib/libx264.so.144 (0x805804000)
	libvpx.so.3 => /usr/local/lib/libvpx.so.3 (0x805b63000)
	libvorbisenc.so.2 => /usr/local/lib/libvorbisenc.so.2 (0x805f0b000)
	libvorbis.so.0 => /usr/local/lib/libvorbis.so.0 (0x8061b3000)
	libtheoraenc.so.1 => /usr/local/lib/libtheoraenc.so.1 (0x8063dd000)
	libtheoradec.so.1 => /usr/local/lib/libtheoradec.so.1 (0x806617000)
	libschroedinger-1.0.so.0 => /usr/local/lib/libschroedinger-1.0.so.0 (0x80682f000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x806ae0000)
	libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x806d03000)
	librpcsvc.so.5 => /usr/lib/librpcsvc.so.5 (0x806f23000)
	libv4lconvert.so.0 => /usr/local/lib/libv4lconvert.so.0 (0x80712c000)
	libmd.so.5 => /lib/libmd.so.5 (0x8073a2000)
	librt.so.1 => /usr/lib/librt.so.1 (0x8075b2000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x8077b7000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x807abe000)
	libogg.so.0 => /usr/local/lib/libogg.so.0 (0x807ccc000)
	liborc-0.4.so.0 => /usr/local/lib/liborc-0.4.so.0 (0x807ed2000)
	libXau.so.6 => /usr/local/lib/libXau.so.6 (0x808157000)
	libpthread-stubs.so.0 => /usr/local/lib/libpthread-stubs.so.0 (0x808359000)
	libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x80855a000)
	libjpeg.so.8 => /usr/local/lib/libjpeg.so.8 (0x80875f000)

# pkg -v
1.7.2

# pkg info ffmpeg
pkg info ffmpeg
ffmpeg-2.8.7,1
Name           : ffmpeg
Version        : 2.8.7,1
Installed on   : Wed May 18 20:34:32 2016 CEST
Origin         : multimedia/ffmpeg
Architecture   : freebsd:9:x86:64
Prefix         : /usr/local
Categories     : multimedia net audio ipv6
Licenses       : GPLv2+ and LGPL21+
Maintainer     : multimedia@FreeBSD.org
WWW            : http://ffmpeg.org/
Comment        : Realtime audio/video encoder/converter and streaming server
Options        :
	AACPLUS        : off
	ALSA           : off
	AMR_NB         : off
	AMR_WB         : off
	ASS            : off
	BS2B           : off
	CACA           : off
	CDIO           : off
	CELT           : off
	DC1394         : off
	DEBUG          : off
	DOCS           : on
	FAAC           : off
	FDK_AAC        : off
	FFSERVER       : on
	FLITE          : off
	FONTCONFIG     : off
	FREETYPE       : on
	FREI0R         : off
	FRIBIDI        : off
	GME            : off
	GNUTLS         : off
	GPL3           : off
	GSM            : off
	ICONV          : on
	ILBC           : off
	JACK           : off
	LADSPA         : off
	LAME           : off
	LIBBLURAY      : off
	MMX            : on
	MODPLUG        : off
	NONFREE        : on
	OPENAL         : off
	OPENCL         : off
	OPENCV         : off
	OPENGL         : off
	OPENH264       : off
	OPENJPEG       : off
	OPENSSL        : on
	OPTIMIZED_CFLAGS: off
	OPUS           : off
	PULSEAUDIO     : off
	QUVI           : off
	RTCPU          : on
	RTMP           : off
	SCHROEDINGER   : on
	SDL            : off
	SMB            : off
	SNAPPY         : off
	SPEEX          : off
	SSE            : on
	SSH            : off
	THEORA         : on
	TWOLAME        : off
	V4L            : on
	VAAPI          : on
	VDPAU          : on
	VIDSTAB        : off
	VORBIS         : on
	VO_AACENC      : off
	VO_AMRWBENC    : off
	VPX            : on
	WAVPACK        : off
	WEBP           : off
	X11GRAB        : off
	X264           : on
	X265           : on
	XCB            : off
	XVID           : on
	XVIDEO         : off
	ZMQ            : off
	ZVBI           : off
Shared Libs required:
	libv4l2.so.0
	libx265.so.79
	libtheoraenc.so.1
	libschroedinger-1.0.so.0
	libfreetype.so.6
	libvorbisenc.so.2
	libssl.so.8
	libcrypto.so.8
	libx264.so.144
	libxvidcore.so.4
	libvorbis.so.0
	libvpx.so.3
	libiconv.so.2
	libvdpau.so.1
	libtheoradec.so.1
	libva.so.1
	libX11.so.6
Shared Libs provided:
	libavfilter.so.5
	libavcodec.so.56
	libavdevice.so.56
	libavformat.so.56
	libavresample.so.2
	libswresample.so.1
	libpostproc.so.53
	libswscale.so.3
	libavutil.so.54
Annotations    :
	cpe            : cpe:2.3:a:ffmpeg:ffmpeg:2.8.7:::::freebsd9:x64
	repo_type      : binary
	repository     : lifeforms
Flat size      : 46.5MiB
Description    :
FFmpeg is a complete, cross-platform solution to record, convert and stream
audio and video. It includes libavcodec - the leading audio/video codec
library.

WWW: http://ffmpeg.org/
Comment 1 commit-hook freebsd_committer freebsd_triage 2016-05-18 19:51:49 UTC
A commit references this bug:

Author: riggs
Date: Wed May 18 19:51:01 UTC 2016
New revision: 415463
URL: https://svnweb.freebsd.org/changeset/ports/415463

Log:
  Fix runtime issue: libvdpau must be LIB_DEPENDS

  PR:		209619
  Submitted by:	walter@lifeforms.nl
  MFH:		2016Q2

Changes:
  head/multimedia/ffmpeg/Makefile
Comment 2 commit-hook freebsd_committer freebsd_triage 2016-05-18 22:35:05 UTC
A commit references this bug:

Author: riggs
Date: Wed May 18 22:34:40 UTC 2016
New revision: 415467
URL: https://svnweb.freebsd.org/changeset/ports/415467

Log:
  MFH: r415463

  Fix runtime issue: libvdpau must be LIB_DEPENDS

  PR:		209619
  Submitted by:	walter@lifeforms.nl

  Approved by:	ports-secteam (feld)

Changes:
_U  branches/2016Q2/
  branches/2016Q2/multimedia/ffmpeg/Makefile