Bug 397893 - MacOS : digiKam do not link with libksane 18.08.0
Summary: MacOS : digiKam do not link with libksane 18.08.0
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Generic-DigitalScanner (show other bugs)
Version: 6.0.0
Platform: MacPorts macOS
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-26 16:50 UTC by caulier.gilles
Modified: 2018-08-27 21:23 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 6.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description caulier.gilles 2018-08-26 16:50:05 UTC
Under MacOS Hight Sierra, with Xcode 9.1 (9B55), and current Macport chain, compiling whole Qt5 5.8 + KF5 5.49 frameworks work as expected, including libksane.

But there is a digiKam linking stage which fail with libksane :

[ 77%] Linking CXX shared library libdigikamcore.dylib
[ 77%] Building CXX object core/app/CMakeFiles/digikamgui_src.dir/views/tableview/tableview_treeview_delegate.cpp.o
[ 77%] Building CXX object core/app/CMakeFiles/digikamgui_src.dir/views/tableview/tableview_column_configuration_dialog.cpp.o
In file included from /Users/gilles/Devel/6.X/core/app/utils/contextmenuhelper.cpp:58:
In file included from /Users/gilles/Devel/6.X/core/app/main/digikamapp.h:39:
/opt/digikam/include/KF5/Solid/Solid/SolidNamespace:1:10: warning: non-portable path to file '"Solid/solidnamespace.h"'; specified path differs in case from
      file name on disk [-Wnonportable-include-path]
#include "solid/solidnamespace.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~
         "Solid/solidnamespace.h"
Undefined symbols for architecture x86_64:
  "KSaneIface::KSaneWidget::openDevice(QString const&)", referenced from:
      Digikam::KSaneAction::activate(QString const&, QString const&) in ksaneaction.cpp.o
  "KSaneIface::KSaneWidget::closeDevice()", referenced from:
      Digikam::ScanDialog::slotDialogFinished() in scandialog.cpp.o
  "KSaneIface::KSaneWidget::selectDevice(QWidget*)", referenced from:
      Digikam::KSaneAction::activate(QString const&, QString const&) in ksaneaction.cpp.o
  "KSaneIface::KSaneWidget::KSaneWidget(QWidget*)", referenced from:
      Digikam::KSaneAction::activate(QString const&, QString const&) in ksaneaction.cpp.o
  "KSaneIface::KSaneWidget::make() const", referenced from:
      Digikam::ScanDialog::slotSaveImage(QByteArray&, int, int, int, int) in scandialog.cpp.o
  "KSaneIface::KSaneWidget::model() const", referenced from:
      Digikam::ScanDialog::slotSaveImage(QByteArray&, int, int, int, int) in scandialog.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [core/app/libdigikamcore.6.0.0.dylib] Error 1
make[1]: *** [core/app/CMakeFiles/digikamcore.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

There is no linking problem if i disable libksane support in digiKam.

Note : this problem appear since i update KF5 to 5.49. There is no problem with KF5.5.45. So it's probably a problem relevant of ECM or something new is missing in libksane CmakeLists.txt

Gilles Caulier
Comment 1 caulier.gilles 2018-08-26 16:51:51 UTC
Note : linksane is compiled in digiKam MacOS bundle using this cmake rules :

https://cgit.kde.org/digikam.git/tree/project/bundles/3rdparty/ext_libksane/CMakeLists.txt#n45

Gilles Caulier
Comment 2 caulier.gilles 2018-08-26 17:36:13 UTC
Note : the libksane version compiled with digiKam MacOS bundle is the official 18.08.0

Gilles Caulier
Comment 3 caulier.gilles 2018-08-27 21:23:54 UTC
The error come from the digiKam MacOS package build script. Sorry for the noise.


Gilles Caulier