Ethereal-dev: Re: [Ethereal-dev] Ethereal on the Mac?

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

From: Guy Harris <gharris@xxxxxxxxx>
Date: Mon, 12 Dec 2005 22:26:09 -0800
Gerald Combs wrote:
My main development platform (i.e. the laptop sitting in front of me) recently changed from Windows to Mac OS X. Installing Ethereal left a bit to be desired:

Running "fink install ethereal" failed to install many dependencies (GTK+, atk, pango, and others). Fink installed version 0.10.9, which is almost a year old. The package doesn't appear to be linked with Net-SNMP or ADNS.

I tried to install it under Darwinports and didn't get past glib2: http://bugzilla.opendarwin.org/show_bug.cgi?id=6024

AquaEthereal makes launching Ethereal easier, but it does the wrong thing by running Ethereal under sudo instead of changing the permissions of /dev/bpf.

Libpcap 0.9[.x] has an OS X startup item "ChmodBPF" that can be configured to set the mode and ownership of /dev/bpf* to give a selected user or group permission to use BPF. We could perhaps bundle that with Ethereal.

Would it make sense to bundle Ethereal up along with all of its associated libraries as we do with Windows and ship it as a disk image or package?

Yes. A .dmg would be the right overall package form (just as a .exe would be for Windows); it could either be a "drag-and-drop install" package or an installer package.

If we had *everything* in a .app directory or other directory - including command-line executables (so that you'd have to set $PATH to include that directory) - it could be a "drag-and-drop install". If, however, we wanted to install the command line executables in, for example, "/usr/local/bin", that'd be a package install.

See

	http://developer.apple.com/documentation/DeveloperTools/FilesSoftwareInstallation-date.html

for information on packaging, etc.. Note that the Bundle Programming Guide speaks of APIs to get the location of the bundle (it uses argv[0] and $PATH to figure out where it was launched from) and find stuff within the bundle. We could play similar tricks (even on other UN*Xes) to find the directory in which Ethereal's files are located (although I don't know whether any UN*X run-time linkers will try to find shared libraries in the same directory as an executable, or can be convinced to do so).