mirror of
https://github.com/nmap/nmap.git
synced 2025-12-09 14:11:29 +00:00
101 lines
3.9 KiB
Plaintext
101 lines
3.9 KiB
Plaintext
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
|