From: yaydn@protonmail.com Subject: Re: Fix krename-5.0.2 with podofo-0.10.5 To: Rafael Sadowski Cc: "ports@openbsd.org" Date: Mon, 04 Aug 2025 06:00:03 +0000 På søndag 3. august 2025 kl. 21:01, Rafael Sadowski skrev: > Fix krename-5.0.2 with podofo 0.10 > > Cheers Rafael > Tested on current/amd64. Did: cd /usr/ports/ && patch -l -p1 -E < /tmp/krename-5.0.2p4.patch cd /usr/ports/sysutils/krename/ && make update clean && make distclean Built fine with the new podofo. Happy porting and may you have a good day. > 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()); > + }