diff options
| author | Mohamed JAAFAR <mohamet.jaafar@gmail.com> | 2019-03-08 23:25:49 -0800 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-03-08 23:25:49 -0800 |
| commit | 9ba7210922bf14fe2310d0d2c69a0dbf3678476e (patch) | |
| tree | 6feccc0f20fa40dafdc1b6cdaba15c284db70bd5 | |
| parent | a14e462ef9bc5876d621e6d14b38092b5722bf0f (diff) | |
| download | vcpkg-9ba7210922bf14fe2310d0d2c69a0dbf3678476e.tar.gz vcpkg-9ba7210922bf14fe2310d0d2c69a0dbf3678476e.zip | |
[nmap] Integration of nmap netwotk utilities(#5530) (#5545)
* [nmap] Integration of nmap netwotk utilities(#5530)
* [nmap] adding openssl and openssh2 support
* [nmap] Integration of nmap netwotk utilities(#5530)
* [nmap] correction of the DIR option with-openssl
and with-openssh
| -rw-r--r-- | ports/nmap/CONTROL | 4 | ||||
| -rw-r--r-- | ports/nmap/build.sh | 24 | ||||
| -rw-r--r-- | ports/nmap/detect-crypto-library.patch | 75 | ||||
| -rw-r--r-- | ports/nmap/portfile.cmake | 134 | ||||
| -rw-r--r-- | ports/nmap/usage | 5 |
5 files changed, 242 insertions, 0 deletions
diff --git a/ports/nmap/CONTROL b/ports/nmap/CONTROL new file mode 100644 index 000000000..8dcace63e --- /dev/null +++ b/ports/nmap/CONTROL @@ -0,0 +1,4 @@ +Source: nmap +Version: 7.70 +Build-Depends: winpcap, lua, openssl, python2, libssh2 +Description: A library for scanning network ports. diff --git a/ports/nmap/build.sh b/ports/nmap/build.sh new file mode 100644 index 000000000..f4e5d4b29 --- /dev/null +++ b/ports/nmap/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash +set -e +export PATH=/usr/bin:$PATH +# Export HTTP(S)_PROXY as http(s)_proxy: +if [ "$HTTP_PROXY" ]; then + export http_proxy=$HTTP_PROXY +fi +if [ "$HTTPS_PROXY" ]; then + export https_proxy=$HTTPS_PROXY +fi + +PATH_TO_BUILD_DIR="`cygpath "$1"`" +PATH_TO_SRC_DIR="`cygpath "$2"`" +PATH_TO_PACKAGE_DIR="`cygpath "$3"`" +# Note: $4 is extra configure options + +cd "$PATH_TO_BUILD_DIR" +echo "=== CONFIGURING ===" +echo "building nmap package $PATH_TO_SRC_DIR" +"$PATH_TO_SRC_DIR/configure" CC=cl.exe LD=link.exe CXX=lc.exe "--prefix=$PATH_TO_PACKAGE_DIR" $4 +echo "=== BUILDING ===" +make -j6 +echo "=== INSTALLING ===" +make install diff --git a/ports/nmap/detect-crypto-library.patch b/ports/nmap/detect-crypto-library.patch new file mode 100644 index 000000000..243735b9e --- /dev/null +++ b/ports/nmap/detect-crypto-library.patch @@ -0,0 +1,75 @@ +--- a/configure 2017-11-01 23:55:49.000000000 +0100 ++++ b/configure 2019-03-05 03:35:21.753268300 +0100 +@@ -5989,13 +5989,13 @@ + + # use_openssl="yes" given explicitly in next 2 rules to avoid adding lib to $LIBS + if test "$use_openssl" = "yes"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_int_ctrl in -lcrypto" >&5 +-$as_echo_n "checking for BIO_int_ctrl in -lcrypto... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_int_ctrl in -llibeay32" >&5 ++$as_echo_n "checking for BIO_int_ctrl in -llibeay32... " >&6; } + if ${ac_cv_lib_crypto_BIO_int_ctrl+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lcrypto $LIBS" ++LIBS="-llibeay32 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -6030,23 +6030,23 @@ + else + use_openssl="no" + if test "$with_openssl" = "yes"; then +- as_fn_error $? "OpenSSL was explicitly requested but libcrypto was not found. Try the --with-openssl=DIR argument to give the location of OpenSSL or run configure with --without-openssl." "$LINENO" 5 ++ as_fn_error $? "OpenSSL was explicitly requested but libeay32 was not found. Try the --with-openssl=DIR argument to give the location of OpenSSL or run configure with --without-openssl." "$LINENO" 5 + fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&5 +-$as_echo "$as_me: WARNING: Failed to find libcrypto so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed to find libeay32 so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&5 ++$as_echo "$as_me: WARNING: Failed to find libeay32 so OpenSSL will not be used. If it is installed you can try the --with-openssl=DIR argument" >&2;} + + fi + + fi + + if test "$use_openssl" = "yes"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 +-$as_echo_n "checking for SSL_new in -lssl... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssleay32" >&5 ++$as_echo_n "checking for SSL_new in -lssleay32... " >&6; } + if ${ac_cv_lib_ssl_SSL_new+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lssl -lcrypto $LIBS" ++LIBS="-lssleay32 -llibeay32 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -6090,13 +6090,13 @@ + fi + + if test "$use_openssl" = "yes"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_PKEY_get1_EC_KEY in -lcrypto" >&5 +-$as_echo_n "checking for EVP_PKEY_get1_EC_KEY in -lcrypto... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_PKEY_get1_EC_KEY in -llibeay32" >&5 ++$as_echo_n "checking for EVP_PKEY_get1_EC_KEY in -llibeay32... " >&6; } + if ${ac_cv_lib_crypto_EVP_PKEY_get1_EC_KEY+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lcrypto $LIBS" ++LIBS="-llibeay32 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -6144,7 +6144,7 @@ + + $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h + +- OPENSSL_LIBS="-lssl -lcrypto" ++ OPENSSL_LIBS="-lssleay32 -llibeay32" + else + trace_no_use="$trace_no_use openssl" + fi diff --git a/ports/nmap/portfile.cmake b/ports/nmap/portfile.cmake new file mode 100644 index 000000000..5e2e05787 --- /dev/null +++ b/ports/nmap/portfile.cmake @@ -0,0 +1,134 @@ +include(vcpkg_common_functions) + +vcpkg_download_distfile(ARCHIVE + URLS "https://nmap.org/dist/nmap-7.70.tar.bz2" + FILENAME "nmap-7.70.tar.bz2" + SHA512 084c148b022ff6550e269d976d0077f7932a10e2ef218236fe13aa3a70b4eb6506df03329868fc68cb3ce78e4360b200f5a7a491d3145028fed679ef1c9ecae5 +) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${SQLITE_VERSION} +) + +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/detect-crypto-library.patch +) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + vcpkg_acquire_msys(MSYS_ROOT PACKAGES perl gcc diffutils make) +else() + vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils make) +endif() +set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) +set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}") +set(ENV{LIB} "${CURRENT_INSTALLED_DIR}/lib;$ENV{LIB}") + +set(_csc_PROJECT_PATH nmap) + +file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\") + set(OPTIONS "${OPTIONS} --disable-programs --enable-cross-compile --target-os=win32 --arch=${VCPKG_TARGET_ARCHITECTURE}") + set(OPTIONS "${OPTIONS} --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00") + + if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + vcpkg_find_acquire_program(GASPREPROCESSOR) + foreach(GAS_PATH ${GASPREPROCESSOR}) + get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY) + set(ENV{PATH} "$ENV{PATH};${GAS_ITEM_PATH}") + endforeach(GAS_PATH) + elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + else() + message(FATAL_ERROR "Unsupported architecture") + endif() +endif() + + +set(OPTIONS "--with-openssl=${VCPKG_ROOT_DIR}/installed/x64-windows/bin/ --with-libssh2=${VCPKG_ROOT_DIR}/installed/x64-windows/bin/") + +message(STATUS "Building Options: ${OPTIONS}") + +set(OPTIONS_DEBUG "") # Note: --disable-optimizations can't be used due to http://ffmpeg.org/pipermail/libav-user/2013-March/003945.html +set(OPTIONS_RELEASE "") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(OPTIONS "${OPTIONS} --disable-static --enable-shared") + if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(OPTIONS "${OPTIONS} --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib") + endif() +endif() + +message(STATUS "Building Options: ${OPTIONS}") + +message(STATUS "Building ${_csc_PROJECT_PATH} for Release") +file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) +vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc "${CMAKE_CURRENT_LIST_DIR}\\build.sh" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" # BUILD DIR + "${SOURCE_PATH}" # SOURCE DIR + "${CURRENT_PACKAGES_DIR}" # PACKAGE DIR + "${OPTIONS} ${OPTIONS_RELEASE}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + LOGNAME build-${TARGET_TRIPLET}-rel +) + +message(STATUS "Building ${_csc_PROJECT_PATH} for Debug") +file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) +vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc "${CMAKE_CURRENT_LIST_DIR}\\build.sh" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" # BUILD DIR + "${SOURCE_PATH}" # SOURCE DIR + "${CURRENT_PACKAGES_DIR}/debug" # PACKAGE DIR + "${OPTIONS} ${OPTIONS_DEBUG}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + LOGNAME build-${TARGET_TRIPLET}-dbg +) + +file(GLOB DEF_FILES ${CURRENT_PACKAGES_DIR}/lib/*.def ${CURRENT_PACKAGES_DIR}/debug/lib/*.def) + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + set(LIB_MACHINE_ARG /machine:ARM) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(LIB_MACHINE_ARG /machine:x86) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(LIB_MACHINE_ARG /machine:x64) +else() + message(FATAL_ERROR "Unsupported target architecture") +endif() + +foreach(DEF_FILE ${DEF_FILES}) + get_filename_component(DEF_FILE_DIR "${DEF_FILE}" DIRECTORY) + get_filename_component(DEF_FILE_NAME "${DEF_FILE}" NAME) + string(REGEX REPLACE "-[0-9]*\\.def" ".lib" OUT_FILE_NAME "${DEF_FILE_NAME}") + file(TO_NATIVE_PATH "${DEF_FILE}" DEF_FILE_NATIVE) + file(TO_NATIVE_PATH "${DEF_FILE_DIR}/${OUT_FILE_NAME}" OUT_FILE_NATIVE) + message(STATUS "Generating ${OUT_FILE_NATIVE}") + vcpkg_execute_required_process( + COMMAND lib.exe /def:${DEF_FILE_NATIVE} /out:${OUT_FILE_NATIVE} ${LIB_MACHINE_ARG} + WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR} + LOGNAME libconvert-${TARGET_TRIPLET} + ) +endforeach() + +file(GLOB EXP_FILES ${CURRENT_PACKAGES_DIR}/lib/*.exp ${CURRENT_PACKAGES_DIR}/debug/lib/*.exp) +file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib) +file(GLOB EXE_FILES ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) +set(FILES_TO_REMOVE ${EXP_FILES} ${LIB_FILES} ${DEF_FILES} ${EXE_FILES}) +list(LENGTH FILES_TO_REMOVE FILES_TO_REMOVE_LEN) +if(FILES_TO_REMOVE_LEN GREATER 0) + file(REMOVE ${FILES_TO_REMOVE}) +endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +vcpkg_copy_pdbs() + +# Handle copyright +# TODO: Examine build log and confirm that this license matches the build output +file(RENAME ${CURRENT_PACKAGES_DIR}/COPYING ${CURRENT_PACKAGES_DIR}/copyright) diff --git a/ports/nmap/usage b/ports/nmap/usage new file mode 100644 index 000000000..d910c7d2e --- /dev/null +++ b/ports/nmap/usage @@ -0,0 +1,5 @@ +The package curl is compatible with built-in CMake targets: + + find_package(NMAP REQUIRED) + target_link_libraries(main PRIVATE ${NMAP_LIBRARIES}) + target_include_directories(main PRIVATE ${NMAP_INCLUDE_DIRS}) |
