View Issue Details

IDProjectCategoryView StatusLast Update
0017993ScribusBuild Systempublic2026-10-01 21:45
Reporterjaca101 Assigned Tocbradney  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformMacBook M1 proOSMacOS Tahoe 26.6.2OS Version26.6.2 (25G83)
Product Version1.7.4.svn 
Fixed in Version1.7.4.svn 
Summary0017993: Build: configuring without PoDoFo fails although PoDoFo support is optional
DescriptionPoDoFo is an optional dependency (WITH_PODOFO option, used for PDF embedded in AI files; CMakeLists_Dependencies.cmake calls find_package(LIBPODOFO 0.9.0) without REQUIRED and prints "PoDoFo NOT found - Disabling support for PDF embedded in AI" when it is missing). However, on a system without PoDoFo, configuring with the default WITH_PODOFO=ON fails in two places:

1. cmake/modules/FindLIBPODOFO.cmake calls
       pkg_search_module(libpodofo REQUIRED libpodofo podofo)
   so configuration aborts with:
       None of the required 'libpodofo;podofo' found

2. Once (1) is fixed, the generate step fails with:
       Found relative path while evaluating include directories of "importai":
         "LIBPODOFO_INCLUDE_DIR-NOTFOUND"
   because scribus/plugins/import/ai/CMakeLists.txt adds ${LIBPODOFO_INCLUDE_DIR} to include_directories() unconditionally, in addition to its existing if(HAVE_PODOFO) block that already adds it when PoDoFo is available. (Before fix 1 this second error could only be hit with a stale cache.)

The only workaround today is to pass -DWITH_PODOFO=OFF explicitly.

Fix (two patches attached, against trunk r27875):
- 0007: use QUIET instead of REQUIRED in pkg_search_module(); the module already decides LIBPODOFO_FOUND from the include/library search that follows.
- 0008: drop the unconditional ${LIBPODOFO_INCLUDE_DIR} entry from the importai include directories.
Steps To Reproduce1. Use a system where PoDoFo is not installed (no libpodofo/podofo pkg-config module).
2. Configure Scribus with default options, e.g.:
       cmake -S scribus -B build -G Ninja
   -> Expected: configuration succeeds and reports "PoDoFo NOT found - Disabling support for PDF embedded in AI".
   -> Actual: "None of the required 'libpodofo;podofo' found" and configuration stops.
Additional InformationEnvironment: macOS 26.6 (Tahoe), Apple Silicon, Homebrew, CMake 4.4.3, Ninja 1.13.2, Qt 6.11.2, Scribus 1.7.4.svn trunk r27875. The CMake code involved is platform independent.

Verified with both patches applied, in clean build directories and without any workaround flags:
- without PoDoFo: configure succeeds, HAVE_PODOFO is undefined, "PoDoFo NOT found - Disabling support for PDF embedded in AI";
- with PoDoFo 1.1.2 (via LIBPODOFO_DIR_PREFIX): configure succeeds with HAVE_PODOFO 1, full build succeeds, Scribus and the importai plugin link libpodofo.

The patches were prepared with AI assistance (Claude Code) and reviewed and tested by me; they carry a Co-Authored-By trailer.
Tagsbuild
Attached Files
0007-FindLIBPODOFO-don-t-make-pkg-config-lookup-of-PoDoFo.patch (1,398 bytes)   
From 6ef9d91df4fdb7f9f933d3cb3cafeafda11b3cf4 Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshi.nakamoto.xdos@proton.me>
Date: Thu, 1 Oct 2026 04:46:25 +0200
Subject: [PATCH 7/9] FindLIBPODOFO: don't make pkg-config lookup of PoDoFo
 required

PoDoFo is optional (WITH_PODOFO, find_package(LIBPODOFO) without
REQUIRED), but FindLIBPODOFO.cmake called
pkg_search_module(libpodofo REQUIRED ...), so configuring failed with
"None of the required 'libpodofo;podofo' found" on any system without
PoDoFo instead of just disabling PDF-in-AI import. Make the lookup QUIET;
the module already reports LIBPODOFO_FOUND from the include/library
search that follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
 cmake/modules/FindLIBPODOFO.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/modules/FindLIBPODOFO.cmake b/cmake/modules/FindLIBPODOFO.cmake
index ca910a89b..9d163f4d0 100644
--- a/cmake/modules/FindLIBPODOFO.cmake
+++ b/cmake/modules/FindLIBPODOFO.cmake
@@ -18,7 +18,7 @@ find_package(PkgConfig QUIET)
 if(DEFINED LIBPODOFO_DIR_PREFIX)
 	set(ENV{PKG_CONFIG_PATH} "${LIBPODOFO_DIR_PREFIX}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
 endif()
-pkg_search_module(libpodofo REQUIRED libpodofo podofo)
+pkg_search_module(libpodofo QUIET libpodofo podofo)
 
 if (DEFINED LIBPODOFO_DIR_PREFIX)
 	find_path(LIBPODOFO_INCLUDE_DIR
-- 
2.54.0 (Apple Git-157)

0008-importai-only-add-PoDoFo-include-dir-when-PoDoFo-is-.patch (1,151 bytes)   
From 98e3e0b02ca5d4094fbfd4b90ba351a2071bb7ff Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshi.nakamoto.xdos@proton.me>
Date: Thu, 1 Oct 2026 04:46:25 +0200
Subject: [PATCH 8/9] importai: only add PoDoFo include dir when PoDoFo is
 available

The AI import plugin added ${LIBPODOFO_INCLUDE_DIR} to its include
directories unconditionally, in addition to the existing
if(HAVE_PODOFO) block. Without PoDoFo that variable is
LIBPODOFO_INCLUDE_DIR-NOTFOUND, and CMake's generate step fails with
"Found relative path while evaluating include directories of importai".
Drop the unconditional entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
 scribus/plugins/import/ai/CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

diff --git a/scribus/plugins/import/ai/CMakeLists.txt b/scribus/plugins/import/ai/CMakeLists.txt
index f7556d39a..3a8d83f96 100644
--- a/scribus/plugins/import/ai/CMakeLists.txt
+++ b/scribus/plugins/import/ai/CMakeLists.txt
@@ -1,7 +1,6 @@
 include_directories(
 	${CMAKE_SOURCE_DIR}
 	${CMAKE_SOURCE_DIR}/scribus
-	${LIBPODOFO_INCLUDE_DIR}
 	${SCRIBUS_AUTOGEN_INCLUDE_PATH}
 )
 
-- 
2.54.0 (Apple Git-157)

PatchYes

Activities

cbradney

2026-10-01 21:45

administrator   ~0054504

Fixed slightly differently. Note Podofo will be required in 1.7.5

Issue History

Date Modified Username Field Change
2026-10-01 10:26 jaca101 New Issue
2026-10-01 10:26 jaca101 Tag Attached: build
2026-10-01 10:26 jaca101 File Added: 0007-FindLIBPODOFO-don-t-make-pkg-config-lookup-of-PoDoFo.patch
2026-10-01 10:26 jaca101 File Added: 0008-importai-only-add-PoDoFo-include-dir-when-PoDoFo-is-.patch
2026-10-01 21:45 cbradney Assigned To => cbradney
2026-10-01 21:45 cbradney Status new => resolved
2026-10-01 21:45 cbradney Resolution open => fixed
2026-10-01 21:45 cbradney Fixed in Version => 1.7.4.svn
2026-10-01 21:45 cbradney Note Added: 0054504