Index | Thread | Search

From:
yaydn@protonmail.com
Subject:
Re: Fix krename-5.0.2 with podofo-0.10.5
To:
Rafael Sadowski <rafael@sizeofvoid.org>
Cc:
"ports@openbsd.org" <ports@openbsd.org>
Date:
Mon, 04 Aug 2025 06:00:03 +0000

Download raw body.

Thread
På søndag 3. august 2025 kl. 21:01, Rafael Sadowski
<rafael@sizeofvoid.org> 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());
> + }