Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 490844 - app-emulation/wine can't be installed bacause app-emulation/emul-linux-x86-medialibs has 'non-deactivatable' non-free 'MPEG-4' license code
Summary: app-emulation/wine can't be installed bacause app-emulation/emul-linux-x86-me...
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-09 12:14 UTC by Andrey Aleksandrovich
Modified: 2014-02-05 13:28 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Aleksandrovich 2013-11-09 12:14:27 UTC
I want to use only '@FREE' license soft. The app-emulation/wine is licensed under 'LGPL', but it requires 'app-emulation/emul-linux-x86-medialibs' as dependence, which is 'MPEG-4' licensed.

localhost # emerge -pv wine

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ~] app-emulation/emul-linux-x86-baselibs-20131008-r3  USE="development" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-db-20131008  USE="development" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-opengl-20131008  USE="development" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-xlibs-20131008  USE="(development) opengl" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-gtklibs-20131008-r1  USE="development" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-medialibs-20131008-r1  USE="development" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-soundlibs-20131008-r1  USE="alsa development" ABI_X86="-32" 0 kB
[ebuild  N    ~] app-emulation/emul-linux-x86-gstplugins-20131008  USE="development" 0 kB
[ebuild  N    ~] app-emulation/wine-1.7.0  USE="X alsa cups dos fontconfig gecko gstreamer jpeg lcms ldap mono mp3 ncurses nls 
opengl perl png prelink run-exes ssl threads truetype udisks xcomposite xinerama xml -capi -custom-cflags -gphoto2 -gsm -odbc 
-openal -opencl -osmesa -oss -pulseaudio -samba -scanner (-selinux) {-test} -v4l" ABI_X86="32 64 (-x32)" LINGUAS="en_US ru uk 
-ar -bg -ca -cs -da -de -el -en -eo -es -fa -fi -fr -he -hi -hr -hu -it -ja -ko -lt -ml -nb_NO -nl -or -pa -pl -pt_BR -pt_PT 
-rm -ro -sk -sl -sr_RS@cyrillic -sr_RS@latin -sv -te -th -tr -wa -zh_CN -zh_TW" 20,768 kB

Total: 9 packages (9 new), Size of downloads: 20,768 kB

The following license changes are necessary to proceed:
 (see "package.license" in the portage(5) man page for more details)
# required by app-emulation/emul-linux-x86-soundlibs-20131008-r1
# required by app-emulation/emul-linux-x86-gstplugins-20131008
# required by app-emulation/wine-1.7.0[abi_x86_32,gstreamer]
# required by wine (argument)
>=app-emulation/emul-linux-x86-medialibs-20131008-r1 MPEG-4
localhost # 


So, what's the sense of LGPL'ed app-emulation/wine, while it requires non-free package for installation (on amd64 arch)?
Comment 1 eroen 2013-11-10 01:40:42 UTC
wine on x86 and on amd64 without ABI_X86=32 does not require emul-linux-x86-* packages, and is not affected by their redistribution terms.

wine's dependency on emul-linux-x86-medialibs is also optional on amd64 with ABI_X86=32. If you disable the use flags (gphoto2 openal gstreamer alsa gsm mp3 scanner v4l pulseaudio), wine-1.7.0 should install without requiring the package.


The emul-linux-x86-* packages are currently being phased out in favour of natively built multilib, controlled with the ABI_X86 use expand. The work on this is ongoing, and not all of wine's dependencies are available with native multilib yet, so wine currently does depend on the emul-linux-x86-* packages.

With ABI_X86=32 set, emul-linux-x86-medialibs-20131008-r1 does not declare itself as falling under the MPEG-4 license, but for compatibility reasons it depends on media-libs/faac which does.

