From: Rafael Sadowski Subject: Fix krename-5.0.2 with podofo-0.10.5 To: ports@openbsd.org Date: Sun, 3 Aug 2025 20:59:46 +0200 Fix krename-5.0.2 with podofo 0.10 Cheers Rafael diff --git a/sysutils/krename/Makefile b/sysutils/krename/Makefile index 75590637896..5fa2f224676 100644 --- a/sysutils/krename/Makefile +++ b/sysutils/krename/Makefile @@ -2,7 +2,7 @@ COMMENT = powerful batch file renamer VERSION = 5.0.2 DISTNAME = krename-${VERSION} -REVISION = 3 +REVISION = 4 CATEGORIES = sysutils x11 @@ -34,7 +34,7 @@ RUN_DEPENDS = devel/desktop-file-utils \ LIB_DEPENDS = audio/taglib \ graphics/exiv2 \ - textproc/podofo \ + textproc/podofo>=0.10 \ devel/kf5/kcompletion \ devel/kf5/kconfig \ devel/kf5/kcoreaddons \ diff --git a/sysutils/krename/patches/patch-cmake_modules_FindPoDoFo_cmake b/sysutils/krename/patches/patch-cmake_modules_FindPoDoFo_cmake new file mode 100644 index 00000000000..2f5ff072cce --- /dev/null +++ b/sysutils/krename/patches/patch-cmake_modules_FindPoDoFo_cmake @@ -0,0 +1,60 @@ +Index: cmake/modules/FindPoDoFo.cmake +--- cmake/modules/FindPoDoFo.cmake.orig ++++ cmake/modules/FindPoDoFo.cmake +@@ -36,16 +36,9 @@ + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-find_path(PoDoFo_INCLUDE_DIRS +- NAMES podofo/podofo.h +-) +-find_library(PoDoFo_LIBRARIES +- NAMES libpodofo podofo +-) ++include(FindPkgConfig) ++pkg_search_module(PoDoFo libpodofo libpodofo-0) + +-include(FindPackageHandleStandardArgs) +-find_package_handle_standard_args(PoDoFo DEFAULT_MSG PoDoFo_LIBRARIES PoDoFo_INCLUDE_DIRS) +- + set(PoDoFo_DEFINITIONS) + if(PoDoFo_FOUND) + if(WIN32) +@@ -61,17 +54,19 @@ if(PoDoFo_FOUND) + endif() + endif() + +- # PoDoFo-0.9.5 unconditionally includes openssl/opensslconf.h in a public +- # header. The fix is in https://sourceforge.net/p/podofo/code/1830/ and will +- # hopefully be released soon with 0.9.6. Note that krename doesn't use +- # OpenSSL in any way. +- file(STRINGS "${PoDoFo_INCLUDE_DIRS}/podofo/base/podofo_config.h" PoDoFo_MAJOR_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_MAJOR[ \t]+[0-9]+$") +- file(STRINGS "${PoDoFo_INCLUDE_DIRS}/podofo/base/podofo_config.h" PoDoFo_MINOR_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_MINOR[ \t]+[0-9]+$") +- file(STRINGS "${PoDoFo_INCLUDE_DIRS}/podofo/base/podofo_config.h" PoDoFo_PATCH_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_PATCH[ \t]+[0-9]+$") ++ find_file(PoDoFo_CONFIG podofo_config.h PATHS ${PoDoFo_INCLUDE_DIRS} PATH_SUFFIXES auxiliary base) ++ file(STRINGS "${PoDoFo_CONFIG}" PoDoFo_MAJOR_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_MAJOR[ \t]+[0-9]+$") ++ file(STRINGS "${PoDoFo_CONFIG}" PoDoFo_MINOR_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_MINOR[ \t]+[0-9]+$") ++ file(STRINGS "${PoDoFo_CONFIG}" PoDoFo_PATCH_VER_LINE REGEX "^#define[ \t]+PODOFO_VERSION_PATCH[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define[ \t]+PODOFO_VERSION_MAJOR[ \t]+([0-9]+)$" "\\1" PoDoFo_MAJOR_VER "${PoDoFo_MAJOR_VER_LINE}") + string(REGEX REPLACE "^#define[ \t]+PODOFO_VERSION_MINOR[ \t]+([0-9]+)$" "\\1" PoDoFo_MINOR_VER "${PoDoFo_MINOR_VER_LINE}") + string(REGEX REPLACE "^#define[ \t]+PODOFO_VERSION_PATCH[ \t]+([0-9]+)$" "\\1" PoDoFo_PATCH_VER "${PoDoFo_PATCH_VER_LINE}") + set(PoDoFo_VERSION "${PoDoFo_MAJOR_VER}.${PoDoFo_MINOR_VER}.${PoDoFo_PATCH_VER}") ++ ++ # PoDoFo-0.9.5 unconditionally includes openssl/opensslconf.h in a public ++ # header. The fix is in https://sourceforge.net/p/podofo/code/1830/ and will ++ # hopefully be released soon with 0.9.6. Note that krename doesn't use ++ # OpenSSL in any way. + if(PoDoFo_VERSION VERSION_EQUAL "0.9.5") + find_package(OpenSSL) + if (OpenSSL_FOUND) +@@ -82,6 +77,10 @@ if(PoDoFo_FOUND) + message("OpenSSL NOT found, which is required for this version of PoDofo (0.9.5)") + endif() + endif() ++endif() ++ ++if(PoDoFo_VERSION VERSION_GREATER_EQUAL 0.10.0) ++ set(CMAKE_CXX_STANDARD 17) + endif() + + mark_as_advanced(PoDoFo_INCLUDE_DIRS PoDoFo_LIBRARIES PoDoFo_DEFINITIONS) diff --git a/sysutils/krename/patches/patch-src_podofoplugin_cpp b/sysutils/krename/patches/patch-src_podofoplugin_cpp new file mode 100644 index 00000000000..200835f4f3b --- /dev/null +++ b/sysutils/krename/patches/patch-src_podofoplugin_cpp @@ -0,0 +1,38 @@ +Index: src/podofoplugin.cpp +--- src/podofoplugin.cpp.orig ++++ src/podofoplugin.cpp +@@ -61,6 +61,26 @@ QString PodofoPlugin::processFile(BatchRenamer *b, int + try { + PdfMemDocument doc; + doc.Load(filename.toUtf8().data()); ++#if (PODOFO_VERSION_MINOR>=10 || PODOFO_VERSION_MAJOR>=1) ++ const PdfInfo *info = doc.GetInfo(); ++ ++ if (token == "pdfauthor") { ++ ++ return info->GetAuthor().has_value() ? QString::fromUtf8(info->GetAuthor()->GetString().c_str()) : QString(); ++ } else if (token == "pdfcreator") { ++ return info->GetCreator().has_value() ? QString::fromUtf8(info->GetCreator()->GetString().c_str()) : QString(); ++ } else if (token == "pdfkeywords") { ++ return info->GetKeywords().has_value() ? QString::fromUtf8(info->GetKeywords()->GetString().c_str()) : QString(); ++ } else if (token == "pdfsubject") { ++ return info->GetSubject().has_value() ? QString::fromUtf8(info->GetSubject()->GetString().c_str()) : QString(); ++ } else if (token == "pdftitle") { ++ return info->GetTitle().has_value() ? QString::fromUtf8(info->GetTitle()->GetString().c_str()) : QString(); ++ } else if (token == "pdfproducer") { ++ return info->GetProducer().has_value() ? QString::fromUtf8(info->GetProducer()->GetString().c_str()) : QString(); ++ } else if (token == "pdfpages") { ++ return QString::number(doc.GetPages().GetCount()); ++ } ++#else + PdfInfo *info = doc.GetInfo(); + + if (token == "pdfauthor") { +@@ -78,6 +98,7 @@ QString PodofoPlugin::processFile(BatchRenamer *b, int + } else if (token == "pdfpages") { + return QString::number(doc.GetPageCount()); + } ++#endif + } catch (PdfError &error) { + return QString::fromUtf8(error.what()); + }