mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Add gcj discussion.
This commit is contained in:
parent
62636a3d4b
commit
08dd92cdeb
@ -2244,3 +2244,483 @@ 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
|
||||
|
||||
From pgsql-hackers-owner+M31158@postgresql.org Wed Oct 30 14:31:27 2002
|
||||
Return-path: <pgsql-hackers-owner+M31158@postgresql.org>
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9UJVQU07194
|
||||
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 14:31:26 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP
|
||||
id 353C9476C3C; Wed, 30 Oct 2002 14:30:18 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with SMTP
|
||||
id D8787476C72; Wed, 30 Oct 2002 14:30:06 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP id A8D81476C42
|
||||
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||
Received: from sss.pgh.pa.us (unknown [192.204.191.242])
|
||||
by postgresql.org (Postfix) with ESMTP id 04987476C71
|
||||
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||
Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
|
||||
by sss.pgh.pa.us (8.12.5/8.12.5) with ESMTP id g9UJTvhR000820
|
||||
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 14:29:57 -0500 (EST)
|
||||
To: pgsql-hackers@postgresql.org
|
||||
Subject: [HACKERS] PG functions in Java: maybe use gcj?
|
||||
Date: Wed, 30 Oct 2002 14:29:57 -0500
|
||||
Message-ID: <819.1036006197@sss.pgh.pa.us>
|
||||
From: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Precedence: bulk
|
||||
Sender: pgsql-hackers-owner@postgresql.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Status: OR
|
||||
|
||||
I had an interesting conversation today with Tom Tromey and Andrew Haley
|
||||
of Red Hat about how to implement "pljava" for Postgres. Rather than
|
||||
futzing with an external JVM, their thought is to use gcj (gcc compiling
|
||||
Java). It sounds like this approach would mostly just work, modulo
|
||||
needing to use a small amount of C++ code to call the defined APIs for
|
||||
gcj.
|
||||
|
||||
This would not be a perfect solution: gcj isn't yet ported everywhere,
|
||||
and it would probably not play nice on machines where the standard C
|
||||
library isn't thread-safe. But it seems a lot more within reach than
|
||||
the approaches we've discussed in the past.
|
||||
|
||||
I'm not volunteering to try to do this, but I wanted to toss the idea
|
||||
up in the air and see if anyone wants to try it. Tom and Andrew
|
||||
indicated they'd be willing to help out with advice etc for anyone
|
||||
who wants to take on the project.
|
||||
|
||||
regards, tom lane
|
||||
|
||||
---------------------------(end of broadcast)---------------------------
|
||||
TIP 2: you can get off all lists at once with the unregister command
|
||||
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||
|
||||
From pgsql-hackers-owner+M31173@postgresql.org Wed Oct 30 22:51:48 2002
|
||||
Return-path: <pgsql-hackers-owner+M31173@postgresql.org>
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9V3pkU27163
|
||||
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 22:51:46 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP
|
||||
id CC02B476CE9; Wed, 30 Oct 2002 22:51:42 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with SMTP
|
||||
id 30D78476087; Wed, 30 Oct 2002 22:51:25 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP id 49189475A1E
|
||||
for <pgsql-hackers@postgresql.org>; Wed, 30 Oct 2002 22:51:18 -0500 (EST)
|
||||
Received: from mail.xythos.com (sdsl-216-36-77-241.dsl.sjc.megapath.net [216.36.77.241])
|
||||
by postgresql.org (Postfix) with ESMTP id B9C5B474E5C
|
||||
for <pgsql-hackers@postgresql.org>; Wed, 30 Oct 2002 22:51:17 -0500 (EST)
|
||||
Received: from ravms by mail.xythos.com with mail-ok (Exim 3.36 #3)
|
||||
id 1876OD-0006U9-00; Thu, 31 Oct 2002 03:53:01 +0000
|
||||
Received: from h-66-166-17-184.snvacaid.covad.net ([66.166.17.184] helo=xythos.com)
|
||||
by mail.xythos.com with asmtp (Exim 3.36 #3)
|
||||
id 1876OC-0006Ty-00; Thu, 31 Oct 2002 03:53:00 +0000
|
||||
Message-ID: <3DC0AA42.4000205@xythos.com>
|
||||
Date: Wed, 30 Oct 2002 19:57:54 -0800
|
||||
From: Barry Lind <blind@xythos.com>
|
||||
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826
|
||||
X-Accept-Language: en-us, en
|
||||
MIME-Version: 1.0
|
||||
To: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
cc: pgsql-hackers@postgresql.org
|
||||
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||
References: <819.1036006197@sss.pgh.pa.us>
|
||||
Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Envelope-To: tgl@sss.pgh.pa.us,
|
||||
pgsql-hackers@postgreSQL.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Precedence: bulk
|
||||
Sender: pgsql-hackers-owner@postgresql.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Status: OR
|
||||
|
||||
I am not sure I follow. Are you suggesting:
|
||||
|
||||
1) create function takes java source and then calls gcj to compile it
|
||||
to native and build a .so from it that would get called at runtime?
|
||||
|
||||
or
|
||||
|
||||
2) create function takes java source and just compiles to java .class
|
||||
files and the runtime invokes the gcj java interpreter.
|
||||
|
||||
or I guess you could do both at the same time.
|
||||
|
||||
In either case I am concerned about licensing issues. gcj is not under
|
||||
a BSD style license. Depending on what you need you are either dealing
|
||||
with regular GPL, LGPL, or LGPL with a special java exception.
|
||||
|
||||
I beleive (without giving it too much thought) that doing either 1 or 2
|
||||
above would end up linking GPL code into postgres. This can be worked
|
||||
around by requiring the the necessary gcj libraries be installed
|
||||
separately and detected at configure time (like is done elsewhere). But
|
||||
is does (I think) present a problem for commercial products that would
|
||||
like to redistribute postgres with pljava.
|
||||
|
||||
|
||||
Another challenge here it that the java code is going to want to use the
|
||||
jdbc api when communicating with the database. One difficulty here is
|
||||
getting jdbc to be part of the same transaction as the calling java
|
||||
function. Such that if the java stored procedure selects or updates
|
||||
data it is doing it in the same transaction as the caller of the
|
||||
function. Today the jdbc driver only knows how to communicate via the
|
||||
FE/BE protocol which will end up creating a new process and transaction.
|
||||
The jdbc driver would need to not use the FE/BE protocol but instead
|
||||
probably use jni calls.
|
||||
|
||||
thanks,
|
||||
--Barry
|
||||
|
||||
|
||||
Tom Lane wrote:
|
||||
> I had an interesting conversation today with Tom Tromey and Andrew Haley
|
||||
> of Red Hat about how to implement "pljava" for Postgres. Rather than
|
||||
> futzing with an external JVM, their thought is to use gcj (gcc compiling
|
||||
> Java). It sounds like this approach would mostly just work, modulo
|
||||
> needing to use a small amount of C++ code to call the defined APIs for
|
||||
> gcj.
|
||||
>
|
||||
> This would not be a perfect solution: gcj isn't yet ported everywhere,
|
||||
> and it would probably not play nice on machines where the standard C
|
||||
> library isn't thread-safe. But it seems a lot more within reach than
|
||||
> the approaches we've discussed in the past.
|
||||
>
|
||||
> I'm not volunteering to try to do this, but I wanted to toss the idea
|
||||
> up in the air and see if anyone wants to try it. Tom and Andrew
|
||||
> indicated they'd be willing to help out with advice etc for anyone
|
||||
> who wants to take on the project.
|
||||
>
|
||||
> regards, tom lane
|
||||
>
|
||||
> ---------------------------(end of broadcast)---------------------------
|
||||
> TIP 2: you can get off all lists at once with the unregister command
|
||||
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||
>
|
||||
|
||||
|
||||
|
||||
|
||||
---------------------------(end of broadcast)---------------------------
|
||||
TIP 5: Have you checked our extensive FAQ?
|
||||
|
||||
http://www.postgresql.org/users-lounge/docs/faq.html
|
||||
|
||||
From pgsql-hackers-owner+M31175@postgresql.org Wed Oct 30 23:10:42 2002
|
||||
Return-path: <pgsql-hackers-owner+M31175@postgresql.org>
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id g9V4AeU28809
|
||||
for <pgman@candle.pha.pa.us>; Wed, 30 Oct 2002 23:10:41 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP
|
||||
id 8C73B476AD5; Wed, 30 Oct 2002 23:10:33 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with SMTP
|
||||
id 2E9DC4761DF; Wed, 30 Oct 2002 23:10:31 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP id 1A441475A1E
|
||||
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 23:10:25 -0500 (EST)
|
||||
Received: from sss.pgh.pa.us (unknown [192.204.191.242])
|
||||
by postgresql.org (Postfix) with ESMTP id 7D378474E5C
|
||||
for <pgsql-hackers@postgreSQL.org>; Wed, 30 Oct 2002 23:10:24 -0500 (EST)
|
||||
Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
|
||||
by sss.pgh.pa.us (8.12.5/8.12.5) with ESMTP id g9V4AThR003716;
|
||||
Wed, 30 Oct 2002 23:10:29 -0500 (EST)
|
||||
To: Barry Lind <blind@xythos.com>
|
||||
cc: pgsql-hackers@postgresql.org
|
||||
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||
In-Reply-To: <3DC0AA42.4000205@xythos.com>
|
||||
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com>
|
||||
Comments: In-reply-to Barry Lind <blind@xythos.com>
|
||||
message dated "Wed, 30 Oct 2002 19:57:54 -0800"
|
||||
Date: Wed, 30 Oct 2002 23:10:28 -0500
|
||||
Message-ID: <3715.1036037428@sss.pgh.pa.us>
|
||||
From: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Precedence: bulk
|
||||
Sender: pgsql-hackers-owner@postgresql.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Status: OR
|
||||
|
||||
Barry Lind <blind@xythos.com> writes:
|
||||
> I am not sure I follow. Are you suggesting:
|
||||
> 1) create function takes java source and then calls gcj to compile it
|
||||
> to native and build a .so from it that would get called at runtime?
|
||||
> or
|
||||
> 2) create function takes java source and just compiles to java .class
|
||||
> files and the runtime invokes the gcj java interpreter.
|
||||
> or I guess you could do both at the same time.
|
||||
|
||||
The impression I had (after not looking very closely) was that you could
|
||||
expect to compile to bytecodes on the fly and then run the gcj
|
||||
interpreter. But the .so alternative might be a good fallback if that
|
||||
doesn't work.
|
||||
|
||||
> In either case I am concerned about licensing issues. gcj is not under
|
||||
> a BSD style license. Depending on what you need you are either dealing
|
||||
> with regular GPL, LGPL, or LGPL with a special java exception.
|
||||
> I beleive (without giving it too much thought) that doing either 1 or 2
|
||||
> above would end up linking GPL code into postgres. This can be worked
|
||||
> around by requiring the the necessary gcj libraries be installed
|
||||
> separately and detected at configure time (like is done elsewhere). But
|
||||
> is does (I think) present a problem for commercial products that would
|
||||
> like to redistribute postgres with pljava.
|
||||
|
||||
Good point, but unless you want to build a BSD-license Java
|
||||
implementation, there will never be a pljava that doesn't have different
|
||||
licensing restrictions than PG itself does. gcj is at least more free
|
||||
than either Sun's or IBM's JVM ...
|
||||
|
||||
> Another challenge here it that the java code is going to want to use the
|
||||
> jdbc api when communicating with the database.
|
||||
|
||||
Yes. I think we'd need a new implementation of jdbc that sits atop SPI
|
||||
(invoked via jni I guess) rather than a FE/BE connection. How well
|
||||
layered is our jdbc code --- would this mean a large rewrite, or just
|
||||
rolling in a new bottom layer?
|
||||
|
||||
regards, tom lane
|
||||
|
||||
---------------------------(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
|
||||
|
||||
From pgsql-hackers-owner+M31202@postgresql.org Thu Oct 31 21:18:38 2002
|
||||
Return-path: <pgsql-hackers-owner+M31202@postgresql.org>
|
||||
Received: from west.navpoint.com (west.navpoint.com [207.106.42.13])
|
||||
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id gA12ILU00147
|
||||
for <pgman@candle.pha.pa.us>; Thu, 31 Oct 2002 21:18:37 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by west.navpoint.com (8.11.6/8.10.1) with ESMTP id g9VHv8h08054
|
||||
for <pgman@candle.pha.pa.us>; Thu, 31 Oct 2002 12:57:08 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP
|
||||
id 5CA844768F1; Thu, 31 Oct 2002 12:54:18 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with SMTP
|
||||
id 973E1476060; Thu, 31 Oct 2002 12:54:11 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP id 9A45F47668B
|
||||
for <pgsql-hackers@postgresql.org>; Thu, 31 Oct 2002 12:54:05 -0500 (EST)
|
||||
Received: from mail.xythos.com (sdsl-216-36-77-241.dsl.sjc.megapath.net [216.36.77.241])
|
||||
by postgresql.org (Postfix) with ESMTP id 0D7F5476684
|
||||
for <pgsql-hackers@postgresql.org>; Thu, 31 Oct 2002 12:54:05 -0500 (EST)
|
||||
Received: from ravms by mail.xythos.com with mail-ok (Exim 3.36 #3)
|
||||
id 187JXx-0006Pc-00; Thu, 31 Oct 2002 17:55:57 +0000
|
||||
Received: from sdsl-216-36-77-241.dsl.sjc.megapath.net ([216.36.77.241] helo=xythos.com)
|
||||
by mail.xythos.com with asmtp (Exim 3.36 #3)
|
||||
id 187JXx-0006PR-00; Thu, 31 Oct 2002 17:55:57 +0000
|
||||
Message-ID: <3DC175F7.90901@xythos.com>
|
||||
Date: Thu, 31 Oct 2002 10:27:03 -0800
|
||||
From: Barry Lind <blind@xythos.com>
|
||||
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826
|
||||
X-Accept-Language: en-us, en
|
||||
MIME-Version: 1.0
|
||||
To: Tom Lane <tgl@sss.pgh.pa.us>
|
||||
cc: pgsql-hackers@postgresql.org
|
||||
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com> <3715.1036037428@sss.pgh.pa.us>
|
||||
Content-Type: text/plain; charset=us-ascii; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Envelope-To: tgl@sss.pgh.pa.us,
|
||||
pgsql-hackers@postgreSQL.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Precedence: bulk
|
||||
Sender: pgsql-hackers-owner@postgresql.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Status: OR
|
||||
|
||||
|
||||
|
||||
Tom Lane wrote:
|
||||
> Barry Lind <blind@xythos.com> writes:
|
||||
>
|
||||
>>In either case I am concerned about licensing issues. gcj is not under
|
||||
>>a BSD style license. Depending on what you need you are either dealing
|
||||
>>with regular GPL, LGPL, or LGPL with a special java exception.
|
||||
>>I beleive (without giving it too much thought) that doing either 1 or 2
|
||||
>>above would end up linking GPL code into postgres. This can be worked
|
||||
>>around by requiring the the necessary gcj libraries be installed
|
||||
>>separately and detected at configure time (like is done elsewhere). But
|
||||
>>is does (I think) present a problem for commercial products that would
|
||||
>>like to redistribute postgres with pljava.
|
||||
>
|
||||
>
|
||||
> Good point, but unless you want to build a BSD-license Java
|
||||
> implementation, there will never be a pljava that doesn't have different
|
||||
> licensing restrictions than PG itself does. gcj is at least more free
|
||||
> than either Sun's or IBM's JVM ...
|
||||
>
|
||||
|
||||
It depends on what you mean by more free. An architecture that
|
||||
interacts with an external jvm would let you use any jvm (free ones as
|
||||
well as others). From a licensing standpoint it is generally easy to
|
||||
redistribute a jvm or expect the user to have one installed (most java
|
||||
based products out there today do this).
|
||||
|
||||
However in the proposal here we are talking about requiring a specific
|
||||
jvm (gcj) and actually linking parts of it into postgres. To the extent
|
||||
that GPL code is linked in the GPL extends to the entire code base. As
|
||||
I said previously there are ways to work around this, but it becomes
|
||||
tricky. Especially when a commercial product wants to bundle postgres
|
||||
and pljava. That resulting bundle is probably entirely under the GPL
|
||||
and then any changes to it are also GPL. So it could be the case that
|
||||
this company would be prevented from submitting improvements they made
|
||||
back to the core product because their improvements are GPLed as a
|
||||
result of pljava.
|
||||
|
||||
Now having said all that, I have been monitoring the progres of gcj for
|
||||
some time because I think there are very interesting possibilities. And
|
||||
I am all for anyone who wants to look into it further and investigate
|
||||
the possiblities. I just want to raise the licensing issue because it
|
||||
can cause problems and it is better to think about them up front than
|
||||
after the fact.
|
||||
|
||||
>
|
||||
>>Another challenge here it that the java code is going to want to use the
|
||||
>>jdbc api when communicating with the database.
|
||||
>
|
||||
>
|
||||
> Yes. I think we'd need a new implementation of jdbc that sits atop SPI
|
||||
> (invoked via jni I guess) rather than a FE/BE connection. How well
|
||||
> layered is our jdbc code --- would this mean a large rewrite, or just
|
||||
> rolling in a new bottom layer?
|
||||
>
|
||||
|
||||
It isn't as well layered as it could be, but it isn't too bad. Overall
|
||||
it shouldn't be too much work, but not a little project either. One
|
||||
area that isn't well layered is the assumption that the raw data from
|
||||
the server is in text format, since that is what the FE/BE protocol
|
||||
provides. So all the conversion functions that convert to/from java
|
||||
datatypes do so in this format. This assumption runs deep into the
|
||||
code. As a first pass it would be easiest to get raw data from SPI
|
||||
convert to text and then convert to java datatypes instead of going
|
||||
directly from the internal SPI format directly to java datatypes. This
|
||||
could be improved upon later.
|
||||
|
||||
> regards, tom lane
|
||||
>
|
||||
|
||||
thanks,
|
||||
--Barry
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---------------------------(end of broadcast)---------------------------
|
||||
TIP 2: you can get off all lists at once with the unregister command
|
||||
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||
|
||||
From pgsql-hackers-owner+M31223@postgresql.org Fri Nov 1 07:34:24 2002
|
||||
Return-path: <pgsql-hackers-owner+M31223@postgresql.org>
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id gA1CYKU23527
|
||||
for <pgman@candle.pha.pa.us>; Fri, 1 Nov 2002 07:34:21 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP
|
||||
id C48C44762EE; Fri, 1 Nov 2002 07:34:13 -0500 (EST)
|
||||
Received: from postgresql.org (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with SMTP
|
||||
id 1F69C475F34; Fri, 1 Nov 2002 07:34:11 -0500 (EST)
|
||||
Received: from localhost (postgresql.org [64.49.215.8])
|
||||
by postgresql.org (Postfix) with ESMTP id 06581474E53
|
||||
for <pgsql-hackers@postgresql.org>; Fri, 1 Nov 2002 07:34:07 -0500 (EST)
|
||||
Received: from anchor-post-39.mail.demon.net (anchor-post-39.mail.demon.net [194.217.242.80])
|
||||
by postgresql.org (Postfix) with ESMTP id 7D34D474E44
|
||||
for <pgsql-hackers@postgresql.org>; Fri, 1 Nov 2002 07:34:06 -0500 (EST)
|
||||
Received: from lfix.demon.co.uk ([158.152.59.127] helo=linda.lfix.co.uk)
|
||||
by anchor-post-39.mail.demon.net with esmtp (Exim 3.36 #2)
|
||||
id 187b04-0002Pj-0U
|
||||
for pgsql-hackers@postgresql.org; Fri, 01 Nov 2002 12:34:08 +0000
|
||||
Received: from localhost
|
||||
([127.0.0.1] helo=localhost.localdomain ident=olly)
|
||||
by linda.lfix.co.uk with esmtp (Exim 3.36 #1 (Debian))
|
||||
id 187b04-0007zb-00
|
||||
for <pgsql-hackers@postgresql.org>; Fri, 01 Nov 2002 12:34:08 +0000
|
||||
Subject: Re: [HACKERS] PG functions in Java: maybe use gcj?
|
||||
From: Oliver Elphick <olly@lfix.co.uk>
|
||||
To: pgsql-hackers@postgresql.org
|
||||
In-Reply-To: <3DC175F7.90901@xythos.com>
|
||||
References: <819.1036006197@sss.pgh.pa.us> <3DC0AA42.4000205@xythos.com>
|
||||
<3715.1036037428@sss.pgh.pa.us> <3DC175F7.90901@xythos.com>
|
||||
Content-Type: text/plain
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Mailer: Ximian Evolution 1.0.8
|
||||
Date: 01 Nov 2002 12:34:08 +0000
|
||||
Message-ID: <1036154048.7925.73.camel@linda>
|
||||
MIME-Version: 1.0
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Precedence: bulk
|
||||
Sender: pgsql-hackers-owner@postgresql.org
|
||||
X-Virus-Scanned: by AMaViS new-20020517
|
||||
Status: OR
|
||||
|
||||
On Thu, 2002-10-31 at 18:27, Barry Lind wrote:
|
||||
|
||||
> However in the proposal here we are talking about requiring a specific
|
||||
> jvm (gcj) and actually linking parts of it into postgres. To the extent
|
||||
> that GPL code is linked in the GPL extends to the entire code base. As
|
||||
> I said previously there are ways to work around this, but it becomes
|
||||
> tricky. Especially when a commercial product wants to bundle postgres
|
||||
> and pljava. That resulting bundle is probably entirely under the GPL
|
||||
> and then any changes to it are also GPL. So it could be the case that
|
||||
> this company would be prevented from submitting improvements they made
|
||||
> back to the core product because their improvements are GPLed as a
|
||||
> result of pljava.
|
||||
|
||||
Nothing that company does can affect the licensing of PostgreSQL itself
|
||||
- it doesn't belong to them, so they cannot change its licence.
|
||||
|
||||
Nothing in the GPL forces them to put GPL copyright on their own
|
||||
alterations.
|
||||
|
||||
What they cannot do is to _distribute_ binary code that links to GPL
|
||||
code while giving fewer rights to their distributees than they
|
||||
themselves received with the GPL code, whether in respect of their own
|
||||
code or the GPL code. Therefore they would be required to make their
|
||||
source changes available to anyone to whom they gave a binary, and they
|
||||
would not be able to restrict the further distribution of those
|
||||
changes. They can contribute those changes to the project under
|
||||
whatever licence they wish that is acceptable to the project.
|
||||
|
||||
Furthermore, gcj is part of the GNU compiler collection, like gcc, and
|
||||
using it does not in itself cause code compiled under it to be subject
|
||||
to the GPL. Linking to its runtime library would normally cause that,
|
||||
but the gcj-3.0 copyright contains the following text:
|
||||
|
||||
========================================================================
|
||||
The libgcj library is licensed under the terms of the GNU General
|
||||
Public License, with this special exception:
|
||||
|
||||
As a special exception, if you link this library with other files
|
||||
to produce an executable, this library does not by itself cause
|
||||
the resulting executable to be covered by the GNU General Public
|
||||
License. This exception does not however invalidate any other
|
||||
reasons why the executable file might be covered by the GNU
|
||||
General Public License.
|
||||
========================================================================
|
||||
|
||||
--
|
||||
Oliver Elphick Oliver.Elphick@lfix.co.uk
|
||||
Isle of Wight, UK
|
||||
http://www.lfix.co.uk/oliver
|
||||
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
|
||||
========================================
|
||||
"But they that wait upon the LORD shall renew their
|
||||
strength; they shall mount up with wings as eagles;
|
||||
they shall run, and not be weary; and they shall walk,
|
||||
and not faint." Isaiah 40:31
|
||||
|
||||
|
||||
---------------------------(end of broadcast)---------------------------
|
||||
TIP 2: you can get off all lists at once with the unregister command
|
||||
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user