As the libraries wine uses are available with native multilib, more of the optional features should be available without requiring emul-linux-x86-medialibs. Currently, from the list mentioned above, the (openal alsa gsm mp3 v4l) use flags can be enabled with native multilib.
Comment 2 Andrey Aleksandrovich 2013-11-10 07:21:53 UTC
(In reply to eroen from comment #1)
> As the libraries wine uses are available with native multilib, more of the
> optional features should be available without requiring
> emul-linux-x86-medialibs. Currently, from the list mentioned above, the
> (openal alsa gsm mp3 v4l) use flags can be enabled with native multilib.

No, with alsa and mp3 it doesn't. However, USE="-alsa -gstreamer -mp3 oss" is working.
Sorry for false alarm.
Comment 3 Andrey Aleksandrovich 2013-11-10 12:55:39 UTC
And yet, I don't understand why I should disable alsa (LGPL project), gstreamer (LGPL-2+ project), ...etc USE flags in wine (LGPL project) to solve the license problem with it's binary (app-emulation/emul-linux-x86-medialibs) dependency...
The only non-free code here is the 'aac' ('MPEG-4' license), but it [aac] is mentioned nowhere in ebuilds.

I doubt very much that concretely 'aac' code affects the efficiency of the alsa, or gstreamer, or openal... for using them with wine. So the wine is not the issue. The app-emulation/emul-linux-x86-medialibs should be modified. There must be at least USE flag (aac?) that would enable media-libs/faac(?) support.

Why there's no such USE?
Comment 4 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-11-10 23:10:58 UTC
(In reply to Andrey Aleksandrovich from comment #0)
> So, what's the sense of LGPL'ed app-emulation/wine, while it requires
> non-free package for installation (on amd64 arch)?

Packages do not list the licenses of their dependencies.

(In reply to Andrey Aleksandrovich from comment #3)
> Why there's no such USE?

Because it is a binary package.

I suggest you to file a bug to ask for a multilib variant instead. Feel free to link the people there to this bug so they can better understand which particular multilib packages you need added to the Portage tree.
Comment 5 Andrey Aleksandrovich 2013-11-11 11:33:03 UTC
(In reply to Tom Wijsman (TomWij) from comment #4)
> (In reply to Andrey Aleksandrovich from comment #3)
> > Why there's no such USE?
> 
> Because it is a binary package.
> 
> I suggest you to file a bug to ask for a multilib variant instead. Feel free
> to link the people there to this bug so they can better understand which
> particular multilib packages you need added to the Portage tree.

It's clearly simple. The app-emulation/emul-linux-x86-medialibs must be divided on two.
For example, app-emulation/emul-linux-x86-medialibs - base code (@FREE license), which has 'mpeg4' USE flag. If USE='mpeg4' the additional dependency app-emulation/emul-linux-x86-mpeg4, which contains non-free code ('MPEG-4' license), is added.
Comment 6 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-02-02 00:23:26 UTC
It is binary; I suggest you to switch to the multilib variant, which is split.
Comment 7 Andrey Aleksandrovich 2014-02-02 07:50:26 UTC
(In reply to Tom Wijsman (TomWij) from comment #6)
> It is binary; I suggest you to switch to the multilib variant, which is
> split.

What do you mean? Change whole system from x86_64 to x86?
Comment 8 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-02-02 14:19:26 UTC
(In reply to Andrey Aleksandrovich from comment #7)
> (In reply to Tom Wijsman (TomWij) from comment #6)
> > It is binary; I suggest you to switch to the multilib variant, which is
> > split.
> 
> What do you mean? Change whole system from x86_64 to x86?

Rather to x86_64 + x86 (multilib); but besides that, x86 would be an option too.
Comment 9 Andrey Aleksandrovich 2014-02-03 16:32:45 UTC
(In reply to Tom Wijsman (TomWij) from comment #8)
> (In reply to Andrey Aleksandrovich from comment #7)
> > (In reply to Tom Wijsman (TomWij) from comment #6)
> > > It is binary; I suggest you to switch to the multilib variant, which is
> > > split.
> > 
> > What do you mean? Change whole system from x86_64 to x86?
> 
> Rather to x86_64 + x86 (multilib); but besides that, x86 would be an option
> too.

Oh, but I already have it (multilib), and it still requires 'MPEG-4' license with app-emulation/wine's USE="alsa".
Or, as mentioned in comment 1:
> With ABI_X86=32 set, emul-linux-x86-medialibs-20131008-r1 does not declare
> itself as falling under the MPEG-4 license, but for compatibility reasons
> it depends on media-libs/faac which does.
So, this is the same.
Comment 10 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-02-03 23:45:18 UTC
(In reply to Andrey Aleksandrovich from comment #9)
> (In reply to Tom Wijsman (TomWij) from comment #8)
> > (In reply to Andrey Aleksandrovich from comment #7)
> > > (In reply to Tom Wijsman (TomWij) from comment #6)
> > > > It is binary; I suggest you to switch to the multilib variant, which is
> > > > split.
> > > 
> > > What do you mean? Change whole system from x86_64 to x86?
> > 
> > Rather to x86_64 + x86 (multilib); but besides that, x86 would be an option
> > too.
> 
> Oh, but I already have it (multilib), and it still requires 'MPEG-4' license
> with app-emulation/wine's USE="alsa".
> Or, as mentioned in comment 1:
> > With ABI_X86=32 set, emul-linux-x86-medialibs-20131008-r1 does not declare
> > itself as falling under the MPEG-4 license, but for compatibility reasons
> > it depends on media-libs/faac which does.
> So, this is the same.

It is different, emul-linux-x86-* only has x86; whereas I mentioned x86_64 + x86.

See the table: https://wiki.gentoo.org/wiki/Multilib

Thus I'm talking about the multilib versions of the ebuilds in the packages themselves, which use that ABI_X86 USE_EXPAND flag; not about emul-linux-x86-*.
Comment 11 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-02-03 23:59:15 UTC
Let me be more explicit to make it clear:

app-emulation/wine does not need faac, it is not part of its NATIVE_DEPEND; if it doesn't need faac on amd64, it is not needed on x86 either as that would be odd.

So, the only way for faac to come in is when the emul-linux-x86 approach pulls it in (app-emulation/wine sometimes doesn't explicitly list the alternative; furthermore, it still prefers emul-linux-x86 above the other approach); but that doesn't imply that app-emulation/wine actually needs it.

The solution here is to use ABI_X86=32, which you have set; as well as to on top of that make sure that media-libs/faac can't be installed, you can use /etc/portage/package.provided for this purpose. Adding a specific version of media-libs/faac there will satisfy the dependency, but not actually install the package; you might be required to still accept the license on media-libs/faac alone, however knowing that it won't get installed that won't be a problem.

And thus, by using the split multilib approach; you can filter by what you need.
Comment 12 Andrey Aleksandrovich 2014-02-04 21:39:59 UTC
I guess, I understood you.
Look, that is 'emerge --pretend': http://bpaste.net/show/175495/
I have learned 'app-emulation/emul-linux-x86-medialibs' ebuild and find out that 'MPEG-4' license key depends on 'abi_x86_32'. But in my case (see link above) it's hard-masked for 'app-emulation/emul-linux-x86-medialibs' (it's in brackets).
So, what's my actions?
Comment 13 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2014-02-05 05:26:43 UTC
Ah, as I run testing (~amd64) as opposed to stable (amd64) my experience here is different; looking further into this I find:

    /usr/portage/profiles/hardened/linux/amd64/package.use.stable.mask:

    # Michał Górny <mgorny@gentoo.org> (24 Sep 2013)
    # on behalf of gx86-multilib project <multilib@gentoo.org>
    # Mask abi_x86_32 on stable until emul-* packages are made
    # fully redundant and end-user experience in resolving
    # flag changes and blockages is generally smooth.
    # Please keep in sync with default/linux/amd64/13.0.
    ...
    app-emulation/emul-linux-x86-medialibs abi_x86_32
    ...

So, this is why your experience is different, they mask that USE flag on stable.

To unmask it, You can create /etc/portage/profile/package.use.mask and add:

    app-emulation/emul-linux-x86-medialibs -abi_x86_32

You'll probably need to do the same for the rest of the split libraries needed.

As I haven't tried this myself; that experience might be scary, so, good luck.
Comment 14 Andrey Aleksandrovich 2014-02-05 13:28:22 UTC
Ok, I did that, but now I have this http://bpaste.net/show/175738/