Re: [CORE] GPL Source and Copyright Questions

Started by Tom Lanealmost 20 years ago54 messageshackers
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

[ redirecting to -hackers, as I see no need for this to be a core issue ]

Charles Comiskey <comiskey@us.ibm.com> writes:

Hello,
I've recently looked through the PostgreSQL code and a couple of questions
surfaced. I was hoping someone here may be able to answer them. Two have
links to possible GPL sources and the third is just a contribution
question.

item #1: Does the geo_ops.c file contain GPL code?
Embedded within the geo_ops.c file is a John Franks copyright statement
referring to wn/image.c file from WN Server 1.15.1. WN Server appears to
have been under the GPL license since 0.94 and continues to be offered
under the GPL license today. John's letter to Linux Journal seems to only
point the user to his WN Server distribution vs granting any specific
license.

Questions:
1) Is any John Franks code really in this file?
2) Did John provide a separate license for PostgreSQL to license it under
the BSD license?

This code seems to have been inserted by Tom Lockhart on 1997-07-29
(geo_ops.c rev 1.13). Tom, any info on the copyright status?

References:
- 1994 e-mail with GPL reference to WN Server v0.94:
http://1997.webhistory.org/www.lists/www-talk.1994q4/1080.html
- 1995 e-mail from John with GPL license text reference:
http://1997.webhistory.org/www.lists/www-talk.1995q1/0482.html
- WN Server url today: http://hopf.math.northwestern.edu/
- Link to Linux Journal article: http://www.linuxjournal.com/article/2197

item #2: Is dllinit.c GPL code?
The file dllinit.c, located in the src/utils directory documents the
author as Mumit Khan. Did Mumit Khan contribute this code and did he
contribute it for distribution under the PostgreSQL license? If I read
correctly, the name stamp in CVS does not indicate that Mumit Khan
directly contributed this file. I ask because this question has surfaced
as a forum item for a different project and Mumit Khan directly answered
their forum posting (http://curl.haxx.se/mail/lib-2002-11/0061.html).

Per the comments in that thread, it would be pretty trivial to either
rewrite or remove this file. I don't think there is anything there that
amounts to protectable content (and Mumit evidently agrees, see link)
but let's do something about it anyway. Can some of the Windows folk
check whether we can just remove it?

item #3: Carsten Wolff copyright in informix.c file
The file informix.c contains a copyright from Carsten Wolff. Did Carsten
directly contribute this file to the PostgreSQL project?

This code was added by Michael Meskes in informix.c rev 1.6
(2003-05-06). Michael, any info on the exact copyright status?

Thank you,
Charles Comiskey
Tivoli Software
IBM Software Group
comiskey@us.ibm.com
919.224.1223 or TL 687-1223

regards, tom lane

#2Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#1)

item #2: Is dllinit.c GPL code?
The file dllinit.c, located in the src/utils directory

documents the

author as Mumit Khan. Did Mumit Khan contribute this code

and did he

contribute it for distribution under the PostgreSQL license? If I
read correctly, the name stamp in CVS does not indicate that Mumit
Khan directly contributed this file. I ask because this

question has

surfaced as a forum item for a different project and Mumit Khan
directly answered their forum posting

(http://curl.haxx.se/mail/lib-2002-11/0061.html).

Per the comments in that thread, it would be pretty trivial
to either rewrite or remove this file. I don't think there
is anything there that amounts to protectable content (and
Mumit evidently agrees, see link) but let's do something
about it anyway. Can some of the Windows folk check whether
we can just remove it?

I don't think it's needed on Win32. It's not included in my VC++ build,
because I forgot it :-), and it works just fine.

The point is that as long as we don't do anything in it (which we
don't), the runtime supplied default should be just fine.

I can't speak for cygwin, just standard win32.

//Magnus

#3Josh Berkus
josh@agliodbs.com
In reply to: Magnus Hagander (#2)

Tom,

Augh. Does this mean that we need to "backpatch" earlier versions to remove
the possible GPL links?

--
--Josh

Josh Berkus
PostgreSQL @ Sun
San Francisco

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#2)

"Magnus Hagander" <mha@sollentuna.net> writes:

item #2: Is dllinit.c GPL code?

I don't think it's needed on Win32. It's not included in my VC++ build,
because I forgot it :-), and it works just fine.
The point is that as long as we don't do anything in it (which we
don't), the runtime supplied default should be just fine.
I can't speak for cygwin, just standard win32.

The part of it that seems not to be a no-op is

#ifdef __CYGWIN__
__hDllInstance_base = hInst;
#endif /* __CYGWIN__ */

#ifdef __CYGWIN__
_impure_ptr = __imp_reent_data;
#endif

and the whole thing is wrapped in

#if CYGWIN_VERSION_DLL_MAJOR < 1001

so presumably this is only needed for old Cygwin versions. Can anyone
say how old "1001" is and whether we still ought to care about it?

regards, tom lane

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#3)

Josh Berkus <josh@agliodbs.com> writes:

Augh. Does this mean that we need to "backpatch" earlier versions to remove
the possible GPL links?

[ shrug... ] I'm not planning to panic; we've still got explicit GPL
code that's not been cleaned out of contrib/ yet. (Um, weren't you on
the hook to move those modules to pgfoundry projects?)

