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

Bug 458468

Summary: media-sound/easytag: switch from x11-libs/gtk+:2 to x11-libs/gtk+:3 and remove x11-libs/gtk+:2 support as redudant
Product: Gentoo Linux Reporter: Morse <radist.morse>
Component: Current packagesAssignee: Gentoo Sound Team <sound>
Status: RESOLVED FIXED    
Severity: enhancement CC: alexandre.guimaraes, amigadave, bunk
Priority: Normal Keywords: EBUILD, PATCH
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: easytag ebuild

Description Morse 2013-02-20 14:49:04 UTC
A slightly modified version of 2.1.8 ebuild with gtk3 use flag
Comment 1 Morse 2013-02-20 14:49:49 UTC
Created attachment 339500 [details]
easytag ebuild
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2013-02-20 15:11:34 UTC
Comment on attachment 339500 [details]
easytag ebuild

--- easytag-2.1.8.ebuild        2013-02-15 16:59:14.667946854 +0100
+++ -   2013-02-20 16:11:24.250416881 +0100
@@ -11,9 +11,10 @@
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
-IUSE="flac mp3 mp4 nls speex vorbis wavpack"
+IUSE="flac gtk3 mp3 mp4 nls speex vorbis wavpack"
 
-RDEPEND=">=x11-libs/gtk+-2.24:2
+RDEPEND="!gtk3? ( >=x11-libs/gtk+-2.24:2 )
+       gtk3? ( x11-libs/gtk+:3 )
        mp3? (
                >=media-libs/id3lib-3.8.3-r7
                media-libs/libid3tag
@@ -53,7 +54,8 @@
                $(use_enable speex) \
                $(use_enable flac) \
                $(use_enable mp4) \
-               $(use_enable wavpack)
+               $(use_enable wavpack) \
+               $(use_with gtk3)
 }
 
 pkg_postinst() { fdo-mime_desktop_database_update; }
