Closed Bug 714138 Opened 13 years ago Closed 12 years ago

calling typelib.py without --cachedir option fails

Categories

(Firefox Build System :: General, defect)

12 Branch
x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 723861

People

(Reporter: arno, Unassigned)

Details

Hi,
when trying to call typelib.py (or header.py) without --cachedir option, it fails (at least on linux with python2.7).

That's because options.cachedir defaults to None (instead of ""). If calling xpidl.IDLParser with xpidl.IDLParser(outputdir=(options.cachedir or "")), it works correctly


Here is stack trace.


  File "/home/arno/mozilla/objdir/xulrunner/dist//sdk/bin/typelib.py", line 313, in <module>
    p = xpidl.IDLParser(outputdir=options.cachedir)
  File "/home/arno/mozilla/xpcom/idl-parser/xpidl.py", line 1456, in __init__
    optimize=1)
  File "/home/arno/mozilla/objdir/xulrunner/dist/sdk/bin/ply/lex.py", line 1004, in lex
    lexobj.writetab(lextab,outputdir)
  File "/home/arno/mozilla/objdir/xulrunner/dist/sdk/bin/ply/lex.py", line 175, in writetab
    filename = os.path.join(outputdir,basetabfilename)+".py"
  File "/usr/lib/python2.7/posixpath.py", line 68, in join
    elif path == '' or path.endswith('/'):
AttributeError: 'NoneType' object has no attribute 'endswith'
header.py and typelib.py without --cachedir also fails on Windows; the stack trace is the same except the last call is:

  File "C:\Python27\lib\ntpath.py", line 96, in join
    assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

(prior to python 3, os.path.join does not work when passed 'None')
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.