Comment 23 for bug 475891

Revision history for this message
Scott Howard (showard314) wrote : Re: [Bug 475891] Re: eagle crashes on: zoom into schematic

OK, I think I have a satisfactory answer. In short: previous versions
copied the executable binary to the users home directory, but in newer
versions, the executable binary was moved to /usr/lib so it is no
longer needed to be copied to the home directory. However, if you had
the old version and then upgraded, you STILL had the old binary in
your home directory, which eagle would try to call to and SEG FAULT
whenever you tried to zoom, edit a wire, etc.

LONG VERSION:
The first time you run the closed binary it, it will create it's
freeware license file, and place it in the directory where the
executable was run from. Older Debian versions installed "system
wide," which caused problems since the key and executable were then
owned by root since you had to run as root in order to save the
license file to /usr/share/eagle.

The debian maintainer got around that by "Installing" the program to
~/.eagle by populating it with symlinks to /usr/share/eagle - so now
everything is owned by the user (including the license key). The
Debian wrapper file uses "exec -a" to execute the closed binary from
/usr/lib/eagle/bin as if it was in the directory ~/.eagle/bin/

However, a couple of debian revisions ago, the closed binary was moved
from /usr/share/eagle/bin to /usr/lib/eagle/bin , so it is NO LONGER
copied over to ~/.eagle/bin along with everything else in the wrapper
script.

For some users, that change didn't cause a problem, but for users that
upgraded there is a problem that:
1) they had the OLD closed binary that used to be in
/usr/share/eagle/bin already copied over to ~/.eagle/bin from their
previous installation
2) The desktop menu item and debian wrapper scripts calls the NEW
binary located in /usr/lib/eagle/bin
3) When you try to zoom, edit wire, etc, the running process looks in
~/.eagle/bin for the compiled functions ----- BUT that is the OLD
binary! (SEG FAULT!)

Why it works for us "new installation" people: we don't have ANY
closed binary in ~/.eagle/bin so it looks in our /usr/lib directory
and finds the proper binary

I think I'm satisfied with that explanation :-)

I pulled that info from the following bug reports:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=450529
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535868
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546237
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392414

By the way, I'm in mentors.debian.net to adopt this package, if you
are a DD that can sponsor it, I'd appreciate it (the server is down,
but do a package search for "Eagle")