[oe] [meta-oe][PATCH 2/2] nmap: move recipe from meta-security to meta-oe

akuster808 akuster808 at gmail.com
Fri Jun 1 23:11:41 UTC 2018



On 06/01/2018 09:57 AM, Khem Raj wrote:
> On 6/1/18 8:10 AM, Armin Kuster wrote:
>> Signed-off-by: Armin Kuster <akuster808 at gmail.com>
>> ---
>>  .../nmap-redefine-the-python-library-dir.patch     | 37 +++++++++++++++
>>  ...shtool-mkdir-with-coreutils-mkdir-command.patch | 48 +++++++++++++++++++
>>  meta-oe/recipes-security/nmap/nmap_7.60.bb         | 54 ++++++++++++++++++++++
>>  3 files changed, 139 insertions(+)
>>  create mode 100644 meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch
>>  create mode 100644 meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch
>>  create mode 100644 meta-oe/recipes-security/nmap/nmap_7.60.bb
>>
>> diff --git a/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch b/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch
>> new file mode 100644
>> index 0000000..356b507
>> --- /dev/null
>> +++ b/meta-oe/recipes-security/nmap/files/nmap-redefine-the-python-library-dir.patch
>> @@ -0,0 +1,37 @@
>> +[PATCH] redefine the python library install dir
>> +
>> +Upstream-Status: Pending
>> +
>> +If install-lib is not defined, it is always /usr/lib/, but it
>> +maybe /usr/lib64 for multilib
>> +
>> +Signed-off-by: Roy Li <rongqing.li at windriver.com>
>> +---
>> + Makefile.in | 4 ++--
>> + 1 file changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/Makefile.in b/Makefile.in
>> +index 1bb062c..cced2fb 100644
>> +--- a/Makefile.in
>> ++++ b/Makefile.in
>> +@@ -311,7 +311,7 @@ build-zenmap: $(ZENMAPDIR)/setup.py $(ZENMAPDIR)/zenmapCore/Version.py
>> + 
>> + install-zenmap: $(ZENMAPDIR)/setup.py
>> + 	$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
>> +-	cd $(ZENMAPDIR) && $(PYTHON) setup.py --quiet install --prefix "$(prefix)" --force $(if $(DESTDIR),--root "$(DESTDIR)")
>> ++	cd $(ZENMAPDIR) && $(PYTHON) setup.py --quiet install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" --force $(if $(DESTDIR),--root "$(DESTDIR)")
>> + 	$(INSTALL) -c -m 644 docs/zenmap.1 $(DESTDIR)$(mandir)/man1/
>> + # Create a symlink from nmapfe to zenmap if nmapfe doesn't exist or is
>> + # already a link.
>> +@@ -328,7 +328,7 @@ build-nping: $(NPINGDIR)/Makefile nbase_build nsock_build netutil_build $(NPINGD
>> + 	@cd $(NPINGDIR) && $(MAKE)
>> + 
>> + install-ndiff:
>> +-	cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" $(if $(DESTDIR),--root "$(DESTDIR)")
>> ++	cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
>> + 
>> + NSE_FILES = scripts/script.db scripts/*.nse
>> + NSE_LIB_LUA_FILES = nselib/*.lua nselib/*.luadoc
>> +-- 
>> +1.9.1
>> +
>> diff --git a/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch b/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch
>> new file mode 100644
>> index 0000000..cfe043a
>> --- /dev/null
>> +++ b/meta-oe/recipes-security/nmap/files/nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch
>> @@ -0,0 +1,48 @@
>> +[PATCH] replace "./shtool mkdir" with coreutils mkdir command
>> +
>> +Upstream-Status: Pending
>> +
>> +"./shtool mkdir" is used when mkdir has not -p parameter, but mkdir in today
>> +most release has supportted the -p parameter, not need to use shtool, and it
>> +can not fix the race if two process are running mkdir to create same dir
>> +
>> +Signed-off-by: Roy Li <rongqing.li at windriver.com>
>> +---
>> + ncat/Makefile.in        | 4 ++--
>> + nmap-update/Makefile.in | 2 +-
>> + 2 files changed, 3 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/ncat/Makefile.in b/ncat/Makefile.in
>> +index cfd306d..2166e08 100644
>> +--- a/ncat/Makefile.in
>> ++++ b/ncat/Makefile.in
>> +@@ -163,11 +163,11 @@ $(NSOCKDIR)/libnsock.a: $(NSOCKDIR)/Makefile
>> + 
>> + install: $(TARGET)
>> + 	@echo Installing Ncat;
>> +-	$(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
>> ++	mkdir -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
>> + 	$(INSTALL) -c -m 755 ncat $(DESTDIR)$(bindir)/ncat
>> + 	$(STRIP) -x $(DESTDIR)$(bindir)/ncat
>> + 	if [ -n "$(DATAFILES)" ]; then \
>> +-		$(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(pkgdatadir); \
>> ++		mkdir -p -m 755 $(DESTDIR)$(pkgdatadir); \
>> + 		$(INSTALL) -c -m 644 $(DATAFILES) $(DESTDIR)$(pkgdatadir)/; \
>> + 	fi
>> + 	$(INSTALL) -c -m 644 docs/$(TARGET).1 $(DESTDIR)$(mandir)/man1/$(TARGET).1
>> +diff --git a/nmap-update/Makefile.in b/nmap-update/Makefile.in
>> +index 89ff928..93f48d8 100644
>> +--- a/nmap-update/Makefile.in
>> ++++ b/nmap-update/Makefile.in
>> +@@ -37,7 +37,7 @@ $(NBASELIB):
>> + 	cd $(NBASEDIR) && $(MAKE)
>> + 
>> + install: nmap-update
>> +-	$(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
>> ++	mkdir -p -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
>> + 	$(INSTALL) -c -m 755 nmap-update $(DESTDIR)$(bindir)
>> + 	$(STRIP) -x $(DESTDIR)$(bindir)/nmap-update
>> + 	$(INSTALL) -c -m 644 ../docs/nmap-update.1 $(DESTDIR)$(mandir)/man1/
>> +-- 
>> +1.9.1
>> +
>> diff --git a/meta-oe/recipes-security/nmap/nmap_7.60.bb b/meta-oe/recipes-security/nmap/nmap_7.60.bb
>> new file mode 100644
>> index 0000000..a6616eb
>> --- /dev/null
>> +++ b/meta-oe/recipes-security/nmap/nmap_7.60.bb
>> @@ -0,0 +1,54 @@
>> +SUMMARY = "network auditing tool"
>> +DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf"
>> +SECTION = "security"
>> +LICENSE = "GPL-2.0"
>> +
>> +LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=700c690f4ca6b1754f3f1db8645e42d9"
>> +
>> +SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
>> +           file://nmap-redefine-the-python-library-dir.patch \
>> +           file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \
>> +"
>> +
>> +SRC_URI[md5sum] = "4e454266559ddf2c4e2109866c62560c"
>> +SRC_URI[sha256sum] = "a8796ecc4fa6c38aad6139d9515dc8113023a82e9d787e5a5fb5fa1b05516f21"
>> +
>> +inherit autotools-brokensep pkgconfig pythonnative distro_features_check
>> +
>> +PACKAGECONFIG ?= "ncat nping ndiff pcap"
>> +PACKAGECONFIG += " ${@bb.utils.contains('IMAGE_FEATURES', 'x11-base', 'zenmap', '', d)}"
>> +
>> +PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap"
>> +PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpre"
>> +PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl"
>> +PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2"
>> +PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib"
>> +
>> +#disable/enable packages
>> +PACKAGECONFIG[nping] = ",--without-nping,"
>> +PACKAGECONFIG[ncat] = ",--without-ncat,"
>> +PACKAGECONFIG[ndiff] = ",--without-ndiff,python"
>> +PACKAGECONFIG[update] = ",--without-nmap-update,"
>> +
>> +#Add gui
>> +PACKAGECONFIG[zenmap] = "--with-zenmap, --without-zenmap, gtk+ python-core python-codecs python-io python-logging python-unittest python-xml python-netclient python-doctest python-subprocess python-pygtk, python-core python-codecs python-io python-logging python-netclient python-xml python-unittest python-doctest python-subprocess  python-pygtk gtk+"
>> +
>> +EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included"
>> +
>> +export PYTHON_SITEPACKAGES_DIR
>> +
>> +do_configure() {
>> +    # strip hard coded python2#
>> +    sed -i -e 's=python2\.*=python=g'  ${S}/configure.ac
>> +    sed -i -e 's=python2\.*=python=g'  ${S}/configure
> some distros mean python = python3 btw. So question is if replacing
> python2 with python may cause it to fail build on such distros. Is this
> just needed in runtime python scripts that will execute on target ?
This has been removed. in previous releases nmap would not build without
that change.

>
>> +    autoconf
>> +    oe_runconf
>> +}
>> +
>> +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'zenmap', '${PN}-zenmap', '', d)}"
> may be there is no need for checking for pkgconfig here.
zenmap support is being removed. it requires python-pygtk which was
obsoleted in core a while ago.. tells you how many folks use the nmap gui.

v2 out shortly.

thanks for the review.
- armin
>
>> +
>> +FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
>> +FILES_${PN}-zenmap = "${@bb.utils.contains("PACKAGECONFIG", "zenmap", "${bindir}/*zenmap ${bindir}/xnmap ${datadir}/applications/*  ${bindir}/nmapfe ${datadir}/zenmap/* ${PYTHON_SITEPACKAGES_DIR}/radialnet/* ${PYTHON_SITEPACKAGES_DIR}/zenmap*", "", d)}"
>> +
> could this work without pkgconfig such that when the given packageconfig
> is enabled it automatically packages extra files generated into the new
> package otherwise leaves it empty
>
>> +RDEPENDS_${PN} = "python"
>> +RDEPENDS_${PN}-zenmap = "nmap"
>>




More information about the Openembedded-devel mailing list