I think we should endeavor to clean up any license questions going
forward, but it's useless to worry about the back branches; they are
what they are, and anyone who actually wants to sue us could do so
anyway on the strength of releases already out there.

regards, tom lane

#6Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#5)

Tom,

[ shrug... ] I'm not planning to panic; we've still got explicit GPL
code that's not been cleaned out of contrib/ yet. (Um, weren't you on
the hook to move those modules to pgfoundry projects?)

Yeah, thanks for reminding me. Will do before feature freeze. As soon as
I can figure out how to generate a patch that removes directories.

I think we should endeavor to clean up any license questions going
forward, but it's useless to worry about the back branches; they are
what they are, and anyone who actually wants to sue us could do so
anyway on the strength of releases already out there.

Hmmm ... I don't know. I'd be in favor of providing patches in case people
care enough to fix the issue. Maybe not until the next general patch
release, but with that.

--
--Josh

Josh Berkus
PostgreSQL @ Sun
San Francisco

#7Bort, Paul
pbort@tmwsystems.com
In reply to: Tom Lane (#4)

so presumably this is only needed for old Cygwin versions. Can anyone
say how old "1001" is and whether we still ought to care about it?

IIRC, I've been on 1.5.x for at least three years. 1.0/1.1 seems to be
around 2000/2001, based on a quick Google. So it's definitely older than
PG 7.3.

Regards,
Paul Bort

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#6)

Josh Berkus <josh@agliodbs.com> writes:

Yeah, thanks for reminding me. Will do before feature freeze. As soon as
I can figure out how to generate a patch that removes directories.

Don't worry about that; CVS never deletes directories. But anyway,
I can easily handle removing the code. I just want someone else to
stuff it into pgfoundry, because I'm not up to speed on pgfoundry.

I believe the current hit-list for modules to move to pgfoundry is

adddepend
dbase
dbmirror
fulltextindex
mSQL-interface
mac
oracle
tips
userlock

regards, tom lane

#9Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#8)

Tom,

adddepend
dbase
dbmirror
fulltextindex
mSQL-interface
mac
oracle
tips
userlock

I think you're right. I will do this before I leave town on the 30th.

--
--Josh

Josh Berkus
PostgreSQL @ Sun
San Francisco

#10Stefan Kaltenbrunner
stefan@kaltenbrunner.cc
In reply to: Tom Lane (#8)

Tom Lane wrote:

Josh Berkus <josh@agliodbs.com> writes:

Yeah, thanks for reminding me. Will do before feature freeze. As soon as
I can figure out how to generate a patch that removes directories.

Don't worry about that; CVS never deletes directories. But anyway,
I can easily handle removing the code. I just want someone else to
stuff it into pgfoundry, because I'm not up to speed on pgfoundry.

I believe the current hit-list for modules to move to pgfoundry is

adddepend
dbase
dbmirror
fulltextindex
mSQL-interface
mac
oracle
tips
userlock

one thing to note is that at least on IRC we are still getting a notable
number of questions about fixing up constraint triggers left over from
importing dumps of old pg versions.
The usual answer to that is "try contrib/adddepend" - but i guess
redirecting them to pgfoundry will work too.

Stefan

#11Andrew Dunstan
andrew@dunslane.net
In reply to: Bort, Paul (#7)

Bort, Paul wrote:

so presumably this is only needed for old Cygwin versions. Can anyone
say how old "1001" is and whether we still ought to care about it?

IIRC, I've been on 1.5.x for at least three years. 1.0/1.1 seems to be
around 2000/2001, based on a quick Google. So it's definitely older than
PG 7.3.

1.3 was announced in May 2001 according to the cygwin announce mailing
list archives, so I think we can safely ignore the section in question.
If anyone hasn't upgraded their cygwin since then they probably have
more problems than this would give them.

cheers

andrew

#12Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#11)

Andrew Dunstan <andrew@dunslane.net> writes:

Bort, Paul wrote:

so presumably this is only needed for old Cygwin versions. Can anyone
say how old "1001" is and whether we still ought to care about it?

IIRC, I've been on 1.5.x for at least three years. 1.0/1.1 seems to be
around 2000/2001, based on a quick Google. So it's definitely older than
PG 7.3.

1.3 was announced in May 2001 according to the cygwin announce mailing
list archives, so I think we can safely ignore the section in question.

OK, so let's yank the file altogether and see what happens.

I can make a cut at fixing the makefiles based on removing references to
DLLINIT, but it might be better if someone who's in a position to test
the results on Windows did the patch ...

regards, tom lane

#13Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#1)

Tom Lane wrote:

Charles Comiskey <comiskey@us.ibm.com> writes:

item #3: Carsten Wolff copyright in informix.c file
The file informix.c contains a copyright from Carsten Wolff. Did Carsten
directly contribute this file to the PostgreSQL project?

Wow, I see what mess we would be into if we had retained the per-person
copyright message on each file.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

#14Larry Rosenman
ler@lerctr.org
In reply to: Josh Berkus (#9)

Josh Berkus wrote:

Tom,

adddepend
dbase
dbmirror
fulltextindex
mSQL-interface
mac
oracle
tips
userlock

I think you're right. I will do this before I leave town on the 30th.

before anyone asks, the files I wrote in contrib/mac are free to be licensed
any way the
project sees fit.

LER

--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 512-248-2683 E-Mail: ler@lerctr.org
US Mail: 430 Valona Loop, Round Rock, TX 78681-3893

#15Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#12)

Tom Lane wrote:

OK, so let's yank the file altogether and see what happens.

I can make a cut at fixing the makefiles based on removing references to
DLLINIT, but it might be better if someone who's in a position to test
the results on Windows did the patch ...

Something has broken Cygwin in the last 18 days ;-(

See
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=gibbon&amp;dt=2006-06-22%2021:59:16

I will have a look to see if 8.1 works with ripping this out.

cheers

andrew

#16Andrew Dunstan
andrew@dunslane.net
In reply to: Andrew Dunstan (#15)

Andrew Dunstan wrote:

Tom Lane wrote:

OK, so let's yank the file altogether and see what happens.

I can make a cut at fixing the makefiles based on removing references to
DLLINIT, but it might be better if someone who's in a position to test
the results on Windows did the patch ...

Something has broken Cygwin in the last 18 days ;-(

See
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=gibbon&amp;dt=2006-06-22%2021:59:16

I will have a look to see if 8.1 works with ripping this out.

On REL8_1_STABLE sources commenting out the DLLINIT definition in
Makefile.cygwin works just fine. Same goes for
Win32/HEAD/Makefile.win32. I just did complete (unreported) buildfarm
run with these changes made, so I think ripping that out should work.

Meanwhile, I'd like to know how to fix the Cygwin build on HEAD. I
suspect it was the MSVC "improvements" that did it.

cheers

andrew

#17Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#16)

Andrew Dunstan <andrew@dunslane.net> writes:

On REL8_1_STABLE sources commenting out the DLLINIT definition in
Makefile.cygwin works just fine. Same goes for
Win32/HEAD/Makefile.win32. I just did complete (unreported) buildfarm
run with these changes made, so I think ripping that out should work.

OK, I'll do that.

Meanwhile, I'd like to know how to fix the Cygwin build on HEAD. I
suspect it was the MSVC "improvements" that did it.

Probably. This is the commit:

2006-06-07 18:24 momjian

* configure, configure.in, src/backend/libpq/ip.c,
src/backend/port/dynloader/win32.c,
src/backend/port/win32/Makefile,
src/backend/postmaster/postmaster.c,
src/backend/postmaster/syslogger.c, src/backend/utils/adt/float.c,
src/backend/utils/fmgr/dfmgr.c, src/backend/utils/mb/encnames.c,
src/bin/initdb/initdb.c, src/bin/pg_controldata/pg_controldata.c,
src/bin/pg_ctl/pg_ctl.c, src/bin/pg_dump/pg_backup_archiver.c,
src/bin/pg_dump/pg_backup_db.c, src/bin/pg_dump/pg_backup_null.c,
src/bin/pg_dump/pg_backup_tar.c, src/bin/pg_dump/pg_dump.c,
src/bin/pg_dump/pg_dumpall.c, src/bin/pg_dump/pg_restore.c,
src/bin/pg_resetxlog/pg_resetxlog.c, src/bin/psql/command.c,
src/bin/psql/copy.c, src/bin/psql/print.c, src/bin/psql/win32.mak,
src/include/c.h, src/include/getaddrinfo.h,
src/include/pg_config.h.win32, src/include/port.h,
src/include/libpq/pqcomm.h, src/include/port/win32.h,
src/include/port/win32_msvc/dirent.h,
src/include/port/win32_msvc/unistd.h,
src/include/port/win32_msvc/utime.h,
src/include/port/win32_msvc/sys/file.h,
src/include/port/win32_msvc/sys/param.h,
src/include/port/win32_msvc/sys/time.h,
src/include/storage/s_lock.h, src/interfaces/libpq/fe-connect.c,
src/interfaces/libpq/fe-misc.c, src/interfaces/libpq/win32.c,
src/interfaces/libpq/win32.mak, src/port/dirent.c, src/port/exec.c,
src/port/getaddrinfo.c, src/port/inet_aton.c, src/port/thread.c,
src/port/win32error.c, src/timezone/localtime.c: Prepare code to be
built by MSVC:

o remove many WIN32_CLIENT_ONLY defines
o add WIN32_ONLY_COMPILER define
o add 3rd argument to open() for portability
o add include/port/win32_msvc directory for
system includes

Magnus Hagander

regards, tom lane

#18Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#17)

Tom Lane wrote:

Meanwhile, I'd like to know how to fix the Cygwin build on HEAD. I
suspect it was the MSVC "improvements" that did it.

Probably. This is the commit:

2006-06-07 18:24 momjian

[file list snipped]

Prepare code to be
built by MSVC:

o remove many WIN32_CLIENT_ONLY defines
o add WIN32_ONLY_COMPILER define
o add 3rd argument to open() for portability
o add include/port/win32_msvc directory for
system includes

Magnus Hagander

Yes.

Frankly this patch has significant infelicities. For example, what is
the reason for removing the standard protection against double inclusion
that header files should usually have from pg_config.h.win32?

I assume that no test was done to see if this broke Cygwin, despite the
fact that if you have a Windows box to test on, checking that you
haven't broken Cygwin should not be too difficult.. And why do win32 and
cygwin now not include at all pg_config_os.h?

I am not sure I know where to begin to look to find out how to fix
things, and I don't have the time to do it either.

cheers

andrew

#19Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#16)

Andrew Dunstan <andrew@dunslane.net> writes:

Meanwhile, I'd like to know how to fix the Cygwin build on HEAD. I
suspect it was the MSVC "improvements" that did it.

The patch to c.h certainly had no compunction about possibly changing
the behavior for Cygwin:

***************
*** 82,94 ****
#endif

#if defined(WIN32) || defined(__CYGWIN__)
! #ifndef WIN32_CLIENT_ONLY
! /* We have to redefine some system functions after they are included above */
! #include "pg_config_os.h"
! #else
! #include "port/win32.h" /* We didn't run configure, but this is our
! * port file */
! #endif
#endif

  /* Must be before gettext() games below */
--- 80,90 ----
  #endif

#if defined(WIN32) || defined(__CYGWIN__)
! /* We have to redefine some system functions after they are included above.
! *
! * use port/win32.h directly to work on both mingw and non-mingw.
! */
! #include "port/win32.h"
#endif

/* Must be before gettext() games below */

I'm not too sure about the changes in getaddrinfo.c, either.

regards, tom lane

#20Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#19)

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

Meanwhile, I'd like to know how to fix the Cygwin build on HEAD. I
suspect it was the MSVC "improvements" that did it.

The patch to c.h certainly had no compunction about possibly changing
the behavior for Cygwin:

[snip]

I'm not too sure about the changes in getaddrinfo.c, either.

Maybe we need to divorce Cygwin and Win32.

cheers

andrew

#21Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#20)
#22Thomas Lockhart
lockhart@fourpalms.org
In reply to: Tom Lane (#1)
#23Tom Lane
tgl@sss.pgh.pa.us
In reply to: Thomas Lockhart (#22)
#24Dave Page
dpage@pgadmin.org
In reply to: Andrew Dunstan (#15)
#25Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#21)
#26Michael Meskes
meskes@postgresql.org
In reply to: Tom Lane (#1)
#27Andrew Dunstan
andrew@dunslane.net
In reply to: Dave Page (#24)
#28John DeSoi
desoi@pgedit.com
In reply to: Dave Page (#24)
#29Tom Lane
tgl@sss.pgh.pa.us
In reply to: Michael Meskes (#26)
#30Dave Page
dpage@pgadmin.org
In reply to: John DeSoi (#28)
#31Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dave Page (#24)
#32Dave Page
dpage@pgadmin.org
In reply to: Tom Lane (#31)
#33Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dave Page (#32)
#34Larry Rosenman
ler@lerctr.org
In reply to: Tom Lane (#33)
#35Michael Meskes
meskes@postgresql.org
In reply to: Tom Lane (#29)
#36Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#33)
#37Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#36)
#38Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#37)
#39Adrian Maier
adrian.maier@gmail.com
In reply to: Andrew Dunstan (#38)
#40Magnus Hagander
magnus@hagander.net
In reply to: Magnus Hagander (#25)
#41Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#40)
#42Magnus Hagander
magnus@hagander.net
In reply to: Tom Lane (#41)
#43Robert Treat
xzilla@users.sourceforge.net
In reply to: Andrew Dunstan (#38)
#44Bruce Momjian
bruce@momjian.us
In reply to: Michael Meskes (#26)
#45Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#1)
#46Michael Meskes
meskes@postgresql.org
In reply to: Bruce Momjian (#44)
#47Dave Page
dpage@pgadmin.org
In reply to: Robert Treat (#43)
#48Bruce Momjian
bruce@momjian.us
In reply to: Michael Meskes (#46)
#49Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Dave Page (#47)
#50Robert Treat
xzilla@users.sourceforge.net
In reply to: Dave Page (#47)
#51Dave Page
dpage@pgadmin.org
In reply to: Robert Treat (#50)
#52Dave Page
dpage@pgadmin.org
In reply to: Devrim GÜNDÜZ (#49)
#53Josh Berkus
josh@agliodbs.com
In reply to: Dave Page (#51)
#54Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#48)