From 0b6a6bcbd893c860a575ef1ddd92983a378b3fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Wed, 13 Dec 2023 22:26:41 +0700 Subject: [PATCH] krename: for podofo 0.10.3 --- srcpkgs/krename/patches/podofo-0.10.patch | 107 ++++++++++++++++++++++ srcpkgs/krename/template | 2 +- 2 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/krename/patches/podofo-0.10.patch diff --git a/srcpkgs/krename/patches/podofo-0.10.patch b/srcpkgs/krename/patches/podofo-0.10.patch new file mode 100644 index 00000000000..4cb7751408d --- /dev/null +++ b/srcpkgs/krename/patches/podofo-0.10.patch @@ -0,0 +1,107 @@ +From 056d614dc2166cd25749caf264b1b4d9d348f4d4 Mon Sep 17 00:00:00 2001 +From: Antonio Rojas +Date: Mon, 17 Jul 2023 20:29:37 +0000 +Subject: [PATCH] Support podofo 0.10 + +Version 0.10 of podofo is a complete rewrite. krename's use of it is minimal, so porting is easy. + +Switch the cmake module to use pkgconfig, which is available since 0.9.5 (release in 2017). + +Unfortunately, the hack to find the version number is still needed, since the pc file is buggy and ships an empty "Version" field. +--- + cmake/modules/FindPoDoFo.cmake | 31 +++++++++++++++---------------- + src/podofoplugin.cpp | 20 ++++++++++++++++++++ + 2 files changed, 35 insertions(+), 16 deletions(-) + +--- a/cmake/modules/FindPoDoFo.cmake ++++ b/cmake/modules/FindPoDoFo.cmake +@@ -36,15 +36,8 @@ + # (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(FindPackageHandleStandardArgs) +-find_package_handle_standard_args(PoDoFo DEFAULT_MSG PoDoFo_LIBRARIES PoDoFo_INCLUDE_DIRS) ++include(FindPkgConfig) ++pkg_search_module(PoDoFo libpodofo libpodofo-0) + + set(PoDoFo_DEFINITIONS) + if(PoDoFo_FOUND) +@@ -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) +@@ -84,4 +79,8 @@ if(PoDoFo_FOUND) + 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) +--- a/src/podofoplugin.cpp ++++ b/src/podofoplugin.cpp +@@ -61,6 +61,25 @@ QString PodofoPlugin::processFile(BatchR + 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 +97,7 @@ QString PodofoPlugin::processFile(BatchR + } else if (token == "pdfpages") { + return QString::number(doc.GetPageCount()); + } ++#endif + } catch (PdfError &error) { + return QString::fromUtf8(error.what()); + } diff --git a/srcpkgs/krename/template b/srcpkgs/krename/template index df553500771..2c4486a7631 100644 --- a/srcpkgs/krename/template +++ b/srcpkgs/krename/template @@ -1,7 +1,7 @@ # Template file for 'krename' pkgname=krename version=5.0.2 -revision=2 +revision=3 build_style=cmake hostmakedepends="extra-cmake-modules gettext kcoreaddons pkg-config qt5-host-tools qt5-qmake" makedepends="exiv2-devel freetype-devel kjs-devel kparts-devel libpodofo-devel