After some difficulties, I managed to compile Ethereal from SVN on
Solaris 8. It is mostly obvious, but there are a few pitfalls, so I
hope that these instructions can make it easier for other
developers/power users.
I use the libraries from www.blastwave.org. They include proper
dependencies, so it is a lot easier to get a consistent installation
than using the (more popular) packages from www.sunfreeware.com. On
the downside, you may install more software than necessary.
1. You will need nearly 1GB of space, on /opt/csw and where ever you
want to compile and install Ethereal. You need to download about 200
MB of packages "from the Internet", and you need probably an hour to
configure and compile everything on a modern system.
2. Get pkg-get set up. Detailed instructions are on
http://www.blastwave.org/howto.html, but the basic steps are:
a) get wget from somewhere and put it in the path
b) get pkg-get from http://www.blastwave.org/pkg_get.pkg and install
it with dpkg
c) customise /opt/csw/etc/pkg-get.conf
d)
# /opt/csw/bin/pkg-get -i wget
e) remove the wget from step a), it is no longer needed
3. Install the necessary libraries and tools (I hope this list is
complete, otherwise configure will complain). This will take a while,
and you will have to confirm with [ENTER] many times.
# /opt/csw/bin/pkg-get -i gtk2 pcre libpcap netsnmp expat netcat
# /opt/csw/bin/pkg-get -i pkgconfig autoconf automake python perl gm4
gsed textutils gmake flex gcc3 subversion
4. Give all the GNU-tools their normal name
# cd /opt/cvs/bin
# ln -s gsed sed
# ln -s gm4 m4
# ln -s gmake make
# ln -s ggrep grep
# ln -s ggrep egrep
5. Get Ethereal, see http://www.ethereal.com/development.html (from
here you can work as a normal user)
# export PATH=/opt/csw/bin:/opt/csw/gcc3/bin:/usr/xpg4/bin:/usr/bin:/bin
# svn checkout http://anonsvn.ethereal.com/ethereal/trunk ethereal
# cd ethereal
6. Compile Ethereal
# export LD_LIBRARY_PATH=/opt/csw/lib:/opt/csw/gcc3/lib:/usr/lib
# make distclean
# ./autogen.sh
# ./configure --prefix=/opt/ethereal/ --with-ssl --disable-usr-local
Have a look at the file libtool now. If it has a line like
whole_archive_flag_spec="-z allextract\$convenience -z defaultextract"
change it into
whole_archive_flag_spec="\${wl}-z \${wl}allextract\$convenience
\${wl}-z \${wl}defaultextract"
# make
(This will also take a while. Say 30min on an UltraSPARC III.)
7. Done. Now you can run Ethereal, or install it, or make a package
# ethereal
# make install
Note that you need the libraries from blastwave if you want to run the
executable on another machine. And don't forget to set your path.
Comments are appreciated. If someone can confirm that it works, maybe
I should put it up on the Wiki?
Thomas