discuss: LDP Licence at http://tldp.org/COPYRIGHT.html, and changing in-place


Previous by date: 28 Jan 2004 15:26:24 -0000 Re: manpages from the IEEE and The Open Group, Alexander Voropay
Next by date: 28 Jan 2004 15:26:24 -0000 Re: ISBN numbers for LDP docs?, Guylhem Aznar
Previous in thread: 28 Jan 2004 15:26:24 -0000 Re: LDP Licence at http://tldp.org/COPYRIGHT.html, and changing in-place, Rick Moen
Next in thread:

Subject: Re: LDP Licence at http://tldp.org/COPYRIGHT.html, and changing in-place
From: Guylhem Aznar ####@####.####
Date: 28 Jan 2004 15:26:24 -0000
Message-Id: <20040128113049.1dc9fc15.athome@externe.net>

Bonjour, Hello,
> Ah, thank you for elucidating!  (I really wasn't trying to be difficult,
> honest.  I honestly didn't understand your suggestion.)

No problem.

> I get the recurring impression that LDP volunteers seriously think that 
> changing the document at that URL has the legal effect of changing
> covered documents' terms of usage.  That is most unfortunate, in my

I don't think it has the legal effect, I think that it *might* and if that
should ever come to court I wouldn't want to loose one possible interpretation.

> The same variety of problem _could_ theoretically arise with software
> documentation -- except that it's very rare to need to create such a
> combination of disparate documents.  If you do, and there's a conflict, 

That's the point! I would like to see more combinations, becoming full books,
distributed under a free license - just look at KDE or GNOME : individual
software, when combined, create a whole greater that the parts ("gestalt") : a
full desktop suite.

The same should be possible with documentation. Licensing is currently the 1st
cause it doesn't happen IMHO.

> So, are you saying you want fewer licences, or are you saying you want
> forkable ones?  Those are different issues, and you seem to be
> suggesting they're identical.

The result will be. Ideally I'd best like 1 forkable license, to reduce

> Now, having "fewer licences" would no doubt be less messy and easier to
> think about.  Good luck convincing authors.  ;->

Right - that's the main issue :-)

You know, when I wrote my first application I really didn't want to license it
under the GPL - I feared it may become something completely different than I
intended, that I would be stripped of my work, and that there was no need for
the GPL

I quickly realised why I should overcome these basic fears - to let my work
become part of the future. Maybe it would be completely discarded? Maybe it
would find a new life? Anyway the only decision I could take was "would I like
to improve its chances to be helpful to other people in the future, even if it
may impair the possible benefits I have to do the contrary" ? I said yes and
since then only use the GPL

> 1.  New authors updating old documents doesn't require a "common
> licence".  It requires either the copyright holder's permission or a
> forkable licence.

Correct, but this will create mutually incompatible groups of documentation -
like GPL and BSD in your exim example - which will depend on individual
permissions.

> 2.  It is unclear to me that "merging old documents" occurs more than
> once in a blue moon and isn't fairly easily dealt with (in such rare
> cases) as detailed previously.

Anyway it happens. If we want to fix the licensing issues, it should not be
forgotten.

> 3.  Having LDP documents included in distributions where licensing
> issues matter might (in some cases) require forkable licences, but it's
> illogical to suggest that it necessarily requires fewer licences.

Fewer licenses would make it easy to defend our point. Do you think Debian will
ever refuse non GPL software (say BSD ?) They can't afford that - they would
miss major parts such as X11. Can they refuse the GFDL, even without any
invariant section? They sure can - they will only loose a small portion of their
documentation.

> impression that you seek simplicity at the expense of much else, and
> that does not seem to bode well.

Yes I want more simplicity on license issues. If we can just agree to make new
authors or documents newly submitted accept that their document can be
relicensed to XX license if they can't be reached for 6 months, and if XX
license is forkable, I'll be happy.

> I strongly suggest you consult an experienced copyright attorney, if you
> are seriously contemplating this.  (I'm not an attorney of any stripe,
> but I greatly doubt that such a contract can confer copyright title --
> leaving aside whether authors are likely to agree to it.)

We have an attorney on the list and we will certainly consult one before taking
any decision. But we should try to agree on some kind of agreement to ask the
lawyer advice on that very agreement.

> 1.  If LDP adopts some "standard" licence, is it prepared to refuse
> admission to otherwise attractive contributions that have a slightly
> different forkable licence? 

Depending on the proposition of refused documentation, yes.

> 2.  If LDP author foo wishes to incorporate 200 lines from incompatibly
> licensed document bar, is his need to either get (or grant) a licence
> exception or rewrite 200 lines an earth-shaking problem?

It is. We can help him recomminding only some licenses.

> Make up your own mind, of course.  I'm not here to argue -- but I
> suspect that that policy change would limit LDP's appeal to authors for
> very little gain in return.

No decision will be taken without their feedback. All proposition are
acceptable.
And if we need to make a non-consensual choice, we can run a poll.

> Are you saying such hideous licensing problems _do_ exist, or was this just
> a farfetched hypothetical with no connection to present reality.

I'm saying such problems exist. 

> Please note that aggregation of such multiple documents into a printed
> book doesn't require that the constituent documents' licences be either
> forkable or compatible (where "compatibility" relates to creation of
> derivative works).  

But it certainly help with the book future maintainance - like moving some
chapter from one document to another.

> 2.  In that event, Debian would have the option of asking you to
> dual-licence.  Remember, a licence applies to an _instance_ of a
> creative work.  The copyright holder is always free to issue additional

Why GPL works so well and is so popular? Because it has reached the critical
mass.
Instead of having to ask to multiple copyright holders, you just choose the same
license and avoid all the issues.

I'd like to see that with documentation.

Best regards,
Guylhem


-- 
####@####.#### ####@####.####
http://externe.net/geekcode http://externe.net/photos http://externe.net/zaurus
GPG: 92EB37C1 DD11C9C9 20519D01 E8FA1B11 42975AF7     http://externe.net/pubkey

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Wed Jul 3 16:39:31 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0x9e77c6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0x9edda74>, global ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'})
   18         write(html('msg-pager') % ctxt)
   19         write('<hr>')
   20         sub_showmsg(ctxt, ctxt[MSGNUM])
   21         write('<hr>')
   22         write(html('msg-pager') % ctxt)
global sub_showmsg = <function sub_showmsg at 0x9e771ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=6576)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0x9e771b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x9ef6fcc>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9ef6fcc>, partnum=1)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 1, global rec_showpart = <function rec_showpart at 0x9e771b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x9efb04c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9efb04c>, partnum=2)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0x9e77144>, ctxt = {'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x9efb04c>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 58, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9efb04c>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0x9e6fe9c>, global html = <function html at 0x9e6fed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x9efd170>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0x9e6fe9c>, name = 'msg-application-pgp-signature'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x9e08a7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x9e8432c>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0x9e8432c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'