[U-Boot] License Problems for standalone application at u-boot
Peter Chen
hzpeterchen at gmail.com
Tue Aug 18 11:50:13 CEST 2009
Dear Wolfgang Denk,
On Tue, 2009-08-18 at 10:35 +0200, Wolfgang Denk wrote:
> Dear Peter Chen,
>
> In message <1250571462.6548.21.camel at nchen-desktop> you wrote:
> >
> > > > > The "jump table provided by U-Boot exactly for this purpose" is the
> > > > > list of functions exported through the "include/_exports.h" header
> > > > > file.
> ...
> > > If you set up your own list of function pointers (in addition or
> > > instead of the jump table provided by the "include/_exports.h"
> > > header), then this is a form of linking against the U-Boot code, and
> > > your application must be released under GPL.
> >
> > I am sorry, I can't understand your meaning. For example, at
>
> I'm close to give up. I try to as explicit as possible, and I see no
> room for interpretation left, yet you still try to argument.
>
> > "include/_exports.h"
> > there is an EXPORT_FUNC(printf), do the standalone application must
> > under GPL if
> > it uses printf?
>
> No. As explained several times before, the "jump table [is] provided
> by U-Boot exactly for this purpose", with "this purpose" being to
> allow for closed source, proprietary code.
>
> printf() gets exported through the jump table interface, so this is OK
> to use in proprietary code.
>
> > Then, what does "include/_exports.h" use?
>
> It uses a list of functions (resp. function pointers) we consider OK
> to be used in closed source applications.
>
> > In your COPYING, it writes:
> > NOTE! This copyright does *not* cover the so-called "standalone"
> > applications that use U-Boot services by means of the jump table
> > provided by U-Boot exactly for this purpose - this is merely
> > considered normal use of U-Boot, and does *not* fall under the
> > heading of "derived work".
>
> Indeed. And I explained this several times before.
>
> > > > Is it free to license at below situation:
> > > > The function list which is defined at u-boot/board/myboard/myboard.c,
> > > > and all functions in this list
> > > > only uses functions at include/_exports.h and some of user-defined
> > > > functions.
> > >
> > > Your description is really vague; it would be easier if you could
> > > give specific code examples or such. If "some of user-defined
> > > functions" refers to code that is covered by the GPL, then your
> > > application must be released under GPL, too.
> > >
> >
> > My code like belows:
> >
> > typedef void (*pfn_t) (void);
> > pfn_t sc_gps_pfn[] = {
> > LoadToMemory,
> > SaveData,
> > RFPowerCtrl,
> > MiscConfig,
> > RegisterDspInterruptHandler,
> > GetPowerStatus,
> > IsUserResume,
> > DebugOutput,
> > ReturnToBootLoader
> > };
>
> OK, so you are setting up a table of your own functions. You need
> this table only if you link the code containing these functions with
> the U-Boot binary - and you do so most probably because the code
> calls into other U-Boot provided functions.
>
> > We want to open this code, but want to close the code which use this
> > function list in binary pattern.
>
> You probably have no choice here. If your code that provides the list
> of functions above is linked with U-Boot, you *must* release it under
> GPL. No matter if you want or not - if you release your code at all,
> it is GPLed.
>
> And your list of functions above thus accesses GPLed code which is
> NOT part of include/_exports.h. So the GPL exception does NOT apply
> to any code that references functions from this list, i. e. your
> standalone application must be released under GPL, too.
>
The functions which in my function list are written by our own.
and do not call any other functions at original u-boot code. In that
case,
can we add our functions to "include/_exports.h" in order to free from
GPL for our standalone application?
I checked the functions which exported in "include/_exports.h", and
their definitions are also under GPL. then why
they can be called for closed code? If we want to add, how to do?
> > > What you implement is some form of static linking.
> ...
> > The standalone application is compiled by armcc, and this bin file is
> > shared by WinCE and Linux bootloader.
> > The standalone application uses bootloader functions by address not by
> > name.
>
> That does not matter. Accessing a function by address still means you
> are linking against the code (in a stupid way, btw). Your standalone
> application has to be released 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
> A quarrel is quickly settled when deserted by one party; there is no
> battle unless there be two. - Seneca
Best Regards,
Peter Chen
More information about the U-Boot
mailing list