Date: Wed, 15 Aug 2001 09:23:09 -0500 From: Mike Meyer <mwm@mired.org> To: "Karel J. Bosschaart" <karelj@wop21.wop.wtb.tue.nl> Cc: questions@FreeBSD.ORG Subject: Re: Applixware 5.0 on recent FreeBSD version Message-ID: <15226.34253.458785.129050@guru.mired.org> In-Reply-To: <20010815160734.A39919@wop21.wop.wtb.tue.nl> References: <69300995@toto.iv> <15226.22699.145222.587526@guru.mired.org> <20010815160734.A39919@wop21.wop.wtb.tue.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
Karel J. Bosschaart <karelj@wop21.wop.wtb.tue.nl> types:
> On Wed, Aug 15, 2001 at 06:10:35AM -0500, Mike Meyer wrote:
> > Karel J. Bosschaart <karelj@wop21.wop.wtb.tue.nl> types:
> > > I thought it came up in the list before but couldn't find anything in
> > > the archive. Also, I'm pretty sure I had it running a while ago on an
> > > older FreeBSD version.
> > You need to install the 3x compatability libraries. If you have source
> > installed, you can install them by going to
> > /usr/src/lib/compat/compat3x.i386 and doing "make install". If you are
> > tracking -stable, add "COMPAT3X=yes" to /etc/make.conf so they will be
> > updated with the system.
> Another poster already mentioned the same, but thank you anyway :-).
Sigh. Yeah, I just looked past the answers.
> It works fine on one machine, but on another machine it gave me trouble
> with gtk/glib versions. Version 1.2.10 is installed (and lots of ports
> depending on it), but Applixware expects 1.2.8. I forced Applixware to
> install anyway, but now it does not start complaining about 'Undefined
> symbol "getresuid"'. Hmmm, I guess there must be some way to work around,
> but for now I'm happy it runs on at least one machine :-).
The 1.2.8 and 1.2.10 is immaterial. What matters is what versions of
the unix libraries you had when you built the gtk/glib port. FreeBSD
put getresuid in libc_r, which applix isn't loading. So if your
FreeBSD has getresuid, the port config will find that version, try and
use it - and fail for applix. If the system doesn't have it, the port
config builds it's own in, and that works fine.
The solution I use is to compile this little C function. It returns a
failure, which causes gtk/glib to do the same thing it does if
getresuid isn't there. Others prefer C++ so they can drop the
paramenter names, but that makes the object slightly larger.
/*
* Fail a getresuid call so that clients will use it properly.
*
* compile as cc -shared -fPIC -DPIC -o getresuid.so getresuid.c
*/
#include <sys/types.h>
int getresuid(uid_t *a, uid_t *b, uid_t *c) {
return 1 ;
}
Next install the resulting getresuid.so somewhere reasonable - like
/usr/local/lib. Then change the applix shell script to define the
environment variable LD_PRELOAD to be the name of the .so file before
it starts the applix binary.
<mike
--
Mike Meyer <mwm@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15226.34253.458785.129050>
