#66247 closed defect (fixed)

kdelibs4: build failure on macOS 13

Reported by: ShadSterling (Shad Sterling) Owned by: NicosPavlov
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: ventura Cc:
Port: kdelibs4

Description

Build failed while reinstalling all ports after upgrading to Ventura

The linker can't find "_jp2_encode"

:info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build/kjsembed/kjsembed && /usr/bin/clang++ -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=139 -DKDE_DEPRECATED_WARNINGS -DMAKE_KJSEMBED_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_STL -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -D_REENTRANT -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build/kjsembed/kjsembed -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kjsembed/kjsembed -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/interfaces -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kjsembed -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kjs -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build/kjs -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build/kdecore -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/compression -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/config -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/date -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/io -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/jobs -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/kernel -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/auth -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/network -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/services -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/localization -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/sycoca -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/text -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/util -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/kdelibs-4.14.3/kdecore/sonnet -I/opt/local/libexec/qt4/include/QtCrypto -I/opt/local/libexec/qt4/include/QtXmlPatterns -I/opt/local/libexec/qt4/include/QtXml -I/opt/local/libexec/qt4/include/QtWebKit -I/opt/local/libexec/qt4/include/QtUiTools -I/opt/local/libexec/qt4/include/QtTest -I/opt/local/libexec/qt4/include/QtSvg -I/opt/local/libexec/qt4/include/QtSql -I/opt/local/libexec/qt4/include/QtScriptTools -I/opt/local/libexec/qt4/include/QtScript -I/opt/local/libexec/qt4/include/QtOpenGL -I/opt/local/libexec/qt4/include/QtNetwork -I/opt/local/libexec/qt4/include/QtMultimedia -I/opt/local/libexec/qt4/include/QtHelp -I/opt/local/libexec/qt4/include/QtDesigner -I/opt/local/libexec/qt4/include/QtDeclarative -I/opt/local/libexec/qt4/include/QtDBus -I/opt/local/libexec/qt4/include/Qt3Support -I/opt/local/libexec/qt4/include/QtGui -I/opt/local/libexec/qt4/include/QtCore -I/opt/local/libexec/qt4/include -I/opt/local/libexec/qt4/share/mkspecs/default -pipe -Os -DNDEBUG -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -fno-common -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -mmacosx-version-min=13.0 -fPIC   -D__APPLE_KDE__  -MD -MT kjsembed/kjsembed/CMakeFiles/kjsembed.dir/pixmap.o -MF CMakeFiles/kjsembed.dir/pixmap.o.d -o CMakeFiles/kjsembed.dir/pixmap.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4kdelibs4/work/kdelibs-4.14.3/kjsembed/kjsembed/pixmap.cpp
:info:build Undefined symbols for architecture x86_64:
:info:build   "_jp2_encode", referenced from:
:info:build       JP2Handler::write(QImage const&) in jp2.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[2]: *** [lib/kimg_jp2.so] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_kde_kdelibs4/kdelibs4/work/build'
:info:build make[1]: *** [kimgio/CMakeFiles/kimg_jp2.dir/all] Error 2
:info:build make[1]: *** Waiting for unfinished jobs....

Attachments (1)

main.log.zip (516.9 KB) - added by ShadSterling (Shad Sterling) 17 months ago.

Download all attachments as: .zip

Change History (7)

Changed 17 months ago by ShadSterling (Shad Sterling)

Attachment: main.log.zip added

comment:1 Changed 17 months ago by jmroot (Joshua Root)

Cc: NicosPavlov removed
Owner: set to NicosPavlov
Status: newassigned

comment:2 Changed 15 months ago by ShadSterling (Shad Sterling)

Trying again today it only happens with +docs; with kdelibs4 -docs installed successfully

comment:3 Changed 15 months ago by kencu (Ken)

looks like something to do with either not linking in jasper, or perhaps linking in the wrong jasper... have to dig in on that.

comment:4 Changed 15 months ago by kencu (Ken)

It appears to be getting confused between jasper and jasper2, I believe, finding both of them, and adding the wrong link library sometimes:

CMakeCache.txt
476:JASPER_INCLUDE_DIR:PATH=/opt/local/libexec/jasper2/include
479:JASPER_LIBRARY:UNINITIALIZED=/opt/local/libexec/jasper2/lib/libjasper.dylib
482:JASPER_LIBRARY_DEBUG:FILEPATH=JASPER_LIBRARY_DEBUG-NOTFOUND
485:JASPER_LIBRARY_RELEASE:FILEPATH=/opt/local/lib/libjasper.dylib
 % port provides /opt/local/lib/libjasper.dylib
/opt/local/lib/libjasper.dylib is provided by: jasper

comment:5 Changed 15 months ago by kencu (Ken)

Yes, steering the build to use the correct jasper2 library fixed this, like this:

% diff -u Portfile `port file kdelibs4`
--- Portfile	2022-12-29 23:19:54
+++ /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/kde/kdelibs4/Portfile	2023-01-02 15:08:38
@@ -87,7 +87,8 @@
                         -DKDE_DEFAULT_HOME=Library/Preferences/KDE \
                         -DWITH_HSPELL=OFF \
                         -DWITH_FAM=OFF \
-                        -DKDE4_AUTH_BACKEND_NAME="OSX"
+                        -DKDE4_AUTH_BACKEND_NAME="OSX" \
+                        -DJASPER_LIBRARY_RELEASE=${prefix}/libexec/jasper2/lib/libjasper.dylib
 
 # Install the kdelibs headerfiles in their own directory to prevent clashes with KF5 headers
 configure.args-append   -DINCLUDE_INSTALL_DIR=${kde4.include_dirs}

comment:6 Changed 14 months ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

In f062568fc086ec29df2a4949e86c60f8acfb8970/macports-ports (master):

kdelibs4: fix build if jasper is installed

this port uses jasper2, but if jasper is installed,
it finds libjasper.dylib in ${prefix}/lib first,
and the link fails.

force it to link against the correct libjasper.dylib
in the jasper2 directory.

closes: #66247

Note: See TracTickets for help on using tickets.