diff options
Diffstat (limited to 'vcpkg/ports/clamav')
| -rw-r--r-- | vcpkg/ports/clamav/build.patch | 26 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/cmakefiles.patch | 136 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/curl.patch | 38 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/isnt.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/mspack.patch | 44 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/clamav/vcpkg.json | 25 |
7 files changed, 321 insertions, 0 deletions
diff --git a/vcpkg/ports/clamav/build.patch b/vcpkg/ports/clamav/build.patch new file mode 100644 index 0000000..ee94a71 --- /dev/null +++ b/vcpkg/ports/clamav/build.patch @@ -0,0 +1,26 @@ +diff --git a/cmake/FindCURSES.cmake b/cmake/FindCURSES.cmake
+index a0755c697..f60735a91 100644
+--- a/cmake/FindCURSES.cmake
++++ b/cmake/FindCURSES.cmake
+@@ -107,7 +107,7 @@ else()
+ set(CURSES_INCLUDE "<curses.h>")
+
+ find_library(CURSES_LIBRARY
+- NAMES curses
++ NAMES curses pdcurses
+ PATHS ${PC_PDCurses_LIBRARY_DIRS}
+ )
+
+diff --git a/cmake/FindPthreadW32.cmake b/cmake/FindPthreadW32.cmake
+index 4fded1eb7..0d44af310 100644
+--- a/cmake/FindPthreadW32.cmake
++++ b/cmake/FindPthreadW32.cmake
+@@ -54,7 +54,7 @@ find_path(PThreadW32_INCLUDE_DIR
+ PATH_SUFFIXES pthreadw32
+ )
+ find_library(PThreadW32_LIBRARY
+- NAMES pthreadVC2
++ NAMES pthreadVC2 pthreadVC3
+ PATHS ${PC_PThreadW32_LIBRARY_DIRS}
+ )
+
diff --git a/vcpkg/ports/clamav/cmakefiles.patch b/vcpkg/ports/clamav/cmakefiles.patch new file mode 100644 index 0000000..cca4e6e --- /dev/null +++ b/vcpkg/ports/clamav/cmakefiles.patch @@ -0,0 +1,136 @@ +diff --git a/freshclam/CMakeLists.txt b/freshclam/CMakeLists.txt
+index 545d5d4ba..59cbbc4ce 100644
+--- a/freshclam/CMakeLists.txt
++++ b/freshclam/CMakeLists.txt
+@@ -28,18 +28,8 @@ target_link_libraries(freshclam-bin
+ ClamAV::libfreshclam
+ ClamAV::libclamav
+ ClamAV::shared )
+-if(WIN32)
+- install(TARGETS freshclam-bin DESTINATION ${CMAKE_INSTALL_PREFIX})
+-else()
+- install(TARGETS freshclam-bin DESTINATION ${CMAKE_INSTALL_BINDIR})
+-endif()
+
+-# Install an empty database directory
+-if(WIN32)
+- INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/database)")
+-else()
+- INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/share/clamav)")
+-endif()
++install(TARGETS freshclam-bin)
+
+ # now we rename resman-bin executable to resman using target properties
+ set_target_properties( freshclam-bin
+diff --git a/libclamav/CMakeLists.txt b/libclamav/CMakeLists.txt
+index bb14510db..136ea308a 100644
+--- a/libclamav/CMakeLists.txt
++++ b/libclamav/CMakeLists.txt
+@@ -564,11 +564,7 @@ if(ENABLE_SHARED_LIB)
+ else()
+ target_link_libraries( clamav PUBLIC Iconv::Iconv )
+ endif()
+- if(WIN32)
+- install(TARGETS clamav DESTINATION ${CMAKE_INSTALL_PREFIX})
+- else()
+- install(TARGETS clamav DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
++ install(TARGETS clamav)
+
+ if(LLVM_FOUND)
+ target_link_directories( clamav PRIVATE ${LLVM_LIBRARY_DIRS} )
+@@ -609,11 +605,7 @@ if(ENABLE_STATIC_LIB)
+ COMPILE_FLAGS "${WARNCFLAGS}"
+ VERSION ${LIBCLAMAV_VERSION} SOVERSION ${LIBCLAMAV_SOVERSION})
+ target_compile_definitions(clamav_static PUBLIC clamav_staticLIB)
+- if(WIN32)
+- install(TARGETS clamav_static DESTINATION ${CMAKE_INSTALL_PREFIX})
+- else()
+- install(TARGETS clamav_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
++ install(TARGETS clamav_static)
+
+ add_library( ClamAV::libclamav_static ALIAS clamav_static )
+ endif()
+diff --git a/libclammspack/CMakeLists.txt b/libclammspack/CMakeLists.txt
+index 1b5edbd4d..bba781d76 100644
+--- a/libclammspack/CMakeLists.txt
++++ b/libclammspack/CMakeLists.txt
+@@ -73,11 +73,7 @@ endif()
+ target_sources( mspack
+ PUBLIC
+ "${CMAKE_CURRENT_SOURCE_DIR}/mspack/mspack.h" )
+-if(WIN32)
+- install(TARGETS mspack DESTINATION ${CMAKE_INSTALL_PREFIX})
+-else()
+- install(TARGETS mspack DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-endif()
++install(TARGETS mspack)
+
+ # Public (forwarded) dependencies.
+ target_link_libraries( mspack
+diff --git a/libclamunrar/CMakeLists.txt b/libclamunrar/CMakeLists.txt
+index 03dbc3387..267690b1c 100644
+--- a/libclamunrar/CMakeLists.txt
++++ b/libclamunrar/CMakeLists.txt
+@@ -90,10 +90,6 @@ target_link_libraries( clamunrar
+ PUBLIC
+ unrar_obj )
+
+-if(WIN32)
+- install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_PREFIX})
+-else()
+- install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-endif()
++install(TARGETS clamunrar)
+
+ add_library( ClamAV::libclamunrar ALIAS clamunrar )
+diff --git a/libclamunrar_iface/CMakeLists.txt b/libclamunrar_iface/CMakeLists.txt
+index 42f81544d..61f21da33 100644
+--- a/libclamunrar_iface/CMakeLists.txt
++++ b/libclamunrar_iface/CMakeLists.txt
+@@ -55,11 +55,7 @@ if(ENABLE_UNRAR)
+ PUBLIC
+ ClamAV::libclamunrar_iface_iface)
+
+- if(WIN32)
+- install(TARGETS clamunrar_iface DESTINATION ${CMAKE_INSTALL_PREFIX})
+- else()
+- install(TARGETS clamunrar_iface DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
++ install(TARGETS clamunrar_iface)
+
+ add_library( ClamAV::libclamunrar_iface ALIAS clamunrar_iface )
+-endif()
+\ No newline at end of file
++endif()
+diff --git a/libfreshclam/CMakeLists.txt b/libfreshclam/CMakeLists.txt
+index 6fb711818..27321ceb4 100644
+--- a/libfreshclam/CMakeLists.txt
++++ b/libfreshclam/CMakeLists.txt
+@@ -65,11 +65,7 @@ if(ENABLE_SHARED_LIB)
+ set_target_properties(freshclam PROPERTIES
+ COMPILE_FLAGS "${WARNCFLAGS}"
+ VERSION ${LIBFRESHCLAM_VERSION} SOVERSION ${LIBFRESHCLAM_SOVERSION})
+- if(WIN32)
+- install(TARGETS freshclam DESTINATION ${CMAKE_INSTALL_PREFIX})
+- else()
+- install(TARGETS freshclam DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
++ install(TARGETS freshclam)
+
+ add_library( ClamAV::libfreshclam ALIAS freshclam )
+ endif()
+@@ -88,11 +84,7 @@ if(ENABLE_STATIC_LIB)
+ COMPILE_FLAGS "${WARNCFLAGS}"
+ VERSION ${LIBFRESHCLAM_VERSION} SOVERSION ${LIBFRESHCLAM_SOVERSION})
+ target_compile_definitions(freshclam_static PUBLIC freshclam_staticLIB)
+- if(WIN32)
+- install(TARGETS freshclam_static DESTINATION ${CMAKE_INSTALL_PREFIX})
+- else()
+- install(TARGETS freshclam_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- endif()
++ install(TARGETS freshclam_static)
+
+ add_library( ClamAV::libfreshclam_static ALIAS freshclam_static )
+ endif()
diff --git a/vcpkg/ports/clamav/curl.patch b/vcpkg/ports/clamav/curl.patch new file mode 100644 index 0000000..444f61d --- /dev/null +++ b/vcpkg/ports/clamav/curl.patch @@ -0,0 +1,38 @@ +commit 59516af244a840aa95a8f15f978ac24ec97178cf
+Author: jzaddach <jzaddach@cisco.com>
+Date: Fri Nov 27 14:24:31 2020 +0100
+
+ Fix curl usage
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e85d03e20..9f1cd42c5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -685,7 +685,7 @@ endif()
+
+ add_subdirectory( libclamav )
+
+-if(NOT LIBCLAMAV_ONLY)
++if(NOT ENABLE_LIBCLAMAV_ONLY)
+ add_subdirectory( shared )
+
+ add_subdirectory( libfreshclam )
+diff --git a/shared/CMakeLists.txt b/shared/CMakeLists.txt
+index d9c8b6bfe..30df5a1a4 100644
+--- a/shared/CMakeLists.txt
++++ b/shared/CMakeLists.txt
+@@ -59,9 +59,13 @@ target_link_libraries( shared_obj
+ PUBLIC
+ ClamAV::libclamav
+ ZLIB::ZLIB
+- CURL::libcurl
+ OpenSSL::SSL
+ OpenSSL::Crypto )
++if(CURL_FOUND)
++ target_link_libraries( shared_obj
++ PUBLIC
++ CURL::libcurl )
++endif()
+ if(WIN32)
+ target_link_libraries( shared_obj
+ PUBLIC
diff --git a/vcpkg/ports/clamav/isnt.patch b/vcpkg/ports/clamav/isnt.patch new file mode 100644 index 0000000..faceaa1 --- /dev/null +++ b/vcpkg/ports/clamav/isnt.patch @@ -0,0 +1,12 @@ +diff --git a/libclamunrar/CMakeLists.txt b/libclamunrar/CMakeLists.txt +index f7ce3848e..5bae50aca 100644 +--- a/libclamunrar/CMakeLists.txt ++++ b/libclamunrar/CMakeLists.txt +@@ -85,6 +85,7 @@ target_sources( clamunrar + "dll.hpp" ) + if(WIN32) + set_target_properties(clamunrar PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ target_sources( clamunrar PRIVATE "isnt.cpp") + endif() + + # Public (forwarded) dependencies. diff --git a/vcpkg/ports/clamav/mspack.patch b/vcpkg/ports/clamav/mspack.patch new file mode 100644 index 0000000..5677887 --- /dev/null +++ b/vcpkg/ports/clamav/mspack.patch @@ -0,0 +1,44 @@ +diff --git a/cmake/FindMSPack.cmake b/cmake/FindMSPack.cmake +index cad448f..4ce4f87 100644 +--- a/cmake/FindMSPack.cmake ++++ b/cmake/FindMSPack.cmake +@@ -50,7 +50,7 @@ find_path(MSPack_INCLUDE_DIR + PATH_SUFFIXES mspack + ) + find_library(MSPack_LIBRARY +- NAMES mspack ++ NAMES libmspack + PATHS ${PC_MSPack_LIBRARY_DIRS} + ) + +diff --git a/libclamav/CMakeLists.txt b/libclamav/CMakeLists.txt +index 136ea30..72db826 100644 +--- a/libclamav/CMakeLists.txt ++++ b/libclamav/CMakeLists.txt +@@ -504,7 +504,7 @@ target_link_libraries( clamav_obj + yara + tomsfastmath + bytecode_runtime +- ClamAV::libmspack ++ ${MSPack_LIBRARIES} + ClamAV::libclamunrar_iface_iface + OpenSSL::SSL + OpenSSL::Crypto +@@ -547,7 +547,7 @@ if(ENABLE_SHARED_LIB) + yara + tomsfastmath + bytecode_runtime +- ClamAV::libmspack ++ ${MSPack_LIBRARIES} + ClamAV::libclamunrar_iface_iface + OpenSSL::SSL + OpenSSL::Crypto +@@ -588,7 +588,7 @@ if(ENABLE_STATIC_LIB) + yara + tomsfastmath + bytecode_runtime +- ClamAV::libmspack ++ ${MSPack_LIBRARIES} + ClamAV::libclamunrar_iface_iface + OpenSSL::SSL + OpenSSL::Crypto diff --git a/vcpkg/ports/clamav/portfile.cmake b/vcpkg/ports/clamav/portfile.cmake new file mode 100644 index 0000000..7f5a66b --- /dev/null +++ b/vcpkg/ports/clamav/portfile.cmake @@ -0,0 +1,40 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Cisco-Talos/clamav-devel + REF clamav-0.103.11 + SHA512 2d614b5006fe526d7bb43dfc691329f2de2fa2dc6cfc63fb93ba556ee26a9f87369bf072f59db0fed178c44413d68838b45ea572885c8d0a0bee81a410d5e055 + FILE_DISAMBIGUATOR 1 + HEAD_REF master + PATCHES + "build.patch" + "cmakefiles.patch" + "curl.patch" + "mspack.patch" + "isnt.patch" +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DENABLE_LIBCLAMAV_ONLY=ON + -DENABLE_DOCS=OFF + -DENABLE_SHARED_LIB=ON + -DENABLE_STATIC_LIB=OFF + -DENABLE_EXTERNAL_MSPACK=ON +) + +vcpkg_cmake_install() + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +# On Linux, clamav will still build and install clamav-config +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +vcpkg_copy_pdbs() diff --git a/vcpkg/ports/clamav/vcpkg.json b/vcpkg/ports/clamav/vcpkg.json new file mode 100644 index 0000000..0a8b307 --- /dev/null +++ b/vcpkg/ports/clamav/vcpkg.json @@ -0,0 +1,25 @@ +{ + "name": "clamav", + "version-semver": "0.103.11", + "description": "ClamAV is an open-source anti-virus toolkit.", + "homepage": "https://www.clamav.net", + "supports": "!uwp & !static", + "dependencies": [ + "bzip2", + "json-c", + "libmspack", + "libxml2", + "openssl", + "pcre2", + "pthreads", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ] +} |