discuss: Filesystem paths in LDP documentation


Previous by date: 13 Apr 2002 19:49:24 -0000 Re: Some ideas on General Style, David Merrill
Next by date: 13 Apr 2002 19:49:24 -0000 Re: Filesystem paths in LDP documentation, Charles Curley
Previous in thread: 13 Apr 2002 19:49:24 -0000 Filesystem paths in LDP documentation, Colin Watson
Next in thread: 13 Apr 2002 19:49:24 -0000 Re: Filesystem paths in LDP documentation, Charles Curley

Subject: Re: Filesystem paths in LDP documentation
From: David Merrill ####@####.####
Date: 13 Apr 2002 19:49:24 -0000
Message-Id: <20020413204130.GB12986@lupercalia.net>

On Sat, Apr 13, 2002 at 03:58:45PM +0100, Colin Watson wrote:
> Hi,
> 
> I have http://bugs.debian.org/128917 open about the use of /usr/doc,
> /usr/man, and /usr/info in LDP documentation. Now that many
> distributions are moving or have moved to the Filesystem Hierarchy
> Standard with /usr/share/{doc,man,info}, it seems like it'd be
> reasonable to start referring readers to those locations instead.

That makes sense.

> The bug opens a wider issue, though. To what extent do readers of this
> list think it's reasonable for distributions to patch their LDP packages
> to refer to locally-appropriate paths? On the one hand, it may alleviate
> confusion when readers find documents referring to paths that aren't on
> their systems. On the other hand, the document probably won't be perfect
> for each distribution anyway unless the author planned it that way, I
> suspect most authors would rather that distributions didn't make local
> changes without passing them back, and I doubt I have time to go around
> carefully patching the whole LDP all the time.

It's always better to get the patch accepted upstream if possible. If
you have to patch locally, then so be it. The LDP will work with you
to get the fix added by the author, or we'll fix it ourselves if the
author does not.

> I'm strongly inclined to distribute only verbatim LDP documents.
> However, does anyone have any suggestions about what else I might do
> with this bug report, or general ideas about best practices for
> distributors?

My practice for this type of thing, when I was Editor, was to:

0) if the doc is unmaintained, just fix it
1) write the author with the bug report
2) add a note in the LDP database saying what I've done
3) put a tickle date in the LDP database record for the doc, two weeks
out
4) if mail bounces, fix it myself, mark author inactive
5) if no response by tickle date, fix it myself, mark author inactive

4 or 5 might cause the doc to be marked unmaintained, if there are no
active maintainers left.

I cannot do this, but Joy or another editor should.

hth,

-- 
David C. Merrill                         http://www.lupercalia.net
Linux Documentation Project                   ####@####.####
Lead Developer                             http://www.linuxdoc.org

Like any dictatorship, when things start to get tough Microsoft is going to
discover that it has lots of allies, but very few friends.
	--Dan Gillmor, San Jose Mercury Columnist

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Sat Jul 6 03:27:40 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 0x96bac6c>
 /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 0x96ccbc4>, global ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 1, '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 0x96ba1ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, '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': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=2783)
  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 0x96ba1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x972af4c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x972af4c>, 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 0x96ba1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x973202c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x973202c>, 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 0x96ba144>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x973202c>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x973202c>)
  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 0x96b2e9c>, global html = <function html at 0x96b2ed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x9733090>
 /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 0x96b2e9c>, 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 0x964ba7c>, 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 0x96c946c>, 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 0x96c946c>, 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'