On 6/1/18 8:10 AM, Armin Kuster wrote:
> Signed-off-by: Armin Kuster <[email protected]>
> ---
>  .../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 <[email protected]>
> +---
> + 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 <[email protected]>
> +---
> + 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 ?

> +    autoconf
> +    oe_runconf
> +}
> +
> +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'zenmap', '${PN}-zenmap', 
> '', d)}"

may be there is no need for checking for pkgconfig here.

> +
> +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"
> 

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to