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


05 Dec 2001 13:17:39 -0500
Doug McNaught <doug@wireboard.com>
Licensing
> 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, Pennsylvania 19026

Wed, 5 Dec 2001 13:48:33 -0500 (EST)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: Licensing
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: This product 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

Wed, 5 Dec 2001 12:58:51 -0600
"Ross J. Reedstrom" <reedstrm@rice.edu>
Re: Licensing
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


Wed, 5 Dec 2001 13:05:12 -0600
"Ross J. Reedstrom" <reedstrm@rice.edu>
Re: Licensing
"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

05 Dec 2001 14:23:57 -0500
Doug McNaught <doug@wireboard.com>
Re: Licensing


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


Thu, 06 Dec 2001 02:04:01 +0500
Hannu Krosing <hannu@tm.ee>
Re: Licensing
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

Wed, 5 Dec 2001 16:08:10 -0600
"Ross J. Reedstrom" <reedstrm@rice.edu>
Re: Licensing
"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

05 Dec 2001 17:38:19 -0500
Doug McNaught <doug@wireboard.com>
Re: Licensing
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

05 Dec 2001 19:10:54 -0500
Doug McNaught <doug@wireboard.com>
Re: Licensing
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

Thu, 06 Dec 2001 12:52:44 +0200
Hannu Krosing <hannu@tm.ee>
Re: Licensing
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

06 Dec 2001 11:47:37 -0500
Doug McNaught <doug@wireboard.com>
Re: Licensing
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


Thu, 6 Dec 2001 20:31:04 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Re: Licensing
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

06 Dec 2001 15:18:57 -0500
Doug McNaught <doug@wireboard.com>
Re: Licensing