Python license (2.3)

A

Antoon Pardon

I have made a module derived from the Queue module deliverd
with python 2.3. I would like to make this module (called
tube) available for other people. However it is not clear
to me how I can do this in accordance with the python
license.

First of all it seems I have to make a sumary of how
my module differs from the original.

Second it seems I have to include the following in
my code:

"Copyright (c) 2001, 2002 Python Software Foundation;
All Rights Reserved"

Do I understand correctly?

Because I don't mind the first but I'm not so happy
with the second. Are there other things I have to
watch out for?
 
S

Steve Holden

Antoon said:
I have made a module derived from the Queue module deliverd
with python 2.3. I would like to make this module (called
tube) available for other people. However it is not clear
to me how I can do this in accordance with the python
license.

First of all it seems I have to make a sumary of how
my module differs from the original.
That would seem to apply primarily because this is a derivative product
of a Python distribution. Therefore, your description could be limited
to "removed the rest of the distribution" followed by specific details
of your changes making Queue into tube.
Second it seems I have to include the following in
my code:

"Copyright (c) 2001, 2002 Python Software Foundation;
All Rights Reserved"

Do I understand correctly?
I believe so.
Because I don't mind the first but I'm not so happy
with the second. Are there other things I have to
watch out for?
Since the PSF copyrighted the original work from which you are deriving,
you have already agreed to do this in any distributed derived work:

http://www.python.org/2.3/license.html

clearly says """provided, however, that PSF's License Agreement and
PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003 Python
Software Foundation; All Rights Reserved" are retained in Python 2.3
alone or in any derivative version prepared by Licensee."""

Should we wait until you publish tube and then remove *your* attribution
to claim the code as our own?

regards
Steve
 
A

Antoon Pardon

Op 2005-04-12 said:
That would seem to apply primarily because this is a derivative product
of a Python distribution. Therefore, your description could be limited
to "removed the rest of the distribution" followed by specific details
of your changes making Queue into tube.

I believe so.

Since the PSF copyrighted the original work from which you are deriving,
you have already agreed to do this in any distributed derived work:

http://www.python.org/2.3/license.html

clearly says """provided, however, that PSF's License Agreement and
PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003 Python
Software Foundation; All Rights Reserved" are retained in Python 2.3
alone or in any derivative version prepared by Licensee."""

Should we wait until you publish tube and then remove *your* attribution
to claim the code as our own?

Oh I see, I just have to include that attribution, next to my own.
I somehow got the idea that I had to hand over my copyright to
the Python Software Foundation.

What licence can I use? Somewhere they say you can combine python
code with GPL code. Does that mean that the resulting code has
to have both the GPL license as the PSF license, as both seem
to want that derived work uses the same license.
 
R

R. C. James Harlow

It seems I have to include the following in
my code:

"Copyright (c) 2001, 2002 Python Software Foundation;
All Rights Reserved"

Do I understand correctly?

You are of course allowed to *add* your own copyright statement:

"Copyright (c) 2001, 2002 Python Software Foundation;
All Rights Reserved
Copyright (c) 2005 Antoon Pardon;
All Rights Reserved"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBCW8w0Y6W16wIJgxQRAoaZAKCliuTwT8WuD92+zX3U9AIvCpvaGgCffM0B
Kch1nH7PzJtD1NbAvS/vvtg=
=ciFp
-----END PGP SIGNATURE-----
 
R

Robert Kern

Antoon said:
What licence can I use? Somewhere they say you can combine python
code with GPL code. Does that mean that the resulting code has
to have both the GPL license as the PSF license, as both seem
to want that derived work uses the same license.

No, the PSF does not want that. It does not say so anywhere in the
license text. Yes, you can GPL the derived work. The licenses are
compatible.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-12 said:
No, the PSF does not want that. It does not say so anywhere in the
license text. Yes, you can GPL the derived work. The licenses are
compatible.

This comes from the license text.

| 2. Subject to the terms and conditions of this License Agreement, PSF
| hereby grants Licensee a nonexclusive, royalty-free, world-wide
| license to reproduce, analyze, test, perform and/or display publicly,
| prepare derivative works, distribute, and otherwise use Python 2.3
| alone or in any derivative version, provided, however, that PSF's
| License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
| 2001, 2002, 2003 Python Software Foundation; All Rights Reserved" are
| retained in Python 2.3 alone or in any derivative version prepared by
| Licensee.

