Bug 406499 - elisa git fails to build on High Sierra
Summary: elisa git fails to build on High Sierra
Status: RESOLVED DOWNSTREAM
Alias: None
Product: Elisa
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Homebrew (macOS) macOS
: NOR normal
Target Milestone: ---
Assignee: Matthieu Gallien
URL: https://github.com/KDE-mac/homebrew-k...
Keywords:
Depends on:
Blocks:
 
Reported: 2019-04-13 11:18 UTC by Yurii Kolesnykov
Modified: 2019-04-15 13:52 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yurii Kolesnykov 2019-04-13 11:18:28 UTC
SUMMARY
elisa git fails to build on High Sierra

STEPS TO REPRODUCE
1. brew install elisa

OBSERVED RESULT
Undefined symbols for architecture x86_64:
"AudioWrapper::saveUndoPosition(long long)", referenced from:
ElisaApplication::initializePlayer() in elisaapplication.cpp.o
AudioWrapper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in audiowrapper_qtmultimedia.cpp.o
"AudioWrapper::restoreUndoPosition()", referenced from:
ElisaApplication::initializePlayer() in elisaapplication.cpp.o
AudioWrapper::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in audiowrapper_qtmultimedia.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]: *** [bin/libelisaLib.0.1.dylib] Error 1
make[1]: *** [src/CMakeFiles/elisaLib.dir/all] Error 2
make: *** [all] Error 2

EXPECTED RESULT
Build without errors

SOFTWARE/OS VERSIONS
macOS: 10.13.6
KDE Frameworks Version: 5.56
Qt Version: 5.12.2

ADDITIONAL INFORMATION
Full log: https://git.io/fjmGg
Comment 1 Nate Graham 2019-04-14 01:41:04 UTC
ld: symbol(s) not found for architecture x86_64

Sounds like you don't have all the right dependencies installed. I'd contact the homebrew folks to see if their tap/cask/keg/whatever it's called is up-to-date and bug-free.
Comment 2 Yurii Kolesnykov 2019-04-14 07:59:28 UTC
(In reply to Nate Graham from comment #1)
> ld: symbol(s) not found for architecture x86_64
> 
> Sounds like you don't have all the right dependencies installed. I'd contact
> the homebrew folks to see if their tap/cask/keg/whatever it's called is
> up-to-date and bug-free.

It's actually me, I maintain this tap and had created this formula two days ago. You can examine formula here: https://github.com/KDE-mac/homebrew-kde/blob/master/Formula/elisa.rb

Also, I want to mention, that brew builds formulas in sandbox and recursively exposes only those dependencies that was mentioned explicitly.

I don't have a build issue on 10.14 (Mojave), but I don't see the GUI in my build, release and nightly Jenkins builds. Also, ninja doesn't work with elisa for me. I will report those issues separately.
Comment 3 Yurii Kolesnykov 2019-04-14 08:01:02 UTC
> all the right dependencies installed

Isn't this must be solved by CMake, which must fail during configure?
Comment 4 Nate Graham 2019-04-14 14:23:08 UTC
Depends on what the missing library is. Can you pinpoint what it is? If you can, and it's not in CMake, then yeah, that would be good to add.
Comment 6 Matthieu Gallien 2019-04-14 18:48:15 UTC
(In reply to Yurii Kolesnykov from comment #5)
> According to 
> https://github.com/KDE/elisa/blob/master/src/audiowrapper.h
> https://github.com/KDE/elisa/blob/master/src/audiowrapper_qtmultimedia.cpp
> https://github.com/KDE/elisa/blob/master/src/audiowrapper_libvlc.cpp
> 
> My suggestion is this lack of some libvlc/qtmultimedia and/or phonon?

In fact, one of both is needed. Currently, they are not set as required but the documentation (README.packagers) says that libvlc is recommended and needed to play music. Qt Multimedia is the historical solution and kept for cases where libvlc might be a problem.
A solution to your problem could be to add special logic to keep them not required but if both are not found change the result to still report an error.
Comment 7 Yurii Kolesnykov 2019-04-15 13:52:57 UTC
Thanks for advice Matthieu, but unfortunately I'm not strong on C++/CMake, my main profile is Swift/iOS.

Could you please reopen this issue so someone may peek it up?