diff --git a/security/qgpgme/Makefile b/security/qgpgme/Makefile index d48336f5acd0..1abb48a39aee 100644 --- a/security/qgpgme/Makefile +++ b/security/qgpgme/Makefile @@ -1,55 +1,55 @@ PORTNAME= qgpgme -PORTVERSION= 2.1.0 +PORTVERSION= 2.2.0 CATEGORIES= security MASTER_SITES= GNUPG PKGNAMESUFFIX= -${FLAVOR} MAINTAINER= jhale@FreeBSD.org COMMENT= GnuPG Made Easy (GPGME) Qt bindings WWW= https://gnupg.org/software/gpgme/index.html LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libgpg-error.so:security/libgpg-error \ libgpgme.so:security/gpgme \ libgpgmepp.so:security/gpgmepp FLAVORS= qt6 qt5 FLAVOR?= ${FLAVORS:[1]} USES= cmake:testing compiler:c++17-lang pkgconfig \ qt:${FLAVOR:S|qt||} tar:xz USE_LDCONFIG= yes _USE_QT_qt5= core buildtools:build qmake:build testlib:test _USE_QT_qt6= base USE_QT= ${_USE_QT_${FLAVOR}} CMAKE_ON= BUILD_WITH_${FLAVOR:tu} _CMAKE_OFF_qt5= BUILD_WITH_QT6 _CMAKE_OFF_qt6= BUILD_WITH_QT5 CMAKE_OFF= BUILD_TESTING \ ${_CMAKE_OFF_${FLAVOR}} DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} _PLIST_SUB_qt5= QGPGME_CMAKE_SUFFIX="" \ QGPGME_LIB_SUFFIX="" _PLIST_SUB_qt6= QGPGME_CMAKE_SUFFIX="Qt6" \ QGPGME_LIB_SUFFIX="qt6" PLIST_SUB= QGPGME_INCLUDE_SUFFIX="${FLAVOR}" \ ${_PLIST_SUB_${FLAVOR}} OPTIONS_DEFINE= DOXYGEN DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen \ dot:graphics/graphviz DOXYGEN_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Doxygen post-install-DOXYGEN-on: @${MKDIR} ${STAGEDIR}${DOCSDIR}/html cd ${BUILD_WRKSRC}/doc/html && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html @${FIND} -P ${STAGEDIR}${DOCSDIR} -type f 2>/dev/null | \ ${SED} -ne 's|^${STAGEDIR}${PREFIX}/||p' >> ${TMPPLIST} .include diff --git a/security/qgpgme/distinfo b/security/qgpgme/distinfo index 410a1fad35f6..ba7c58ed450d 100644 --- a/security/qgpgme/distinfo +++ b/security/qgpgme/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1779694062 -SHA256 (qgpgme-2.1.0.tar.xz) = 5b32feb3eee4a7f9402d22b7206480908dc43bb4df382917c075c512116f8f08 -SIZE (qgpgme-2.1.0.tar.xz) = 190968 +TIMESTAMP = 1785816659 +SHA256 (qgpgme-2.2.0.tar.xz) = 3c6290ff5bfeab981bb48b2951703761f1dbea640cb637beb3560d5fefb0e0b3 +SIZE (qgpgme-2.2.0.tar.xz) = 194068 diff --git a/security/qgpgme/files/patch-src_util.h b/security/qgpgme/files/patch-src_util.h new file mode 100644 index 000000000000..ace255301da2 --- /dev/null +++ b/security/qgpgme/files/patch-src_util.h @@ -0,0 +1,19 @@ +Fix out-of-bounds access on empty std::string_view in _qgpgme::split. + +When testing an empty string, the loop attempts to evaluate s[start] +(where start = 0) before passing it to std::addressof. With libc++ +assertions enabled, accessing index 0 of a size 0 std::string_view +triggers a fatal bounds violation (SIGILL). Replacing the pointer +arithmetic with substr() safely bypasses the undefined behavior. + +--- src/util.h.orig 2026-07-20 13:07:38 UTC ++++ src/util.h +@@ -76,7 +76,7 @@ static inline std::vector split(cons + if (end == s.npos) { + end = s.size(); + } +- result.emplace_back(std::addressof(s[start]), end - start); ++ result.emplace_back(s.substr(start, end - start)); + start = end + 1; + } while (end != s.size()); + return result; diff --git a/security/qgpgme/pkg-plist b/security/qgpgme/pkg-plist index 19e6f4757371..1df8e6117f64 100644 --- a/security/qgpgme/pkg-plist +++ b/security/qgpgme/pkg-plist @@ -1,109 +1,113 @@ +include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ADQueryJob +include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ADQueryResult include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/AbstractImportJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/AddExistingSubkeyJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/AddUserIDJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ChangeExpiryJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ChangeOwnerTrustJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ChangePasswdJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/CryptoConfig include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DN include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DataProvider include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/Debug include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DecryptJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DecryptVerifyArchiveJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DecryptVerifyJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DefaultKeyGenerationJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DeleteJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/DownloadJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/EncryptArchiveJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/EncryptJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ExportJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/FileListDataProvider include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/GpgCardJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ImportFromKeyserverJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ImportJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/Job include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/KeyForMailboxJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/KeyGenerationJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/KeyListJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ListAllKeysJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/MultiDeleteJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/Protocol include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/QGpgMENewCryptoConfig include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/QuickJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ReceiveKeysJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/RefreshKeysJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/RevokeKeyJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SetPrimaryUserIDJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SignArchiveJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SignEncryptArchiveJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SignEncryptJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SignJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SignKeyJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/SpecialJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/TofuPolicyJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/VerifyDetachedJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/VerifyOpaqueJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/WKDLookupJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/WKDLookupResult include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/WKDRefreshJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/WKSPublishJob include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/abstractimportjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/addexistingsubkeyjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/adduseridjob.h +include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/adqueryjob.h +include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/adqueryresult.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/changeexpiryjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/changeownertrustjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/changepasswdjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/cryptoconfig.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/dataprovider.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/debug.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/decryptjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/decryptverifyarchivejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/decryptverifyjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/defaultkeygenerationjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/deletejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/dn.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/downloadjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/encryptarchivejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/encryptjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/exportjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/filelistdataprovider.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/gpgcardjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/importfromkeyserverjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/importjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/job.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/keyformailboxjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/keygenerationjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/keylistjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/listallkeysjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/multideletejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/protocol.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/qgpgme_export.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/qgpgme_version.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/qgpgmenewcryptoconfig.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/quickjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/receivekeysjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/refreshkeysjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/revokekeyjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/setprimaryuseridjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/signarchivejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/signencryptarchivejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/signencryptjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/signjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/signkeyjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/specialjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/tofupolicyjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/verifydetachedjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/verifyopaquejob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdlookupjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdlookupresult.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdrefreshjob.h include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkspublishjob.h lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/FindGpgme.cmake lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/FindLibGpgError.cmake lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Config.cmake lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%ConfigVersion.cmake lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Targets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Targets.cmake lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15 -lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15.8.0 +lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15.9.0