So what should I understand by: provided, however, that PSF's License
Agreement ... are retained in Python 2.3 alone or in any derivative
version prepared by Licensee.
 
R

Robert Kern

Antoon said:
This comes from the license text.

| 2. Subject to the terms and conditions of this License Agreement, PSF
| hereby grants Licensee a nonexclusive, royalty-free, world-wide
| license to reproduce, analyze, test, perform and/or display publicly,
| prepare derivative works, distribute, and otherwise use Python 2.3
| alone or in any derivative version, provided, however, that PSF's
| License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
| 2001, 2002, 2003 Python Software Foundation; All Rights Reserved" are
| retained in Python 2.3 alone or in any derivative version prepared by
| Licensee.

So what should I understand by: provided, however, that PSF's License
Agreement ... are retained in Python 2.3 alone or in any derivative
version prepared by Licensee.

Yes, the license text and the copyright notice must be attached. It
doesn't mean that the PSF license is the operative one for the
derivative work. You can put *your* own terms on top for *your* own code
as long as you can satisfy the requirements of the PSF license, which
are very light.

Read Larry Rosen's book:

http://www.rosenlaw.com/oslbook.htm

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-13 said:
Yes, the license text and the copyright notice must be attached. It
doesn't mean that the PSF license is the operative one for the
derivative work.

Why attach a license that is not operative. That doesn't make sense
to me and will IMO just create confusion.
You can put *your* own terms on top for *your* own code
as long as you can satisfy the requirements of the PSF license, which
are very light.

Read Larry Rosen's book:

http://www.rosenlaw.com/oslbook.htm

I skimmed it and it doesn't seem to contain anything that helps me
with the PSF. If it does could you at least point me to the right
chapter.
 
R

Robert Kern

Antoon said:
Op 2005-04-13, Robert Kern schreef <[email protected]>:


Why attach a license that is not operative. That doesn't make sense
to me and will IMO just create confusion.

Because it's not your code. The tiny obligation that you have to satisfy
is to say that some of the code comes from someone else and is available
under such-and-such a license. That's it. You can keep the code hidden,
you can charge whatever you like for it, but you have to attribute it
properly. Open source licenses don't get much less restrictive than this.
I skimmed it and it doesn't seem to contain anything that helps me
with the PSF. If it does could you at least point me to the right
chapter.

Well besides reading to understand the mechanics of copyright and
licensing, you should read Chapter 5: Academic Licenses, a class of open
source licenses to which the PSF License belongs. The only thing
particularly different between the PSF License and most other academic
licenses (like BSD and MIT) is that the PSF License is more explicit.

Of course, IANAL and TINLA, so if you want real legal advice instead of
advice from random newsgroup bums like myself, you should talk to a lawyer.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-13 said:
Because it's not your code. The tiny obligation that you have to satisfy
is to say that some of the code comes from someone else and is available
under such-and-such a license. That's it. You can keep the code hidden,
you can charge whatever you like for it, but you have to attribute it
properly. Open source licenses don't get much less restrictive than this.

Well maybe this is a semantic problem. I wouldn't use the word "attach"
here. So what I seem obligated to do, is 1) Mentioning this came
from the python distribution and 2) explain where this distribution can
be attained and under what license.
Well besides reading to understand the mechanics of copyright and
licensing, you should read Chapter 5: Academic Licenses, a class of open
source licenses to which the PSF License belongs. The only thing
particularly different between the PSF License and most other academic
licenses (like BSD and MIT) is that the PSF License is more explicit.

Of course, IANAL and TINLA, so if you want real legal advice instead of
advice from random newsgroup bums like myself, you should talk to a lawyer.

Well if it comes so far I have to consult a lawyer I'd rather not publish
it in the first place.

The only reason I'm concerned is that this is to be part of a tutorial
and I prefer not to burden those who read the tutoral with any kind of
license. As far as I'm concerned people reading the tutorial can use
any code provided with it in any way they see fit.

I see this as my contribution to the communities who has provided me
with all kinds of things that are usefull to me. I'm willing to put
time into this, but if I have to spend money because it is impossible
otherwise to find out how to contribute legally, that is a hurdle
I'm reluctant to take.
 
T

Terry Reedy

Antoon Pardon said:
I see this as my contribution to the communities who has provided me
with all kinds of things that are usefull to me. I'm willing to put
time into this,

