aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openscap
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openscap
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openscap')
-rw-r--r--vcpkg/ports/openscap/dependencies.diff47
-rw-r--r--vcpkg/ports/openscap/install-dirs.diff52
-rw-r--r--vcpkg/ports/openscap/portfile.cmake108
-rw-r--r--vcpkg/ports/openscap/python-win32.diff23
-rw-r--r--vcpkg/ports/openscap/vcpkg.json84
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"
+ ]
+ }
+ ]
+ }
+ }
+}