Comment 4 Julian Ospald 2013-03-02 17:10:41 UTC
usage of "gtk3" useflag is discouraged, see the tracker bug 420493
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2013-03-02 17:41:27 UTC
sounds like we should wait for next release before enabling gtk3 for ~arch users by default
Comment 6 David King 2013-03-13 15:32:46 UTC
(In reply to comment #5)
> sounds like we should wait for next release before enabling gtk3 for ~arch
> users by default

As the upstream maintainer of EasyTAG, I agree; GTK+ 3 support is experimental at the moment. It would be fine in a -9999 ebuild or similar, but not for regular users in my opinion.
Comment 7 biohazrd 2013-06-01 19:16:46 UTC
Not sure if this is some issue with gstreamer or not but ever since upgrading to gnome 3 I have noticed that when trying to add album art to .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists and I don't see a way to update album art within the tag on the Picture tab.

Other programs like Sound Juicer are also missing menus for controlling what format things are ripped with so maybe it's a gtk+3/gstreamer thing.
Comment 8 David King 2013-06-01 20:04:55 UTC
(In reply to biohazrd from comment #7)
> when trying to add album art to
> .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists

Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used to handle MP4/AAC tagging (including images), due to a license incompatibility. TagLib is now used, and the C API does not have the ability to add images to MP4 files.

> Other programs like Sound Juicer are also missing menus for controlling what
> format things are ripped with so maybe it's a gtk+3/gstreamer thing.

That is a separate issue, in that Sound Juicer was ported to use GstEncodingProfile from GnomeMediaProfile:

https://git.gnome.org/browse/sound-juicer/commit/?id=862e7756ca714ad873afcab9b603e5ca8e59b862

There is no UI configuration widget for GstEncodingProfile in Sound Juicer.
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2013-06-01 20:41:52 UTC
(In reply to David King from comment #8)
> (In reply to biohazrd from comment #7)
> > when trying to add album art to
> > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> 
> Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> to handle MP4/AAC tagging (including images), due to a license
> incompatibility. TagLib is now used, and the C API does not have the ability
> to add images to MP4 files.

The license incompability can be worked around using dlopen() as opposed to linking against the library (NEEDED entry). Gtkpod used to do it that way
before they switched to built-in AtomicParsley. I'm just saying it could be done, not that I'd be intrested in pushing such change ;-)
Comment 10 biohazrd 2013-06-03 02:41:12 UTC
(In reply to Samuli Suominen from comment #9)
> (In reply to David King from comment #8)
> > (In reply to biohazrd from comment #7)
> > > when trying to add album art to
> > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > 
> > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > to handle MP4/AAC tagging (including images), due to a license
> > incompatibility. TagLib is now used, and the C API does not have the ability
> > to add images to MP4 files.
> 
> The license incompability can be worked around using dlopen() as opposed to
> linking against the library (NEEDED entry). Gtkpod used to do it that way
> before they switched to built-in AtomicParsley. I'm just saying it could be
> done, not that I'd be intrested in pushing such change ;-)

Thanks for the info. I emerged AtomicParsley and will just use that instead of Easytag.  I wrote a quick script to tag all music in the folder with a given album name.  A little more work than easytag interface but oh well.
Comment 11 David King 2013-06-03 11:04:26 UTC
(In reply to Samuli Suominen from comment #9)
> The license incompability can be worked around using dlopen() as opposed to
> linking against the library (NEEDED entry). Gtkpod used to do it that way
> before they switched to built-in AtomicParsley. I'm just saying it could be
> done, not that I'd be intrested in pushing such change ;-)

Seems like a reasonable way to get around the license, thanks for the suggestion. I filed a bug upstream:

https://bugzilla.gnome.org/show_bug.cgi?id=701506

I do not know when I will have time to work on it, but it should be fairly straightforward to resurrect the old libmp4v2-using code and use GModule/dlopen().
Comment 12 Adrian Bunk 2013-06-10 01:55:53 UTC
(In reply to Samuli Suominen from comment #9)
> (In reply to David King from comment #8)
> > (In reply to biohazrd from comment #7)
> > > when trying to add album art to
> > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > 
> > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > to handle MP4/AAC tagging (including images), due to a license
> > incompatibility. TagLib is now used, and the C API does not have the ability
> > to add images to MP4 files.
> 
> The license incompability can be worked around using dlopen() as opposed to
> linking against the library (NEEDED entry). Gtkpod used to do it that way
> before they switched to built-in AtomicParsley. I'm just saying it could be
> done, not that I'd be intrested in pushing such change ;-)

Using dlopen() would create exactly the same copyright violation:

<--  snip  -->

If the program dynamically links plug-ins, and they make function calls to each
other and share data structures, we believe they form a single program, which
must be treated as an extension of both the main program and the plug-ins. This
means the plug-ins must be released under the GPL or a GPL-compatible free
software license, and that the terms of the GPL must be followed when those
plug-ins are distributed.

<--  snip  -->

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

And your claim that the NEEDED entry should make any difference sounds also absurd, considering that there are normal shared libraries referenced by NEEDED entries where ABI compatible libraries with different licences exist. Examples would be Lesstif/Motif until recently, or that the licence of the ffmpeg libraries depends on what other libraries they are linked with.
Comment 13 David King 2014-04-12 15:30:25 UTC
EasyTAG 2.2.0 was released today:

https://mail.gnome.org/archives/easytag-list/2014-April/msg00045.html

It has switched to GTK+ 3 by default (but GTK+ 2 support is optional). It uses the C++ API of TagLib, and cover art for MP4 files is working again.
Comment 14 Julian Ospald 2014-04-13 00:31:42 UTC
(In reply to Adrian Bunk from comment #12)
> (In reply to Samuli Suominen from comment #9222)
> > (In reply to David King from comment #8223)
> > > (In reply to biohazrd from comment #7224)
> > > > when trying to add album art to
> > > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > > 
> > > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > > to handle MP4/AAC tagging (including images), due to a license
> > > incompatibility. TagLib is now used, and the C API does not have the ability
> > > to add images to MP4 files.
> > 
> > The license incompability can be worked around using dlopen() as opposed to
> > linking against the library (NEEDED entry). Gtkpod used to do it that way
> > before they switched to built-in AtomicParsley. I'm just saying it could be
> > done, not that I'd be intrested in pushing such change ;-)
> 
> Using dlopen() would create exactly the same copyright violation:
> 
> <--  snip  -->
> 
> If the program dynamically links plug-ins, and they make function calls to
> each
> other and share data structures, we believe they form a single program, which
> must be treated as an extension of both the main program and the plug-ins.
> This
> means the plug-ins must be released under the GPL or a GPL-compatible free
> software license, and that the terms of the GPL must be followed when those
> plug-ins are distributed.
> 
> <--  snip  -->
> 
> http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins225
> 
> And your claim that the NEEDED entry should make any difference sounds also
> absurd, considering that there are normal shared libraries referenced by
> NEEDED entries where ABI compatible libraries with different licences exist.
> Examples would be Lesstif/Motif until recently, or that the licence of the
> ffmpeg libraries depends on what other libraries they are linked with.

It says "If the program dynamically links". This is not the case if you use dlopen().
Comment 15 Samuli Suominen (RETIRED) gentoo-dev 2014-04-13 05:23:45 UTC
(In reply to Julian Ospald (hasufell) from comment #14)
> It says "If the program dynamically links". This is not the case if you use
> dlopen().

correct, I stand by what I said. :)
Comment 16 Adrian Bunk 2014-04-13 05:33:11 UTC
(In reply to Julian Ospald (hasufell) from comment #14)
> (In reply to Adrian Bunk from comment #12)
> > (In reply to Samuli Suominen from comment #9222)
> > > (In reply to David King from comment #8223)
> > > > (In reply to biohazrd from comment #7224)
> > > > > when trying to add album art to
> > > > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > > > 
> > > > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > > > to handle MP4/AAC tagging (including images), due to a license
> > > > incompatibility. TagLib is now used, and the C API does not have the ability
> > > > to add images to MP4 files.
> > > 
> > > The license incompability can be worked around using dlopen() as opposed to
> > > linking against the library (NEEDED entry). Gtkpod used to do it that way
> > > before they switched to built-in AtomicParsley. I'm just saying it could be
> > > done, not that I'd be intrested in pushing such change ;-)
> > 
> > Using dlopen() would create exactly the same copyright violation:
> > 
> > <--  snip  -->
> > 
> > If the program dynamically links plug-ins, and they make function calls to
> > each
> > other and share data structures, we believe they form a single program, which
> > must be treated as an extension of both the main program and the plug-ins.
> > This
> > means the plug-ins must be released under the GPL or a GPL-compatible free
> > software license, and that the terms of the GPL must be followed when those
> > plug-ins are distributed.
> > 
> > <--  snip  -->
> > 
> > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins225
> > 
> > And your claim that the NEEDED entry should make any difference sounds also
> > absurd, considering that there are normal shared libraries referenced by
> > NEEDED entries where ABI compatible libraries with different licences exist.
> > Examples would be Lesstif/Motif until recently, or that the licence of the
> > ffmpeg libraries depends on what other libraries they are linked with.
> 
> It says "If the program dynamically links". This is not the case if you use
> dlopen().

It says "If the program dynamically links ***plug-ins***".

This is exactly what dlopen() is doing.
Comment 17 Samuli Suominen (RETIRED) gentoo-dev 2014-04-13 06:29:30 UTC
(In reply to Adrian Bunk from comment #16)
> (In reply to Julian Ospald (hasufell) from comment #14)
> > (In reply to Adrian Bunk from comment #12)
> > > (In reply to Samuli Suominen from comment #9222)
> > > > (In reply to David King from comment #8223)
> > > > > (In reply to biohazrd from comment #7224)
> > > > > > when trying to add album art to
> > > > > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > > > > 
> > > > > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > > > > to handle MP4/AAC tagging (including images), due to a license
> > > > > incompatibility. TagLib is now used, and the C API does not have the ability
> > > > > to add images to MP4 files.
> > > > 
> > > > The license incompability can be worked around using dlopen() as opposed to
> > > > linking against the library (NEEDED entry). Gtkpod used to do it that way
> > > > before they switched to built-in AtomicParsley. I'm just saying it could be
> > > > done, not that I'd be intrested in pushing such change ;-)
> > > 
> > > Using dlopen() would create exactly the same copyright violation:
> > > 
> > > <--  snip  -->
> > > 
> > > If the program dynamically links plug-ins, and they make function calls to
> > > each
> > > other and share data structures, we believe they form a single program, which
> > > must be treated as an extension of both the main program and the plug-ins.
> > > This
> > > means the plug-ins must be released under the GPL or a GPL-compatible free
> > > software license, and that the terms of the GPL must be followed when those
> > > plug-ins are distributed.
> > > 
> > > <--  snip  -->
> > > 
> > > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins225
> > > 
> > > And your claim that the NEEDED entry should make any difference sounds also
> > > absurd, considering that there are normal shared libraries referenced by
> > > NEEDED entries where ABI compatible libraries with different licences exist.
> > > Examples would be Lesstif/Motif until recently, or that the licence of the
> > > ffmpeg libraries depends on what other libraries they are linked with.
> > 
> > It says "If the program dynamically links". This is not the case if you use
> > dlopen().
> 
> It says "If the program dynamically links ***plug-ins***".
> 
> This is exactly what dlopen() is doing.

nope, dlopen != dynamic linking.   dynamic linking adds a NEEDED entry to the library, whereas dlopen() doesn't
use of dlopen (or libltdl's plug-in loader) are widely used for circumstances like this
Comment 18 Adrian Bunk 2014-04-13 07:18:56 UTC
(In reply to Samuli Suominen from comment #17)
> (In reply to Adrian Bunk from comment #16)
> > (In reply to Julian Ospald (hasufell) from comment #14)
> > > (In reply to Adrian Bunk from comment #12)
> > > > (In reply to Samuli Suominen from comment #9222)
> > > > > (In reply to David King from comment #8223)
> > > > > > (In reply to biohazrd from comment #7224)
> > > > > > > when trying to add album art to
> > > > > > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > > > > > 
> > > > > > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > > > > > to handle MP4/AAC tagging (including images), due to a license
> > > > > > incompatibility. TagLib is now used, and the C API does not have the ability
> > > > > > to add images to MP4 files.
> > > > > 
> > > > > The license incompability can be worked around using dlopen() as opposed to
> > > > > linking against the library (NEEDED entry). Gtkpod used to do it that way
> > > > > before they switched to built-in AtomicParsley. I'm just saying it could be
> > > > > done, not that I'd be intrested in pushing such change ;-)
> > > > 
> > > > Using dlopen() would create exactly the same copyright violation:
> > > > 
> > > > <--  snip  -->
> > > > 
> > > > If the program dynamically links plug-ins, and they make function calls to
> > > > each
> > > > other and share data structures, we believe they form a single program, which
> > > > must be treated as an extension of both the main program and the plug-ins.
> > > > This
> > > > means the plug-ins must be released under the GPL or a GPL-compatible free
> > > > software license, and that the terms of the GPL must be followed when those
> > > > plug-ins are distributed.
> > > > 
> > > > <--  snip  -->
> > > > 
> > > > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins225
> > > > 
> > > > And your claim that the NEEDED entry should make any difference sounds also
> > > > absurd, considering that there are normal shared libraries referenced by
> > > > NEEDED entries where ABI compatible libraries with different licences exist.
> > > > Examples would be Lesstif/Motif until recently, or that the licence of the
> > > > ffmpeg libraries depends on what other libraries they are linked with.
> > > 
> > > It says "If the program dynamically links". This is not the case if you use
> > > dlopen().
> > 
> > It says "If the program dynamically links ***plug-ins***".
> > 
> > This is exactly what dlopen() is doing.
> 
> nope, dlopen != dynamic linking.   dynamic linking adds a NEEDED entry to
> the library, whereas dlopen() doesn't
> use of dlopen (or libltdl's plug-in loader) are widely used for
> circumstances like this

Nope, dynamic linking != plug-ins. When loading plug-ins, as is covered in this FAQ entry from the FSF, there is no NEEDED entry in the loading program or library.

Trying to use dlopen() for circumstances like this is widely considered a copyright violation, and therefore rare in Open Source software.
Comment 19 Samuli Suominen (RETIRED) gentoo-dev 2014-04-13 07:50:53 UTC
2.2.0 in Portage

taglib is no longer optional, upstream broke the optional support by always including the headers in src/gio_wrapper.h, as in --disable-mp4 breaks the build

ogg and vorbis are no longer optional, upstream broke the optional support by always including their headers in src/vcedit.h, as in, --disable-ogg or just not having them installed breaks the build in many ways
Comment 20 Samuli Suominen (RETIRED) gentoo-dev 2014-04-13 07:59:34 UTC
(In reply to Adrian Bunk from comment #18)
> (In reply to Samuli Suominen from comment #17)
> > (In reply to Adrian Bunk from comment #16)
> > > (In reply to Julian Ospald (hasufell) from comment #14)
> > > > (In reply to Adrian Bunk from comment #12)
> > > > > (In reply to Samuli Suominen from comment #9222)
> > > > > > (In reply to David King from comment #8223)
> > > > > > > (In reply to biohazrd from comment #7224)
> > > > > > > > when trying to add album art to
> > > > > > > > .m4a files the check box in EasyTag 2.1.8 for the tag no longer exists
> > > > > > > 
> > > > > > > Unfortunately, EasyTAG cannot link with libmp4v2, which was previously used
> > > > > > > to handle MP4/AAC tagging (including images), due to a license
> > > > > > > incompatibility. TagLib is now used, and the C API does not have the ability
> > > > > > > to add images to MP4 files.
> > > > > > 
> > > > > > The license incompability can be worked around using dlopen() as opposed to
> > > > > > linking against the library (NEEDED entry). Gtkpod used to do it that way
> > > > > > before they switched to built-in AtomicParsley. I'm just saying it could be
> > > > > > done, not that I'd be intrested in pushing such change ;-)
> > > > > 
> > > > > Using dlopen() would create exactly the same copyright violation:
> > > > > 
> > > > > <--  snip  -->
> > > > > 
> > > > > If the program dynamically links plug-ins, and they make function calls to
> > > > > each
> > > > > other and share data structures, we believe they form a single program, which
> > > > > must be treated as an extension of both the main program and the plug-ins.
> > > > > This
> > > > > means the plug-ins must be released under the GPL or a GPL-compatible free
> > > > > software license, and that the terms of the GPL must be followed when those
> > > > > plug-ins are distributed.
> > > > > 
> > > > > <--  snip  -->
> > > > > 
> > > > > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins225
> > > > > 
> > > > > And your claim that the NEEDED entry should make any difference sounds also
> > > > > absurd, considering that there are normal shared libraries referenced by
> > > > > NEEDED entries where ABI compatible libraries with different licences exist.
> > > > > Examples would be Lesstif/Motif until recently, or that the licence of the
> > > > > ffmpeg libraries depends on what other libraries they are linked with.
> > > > 
> > > > It says "If the program dynamically links". This is not the case if you use
> > > > dlopen().
> > > 
> > > It says "If the program dynamically links ***plug-ins***".
> > > 
> > > This is exactly what dlopen() is doing.
> > 
> > nope, dlopen != dynamic linking.   dynamic linking adds a NEEDED entry to
> > the library, whereas dlopen() doesn't
> > use of dlopen (or libltdl's plug-in loader) are widely used for
> > circumstances like this
> 
> Nope, dynamic linking != plug-ins. When loading plug-ins, as is covered in
> this FAQ entry from the FSF, there is no NEEDED entry in the loading program
> or library.

linking != loading

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

"If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?"
<snip>
"It depends on how the program invokes its plug-ins."
<snip>
"If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case."
<snip>

I suppose it's the borderline case we are talking about here. 
> Trying to use dlopen() for circumstances like this is widely considered a
> copyright violation, and therefore rare in Open Source software.
Comment 21 David King 2014-04-13 09:48:51 UTC
(In reply to Samuli Suominen from comment #19)
> 2.2.0 in Portage
> 
> taglib is no longer optional, upstream broke the optional support by always
> including the headers in src/gio_wrapper.h, as in --disable-mp4 breaks the
> build

This was unintentional, and is fixed upstream:

https://git.gnome.org/browse/easytag/commit/?id=ddf003b219799b82f4a72c7568fbcbe913e45f26

> ogg and vorbis are no longer optional, upstream broke the optional support
> by always including their headers in src/vcedit.h, as in, --disable-ogg or
> just not having them installed breaks the build in many ways

This should not be the case, and is unintentional. Ogg support is required for both Speex and Opus support, and there should be appropriate configure checks in place to make sure this is satisfied. Please file an upstream bug and I will look into it.
Comment 22 Adrian Bunk 2014-04-13 18:18:03 UTC
(In reply to Samuli Suominen from comment #20)
> 
> http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
> 
> "If a program released under the GPL uses plug-ins, what are the
> requirements for the licenses of a plug-in?"
> <snip>
> "It depends on how the program invokes its plug-ins."
> <snip>
> "If the program dynamically links plug-ins, but the communication between
> them is limited to invoking the ‘main’ function of the plug-in with some
> options and waiting for it to return, that is a borderline case."
> <snip>
> 
> I suppose it's the borderline case we are talking about here. 
> > Trying to use dlopen() for circumstances like this is widely considered a
> > copyright violation, and therefore rare in Open Source software.

Only calling a main() function and waiting for the return is borderline since it is basically the same as calling a separate program using system().

As soon as you call any other functions in the plugin there is no doubt that it would be a copyright violation.
Comment 23 Julian Ospald 2014-04-13 19:58:01 UTC
(In reply to Adrian Bunk from comment #22)
> (In reply to Samuli Suominen from comment #20309)
> > 
> > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins310
> > 
> > "If a program released under the GPL uses plug-ins, what are the
> > requirements for the licenses of a plug-in?"
> > <snip>
> > "It depends on how the program invokes its plug-ins."
> > <snip>
> > "If the program dynamically links plug-ins, but the communication between
> > them is limited to invoking the ‘main’ function of the plug-in with some
> > options and waiting for it to return, that is a borderline case."
> > <snip>
> > 
> > I suppose it's the borderline case we are talking about here. 
> > > Trying to use dlopen() for circumstances like this is widely considered a
> > > copyright violation, and therefore rare in Open Source software.
> 
> Only calling a main() function and waiting for the return is borderline
> since it is basically the same as calling a separate program using system().
> 
> As soon as you call any other functions in the plugin there is no doubt that
> it would be a copyright violation.

Any cases where this was tested in court?
Comment 24 Adrian Bunk 2014-04-14 08:40:46 UTC
(In reply to Julian Ospald (hasufell) from comment #23)
> (In reply to Adrian Bunk from comment #22)
> > (In reply to Samuli Suominen from comment #20309)
> > > 
> > > http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins310
> > > 
> > > "If a program released under the GPL uses plug-ins, what are the
> > > requirements for the licenses of a plug-in?"
> > > <snip>
> > > "It depends on how the program invokes its plug-ins."
> > > <snip>
> > > "If the program dynamically links plug-ins, but the communication between
> > > them is limited to invoking the ‘main’ function of the plug-in with some
> > > options and waiting for it to return, that is a borderline case."
> > > <snip>
> > > 
> > > I suppose it's the borderline case we are talking about here. 
> > > > Trying to use dlopen() for circumstances like this is widely considered a
> > > > copyright violation, and therefore rare in Open Source software.
> > 
> > Only calling a main() function and waiting for the return is borderline
> > since it is basically the same as calling a separate program using system().
> > 
> > As soon as you call any other functions in the plugin there is no doubt that
> > it would be a copyright violation.
> 
> Any cases where this was tested in court?

None that I am aware of.

But do you want to risk that using Gentoo makes some random person the defendant in such a case?

If Gentoo does this, anyone whos copyright is affected can pick anyone providing a Gentoo binary package server, or anyone distributing products using Gentoo, in a jurisdiction of his choice.

Additionally, why would Gentoo want to attempt to undermine Open Source licences in the first place?

(Note that in the EasyTAG case, upstream already did the right thing by completely dropping support for the GPL-incompatible library.)