Thread: Licensing

Licensing

From
Doug McNaught
Date:
I may have some spare hacking time coming up, and I was thinking about
adding a PL (Scheme) to PostgreSQL.  I've found some code out there
for a small Scheme interpreter, but it appears to be licensed under a
"BSD with advertising clause" license (as opposed to the "modern BSD"
license of PostgreSQL).  The license text includes:
   Redistributions of source code must retain the above copyright   notice, this list of conditions and the following
disclaimer.
   Redistributions in binary form must reproduce the above copyright   notice, this list of conditions and the
followingdisclaimer in   the documentation and/or other materials provided with the   distribution.
 

Would it be a problem to include this code in PG?  

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863



Re: Licensing

From
Bruce Momjian
Date:
> I may have some spare hacking time coming up, and I was thinking about
> adding a PL (Scheme) to PostgreSQL.  I've found some code out there
> for a small Scheme interpreter, but it appears to be licensed under a
> "BSD with advertising clause" license (as opposed to the "modern BSD"
> license of PostgreSQL).  The license text includes:
> 
>     Redistributions of source code must retain the above copyright
>     notice, this list of conditions and the following disclaimer.
> 
>     Redistributions in binary form must reproduce the above copyright
>     notice, this list of conditions and the following disclaimer in
>     the documentation and/or other materials provided with the
>     distribution.
> 
> Would it be a problem to include this code in PG?  

I think it would be fine.  I don't think the old/new BSD license is any
major distinction.  We moved from old to new with no issues a while ago.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Licensing

From
"Ross J. Reedstrom"
Date:
On Wed, Dec 05, 2001 at 01:48:33PM -0500, Bruce Momjian wrote:
> > 
> > Would it be a problem to include this code in PG?  
> 
> I think it would be fine.  I don't think the old/new BSD license is any
> major distinction.  We moved from old to new with no issues a while ago.

Shame on you Bruce: lawyers don't understand 'just a little change in
the license' We've gotten away with the change by making a good faith
effort to contact all copyright holders, and then assuming that those who
did not respond have assigned/abandoned their rights. And, the biggest
holder of them all, Berkeley, _did_ change their license. Probably a bit
'squidgy' but I think we'd win it in court, not that it'd come to that.

Ross



Re: Licensing

From
"Ross J. Reedstrom"
Date:
That's not the 'BSD with advertising clause', that's the modern BSD
license, with a standard acknowledgement clause. The orginal advertisement
clause looks like:

(quoting from http://www.gnu.org/philosophy/bsd.html)

3. All advertising materials mentioning features or use of this software  must display the following acknowledgement:
Thisproduct includes  software developed by the University of California, Berkeley and  its contributors.
 

Unless that (or something like it) is in there, you're o.k. BTW, kudos
for thinking about licensing issues _before_ doing the work.

Ross

P.S. Which package are you looking at, BTW?


On Wed, Dec 05, 2001 at 01:17:39PM -0500, Doug McNaught wrote:
> I may have some spare hacking time coming up, and I was thinking about
> adding a PL (Scheme) to PostgreSQL.  I've found some code out there
> for a small Scheme interpreter, but it appears to be licensed under a
> "BSD with advertising clause" license (as opposed to the "modern BSD"
> license of PostgreSQL).  The license text includes:
> 
>     Redistributions of source code must retain the above copyright
>     notice, this list of conditions and the following disclaimer.
> 
>     Redistributions in binary form must reproduce the above copyright
>     notice, this list of conditions and the following disclaimer in
>     the documentation and/or other materials provided with the
>     distribution.
> 
> Would it be a problem to include this code in PG?  
> 
> -Doug
> -- 
> Let us cross over the river, and rest under the shade of the trees.
>    --T. J. Jackson, 1863
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly


Re: Licensing

From
Doug McNaught
Date:
"Ross J. Reedstrom" <reedstrm@rice.edu> writes:

> That's not the 'BSD with advertising clause', that's the modern BSD
> license, with a standard acknowledgement clause. The orginal advertisement
> clause looks like:

[...]

Ahh, good to know.  Sounds like it'll be OK then.

> Unless that (or something like it) is in there, you're o.k. BTW, kudos
> for thinking about licensing issues _before_ doing the work.

Heh, if there's one thing I hate it's wasted effort.  ;)