Great. My human, non-lawyer advice, if I were to give it, would be to
worry less and remember that PSF exists to promote Python, not to sue
Python promoters.
From what I understand from what you have written, you have written code
for a tutorial based on one module of the library. I personally would
treat this minor extraction differently from a 'derived' work consisting of
an alternate interpreter + library, such as from ActiveState, or Enthought,
or Jython, or Iron-Python. I think I would simply put lines in the header
something like:
"Derived from module heapify in the library included with CPython 2.x, (C)
<include PSA's copyright notice>, available from www.python.org/wherever.

Terry J. Reedy
 
B

Bengt Richter

Great. My human, non-lawyer advice, if I were to give it, would be to
worry less and remember that PSF exists to promote Python, not to sue
Python promoters.

for a tutorial based on one module of the library. I personally would
treat this minor extraction differently from a 'derived' work consisting of
an alternate interpreter + library, such as from ActiveState, or Enthought,
or Jython, or Iron-Python. I think I would simply put lines in the header
something like:
"Derived from module heapify in the library included with CPython 2.x, (C)
<include PSA's copyright notice>, available from www.python.org/wherever.
As with code, perhaps authoritative and well-done examples for different
situations would be the easiest to take patterns from.

If there were a collection of URLs to various such software and their license
notices in the wiki, perhaps that would help well motivated people like Antoon.

If it is important to get right, maybe the PSF should hire a lawyer to work up
some paradigmatic examples and put them in the wiki?

BTW, I dislike large legal boilerplate (that IIRC I've even seen occupying more
lines than the code it was describing in a few cases).

Is a simple one-line notice referring to the full license text somewhere legally sufficient?
How do you make the reference unambiguous? Md5 or SHA hash?

Regards,
Bengt Richter
 
R

Robert Kern

Antoon said:
Well maybe this is a semantic problem. I wouldn't use the word "attach"
here.

Fair enough. The license text is included *for reference*, not because
it is *the* license for the derived work. In fact, it *can't* be the
license of the derived work because you are not the PSF.
So what I seem obligated to do, is 1) Mentioning this came
from the python distribution and 2) explain where this distribution can
be attained and under what license.

The minimum is:

1) Put the copyright notice in.
2) Reference a copy of the PSF License. (Practically speaking, a URL
will probably do.)
3) List the modifications you made.
4) Put your copyright notice in and whatever terms you want to apply.
Well if it comes so far I have to consult a lawyer I'd rather not publish
it in the first place.

Then take the (free) advice that you asked for. And please do read
Rosen's book.
The only reason I'm concerned is that this is to be part of a tutorial
and I prefer not to burden those who read the tutoral with any kind of
license. As far as I'm concerned people reading the tutorial can use
any code provided with it in any way they see fit.

You can't *quite* go that far if you are deriving code from Python, but
it's about as close as you can get. You still have those light
restrictions about attribution and notification of changes.
I see this as my contribution to the communities who has provided me
with all kinds of things that are usefull to me. I'm willing to put
time into this, but if I have to spend money because it is impossible
otherwise to find out how to contribute legally, that is a hurdle
I'm reluctant to take.

You could take a look at what other people are doing. Most of us here
are writing and releasing software derived from Python, legally so and
without complication.

No one but your own lawyer can make any guarantees, but most of us here
have done just fine without one.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-13 said:
Fair enough. The license text is included *for reference*, not because
it is *the* license for the derived work. In fact, it *can't* be the
license of the derived work because you are not the PSF.


The minimum is:

1) Put the copyright notice in.
2) Reference a copy of the PSF License. (Practically speaking, a URL
will probably do.)
3) List the modifications you made.
4) Put your copyright notice in and whatever terms you want to apply.


Then take the (free) advice that you asked for.

I'll do that and I appreciate your time in giving it.
And please do read Rosen's book.

I started already.
You can't *quite* go that far if you are deriving code from Python, but
it's about as close as you can get. You still have those light
restrictions about attribution and notification of changes.

I'm not sure I follow. As far as I understand, I can license the result
however I see fit, as long as I go by the conditions for using the
original code. So it seems I can use a license so that the readers
of the tutorial don't have to be concerned in how they use the code.
You could take a look at what other people are doing. Most of us here
are writing and releasing software derived from Python, legally so and
without complication.

I would do that if I were just writing code I thought others could
find usefull. I then would feel no problem "burdening" those users
with the same kind of license I found in the product I took some
code from. But I also think that readers of documentation should
be free to use any code included in any way they see fit.
 
R

Robert Kern

Antoon said:
I'll do that and I appreciate your time in giving it.

Gladly given, and I apologize if I sound a bit snippy.
I started already.


