Summary: | net/linphone: 4.1.1_6,1 fails to configure: Could not find a package configuration file provided by "BcToolbox" | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | p5B2EA84B3 | ||||||
Component: | Individual Port(s) | Assignee: | Muhammad Moinur Rahman <bofh> | ||||||
Status: | Closed Overcome By Events | ||||||||
Severity: | Affects Many People | CC: | bofh, rz, vvd, zirias | ||||||
Priority: | --- | Keywords: | needs-patch, needs-qa | ||||||
Version: | Latest | Flags: | koobs:
merge-quarterly?
|
||||||
Hardware: | Any | ||||||||
OS: | Any | ||||||||
See Also: | https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264680 | ||||||||
Attachments: |
|
Description
p5B2EA84B3
2022-06-17 12:46:59 UTC
Hello Muhammad, could you have a look please? It seems the updates of net/bctoolbox, deskutils/belcard and net/liblinphone broke this port. It also doesn't build after fixing the obvious casing changes in the included cmake files, and so far, I didn't succeed updating the port to the latest version (4.4.6) either. (In reply to Felix Palmen from comment #1) I am working on it but not sure how much successful I will be. In the recent days they have changed a lot and the system is not too supportive of FreeBSD. :( Created attachment 234815 [details]
[WIP] update to 4.3.2
That's kind of an understatment, seems this convoluted mess of a build system isn't supportive of any packaging with external dependencies ...
Well, I learned the newest version 4.4.6 won't work with the liblinphone currently in ports, but 4.3.2 should. Attaching a WIP patch; it builds, but it doesn't run because of an undefined symbol in liblinphone:
---
$ linphone
[17:13:04:701][0x813430fe0][Info]"Starting Linphone (bin: linphone)"
[...]
ld-elf.so.1: /usr/local/lib/liblinphone.so.10: Undefined symbol "_ZN4belr13GrammarLoader3getEv"
$ c++filt _ZN4belr13GrammarLoader3getEv
belr::GrammarLoader::get()
$ pkg which /usr/local/lib/liblinphone.so.10
/usr/local/lib/liblinphone.so.10 was installed by package liblinphone-5.0.49
I think I fixed it, liblinphone needed another upgrade for the latest linphone, see: https://reviews.freebsd.org/D35804 https://reviews.freebsd.org/D35805 Oops. I forgot to mention this bug. But committed. Thanks to Felix. Build error if git installed: [/usr/ports/net/linphone]# make configure ===> NOTICE: The linphone port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://docs.freebsd.org/en/articles/contributing/#ports-contributing ===> License GPLv3 accepted by the user ===> linphone-4.4.8,1 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by linphone-4.4.8,1 for building ===> Extracting for linphone-4.4.8,1 => SHA256 Checksum OK for public-linphone-desktop-da40aed848da44e851d67a2039e7e966c5257d3b_GL0.tar.gz. ===> Patching for linphone-4.4.8,1 ===> Applying FreeBSD patches for linphone-4.4.8,1 from /usr/ports/net/linphone/files ===> linphone-4.4.8,1 depends on file: /usr/local/bin/cmake - found ===> linphone-4.4.8,1 depends on executable: ninja - found ===> linphone-4.4.8,1 depends on package: pkgconf>=1.3.0_1 - found ===> linphone-4.4.8,1 depends on package: qt5-buildtools>=5.15 - found ===> linphone-4.4.8,1 depends on file: /usr/local/lib/qt5/bin/lrelease - found ===> linphone-4.4.8,1 depends on package: qt5-qmake>=5.15 - found ===> linphone-4.4.8,1 depends on shared library: libbctoolbox.so - found (/usr/local/lib/libbctoolbox.so) ===> linphone-4.4.8,1 depends on shared library: libbelcard.so - found (/usr/local/lib/libbelcard.so) ===> linphone-4.4.8,1 depends on shared library: liblinphone++.so - found (/usr/local/lib/liblinphone++.so) ===> linphone-4.4.8,1 depends on shared library: libmediastreamer.so - found (/usr/local/lib/libmediastreamer.so) ===> linphone-4.4.8,1 depends on shared library: libortp.so - found (/usr/local/lib/libortp.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Concurrent.so - found (/usr/local/lib/qt5/libQt5Concurrent.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Core.so - found (/usr/local/lib/qt5/libQt5Core.so) ===> linphone-4.4.8,1 depends on shared library: libQt5DBus.so - found (/usr/local/lib/qt5/libQt5DBus.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Qml.so - found (/usr/local/lib/qt5/libQt5Qml.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Gui.so - found (/usr/local/lib/qt5/libQt5Gui.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Network.so - found (/usr/local/lib/qt5/libQt5Network.so) ===> linphone-4.4.8,1 depends on shared library: libQt5QuickControls2.so - found (/usr/local/lib/qt5/libQt5QuickControls2.so) ===> linphone-4.4.8,1 depends on shared library: libQt5TextToSpeech.so - found (/usr/local/lib/qt5/libQt5TextToSpeech.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Svg.so - found (/usr/local/lib/qt5/libQt5Svg.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Test.so - found (/usr/local/lib/qt5/libQt5Test.so) ===> linphone-4.4.8,1 depends on shared library: libQt5Widgets.so - found (/usr/local/lib/qt5/libQt5Widgets.so) ===> Configuring for linphone-4.4.8,1 ===> Performing out-of-source build /bin/mkdir -p /tmp/work/usr/ports/net/linphone/work/.build CMake Warning (dev) at /usr/local/share/bctoolbox/cmake/bctoolboxTargets.cmake:54 (add_library): ADD_LIBRARY called with SHARED option but the target platform does not support dynamic linking. Building a STATIC library instead. This may lead to problems. Call Stack (most recent call first): /usr/local/share/bctoolbox/cmake/bctoolboxConfig.cmake:56 (include) CMakeLists.txt:24 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/local/share/bctoolbox/cmake/bctoolboxTargets.cmake:61 (add_library): ADD_LIBRARY called with SHARED option but the target platform does not support dynamic linking. Building a STATIC library instead. This may lead to problems. Call Stack (most recent call first): /usr/local/share/bctoolbox/cmake/bctoolboxConfig.cmake:56 (include) CMakeLists.txt:24 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- The C compiler identification is Clang 13.0.0 -- The CXX compiler identification is Clang 13.0.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/local/bin/git (found version "2.37.1") Optional package TextToSpeech found. CMake Error at /usr/local/share/bctoolbox/cmake/bctoolboxCMakeUtils.cmake:146 (message): invalid git describe version: '' Call Stack (most recent call first): build/CMakeLists.txt:49 (bc_compute_full_version) -- Configuring incomplete, errors occurred! See also "/tmp/work/usr/ports/net/linphone/work/.build/CMakeFiles/CMakeOutput.log". *** Error code 1 Stop. make: stopped in /usr/ports/net/linphone Fixed with: @${REINPLACE_CMD} -e 's/bc_compute_full_version([^)]*)//' \ ${WRKSRC}/build/CMakeLists.txt in post-patch. (In reply to VVD from comment #6) This is already discussed in https://reviews.freebsd.org/D35805 (and it still remains a mystery to me why it hits *some* people). I think the patch over there is the simpler one, I will give it a few testport runs and then suggest it for commit. (In reply to Felix Palmen from comment #7) Somewhere in the CMakeList it tries to comp the dep of bctoolbox version using git rather than out pkg version. When there is git installed the string becomes null; when git is not installed it's skipped. So you might not get this error in poudriere. This is applicable for users who uses ports tree. BTW, did you report to upstream patch for src/components/other/desktop-tools/DesktopTools.hpp? (In reply to VVD from comment #9) I am not sure to whom you asked the question. But I would like to say that I couldn't find any easy way to submit patches as they use a private git repo and is used by the employees of linphone only. But if anyone finds a way to submit patches let me know. I think I have dozens of patches on their ecosystem to submit. (In reply to Muhammad Moinur Rahman from comment #10) Here https://gitlab.linphone.org/BC/public/linphone-desktop/-/issues ? (In reply to Muhammad Moinur Rahman from comment #8) I said almost same: > Build error if _git_ installed Or not? (In reply to VVD from comment #11) What about if you try to create a new issue? :V (In reply to VVD from comment #12) You did but Zirias would keep on building on poudriere without being able to reproduce the fault as it won't be reproduced in poudriere builds. So I took the liberty to explain him more. :V @bofh: thanks, I sometimes forget about the endless miracles of "unclean" build environments. As I said, I prefer the simpler patch suggested in https://reviews.freebsd.org/D35805 – I'll give it a few other "testport" runs and a functionality test by placing an actual phone call ASAP. @VVD: About upstreaming patches, sure, I'd like to do that. As this port doesn't have a maintainer currently, nobody is really "responsible" for that, but I'm also thinking about maybe adopting the port if nobody else wants to ;) Still, I have doubts they would accept FreeBSD-specific patches, my gut feeling tells otherwise, it's based on that weird upstream build system entirely focused on building one of these "everything but the kitchen sink" packages targeting Linux. But of course, you can try anyways. I'll probably start with a patch I had to add to liblinphone, because this one fixes an actual error independent of the target platform. Just to test the waters over there. Created attachment 235398 [details]
0001-net-linphone-Fix-build-when-git-is-installed
Attached patch (git-am format) fixes the build when git is installed by excluding another subdirectory that would try to call git. It's not used for the build, so the outcome is the same.
Just to be sure:
* tested functionality on 13.1-amd64 again
* repeated pd testport builds on 14-amd64 and 12.3-i386
I'll also take maintainership...
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=b33f52777941c891b928a9dde7cb3aa8fa0209e6 commit b33f52777941c891b928a9dde7cb3aa8fa0209e6 Author: Felix Palmen <felix@palmen-it.de> AuthorDate: 2022-07-20 17:47:00 +0000 Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org> CommitDate: 2022-07-26 14:31:44 +0000 net/linphone: Fix build when git is installed * The upstream build includes a subdirectory that attempts to call git, expecting the source to be a git clone, so the build failed on a system that has git installed. Just exclude this subdirectory, as it's not used to build linphone itself (and therefore doesn't affect the outcome), patch suggested by hselasky in D35805. * Take maintainership. PR: 264734 net/linphone/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Just reinstalled Linphone from packages, it reports lots of missing symbols, see below. It worked well a couple of months ago. rz@butterfly:~ % uname -a FreeBSD butterfly 13.1-RELEASE-p1 FreeBSD 13.1-RELEASE-p1 GENERIC amd64 rz@butterfly:~ % pkg info linphone linphone-4.4.8_1,1 Name : linphone Version : 4.4.8_1,1 Installed on : Tue Aug 23 19:18:46 2022 +05 ... rz@butterfly:~ % pkg info liblinphone liblinphone-5.1.32_1 Name : liblinphone Version : 5.1.32_1 Installed on : Tue Aug 23 19:18:45 2022 +05 belle-sip-5.1.32_1 SIP (RFC 3261) implementation written in C rz@butterfly:~ % pkg info belle-sip-5.1.32_1 belle-sip-5.1.32_1 Name : belle-sip Version : 5.1.32_1 Installed on : Tue Aug 23 19:04:38 2022 +05 rz@butterfly:~ % linphone [19:26:58:255][0x81366e020][Info]"Starting Linphone (bin: linphone)" [19:26:58:257][0x81366e020][Info]"Use locale: en" [19:26:58:308][0x81366e020][Info]Available fonts : ... [19:20:35:711][0x81366e020][Info]"Running app..." [19:20:35:764][0x81366e020][Info]"Activated selectors:" ("custom", "C", "unix", "freebsd", "freebsd") [19:20:35:765][0x81366e020][Info]"Registering types..." [19:20:35:765][0x81366e020][Info]"Registering shared types..." [19:20:35:766][0x81366e020][Info]"Registering tool types..." [19:20:35:766][0x81366e020][Info]"Registering shared tool types..." [19:20:35:911][0x81366e020][Info]"Loading main view..." [19:20:36:081][0x81366e020][Info]"Launch async core creation." ld-elf.so.1: /usr/local/lib/liblinphone.so.10: Undefined symbol "_ZN4belr13GrammarLoader3getEv" Port net/liphone does not build at all: ld: error: undefined symbol: belcard::BelCard::getPhotos() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(removeBelcardPhoto(std::__1::shared_ptr<belcard::BelCard> const&, bool)) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAvatar() const) ld: error: undefined symbol: belcard::BelCard::removePhoto(std::__1::shared_ptr<belcard::BelCardPhoto> const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(removeBelcardPhoto(std::__1::shared_ptr<belcard::BelCard> const&, bool)) ld: error: undefined symbol: belcard::BelCardPhoto::BelCardPhoto() >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setAvatar(QString const&)) ld: error: undefined symbol: belcard::BelCard::addPhoto(std::__1::shared_ptr<belcard::BelCardPhoto> const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setAvatar(QString const&)) ld: error: undefined symbol: belcard::BelCard::getAddresses() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAddress() const) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(getOrCreateBelCardAddress(std::__1::shared_ptr<belcard::BelCard>)) ld: error: undefined symbol: belcard::BelCardAddress::getStreet() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAddress() const) ld: error: undefined symbol: belcard::BelCardAddress::getLocality() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAddress() const) ld: error: undefined symbol: belcard::BelCardAddress::getPostalCode() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAddress() const) ld: error: undefined symbol: belcard::BelCardAddress::getCountry() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getAddress() const) ld: error: undefined symbol: belcard::BelCardAddress::setStreet(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setStreet(QString const&)) ld: error: undefined symbol: belcard::BelCardAddress::BelCardAddress() >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(getOrCreateBelCardAddress(std::__1::shared_ptr<belcard::BelCard>)) ld: error: undefined symbol: belcard::BelCard::addAddress(std::__1::shared_ptr<belcard::BelCardAddress> const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(getOrCreateBelCardAddress(std::__1::shared_ptr<belcard::BelCard>)) ld: error: undefined symbol: belcard::BelCardAddress::setLocality(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setLocality(QString const&)) ld: error: undefined symbol: belcard::BelCardAddress::setPostalCode(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setPostalCode(QString const&)) ld: error: undefined symbol: belcard::BelCardAddress::setCountry(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::setCountry(QString const&)) ld: error: undefined symbol: belcard::BelCard::getImpp() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getSipAddresses() const) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::addSipAddress(QString const&)) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::removeSipAddress(QString const&)) ld: error: undefined symbol: belcard::BelCardImpp::BelCardImpp() >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::addSipAddress(QString const&)) ld: error: undefined symbol: belcard::BelCard::addImpp(std::__1::shared_ptr<belcard::BelCardImpp> const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::addSipAddress(QString const&)) ld: error: undefined symbol: belcard::BelCard::removeImpp(std::__1::shared_ptr<belcard::BelCardImpp> const&) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::removeSipAddress(QString const&)) ld: error: undefined symbol: belcard::BelCard::getRoles() const >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::getCompanies() const) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::addCompany(QString const&)) >>> referenced by VcardModel.cpp >>> CMakeFiles/app-library.dir/src/components/contact/VcardModel.cpp.o:(VcardModel::removeCompany(QString const&)) ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) c++: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. ===> Compilation failed unexpectedly. (In reply to Ruslan Zalata from comment #17) > ld-elf.so.1: /usr/local/lib/liblinphone.so.10: Undefined symbol > "_ZN4belr13GrammarLoader3getEv" This symbol is defined in libbelr.so.1 from textproc/belr. Maybe try "pkg upgrade -f". Just upgraded textproc/belr, now I get this: [19:48:09:635][0x81326e020][Info]"Running app..." [19:48:09:688][0x81326e020][Info]"Activated selectors:" ("custom", "C", "unix", "freebsd", "freebsd") [19:48:09:689][0x81326e020][Info]"Registering types..." [19:48:09:689][0x81326e020][Info]"Registering shared types..." [19:48:09:690][0x81326e020][Info]"Registering tool types..." [19:48:09:690][0x81326e020][Info]"Registering shared tool types..." [19:48:09:812][0x81326e020][Info]"Loading main view..." [19:48:09:955][0x81326e020][Info]"Launch async core creation." [19:48:10:018][0x81326e020][Info]Core is starting "Starting up" ld-elf.so.1: /usr/local/lib/libmediastreamer.so.11: Undefined symbol "bzrtp_initCache_lock" Seems like there's a mess in packages repo right now. Reinstalling net/mediastreamer does not help. rz@butterfly:~ % pkg info mediastreamer mediastreamer-5.1.43 Name : mediastreamer Version : 5.1.43 Installed on : Tue Aug 23 19:51:15 2022 +05 bzrtp_initCache_lock is defined in libbzrtp.so.0 from security/bzrtp. Please just try 'pkg upgrade -f'. If this doesn't help, try 'pkg update -f' first. It seems there is a "mess" on your local system, not in the repositories. I don't think I have a mess on my system: root@butterfly:/home/rz # pkg update -f Updating FreeBSD repository catalogue... Fetching meta.conf: 100% 163 B 0.2kB/s 00:01 Fetching packagesite.pkg: 100% 6 MiB 1.1MB/s 00:06 Processing entries: 100% FreeBSD repository update completed. 31818 packages processed. All repositories are up to date. I reinstalled a number of libs (bzrtp, et), now Linphone starts, but: 1. It shows windows that don't fit into the screen (Linphone wrongly detects screen size), windows are not resizable, so I cannot access its controls. 2. It does not recognize H264 codec any more. Mediastreamer and msopen264 packages are installed and up-to-date. (In reply to Ruslan Zalata from comment #22) > 1. It shows windows that don't fit into the screen (Linphone wrongly detects > screen size), windows are not resizable, so I cannot access its controls. I'm using linphone myself, my window is perfectly resizable. Could just be an issue with your window manager, I don't know. > 2. It does not recognize H264 codec any more. Mediastreamer and msopen264 > packages are installed and up-to-date. I never used this, so can't tell you anything about it. I still recommend you to do 'pkg upgrade -f', as there seem to be a lot of "unusual" problems on your system. If it still doesn't work as you expect, please open a new PR instead of adding posts to one with a completely different topic. |