> P.S. Which package are you looking at, BTW?

TinyScheme: 

http://tinyscheme.sourceforge.net/home.html

It's not the prettiest code I've ever seen, but it's small, not too
hard to read, and complete enough to be useful from what I can see.  I 
think it'll be an interesting project.

I am still thinking of maybe writing my own Scheme implementation, but 
there are already N of them out there.  If I can use something that's
compatible license-wise and reasonably functional, so much the better.

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863


Re: Licensing

From
"Ross J. Reedstrom"
Date:
On Wed, Dec 05, 2001 at 02:23:57PM -0500, Doug McNaught wrote:
> "Ross J. Reedstrom" <reedstrm@rice.edu> writes:
> > P.S. Which package are you looking at, BTW?
> 
> TinyScheme: 
> 
> http://tinyscheme.sourceforge.net/home.html
> 
> It's not the prettiest code I've ever seen, but it's small, not too
> hard to read, and complete enough to be useful from what I can see.  I 
> think it'll be an interesting project.
> 
> I am still thinking of maybe writing my own Scheme implementation, but 
> there are already N of them out there.  If I can use something that's
> compatible license-wise and reasonably functional, so much the better.

Yeah, a quick search on freshmet.net found TinyScheme and KSI Scheme as 
candidates for an embeddable Scheme interpreter. KSI is described as
'well documented: but the doumentation is in Russian'

Ross


Re: Licensing

From
Doug McNaught
Date:
"Ross J. Reedstrom" <reedstrm@rice.edu> writes:

> Yeah, a quick search on freshmet.net found TinyScheme and KSI Scheme as 
> candidates for an embeddable Scheme interpreter. KSI is described as
> 'well documented: but the doumentation is in Russian'

Whereas TinyScheme is lightly documented, but in English, so it's a
win for me.  ;)

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863


Re: Licensing

From
Hannu Krosing
Date:

Doug McNaught wrote:

>"Ross J. Reedstrom" <reedstrm@rice.edu> writes:
>
>>Yeah, a quick search on freshmet.net found TinyScheme and KSI Scheme as 
>>candidates for an embeddable Scheme interpreter. KSI is described as
>>'well documented: but the doumentation is in Russian'
>>
>
>Whereas TinyScheme is lightly documented, but in English, so it's a
>win for me.  ;)
>
Have you checked SIOD? It _seems_ to have the old BSD licence (perhaps 
because it
is not updated since '97 ;)

But it is small and lightweight (and has connectivity to msql, oracle, 
rdb and sybase)

SCM which was initially based on it is probably a no-no for GPL, but 
actually I think
that most PL's could be considered simple add-ons and be distributed in 
./contrib where
we have historically been more liberal concernong "other" licenses.

Guile is probably out for same reasons, plus being fat anyway ;)



Refs:
SIOD: http://people.delphi.com/gjc/siod.html
SCM: http://www.swiss.ai.mit.edu/~jaffer/SCM.html
Guile: http://www.gnu.org/software/guile/guile.html
------------
Hannu



Re: Licensing

From
Doug McNaught
Date:
Hannu Krosing <hannu@tm.ee> writes:


> Have you checked SIOD? It _seems_ to have the old BSD licence
> (perhaps because it is not updated since '97 ;)
> 
> But it is small and lightweight (and has connectivity to msql,
> oracle, rdb and sybase)

I did look at it (I actually played with it a long time ago), but it
didn't seem to be intended to be used as an extension language,
whereas TinyScheme is (you can have multiple interpreters in a
process, each with its own heap etc). 

> SCM which was initially based on it is probably a no-no for GPL, but
> actually I think that most PL's could be considered simple add-ons
> and be distributed in ./contrib where we have historically been more
> liberal concernong "other" licenses.

True, but I'd like to think it's barely conceivable that my work could 
go into the mainline code (not that Scheme has that big of an
audience, so it might not be worth it).  ;)

