packages
packages copied to clipboard
linphone-desktop: Add at 5.2.4
Summary Adding a free softphone Linphone Desktop for VoIP and video communication based on the SIP protocol
https://github.com/getsolus/packages/issues/2452
Test Plan
- The softphone was packed and installed
- Test calls were made via the Asterisk server
Checklist
- [X] Package was built and tested against unstable
Marking this as draft, as the changes requested hasn't been addressed for quite some time
@malfisya @EbonJaeger I apologize for the long wait. I will try to make corrections as soon as possible. Too much work, almost not enough time.
@EbonJaeger After executing these commands, the installation proceeds in the following manner.
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_UPDATE_CHECK=OFF \
-DCMAKE_BUILD_PARALLEL_LEVEL=$(nproc) \
-Wno-dev
cmake --build build --parallel $(nproc) --config Release
DESTDIR="./install" cmake --install build
$ tree -L 9 install/
install/
└── home
└── user
└── test
└── linphone-desktop
└── build
└── OUTPUT
├── bin
│ ├── cjpeg
│ ├── djpeg
│ ├── jpegtran
│ ├── linphone
│ └── qt.conf
├── cmake
│ ├── SOCI.cmake
│ └── SOCI-release.cmake
├── include
│ ├── bctoolbox
│ │ ├── charconv.h
│ │ ├── compiler.h
│ │ ├── crypto.h
│ │ ├── crypto.hh
│ │ ├── defs.h
│ │ ├── exception.hh
│ │ ├── list.h
│ │ ├── logging.h
│ │ ├── map.h
│ │ ├── ownership.hh
│ │ ├── param_string.h
│ │ ├── parser.h
│ │ ├── port.h
│ │ ├── regex.h
│ │ ├── tester.h
│ │ ├── utils.hh
│ │ ├── vconnect.h
│ │ ├── vfs_encrypted.hh
│ │ ├── vfs.h
│ │ └── vfs_standard.h
│ ├── BCUnit
│ │ ├── Automated.h
│ │ ├── Basic.h
│ │ ├── BCUnit.h
│ │ ├── BCUnit_intl.h
│ │ ├── Console.h
│ │ ├── CUError.h
│ │ ├── MyMem.h
│ │ ├── TestDB.h
│ │ ├── TestRun.h
│ │ └── Util.h
│ ├── belcard
│ │ ├── belcard_addressing.hpp
│ │ ├── belcard_calendar.hpp
│ │ ├── belcard_communication.hpp
│ │ ├── belcard_explanatory.hpp
│ │ ├── belcard_general.hpp
│ │ ├── belcard_generic.hpp
│ │ ├── belcard_geographical.hpp
│ │ ├── belcard.hpp
│ │ ├── belcard_identification.hpp
│ │ ├── belcard_organizational.hpp
│ │ ├── belcard_params.hpp
│ │ ├── belcard_parser.hpp
│ │ ├── belcard_property.hpp
│ │ ├── belcard_rfc6474.hpp
│ │ ├── belcard_security.hpp
│ │ ├── belcard_utils.hpp
│ │ └── vcard_grammar.hpp
│ ├── belle-sip
│ │ ├── auth-helper.h
│ │ ├── belle-sdp.h
│ │ ├── belle-sip.h
│ │ ├── bodyhandler.h
│ │ ├── defs.h
│ │ ├── dialog.h
│ │ ├── generic-uri.h
│ │ ├── headers.h
│ │ ├── http-listener.h
│ │ ├── http-message.h
│ │ ├── http-provider.h
│ │ ├── listener.h
│ │ ├── listeningpoint.h
│ │ ├── list.h
│ │ ├── mainloop.h
│ │ ├── mdns_register.h
│ │ ├── message.h
│ │ ├── object.h
│ │ ├── object++.hh
│ │ ├── parameters.h
│ │ ├── provider.h
│ │ ├── refresher.h
│ │ ├── resolver.h
│ │ ├── sipstack.h
│ │ ├── sip-uri.h
│ │ ├── transaction.h
│ │ ├── types.h
│ │ ├── utils.h
│ │ └── wakelock.h
│ ├── belr
│ │ ├── abnf.h
│ │ ├── belr.h
│ │ ├── grammarbuilder.h
│ │ └── parser.h
│ ├── bv16-floatingpoint
│ │ ├── bv16
│ │ └── bvcommon
│ ├── bzrtp
│ │ └── bzrtp.h
│ ├── corec
│ │ ├── array
│ │ ├── banned.h
│ │ ├── bcmatroska2_config.h
│ │ ├── confhelper.h
│ │ ├── corec.h
│ │ ├── err.h
│ │ ├── helper.h
│ │ ├── helpers
│ │ ├── memalloc.h
│ │ ├── memheap.h
│ │ ├── multithread
│ │ ├── node
│ │ ├── portab.h
│ │ └── str
│ ├── decaf
│ │ ├── decaf
│ │ ├── decaf.h
│ │ └── decaf.hxx
│ ├── ebml
│ │ ├── ebml.h
│ │ └── ebml_internal.h
│ ├── gsm
│ │ └── gsm.h
│ ├── include
│ │ └── LinphoneApp
│ ├── json
│ │ ├── allocator.h
│ │ ├── assertions.h
│ │ ├── config.h
│ │ ├── forwards.h
│ │ ├── json_features.h
│ │ ├── json.h
│ │ ├── reader.h
│ │ ├── value.h
│ │ ├── version.h
│ │ └── writer.h
│ ├── libxml2
│ │ └── libxml
│ ├── libyuv
│ │ ├── basic_types.h
│ │ ├── compare.h
│ │ ├── compare_row.h
│ │ ├── convert_argb.h
│ │ ├── convert_from_argb.h
│ │ ├── convert_from.h
│ │ ├── convert.h
│ │ ├── cpu_id.h
│ │ ├── macros_msa.h
│ │ ├── mjpeg_decoder.h
│ │ ├── planar_functions.h
│ │ ├── rotate_argb.h
│ │ ├── rotate.h
│ │ ├── rotate_row.h
│ │ ├── row.h
│ │ ├── scale_argb.h
│ │ ├── scale.h
│ │ ├── scale_row.h
│ │ ├── version.h
│ │ └── video_common.h
│ ├── libyuv.h
│ ├── lime
│ │ └── lime.hpp
│ ├── linphone
│ │ ├── account_creator.h
│ │ ├── account_creator_service.h
│ │ ├── api
│ │ ├── buffer.h
│ │ ├── callbacks.h
│ │ ├── call.h
│ │ ├── call_params.h
│ │ ├── call_stats.h
│ │ ├── chat.h
│ │ ├── conference.h
│ │ ├── contactprovider.h
│ │ ├── core.h
│ │ ├── core_utils.h
│ │ ├── defs.h
│ │ ├── enums
│ │ ├── error_info.h
│ │ ├── factory.h
│ │ ├── flexi-api-client.h
│ │ ├── friend.h
│ │ ├── friendlist.h
│ │ ├── headers.h
│ │ ├── im_encryption_engine.h
│ │ ├── im_notif_policy.h
│ │ ├── info_message.h
│ │ ├── linphonecore.h
│ │ ├── linphonecore_utils.h
│ │ ├── linphonefriend.h
│ │ ├── linphonepresence.h
│ │ ├── linphone_proxy_config.h
│ │ ├── linphone_tunnel.h
│ │ ├── logging.h
│ │ ├── lpconfig.h
│ │ ├── misc.h
│ │ ├── player.h
│ │ ├── presence.h
│ │ ├── proxy_config.h
│ │ ├── ringtoneplayer.h
│ │ ├── sipsetup.h
│ │ ├── tunnel.h
│ │ ├── types.h
│ │ ├── utils
│ │ ├── vcard.h
│ │ ├── video_definition.h
│ │ ├── wrapper_utils.h
│ │ └── xmlrpc.h
│ ├── linphone++
│ │ ├── account_creator.hh
│ │ ├── account_creator_listener.hh
│ │ ├── account.hh
│ │ ├── account_listener.hh
│ │ ├── account_params.hh
│ │ ├── address.hh
│ │ ├── alert.hh
│ │ ├── alert_listener.hh
│ │ ├── audio_device.hh
│ │ ├── auth_info.hh
│ │ ├── buffer.hh
│ │ ├── call.hh
│ │ ├── call_listener.hh
│ │ ├── call_log.hh
│ │ ├── call_params.hh
│ │ ├── call_stats.hh
│ │ ├── chat_message.hh
│ │ ├── chat_message_listener.hh
│ │ ├── chat_message_reaction.hh
│ │ ├── chat_room.hh
│ │ ├── chat_room_listener.hh
│ │ ├── chat_room_params.hh
│ │ ├── conference.hh
│ │ ├── conference_info.hh
│ │ ├── conference_listener.hh
│ │ ├── conference_params.hh
│ │ ├── conference_scheduler.hh
│ │ ├── conference_scheduler_listener.hh
│ │ ├── config.hh
│ │ ├── content.hh
│ │ ├── core.hh
│ │ ├── core_listener.hh
│ │ ├── dial_plan.hh
│ │ ├── dictionary.hh
│ │ ├── digest_authentication_policy.hh
│ │ ├── enums.hh
│ │ ├── error_info.hh
│ │ ├── event.hh
│ │ ├── event_listener.hh
│ │ ├── event_log.hh
│ │ ├── factory.hh
│ │ ├── friend.hh
│ │ ├── friend_listener.hh
│ │ ├── friend_list.hh
│ │ ├── friend_list_listener.hh
│ │ ├── friend_phone_number.hh
│ │ ├── headers.hh
│ │ ├── im_notif_policy.hh
│ │ ├── info_message.hh
│ │ ├── ldap.hh
│ │ ├── ldap_params.hh
│ │ ├── linphone.hh
│ │ ├── logging_service.hh
│ │ ├── logging_service_listener.hh
│ │ ├── magic_search.hh
│ │ ├── magic_search_listener.hh
│ │ ├── nat_policy.hh
│ │ ├── object.hh
│ │ ├── participant_device.hh
│ │ ├── participant_device_identity.hh
│ │ ├── participant_device_listener.hh
│ │ ├── participant.hh
│ │ ├── participant_imdn_state.hh
│ │ ├── participant_info.hh
│ │ ├── payload_type.hh
│ │ ├── player.hh
│ │ ├── player_listener.hh
│ │ ├── presence_activity.hh
│ │ ├── presence_model.hh
│ │ ├── presence_note.hh
│ │ ├── presence_person.hh
│ │ ├── presence_service.hh
│ │ ├── proxy_config.hh
│ │ ├── push_notification_config.hh
│ │ ├── push_notification_message.hh
│ │ ├── range.hh
│ │ ├── recorder.hh
│ │ ├── recorder_params.hh
│ │ ├── search_result.hh
│ │ ├── signal_information.hh
│ │ ├── transports.hh
│ │ ├── tunnel_config.hh
│ │ ├── tunnel.hh
│ │ ├── vcard.hh
│ │ ├── video_activation_policy.hh
│ │ ├── video_definition.hh
│ │ ├── video_source_descriptor.hh
│ │ ├── xml_rpc_request.hh
│ │ ├── xml_rpc_request_listener.hh
│ │ └── xml_rpc_session.hh
│ ├── matroska
│ │ ├── matroska.h
│ │ ├── matroska_internal.h
│ │ └── matroska_sem.h
│ ├── mbedtls
│ │ ├── aes.h
│ │ ├── aria.h
│ │ ├── asn1.h
│ │ ├── asn1write.h
│ │ ├── base64.h
│ │ ├── bignum.h
│ │ ├── build_info.h
│ │ ├── camellia.h
│ │ ├── ccm.h
│ │ ├── chacha20.h
│ │ ├── chachapoly.h
│ │ ├── check_config.h
│ │ ├── cipher.h
│ │ ├── cmac.h
│ │ ├── compat-2.x.h
│ │ ├── config_psa.h
│ │ ├── constant_time.h
│ │ ├── ctr_drbg.h
│ │ ├── debug.h
│ │ ├── des.h
│ │ ├── dhm.h
│ │ ├── ecdh.h
│ │ ├── ecdsa.h
│ │ ├── ecjpake.h
│ │ ├── ecp.h
│ │ ├── entropy.h
│ │ ├── error.h
│ │ ├── gcm.h
│ │ ├── hkdf.h
│ │ ├── hmac_drbg.h
│ │ ├── legacy_or_psa.h
│ │ ├── lms.h
│ │ ├── mbedtls_config.h
│ │ ├── md5.h
│ │ ├── md.h
│ │ ├── memory_buffer_alloc.h
│ │ ├── net_sockets.h
│ │ ├── nist_kw.h
│ │ ├── oid.h
│ │ ├── pem.h
│ │ ├── pkcs12.h
│ │ ├── pkcs5.h
│ │ ├── pkcs7.h
│ │ ├── pk.h
│ │ ├── platform.h
│ │ ├── platform_time.h
│ │ ├── platform_util.h
│ │ ├── poly1305.h
│ │ ├── private_access.h
│ │ ├── psa_util.h
│ │ ├── ripemd160.h
│ │ ├── rsa.h
│ │ ├── sha1.h
│ │ ├── sha256.h
│ │ ├── sha512.h
│ │ ├── ssl_cache.h
│ │ ├── ssl_ciphersuites.h
│ │ ├── ssl_cookie.h
│ │ ├── ssl.h
│ │ ├── ssl_ticket.h
│ │ ├── threading.h
│ │ ├── timing.h
│ │ ├── version.h
│ │ ├── x509_crl.h
│ │ ├── x509_crt.h
│ │ ├── x509_csr.h
│ │ └── x509.h
│ ├── mediastreamer2
│ │ ├── allfilters.h
│ │ ├── android_utils.h
│ │ ├── bitratecontrol.h
│ │ ├── bits_rw.h
│ │ ├── box-plot.h
│ │ ├── devices.h
│ │ ├── dsptools.h
│ │ ├── dtls_srtp.h
│ │ ├── dtmfgen.h
│ │ ├── flowcontrol.h
│ │ ├── formats.h
│ │ ├── ice.h
│ │ ├── mediastream.h
│ │ ├── msanalysedisplay.h
│ │ ├── msasync.h
│ │ ├── msaudiomixer.h
│ │ ├── mschanadapter.h
│ │ ├── mscodecutils.h
│ │ ├── mscommon.h
│ │ ├── msconference.h
│ │ ├── msequalizer.h
│ │ ├── mseventqueue.h
│ │ ├── msextdisplay.h
│ │ ├── msfactory.h
│ │ ├── msfileplayer.h
│ │ ├── msfilerec.h
│ │ ├── msfilter.h
│ │ ├── msgenericplc.h
│ │ ├── msinterfaces.h
│ │ ├── msitc.h
│ │ ├── msjava.h
│ │ ├── msjpegwriter.h
│ │ ├── msmediaplayer.h
│ │ ├── msmediarecorder.h
│ │ ├── msmire.h
│ │ ├── msogl_functions.h
│ │ ├── msogl.h
│ │ ├── mspcapfileplayer.h
│ │ ├── msqrcodereader.h
│ │ ├── msqueue.h
│ │ ├── msrtp.h
│ │ ├── msrtt4103.h
│ │ ├── mssndcard.h
│ │ ├── ms_srtp.h
│ │ ├── mstee.h
│ │ ├── msticker.h
│ │ ├── mstonedetector.h
│ │ ├── msudp.h
│ │ ├── msutils.h
│ │ ├── msv4l.h
│ │ ├── msvaddtx.h
│ │ ├── msvideo.h
│ │ ├── msvideoout.h
│ │ ├── msvideopresets.h
│ │ ├── msvideoqualitycontroller.h
│ │ ├── msvideorouter.h
│ │ ├── msvolume.h
│ │ ├── mswebcam.h
│ │ ├── qualityindicator.h
│ │ ├── rfc3984.h
│ │ ├── stun.h
│ │ ├── upnp_igd.h
│ │ ├── x11_helper.h
│ │ └── zrtp.h
│ ├── OpenGL
│ │ ├── angle_windowsstore.h
│ │ ├── EGL
│ │ ├── GLES2
│ │ ├── GLES3
│ │ ├── KHR
│ │ ├── LICENSE
│ │ └── README.md
│ ├── openldap
│ │ ├── lber.h
│ │ ├── lber_types.h
│ │ ├── ldap_cdefs.h
│ │ ├── ldap_features.h
│ │ ├── ldap.h
│ │ ├── ldap_schema.h
│ │ ├── ldap_utf8.h
│ │ ├── ldif.h
│ │ ├── openldap.h
│ │ └── slapi-plugin.h
│ ├── opus
│ │ ├── opus_custom.h
│ │ ├── opus_defines.h
│ │ ├── opus.h
│ │ ├── opus_multistream.h
│ │ ├── opus_projection.h
│ │ └── opus_types.h
│ ├── ortp
│ │ ├── event.h
│ │ ├── logging.h
│ │ ├── nack.h
│ │ ├── ortp.h
│ │ ├── payloadtype.h
│ │ ├── port.h
│ │ ├── rtcp.h
│ │ ├── rtp.h
│ │ ├── rtpprofile.h
│ │ ├── rtpsession.h
│ │ ├── rtpsignaltable.h
│ │ ├── sessionset.h
│ │ ├── str_utils.h
│ │ ├── telephonyevents.h
│ │ └── utils.h
│ ├── psa
│ │ ├── crypto_builtin_composites.h
│ │ ├── crypto_builtin_primitives.h
│ │ ├── crypto_compat.h
│ │ ├── crypto_config.h
│ │ ├── crypto_driver_common.h
│ │ ├── crypto_driver_contexts_composites.h
│ │ ├── crypto_driver_contexts_primitives.h
│ │ ├── crypto_extra.h
│ │ ├── crypto.h
│ │ ├── crypto_platform.h
│ │ ├── crypto_se_driver.h
│ │ ├── crypto_sizes.h
│ │ ├── crypto_struct.h
│ │ ├── crypto_types.h
│ │ └── crypto_values.h
│ ├── Qt5Keychain
│ │ ├── keychain.h
│ │ └── qkeychain_export.h
│ ├── soci
│ │ ├── backend-loader.h
│ │ ├── bind-values.h
│ │ ├── blob-exchange.h
│ │ ├── blob.h
│ │ ├── boost-fusion.h
│ │ ├── boost-gregorian-date.h
│ │ ├── boost-optional.h
│ │ ├── boost-tuple.h
│ │ ├── callbacks.h
│ │ ├── column-info.h
│ │ ├── connection-parameters.h
│ │ ├── connection-pool.h
│ │ ├── error.h
│ │ ├── exchange-traits.h
│ │ ├── into.h
│ │ ├── into-type.h
│ │ ├── logger.h
│ │ ├── noreturn.h
│ │ ├── once-temp-type.h
│ │ ├── prepare-temp-type.h
│ │ ├── procedure.h
│ │ ├── query_transformation.h
│ │ ├── ref-counted-prepare-info.h
│ │ ├── ref-counted-statement.h
│ │ ├── row-exchange.h
│ │ ├── row.h
│ │ ├── rowid-exchange.h
│ │ ├── rowid.h
│ │ ├── rowset.h
│ │ ├── session.h
│ │ ├── soci-backend.h
│ │ ├── soci-config.h
│ │ ├── soci.h
│ │ ├── soci-platform.h
│ │ ├── soci-simple.h
│ │ ├── sqlite3
│ │ ├── statement.h
│ │ ├── transaction.h
│ │ ├── type-conversion.h
│ │ ├── type-conversion-traits.h
│ │ ├── type-holder.h
│ │ ├── type-ptr.h
│ │ ├── type-wrappers.h
│ │ ├── unsigned-types.h
│ │ ├── use.h
│ │ ├── use-type.h
│ │ ├── values-exchange.h
│ │ ├── values.h
│ │ └── version.h
│ ├── speex
│ │ ├── speex_bits.h
│ │ ├── speex_buffer.h
│ │ ├── speex_callbacks.h
│ │ ├── speex_config_types.h
│ │ ├── speex_echo.h
│ │ ├── speex.h
│ │ ├── speex_header.h
│ │ ├── speex_jitter.h
│ │ ├── speex_preprocess.h
│ │ ├── speex_resampler.h
│ │ ├── speex_stereo.h
│ │ └── speex_types.h
│ ├── sqlite3ext.h
│ ├── sqlite3.h
│ ├── srtp2
│ │ ├── auth.h
│ │ ├── cipher.h
│ │ ├── crypto_types.h
│ │ └── srtp.h
│ ├── turbojpeg
│ │ ├── jconfig.h
│ │ ├── jerror.h
│ │ ├── jmorecfg.h
│ │ ├── jpeglib.h
│ │ └── turbojpeg.h
│ ├── xercesc
│ │ ├── dom
│ │ ├── framework
│ │ ├── internal
│ │ ├── parsers
│ │ ├── sax
│ │ ├── sax2
│ │ ├── util
│ │ ├── validators
│ │ └── xinclude
│ ├── zconf.h
│ └── zlib.h
├── lib
│ └── cmake
│ └── libSRTP
├── lib64
│ ├── cmake
│ │ ├── BelleSIP
│ │ ├── Belr
│ │ ├── jsoncpp
│ │ ├── OpenLDAP
│ │ ├── Opus
│ │ ├── Qt5Keychain
│ │ └── TurboJpeg
│ ├── libapp-plugin.so
│ ├── libbcmatroska2.a
│ ├── libbctoolbox.so -> libbctoolbox.so.1
│ ├── libbctoolbox.so.1
│ ├── libbctoolbox-tester.so -> libbctoolbox-tester.so.1
│ ├── libbctoolbox-tester.so.1
│ ├── libbcunit.so -> libbcunit.so.1.0.1
│ ├── libbcunit.so.1.0.1
│ ├── libbelcard.so -> libbelcard.so.1
│ ├── libbelcard.so.1
│ ├── libbelle-sip.so -> libbelle-sip.so.1
│ ├── libbelle-sip.so.1
│ ├── libbelr.so -> libbelr.so.1
│ ├── libbelr.so.1
│ ├── libbv16.so
│ ├── libbzrtp.so -> libbzrtp.so.0
│ ├── libbzrtp.so.0
│ ├── libdecaf.so -> libdecaf.so.0
│ ├── libdecaf.so.0
│ ├── libgsm.so
│ ├── libISpell.so
│ ├── libjpeg.so -> libjpeg.so.62
│ ├── libjpeg.so.62 -> libjpeg.so.62.4.0
│ ├── libjpeg.so.62.4.0
│ ├── libjsoncpp.so -> libjsoncpp.so.24
│ ├── libjsoncpp.so.1.9.4
│ ├── libjsoncpp.so.24 -> libjsoncpp.so.1.9.4
│ ├── liblber.so -> liblber.so.2
│ ├── liblber.so.2 -> liblber.so.2.0.200
│ ├── liblber.so.2.0.200
│ ├── libldap.so -> libldap.so.2
│ ├── libldap.so.2 -> libldap.so.2.0.200
│ ├── libldap.so.2.0.200
│ ├── liblime.so -> liblime.so.0
│ ├── liblime.so.0
│ ├── liblinphone
│ │ └── plugins
│ ├── liblinphone++.so -> liblinphone++.so.10
│ ├── liblinphone.so -> liblinphone.so.10
│ ├── liblinphone++.so.10
│ ├── liblinphone.so.10
│ ├── libmbedcrypto.so -> libmbedcrypto.so.14
│ ├── libmbedcrypto.so.14 -> libmbedcrypto.so.3.4.0
│ ├── libmbedcrypto.so.3.4.0
│ ├── libmbedtls.so -> libmbedtls.so.19
│ ├── libmbedtls.so.19 -> libmbedtls.so.3.4.0
│ ├── libmbedtls.so.3.4.0
│ ├── libmbedx509.so -> libmbedx509.so.5
│ ├── libmbedx509.so.3.4.0
│ ├── libmbedx509.so.5 -> libmbedx509.so.3.4.0
│ ├── libmediastreamer2.so
│ ├── libopus.so -> libopus.so.0
│ ├── libopus.so.0 -> libopus.so.0.8.0
│ ├── libopus.so.0.8.0
│ ├── libortp.so -> libortp.so.15
│ ├── libortp.so.15
│ ├── libQt5Keychain.so -> libQt5Keychain.so.1
│ ├── libQt5Keychain.so.0.13.99
│ ├── libQt5Keychain.so.1 -> libQt5Keychain.so.0.13.99
│ ├── libsoci_core.so -> libsoci_core.so.4.0
│ ├── libsoci_core.so.4.0 -> libsoci_core.so.4.0.0
│ ├── libsoci_core.so.4.0.0
│ ├── libsoci_sqlite3.so -> libsoci_sqlite3.so.4.0
│ ├── libsoci_sqlite3.so.4.0 -> libsoci_sqlite3.so.4.0.0
│ ├── libsoci_sqlite3.so.4.0.0
│ ├── libspeexdsp.so -> libspeexdsp.so.6
│ ├── libspeexdsp.so.6
│ ├── libspeex.so -> libspeex.so.6
│ ├── libspeex.so.6
│ ├── libsqlite3.so
│ ├── libsrtp2.so -> libsrtp2.so.5.3.72
│ ├── libsrtp2.so.5.3.72
│ ├── libturbojpeg.so -> libturbojpeg.so.0
│ ├── libturbojpeg.so.0 -> libturbojpeg.so.0.3.0
│ ├── libturbojpeg.so.0.3.0
│ ├── libxerces-c.so
│ ├── libxml2.so -> libxml2.so.2
│ ├── libxml2.so.2
│ ├── libyuv.so
│ ├── libz.so -> libz.so.1
│ ├── libz.so.1 -> libz.so.1.2.13
│ ├── libz.so.1.2.13
│ ├── mediastreamer
│ │ └── plugins
│ └── pkgconfig
│ ├── bctoolbox.pc
│ ├── bctoolbox-tester.pc
│ ├── bcunit.pc
│ ├── belle-sip.pc
│ ├── libjpeg.pc
│ ├── libturbojpeg.pc
│ ├── opus.pc
│ ├── ortp.pc
│ ├── speexdsp.pc
│ └── speex.pc
├── mkspecs
│ └── modules
│ └── qt_Qt5Keychain.pri
└── share
├── applications
│ └── linphone.desktop
├── BCMatroska2
│ └── cmake
├── BCToolbox
│ └── cmake
├── BCUnit
│ ├── BCUnit-List.dtd
│ ├── BCUnit-List.xsl
│ ├── BCUnit-Run.dtd
│ ├── BCUnit-Run.xsl
│ ├── cmake
│ ├── Memory-Dump.dtd
│ └── Memory-Dump.xsl
├── BelCard
│ └── cmake
├── belr
│ └── grammars
├── BV16
│ └── cmake
├── BZRTP
│ └── cmake
├── decaf
│ └── cmake
├── doc
│ ├── linphoneqt
│ └── ortp-5.3.0
├── GSM
│ └── cmake
├── icons
│ └── hicolor
├── images
│ └── nowebcamCIF.jpg
├── libjpeg-turbo
│ └── cmake
├── LibLinphone
│ └── cmake
├── Lime
│ └── cmake
├── linphone
│ ├── assistant
│ ├── ispell_dictionaries
│ ├── linphonerc-factory
│ └── rootca.pem
├── LinphoneCxx
│ └── cmake
├── mbedtls
│ ├── MbedTLSTargets.cmake
│ └── MbedTLSTargets-release.cmake
├── Mediastreamer2
│ └── cmake
├── Ortp
│ └── cmake
├── Qt5Keychain
│ └── translations
├── sounds
│ └── linphone
├── Speex
│ └── cmake
├── SpeexDsp
│ └── cmake
├── SQLITE3
│ └── cmake
├── xerces-c
│ └── cmake
├── XML2
│ └── cmake
├── YUV
│ └── cmake
└── zlib
└── cmake
@EbonJaeger And the installed binary file has relative paths.
$ ldd install/home/user/test/linphone-desktop/build/OUTPUT/bin/linphone
linux-vdso.so.1 (0x00007fa25803e000)
libQt5Keychain.so.1 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libQt5Keychain.so.1 (0x00007fa25800c000)
libISpell.so => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libISpell.so (0x00007fa257fc4000)
libQt5TextToSpeech.so.5 => /usr/lib/libQt5TextToSpeech.so.5 (0x00007fa257f9e000)
libapp-plugin.so => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libapp-plugin.so (0x00007fa257f83000)
libQt5DBus.so.5 => /usr/lib/libQt5DBus.so.5 (0x00007fa257ef8000)
liblinphone++.so.10 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/liblinphone++.so.10 (0x00007fa2574af000)
liblinphone.so.10 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/liblinphone.so.10 (0x00007fa256a00000)
libmediastreamer2.so => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libmediastreamer2.so (0x00007fa255e00000)
libbelcard.so.1 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libbelcard.so.1 (0x00007fa2568b2000)
libortp.so.15 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libortp.so.15 (0x00007fa257eb2000)
libxml2.so.2 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libxml2.so.2 (0x00007fa255cc1000)
liblime.so.0 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/liblime.so.0 (0x00007fa25740c000)
libjsoncpp.so.24 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libjsoncpp.so.24 (0x00007fa257e74000)
libsqlite3.so => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libsqlite3.so (0x00007fa255b64000)
libbelle-sip.so.1 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libbelle-sip.so.1 (0x00007fa255600000)
libbelr.so.1 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libbelr.so.1 (0x00007fa256845000)
libbctoolbox.so.1 => /home/user/test/linphone-desktop/install/home/user/test/linphone-desktop/build/OUTPUT/bin/../lib64/libbctoolbox.so.1 (0x00007fa255af7000)
libQt5QuickControls2.so.5 => /usr/lib/libQt5QuickControls2.so.5 (0x00007fa255ac5000)
libQt5Quick.so.5 => /usr/lib/libQt5Quick.so.5 (0x00007fa255000000)
libQt5QmlModels.so.5 => /usr/lib/libQt5QmlModels.so.5 (0x00007fa255a49000)
libQt5Svg.so.5 => /usr/lib/libQt5Svg.so.5 (0x00007fa2559f5000)
libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007fa254800000)
libQt5Concurrent.so.5 => /usr/lib/libQt5Concurrent.so.5 (0x00007fa257e68000)
libQt5Test.so.5 => /usr/lib/libQt5Test.so.5 (0x00007fa2555b0000)
libQt5Qml.so.5 => /usr/lib/libQt5Qml.so.5 (0x00007fa254200000)
libQt5Multimedia.so.5 => /usr/lib/libQt5Multimedia.so.5 (0x00007fa254f18000)
libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007fa253a00000)
libQt5Network.so.5 => /usr/lib/libQt5Network.so.5 (0x00007fa254674000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fa253400000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fa253000000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fa254111000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa2559c2000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fa252c00000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007fa25556d000)
libxerces-c.so => not found
libbzrtp.so.0 => not found
libz.so.1 => /usr/lib/libz.so.1 (0x00007fa255546000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fa258040000)
libsoci_sqlite3.so.4.0 => not found
libsoci_core.so.4.0 => not found
libldap.so.2 => not found
liblber.so.2 => not found
libpulse.so.0 => /usr/lib/libpulse.so.0 (0x00007fa255500000)
libv4l2.so.0 => /usr/lib/libv4l2.so.0 (0x00007fa254f07000)
libv4lconvert.so.0 => /usr/lib/libv4lconvert.so.0 (0x00007fa254e7c000)
libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007fa254642000)
libGLEW.so.2.2 => /usr/lib/libGLEW.so.2.2 (0x00007fa25331f000)
libvpx.so.7 => /home/user/test/linphone-desktop/build/OUTPUT/lib64/libvpx.so.7 (0x00007fa252f46000)
libyuv.so => not found
libgsm.so => /usr/lib/libgsm.so (0x00007fa254e6d000)
libsrtp2.so.5.3.72 => not found
libopus.so.0 => /usr/lib/libopus.so.0 (0x00007fa25409d000)
libspeex.so.6 => not found
libspeexdsp.so.6 => not found
libbv16.so => not found
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fa252a80000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fa254085000)
libbzrtp.so.0 => not found
libOpenGL.so.0 => /usr/lib/libOpenGL.so.0 (0x00007fa2539da000)
libturbojpeg.so.0 => /usr/lib/libturbojpeg.so.0 (0x00007fa252e7c000)
libjpeg.so.62 => not found
libmbedtls.so.19 => not found
libmbedx509.so.5 => not found
libmbedcrypto.so.14 => not found
libsoci_sqlite3.so.4.0 => not found
libsoci_core.so.4.0 => not found
libmbedtls.so.19 => not found
libmbedx509.so.5 => not found
libmbedcrypto.so.14 => not found
libdecaf.so.0 => not found
libQt5QuickTemplates2.so.5 => /usr/lib/libQt5QuickTemplates2.so.5 (0x00007fa252903000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007fa2532ac000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fa25399d000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fa2527e3000)
libssl.so.3 => /usr/lib/libssl.so.3 (0x00007fa2526f9000)
libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007fa252200000)
libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007fa25214d000)
libicui18n.so.75 => /usr/lib/libicui18n.so.75 (0x00007fa251c00000)
libicuuc.so.75 => /usr/lib/libicuuc.so.75 (0x00007fa251a09000)
libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007fa252092000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007fa251fbe000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fa251876000)
libpulsecommon-17.0.so => /usr/lib64/pulseaudio/libpulsecommon-17.0.so (0x00007fa251807000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007fa251771000)
libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007fa2516f7000)
libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007fa252e66000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fa252e38000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fa251603000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fa252e15000)
libcap.so.2 => /usr/lib/libcap.so.2 (0x00007fa254636000)
libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007fa2514a4000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fa251f91000)
libicudata.so.75 => /usr/lib/libicudata.so.75 (0x00007fa24f600000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007fa2513d6000)
libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007fa24f571000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fa2559b5000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fa2554f7000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fa2513b5000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007fa2526ea000)
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007fa25138c000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007fa251f85000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007fa24f4d4000)
libFLAC.so.12 => /usr/lib/libFLAC.so.12 (0x00007fa24f486000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007fa251356000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007fa24f462000)
libmvec.so.1 => /usr/lib/libmvec.so.1 (0x00007fa24f369000)
@EbonJaeger Therefore, in Arch Linux, the installation is done in the /opt directory. Can we perform this installation in /usr/share/linphone to make it similarly isolated from the system?
@EbonJaeger Therefore, to run the executable file, additional linking with internal libraries is used via:
LD_LIBRARY_PATH="/opt/linphone/lib64:$LD_LIBRARY_PATH" /opt/linphone/bin/linphone "$@"
This ensures that the executable can find and use the libraries located in /opt/linphone/lib64
@EbonJaeger Alternatively, i can manually move all the linked libraries into the /usr/{bin,lib64} architecture to create a correct package.
Do we need to build the linphone-sdk target? If we can get away with not building it (by passing -DLINPHONE_QT_ONLY to cmake during configure), then we don't have to deal with any of the bundled dependencies, and we can use the release tarball instead of a git tag.
That does mean that we will also have to package one of the dependencies separately: bctoolbox
Otherwise, it looks like we'd have to patch their build system quite a bit to make sure it uses system libraries and not the vendored ones.
The AUR build example is not a good one, and they probably shouldn't be doing it the way they're doing it, either. We have build macros that takes care of doing the build and install steps.
@EbonJaeger I think they are organizing their tools into separate packages. Something similar to what was done in Debian https://packages.debian.org/ru/bullseye/linphone-desktop
@EbonJaeger I'll try to build the packages now in the following order: bcunit -> bctoolbox -> linphone-desktop.