Description

Xslt parser on Debian stable do not work

Example

Add URL that show the bug, screenshot or test wiki markup that fail...

now the xslt option is disabled

Details

4Suite-1.0a3

other information here for page XsltVersion

UriException: Invalid base URI: wiki://Self/XsltVersion Please include this information in your bug reports!:
Python 2.2.1 (#1, Sep 7 2002, 14:34:30) [GCC 2.95.4 20011002 (Debian prerelease)] - /usr/bin/python
Linux liste.bfsf.info 2.4.23 #2 SMP gio dic 4 16:05:27 CET 2003 i686
MoinMoin Release 1.1 [Revision 1.178]

A problem occurred while running a Python script. Here is the sequence of function calls leading up to the error, with the most recent (innermost) call first. The exception attributes are:

      INVALID_BASE_URI = 100
      NON_FILE_URI = 120
      OPAQUE_BASE_URI = 112
      RELATIVE_BASE_URI = 111
      RELATIVE_DOCUMENT_URI = 110
      RESOURCE_ERROR = 130
      UNIX_REMOTE_HOST_FILE_URI = 121
      __doc__ = '\n Exceptions used by the Uri module, and possibly others.\n '
      __getitem__ = <bound method UriException.__getitem__ of <Ft.Lib.UriException instance at 0x853ae1c>>
      __init__ = <bound method UriException.__init__ of <Ft.Lib.UriException instance at 0x853ae1c>>
      __module__ = 'Ft.Lib'
      __str__ = <bound method UriException.__str__ of <Ft.Lib.UriException instance at 0x853ae1c>>
      args = (u'Invalid base URI: wiki://Self/XsltVersion', (u'wiki://Self/XsltVersion',))
      errorCode = 100
      message = u'Invalid base URI: wiki://Self/XsltVersion'
      params = (u'wiki://Self/XsltVersion',)

<file is None - probably inside eval or exec> in normalize(self=<Ft.Lib.Uri.SchemeRegistryResolver instance>, uri=u'XsltVersion', base=u'wiki://Self/XsltVersion')

<file is None - probably inside eval or exec> in _normalize(self=<Ft.Xml.InputSource.InputSource instance>, uri=u'XsltVersion')

<file is None - probably inside eval or exec> in resolve(self=<Ft.Xml.InputSource.InputSource instance>, sysid=u'XsltVersion', pubid='', hint='xml-stylesheet PI', ignoreErrors=0)

<file is None - probably inside eval or exec> in checkStylesheetPis(self=<Ft.Xml.Xslt.Processor.Processor instance>, node=<cDocument at 0x0x82e61cc>, inputSource=<Ft.Xml.InputSource.InputSource instance>)

<file is None - probably inside eval or exec> in run(self=<Ft.Xml.Xslt.Processor.Processor instance>, iSrc=<Ft.Xml.InputSource.InputSource instance>, ignorePis=0, topLevelParams=None, writer=None, outputStream=<cStringIO.StringO object>)

/usr/local/lib/python2.2/site-packages/MoinMoin/parser/xslt.py in format(self=<MoinMoin.parser.xslt.Parser instance>, formatter=<MoinMoin.formatter.text_html.Formatter instance>)
  118                 processor.run(
  119                     input_factory.fromString(self.raw, uri=page_uri),
  120                     outputStream=out_file)
       global outputStream = undefined, out_file = <cStringIO.StringO object>
  121 
  122                 result = out_file.getvalue()

/usr/local/lib/python2.2/site-packages/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.Request instance>, msg='', **keywords={'count_hit': 1})
  477         else:
  478             # parse the text and send the page content
  479             Parser(body, request).format(self.formatter)
       Parser = <class MoinMoin.parser.xslt.Parser>, body = '\n\n...')"/>\n \n\n\n', request = <MoinMoin.request.Request instance>, global format = undefined, self = <MoinMoin.Page.Page instance>, global formatter = undefined
  480 
  481             # check for pending footnotes

/usr/local/lib/python2.2/site-packages/MoinMoin/cgimain.py in run(properties={})
  210         else:
  211             try:
  212                 cgitb.handler()
       cgitb = <module 'MoinMoin.support.cgitb' from '/usr/loca...thon2.2/site-packages/MoinMoin/support/cgitb.py'>, handler = undefined
  213             except:
  214                 cgi.print_exception(*saved_exc)

Discussion

Im my Moin1.3.3/Debian unstable installation this is not the error I receive. I have the 4Suite package in unstable (0.99CVS, installed 16/3/2005) and the error is the same that in ../XsltDoesNotWork: NameErrorglobal name 'page' is not defined. Any idea? I am trying to insert DocBook documents in Moin. Thanks a lot... -- EduardoMercovich 2005-03-16 16:35:36

I tried to fix that 1.0b2 issues. The patch below makes it work a bit longer, but it now crashes with:

XsltExceptionError parsing stylesheet (wiki://Self/XsltVersion):
XML parse error in u'wiki://Self/XsltVersion' at line 1, column 1: not well-formed (invalid token)

See also http://ooowiki.de/XsltVersion.

As I don't know what's "not well-formed" there, someone else has to fix this. I also would appreciate some fix that has not to be edited per new 4suite version. Maybe someone USING that xslt stuff could get in contact with 4suite development to make a good (and lasting) fix.

Here's the patch for moin--main--1.3 (maybe applies to 1.3.4, too):

--- orig/MoinMoin/parser/xslt.py
+++ mod/MoinMoin/parser/xslt.py
@@ -69,10 +69,10 @@
                 # patch broken 4Suite 1.0a1 (announces as "1.0a")
                 # 1.0a3 ("1.0a3") is broken, too
                 # thus, I assume 1.0a2 is also broken and announces either as "1.0a" or "1.0a2", hopefully
-                if ft_version not in ["1.0a", "1.0a2", "1.0a3", "1.0a4",]: # you can add more broken versions here
+                if ft_version not in ["1.0a", "1.0a2", "1.0a3", "1.0a4", "1.0b2",]: # you can add more broken versions here
                     MoinResolver = Uri.SchemeRegistryResolver
                 else:
-                    if ft_version == "1.0a4":  # 1.0a4 changes location of SchemeRegistryResolver
+                    if ft_version in ["1.0a4", "1.0b2",]:  # 1.0a4 changes location of SchemeRegistryResolver
                         from Ft.Lib import Resolvers
                         SchemeRegistryResolverPATH = Resolvers.SchemeRegistryResolver
                     else:
@@ -81,7 +81,7 @@
                     class MoinResolver(SchemeRegistryResolverPATH):
                         def normalize(self, uri, base):
                             from Ft.Lib import Uri
-                            if ft_version == "1.0a4":
+                            if ft_version in ["1.0a4", "1.0b2",]:
                                 GetSchemeFunc = Uri.GetScheme
                             else:
                                 GetSchemeFunc = Uri._getScheme

If someone has another version than 1.0b2, maybe that version number list should be updated, too.

Plan


CategoryMoinMoinBugFixed CategoryRelease1.3.5

MoinMoin: MoinMoinBugs/XsltParserOnDebian (last edited 2007-10-29 19:20:46 by localhost)