View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0017993 | Scribus | Build System | public | 2026-10-01 10:26 | 2026-10-01 21:45 |
| Reporter | jaca101 | Assigned To | cbradney | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Platform | MacBook M1 pro | OS | MacOS Tahoe 26.6.2 | OS Version | 26.6.2 (25G83) |
| Product Version | 1.7.4.svn | ||||
| Fixed in Version | 1.7.4.svn | ||||
| Summary | 0017993: Build: configuring without PoDoFo fails although PoDoFo support is optional | ||||
| Description | PoDoFo 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 Reproduce | 1. 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 Information | Environment: 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. | ||||
| Tags | build | ||||
| 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)
| ||||
| Patch | Yes | ||||
| 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 |