From 7d2a93ec02c8249d816ac7e23d0915bb04b76021 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 24 Apr 2008 22:54:19 +0000 Subject: [PATCH] Modify the macosx makefile and add files necessary to build a managed metapackage (.mpkg) installer. The installer lets you pick if you want to install Nmap or Zenmap or both. It puts Nmap in /usr/local and the previously developed Zenmap.app in /Applications. --- macosx/Makefile | 61 ++++++++++++++++++------- macosx/nmap.pmdoc/01nmap-contents.xml | 3 ++ macosx/nmap.pmdoc/01nmap.xml | 25 ++++++++++ macosx/nmap.pmdoc/02zenmap-contents.xml | 3 ++ macosx/nmap.pmdoc/02zenmap.xml | 37 +++++++++++++++ macosx/nmap.pmdoc/index.xml | 33 +++++++++++++ 6 files changed, 146 insertions(+), 16 deletions(-) create mode 100644 macosx/nmap.pmdoc/01nmap-contents.xml create mode 100644 macosx/nmap.pmdoc/01nmap.xml create mode 100644 macosx/nmap.pmdoc/02zenmap-contents.xml create mode 100644 macosx/nmap.pmdoc/02zenmap.xml create mode 100644 macosx/nmap.pmdoc/index.xml diff --git a/macosx/Makefile b/macosx/Makefile index 29bd21656..4c879a14a 100644 --- a/macosx/Makefile +++ b/macosx/Makefile @@ -4,30 +4,59 @@ NMAP_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q') NMAP_NUM_VERSION := $(shell grep '^\#[ \t]*define[ \t]\+NMAP_NUM_VERSION' ../nmap.h | sed -e 's/.*"\(.*\)".*/\1/' -e 'q') -IMAGE_NAME = zenmap-$(NMAP_VERSION)$(if $(APPENDAGE),-$(APPENDAGE)) -STAGING_DIR = $(IMAGE_NAME) +NAME_VERSION = nmap-$(NMAP_VERSION)$(if $(APPENDAGE),-$(APPENDAGE)) -DIST_FILES = $(addprefix $(STAGING_DIR)/,Zenmap.app COPYING README) +IMAGE_STAGING_DIR = $(NAME_VERSION) +NMAP_STAGING_DIR = Nmap +ZENMAP_STAGING_DIR = Zenmap +NMAP_BUILD_DIR = nmap-build -$(IMAGE_NAME).dmg: $(DIST_FILES) +IMAGE_NAME = $(NAME_VERSION).dmg +PKG_NAME = $(NAME_VERSION).mpkg + +PREFIX = /usr/local + +PACKAGEMAKER = /Developer/usr/bin/packagemaker + +EXTRA_DIST_FILES = $(addprefix $(IMAGE_STAGING_DIR)/,COPYING README) + +$(IMAGE_NAME): $(IMAGE_STAGING_DIR)/$(PKG_NAME) $(EXTRA_DIST_FILES) rm -f $@ - hdiutil create -imagekey zlib-level=9 -srcfolder $(STAGING_DIR) $@ + hdiutil create -imagekey zlib-level=9 -srcfolder $(IMAGE_STAGING_DIR) $@ -$(STAGING_DIR)/Zenmap.app: - mkdir -p $(STAGING_DIR) +$(IMAGE_STAGING_DIR)/$(PKG_NAME): stage-nmap stage-zenmap + mkdir -p $(IMAGE_STAGING_DIR) + $(PACKAGEMAKER) --doc nmap.pmdoc --title "Nmap $(NMAP_VERSION)" -o $@ + +stage-nmap: + rm -rf $(NMAP_BUILD_DIR) + svn export .. $(NMAP_BUILD_DIR) + svn export ../nsock $(NMAP_BUILD_DIR)/nsock + svn export ../nbase $(NMAP_BUILD_DIR)/nbase + svn export ../zenmap $(NMAP_BUILD_DIR)/zenmap + cd $(NMAP_BUILD_DIR) && ./configure --prefix="$(PREFIX)" --without-zenmap --with-libdnet=included --with-libpcap=included --with-libpcre=included --with-liblua=included + make -C $(NMAP_BUILD_DIR) + rm -rf $(NMAP_STAGING_DIR) + make -C $(NMAP_BUILD_DIR) install DESTDIR="`pwd`/$(NMAP_STAGING_DIR)" + +stage-zenmap: + mkdir -p $(ZENMAP_STAGING_DIR)/Applications cd ../zenmap && install_scripts/macosx/make-bundle.sh - cp -rf ../zenmap/dist/Zenmap.app $(STAGING_DIR)/ + cp -rf ../zenmap/dist/Zenmap.app $(ZENMAP_STAGING_DIR)/Applications/ -$(STAGING_DIR)/README: - mkdir -p $(STAGING_DIR) - cp -f README $(STAGING_DIR)/ +$(IMAGE_STAGING_DIR)/README: + mkdir -p $(IMAGE_STAGING_DIR) + cp -f README $(IMAGE_STAGING_DIR)/ -$(STAGING_DIR)/COPYING: - mkdir -p $(STAGING_DIR) - cp -f ../COPYING $(STAGING_DIR)/ +$(IMAGE_STAGING_DIR)/COPYING: + mkdir -p $(IMAGE_STAGING_DIR) + cp -f ../COPYING $(IMAGE_STAGING_DIR)/ clean: - rm -rf $(STAGING_DIR) - rm -f $(IMAGE_NAME).dmg + rm -rf $(IMAGE_STAGING_DIR) + rm -rf $(NMAP_STAGING_DIR) + rm -rf $(ZENMAP_STAGING_DIR) + rm -rf $(NMAP_BUILD_DIR) + rm -f $(IMAGE_NAME) .PHONY: clean diff --git a/macosx/nmap.pmdoc/01nmap-contents.xml b/macosx/nmap.pmdoc/01nmap-contents.xml new file mode 100644 index 000000000..d93b4efc9 --- /dev/null +++ b/macosx/nmap.pmdoc/01nmap-contents.xml @@ -0,0 +1,3 @@ + + + diff --git a/macosx/nmap.pmdoc/01nmap.xml b/macosx/nmap.pmdoc/01nmap.xml new file mode 100644 index 000000000..984d9362a --- /dev/null +++ b/macosx/nmap.pmdoc/01nmap.xml @@ -0,0 +1,25 @@ + + + org.insecure.nmap.nmap.pkg + 1 + + + + Nmap + / + + + + + parent + installFrom.isRelativeType + + + 01nmap-contents.xml + /CVS$ + /\.svn$ + /\.cvsignore$ + /\.cvspass$ + /\.DS_Store$ + + diff --git a/macosx/nmap.pmdoc/02zenmap-contents.xml b/macosx/nmap.pmdoc/02zenmap-contents.xml new file mode 100644 index 000000000..a5d41b49e --- /dev/null +++ b/macosx/nmap.pmdoc/02zenmap-contents.xml @@ -0,0 +1,3 @@ + + + diff --git a/macosx/nmap.pmdoc/02zenmap.xml b/macosx/nmap.pmdoc/02zenmap.xml new file mode 100644 index 000000000..ab7e5bcb6 --- /dev/null +++ b/macosx/nmap.pmdoc/02zenmap.xml @@ -0,0 +1,37 @@ + + + org.insecure.nmap.zenmap.pkg + 1 + + + + Zenmap/Applications/Zenmap.app + /Applications + + + + + parent + installFrom.isRelativeType + + + 02zenmap-contents.xml + + + + + + + + + + /CVS$ + /\.svn$ + /\.cvsignore$ + /\.cvspass$ + /\.DS_Store$ + + diff --git a/macosx/nmap.pmdoc/index.xml b/macosx/nmap.pmdoc/index.xml new file mode 100644 index 000000000..5e95d1874 --- /dev/null +++ b/macosx/nmap.pmdoc/index.xml @@ -0,0 +1,33 @@ + + + Nmap + org.insecure + + + + + + + + + + + + + + + + + + + + + 01nmap.xml + 02zenmap.xml + properties.customizeOption + properties.title + properties.anywhereDomain + properties.systemDomain +