Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 554562 - media-video/vlc-2.2.1 doesn't compile with media-libs/opencv-3.0.0
Summary: media-video/vlc-2.2.1 doesn't compile with media-libs/opencv-3.0.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-11 23:24 UTC by Anton Kochkov
Modified: 2015-07-29 09:55 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
opencv-3.0.0.patch (opencv.patch,468 bytes, patch)
2015-07-22 04:27 UTC, Nick Andrade
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Kochkov 2015-07-11 23:24:16 UTC
../../doltlibtool  --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -std=gnu99  -O2 -march=corei7-avx -pipe -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith 
-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -pipe -fvisibility=hidden -avoid-version 
-module -export-symbols-regex ^vlc_entry -shrext .so -no-undefined ../../compat/libcompat.la ../../src/libvlccore.la  -rpath '/usr/lib64/vlc/plugins/video_filter'  
-Wl,-O1 -Wl,--as-needed -L/usr/lib64/sidplay/builders/ -o librotate_plugin.la -rpath /usr/lib64/vlc/plugins/video_filter rotate.lo ../control/libvlc_motion.la -lm 
opencv_example.cpp: In function ‘picture_t* Filter(filter_t*, picture_t*)’:
opencv_example.cpp:197:58: error: ‘CV_RGB’ was not declared in this scope
             cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
                                                          ^
opencv_example.cpp:197:69: error: ‘cvRectangle’ was not declared in this scope
             cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
                                                                     ^
opencv_example.cpp:201:57: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
             p_sys->event_info.p_region[i].p_description = "Face Detected";
Comment 1 Toralf Förster gentoo-dev 2015-07-21 16:55:02 UTC
confirmed :