> Guile is probably out for same reasons, plus being fat anyway ;)

Yeah, bloat city.  It's a nice system, but way overkill IMHO for most
extension-language uses.  Not that Perl/Python aren't big too, but
Scheme's supposed to be "small".

Thanks very much for the suggestions!

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863


Re: Licensing

From
Hannu Krosing
Date:
Doug McNaught wrote:
> 
> Hannu Krosing <hannu@tm.ee> writes:
> 
> > Have you checked SIOD? It _seems_ to have the old BSD licence
> > (perhaps because it is not updated since '97 ;)
> >
> > But it is small and lightweight (and has connectivity to msql,
> > oracle, rdb and sybase)
> 
> I did look at it (I actually played with it a long time ago), but it
> didn't seem to be intended to be used as an extension language,
> whereas TinyScheme is (you can have multiple interpreters in a
> process, each with its own heap etc).

Is there a standard way of making "safe" (no filesystem/network 
access etc.) version of TinyScheme ?

Just recently there was much fuss about PL/Python's ability to read
files. Or are you planning to make only an untrusted PL ?

---------------
Hannu


Re: Licensing

From
Doug McNaught
Date:
Hannu Krosing <hannu@tm.ee> writes:

> Is there a standard way of making "safe" (no filesystem/network 
> access etc.) version of TinyScheme ?

Yeah, very standard: add it to the code.  ;) There are no "hooks" for
that kind of access control currently.  I'm not aware of a Scheme
system (except possibly Guile, just because it has everything else:)
that has such.

> Just recently there was much fuss about PL/Python's ability to read
> files. Or are you planning to make only an untrusted PL ?

Probably start off untrusted and add trusted afterward--I'd like to
get the basics (interface between Scheme and PG datatypes, SPI glue) in
place and get familiar with the code.  It shouldn't be too hard to add 
a "capability mask" to the interpreter structure and put permission
checks in.

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863


Re: Licensing

From
Peter Eisentraut
Date:
Ross J. Reedstrom writes:

> Yeah, a quick search on freshmet.net found TinyScheme and KSI Scheme as
> candidates for an embeddable Scheme interpreter. KSI is described as
> 'well documented: but the doumentation is in Russian'

Several months ago I looked to do exactly what Doug is proposing now.
There are a few dozen(!) freely available scheme implementations out there
that claim to be embeddable, but I haven't found a single one that a)
compiled cleanly, b) was documented, and c) could be used in a way that
wouldn't require changing the postmaster startup code.  Most scheme
implementations play weird tricks with the stack for efficiency, but I
don't want that kind of thing in PostgreSQL.

Good luck anyway. ;-)

-- 
Peter Eisentraut   peter_e@gmx.net



Re: Licensing

From
Doug McNaught
Date:
Peter Eisentraut <peter_e@gmx.net> writes:

> Several months ago I looked to do exactly what Doug is proposing now.
> There are a few dozen(!) freely available scheme implementations out there
> that claim to be embeddable, but I haven't found a single one that a)
> compiled cleanly, b) was documented, and c) could be used in a way that
> wouldn't require changing the postmaster startup code.  Most scheme
> implementations play weird tricks with the stack for efficiency, but I
> don't want that kind of thing in PostgreSQL.

That's one nice thing about TinyScheme--it's a fairly non-tricky
implementation (as far as stack and pointer hackery). 

As for (c), I don't anticipate any need to mess with the startup
code.  An interpreter instance is a self-contained struct that can be
instantiated when a Scheme function is invoked, not before (and
cached of course for later use). 

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863