mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-18 17:13:02 +08:00
* [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
This commit is contained in:
parent
a14e462ef9
commit
9ba7210922
4
ports/nmap/CONTROL
Normal file
4
ports/nmap/CONTROL
Normal file
@ -0,0 +1,4 @@
|
||||
Source: nmap
|
||||
Version: 7.70
|
||||
Build-Depends: winpcap, lua, openssl, python2, libssh2
|
||||
Description: A library for scanning network ports.
|
24
ports/nmap/build.sh
Normal file
24
ports/nmap/build.sh
Normal file
@ -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
|
75
ports/nmap/detect-crypto-library.patch
Normal file
75
ports/nmap/detect-crypto-library.patch
Normal file
@ -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
|
134
ports/nmap/portfile.cmake
Normal file
134
ports/nmap/portfile.cmake
Normal file
@ -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)
|
5
ports/nmap/usage
Normal file
5
ports/nmap/usage
Normal file
@ -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})
|
Loading…
Reference in New Issue
Block a user