This is really easier and much more portable (Mac OS 10.5 and later)
than the other solution proposed. The problem with the actual code happens
when I set English as my main language with a French localisation and
keyboard. Sometimes, the AppleLanguages configuration file contains names
like "English" instead of "en", "EN" or "en_EN". Moreover, there can be
more than one language defined here. Instead, I suggest with this PR to
use AppleLocale directly, which is in the "en_EN" format (or whatever
language) and is set to the current language used by the machine. This
would allow users to just launch Zenmap and have the software launched in
the desired language without having to use the terminal (they can still
change their machine language in the System Preferences or via the
Terminal, but it would be easier to use).
This file is automatically copied into the bundle by py2app. It is
already present as a system library on OS X 10.6 and later. Shipping our
own caused a compatibility problem on OS X 10.9:
Could not import the zenmapGUI.App module: 'dlopen(/Applications/Zenmap.app/Contents/Resources/lib/python2.6/lib-dynload/glib/_glib.so, 2): Symbol not found: _xmlBufContent\n Referenced from: /usr/lib/libxslt.1.dylib\n Expected in: /Applications/Zenmap.app/Contents/Frameworks/libxml2.2.dylib\n in /usr/lib/libxslt.1.dylib'.
http://seclists.org/nmap-dev/2013/q4/85
An important side effect of this change is the move the
--with-included-loaders flag from gtk2 to gdk-pixbuf2. This upstream
change:
http://git.gnome.org/browse/gtk+/commit/configure.in?h=gtk-2-24&id=cb29d2770714943af7b488a6a94f1f37b7466c8f
means that --with-included-loaders no longer has an effect when given to
gtk2's configure. This caused dynamic loaders to be searched for under
my /Users/david/macports-10.5 installation directory, which isn't
present after installing from the .dmg package.
Here's an report of a hang caused by the missing loaders:
http://seclists.org/nmap-dev/2012/q2/370
If you have trouble updating after this revision you need to follow
these instructions. You have probably just seen an error like this:
svn: URL 'svn://svn.insecure.org/nping' of existing directory 'nping'
does not match expected URL 'svn://svn.insecure.org/nmap/nping'
This is caused by the replacement of SVN externals.
Here's what you need to do. First, save any local changes you might have
in the nping, nsock, nbase, ncat, and zenmap directories. (For example
by running "cd nping; svn diff > ../nping.diff".) If you don't have any
local changes you can skip this step.
Then run these commands:
rm -rf nping/ nsock/ nbase/ ncat/ zenmap/
svn update
svn cleanup
If all else fails, you can just delete your whole working directory and
check out anew:
svn co --username guest --password "" svn://svn.insecure.org/nmap
There may be further discussion in the mailing list thread at
http://seclists.org/nmap-dev/2011/q4/303.