packages icon indicating copy to clipboard operation
packages copied to clipboard

linphone-desktop: Add at 5.2.4

Open AlexanderZhirov opened this issue 1 year ago • 2 comments

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

AlexanderZhirov avatar Jun 18 '24 15:06 AlexanderZhirov

Marking this as draft, as the changes requested hasn't been addressed for quite some time

malfisya avatar Aug 02 '24 07:08 malfisya

@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.

AlexanderZhirov avatar Oct 02 '24 11:10 AlexanderZhirov

@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

AlexanderZhirov avatar Feb 03 '25 00:02 AlexanderZhirov

@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)

AlexanderZhirov avatar Feb 03 '25 00:02 AlexanderZhirov

@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?

AlexanderZhirov avatar Feb 03 '25 00:02 AlexanderZhirov

@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

AlexanderZhirov avatar Feb 03 '25 00:02 AlexanderZhirov

@EbonJaeger Alternatively, i can manually move all the linked libraries into the /usr/{bin,lib64} architecture to create a correct package.

AlexanderZhirov avatar Feb 03 '25 00:02 AlexanderZhirov

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 avatar Feb 03 '25 21:02 EbonJaeger

@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

AlexanderZhirov avatar Feb 03 '25 21:02 AlexanderZhirov

@EbonJaeger I'll try to build the packages now in the following order: bcunit -> bctoolbox -> linphone-desktop.

AlexanderZhirov avatar Feb 03 '25 21:02 AlexanderZhirov