Grail (web browser) installation on Scientific Linux
Question: I'm not sure if Grail browser is a good choice nowadays, however I want to try
it, because I have some problems about graphics running on Firefox-Fermi. The
next, is what I obtain after trying grail-0.6 (tgz)

    
    
    # python grail.py 
    Traceback (most recent call last):
    File "grail.py", line 43, in ?
    from Tkinter import *
    

After installing "tkinter" adequately, I run "grail.py" again, and I get

    
    
    # python grail.py 
    /root/grail-0.6/grailbase/app.py:6: Deprecation Warning: the regex module is   
    deprecated; please use the re module
    import regex
    /usr/lib/python2.4/regsub.py:15: DeprecationWarning: the regsub module is  
    deprecated; please use re.sub()
    DeprecationWarning)
    Traceback (most recent call last):
    File "grail.py", line 499, in ?
    main()
    File "grail.py", line 108, in main
    app = Application(prefs=prefs, display=display)
    File "grail.py", line 248, in __init__
    self.stylesheet = Stylesheet.Stylesheet(self.prefs)
    File "/root/grail-0.6/Stylesheet.py", line 21, in __init__
    self.load()
    File "/root/grail-0.6/Stylesheet.py", line 45, in load
    massaged.append((g, c), v % fparms_dict)
    TypeError: append() takes exactly one argument (2 given)
    

but now, I'm not able to understand the message at all. May you advice me
about this problem?


Answer: Wow - that's a blast from the past! My advice is to give up: Grail hasn't been
touched in more than a dozen years. It's dead.

The error message you're getting stems from a change made way back in Python
1.6 (released 5 September 2000). Here's the message from the release notes:

>   * The append() method for lists can no longer be invoked with more than
> one argument. This used to append a single tuple made out of all arguments,
> but was undocumented. To append a tuple, use e.g. l.append((a, b, c)).
>

So, you can:

  1. Give up. Recommended ;-)
  2. Install an ancient version of Python; or,
  3. Change that line to

`massaged.append(((g, c), v % fparms_dict))`

and see what breaks next ;-)

## About the next problem

Python 0.9.1 is _extremely_ old, from early 1991. The language changed in
many, many ways before 1.0 was released.

According to [the old Grail home page](http://grail.sourceforge.net/), Grail
0.6:

> requires Python 1.5 or newer, and Tcl/Tk 8.0 or newer.

So find Python 1.5 if you're determined to pursue this ;-) Note that the
`.append()` semantics were changed in version 1.6, so the original `.append()`
code that hurt you at first should still work OK in 1.5.

