[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA: Re: Patches for PCB automake/autoconf system
Hi Pitor --
> > I've been working on an automated installer for the entire gEDA Suite,
> > including PCB.
>
> Stuart,
>
> is your installer based on gEDA Suite Setup or is it a new design ?
It's a new design. I wrote it in Python using Glade for the GUI
stuff. I also used several imported Python modules, including a
version of "expect" for Python, which is used when commands must be
executed as root.
I was aware of your nice setup program, of course. Here are the
reasons I didn't use or extend it:
* Your setup program is written in C, and I don't think that it uses
Glade. I am a lousy C programmer, and it would take me probably
months to learn your prog and then hack it enough to do what I did
using Python in about 3 weeks. Simply put: I am better and more
efficient in Python than in C. (And I think most people would be,
too, if they knew Python.)
* Since I think your prog doesn't use Glade, writing the GUI windows
would be a PITA. I did some minor GUI hacking on gschem for Ales, and
also wrote gattrib without Glade. I must say that trying to write a
windowing system without a GUI tool like Glade is extremely painful
and takes a lot longer than it does *with* Glade.
* Philosophically, I don't think that C is the right language for a
setup suite. A setup suite is basically a wrapper which calls a
bunch of shell commands, and handles user input using the simple GUI.
Interacting with the shell is best handled using a high-level or
scripting language, IMHO. C is just too low level, and it accordingly
takes much longer to work the bugs out of a C program than out of,
say, Python.
* Another bad feature of C is that it has no built-in facilities for
handling strings or lists of strings. To handle these simple data
structures in C requires creating linked lists & munging around with
pointers. Yuck!!! Python implements these data structures natively.
* I have tried installing gEDA/gaf using your setup suite the past
(OK, maybe one or two years ago). It used to segfault every time.
Therefore, I became wary of it, and nowadays install gEDA using Ales'
"Make install" from the command line. Ales says that your installer
works better now. Nonetheless, I think part of the problem was
-- again -- your setup program was written in C, and so it was
inherently prone to be buggy, at least in comparison to Python.
* Finally, my installer is targeted to install everything, including
gEDA/gaf, ngspice, PCB, gnucap, Icarus Verilog, etc. etc. etc. I am
not sure how easy it would be to extend your prog, which was targeted
at installing gEDA/gaf, IIRC.
So that was my reasoning. Ordinarily, I would prefer to take somebody
else's stuff & just extend it. However, in this case I struck out on
my own path for the above reasons.
Stuart