discuss: Licensing on the wearable howto


Previous by date: 12 Dec 2006 18:51:56 -0000 Re: Licensing on the wearable howto, Karl O. Pinc
Next by date: 12 Dec 2006 18:51:56 -0000 Re: A new volunteer, Brian White
Previous in thread: 12 Dec 2006 18:51:56 -0000 Re: Licensing on the wearable howto, Karl O. Pinc
Next in thread: 12 Dec 2006 18:51:56 -0000 Re: Licensing on the wearable howto, Machtelt Garrels

Subject: Re: [discuss] Licensing on the wearable howto
From: Alex Nordstrom ####@####.####
Date: 12 Dec 2006 18:51:56 -0000
Message-Id: <200612130350.04705.lx@se.linux.org>

Wednesday, 13 December 2006 00:48, ####@####.#### wrote:
> The wearable HOWTO, located at
> http://tldp.org/HOWTO/Wearable-HOWTO.html, has a section entitled
> "Copyright, Disclaimer and Trademarks" which contains the following
> text:
>

...

>
> This means that all sections of the document are Invariant Sections.

...

> The "Invariant Sections" are certain Secondary Sections whose titles
> are designated, as being those of Invariant Sections, in the notice
> that says that the Document is released under this License.  If a
> section does not fit the above definition of Secondary then it is not
> allowed to be designated as Invariant.

For lazy readers: The entire licence may be void. My layman 
recommendation is to cease distributing the document until the author 
agrees on less ambiguous licensing terms.

It's not the first time that the GFDL has been abused in this manner. 
Even Gnu themselves once managed to mess this up the GDB documentation. 
It looks like what the Wearable author is looking for is something like 
CC-by-nd.

Unfortunately, the GFDL is so unclear about what happens in this 
situation that it is impossible to say with reasonable certainty which 
parts of the licence, if any, would be upheld.

We are simply told that the designation made is "not allowed." Even so, 
by provision 4G, modification of such an invalid designation would be a 
violation of the licence. It is unclear whether provision 4L applies; 
it may be illegal to distribute translations without them being 
accompanied by the original sections at all times.

Since the GFDL, unlike the CC licences and most professionally written 
agreements, does not contain a clause to protect the remainder of the 
licence in the case of invalidity or unenforceability of a section, it 
is possible that the whole licence is void and that redistribution 
beyond what is permissible under general copyright law is not allowed.

(I am not a laywer; the closest I come is a couple of introductory law 
units as part of my business degree, one of which dealt with Australian 
contract law. I have, however, studied the GFDL in depth as part of 
co-translating it and summarising the criticisms against it a while 
ago.)

-- 
Alex Nordstrom
http://lx.n3.net/
Please do not CC me in followups;
I am subscribed to the tldp discussion list.

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Sat Jun 29 06:05:34 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 0x8b8dc6c>
 /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 0x8ba417c>, global ctxt = {'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...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 0x8b8d1ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=10190)
  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 0x8b8d1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x8c00e2c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8c00e2c>, 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 0x8b8d1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x8c00f0c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8c00f0c>, 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 0x8b8d144>, ctxt = {'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x8c00f0c>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 2, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x8c00f0c>)
  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 0x8b85e9c>, global html = <function html at 0x8b85ed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x8c039f8>
 /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 0x8b85e9c>, 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 0x8b1ea7c>, 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 0x8b9db6c>, 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 0x8b9db6c>, 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'