Ethereal-users: Re: [Ethereal-users] mac os x

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Andreas Fink <andreas@xxxxxxxx>
Date: Tue, 9 May 2006 07:53:50 +0200
I made a package of ethereal which is neither dependent on "fink" (with which I just happen to have the same last name) nor on Darwin Ports. Its compiled with gtk 1.2 which is not dependent on all those fancy libraries ethereal doesnt make use of. (yes this really means compiling glib2, gettext, libiconv, pkgconfig, gtk2, atk, cairo, fontconfig, expat freetype, zlib, libpixman, libpng, render, xrender, pango, Xft2, tiff, jpeg, libpcap, openssl which is really an overkill)

http://www.finkconsulting.com/page7.php#ethereal.

Here is how I built it:

1st you need to build glib:

wget ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz
tar -xvzf glib-1.2.10.tar.gz
cd glib-1.2.10
cp /usr/share/libtool/config.* .
export ARCH="-arch ppc -arch i386"
export SDK="MacOSX10.4u.sdk"
export SDK_LIBS="-L/Developer/SDKs/${SDK}/usr/lib -L/Developer/SDKs/$ {SDK}/usr/lib/system" export SDK_INCS="-I/Developer/SDKs/${SDK}/usr/include -I/Developer/ SDKs/${SDK}/usr/include/libxml2"
export CC="gcc"
export CFLAGS="-O3 -fno-omit-frame-pointer ${ARCH} ${SDK_INCS} $ {SDK_LIBS}"
export CXX="g++"
export CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors - fno-exceptions -fno-rtti ${ARCH} ${SDK_INCS} ${SDK_LIBS}"
export LDFLAGS="-lstdc++ ${SDK_LIBS}"
./configure --enable-shared --enable-static --mandir=/usr/share/man -- disable-dependency-tracking
#
# you need to remove the G_GNUC_PRETTY_FUNCTION in gstrfuncs.c
#
mv gstrfuncs.c gstrfuncs.c.old
sed s/G_GNUC_PRETTY_FUNCTION//g < gstrfuncs.c.old > gstrfuncs.c


now edit the file glibconfig.h
and replace the definition of G_BYTE_ORDER with

	#include <machine/endian.h>
	#define G_BYTE_ORDER BYTE_ORDER

Also in glib-1.2.10/gmem.c around line 167 you will find
	if(size==0)
		return NULL;
after that insert
	if(size==-1)
		return NULL;

same for line 231.

If you don't do this, MacOS X 1.4.4 or newer will complain while on older it worked.
next thing to build is gtk+:

wget ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-1.2.10.tar.gz
tar -xvzf gtk+-1.2.10.tar.gz
cd gtk+-1.2.10
cp /usr/share/libtool/config.* .
export ARCH="-arch i386 -arch ppc"
export SDK="MacOSX10.4u.sdk"
export SDK_LIBS="-L/Developer/SDKs/${SDK}/usr/lib -L/Developer/SDKs/$ {SDK}/usr/lib/system -L/Developer/SDKs/${SDK}/usr/X11R6/lib" export SDK_INCS="-I/Developer/SDKs/${SDK}/usr/include -I/Developer/ SDKs/${SDK}/usr/include/libxml2"
export CC="gcc"
export CFLAGS="-O3 -fno-omit-frame-pointer ${ARCH} ${SDK_INCS} $ {SDK_LIBS}"
export CXX="g++"
export CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors - fno-exceptions -fno-rtti ${ARCH}${SDK_INCS}"
export LDFLAGS="-lstdc++ ${SDK_LIBS} ${ARCH}"
./configure --disable-shared --enable-static --mandir=/usr/local/man --with-glib-prefix=/usr/local --disable-dependency-tracking
make
sudo make install
cd ..


now lets install libpcap which is straightforward. Newer versions of MacOS have libpcap already installed so you might be able to skip this (and remove the --with-pcap=... option when building ethereal)

wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz
tar -xvzf libpcap-0.9.4.tar.gz
cd libpcap-0.9.4
./configure --enable-ipv6
make
sudo make install
cd ..



Then we can build ethereal the following way:

# first we make sure /usr/local/bin is in the path as otherwise it wont find glib /gtk+ accordingly
XPATH=/usr/local/bin:`echo $PATH | sed "s/\/usr\/local\/bin//g"`
export PATH="`echo $XPATH | sed "s/::/:/g"`"
export ARCH=""
export SDK="MacOSX10.4u.sdk"
export SDK_LIBS="-L/Developer/SDKs/${SDK}/usr/lib -L/Developer/SDKs/$ {SDK}/usr/lib/system -L/Developer/SDKs/${SDK}/usr/X11R6/lib" export SDK_INCS="-I/Developer/SDKs/${SDK}/usr/include -I/Developer/ SDKs/${SDK}/usr/include/libxml2"
export CC="gcc"
export CFLAGS="-O3 -fno-omit-frame-pointer ${ARCH} ${SDK_INCS} $ {SDK_LIBS}"
export CXX="g++"
export CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors - fno-exceptions -fno-rtti ${ARCH}"
export LDFLAGS="-lstdc++ -liconv ${SDK_LIBS}"
./configure --disable-gtk2 --disable-gtktest --disable-glibtest -- enable-usr-local --enable-threads --disable-ssl --disable-dependency- tracking --with-pcap=/usr/local/

Then the same was built on Intel architecture (with -arch i386) and the two where merged together
with the lipo tool.

Note: ethereal doesn't like when glib/gtk are multi architecture. This is because the make file uses "ar" and not libtool to extract some files from a library file. Because "ar" can not deal with multi architecture files, this fails. So easiest is to build it on a ppc machine, just for ppc and on a intel machine just for intel and then merge the final result with lipo (or just use it as is....)





On 09.05.2006, at 02:48, Dapo Ladimeji wrote:

Apologies but as for ethereal I really wish to use it but am a newbie. I installed DarwinPorts and tried to install ethereal but received an error message re:"Error: The following dependencies failed to build: glib2 gettext libiconv pkgconfig gtk2 atk cairo fontconfig expat freetype zlib libpixman libpng render xrender pango Xft2 tiff jpeg libpcap openssl" If I need to install these dependencies can I use Darwinports? Does anyone have a complete list of pre-installation steps?
thanks
Dapo

--

CONFIDENTIALITY NOTICE
This e-mail including any attachments may contain confidential and/ or privileged information. If you are not the intended recipient you should not use the contents or disclose them to any other person. Unauthorised recipients are requested to preserve this confidentiality and to advise the sender immediately of any error in transmission. Ladimeji & Co, Chartered Accountants & Chartered Tax Advisers, Springfield House, 23 Oatlands Drive Weybridge
KT13 9LZ

TEL; +44-1932-242802
FAX: +44 207-900-3574





_______________________________________________
Ethereal-users mailing list
Ethereal-users@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-users



Andreas Fink
Fink Consulting GmbH

---------------------------------------------------------------
Tel: +41-61-6666332 Fax: +41-61-6666331  Mobile: +41-79-2457333
Address: Clarastrasse 3, 4058 Basel, Switzerland
E-Mail:  afink@xxxxxxxxxxxxxxxxxx
Homepage: http://www.finkconsulting.com
---------------------------------------------------------------

ICQ: 101946485 MSN: msn1@xxxxxx AIM: smsrelay Skype: andreasfink
Yahoo: finkconsulting SMS: +41792457333
PGP9: 0714 DF2B A189 A760 6201  5CBD D040 3E71 4DAF 68BB