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>