Thread: 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 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
> 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
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
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
"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
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
"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
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
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
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
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
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
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