- Subject: Re: [Ethereal-users] mac os x
- 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