Bug 84

Summary: SELinux preventing DiVX/WMA formats from playing in vlc-0.9.6-1.fc10
Product: Fedora Reporter: Christopher D. Stover <quantumburnz>
Component: vlcAssignee: Nicolas Chauvet <kwizart>
Status: RESOLVED FIXED    
Severity: normal CC: fedora.jrg01
Priority: P5    
Version: 14   
Hardware: All   
OS: GNU/Linux   
URL: http://fpaste.org/paste/7900
namespace:
Bug Depends on: 131    
Bug Blocks:    

Description Christopher D. Stover 2008-10-21 17:31:16 CEST
For some reason, when I try to play DIVX/WMA videos in VLC, they're no longer working.  I'm getting errors like the following.  These videos used to play.  I have the gstreamer-good/bad/ugly all installed.  I think they stopped working with the update to vlc-0.9.4.

main warning: can't store message (Invalid or incomplete multibyte or wide character): found Chunk fourcc:042b8dbe (
[00000565] main decoder error: no suitable decoder module for fourcc `DIV3'.
VLC probably does not support this sound or video format.
[00000607] main decoder error: no suitable decoder module for fourcc `wma2'.
VLC probably does not support this sound or video format.
[00000608] main decoder error: no suitable decoder module for fourcc `WMV3'.
VLC probably does not support this sound or video format.
main warning: can't store message (Invalid or incomplete multibyte or wide character): found Chunk fourcc:0586f338 (
[00000648] main decoder error: no suitable decoder module for fourcc `DIV3'.
VLC probably does not support this sound or video format.
[00000661] main decoder error: no suitable decoder module for fourcc `DIV3'.
VLC probably does not support this sound or video format.
[00000674] main decoder error: no suitable decoder module for fourcc `DIV3'.
VLC probably does not support this sound or video format.
Comment 1 Nicolas Chauvet 2008-10-21 17:40:49 CEST
There is known selinux denials that are currently investigated.
some are related to the vlc package, some other to the ffmpeg library.
That's been said I wonder why gstreamer could get them to works. 

