Package Details: kimi-linphone-desktop 5.1.2-1

Git Clone URL: https://aur.archlinux.org/kimi-linphone-desktop.git (read-only, click to copy)
Package Base: kimi-linphone-desktop
Description: A free VoIP and video softphone based on the SIP protocol (Installed in /usr/local with all deps included).
Upstream URL: https://linphone.org
Licenses: GPL3
Provides: kimi-linphone-desktop
Submitter: leukimi
Maintainer: leukimi
Last Packager: leukimi
Votes: 0
Popularity: 0.000000
First Submitted: 2022-06-16 20:29 (UTC)
Last Updated: 2023-08-25 18:20 (UTC)

Latest Comments

leukimi commented on 2023-07-02 14:56 (UTC) (edited on 2023-07-02 15:08 (UTC) by leukimi)

Summary

More advanced packagers are making Linphone compile under the name linphone-desktop.

Here are some things about PKGBUILD from kimi-linphone-desktop.

kimi-linphone-desktop and the now deleted kimi-linphone-desktop-beta could serve as a working prototype which has built Linphone since version 4.0.0 until now and most of the time it has compiled successfully.

The package kimi-linphone-desktop works and has worked since the version 4.0.0 with constant changes and updates. When it does not work it usually depends on that Linphone is primarily developed on a few systems like Fedora (current - 1) version (Fedora 37 currently), Debian 12/Unstable and Ubuntu LTS (22.04). Archlinux, Manjaro and OpenSUSE Tumbleweed are often ahead and the system package versions are newer than on Debian/Ubuntu which causes needs to patch the software and adapt the building scripts. Typical adjustments has in the past included gcc, cmake, ffmpeg, mbedtls, liboqs, libdecaf, postquantumcryptoengine (needed by bzrtp), zxing and so on.

Currently, the version of mbedtls is newer in Archlinux than the version anticipated by the software. Once the source code moves to the newer version of the library, Linphone will compile successfully again. It has happened before and will happen again that the source code seems to compile on Debian 12, Ubuntu 22.04/23.04, OpenSUSE Leap 15.4/15.5, Fedora (current - 1) meanwhile compilation crashes on the front edge development distributions Archlinux, Manjaro, OpenSUSE Tumbleweed and newest Fedora version. I have tested Linphone versions on window managers xfce, cinnamon, gnome, budgie, lxde, mate and there are usually variations in which dependencies that need to be explicitly stated. qt5-speech dependency is for instance a bit hidden but none of the window managers have it upon a fresh install.

kimi-linphone-desktop builds liblinphone mediastreamer2 etc. and therefore does not require liblinphone mediastreamer2 etc. as a dependency. It builds the whole package with dependencies according to the build instructions from github. To avoid conflicts with all other linphone packages, kimi-linphone-desktop is named to be distinguished and can be used to test multiple versions of the software without having to install/uninstall. The different versions of Linphone are installed side by side pretty much the same way you may want to have several versions of gcc installed simultaneously when resolving compilation issues. kimi-linphone-desktop-beta (now deleted as thought to be a duplicate) was capable of compiling whatever it would find on the linphone-desktop master branch without PKGBUILD having to be changed. Linphone from master branch can often have better functionality than a released version. A newer release can be worse than a previous release. kimi-linphone-desktop and kimi-linphone-desktop-beta was the first attempt to make Linphone compile whatsoever, no matter which version was built on whichever branch. The master branch produces releases, alpha and beta versions and you can never know what version is there. Also, when Linphone was 4.x.y-alpha/beta, the releases were too far behind and it was necessary to regularly compile the master branch. Now, the releases tend to come in shorter intervals. Everything has a history, and therefore the packaging has a history. When you request deletion of packages that actually work even if they currently don't compile due to source code glitches with the current system, you still have to reinvent the compilation wheel anyway and cater for the differences in the code versus the system it is being compiled on. kimi-linphone-desktop is the result of years of trial and error with compiling from source. Once all that knowledge is transferred into linphone-desktop package and it works, yes, then kimi-linphone-desktop may be obsolete.

Another approach to build linphone-desktop is to compile all modules/parts independently (link), or look here for more ideas (link).

Note on swap memory and building time on small build systems

The total system memory needed for compilation with 10 parallel builds tends to be around 5.3GB. With fewer parallel builds, the memory consumption is lower.

A 2GB to 3GB swap is often necessary on small build systems with 3-4GB memory.

This PKGBUILD was tested on a system with 3GB RAM + 3GB swap.

Building time was around 1 hour 25 minutes on dual core Intel Core2 Duo T7700.

Intel Core2 Duo T7700 bits: 64 
  Speed (MHz): avg: 1074 min/max: 800/2400 cores: 1: 1348 2: 800
Note on icon

Current linphone system tray icon seems to be the same as the orange program PNG icon. A separate system tray icon which is gray like other system tray icons would fit better in the panel and feel less intrusive, not drawing too much attention, especially at night time. The orange default program icon is quite bright, which could call for using a different icon with more non-intrusive coloring and a separate gray system tray icon.

It is possible to have a separate gray system tray icon. A patch can be found here.

The easiest way is to swap the linphone-app/assets/images/linphone_logo.svg

icon for a not so colorful SVG and call

linphone-app/assets/icons/genicons_1.1.sh

genicons_1.1.sh

to regenerate all PNG icons. The script requires inkscape to do the conversion.