View Issue Details

IDProjectCategoryView StatusLast Update
0016975ScribusBuild Systempublic2023-09-11 20:34
Reporterryandesign Assigned Tocbradney  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version1.5.8 
Fixed in Version1.6.0.svn 
Summary0016975: Build failure on newer macOS versions than were available when Scribus was released
DescriptionScribus 1.5.8 fails to build on macOS 13 Ventura on x86_64 because it is trying to build for i386 instead of x86_64.

The Scribus build system has hundreds of lines of code [[https://github.com/scribusproject/scribus/blob/fbc5a9fc708fb1822b2b23fdb9343d20a2068c1f/CMakeLists.txt#L203-L286|in CMakeLists.cmake]] [[https://github.com/scribusproject/scribus/blob/fbc5a9fc708fb1822b2b23fdb9343d20a2068c1f/CMakeLists_Apple.cmake#L1C1-L188|and CMakeLists_Apple.cmake] for setting CMAKE_OSX_SYSROOT and CMAKE_OSX_ARCHITECTURES explicitly based on the macOS version, architecture, and which SDK is installed. Critically, when building on a version of macOS not known to the build system, it will fall back to building for i386.

The problem was [[https://github.com/scribusproject/scribus/commit/c24f5e8969afb885e9d807e8c015d1bd47460d01|fixed for macOS 13 Ventura on x86_64 in 1.5.9.svn]] but the problem will resurface every year when Apple releases a new version of macOS. Beta versions of macOS 14 Sonoma are already available and will exhibit this problem on x86_64 even with the latest Scribus development build system.

The immediate problem is [[https://github.com/scribusproject/scribus/blob/fbc5a9fc708fb1822b2b23fdb9343d20a2068c1f/CMakeLists_Apple.cmake#L175|here]], where only known x86_64 macOS versions 10.6 through 13 are set to build for x86_64. Falling back to i386 isn't reasonable: Mac OS X 10.6 was the last version that ran on i386 processors (and this build system will do the wrong thing if Mac OS X 10.6 is being used on an i386 processor), macOS 10.13 was the last version on which it was possible to build for i386, and macOS 10.14 was the last version on which is was possible to run i386 software. Finally, there's no way Scribus could build for i386 on macOS anymore anyway since it started requiring Qt 5.10 or later in 2020 (and now requires Qt 5.14 on the Version15x branch) and [[https://bugreports.qt.io/browse/QTBUG-58401|Qt 5.10 and later are not compatible with 32-bit macOS]].

I don't think it's necessary or even desirable for Scribus to be doing this. It should not set the sysroot or architectures. Most or all of the build system code related to this can be deleted. The default arch and sysroot selected by the toolchain should work fine, and the user can override them if they want to.

The problem does not affect arm64 macOS.

This was originally [[https://trac.macports.org/ticket/64290|reported to MacPorts in 2021]].
TagsNo tags attached.
PatchNo

Activities

ryandesign

2023-07-07 18:59

reporter   ~0050261

Sorry, I didn't realize this Mantis installation doesn't support link syntax and I don't see an Edit button to fix it.

ryandesign

2023-07-07 23:13

reporter   ~0050268

And I forgot to mention the macOS deployment target, which you're also overriding and I would suggest that you should not.

Here are the patches I added to MacPorts to fix scribus 1.5.8:

https://github.com/macports/macports-ports/blob/bdb112fc3ff4dc3fd2b2e0a397547255914e6418/print/scribus-devel/files/arch-and-deployment-target.patch

and 1.4.8:

https://github.com/macports/macports-ports/blob/bd398dc7bd1d81a7149892503e4f6a49b1715ba4/print/scribus/files/arch-and-deployment-target.patch

by essentially removing most of the macOS platform detection code.

cbradney

2023-07-08 13:35

administrator   ~0050270

I've committed a change to just go from a certain version greater than to set 64 bit.
I'm actually waiting on https://trac.macports.org/ticket/64954 to be fixed so I can try a bundled x64/arm64 build for a single dmg. Once thats fixed, I may simplify as required to make that work ok.

Issue History

Date Modified Username Field Change
2023-07-07 18:57 ryandesign New Issue
2023-07-07 18:59 ryandesign Note Added: 0050261
2023-07-07 23:13 ryandesign Note Added: 0050268
2023-07-08 13:35 cbradney Assigned To => cbradney
2023-07-08 13:35 cbradney Status new => resolved
2023-07-08 13:35 cbradney Resolution open => fixed
2023-07-08 13:35 cbradney Fixed in Version => 1.6.0.svn
2023-07-08 13:35 cbradney Note Added: 0050270
2023-09-11 20:34 cbradney Status resolved => closed