diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openscap | |
Diffstat (limited to 'vcpkg/ports/openscap')
| -rw-r--r-- | vcpkg/ports/openscap/dependencies.diff | 47 | ||||
| -rw-r--r-- | vcpkg/ports/openscap/install-dirs.diff | 52 | ||||
| -rw-r--r-- | vcpkg/ports/openscap/portfile.cmake | 108 | ||||
| -rw-r--r-- | vcpkg/ports/openscap/python-win32.diff | 23 | ||||
| -rw-r--r-- | vcpkg/ports/openscap/vcpkg.json | 84 |
5 files changed, 314 insertions, 0 deletions
diff --git a/vcpkg/ports/openscap/dependencies.diff b/vcpkg/ports/openscap/dependencies.diff new file mode 100644 index 0000000..163a47f --- /dev/null +++ b/vcpkg/ports/openscap/dependencies.diff @@ -0,0 +1,47 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4c0b074..8893e1e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -85,8 +85,12 @@ include(FindPythonModule) + find_package(ACL) + if(ACL_FOUND) + check_library_exists("${ACL_LIBRARY}" acl_extended_file "" HAVE_ACL_EXTENDED_FILE) +- check_include_file(acl/libacl.h HAVE_ACL_LIBACL_H) +- check_include_file(sys/acl.h HAVE_SYS_ACL_H) ++ if(EXISTS "${ACL_INCLUDE_DIR}/acl/libacl.h") ++ set(HAVE_ACL_LIBACL_H 1) ++ endif() ++ if(EXISTS "${ACL_INCLUDE_DIR}/sys/acl.h") ++ set(HAVE_SYS_ACL_H 1) ++ endif() + endif() + + find_package(Blkid) +diff --git a/cmake/FindACL.cmake b/cmake/FindACL.cmake +index a41f2c1..9675498 100644 +--- a/cmake/FindACL.cmake ++++ b/cmake/FindACL.cmake +@@ -12,7 +12,7 @@ libfind_pkg_check_modules(ACL_PKGCONF libacl) + + # Include dir + find_path(ACL_INCLUDE_DIR +- NAMES "acl/libacl.h" "sys/libacl.h" ++ NAMES "acl/libacl.h" "sys/acl.h" + PATHS ${ACL_PKGCONF_INCLUDE_DIRS} + ) + +diff --git a/cmake/FindGCrypt.cmake b/cmake/FindGCrypt.cmake +index 00fc4b3..d7997f6 100644 +--- a/cmake/FindGCrypt.cmake ++++ b/cmake/FindGCrypt.cmake +@@ -18,6 +18,10 @@ + #============================================================================= + # + ++find_package(PkgConfig) ++pkg_check_modules(GCRYPT libgcrypt) ++set(GCRYPT_LIBRARIES "${GCRYPT_LINK_LIBRARIES}") ++ + if (GCRYPT_LIBRARIES AND GCRYPT_INCLUDE_DIRS) + # in cache already + # set(GCRYPT_FOUND TRUE) diff --git a/vcpkg/ports/openscap/install-dirs.diff b/vcpkg/ports/openscap/install-dirs.diff new file mode 100644 index 0000000..9ca3efb --- /dev/null +++ b/vcpkg/ports/openscap/install-dirs.diff @@ -0,0 +1,52 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7f01a91..4c0b074 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -503,6 +503,9 @@ else() + set(OSCAP_DEFAULT_XSLT_PATH "${CMAKE_INSTALL_FULL_DATADIR}/openscap/xsl") + set(OSCAP_DEFAULT_CPE_PATH "${CMAKE_INSTALL_FULL_DATADIR}/openscap/cpe") + endif() ++set(OSCAP_DEFAULT_SCHEMA_PATH share/openscap/schemas) ++set(OSCAP_DEFAULT_XSLT_PATH share/openscap/xsl) ++set(OSCAP_DEFAULT_CPE_PATH share/openscap/cpe) + set(OSCAP_TEMP_DIR "/tmp" CACHE STRING "use different temporary directory to execute sce scripts (default=/tmp)") + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5d59bf3..d6919d0 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -125,4 +125,8 @@ else() + set(OPENSCAP_INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + +-install(TARGETS openscap DESTINATION ${OPENSCAP_INSTALL_DESTINATION}) ++install(TARGETS openscap ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++) +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index c372663..e0c8cc1 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -24,18 +24,11 @@ if(ENABLE_OSCAP_UTIL) + target_link_libraries(oscap ${GETOPT_LIBRARY}) + endif() + +- set(OSCAP_UTIL_DESTINATION ".") ++ set(OSCAP_UTIL_DESTINATION bin) + # Install the 'oscap' utility + install(TARGETS "oscap" + DESTINATION ${OSCAP_UTIL_DESTINATION} + ) +- # Install all recursively dependent DLLs for oscap.exe +- set(APPS "\${CMAKE_INSTALL_PREFIX}/oscap.exe") # the \ before $ is required by BundleUtilities +- set(VCPKG_DLL_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin") +- install(CODE " +- include(BundleUtilities) +- fixup_bundle(\"${APPS}\" \"\" \"${VCPKG_DLL_DIR}\") +- ") + else() + set(OSCAP_UTIL_DESTINATION ${CMAKE_INSTALL_BINDIR}) + # Install the 'oscap' utility diff --git a/vcpkg/ports/openscap/portfile.cmake b/vcpkg/ports/openscap/portfile.cmake new file mode 100644 index 0000000..00b074d --- /dev/null +++ b/vcpkg/ports/openscap/portfile.cmake @@ -0,0 +1,108 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OpenSCAP/openscap
+ REF ${VERSION}
+ SHA512 7d94ad18d456d8fcbe9f46e88d797cdd749b72cd3afd20087dc6d46aad16dfb380f667586343e7334e4d1e59d0d10cee7b5f1fac7a03598a1dd49629514cfc75
+ HEAD_REF main
+ PATCHES
+ dependencies.diff
+ install-dirs.diff
+ python-win32.diff
+)
+file(REMOVE "${SOURCE_PATH}/cmake/FindThreads.cmake")
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ crypto VCPKG_LOCK_FIND_PACKAGE_GCrypt
+ python ENABLE_PYTHON3
+ util ENABLE_OSCAP_UTIL
+)
+
+if("python" IN_LIST FEATURES)
+ vcpkg_get_vcpkg_installed_python(PYTHON3)
+ vcpkg_find_acquire_program(SWIG)
+ list(APPEND FEATURE_OPTIONS
+ "-DPYTHON_EXECUTABLE=${PYTHON3}"
+ -DVCPKG_LOCK_FIND_PACKAGE_PythonInterp=ON
+ -DVCPKG_LOCK_FIND_PACKAGE_PythonLibs=ON
+ "-DSWIG_EXECUTABLE=${SWIG}"
+ -DVCPKG_LOCK_FIND_PACKAGE_SWIG=ON
+ )
+endif()
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DCMAKE_POLICY_DEFAULT_CMP0148=OLD
+ -DENABLE_DOCS=OFF
+ -DENABLE_MITRE=OFF
+ -DENABLE_OSCAP_UTIL_DOCKER=OFF
+ -DENABLE_OSCAP_UTIL_AS_RPM=OFF
+ -DENABLE_OSCAP_UTIL_SSH=OFF
+ -DENABLE_OSCAP_UTIL_VM=OFF
+ -DENABLE_OSCAP_UTIL_PODMAN=OFF
+ -DENABLE_OSCAP_UTIL_CHROOT=OFF
+ -DENABLE_PERL=OFF
+ -DENABLE_TESTS=OFF
+ -DENABLE_VALGRIND=OFF
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+ -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON
+ -DVCPKG_LOCK_FIND_PACKAGE_ACL=${VCPKG_TARGET_IS_LINUX}
+ -DVCPKG_LOCK_FIND_PACKAGE_Blkid=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_BZip2=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Cap=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_CURL=ON
+ -DVCPKG_LOCK_FIND_PACKAGE_DBUS=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_GConf=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Ldap=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Libyaml=ON
+ -DVCPKG_LOCK_FIND_PACKAGE_OpenDbx=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_PerlLibs=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Popt=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Procps=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Systemd=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_SELinux=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_RPM=OFF
+ -DVCPKG_LOCK_FIND_PACKAGE_Popt=OFF
+ -DWANT_BASE64=OFF # clash with base64 in gsasl (transitive dep of curl)
+ OPTIONS_RELEASE
+ "-DPYTHON_SITE_PACKAGES_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/lib/site-packages"
+ OPTIONS_DEBUG
+ "-DPYTHON_SITE_PACKAGES_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/lib/site-packages"
+ MAYBE_UNUSED_VARIABLES
+ PYTHON_SITE_PACKAGES_INSTALL_DIR
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+
+set(scripts autotailor oscap-run-sce-script)
+if(NOT VCPKG_TARGET_IS_WINDOWS)
+ list(APPEND scripts oscap-im)
+endif()
+file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+foreach(script IN LISTS scripts)
+ file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}")
+endforeach()
+if(ENABLE_OSCAP_UTIL)
+ vcpkg_copy_tools(TOOL_NAMES oscap AUTO_CLEAN)
+else()
+ vcpkg_clean_executables_in_bin(FILE_NAMES none)
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/etc"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/man"
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/openscap/python-win32.diff b/vcpkg/ports/openscap/python-win32.diff new file mode 100644 index 0000000..524f6b1 --- /dev/null +++ b/vcpkg/ports/openscap/python-win32.diff @@ -0,0 +1,23 @@ +diff --git a/swig/python3/CMakeLists.txt b/swig/python3/CMakeLists.txt +index cbad9f9..1aba788 100644 +--- a/swig/python3/CMakeLists.txt ++++ b/swig/python3/CMakeLists.txt +@@ -6,6 +6,9 @@ include_directories(${PYTHON_INCLUDE_PATH}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + + set(CMAKE_SWIG_FLAGS "-module" "openscap_py") ++if (WIN32) ++ list(APPEND CMAKE_SWIG_FLAGS "-D_WIN32") ++endif() + if (${CMAKE_VERSION} VERSION_LESS "3.8.0") + swig_add_module(openscap_py python ../openscap.i) + else() +@@ -17,7 +20,7 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Cl + endif() + + add_custom_command(OUTPUT ${PYTHON_COMPILED_FILES} +- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../openscap_api.py ${CMAKE_CURRENT_BINARY_DIR} ++ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../openscap_api.py ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${PYTHON_EXECUTABLE} -m compileall ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${PYTHON_EXECUTABLE} -O -m compileall ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${SWIG_MODULE_openscap_py_REAL_NAME} diff --git a/vcpkg/ports/openscap/vcpkg.json b/vcpkg/ports/openscap/vcpkg.json new file mode 100644 index 0000000..39f8681 --- /dev/null +++ b/vcpkg/ports/openscap/vcpkg.json @@ -0,0 +1,84 @@ +{ + "name": "openscap", + "version": "1.4.2", + "description": "OpenSCAP represents both a library and a command line tool which can be used to parse and evaluate each component of the SCAP standard.", + "homepage": "https://www.open-scap.org/tools/openscap-base/", + "license": "LGPL-2.1-or-later", + "supports": "(linux | windows) & !(static & staticcrt)", + "dependencies": [ + { + "name": "acl", + "platform": "linux" + }, + { + "name": "curl", + "default-features": false + }, + "glib", + "libpopt", + { + "name": "libxml2", + "default-features": false + }, + { + "name": "libxslt", + "default-features": false + }, + "libyaml", + "libzip", + "openssl", + "pcre", + "pthreads", + { + "name": "vcpkg-cmake", + "host": true + }, + "xmlsec", + { + "name": "zlib", + "platform": "windows" + } + ], + "features": { + "crypto": { + "description": "Build with crypto support", + "dependencies": [ + { + "name": "libgcrypt", + "platform": "!windows | mingw" + }, + { + "name": "shiftmedia-libgcrypt", + "platform": "windows & !mingw" + } + ] + }, + "python": { + "description": "Build Python SWIG bindings", + "dependencies": [ + { + "name": "openscap", + "features": [ + "crypto" + ] + }, + "python3" + ] + }, + "util": { + "description": "Build the oscap utility", + "dependencies": [ + { + "name": "getopt-win32", + "platform": "windows" + }, + { + "name": "openscap", + "features": [ + "crypto" + ] + } + ] + } + } +} |