Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 361263

Summary: media-video/vlc has undefined symbol: NPP_Initialize on /usr/lib64/nsbrowser/plugins/libvlcplugin.so
Product: Gentoo Linux Reporter: Justin Lecher (RETIRED) <jlec>
Component: Current packagesAssignee: Alexis Ballier <aballier>
Status: RESOLVED FIXED    
Severity: normal CC: bbutscheidt, evan.teran, gentoo, mike, mozilla, rh1, shiningarcanine, tobias.pal, voyageur
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: patch for the plugin

Description Justin Lecher (RETIRED) gentoo-dev 2011-03-30 10:27:00 UTC
When trying to watch

http://llvm.org/devmtg/2009-10/Sands_LLVMGCCPlugin-700kbps.mov

I get

$ /usr/lib64/chromium-browser/chrome --type=plugin --plugin-path=/usr/lib64/nsbrowser/plugins/libvlcplugin.so --lang=en-GB --plugin-data-dir=/home/justin/.config/chromium/Default --channel=25698.0x3d1e200.1097419950: symbol lookup error: /usr/lib64/nsbrowser/plugins/libvlcplugin.so: undefined symbol: NPP_Initialize



$ einfo media-video/vlc
Portage 2.2.0_alpha29 (default/linux/amd64/10.0, gcc-4.5.2, glibc-2.13-r2, 2.6.38-lh-r1 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.38-lh-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_860_@_2.80GHz-with-gentoo-2.0.2
Timestamp of tree: Wed, 30 Mar 2011 07:30:01 +0000
ccache version 3.1.4 [enabled]
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.6.6-r2, 2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1::last-hope
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
Repositories: gentoo sunrise dummy science last-hope g-ctan
Installed sets: 
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -frecord-gcc-switches -g -Wimplicit-function-declaration"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/nano/ /usr/share/openvpn/easy-rsa /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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="-O2 -pipe -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -frecord-gcc-switches -g -Wenum-compare"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="-t --jobs=12 --load-average=12 --keep-going"
FEATURES="assume-digests binpkg-logs buildsyspkg ccache collision-protect distlocks fixlafiles fixpackages metadata-transfer multilib-strict news noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms sign split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -frecord-gcc-switches -g"
GENTOO_MIRRORS=" http://gentoo.j-schmitz.net/mirror/ ftp://ftp.gentoo.mesh-solutions.com/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common"
LINGUAS="en"
MAKEOPTS="-j12 -l12"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-z -v"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/data/local/sunrise/reviewed /data/local/dummy /data/local/sci /data/local/lh/ebuilds /data/local/g-ctan"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="64bit 7zip X acpi additions alsa amd64 arpwarp atlas bash-completion berkdb blas branding bzip2 c++ cairo caps cblas ccache cleartype cli command-args consolekit corefonts cracklib cups cupsddk custom-optimization cxx dbus dri dts exif fbcondecor fortran gdbm gif glibc-omitfp gmp gnome gnome-keyring gpm graphics gstreamer gtk hddtemp iconv icu ios ipod javascript jpeg kqemu lapack largefile lcms ldap libnotify libsexy lm_sensors lzma mailtrain md5sum mmx mng modules mp3 mudflap multilib multiuser nagios-dns nagios-ntp nagios-ping nagios-ssh nano-syntax ncurses network-cron nis nls nptl nptlonly nsplugin objc objc++ opengl openmp openntpd pam pcre pdf perl png policykit pppd pymol python qt-static qt3support readline rrdcgi rrdtool science sensord session smp sqlite sqlite3 sse sse2 ssl startup-notification svg sysfs system-sqlite tcpd threads tiff truetype type1 udev unicode x264 xcb xcomposite xinerama xorg xulrunner zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="plymouth" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

media-video/vlc-1.1.8 was built with the following:
USE="X a52 aac alsa cdda cddb dbus dvd fbcon ffmpeg flac gcrypt gnome httpd libnotify mmx mp3 mpeg (multilib) ncurses nsplugin ogg opengl png qt4 rtsp sdl sqlite sse stream svg theora truetype udev v4l v4l2 vorbis x264 xcb xml xv -aalib (-altivec) -atmo -avahi -bidi -dc1394 -debug -dirac -directfb -dts -dvb -fluidsynth -fontconfig -ggi -gme -gnutls -id3tag -ieee1394 -jack -kate -kde -libass -libcaca -libproxy -libtiger -libv4l -libv4l2 -lirc -live -lua -matroska -modplug -mtp -musepack -optimisememory -oss -projectm -pulseaudio -pvr -remoteosd -run-as-root -samba -schroedinger -sdl-image -shine -shout -skins -speex (-svga) -taglib -twolame -upnp -vaapi -vcdx -vlm (-win32codecs) -wma-fixed -xosd -zvbi"
Comment 1 Rafał Mużyło 2011-03-30 12:30:49 UTC
Well, it's a xulrunner 2.0 problem, obviously.

A quick google suggests, that those two functions can be simply removed.
Comment 2 Rafał Mużyło 2011-03-30 12:31:41 UTC
By two, I mean NPP_Shutdown and NPP_Initialize.
Comment 3 Rafał Mużyło 2011-04-10 18:39:39 UTC
I think I see the real problem with this bug: mozilla plugin is only in vlc-1.1 branch, not in the to-be-1.2.
Comment 4 Rafał Mużyło 2011-04-10 18:51:32 UTC
Correction: the code was separated a few months back to http://git.videolan.org/?p=npapi-vlc.git but there were no significant moves since then.
Comment 5 Rafał Mużyło 2011-04-14 11:32:51 UTC
I don't see any fixes for this problem in 1.1.9.
It's probably still broken.
A little surprising, as a couple of mime fixes for the plugin did get in.
Comment 6 Rafał Mużyło 2011-04-14 16:02:04 UTC
Created attachment 269963 [details, diff]
patch for the plugin

Could somebody test the following patch ?
Obviously needs to be combined with
mv projects/mozilla/support/npunix.c{,pp}

Changes, as you may tell, are trivial, especially that in npmac.cpp Private_SetValue already has such signature.
Comment 7 Orivej Desh 2011-05-09 21:26:25 UTC
Yes, this fixes the problem, thanks.
Comment 8 Paul Tobias 2011-05-14 18:20:59 UTC
Yes, Rafał's patch fixes the problem for me too.
Comment 9 Richard 2011-05-20 16:43:11 UTC
This also affects Google Chromium:

/usr/lib64/chromium-browser/chrome --type=plugin --plugin-path=/usr/lib64/nsbrowser/plugins/libvlcplugin.so --lang=en-US --plugin-data-dir=/home/richard/.config/chromium/Default --channel=31056.0x5f20200.55425446: symbol lookup error: /usr/lib64/nsbrowser/plugins/libvlcplugin.so: undefined symbol: NPP_Initialize

Patching browsers to resolve this seems to be like playing whack a mole to me. It might be better to implement stubs for these functions in the plugin itself.
Comment 10 Richard 2011-05-20 16:55:14 UTC
Please disregard my previous message. I misread the patch as being one for Firefox. It is now clear to me that it is a patch for VLC. I will test it later.
Comment 11 Alexis Ballier gentoo-dev 2011-06-22 12:41:13 UTC
this should be fixed in 1.1.10, please reopen if not