[Distutils] BisonGen, 4Suite, and Distutils

Greg Ward gward@python.net
Fri Sep 22 09:47:13 2000

Uche, Mike --

I'm digging into BisonGen and 4Suite now.  I managed to install BisonGen 
(from the sdist) without problems, but there's a dependency you forgot
to document:

  $ /usr/local/bin/python
  Python 1.5.2 (#5, Sep  8 2000, 22:21:43)  [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2
  Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
  >>> import BisonGen.BisonGen
  Traceback (innermost last):
    File "<stdin>", line 1, in ?
    File "/usr/local/python/lib/python1.5/site-packages/BisonGen/BisonGen.py", line 80, in ?
      import BGenReader
    File "/usr/local/python/lib/python1.5/site-packages/BisonGen/BGenReader.py", line 24, in ?
      from xml.sax import saxlib, saxexts
  ImportError: No module named xml.sax

Luckily, I also have PyXML's source dist. sitting around, so I can
install it.  Still, you should probably mention this in your README.

Another thing: setting "verbose = 0" in the setup script is the moral
equivalent of setting ".SILENT" in a Makefile -- and IMHO it's
Considered Harmful.  Building software *should* be noisy, because so
many things can go wrong.  You're free to run the setup script with -q,
but if people are used to seeing noisy builds, then one particular build
being quiet is unsettling.  (It unsettled me, that's for sure!)

Yet another: requiring SWIG to be installed in order to build your
software is the moral equivalent of requiring bison and flex on a
non-GNU-powered Unix box -- ie. it's a bother, it's a pain, and it's
completely unnecessary since the software that I now have to go find,
download, build, and install is used *only* to build this particular
package!  (I'm speaking here from the narrow, just-want-to-get-the-
silly-thing-working perspective of someone who needs to install 4Suite
in order to get work done.  I'm a little embarassed to admit that I
don't even have SWIG installed on my home machine, but it does let me
discover lapses in other people's source dists. ;-)

Now, if SWIG is turning 20k .i files into 400k .c files, that's a good
reason for not distributing the .c files.  And I'm starting to get a
grasp of the enormity of 4Suite; this is a boatload-and-a-half of a
code, so I can see why you might want to cut down on the amount of stuff 

Anyways, looks like I won't be able to debug your bdist_rpm problem this 
morning; have to go get SWIG, etc. etc.  Grumble.

BTW, congratulations on finding -- and making use of -- every known
"backdoor" entry into the Distutils.  At least it looks like the 4Suite
setup.py uses every sneaky trick that I can remember slipping in to the
code at some point.  Very gratifying to find that all those tricks are
finally useful to someone!  Also, it looks like 4Suite's setup.py is so
complex it will be a good shaker-out of Distutils bugs.  Thanks (I

Greg Ward                                      gward@python.net