libtool: link: ( cd ".libs" && rm -f "libfreeze_plugin.la" && ln -s "../libfreeze_plugin.la" "libfreeze_plugin.la" )
../../doltlibtool  --tag=CXX   --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../..  -DMODULE_STRING=\"$(p="libopencv_example_plugin_la-opencv_example.lo"; p="${p##*/}"; p="${p#lib}"; p="${p%_plugin*}"; p="${p%.lo}"; echo "$p")\" -D__PLUGIN__   	-DMODULE_NAME_IS_opencv_example -I../../include -I../../include    -march=native -O2 -pipe -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -fvisibility=hidden -c -o libopencv_example_plugin_la-opencv_example.lo `test -f 'opencv_example.cpp' || echo './'`opencv_example.cpp
opencv_example.cpp: In function ‘picture_t* Filter(filter_t*, picture_t*)’:
opencv_example.cpp:197:58: error: ‘CV_RGB’ was not declared in this scope
             cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
                                                          ^
opencv_example.cpp:197:69: error: ‘cvRectangle’ was not declared in this scope
             cvRectangle( p_img[0], pt1, pt2, CV_RGB(0,0,0), 3, 8, 0 );
                                                                     ^
opencv_example.cpp:201:57: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
             p_sys->event_info.p_region[i].p_description = "Face Detected";
                                                         ^
Makefile:3058: recipe for target 'libopencv_example_plugin_la-opencv_example.lo' failed
make[5]: *** [libopencv_example_plugin_la-opencv_example.lo] Error 1
make[5]: Leaving directory '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1/modules/video_filter'
Makefile:2043: recipe for target 'all' failed
make[4]: *** [all] Error 2
make[4]: Leaving directory '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1/modules/video_filter'
Makefile:9653: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1/modules'
Makefile:4527: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1/modules'
Makefile:2262: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1'
Makefile:2147: recipe for target 'all' failed
make: *** [all] Error 2
 * ERROR: media-video/vlc-2.2.1::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=media-video/vlc-2.2.1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=media-video/vlc-2.2.1::gentoo'`.
 * The complete build log is located at '/var/log/portage/media-video:vlc-2.2.1:20150721-143945.log'.
 * For convenience, a symlink to the build log is located at '/var/tmp/portage/media-video/vlc-2.2.1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-video/vlc-2.2.1/temp/environment'.
 * Working directory: '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1'
 * S: '/var/tmp/portage/media-video/vlc-2.2.1/work/vlc-2.2.1'

  -----------------------------------------------------------------

  This is an unstable amd64 chroot image (named amd64-kde-unstable_20150716-153903) at a hardened host acting as a tinderbox.

Portage 2.2.20 (python 2.7.10-final-0, default/linux/amd64/13.0/desktop/kde, gcc-4.9.3, glibc-2.21-r1, 4.0.8-hardened x86_64)
=================================================================
System uname: Linux-4.0.8-hardened-x86_64-Intel-R-_Core-TM-_i7-3770_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    16164692 total,   1208248 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Tue, 21 Jul 2015 13:45:01 +0000
sh bash 4.3_p39
ld GNU ld (Gentoo 2.25 p1.2) 2.25
app-shells/bash:          4.3_p39::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.22.0::gentoo
dev-lang/python:          2.7.10::gentoo, 3.3.5-r1::gentoo
dev-util/cmake:           3.2.3::gentoo
dev-util/pkgconfig:       0.28-r3::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.17::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r1::gentoo
sys-devel/automake:       1.9.6-r4::gentoo, 1.10.3-r1::gentoo, 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25-r1::gentoo
sys-devel/gcc:            4.8.4::gentoo, 4.9.3::gentoo
sys-devel/gcc-config:     1.8::gentoo
sys-devel/libtool:        2.4.6-r1::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.21-r1::gentoo
Repositories:

local
    location: /usr/local/portage
    masters: gentoo

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: 9999

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/tomoyo/conf /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.2/conf /var/lib/hsqldb /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/games/angband/edit/ /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/tmp/distfiles"
EMERGE_DEFAULT_OPTS="  --accept-properties=-interactive --accept-restrict=-fetch  --nospinner --tree --quiet-build"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync network-sandbox news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo rsync://mirror.netcologne.de/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gor.bytemark.co.uk/gentoo/ rsync://ftp.snt.utwente.nl/gentoo"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi aes-ni alsa amd64 apache2 avx avx2 berkdb bluetooth branding btrfs bzip2 cairo cdda cdr cgi cli consolekit corefonts cracklib crypt cups curl cxx dbus declarative designer dnssec dot dri drmkms dts dvd dvdr ecc emboss encode exif extraengine fam ffmpeg firefox flac fortran fpm gd gdbm gif glamor gpm gtk gudev gui iconv icu imap inifile introspection jadetex kde kipi kvm lapack lcms libkms libnotify libvirtd logrotate mad mbox minizip mmx mmxext mng modules mp3 mp4 mpeg multilib mysql ncurses nls nptl ogg opencv opengl openmp openssl pam pango pax_kernel pcre pcre16 pdf pdo phonon pkcs11 plasma png policykit ppds pulseaudio python qml qt3support qt4 qt5 readline scrpyt session smartcard sockets spell spice sse sse2 sse4 sse4_1 sse4_2 ssl ssse3 startup-notification svg tcl tcpd theora threads tiff tk tls truetype udev udisks uml unicode upower usb usbredir uxa vorbis widgets wxwidgets x264 xcb xcomposite xinerama xkb xml xmp xslt xv xvfb xvid xvmc zenmap zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea nt rip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 2 Toralf Förster gentoo-dev 2015-07-21 17:19:03 UTC
and it seems that even this helps :

tinderbox@tor-relay ~ $ cat amd64-kde-unstable_20150716-153903/etc/portage/package.use/vlc
media-video/vlc -qt5 qt4 -opencvy
media-libs/phonon-vlc qt5 qt4 -opencv
tinderbox@tor-relay ~ $


:-(
Comment 3 Toralf Förster gentoo-dev 2015-07-21 17:19:36 UTC
(In reply to Toralf Förster from comment #2)
> and it seems that even this helps :
*not* helps
Comment 4 Nick Andrade 2015-07-21 19:10:43 UTC
Thanks for reporting this bug; I'll take a look on it tonight after work.  I've been having trouble getting opencv-3.0 to build, but I should be able to work through that.

Toralf, I think you have a typo (extra y) in your package.use that's preventing opencv USE flag from being disabled.
Comment 5 Nick Andrade 2015-07-21 21:53:01 UTC
I haven't written the proper patch yet, but I have tested the fix and it works.  

Basically with opencv 3.0 the CV_RGB function has been replaced with cvScalar.  Additionally the cvRectangle is now declared in opencv2/imgproc/imgproc_c.h.  So the fix is simply to update opencv_example.cpp with that header file and replace CV_RGB with cvScalar.  On a side note, the order of parameters for cvScalar is the reverse of CV_RGB however since we're just passing 0 to all three parameters in both cases, it doesn't matter for VLC.

I don't see this bug upstream yet, so I'll submit it there as well once I write a patch that detects opencv version and does the right thing.

On a side note, I could only get opencv-3.0 to build with USE="-python" and eselect python set to python 2.7.  Python 3.3 & 3.4 were throwing TypeError: unorderable types on the gen_java.py.  I'll try to fix that later although I'm not much of a python person (it's too strict for my taste).
Comment 6 Nick Andrade 2015-07-21 22:16:05 UTC
Actually, upon closer inspection, it looks like CV_RGB isn't deprecated, rather it's just moved to opencv2/imgproc/imgproc_c.h so just adding that header is all that is necessary.  Anyways, will work on a proper patch later and also backtest 2.1.5.
Comment 7 Nick Andrade 2015-07-21 22:50:02 UTC
Upstream bug: https://trac.videolan.org/vlc/ticket/15094
Comment 8 Nick Andrade 2015-07-22 04:27:39 UTC
Created attachment 407364 [details, diff]
opencv-3.0.0.patch

Patch to add headers for the location of CV_RGB & cvRectangle based on upstream commit (http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b82416d7000a993b33e903095a590fe32212a85e).  Works on both 2.1.5-r1 & 2.2.1 with both OpenCV-2.4.10 & 3.0.0.
Comment 9 Ian Delaney (RETIRED) gentoo-dev 2015-07-29 09:55:05 UTC
  29 Jul 2015; Ian Delaney <idella4@gentoo.org> +files/opencv-3.0.0.patch,
  vlc-2.1.5-r1.ebuild, vlc-2.2.1.ebuild:
  patch to address missed header file in opencv, patch from upstream instigated
  by maintainer submitted via bug #554562