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).