I'm not sure I follow. As far as I understand, I can license the result
however I see fit, as long as I go by the conditions for using the
original code. So it seems I can use a license so that the readers
of the tutorial don't have to be concerned in how they use the code.

You can't take away the requirement to keep the PSF's copyright notice
on their bits of code. You can give permission for users to do what they
like with your parts of the code.

However, the requirements of the PSF license are about as trivial as you
get outside of the public domain.
I would do that if I were just writing code I thought others could
find usefull. I then would feel no problem "burdening" those users
with the same kind of license I found in the product I took some
code from. But I also think that readers of documentation should
be free to use any code included in any way they see fit.

If they have issues with distributing code derived from Python, why are
they reading a Python tutorial?

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-14 said:
If they have issues with distributing code derived from Python, why are
they reading a Python tutorial?

Try and look it from a students viewpoint. He is learing languages,
algorithms and so on. Now he is ready to write his own program.
Chances are high that he will rely on examples from the
courses/documentation he read. It is just not practical for someone
like that to figure out all the possible different licenses under
which he can use the examples from the various documenation sources.

Now if this documentation refers to code from yet another source
with its own license, using it becomes an utter nightmare for
the student, because now he has to figure out which piece of
the code is original from the author of the documentation and
which was copied from the other source.

Consideration like this, let me come to the conclusion that
code included with documentation should come with no strings
attached for the students to reuse.
 
R

Robert Kern

Antoon said:
Try and look it from a students viewpoint. He is learing languages,
algorithms and so on. Now he is ready to write his own program.
Chances are high that he will rely on examples from the
courses/documentation he read. It is just not practical for someone
like that to figure out all the possible different licenses under
which he can use the examples from the various documenation sources.

The PSF License is about as light as they come.
Now if this documentation refers to code from yet another source
with its own license, using it becomes an utter nightmare for
the student, because now he has to figure out which piece of
the code is original from the author of the documentation and
which was copied from the other source.

Then write your own code and don't use anyone else's. You can't offer
extra permissions for code that's not yours.
Consideration like this, let me come to the conclusion that
code included with documentation should come with no strings
attached for the students to reuse.

No such thing, really. Copyright law requires almost as much as the PSF
license. The MIT license is shorter, possibly more easily
understandable, but practically amounts to more-or-less the same thing.

In short, don't worry about it. Don't sue people, keep the attributions
intact, and probably no one will care.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 
A

Antoon Pardon

Op 2005-04-14 said:
The PSF License is about as light as they come.


Then write your own code and don't use anyone else's. You can't offer
extra permissions for code that's not yours.

Well then I'll just have to do that.
No such thing, really. Copyright law requires almost as much as the PSF
license. The MIT license is shorter, possibly more easily
understandable, but practically amounts to more-or-less the same thing.

If I read a tutorial or a course on algorithms both with examples.
Does copyright law require that I attribute if I reuse code
from these examples? Even if it was pseudo code that I had
to translate in an actual language.

Suppose some time has passed and I have to write similar code.
I cant find the documentation but this time I'm experienced
enough so that I can recreate the code. Do I still need to
attribute the code?

What if the code is so short that basically everyone that
solves the problem writes the same kind of code?
In short, don't worry about it. Don't sue people, keep the attributions
intact, and probably no one will care.

If they don't care, why did they attach such a license in the first
place.
 
R

Robert Kern

Antoon said:
Well then I'll just have to do that.




If I read a tutorial or a course on algorithms both with examples.
Does copyright law require that I attribute if I reuse code
from these examples?

If the amount copied is large enough.
Even if it was pseudo code that I had
to translate in an actual language.

Probably not. Copyright controls copying (and a few other things, but
they have less relevance in a software context).
Suppose some time has passed and I have to write similar code.
I cant find the documentation but this time I'm experienced
enough so that I can recreate the code. Do I still need to
attribute the code?

Again, probably not.
What if the code is so short that basically everyone that
solves the problem writes the same kind of code?

No, copyright requires creativity.

Rosen's book should answer these questions for you.

Sorry, that list should also have had "follow courteous practices with
other people's code" which includes listing changes and a reference to
the license of that code.
If they don't care, why did they attach such a license in the first
place.

Lawyers. The original license (the "CNRI License") was much briefer and
vaguer, although it amounts to the same requirements, practically. The
PSF license made those requirements, disclaimers, etc. explicit.

--
Robert Kern
(e-mail address removed)

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top