Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package poppler for openSUSE:Factory checked in at 2023-01-04 17:50:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/poppler (Old) and /work/SRC/openSUSE:Factory/.poppler.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poppler" Wed Jan 4 17:50:31 2023 rev:189 rq:1046136 version:23.01.0 Changes: -------- --- /work/SRC/openSUSE:Factory/poppler/poppler.changes 2022-12-12 17:37:11.724422129 +0100 +++ /work/SRC/openSUSE:Factory/.poppler.new.1563/poppler.changes 2023-01-04 17:50:34.613465180 +0100 @@ -1,0 +2,19 @@ +Mon Jan 2 09:22:05 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 23.01.0: + core: + * PDFDoc::sign: Fix crash if font can't be found + * PDFDoc::sign: Try Arial to sign if Helvetica isn't found + * FoFiType1::parse: Be more flexible parsing the encoding content. Issue #1324 + * Gfx::opBeginMarkedContent: Support Span with Name. Issue #1327 + * Splash: Avoid color issues due to implicit rounding + * Splash: Fix crash on malformed file. + * CairoOutputDev: Ignore text rendering mode for type3 fonts + * Remove unused FoFiType1::load function + build system: + * Increase minimum required versions of several dependencies + * Improve include path handling + qt6: + * Use less deprecated functions + +------------------------------------------------------------------- Old: ---- poppler-22.12.0.tar.xz poppler-22.12.0.tar.xz.sig New: ---- poppler-23.01.0.tar.xz poppler-23.01.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ poppler.spec ++++++ --- /var/tmp/diff_new_pack.TxlkYR/_old 2023-01-04 17:50:35.329469399 +0100 +++ /var/tmp/diff_new_pack.TxlkYR/_new 2023-01-04 17:50:35.333469424 +0100 @@ -1,7 +1,7 @@ # # spec file # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -32,7 +32,7 @@ %define poppler_api 0.18 %define poppler_apipkg 0_18 Name: poppler%{?psuffix} -Version: 22.12.0 +Version: 23.01.0 Release: 0 Summary: PDF Rendering Library License: GPL-2.0-only OR GPL-3.0-only @@ -43,11 +43,6 @@ Source90: poppler.keyring Source99: baselibs.conf BuildRequires: cmake >= 3.10 -%if 0%{?suse_version} < 1550 -BuildRequires: gcc12-c++ -%else -BuildRequires: gcc-c++ -%endif BuildRequires: gtk-doc BuildRequires: libboost_headers-devel >= 1.58 BuildRequires: openjpeg2 @@ -73,6 +68,11 @@ BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(poppler-data) BuildRequires: pkgconfig(zlib) +%if 0%{?suse_version} < 1550 +BuildRequires: gcc12-c++ +%else +BuildRequires: gcc-c++ +%endif %if 0%{?sle_version} >= 150300 BuildRequires: extra-cmake-modules %endif ++++++ poppler-22.12.0.tar.xz -> poppler-23.01.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/.gitlab-ci.yml new/poppler-23.01.0/.gitlab-ci.yml --- old/poppler-22.12.0/.gitlab-ci.yml 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/.gitlab-ci.yml 2023-01-01 13:24:17.000000000 +0100 @@ -9,7 +9,7 @@ - echo 'deb-src http://deb.debian.org/debian unstable main' >> /etc/apt/sources.list - apt-get update - apt-get build-dep --yes --no-install-recommends poppler - - apt-get install --yes --no-install-recommends ninja-build libcurl4-openssl-dev git ca-certificates locales libgtk-3-dev wget p7zip-full libbrotli-dev libboost-container-dev qt6-base-dev + - apt-get install --yes --no-install-recommends ninja-build libcurl4-openssl-dev git ca-certificates locales libgtk-3-dev libbrotli-dev libboost-container-dev qt6-base-dev - echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen - locale-gen @@ -53,7 +53,8 @@ - apt-get install --yes --no-install-recommends libclang-14-dev llvm-14-dev libc++-14-dev libc++abi-14-dev clang-tidy-14 clang-14 libunwind-14-dev gperf jq - srcdir=`pwd` && mkdir -p /tmp/poppler_build && cd /tmp/poppler_build - clang++-14 -fPIC -shared -o goostring-format-checker.so $srcdir/test/goostring-format-checker/goostring-format-checker.cc -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I /usr/lib/llvm-14/include/ - - CC=clang-14 CXX=clang++-14 cmake -G Ninja -DCMAKE_CXX_FLAGS="-stdlib=libc++ -Xclang -load -Xclang $PWD/goostring-format-checker.so -Xclang -add-plugin -Xclang goostring-format-checker -Werror -Wno-deprecated-declarations" -DTESTDATADIR=$srcdir/test-data -DCMAKE_EXPORT_COMPILE_COMMANDS=ON $srcdir + - echo "We disable Qt6 tests since Qt6 exposes std::string in its ABI which makes it not build in this CI since we're using libc++ but Qt6 in debian is build with libstdc++" + - CC=clang-14 CXX=clang++-14 cmake -G Ninja -DCMAKE_CXX_FLAGS="-stdlib=libc++ -Xclang -load -Xclang $PWD/goostring-format-checker.so -Xclang -add-plugin -Xclang goostring-format-checker -Werror -Wno-deprecated-declarations" -DTESTDATADIR=$srcdir/test-data -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_QT6_TESTS=OFF $srcdir - ninja - ctest --output-on-failure - echo "This is a complex way of not running clang-tidy over autogenerated files, unfortunately -DCMAKE_CXX_CLANG_TIDY doesn't support that https://gitlab.kitware.com/cmake/cmake/-/issues/19772" @@ -65,16 +66,22 @@ - cp "$srcdir/.clang-tidy" . - run-clang-tidy-14 -build_ubuntu_18_04: +build_ubuntu_20_04: stage: build - image: ubuntu:bionic + image: ubuntu:20.04 before_script: - apt-get update - - apt-get install --yes --no-install-recommends build-essential cmake ninja-build libjpeg-dev libopenjp2-7-dev qtbase5-dev gobject-introspection libglib2.0-dev libgtk-3-dev libgirepository1.0-dev libnss3-dev ca-certificates libcurl4-nss-dev liblcms2-dev libboost-container-dev libtiff-dev + - apt-get install --yes --no-install-recommends build-essential cmake ninja-build libjpeg-dev libopenjp2-7-dev qtbase5-dev gobject-introspection libglib2.0-dev libgtk-3-dev libgirepository1.0-dev libnss3-dev ca-certificates libcurl4-nss-dev liblcms2-dev libboost-container-dev libtiff-dev wget p7zip-full git + - wget -r -l1 -np "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt6_620/qt.qt6.620.gcc_64/" -A "6.2.0-0-*qtbase-Linux-RHEL_8_2-GCC-Linux-RHEL_8_2-X86_64.7z" + - 7z x download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt6_620/qt.qt6.620.gcc_64/6.2.0-0-*qtbase-Linux-RHEL_8_2-GCC-Linux-RHEL_8_2-X86_64.7z + - wget -r -l1 -np "https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt6_620/qt.qt6.620.gcc_64/" -A "6.2.0-0-*icu-linux-Rhel7.2-x64.7z" + - 7z x download.qt.io/online/qtsdkrepository/linux_x64/desktop/qt6_620/qt.qt6.620.gcc_64/6.2.0-0-*icu-linux-Rhel7.2-x64.7z script: + - git clone --branch ${CI_COMMIT_REF_NAME} --depth 1 ${TEST_DATA_URL} test-data || git clone --depth 1 ${UPSTREAM_TEST_DATA_URL} test-data - mkdir -p build && cd build - - cmake -G Ninja .. + - cmake -G Ninja -DTESTDATADIR=$PWD/../test-data -DCMAKE_PREFIX_PATH=$PWD/../6.2.0/gcc_64/lib/cmake .. - ninja + - ctest --output-on-failure build_mingw64_fedora37: stage: build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/CMakeLists.txt new/poppler-23.01.0/CMakeLists.txt --- old/poppler-22.12.0/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10.0 FATAL_ERROR) +cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR) project(poppler) @@ -26,6 +26,7 @@ include(GenerateExportHeader) include(GNUInstallDirs) +include(CMakePushCheckState) set(ENABLE_FUZZER FALSE) @@ -38,8 +39,8 @@ endif() endif() -set(POPPLER_MAJOR_VERSION "22") -set(POPPLER_MINOR_VERSION_STRING "12") +set(POPPLER_MAJOR_VERSION "23") +set(POPPLER_MINOR_VERSION_STRING "01") # We want the string version to have 08 but the integer version can't have a leading 0 since otherwise it's considered octal # So strip a leading 0 if found in POPPLER_MINOR_VERSION_STRING and store the result in POPPLER_MINOR_VERSION string(REGEX REPLACE "^0?(.+)$" "\\1" POPPLER_MINOR_VERSION "${POPPLER_MINOR_VERSION_STRING}") @@ -136,15 +137,16 @@ set(TEXTOUT_WORD_LIST ON) # setting the minimum required versions for some components -set(CAIRO_VERSION "1.10.0") -set(GLIB_REQUIRED "2.56") -set(GTK_REQUIRED "3.22") -set(GDK_PIXBUF_REQUIRED "2.36") -set(FREETYPE_VERSION "2.8") +set(CAIRO_VERSION "1.16.0") +set(GLIB_REQUIRED "2.64") +set(GTK_REQUIRED "3.24") +set(GDK_PIXBUF_REQUIRED "2.40") +set(FREETYPE_VERSION "2.10") +set(FONTCONFIG_VERSION "2.13") find_package(Freetype ${FREETYPE_VERSION} REQUIRED) if(WITH_FONTCONFIGURATION_FONTCONFIG) - find_package(Fontconfig REQUIRED) + find_package(Fontconfig ${FONTCONFIG_VERSION} REQUIRED) endif() macro_optional_find_package(JPEG) macro_optional_find_package(PNG) @@ -152,6 +154,23 @@ macro_optional_find_package(NSS3) if(ENABLE_DCTDECODER STREQUAL "libjpeg") if(JPEG_FOUND) + include(CheckCSourceCompiles) + set(_save_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}") + set(CMAKE_REQUIRED_LIBRARIES JPEG::JPEG) + check_c_source_compiles(" + #include <stddef.h> + #include <stdio.h> + #include <jpeglib.h> + int main() { struct jpeg_decompress_struct info; jpeg_mem_src(&info, 0, 0); return 0; }" HAVE_JPEG_MEM_SRC) + set(CMAKE_REQUIRED_LIBRARIES "${_save_CMAKE_REQUIRED_LIBRARIES}") + + if(NOT HAVE_JPEG_MEM_SRC) + message(FATAL_ERROR "Your libjpeg is too old. Poppler needs one that provides jpeg_mem_src. That is provided in libjpeg >= 8 or libjpeg-turbo >= 1.1.0. You can \ +also decide to use the internal unmaintained DCT decoder or none at all.\n\ +Possible options are: -DENABLE_DCTDECODER=libjpeg, -DENABLE_DCTDECODER=none, \ +-DENABLE_DCTDECODER=unmaintained") + endif() + set(ENABLE_LIBJPEG ${JPEG_FOUND}) else() message(STATUS "Could NOT find libjpeg.") @@ -172,7 +191,7 @@ endif() if (ENABLE_QT5) - find_package(Qt5Core 5.9) # Update QT_DISABLE_DEPRECATED_BEFORE in qt5/CMakeLists.txt when increasing this + find_package(Qt5Core 5.12) # Update QT_DISABLE_DEPRECATED_BEFORE in qt5/CMakeLists.txt when increasing this find_package(Qt5Gui) find_package(Qt5Xml) find_package(Qt5Widgets) @@ -195,7 +214,7 @@ # Check for Cairo rendering backend macro_optional_find_package(Cairo ${CAIRO_VERSION}) -find_package(Boost 1.58.0) +find_package(Boost 1.71.0) if(Boost_FOUND) set(USE_BOOST_HEADERS ON) elseif(ENABLE_BOOST) @@ -217,7 +236,7 @@ if(ENABLE_GLIB) if(ENABLE_GOBJECT_INTROSPECTION) # Check for introspection - macro_optional_find_package(GObjectIntrospection 0.9.12) + macro_optional_find_package(GObjectIntrospection 1.64.0) set(HAVE_INTROSPECTION ${INTROSPECTION_FOUND}) endif() set(POPPLER_GLIB_DISABLE_DEPRECATED "${POPPLER_GLIB_DISABLE_DEPRECATED} -DG_DISABLE_DEPRECATED") @@ -245,7 +264,25 @@ endif() if(ENABLE_CPP) + cmake_push_check_state() find_package(Iconv REQUIRED) + set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv) + check_cxx_source_compiles(" + #include <iconv.h> + int main(){ + iconv_t conv = 0; + const char* in = 0; + size_t ilen = 0; + char* out = 0; + size_t olen = 0; + iconv(conv, &in, &ilen, &out, &olen); + return 0; + } + " ICONV_SECOND_ARGUMENT_IS_CONST) + cmake_pop_check_state() + if(ICONV_SECOND_ARGUMENT_IS_CONST) + set(ICONV_CONST "const") + endif() endif() if(ENABLE_ZLIB) find_package(ZLIB) @@ -460,21 +497,14 @@ ) set(poppler_LIBS Freetype::Freetype) if(FONTCONFIG_FOUND) - add_definitions(${FONTCONFIG_DEFINITIONS}) - include_directories(SYSTEM ${FONTCONFIG_INCLUDE_DIR}) - set(poppler_LIBS ${poppler_LIBS} ${FONTCONFIG_LIBRARIES}) + set(poppler_LIBS ${poppler_LIBS} Fontconfig::Fontconfig) endif() if(JPEG_FOUND) set(poppler_SRCS ${poppler_SRCS} poppler/DCTStream.cc ) - if(${CMAKE_VERSION} VERSION_LESS "3.12.0") - include_directories(SYSTEM ${JPEG_INCLUDE_DIR}) - set(poppler_LIBS ${poppler_LIBS} ${JPEG_LIBRARIES}) - else() - set(poppler_LIBS ${poppler_LIBS} JPEG::JPEG) - endif() + set(poppler_LIBS ${poppler_LIBS} JPEG::JPEG) endif() if(ENABLE_ZLIB) set(poppler_SRCS ${poppler_SRCS} @@ -492,12 +522,7 @@ poppler/CurlCachedFile.cc poppler/CurlPDFDocBuilder.cc ) - if(${CMAKE_VERSION} VERSION_LESS "3.12.0") - include_directories(SYSTEM ${CURL_INCLUDE_DIRS}) - set(poppler_LIBS ${poppler_LIBS} ${CURL_LIBRARIES}) - else() - set(poppler_LIBS ${poppler_LIBS} CURL::libcurl) - endif() + set(poppler_LIBS ${poppler_LIBS} CURL::libcurl) endif() if (ENABLE_NSS3) set(poppler_SRCS ${poppler_SRCS} @@ -510,15 +535,12 @@ poppler/JPEG2000Stream.cc ) set(poppler_LIBS ${poppler_LIBS} openjp2) - # target openjp2 may lack interface include directories - include_directories(SYSTEM ${OPENJPEG_INCLUDE_DIRS}) else () set(poppler_SRCS ${poppler_SRCS} poppler/JPXStream.cc ) endif() if(USE_CMS) - include_directories(SYSTEM ${LCMS2_INCLUDE_DIR}) set(poppler_LIBS ${poppler_LIBS} ${LCMS2_LIBRARIES}) endif() if(WIN32) @@ -578,6 +600,14 @@ add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() add_library(poppler ${poppler_SRCS}) +if (OpenJPEG_FOUND) + # check if we can remove this when we depend on newer openjpeg versions, 2.5 seems fixed + # target openjp2 may lack interface include directories + target_include_directories(poppler SYSTEM PRIVATE ${OPENJPEG_INCLUDE_DIRS}) +endif() +if(USE_CMS) + target_include_directories(poppler SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) +endif() generate_export_header(poppler BASE_NAME poppler-private EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/poppler_private_export.h") set_target_properties(poppler PROPERTIES VERSION 126.0.0 SOVERSION 126) if(MINGW AND BUILD_SHARED_LIBS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/ChangeLog new/poppler-23.01.0/ChangeLog --- old/poppler-22.12.0/ChangeLog 2022-12-01 21:21:31.000000000 +0100 +++ new/poppler-23.01.0/ChangeLog 2023-01-01 13:27:23.000000000 +0100 @@ -1,3 +1,264 @@ +commit 4259ff0c2067d302f97d87221a442eec8e88d45c +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Jan 1 13:24:17 2023 +0100 + + poppler 23.01.0 + + CMakeLists.txt | 4 ++-- + NEWS | 18 ++++++++++++++++++ + cpp/Doxyfile | 2 +- + qt5/src/Doxyfile | 2 +- + qt6/src/Doxyfile | 2 +- + 5 files changed, 23 insertions(+), 5 deletions(-) + +commit 2e3bf1476558d11a72b9f3e574eb28bb6ab2ad66 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Jan 1 13:11:30 2023 +0100 + + Welcome 2023 + + poppler/poppler-config.h.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7f0276bbc5f7f7b4fefa956d8893ee23c13226e2 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sat Dec 31 01:01:08 2022 +0100 + + CI: Cheat a bit in the build_clang14_libcpp build + + .gitlab-ci.yml | 3 ++- + qt6/tests/CMakeLists.txt | 4 +++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +commit 43e2da4ade60f7e6c62b4d70f15d603327ca7b2b +Author: Albert Astals Cid <aa...@kde.org> +Date: Fri Dec 30 23:49:15 2022 +0100 + + Update (C) + + poppler/CairoOutputDev.cc | 1 + + 1 file changed, 1 insertion(+) + +commit 7d14f465a6441f3df4389df375b154687e1fdb6b +Author: Zachary Travis <ztra...@everlaw.com> +Date: Fri Aug 13 20:33:35 2021 -0700 + + Ignore text rendering mode for type3 fonts + + poppler/CairoOutputDev.cc | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit f9d958ddee1e9a77d41c80793fd20ce5299f08ef +Author: Albert Astals Cid <aa...@kde.org> +Date: Tue Dec 27 09:38:55 2022 +0100 + + Gfx::opBeginMarkedContent: Support Span with Name + + Issue #1327 + + poppler/Gfx.cc | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) + +commit 7dda4190b273edb2c5d74b7f5bc7cc77c49c9dbb +Author: Albert Astals Cid <aa...@kde.org> +Date: Wed Dec 14 23:12:56 2022 +0100 + + Update (C) + + poppler/SplashOutputDev.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit eac1066f60df2442c5508fb1601fa6a331cac7a0 +Author: Thomas Freitag <thomas.freitag....@gmail.com> +Date: Wed Dec 14 22:05:33 2022 +0000 + + Splash: avoid problems because of implicit rounding in non-separable + blend modes + + Splash uses unsigned char to store color pixel. But in non-separable + blend modes int and in some calculations float values are used. To + avoid rounding problems because of implicit rounding calculations + are now done with int values and when storing int values in unsigned + char variables clamp is used! + + poppler/SplashOutputDev.cc | 51 + ++++++++++++++++------------------------------ + 1 file changed, 17 insertions(+), 34 deletions(-) + +commit 065dca3816db3979dfacdc2f8592abed2ff6859a +Author: Albert Astals Cid <aa...@kde.org> +Date: Tue Dec 13 22:31:20 2022 +0100 + + FoFiType1::parse: Be more flexible parsing the encoding content + + Don't force it to be on a single line. + + Fixes #1324 + + fofi/FoFiType1.cc | 203 + ++++++++++++++++++++++++++++++------------------------ + 1 file changed, 113 insertions(+), 90 deletions(-) + +commit a9e1987591ed3896e18a81d0b66f65adf66f41cb +Author: Albert Astals Cid <aa...@kde.org> +Date: Tue Dec 13 00:48:59 2022 +0100 + + Remove unused FoFiType1::load function + + fofi/FoFiType1.cc | 11 ----------- + fofi/FoFiType1.h | 5 +---- + 2 files changed, 1 insertion(+), 15 deletions(-) + +commit a563801e1a6be5e70645472d82f4ba8534b454d1 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Dec 12 23:40:24 2022 +0100 + + PDFDoc::sign: Find Arial to sign if Helvetica isn't found + + At least on my Windows install Helvetica isn't found and signing thus + fails + + poppler/PDFDoc.cc | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +commit 09fdfecea3a13d30b5c52e1258d17549739d9ea8 +Author: Albert Astals Cid <aa...@kde.org> +Date: Mon Dec 12 23:28:55 2022 +0100 + + PDFDoc::sign: Fix crash if font can't be found + + poppler/PDFDoc.cc | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 6a19713ca8473c14905bd25d719757df5987d93b +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 11:43:16 2022 +0100 + + cmake: A more bit of include tweaking + + test/CMakeLists.txt | 5 ----- + utils/CMakeLists.txt | 2 -- + 2 files changed, 7 deletions(-) + +commit 49a883dfac1a92fd959a1421627279aec26dcbb9 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 03:57:01 2022 +0100 + + cmake: Make sure cairo includes are complete + + cmake/modules/FindCairo.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9bd49f486ed8442943a08cfee42136a5575c6a1b +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 03:22:52 2022 +0100 + + cmake: Add CAIRO_INCLUDE_DIRS to the appropriate targets + + glib/CMakeLists.txt | 1 + + test/CMakeLists.txt | 3 +++ + utils/CMakeLists.txt | 1 + + 3 files changed, 5 insertions(+) + +commit 821784a6f08adfbb5211d665389acc275e035e84 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 03:02:30 2022 +0100 + + cmake: Add missing LCMS2_INCLUDE_DIR + + qt5/src/CMakeLists.txt | 1 + + qt6/src/CMakeLists.txt | 1 + + utils/CMakeLists.txt | 3 +++ + 3 files changed, 5 insertions(+) + +commit 77d1660d6b6777a434a4c09f6c781999ab7ce0a8 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 02:42:15 2022 +0100 + + cmake: include dirs via target_include_directories + + instead of include_directories + + CMakeLists.txt | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +commit b1fe3a03c0bfdc4df6d8dd5d128b928d3cb2ea89 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 02:20:27 2022 +0100 + + cmake: nss: Fix typo and remove "deprecated" variables + + cmake/modules/FindNSS3.cmake | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +commit 46b185c25472cb1cb90b9f83229a920fd638fd02 +Author: Albert Astals Cid <aa...@kde.org> +Date: Sun Dec 4 02:17:56 2022 +0100 + + Increase our minimum supported NSS to that of Ubuntu 20.04 too + + cmake/modules/FindNSS3.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2944c16a1ac7da0aaf9cb351ff664585968d8356 +Author: Albert Astals Cid <aa...@kde.org> +Date: Fri Dec 2 22:55:51 2022 +0100 + + Fix crash on broken documents + + Issue #1320 + + splash/Splash.cc | 3 +++ + 1 file changed, 3 insertions(+) + +commit 54c93aade58b60699c0bf2c7962c274b6e6f7772 +Author: Albert Astals Cid <aa...@kde.org> +Date: Thu Dec 1 22:56:16 2022 +0100 + + Qt6: Less deprecated functions + + qt6/src/poppler-annotation.cc | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 40c737a450153bdde180e0ee6e069a08c8e04dc4 +Author: Albert Astals Cid <aa...@kde.org> +Date: Thu Dec 1 22:08:40 2022 +0100 + + CI: Install Qt 6.2 in build_ubuntu_20_04 + + now that the other systems ship Qt 6.3 or newer we need at least + one CI + with our minimum required Qt + + .gitlab-ci.yml | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +commit df3746fa4c9413422bb70dbbb61108922a7fddc9 +Author: Albert Astals Cid <aa...@kde.org> +Date: Fri Jul 29 00:58:42 2022 +0200 + + cmake: Check we have a new enough libjpeg + + CMakeLists.txt | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +commit d5ea5a24124badf2b32a7d08dd2c06a4a40f93fb +Author: Albert Astals Cid <aa...@kde.org> +Date: Tue Mar 8 14:32:54 2022 +0100 + + Increase Minimum supported base to that provided by Ubuntu 20.04 + + .gitlab-ci.yml | 4 +-- + CMakeLists.txt | 58 + +++++++++++++++++++--------------- + cmake/modules/FindFontconfig.cmake | 52 ------------------------------- + cmake/modules/FindIconv.cmake | 64 + -------------------------------------- + cpp/CMakeLists.txt | 3 +- + poppler/GfxFont.cc | 14 ++++----- + qt5/CMakeLists.txt | 2 +- + 7 files changed, 44 insertions(+), 153 deletions(-) + commit df568263c51950ceed6f1fb42f80e99a2614c275 Author: Albert Astals Cid <aa...@kde.org> Date: Thu Dec 1 21:19:03 2022 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/NEWS new/poppler-23.01.0/NEWS --- old/poppler-22.12.0/NEWS 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/NEWS 2023-01-01 13:24:17.000000000 +0100 @@ -1,3 +1,21 @@ +Release 23.01.0: + core: + * PDFDoc::sign: Fix crash if font can't be found + * PDFDoc::sign: Try Arial to sign if Helvetica isn't found + * FoFiType1::parse: Be more flexible parsing the encoding content. Issue #1324 + * Gfx::opBeginMarkedContent: Support Span with Name. Issue #1327 + * Splash: Avoid color issues due to implicit rounding + * Splash: Fix crash on malformed file. + * CairoOutputDev: Ignore text rendering mode for type3 fonts + * Remove unused FoFiType1::load function + + build system: + * Increase minimum required versions of several dependencies + * Improve include path handling + + qt6: + - Use less deprecated functions + Release 22.12.0: core: * Form::addFontToDefaultResources: Be stubborn in finding a font we can use. Issue #1272 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cmake/modules/FindCairo.cmake new/poppler-23.01.0/cmake/modules/FindCairo.cmake --- old/poppler-22.12.0/cmake/modules/FindCairo.cmake 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cmake/modules/FindCairo.cmake 2023-01-01 13:24:17.000000000 +0100 @@ -47,7 +47,7 @@ HINTS ${_pc_cairo_INCLUDE_DIRS} PATH_SUFFIXES cairo ) - set(CAIRO_INCLUDE_DIRS "${CAIRO_INCLUDE_DIR}") + set(CAIRO_INCLUDE_DIRS "${CAIRO_INCLUDE_DIR};${_pc_cairo_INCLUDE_DIRS}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Cairo DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cmake/modules/FindFontconfig.cmake new/poppler-23.01.0/cmake/modules/FindFontconfig.cmake --- old/poppler-22.12.0/cmake/modules/FindFontconfig.cmake 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cmake/modules/FindFontconfig.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -# - Try to find the Fontconfig -# Once done this will define -# -# FONTCONFIG_FOUND - system has Fontconfig -# FONTCONFIG_INCLUDE_DIR - The include directory to use for the fontconfig headers -# FONTCONFIG_LIBRARIES - Link these to use FONTCONFIG -# FONTCONFIG_DEFINITIONS - Compiler switches required for using FONTCONFIG - -# Copyright (c) 2006,2007 Laurent Montel, <mon...@kde.org> -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -# NOTE: Once required cmake >=3.14, consider using built-in FindFontconfig -# See Poppler issue #955 for details - -if (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) - - # in cache already - set(FONTCONFIG_FOUND TRUE) - -else (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) - - if (NOT WIN32) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - pkg_check_modules(PC_FONTCONFIG fontconfig) - - set(FONTCONFIG_DEFINITIONS ${PC_FONTCONFIG_CFLAGS_OTHER}) - endif (NOT WIN32) - - find_path(FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h - PATHS - ${PC_FONTCONFIG_INCLUDEDIR} - ${PC_FONTCONFIG_INCLUDE_DIRS} - /usr/X11/include - ) - - find_library(FONTCONFIG_LIBRARIES NAMES fontconfig - PATHS - ${PC_FONTCONFIG_LIBDIR} - ${PC_FONTCONFIG_LIBRARY_DIRS} - ) - - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(Fontconfig DEFAULT_MSG FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR ) - - mark_as_advanced(FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR) - -endif (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cmake/modules/FindIconv.cmake new/poppler-23.01.0/cmake/modules/FindIconv.cmake --- old/poppler-22.12.0/cmake/modules/FindIconv.cmake 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cmake/modules/FindIconv.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1,64 +0,0 @@ -# - Try to find Iconv -# Once done this will define -# -# ICONV_FOUND - system has Iconv -# ICONV_INCLUDE_DIR - the Iconv include directory -# ICONV_LIBRARIES - Link these to use Iconv -# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const -# - -# NOTE: Once required CMake >=3.11, consider using built-in FindIconv -# See Poppler issue #955 for details - -include(CheckCXXSourceCompiles) - -IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) - # Already in cache, be silent - SET(ICONV_FIND_QUIETLY TRUE) -ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) - -FIND_PATH(ICONV_INCLUDE_DIR iconv.h) - -FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c) - -IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) - SET(ICONV_FOUND TRUE) -ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) - -set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) -set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) -IF(ICONV_FOUND) - check_cxx_source_compiles(" - #include <iconv.h> - int main(){ - iconv_t conv = 0; - const char* in = 0; - size_t ilen = 0; - char* out = 0; - size_t olen = 0; - iconv(conv, &in, &ilen, &out, &olen); - return 0; - } -" ICONV_SECOND_ARGUMENT_IS_CONST ) - IF(ICONV_SECOND_ARGUMENT_IS_CONST) - SET(ICONV_CONST "const") - ENDIF(ICONV_SECOND_ARGUMENT_IS_CONST) -ENDIF(ICONV_FOUND) -set(CMAKE_REQUIRED_INCLUDES) -set(CMAKE_REQUIRED_LIBRARIES) - -IF(ICONV_FOUND) - IF(NOT ICONV_FIND_QUIETLY) - MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") - ENDIF(NOT ICONV_FIND_QUIETLY) -ELSE(ICONV_FOUND) - IF(Iconv_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find Iconv") - ENDIF(Iconv_FIND_REQUIRED) -ENDIF(ICONV_FOUND) - -MARK_AS_ADVANCED( - ICONV_INCLUDE_DIR - ICONV_LIBRARIES - ICONV_SECOND_ARGUMENT_IS_CONST -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cmake/modules/FindNSS3.cmake new/poppler-23.01.0/cmake/modules/FindNSS3.cmake --- old/poppler-22.12.0/cmake/modules/FindNSS3.cmake 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cmake/modules/FindNSS3.cmake 2023-01-01 13:24:17.000000000 +0100 @@ -1,13 +1,9 @@ # - try to find NSS3 libraries # Once done this will define # -# NSS_FOUND - system has NSS3 +# NSS3_FOUND - system has NSS3 # PkgConfig::NSS3 - Use this in target_link_libraries to bring both includes and link libraries # -# Deprecated, use the above variables: -# NSS3_CFLAGS - the NSS CFlags -# NSS3_LIBRARIES - Link these to use NSS -# # Copyright 2015 André Guerreiro, <aguerreiro1...@gmail.com> # Copyright 2022 Albert Astals Cid, <aa...@kde.org> # @@ -18,6 +14,6 @@ find_package(PkgConfig REQUIRED) -pkg_check_modules(NSS3 IMPORTED_TARGET "nss>=3.19") +pkg_check_modules(NSS3 IMPORTED_TARGET "nss>=3.49") find_package_handle_standard_args(NSS3 DEFAULT_MSG NSS3_LIBRARIES NSS3_CFLAGS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cpp/CMakeLists.txt new/poppler-23.01.0/cpp/CMakeLists.txt --- old/poppler-22.12.0/cpp/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cpp/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -1,7 +1,6 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} - ${ICONV_INCLUDE_DIR} ) configure_file(poppler-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/poppler-version.h @ONLY) @@ -31,7 +30,7 @@ get_target_property(POPPLER_CPP_SOVERSION poppler-cpp SOVERSION) set_target_properties(poppler-cpp PROPERTIES SUFFIX "-${POPPLER_CPP_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() -target_link_libraries(poppler-cpp poppler ${ICONV_LIBRARIES}) +target_link_libraries(poppler-cpp poppler Iconv::Iconv) install(TARGETS poppler-cpp RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/cpp/Doxyfile new/poppler-23.01.0/cpp/Doxyfile --- old/poppler-22.12.0/cpp/Doxyfile 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/cpp/Doxyfile 2023-01-01 13:24:17.000000000 +0100 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 22.12.0 +PROJECT_NUMBER = 23.01.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/fofi/FoFiType1.cc new/poppler-23.01.0/fofi/FoFiType1.cc --- old/poppler-22.12.0/fofi/FoFiType1.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/fofi/FoFiType1.cc 2023-01-01 13:24:17.000000000 +0100 @@ -47,17 +47,6 @@ return new FoFiType1(fileA, lenA, false); } -FoFiType1 *FoFiType1::load(const char *fileName) -{ - char *fileA; - int lenA; - - if (!(fileA = FoFiBase::readFile(fileName, &lenA))) { - return nullptr; - } - return new FoFiType1((unsigned char *)fileA, lenA, true); -} - FoFiType1::FoFiType1(const unsigned char *fileA, int lenA, bool freeFileDataA) : FoFiBase(fileA, lenA, freeFileDataA) { name = nullptr; @@ -232,109 +221,132 @@ line = getNextLine(line); // get encoding - } else if (!encoding && (line + 30 <= (char *)file + len) && !strncmp(line, "/Encoding StandardEncoding def", 30)) { - encoding = (char **)fofiType1StandardEncoding; - } else if (!encoding && (line + 19 <= (char *)file + len) && !strncmp(line, "/Encoding 256 array", 19)) { - encoding = (char **)gmallocn(256, sizeof(char *)); - for (j = 0; j < 256; ++j) { - encoding[j] = nullptr; - } - continueLine = false; - for (j = 0, line = getNextLine(line); j < 300 && line && (line1 = getNextLine(line)); ++j, line = line1) { - if ((n = (int)(line1 - line)) > 255) { - error(errSyntaxWarning, -1, "FoFiType1::parse a line has more than 255 characters, we don't support this"); - n = 255; - } - if (continueLine) { - continueLine = false; - if ((line1 - firstLine) + 1 > (int)sizeof(buf)) { - break; + } else if (!encoding && (line + 9 <= (char *)file + len) && !strncmp(line, "/Encoding", 9)) { + line = line + 9; + const auto availableFile = (char *)file + len - line; + const int lineLen = static_cast<int>(availableFile < 255 ? availableFile : 255); + strncpy(buf, line, lineLen); + buf[lineLen] = '\0'; + p = strtok_r(buf, " \t\n\r", &tokptr); + if (p && (p + 3 <= (char *)buf + lineLen) && !strncmp(p, "256", 3)) { + p = strtok_r(nullptr, " \t\n\r", &tokptr); + if (p && (p + 5 <= (char *)buf + lineLen) && !strncmp(p, "array", 5)) { + encoding = (char **)gmallocn(256, sizeof(char *)); + for (j = 0; j < 256; ++j) { + encoding[j] = nullptr; } - p = firstLine; - p2 = buf; - while (p < line1) { - if (*p == '\n' || *p == '\r') { - *p2++ = ' '; - p++; + continueLine = false; + for (j = 0, line = getNextLine(line); j < 1200 && line && (line1 = getNextLine(line)); ++j, line = line1) { + if ((n = (int)(line1 - line)) > 255) { + error(errSyntaxWarning, -1, "FoFiType1::parse a line has more than 255 characters, we don't support this"); + n = 255; + } + if (continueLine) { + continueLine = false; + if ((line1 - firstLine) + 1 > (int)sizeof(buf)) { + break; + } + p = firstLine; + p2 = buf; + while (p < line1) { + if (*p == '\n' || *p == '\r') { + *p2++ = ' '; + p++; + } else { + *p2++ = *p++; + } + } + *p2 = '\0'; } else { - *p2++ = *p++; + firstLine = line; + strncpy(buf, line, n); + buf[n] = '\0'; } - } - *p2 = '\0'; - } else { - firstLine = line; - strncpy(buf, line, n); - buf[n] = '\0'; - } - for (p = buf; *p == ' ' || *p == '\t'; ++p) { - ; - } - if (!strncmp(p, "dup", 3)) { - while (true) { - p += 3; - for (; *p == ' ' || *p == '\t'; ++p) { + for (p = buf; *p == ' ' || *p == '\t'; ++p) { ; } - code = 0; - if (*p == '8' && p[1] == '#') { - base = 8; - p += 2; - } else if (*p >= '0' && *p <= '9') { - base = 10; - } else if (*p == '\n' || *p == '\r') { - continueLine = true; - break; + if (!strncmp(p, "dup", 3)) { + while (true) { + p += 3; + for (; *p == ' ' || *p == '\t'; ++p) { + ; + } + code = 0; + if (*p == '8' && p[1] == '#') { + base = 8; + p += 2; + } else if (*p >= '0' && *p <= '9') { + base = 10; + } else if (*p == '\n' || *p == '\r') { + continueLine = true; + break; + } else { + break; + } + for (; *p >= '0' && *p < '0' + base && code < INT_MAX / (base + (*p - '0')); ++p) { + code = code * base + (*p - '0'); + } + for (; *p == ' ' || *p == '\t'; ++p) { + ; + } + if (*p == '\n' || *p == '\r' || *p == '\0') { + continueLine = true; + break; + } else if (*p != '/') { + break; + } + ++p; + for (p2 = p; *p2 && *p2 != ' ' && *p2 != '\t'; ++p2) { + ; + } + if (code >= 0 && code < 256) { + c = *p2; + *p2 = '\0'; + gfree(encoding[code]); + encoding[code] = copyString(p); + *p2 = c; + } + for (p = p2; *p == ' ' || *p == '\t'; ++p) { + ; + } + if (*p == '\n' || *p == '\r') { + continueLine = true; + break; + } + if (strncmp(p, "put", 3)) { + break; + } + for (p += 3; *p == ' ' || *p == '\t'; ++p) { + ; + } + if (strncmp(p, "dup", 3)) { + break; + } + } } else { - break; - } - for (; *p >= '0' && *p < '0' + base && code < INT_MAX / (base + (*p - '0')); ++p) { - code = code * base + (*p - '0'); + if (strtok_r(buf, " \t", &tokptr) && (p = strtok_r(nullptr, " \t\n\r", &tokptr)) && !strcmp(p, "def")) { + break; + } } - for (; *p == ' ' || *p == '\t'; ++p) { - ; - } - if (*p == '\n' || *p == '\r') { - continueLine = true; - break; - } else if (*p != '/') { - break; - } - ++p; - for (p2 = p; *p2 && *p2 != ' ' && *p2 != '\t'; ++p2) { - ; - } - if (code >= 0 && code < 256) { - c = *p2; - *p2 = '\0'; - gfree(encoding[code]); - encoding[code] = copyString(p); - *p2 = c; - } - for (p = p2; *p == ' ' || *p == '\t'; ++p) { - ; - } - if (*p == '\n' || *p == '\r') { - continueLine = true; - break; - } - if (strncmp(p, "put", 3)) { - break; - } - for (p += 3; *p == ' ' || *p == '\t'; ++p) { - ; + + bool allEncodingSet = true; + for (int k = 0; allEncodingSet && k < 256; ++k) { + allEncodingSet = encoding[k] != nullptr; } - if (strncmp(p, "dup", 3)) { + if (allEncodingSet) { break; } } - } else { - if (strtok_r(buf, " \t", &tokptr) && (p = strtok_r(nullptr, " \t\n\r", &tokptr)) && !strcmp(p, "def")) { - break; - } + //~ check for getinterval/putinterval junk + } + } else if (p && (p + 16 <= (char *)buf + lineLen) && !strncmp(p, "StandardEncoding", 16)) { + p = strtok_r(nullptr, " \t\n\r", &tokptr); + if (p && (p + 3 <= (char *)buf + lineLen) && !strncmp(p, "def", 3)) { + encoding = (char **)fofiType1StandardEncoding; } + } else { + line = getNextLine(line); } - //~ check for getinterval/putinterval junk - } else if (!gotMatrix && (line + 11 <= (char *)file + len) && !strncmp(line, "/FontMatrix", 11)) { const auto availableFile = (char *)file + len - (line + 11); const int bufLen = static_cast<int>(availableFile < 255 ? availableFile : 255); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/fofi/FoFiType1.h new/poppler-23.01.0/fofi/FoFiType1.h --- old/poppler-22.12.0/fofi/FoFiType1.h 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/fofi/FoFiType1.h 2023-01-01 13:24:17.000000000 +0100 @@ -13,7 +13,7 @@ // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // -// Copyright (C) 2018 Albert Astals Cid <aa...@kde.org> +// Copyright (C) 2018, 2022 Albert Astals Cid <aa...@kde.org> // Copyright (C) 2022 Oliver Sander <oliver.san...@tu-dresden.de> // // To see a description of the changes please see the Changelog file that @@ -36,9 +36,6 @@ // Create a FoFiType1 object from a memory buffer. static FoFiType1 *make(const unsigned char *fileA, int lenA); - // Create a FoFiType1 object from a file on disk. - static FoFiType1 *load(const char *fileName); - ~FoFiType1() override; // Return the font name. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/glib/CMakeLists.txt new/poppler-23.01.0/glib/CMakeLists.txt --- old/poppler-22.12.0/glib/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/glib/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -96,6 +96,7 @@ set_target_properties(poppler-glib PROPERTIES SUFFIX "-${POPPLER_GLIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() target_link_libraries(poppler-glib poppler PkgConfig::GLIB2 ${CAIRO_LIBRARIES} Freetype::Freetype) +target_include_directories(poppler-glib SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/glib/reference/html/index.html new/poppler-23.01.0/glib/reference/html/index.html --- old/poppler-22.12.0/glib/reference/html/index.html 2022-12-01 21:20:32.000000000 +0100 +++ new/poppler-23.01.0/glib/reference/html/index.html 2023-01-01 13:26:20.000000000 +0100 @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Poppler Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for Poppler 22.12.0 + for Poppler 23.01.0 </p></div> </div> <hr> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/glib/reference/html/poppler-Poppler-Features.html new/poppler-23.01.0/glib/reference/html/poppler-Poppler-Features.html --- old/poppler-22.12.0/glib/reference/html/poppler-Poppler-Features.html 2022-12-01 21:20:32.000000000 +0100 +++ new/poppler-23.01.0/glib/reference/html/poppler-Poppler-Features.html 2023-01-01 13:26:20.000000000 +0100 @@ -187,7 +187,7 @@ <hr> <div class="refsect2"> <a name="POPPLER-MAJOR-VERSION:CAPS"></a><h3>POPPLER_MAJOR_VERSION</h3> -<pre class="programlisting">#define POPPLER_MAJOR_VERSION (22) +<pre class="programlisting">#define POPPLER_MAJOR_VERSION (23) </pre> <p>The major version number of the poppler header files (e.g. in poppler version 0.1.2 this is 0.)</p> @@ -205,7 +205,7 @@ <hr> <div class="refsect2"> <a name="POPPLER-MINOR-VERSION:CAPS"></a><h3>POPPLER_MINOR_VERSION</h3> -<pre class="programlisting">#define POPPLER_MINOR_VERSION (12) +<pre class="programlisting">#define POPPLER_MINOR_VERSION (1) </pre> <p>The major version number of the poppler header files (e.g. in poppler version 0.1.2 this is 1.)</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/CairoOutputDev.cc new/poppler-23.01.0/poppler/CairoOutputDev.cc --- old/poppler-22.12.0/poppler/CairoOutputDev.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/CairoOutputDev.cc 2023-01-01 13:24:17.000000000 +0100 @@ -36,6 +36,7 @@ // Copyright (C) 2020, 2022 Oliver Sander <oliver.san...@tu-dresden.de> // Copyright (C) 2021 Uli Schlachter <psyc...@znc.in> // Copyright (C) 2021 Christian Persch <c...@src.gnome.org> +// Copyright (C) 2022 Zachary Travis <ztra...@everlaw.com> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -1536,6 +1537,12 @@ goto finish; } + if (state->getFont()->getType() == fontType3 && render != 7) { + // If the current font is a type 3 font, we should ignore the text rendering mode + // (and use the default of 0) as long as we are going to either fill or stroke. + render = 0; + } + if (!(render & 1)) { LOG(printf("fill string\n")); cairo_set_source(cairo, fill_pattern); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/Gfx.cc new/poppler-23.01.0/poppler/Gfx.cc --- old/poppler-22.12.0/poppler/Gfx.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/Gfx.cc 2023-01-01 13:24:17.000000000 +0100 @@ -14,7 +14,7 @@ // under GPL version 2 or later // // Copyright (C) 2005 Jonathan Blandford <j...@redhat.com> -// Copyright (C) 2005-2013, 2015-2021 Albert Astals Cid <aa...@kde.org> +// Copyright (C) 2005-2013, 2015-2022 Albert Astals Cid <aa...@kde.org> // Copyright (C) 2006 Thorkild Stray <thork...@ifi.uio.no> // Copyright (C) 2006 Kristian Høgsberg <k...@redhat.com> // Copyright (C) 2006-2011 Carlos Garcia Campos <carlo...@gnome.org> @@ -5049,12 +5049,21 @@ } else { error(errSyntaxError, getPos(), "insufficient arguments for Marked Content"); } - } else if (args[0].isName("Span") && numArgs == 2 && args[1].isDict()) { - Object obj = args[1].dictLookup("ActualText"); - if (obj.isString()) { - out->beginActualText(state, obj.getString()); - MarkedContentStack *mc = mcStack; - mc->kind = gfxMCActualText; + } else if (args[0].isName("Span") && numArgs == 2) { + Object dictToUse; + if (args[1].isDict()) { + dictToUse = args[1].copy(); + } else if (args[1].isName()) { + dictToUse = res->lookupMarkedContentNF(args[1].getName()).fetch(xref); + } + + if (dictToUse.isDict()) { + Object obj = dictToUse.dictLookup("ActualText"); + if (obj.isString()) { + out->beginActualText(state, obj.getString()); + MarkedContentStack *mc = mcStack; + mc->kind = gfxMCActualText; + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/GfxFont.cc new/poppler-23.01.0/poppler/GfxFont.cc --- old/poppler-22.12.0/poppler/GfxFont.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/GfxFont.cc 2023-01-01 13:24:17.000000000 +0100 @@ -657,7 +657,7 @@ fontLoc.locType = gfxFontLocEmbedded; fontLoc.fontType = type; fontLoc.embFontID = embFontID; - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } } } @@ -668,7 +668,7 @@ fontLoc.locType = gfxFontLocResident; fontLoc.fontType = fontType1; fontLoc.path = *name; - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } //----- PS resident Base-14 font @@ -677,7 +677,7 @@ fontLoc.locType = gfxFontLocResident; fontLoc.fontType = fontType1; fontLoc.path = ((Gfx8BitFont *)this)->base14->base14Name; - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } //----- external font file (fontFile, fontDir) @@ -708,7 +708,7 @@ fontLoc.fontType = fontCIDType2; fontLoc.setPath(path); fontLoc.fontNum = fontNum; - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } } else { GfxFontLoc fontLoc; @@ -720,7 +720,7 @@ fontLoc.fontType = fontType1; fontLoc.fontNum = fontNum; } - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } delete path; } @@ -749,7 +749,7 @@ fontLoc.fontType = fontType1; fontLoc.path = substName; fontLoc.substIdx = substIdx; - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } else { path = globalParams->findFontFile(substName); if (path) { @@ -811,7 +811,7 @@ fontLoc.locType = gfxFontLocExternal; fontLoc.fontType = fontType; fontLoc.setPath(path); - return std::move(fontLoc); // std::move only required to please g++-7 + return fontLoc; } std::optional<std::vector<unsigned char>> GfxFont::readEmbFontFile(XRef *xref) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/PDFDoc.cc new/poppler-23.01.0/poppler/PDFDoc.cc --- old/poppler-22.12.0/poppler/PDFDoc.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/PDFDoc.cc 2023-01-01 13:24:17.000000000 +0100 @@ -63,6 +63,7 @@ #include <config.h> #include <poppler-config.h> +#include <array> #include <cctype> #include <clocale> #include <cstdio> @@ -2152,6 +2153,24 @@ return jsInfo.containsJS(); } +static std::string findPdfFontNameToUseForSigning(Form *form) +{ + static constexpr std::array<const char *, 2> fontsToUseToSign = { "Helvetica", "Arial" }; + for (const char *fontToUseToSign : fontsToUseToSign) { + std::string pdfFontName = form->findFontInDefaultResources(fontToUseToSign, ""); + if (!pdfFontName.empty()) { + return pdfFontName; + } + + pdfFontName = form->addFontToDefaultResources(fontToUseToSign, "").fontName; + if (!pdfFontName.empty()) { + return pdfFontName; + } + } + + return {}; +} + bool PDFDoc::sign(const char *saveFilename, const char *certNickname, const char *password, GooString *partialFieldName, int page, const PDFRectangle &rect, const GooString &signatureText, const GooString &signatureTextLeft, double fontSize, double leftFontSize, std::unique_ptr<AnnotColor> &&fontColor, double borderWidth, std::unique_ptr<AnnotColor> &&borderColor, std::unique_ptr<AnnotColor> &&backgroundColor, const GooString *reason, const GooString *location, const std::string &imagePath, const std::optional<GooString> &ownerPassword, const std::optional<GooString> &userPassword) @@ -2169,9 +2188,9 @@ } Form *form = catalog->getCreateForm(); - std::string pdfFontName = form->findFontInDefaultResources("Helvetica", ""); + const std::string pdfFontName = findPdfFontNameToUseForSigning(form); if (pdfFontName.empty()) { - pdfFontName = form->addFontToDefaultResources("Helvetica", "").fontName; + return false; } const DefaultAppearance da { { objName, pdfFontName.c_str() }, fontSize, std::move(fontColor) }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/SplashOutputDev.cc new/poppler-23.01.0/poppler/SplashOutputDev.cc --- old/poppler-22.12.0/poppler/SplashOutputDev.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/SplashOutputDev.cc 2023-01-01 13:24:17.000000000 +0100 @@ -20,7 +20,7 @@ // Copyright (C) 2006 Scott Turner <scotty1...@mac.com> // Copyright (C) 2007 Koji Otani <s...@bbr.jp> // Copyright (C) 2009 Petr Gajdos <pgaj...@novell.com> -// Copyright (C) 2009-2016, 2020 Thomas Freitag <thomas.frei...@alfa.de> +// Copyright (C) 2009-2016, 2020, 2022 Thomas Freitag <thomas.frei...@alfa.de> // Copyright (C) 2009 Carlos Garcia Campos <carlo...@gnome.org> // Copyright (C) 2009, 2014-2016, 2019 William Bader <williamba...@hotmail.com> // Copyright (C) 2010 Patrick Spendrin <ps...@gmx.de> @@ -796,51 +796,34 @@ static int getLum(int r, int g, int b) { - return (int)(0.3 * r + 0.59 * g + 0.11 * b); + // (int)(0.3 * r + 0.59 * g + 0.11 * b) = + // (int)(256 / 256 * 0.3 * r + 256 / 256 * 0.59 * g + 256 / 256 * 0.11 * b) + // (int)((77 * r + 151 * g + 28 * b) / 256) = // round! + return (int)((r * 77 + g * 151 + b * 28 + 0x80) >> 8); } static int getSat(int r, int g, int b) { - int rgbMin, rgbMax; + int rgbMin = std::min({ r, g, b }); + int rgbMax = std::max({ r, g, b }); - rgbMin = rgbMax = r; - if (g < rgbMin) { - rgbMin = g; - } else if (g > rgbMax) { - rgbMax = g; - } - if (b < rgbMin) { - rgbMin = b; - } else if (b > rgbMax) { - rgbMax = b; - } return rgbMax - rgbMin; } static void clipColor(int rIn, int gIn, int bIn, unsigned char *rOut, unsigned char *gOut, unsigned char *bOut) { - int lum, rgbMin, rgbMax; + int lum = getLum(rIn, gIn, bIn); + int rgbMin = std::min({ rIn, bIn, gIn }); + int rgbMax = std::max({ rIn, bIn, gIn }); - lum = getLum(rIn, gIn, bIn); - rgbMin = rgbMax = rIn; - if (gIn < rgbMin) { - rgbMin = gIn; - } else if (gIn > rgbMax) { - rgbMax = gIn; - } - if (bIn < rgbMin) { - rgbMin = bIn; - } else if (bIn > rgbMax) { - rgbMax = bIn; - } if (rgbMin < 0) { - *rOut = (unsigned char)(lum + ((rIn - lum) * lum) / (lum - rgbMin)); - *gOut = (unsigned char)(lum + ((gIn - lum) * lum) / (lum - rgbMin)); - *bOut = (unsigned char)(lum + ((bIn - lum) * lum) / (lum - rgbMin)); + *rOut = (unsigned char)std::clamp(lum + ((rIn - lum) * lum) / (lum - rgbMin), 0, 255); + *gOut = (unsigned char)std::clamp(lum + ((gIn - lum) * lum) / (lum - rgbMin), 0, 255); + *bOut = (unsigned char)std::clamp(lum + ((bIn - lum) * lum) / (lum - rgbMin), 0, 255); } else if (rgbMax > 255) { - *rOut = (unsigned char)(lum + ((rIn - lum) * (255 - lum)) / (rgbMax - lum)); - *gOut = (unsigned char)(lum + ((gIn - lum) * (255 - lum)) / (rgbMax - lum)); - *bOut = (unsigned char)(lum + ((bIn - lum) * (255 - lum)) / (rgbMax - lum)); + *rOut = (unsigned char)std::clamp(lum + ((rIn - lum) * (255 - lum)) / (rgbMax - lum), 0, 255); + *gOut = (unsigned char)std::clamp(lum + ((gIn - lum) * (255 - lum)) / (rgbMax - lum), 0, 255); + *bOut = (unsigned char)std::clamp(lum + ((bIn - lum) * (255 - lum)) / (rgbMax - lum), 0, 255); } else { *rOut = rIn; *gOut = gIn; @@ -889,8 +872,8 @@ minOut = bOut; } if (rgbMax > rgbMin) { - *midOut = (unsigned char)((rgbMid - rgbMin) * sat) / (rgbMax - rgbMin); - *maxOut = (unsigned char)sat; + *midOut = (unsigned char)std::clamp(((rgbMid - rgbMin) * sat) / (rgbMax - rgbMin), 0, 255); + *maxOut = (unsigned char)std::clamp(sat, 0, 255); } else { *midOut = *maxOut = 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/poppler/poppler-config.h.cmake new/poppler-23.01.0/poppler/poppler-config.h.cmake --- old/poppler-22.12.0/poppler/poppler-config.h.cmake 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/poppler/poppler-config.h.cmake 2023-01-01 13:24:17.000000000 +0100 @@ -122,7 +122,7 @@ //------------------------------------------------------------------------ // copyright notice -#define popplerCopyright "Copyright 2005-2022 The Poppler Developers - http://poppler.freedesktop.org" +#define popplerCopyright "Copyright 2005-2023 The Poppler Developers - http://poppler.freedesktop.org" #define xpdfCopyright "Copyright 1996-2011, 2022 Glyph & Cog, LLC" //------------------------------------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt5/CMakeLists.txt new/poppler-23.01.0/qt5/CMakeLists.txt --- old/poppler-22.12.0/qt5/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt5/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -5,7 +5,7 @@ add_definitions(-DQT_STRICT_ITERATORS) endif() -add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050900) +add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050C00) add_definitions(-DQT_NO_DEPRECATED_WARNINGS) add_subdirectory(src) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt5/src/CMakeLists.txt new/poppler-23.01.0/qt5/src/CMakeLists.txt --- old/poppler-22.12.0/qt5/src/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt5/src/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -49,6 +49,7 @@ endif() if(USE_CMS) target_link_libraries(poppler-qt5 poppler ${LCMS2_LIBRARIES}) + target_include_directories(poppler-qt5 SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() install(TARGETS poppler-qt5 RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt5/src/Doxyfile new/poppler-23.01.0/qt5/src/Doxyfile --- old/poppler-22.12.0/qt5/src/Doxyfile 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt5/src/Doxyfile 2023-01-01 13:24:17.000000000 +0100 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 22.12.0 +PROJECT_NUMBER = 23.01.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt6/src/CMakeLists.txt new/poppler-23.01.0/qt6/src/CMakeLists.txt --- old/poppler-22.12.0/qt6/src/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt6/src/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -49,6 +49,7 @@ endif() if(USE_CMS) target_link_libraries(poppler-qt6 poppler ${LCMS2_LIBRARIES}) + target_include_directories(poppler-qt6 SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() install(TARGETS poppler-qt6 RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt6/src/Doxyfile new/poppler-23.01.0/qt6/src/Doxyfile --- old/poppler-22.12.0/qt6/src/Doxyfile 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt6/src/Doxyfile 2023-01-01 13:24:17.000000000 +0100 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 22.12.0 +PROJECT_NUMBER = 23.01.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt6/src/poppler-annotation.cc new/poppler-23.01.0/qt6/src/poppler-annotation.cc --- old/poppler-22.12.0/qt6/src/poppler-annotation.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt6/src/poppler-annotation.cc 2023-01-01 13:24:17.000000000 +0100 @@ -2840,11 +2840,11 @@ AnnotStampImageHelper *annotImg; - if (sMaskData.count() > 0) { - AnnotStampImageHelper sMask(parentDoc->doc, width, height, ColorSpace::DeviceGray, 8, sMaskData.data(), sMaskData.count()); - annotImg = new AnnotStampImageHelper(parentDoc->doc, width, height, colorSpace, bitsPerComponent, data.data(), data.count(), sMask.getRef()); + if (sMaskData.size() > 0) { + AnnotStampImageHelper sMask(parentDoc->doc, width, height, ColorSpace::DeviceGray, 8, sMaskData.data(), sMaskData.size()); + annotImg = new AnnotStampImageHelper(parentDoc->doc, width, height, colorSpace, bitsPerComponent, data.data(), data.size(), sMask.getRef()); } else { - annotImg = new AnnotStampImageHelper(parentDoc->doc, width, height, colorSpace, bitsPerComponent, data.data(), data.count()); + annotImg = new AnnotStampImageHelper(parentDoc->doc, width, height, colorSpace, bitsPerComponent, data.data(), data.size()); } return annotImg; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/qt6/tests/CMakeLists.txt new/poppler-23.01.0/qt6/tests/CMakeLists.txt --- old/poppler-22.12.0/qt6/tests/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/qt6/tests/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -22,7 +22,9 @@ ${source} ) poppler_add_test(${exe} BUILD_QT6_TESTS ${${test_name}_SOURCES}) - add_test(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe}) + if(BUILD_QT6_TESTS) + add_test(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe}) + endif() target_link_libraries(${exe} poppler-qt6 Qt6::Widgets Qt6::Test Qt6::Gui) endmacro() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/splash/Splash.cc new/poppler-23.01.0/splash/Splash.cc --- old/poppler-22.12.0/splash/Splash.cc 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/splash/Splash.cc 2023-01-01 13:24:17.000000000 +0100 @@ -3892,6 +3892,9 @@ if (xa == xb) { ++xb; } + if (unlikely(clipRes == splashClipAllInside && xb > bitmap->getWidth())) { + xb = bitmap->getWidth(); + } if (clipRes != splashClipAllInside) { clipRes2 = state->clip->testSpan(xa, xb - 1, y); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/test/CMakeLists.txt new/poppler-23.01.0/test/CMakeLists.txt --- old/poppler-22.12.0/test/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/test/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -23,6 +23,7 @@ ) poppler_add_test(gtk-test BUILD_GTK_TESTS ${gtk_splash_test_SRCS}) target_link_libraries(gtk-test ${CAIRO_LIBRARIES} poppler-glib PkgConfig::GTK3) + target_include_directories(gtk-test SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) if (HAVE_CAIRO) @@ -34,17 +35,13 @@ ) poppler_add_test(pdf-inspector BUILD_GTK_TESTS ${pdf_inspector_SRCS}) target_link_libraries(pdf-inspector ${CAIRO_LIBRARIES} Freetype::Freetype ${common_libs} PkgConfig::GTK3 poppler) + target_include_directories(pdf-inspector SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) target_compile_definitions(pdf-inspector PRIVATE -DSRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}") endif () endif () if (HAVE_CAIRO) - include_directories( - SYSTEM - ${CAIRO_INCLUDE_DIRS} - ) - include(CheckCXXSymbolExists) set (CMAKE_REQUIRED_INCLUDES ${CAIRO_INCLUDE_DIRS}) check_cxx_symbol_exists(CAIRO_HAS_PNG_FUNCTIONS "cairo.h" HAVE_CAIRO_PNG) @@ -62,6 +59,7 @@ ) add_executable(cairo-thread-test ${cairo_thread_test_SRCS}) target_link_libraries(cairo-thread-test ${CAIRO_LIBRARIES} Freetype::Freetype Threads::Threads poppler) + target_include_directories(cairo-thread-test SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) endif () endif () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-22.12.0/utils/CMakeLists.txt new/poppler-23.01.0/utils/CMakeLists.txt --- old/poppler-22.12.0/utils/CMakeLists.txt 2022-12-01 21:19:03.000000000 +0100 +++ new/poppler-23.01.0/utils/CMakeLists.txt 2023-01-01 13:24:17.000000000 +0100 @@ -16,6 +16,7 @@ target_link_libraries(pdftoppm ${common_libs}) if(LCMS2_FOUND) target_link_libraries(pdftoppm ${LCMS2_LIBRARIES}) + target_include_directories(pdftoppm SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() install(TARGETS pdftoppm DESTINATION bin) install(FILES pdftoppm.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) @@ -32,14 +33,14 @@ include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} - SYSTEM - ${CAIRO_INCLUDE_DIRS} ) add_definitions(${CAIRO_CFLAGS}) add_executable(pdftocairo ${pdftocairo_SOURCES}) target_link_libraries(pdftocairo ${CAIRO_LIBRARIES} Freetype::Freetype ${common_libs}) + target_include_directories(pdftocairo SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS}) if(LCMS2_FOUND) target_link_libraries(pdftocairo ${LCMS2_LIBRARIES}) + target_include_directories(pdftocairo SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() install(TARGETS pdftocairo DESTINATION bin) install(FILES pdftocairo.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) @@ -113,6 +114,7 @@ target_link_libraries(pdftops ${common_libs}) if(LCMS2_FOUND) target_link_libraries(pdftops ${LCMS2_LIBRARIES}) + target_include_directories(pdftops SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() install(TARGETS pdftops DESTINATION bin) install(FILES pdftops.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)