One possible reason is that you have disabled selinux (and set it in permissive)
and don't have reset the cache plugin for vlc, doing:
rm ~/.vlc/cache/*
and give a retry with selinux in permissive.

Comment 2 Christopher D. Stover 2008-10-21 20:25:59 CEST
You hit the nail on the head Nicolas.  As soon as I change the Current Enforcement Mode to Permissive, everything works.  Gstreamer actually wouldn't play them either.  I mentioned the good/bad/ugly codecs but I suppose that was irrelevant since vlc doesn't use them.

Is there a bug for this somewhere?  Do you know where it's being investigated?  Since SELinux is affecting gstreamer, I'd think this may be an issue upstream with Fedora?  Thanks for the help.
Comment 3 Nicolas Chauvet 2008-10-28 17:05:07 CET
This bug should be fixed with vlc-0.9.5
Everything else live in vlc dependency.
Comment 4 Christopher D. Stover 2008-10-28 19:16:22 CET
(In reply to comment #3)
> This bug should be fixed with vlc-0.9.5
> Everything else live in vlc dependency.

Yes, the videos play without any trouble now, thanks!
Comment 5 Christopher D. Stover 2008-11-16 22:11:02 CET
Hi Nicolas,
I'm still having problems with VLC and SELinux and I just wanted to add some more information to this bug.  I'm now using vlc-0.9.6-1.fc10.  When I first started vlc using -vvvv, I got the following:

[00000001] main libvlc warning: cannot load module `/usr/lib/vlc/codec/libavcodec_plugin.so' (/usr/lib/sse2/libx264.so.61: cannot restore segment prot after reloc: Permission denied).

There were a few other modules listed along with this one but I'm unable to reproduce the output again after someone in #fedora-selinux suggested I run
semanage fcontext -a -t textrel_shlib_t /usr/lib/sse2/libx264.so.61
semanage fcontext -a -t textrel_shlib_t /usr/lib/sse2/libswscale.so.0.6.1
semanage fcontext -a -t textrel_shlib_t /usr/lib/sse2/libpostproc.so.51.2.0

***Here's some output from dmesg which may help identify the modules***
type=1400 audit(1226860329.782:1219): avc:  denied  { execmod } for  pid=28714 comm="vlc" path="/usr/lib/sse2/libpostproc.so.51.2.0" dev=sda5 ino=93037 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860329.785:1220): avc:  denied  { execmod } for  pid=28714 comm="vlc" path="/usr/lib/sse2/libswscale.so.0.6.1" dev=sda5 ino=93092 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860353.319:1221): avc:  denied  { execmod } for  pid=28729 comm="vlc" path="/usr/lib/sse2/libx264.so.61" dev=sda5 ino=635133 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860353.452:1222): avc:  denied  { execmod } for  pid=28729 comm="vlc" path="/usr/lib/sse2/libx264.so.61" dev=sda5 ino=635133 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860353.529:1223): avc:  denied  { execmod } for  pid=28729 comm="vlc" path="/usr/lib/sse2/libx264.so.61" dev=sda5 ino=635133 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860353.540:1224): avc:  denied  { execmod } for  pid=28729 comm="vlc" path="/usr/lib/sse2/libpostproc.so.51.2.0" dev=sda5 ino=93037 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1400 audit(1226860353.545:1225): avc:  denied  { execmod } for  pid=28729 comm="vlc" path="/usr/lib/sse2/libswscale.so.0.6.1" dev=sda5 ino=93092 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
type=1404 audit(1226860444.170:1226): enforcing=0 old_enforcing=1 auid=500 ses=1
type=1400 audit(1226860451.405:1227): avc:  denied  { execmod } for  pid=28770 comm="vlc" path="/usr/lib/sse2/libx264.so.61" dev=sda5 ino=635133 scontext=unconfined_u:unconfined_r:unconfined_execmem_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file
vlc[28770]: segfault at 40 ip 00c2a504 sp bfae1d10 error 4 in libselinux.so.1[c18000+1a000]

***I get this when trying to play some movies and it just keeps looping this output***
[00000716] dmo decoder debug: failed loading 'wma9dmod.dll'
[00000716] dmo decoder error: DecOpen failed
Win32 LoadLibrary failed to load: wmv9dmod.dll, /wmv9dmod.dll, /usr/lib/win32/wmv9dmod.dll, /usr/local/lib/win32/wmv9dmod.dll, /usr/lib/codecs/wmv9dmod.dll, /usr/local/lib/codecs/wmv9dmod.dll
[00000717] dmo decoder debug: failed loading 'wmv9dmod.dll'
Comment 6 Nicolas Chauvet 2008-11-16 22:36:09 CET
Where is located the wma9dmod.dll file on thus system ?

As you may have noticed, theses libraries doesn't belong to the vlc package itself
unfortunately the ffmepg and x264 maintainer doesn't have updated the report i've made.
https://bugzilla.rpmfusion.org/show_bug.cgi?id=61
Comment 7 Christopher D. Stover 2008-11-17 00:19:17 CET
(In reply to comment #6)
> Where is located the wma9dmod.dll file on thus system ?

I tried 'locate wma9dmod.dll' and 'find / -name wma* 2>/dev/null' but I didn't find that dll.  However, I did confirm that vlc is able to play the .wmv file when SELinux is permissive.

> As you may have noticed, theses libraries doesn't belong to the vlc package
> itself unfortunately the ffmepg and x264 maintainer doesn't have updated the
> report i've made. https://bugzilla.rpmfusion.org/show_bug.cgi?id=61

Yes, I looked at the bug you reported and it's a shame...  I hope something can be done to resolve the issue with ffmpeg/x264.  I wish I could help but I wouldn't have the foggiest of where to start.  I'd be reading for weeks to learn how that stuff works. ;)  Thanks for your help with all this and let me know if there's anything I can do to help.
Comment 8 Nicolas Chauvet 2008-11-18 23:47:55 CET
Any news from the x264 update from today ?
(or from another installation if you fixed the problem yourself)
Comment 9 Nicolas Chauvet 2008-11-30 01:58:38 CET
This bug depend on #131 from (ffmpeg package) and affect vlc.
Comment 10 Christopher D. Stover 2008-12-02 17:04:15 CET
Sorry I haven't added anything to this in a while.  I was away for Thanksgiving last week.  I'm upgraded to the newest Rawhide and I can't install VLC again. :(  I'm getting this:

Resolving Dependencies
--> Running transaction check
---> Package vlc.i386 0:0.9.6-1.fc10 set to be updated
--> Processing Dependency: dejavu-fonts for package: vlc
--> Finished Dependency Resolution
vlc-0.9.6-1.fc10.i386 from rpmfusion-free-rawhide has depsolving problems
  --> Missing Dependency: dejavu-fonts is needed by package vlc-0.9.6-1.fc10.i386 (rpmfusion-free-rawhide)
Error: Missing Dependency: dejavu-fonts is needed by package vlc-0.9.6-1.fc10.i386 (rpmfusion-free-rawhide)

I'm guessing this may have something to do with the issue (taken from Koji build notes):
* Sun Nov 09 2008 Nicolas Mailhot <nicolas.mailhot at laposte.net>
- 2.26-6
⧎ Package split reorganisation, following font family lines
ⵞ Create compat packages to ease switchover at F11 time (to be discontinued
  for F12)
⬳ compress status file
Comment 11 Nicolas Chauvet 2008-12-02 17:14:05 CET
This problem was reported as https://bugzilla.rpmfusion.org/show_bug.cgi?id=201
I will fix it asap.

Now for the Selinux context. I still think the problem appears with a new install. on i686 (sse2 eligible CPU).
For some reason, the selinux context doesn't apply.
Comment 12 John Griffiths 2008-12-03 17:54:42 CET
I am able to use VLC, vlc-0.9.6-1.fc10.i386, in current Fedora 10 with selinux enforcing.


libselinux-2.0.73-1.fc10.i386
libselinux-utils-2.0.73-1.fc10.i386
selinux-policy-targeted-3.5.13-26.fc10.noarch
selinux-policy-3.5.13-26.fc10.noarch

Have you tried touch  /.autorelabel rebooting?
Comment 13 Nicolas Chauvet 2008-12-03 18:00:06 CET
that's stange, maybe you should turn as permissive selinux for cinelerra-cv also, since there is a known selinux denial with the internal libmpeg3 shared library. 
Comment 14 John Griffiths 2008-12-03 18:11:44 CET
selinux is not reporting any denials when I run cinelerra-cv.