[Distutils] Re: BisonGen, 4Suite, and Distutils

Mike Olson Mike.Olson@fourthought.com
Fri Sep 22 16:44:01 2000

Greg Ward wrote:
> 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.

I'll add this to the reqs.

> 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!)

I wasn't sure which way that should be.  I'll set it to verbose.
> 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. ;-)

We finally bit the bullet.  We don't have to bgen, swig, flex, or bison
that often so we checked in the final set of .c files.  This should make
life easier...

> 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
> distributed.

I don't think its that big, besides, c files should zip up pretty

> 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
> think)!

Your welcome:)  Unfortunalty I simplified it alot this morning when I
removed the bgen stuff.


>         Greg
> --
> Greg Ward                                      gward@python.net
> http://starship.python.net/~gward/

Mike Olson				 Principal Consultant
mike.olson@fourthought.com               (303)583-9900 x 102
Fourthought, Inc.                         http://Fourthought.com 
Software-engineering, knowledge-management, XML, CORBA, Linux, Python