1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-10 17:59:04 +00:00
Files
nmap/zenmap/install_scripts/macosx
vincent e4fcf2347a Use the AppleLocale prefs directly
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).
2016-08-22 15:37:43 +00:00
..
2016-08-22 15:37:43 +00:00
2016-03-16 03:14:55 +00:00

This is a description of the files in this directory, all of which have
to do with packaging on Mac OS X. They are useful only for those wanting
to build binary distributions of Zenmap for Mac OS X.

== Info.plist
A properties list file template that is filled out by make-bundle.sh

== make-bundle.sh
This script builds a .app bundle. It must be run from the root of the
Zenmap source tree. The finished bundle is put in dist/Zenmap.app.

== zenmap.icns
The icon file for the bundle. It was created using the Icon Composer
utility (open -a "Icon Composer").

== zenmap_auth.c
This is a simple wrapper program that attempts to run launcher.sh
with privileges.

== launcher.sh
A launcher script that configures the environment for Zenmap, Python, and GTK
before launching the main Zenmap script file.

== zenmap.bundle
An XML config file for gtk-mac-bundler which specifies files and metadata for
the application bundle. https://wiki.gnome.org/Projects/GTK%2B/OSX/Building


== MacPorts-ports.diff

*** Note: The MacPorts tree is only currently used for building libsvn and
libapr for nmap-update, and will hopefully be removed in future releases.

This patch against a MacPorts ports tree contains various changes needed
to install dependencies in a sufficiently portable way. The main thing
accomplished by this patch is to avoid building a MacPorts libiconv.
libcups depends on libiconv, but it depends on an Apple version of
libconv, and MacPorts doesn't have a port for libcups. The MacPorts
libiconv is incompatible and causes a dynamic linker error at runtime.

The following instructions show how to make a 10.9-compatible
environment suitable for building Zenmap packages. It will be a separate
installation in $HOME/macports-10.9 that won't interfere with your
normal MacPorts installation in /opt/local. These instructions were done
with MacPorts 2.3.3 on Mac OS X 10.9.5.

1. Install MacPorts.
	export PATH=/usr/bin:/bin:/usr/sbin:/sbin
	export PREFIX=$HOME/macports-10.9
	tar xzvf MacPorts-2.3.3.tar.gz
	cd MacPorts-2.3.3
	./configure --with-no-root-privileges --prefix=$PREFIX --with-applications-dir=$PREFIX/Applications
	make
	make install
2. Update the ports tree.
	$PREFIX/bin/port sync
3. Edit the file $PREFIX/etc/macports/macports.conf.
   Uncomment the line
	build_arch			i386
   Add this line at the bottom:
	macosx_deployment_target	10.9
4. Make a local patched ports tree.
	cd $PREFIX
	mkdir ports
	ln -s var/macports/sources/rsync.macports.org/release/tarballs/ports ports.orig
	for x in archivers/xz editors/vim devel/apr-util devel/atk devel/gettext mail/libidn perl/p5-locale-gettext textproc/help2man; do
		mkdir -v -p ports/$x;
		cp -R ports.orig/$x ports/$(dirname $x);
	done
	patch -p0 < MacPorts-ports.diff
5. Build a port index.
	cd ports
	$PREFIX/bin/portindex
6. Edit the file $PREFIX/etc/macports/sources.conf.
   Add a line
	file:///Users/user/macports-10.9/ports
   above the rsync line. (Replace "user" with your user name.)
7. Install the dependencies of Zenmap.
	$PREFIX/bin/port install apr apr-util openssl

Here are instructions for updating the patch to keep up with MacPorts
changes. First, sync the original ports tree.
	$PREFIX/bin/port selfupdate -v
Restore a pristine partial ports tree:
	cd $PREFIX
	# rsync handles deleting deleted files, but can't pick up new ones like this...
	rsync -rv --existing --delete --exclude=PortIndex ports.orig/ ports/
	# ...so we copy everything over again.
	for x in archivers/xz editors/vim devel/apr-util devel/atk devel/gettext mail/libidn perl/p5-locale-gettext textproc/help2man; do
		cp -R ports.orig/$x ports/$(dirname $x);
	done
Reapply the patch. Resolve any conflicts.
	patch -p0 --no-backup-if-mismatch < MacPorts-ports.diff
Make a new patch.
	diff --unidirectional-new-file -ru -x 'PortIndex*' ports.orig ports | grep -v '^Only in ' > new.diff
Check that it's all right, then rename it.
	mv new.diff MacPorts-ports.diff
Rebuild the port index.
	cd ports
	$PREFIX/bin/portindex