Slashdot Mirror


MPlayer Licence Trouble With A Twist

protonman writes "A hefty flame war has broken loose on the debian-devel mailinglist about (amongst other things) the legality of mplayer. The interesting part in this conflict is that unlike in previous alledged GPL violations, the culprit is not the unwillingness to provide the source, but the prohibition of the distribution of binaries, thereby violating section 6 of the GPL: 'You may not impose any further restrictions on the recipients' exercise of the rights granted herein.' Read also the blurb on the MPlayer homepage."

5 of 455 comments (clear)

  1. There are other legal problems with MPlayer by Anonymous Coward · · Score: 5, Interesting

    I agree with Debian-legal, and have to say they are being generous by only pointing out the obvious problem with the GPL. The biggest problem with MPlayer (and the one that it's developers can't fix so easily) is that much of the code was appropriated from other projects that lack proper (or in some cases, any) licenses. I'm sure if the MPlayer people were to say that "OK, MPlayer is pure GPL" that the next question will be to what extent they even have the right to do that. It's unfortunate, but because proper attention was not paid during development, MPlayer will probably be a permanently grey-area application legally.

  2. Re:You really need to build it.... by Cid+Highwind · · Score: 5, Interesting
    Erm... let's see here

    [will@chi will] $ ldd `which gmplayer`
    libpostproc.so.0 => /usr/lib/libpostproc.so.0 (0x40014000)
    libdvdnav.so.1 => /usr/lib/libdvdnav.so.1 (0x4001d000)
    libdvdread.so.2 => /usr/lib/libdvdread.so.2 (0x40032000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x40052000)
    libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x400a2000)
    libogg.so.0 => /usr/lib/libogg.so.0 (0x400c2000)
    libdv.so.2 => /usr/lib/libdv.so.2 (0x400c6000)
    libdivxdecore.so.0 => /usr/lib/libdivxdecore.so.0 (0x400f0000)
    libpng.so.3 => /usr/lib/libpng.so.3 (0x4013c000)
    libz.so.1 => /usr/lib/libz.so.1 (0x40168000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40176000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40197000)
    libcdda_interface.so.0 => /usr/lib/libcdda_interface.so.0 (0x401e9000)
    libcdda_paranoia.so.0 => /usr/lib/libcdda_paranoia.so.0 (0x401fc000)
    libnsl.so.1 => /lib/libnsl.so.1 (0x40205000)
    libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x4021a000)
    libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x40473000)
    libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x404e1000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x404fa000)
    libm.so.6 => /lib/libm.so.6 (0x4050f000)
    libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0x40532000)
    libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0x40554000)
    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x40561000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x40595000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x405c8000)
    libdl.so.2 => /lib/libdl.so.2 (0x405cd000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x405d0000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0x4063a000)
    libXxf86dga.so.1 => /usr/X11R6/lib/libXxf86dga.so.1 (0x40687000)
    libXv.so.1 => /usr/X11R6/lib/libXv.so.1 (0x4068d000)
    libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0x40692000)
    libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40698000)
    libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x406a8000)
    libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x40788000)
    libvgagl.so.1 => /usr/lib/libvgagl.so.1 (0x407fa000)
    libvga.so.1 => /usr/lib/libvga.so.1 (0x40809000)
    libgif.so.4 => /usr/lib/libgif.so.4 (0x40876000)
    libesd.so.0 => /usr/lib/libesd.so.0 (0x4087f000)
    libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x40887000)
    libc.so.6 => /lib/libc.so.6 (0x408ab000)
    libpopt.so.0 => /usr/lib/libpopt.so.0 (0x409d9000)
    libXft.so.2 => /usr/lib/libXft.so.2 (0x409e0000)
    libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x409f4000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x409fc000)
    libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40a25000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
    libexpat.so.0 => /usr/lib/libexpat.so.0 (0x40eb7000)


    This is for MPlayer 0.90rc3-3.2.1. Note that this listing doesn't count the 74 Windows .dlls and directshow filters that MPlayer can also load. You could probably trim off some of that by building it without the GUI, and without some of the more useless video codecs, but it would still require a lot of libraries. Still, I don't even want to *think* about statically linking all of that!

    (insert some random less-compressable stuff here to defeat the lameness filter. All this thing does is piss off legitimate users. The crapflooders have all gone home, you can turn off the gzip-nazi filter now, Taco!!)
    --
    0 1 - just my two bits
  3. Re:The simple fact.. by kyz · · Score: 5, Interesting

    The problem is, it's difficult to make good MPlayer binaries

    It's difficult to make good MPlayer binaries because MPlayer is badly written. Don't you get that? If the MPlayer authors actually cared about well-written software, it would use carefully crafted, modular APIs between all the component parts. I could add Quicktime codecs to MPlayer just by copying a hypothetical mp_qtime.so into lib/mplayer/codecs. Instead, it's a sprawling mess with files all over the place and a special codecs.conf acting as a central registry. Why can't each plugin tell Mplayer what capabilities it has, like Xine or XMMS does?

    MPlayer is famous simply mostly because it got Win32 codecs to work outside Windows. Kudos to them for doing so, but distributing other people's binary codecs is usually illegal. Apple don't permit you to hack into the Sorensen codecs and get them to work outside Quicktime Player.

    How would the like MPlayer authors like mplayer to be embedded as a binary in some media player, without source? Oh yeah, they whined like kiddies when that happened.

    I happen to write decompressors for various archive formats. Do I just take DOS binaries for those formats and hack into them to run them in Linux, then say "x86 only guys!"? No, I fully reverse-engineer the originals and write new depackers from scratch. The MPlayer team should do the same, and stop relying on other people's binaries for their glory.

    --
    Does my bum look big in this?
  4. Re:The simple fact.. by pla · · Score: 5, Interesting

    This does not at all reflect the views of the MPlayer authors.

    He didn't say that the MPlayer authors don't care about licensing. He didn't say Debian doesn't care about licensing (in fact, Debian seems to insist on strict adherence to the GPL more than just about any company out there). He didn't say that most *companies* don't care about licensing issues.

    He said that most PEOPLE don't care about licenses. And, I believe that holds true.

    How many MP3s do you have for which you have no corresponding CD in your posession? How about ROMS for video games? Windows installations (even if you own one, do you run it on more than one computers)? How about 30-day shareware with no hard timeout, which "expired" about two years ago?

    People care abour convenience and functionality. If they didn't, how many people would *BUY* Debian or RedHat CDs? I can download all of that from the net, totally legally. I can download all of the documentation (or at least comparable) as well. Why would I pay for a CD? Because $20 for a 4-8 CD set saves me several days time downloading and burning the same material. OTOH, saving $80-$160 by borrowing a friend's Windows install CD and spending 20 minutes looking on-line for a valid CD key seems very much worth it. Same for MS Office.

    People pay for convenience, not because they give a damn about whether or not they legally *need* to pay. I think most people *prefer* to stay legal, given the choice with no extra cost (in time *or* money), but they won't go very far out of their way to make sure they stay legal.

    Note that I don't mean this to *encourage* piracy - Just describing how I see this issue WRT other peoples' buying/stealing habits.


    Now, to address the parent thread, I have an interesting question...

    If the MPlayer license complies with the GPL in all regards *except* allowing binary distribution, that means the authors cannot stop me from modifying and re-releasing it under GPL-or-better terms. So why hasn't Debian done exactly that? "Nope, not MPlayer, we changed int main(int argc, char **argv) to int main(int argc, char *argv[]), much more aesthetically pleasing, and released it as DPlayer under pure GPL terms"?. Seems that the GPL allows that...

  5. Talk is cheap by Kiwi · · Score: 5, Interesting
    I've reverse engineered decompression algorithms far more difficult than SVQ3's decoder.

    Talk is cheap. Show us the code.

    The devil is in the details. In other words, it is easy to say something is easy until you have done it.

    If you have reversed-engineered a significant audio or video codec, I will retract my position and be suitably impressed.

    And, yes, I do see you code at http://www.kyz.uklinux.net/packers.php3, but there isn't an audio nor video codec to be seen. It all looks like LZW variants; lossy compression (DCTs, wavelets, and what not) is a completely different kettle of fish.

    - Sam

    --

    The secret to enjoying Slashdot is to realize that it should not be taken too seriously.