* [U-Boot] exports.h and the GPL
@ 2012-02-24 18:10 Michael Walle
2012-02-24 19:17 ` Mike Frysinger
0 siblings, 1 reply; 5+ messages in thread
From: Michael Walle @ 2012-02-24 18:10 UTC (permalink / raw)
To: u-boot
Hi,
As far as i know applications can use functions defined in exports.h without
being licensed under the GPL.
Who is responsible to define which functions are exported? Are the currently
exported functions the only ones available to closed source applications or is
it possible to add further ones which are needed.
Functions may need arguments which are pointers to some structures. These
structures are likely be defined in some GPL'ed header file and must not be
used, i guess? So the exported functions must only use integral data types,
opaque pointers and structures which are not defined in a GPL'ed header file.
I'm aware of the fact that I won't get any legal advice, I'm just asking for
your opinions.
--
Michael
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] exports.h and the GPL
2012-02-24 18:10 [U-Boot] exports.h and the GPL Michael Walle
@ 2012-02-24 19:17 ` Mike Frysinger
2012-02-24 19:48 ` Michael Walle
0 siblings, 1 reply; 5+ messages in thread
From: Mike Frysinger @ 2012-02-24 19:17 UTC (permalink / raw)
To: u-boot
On Friday 24 February 2012 13:10:36 Michael Walle wrote:
> As far as i know applications can use functions defined in exports.h
> without being licensed under the GPL.
correct, that is what the COPYING file states
> Who is responsible to define which functions are exported? Are the
> currently exported functions the only ones available to closed source
> applications or is it possible to add further ones which are needed.
someone posts a request and the maintainers evaluate it. typically the
exported funcs should be "high level" and not hooks into u-boot internals.
> Functions may need arguments which are pointers to some structures. These
> structures are likely be defined in some GPL'ed header file and must not be
> used, i guess? So the exported functions must only use integral data types,
> opaque pointers and structures which are not defined in a GPL'ed header
> file.
which is why the exported funcs are "high level" and not ones that get into
low level stuff that would necessitate passing structs. the other problem with
struct passing is that they tend to break the ABI layer.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120224/e0c09f02/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] exports.h and the GPL
2012-02-24 19:17 ` Mike Frysinger
@ 2012-02-24 19:48 ` Michael Walle
2012-02-24 22:37 ` Mike Frysinger
2012-02-24 23:37 ` Wolfgang Denk
0 siblings, 2 replies; 5+ messages in thread
From: Michael Walle @ 2012-02-24 19:48 UTC (permalink / raw)
To: u-boot
Am Freitag 24 Februar 2012, 20:17:19 schrieb Mike Frysinger:
> On Friday 24 February 2012 13:10:36 Michael Walle wrote:
> > As far as i know applications can use functions defined in exports.h
> > without being licensed under the GPL.
>
> correct, that is what the COPYING file states
>
> > Who is responsible to define which functions are exported? Are the
> > currently exported functions the only ones available to closed source
> > applications or is it possible to add further ones which are needed.
>
> someone posts a request and the maintainers evaluate it. typically the
> exported funcs should be "high level" and not hooks into u-boot internals.
>
> > Functions may need arguments which are pointers to some structures. These
> > structures are likely be defined in some GPL'ed header file and must not
> > be used, i guess? So the exported functions must only use integral data
> > types, opaque pointers and structures which are not defined in a GPL'ed
> > header file.
>
> which is why the exported funcs are "high level" and not ones that get into
> low level stuff that would necessitate passing structs. the other problem
> with struct passing is that they tend to break the ABI layer.
> -mike
Then i guess there is no way to support a board which has only evil closed
source drivers for its networking card. That is, i can't export eth_register()
to register my ops defined in the blob without violating the GPL.
Even if the headers for the "struct eth_device" were public domain, this
mechanism would be sth like 'linking' against the uboot, wouldn't it?
--
Michael
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] exports.h and the GPL
2012-02-24 19:48 ` Michael Walle
@ 2012-02-24 22:37 ` Mike Frysinger
2012-02-24 23:37 ` Wolfgang Denk
1 sibling, 0 replies; 5+ messages in thread
From: Mike Frysinger @ 2012-02-24 22:37 UTC (permalink / raw)
To: u-boot
On Friday 24 February 2012 14:48:51 Michael Walle wrote:
> Am Freitag 24 Februar 2012, 20:17:19 schrieb Mike Frysinger:
> > On Friday 24 February 2012 13:10:36 Michael Walle wrote:
> > > Who is responsible to define which functions are exported? Are the
> > > currently exported functions the only ones available to closed source
> > > applications or is it possible to add further ones which are needed.
> >
> > someone posts a request and the maintainers evaluate it. typically the
> > exported funcs should be "high level" and not hooks into u-boot
> > internals.
>
> Then i guess there is no way to support a board which has only evil closed
> source drivers for its networking card. That is, i can't export
> eth_register() to register my ops defined in the blob without violating
> the GPL.
that certainly goes against the spirit of the export logic (imo) so i'd be
against it. the export layer isn't there to support closed sourced drivers
the rest of u-boot would utilize.
you could ask Wolfgang, but i suspect he will say no.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120224/40ada51b/attachment.pgp>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] exports.h and the GPL
2012-02-24 19:48 ` Michael Walle
2012-02-24 22:37 ` Mike Frysinger
@ 2012-02-24 23:37 ` Wolfgang Denk
1 sibling, 0 replies; 5+ messages in thread
From: Wolfgang Denk @ 2012-02-24 23:37 UTC (permalink / raw)
To: u-boot
Dear Michael Walle,
In message <201202242048.51624.michael@walle.cc> you wrote:
>
> > which is why the exported funcs are "high level" and not ones that get into
> > low level stuff that would necessitate passing structs. the other problem
> > with struct passing is that they tend to break the ABI layer.
> > -mike
>
> Then i guess there is no way to support a board which has only evil closed
> source drivers for its networking card. That is, i can't export eth_register()
> to register my ops defined in the blob without violating the GPL.
As Mike already explained, this is correct. And it is intentional.
> Even if the headers for the "struct eth_device" were public domain, this
> mechanism would be sth like 'linking' against the uboot, wouldn't it?
Yes, indeed.
You are not supposed to mix closed-source drivers with GPL code. The
best approach is probably to re-write the drivers under GPL.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The price of curiosity is a terminal experience.
- Terry Pratchett, _The Dark Side of the Sun_
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-02-24 23:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-24 18:10 [U-Boot] exports.h and the GPL Michael Walle
2012-02-24 19:17 ` Mike Frysinger
2012-02-24 19:48 ` Michael Walle
2012-02-24 22:37 ` Mike Frysinger
2012-02-24 23:37 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox