Download raw body.
Fix krename-5.0.2 with podofo-0.10.5
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());
+ }
Fix krename-5.0.2 with podofo-0.10.5