Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 691640

Summary: net-voip/linphone-4.1.1 new package request
Product: Gentoo Linux Reporter: Michael <voron1>
Component: New packagesAssignee: Default Assignee for New Packages <maintainer-wanted>
Status: CONFIRMED ---    
Severity: normal CC: 5836000, bertrand, david, deviatov, gentoo, gentoo, harry.broeken, Jimmy.Jazz, Manfred.Knick, O01eg, olli, pacho, phantom4, pi314, powerman-asdf, skaumo, skruppy+gentoo, voron1
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=626420
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: linphone-desktop-4.1.1.99.ebuild
linphone-4.1.1-belle-sip.patch
ebuild for dev-python/javasphinx
dev-python/javasphinx-0.9.15 ebuild
dev-python/pystache/pystache-0.5.4.99 ebuild
dev-cpp/xsd ebuild
linphone-desktop.use
gcc-9.2_compat.patch
linphone-4.1.1-CMakefile.patch
gcc-9.2_compat.patch version 2
javalang-0.12.0.ebuild
sphinx-csharp-0.1.8.ebuild

Description Michael 2019-08-07 04:03:47 UTC
Since we don't seem to have a single up-to-date desktop SIP client in the tree anymore, I'd like to request re-adding of Linphone-4.1.1

https://gitlab.linphone.org/BC/public/linphone-desktop/tree/4.1.1
Comment 1 Andreas Sturmlechner gentoo-dev 2019-08-08 20:19:13 UTC
I don't want to spoil the fun, but this is going nowhere unless someone is willing to step up.
Comment 2 Michael 2019-08-08 20:24:00 UTC
Would it be enough if I write an ebuild?
Comment 3 Andreas Sturmlechner gentoo-dev 2019-08-10 16:58:32 UTC
If you not just write it, but are willing to maintain it, then you could submit a PR to the Gentoo GitHub mirror an apply for proxy-maintainership: 

https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers
https://wiki.gentoo.org/wiki/Gentoo_GitHub
Comment 4 Jimmy.Jazz 2019-08-15 16:29:59 UTC
Created attachment 586824 [details]
linphone-desktop-4.1.1.99.ebuild

Not tested.
Comment 5 Jimmy.Jazz 2019-08-15 16:30:31 UTC
Created attachment 586826 [details, diff]
linphone-4.1.1-belle-sip.patch
Comment 6 Mike Johnson 2019-10-18 20:16:23 UTC
Thanks Jimmy Jazz, wanted to do same, but you paved the way, and a much better job than I could have done.
Sorry to say though there are issues.  1st, dependency on javasphinx, at least in Funtoo it's not in the tree.  Attached ebuild solves that.
Then all goes well until the install phase, it wants to install bundled versions of mediastreamer and ortp.  Unfortunately there are no CMake directives to turn that off.  File collisions abort the install.
That's where I left off the other day, not giving up though, so close.
Comment 7 Mike Johnson 2019-10-18 20:18:52 UTC
Created attachment 593256 [details]
ebuild for dev-python/javasphinx
Comment 8 Jimmy.Jazz 2019-10-21 21:45:48 UTC
(In reply to Mike Johnson from comment #7)
> Created attachment 593256 [details]
> ebuild for dev-python/javasphinx

I'm using tardyp javasphinx instead.
I'll try to remember all the dependencies I had to use to make it compile.
An other was pystache
Comment 9 Jimmy.Jazz 2019-10-21 21:47:39 UTC
Created attachment 593586 [details]
dev-python/javasphinx-0.9.15 ebuild
Comment 10 Jimmy.Jazz 2019-10-21 21:52:53 UTC
Created attachment 593588 [details]
dev-python/pystache/pystache-0.5.4.99 ebuild
Comment 11 Jimmy.Jazz 2019-10-21 22:00:08 UTC
Created attachment 593590 [details]
dev-cpp/xsd ebuild
Comment 12 Jimmy.Jazz 2019-10-21 22:13:32 UTC
if you use fast-math, deactivate it: -fno-fast-math
Comment 13 Jimmy.Jazz 2019-10-21 22:29:40 UTC
(In reply to Jimmy.Jazz from comment #12)
> if you use fast-math, deactivate it: -fno-fast-math

The following flags were successful. The ebuild was not optimal and couldn't avoid all the bundles. That's why i'm using the git version. Perhaps this flags will avoid mediastreamer and ortp dependencies and use the bundles one.

USE="X aec alsa dbus ffmpeg g726 g729 gsm ilbc ipv6 nls pcap silk speex sqlite ssl theora tools upnp vcard video vpx x264 zlib -amr -bindist -bv16 -codec2 -debug -doc -ldap -libnotify -matroska2 -python -test" PYTHON_SINGLE_TARGET="python3_7 -pypy3" PYTHON_TARGETS="python3_7 -pypy3"
Comment 14 Mike Johnson 2019-10-22 00:09:01 UTC
I've successfully built it from git.  By success I mean it starts gui and all seems perfect, but I haven't tried calling yet.  My javasphinx ebuild works fine, haven't tried jimmy jazz's.  You also need qtquickcontrols AND qtquickcontrols2 (with USE=widgets I believe).  I'm attaching my linphone-desktop.use file and gcc-9.2_compat.patch which I think accomplishes all that jimmy jazz attempted to do with his sed statements.  I'm using USE=-ffmpeg because linphone bundle is same version, we'll see, still have use option.  Otherwise I mostly let it use it's bundled versions and run it with: LD_LIBRARY_PATH=<location of compiled bundled libs> linphone, putting the OUTPUT directories in /opt/linphone-desktop.
While linphone itself seems happy enough with python-3.7, it requires pystache which has only python-3.5 and python-3.6 targets, perhaps 1 or 2 others have same issue too.  Since I have another package or two that require python-3.5 I use that for the default, you'll see what I mean in the linphone-desktop.use file.
Now working on ebuild.
Comment 15 Mike Johnson 2019-10-22 00:11:15 UTC
Created attachment 593596 [details]
linphone-desktop.use
Comment 16 Mike Johnson 2019-10-22 00:11:58 UTC
Created attachment 593598 [details, diff]
gcc-9.2_compat.patch
Comment 17 Michael 2019-10-22 11:22:27 UTC
Another requirement is USE="qml" dev-qt/linguist-tools
Comment 18 Jimmy.Jazz 2019-10-22 20:32:59 UTC
Created attachment 593668 [details, diff]
linphone-4.1.1-CMakefile.patch

for dev-util/cmake-3.15.4
Comment 19 Mike Johnson 2019-10-23 09:21:19 UTC
I have updated the gcc-9.2_compat.patch.  With it I can compile all but a few options on the git source.  The few are: -DENABLE_DOC=ON -DENABLE_QRCODE=ON -DENABLE_MDNS=ON -DENABLE_JAVA_WRAPPER=ON.  I assume JAVA_WRAPPER is for android, and of course, I couldn't test any of the android options.  -DENABLE_DOC=ON complains about "can't find javasphinx", I tried using both my javasphinx ebuild and jimmy jazz's.  I wish to be complete, but I doubt that these will be a deal-breaker for anyone.
@Michael I tried USE="qml" on dev-qt/linguist-tools, I can't tell any difference.
@jimmy jazz I don't understand your cmake patch, everything here is working perfectly on the git compile, I've tested calling now and that works fine too.  It was a pleasant surprise that my old 3.6.1 .linphonerc file works as is.  Well it does have 1 minor issue, starting from the command line it prints a few complaints about not finding translations, and some screens show text that appears to be placeholder text to be replaced by "translation".  But it's quite useable.
The ebuild is another issue, main problem is it wants to link with system libs rather than bundled, I'll have to figure out how to defeat that.
Comment 20 Mike Johnson 2019-10-23 09:23:20 UTC
Created attachment 593688 [details, diff]
gcc-9.2_compat.patch version 2
Comment 21 Michael 2019-10-23 14:35:03 UTC
> @Michael I tried USE="qml" on dev-qt/linguist-tools, I can't tell any difference.

It's been a while, but I'm sure something didn't work without it. Probably i18n.
Comment 22 Jimmy.Jazz 2019-10-23 21:18:59 UTC
(In reply to Mike Johnson from comment #19)

> I don't understand your cmake patch, 

If I remember well check_symbol_exists is not known by default in cmake 3.15.4. Anyway it complains about the missing function when parsing linphone's CMakeLists.txt.
You will need that patch if you use the last cmake.
Comment 23 Mike Johnson 2019-10-26 01:09:46 UTC
Still issues with ebuild, but I wanted to note before I forgot that missing dependencies for -DENABLE_DOC were dev-python/beautifulsoup, dev-python/javalang and dev-python/sphinx-csharp.  The last two missing in tree, will attach ebuilds.  They are developer docs, normal users won't need them.
Comment 24 Mike Johnson 2019-10-26 01:14:04 UTC
Created attachment 593970 [details]
javalang-0.12.0.ebuild

only needed for USE="doc" on linphone-desktop ebuild
Comment 25 Mike Johnson 2019-10-26 01:14:59 UTC
Created attachment 593972 [details]
sphinx-csharp-0.1.8.ebuild

only needed for USE="doc" on linphone-desktop ebuild
Comment 26 Mike Johnson 2019-10-26 01:41:03 UTC
Oh, and dev-python sphinx is needed for -DENABLE_DOC also.  It brings in a fair amount of dependencies itself.
Comment 27 harry broeken 2020-01-06 14:17:21 UTC
As usual I have been trying to build linphone-desktop on my own; before checking bugzilla for an ebuild. Looks good.

Perhaps my notes are of some use:
I could build linphone-desktop with gcc 7.3.0
The same as the Cmakefile.patch; include(CheckSymbolExists)
Needed to emerge dev-qt/qtquickcontrols2; could be a needed dependency
Copied OUTPUT/desktop to /opt/linphone-desktop; the idea is that the linphone-desktop directory is self-contained, you can run linphone from that directory with /opt/linphone-desktop/bin/linphone.

Using the latter could be a solution for file-collisions etc.. For me it is an open question if this is a viable installation-option in accordance with our portage-way of doing things.

Keep-up the good work.

>>greetings<<
  Harry
Comment 28 Michael Behr 2020-02-11 20:27:44 UTC
Hi there and thank you for your work. the lack of a uptodate sip client is a real pain atm and i was very happy when i found this report. :)

I tried to emerge the provided ebuild, but unfortunately with no luck. After changing the python deps from 3.7 to 3.6, because: 

emerge --info | grep PYTHO
PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6"

, commenting out dev-python/javasphinx[${PYTHON_USEDEP}] and adding xsd, the emerge process runs without errors, but results in linephone not being installed:

locate linphone
/usr/local/portage/net-voip/linphone-desktop
/usr/local/portage/net-voip/linphone-desktop/Manifest
/usr/local/portage/net-voip/linphone-desktop/files
/usr/local/portage/net-voip/linphone-desktop/linphone-desktop-4.1.1.99.ebuild
/usr/local/portage/net-voip/linphone-desktop/files/linphone-4.1.1-belle-sip.patch/usr/share/doc/linphone-desktop-4.1.1.99
/usr/share/doc/linphone-desktop-4.1.1.99/CHANGELOG.md.bz2
/usr/share/doc/linphone-desktop-4.1.1.99/README.md.bz2


Did i miss something ? 
Thanks in advance
Michael
Comment 29 Andreas Sturmlechner gentoo-dev 2020-02-12 20:15:20 UTC
*** Bug 709420 has been marked as a duplicate of this bug. ***
Comment 30 Alex Efros 2020-02-19 19:29:19 UTC
Ebuild is outdated (especially related to python changes and probably included patches), miss some dependencies (like speexdsp), don't install main binary (because of some build errors I think) and don't stop on errors (which makes debugging hard).
Comment 31 Andreas Mair 2020-04-06 13:17:53 UTC
(In reply to Alex Efros from comment #30)
> Ebuild is outdated (especially related to python changes and probably
> included patches), miss some dependencies (like speexdsp), don't install
> main binary (because of some build errors I think) and don't stop on errors
> (which makes debugging hard).

You can add "keepwork" temporary to FEATURES in make.conf. Then it keeps the build folder and the build.log.
Comment 32 martin.schmidt13 2020-06-13 08:57:48 UTC
I'm not so experienced but i thought i should make this statement:

Perhaps we could get also little inspiration from the alpine people?

They've packaged v4.3.1 and their APKBUILD looks pretty much like our ebuilds :-)
https://git.alpinelinux.org/aports/tree/testing/linphone/APKBUILD

I think theire build is surprisingly clean and it looks like they need not so much stuff like:

javasphinx
javalang
pystache

and so on.

Is it possible to go theire way?

These are just me 2 cents...
Comment 33 Pacho Ramos gentoo-dev 2020-06-13 15:47:04 UTC
Probably rion overlay people would be easier to follow as they are doing the work to prepare it for gentoo :)
https://github.com/rion-overlay/rion-overlay
Comment 34 igel 2020-09-04 15:38:06 UTC
Rion dropped support for linphone for lack of motivation, referring to it as "garbage" ^^
It appears Alpine Linux has a working build script for 4.3: https://git.alpinelinux.org/aports/tree/testing/linphone/APKBUILD
dunno if that helps
Comment 35 martin.schmidt13 2020-09-12 08:03:41 UTC
Perhaps collaboration / pull requests on 
https://github.com/SpiderX/portage-overlay/tree/master/net-voip/linphone-desktop
is also useful... :-)
Comment 36 Manfred Knick 2021-04-06 10:36:47 UTC
CONFIRMATION

Today
- downloaded Linphone-4.2.5.AppImage
- into ~/bin
- chmod u+x ...
- ln -s Linphone-4.2.5.AppImage linphone.app

- calling linphone.app from commandline
- configured an existing SIP account

+ phone connection (to an other SIP physical phone) just *worked*.
Comment 37 Michael 'veremitz' Everitt 2021-04-06 16:35:07 UTC
(In reply to Manfred Knick from comment #36)
> CONFIRMATION
> 
> Today
> - downloaded Linphone-4.2.5.AppImage
> - into ~/bin
> - chmod u+x ...
> - ln -s Linphone-4.2.5.AppImage linphone.app
> 
> - calling linphone.app from commandline
> - configured an existing SIP account
> 
> + phone connection (to an other SIP physical phone) just *worked*.

An AppImage is effectively a binary container with all the libraries, etc needed to run an app. Therefore, if you cannot run an AppImage, there is a serious problem with the package upstream.

Since we build most software from sources in Gentoo (with the exception of '-bin' binary packages), this doesn't really tell us much.
Comment 38 Manfred Knick 2021-04-06 17:05:47 UTC
(In reply to Michael 'veremitz' Everitt from comment #37)
> (In reply to Manfred Knick from comment #36)
> > CONFIRMATION
> > 
> > Today
> > - downloaded Linphone-4.2.5.AppImage
> > - into ~/bin
> > - chmod u+x ...
> > - ln -s Linphone-4.2.5.AppImage linphone.app
> > 
> > - calling linphone.app from commandline
> > - configured an existing SIP account
> > 
> > + phone connection (to an other SIP physical phone) just *worked*.
> 
> An AppImage is effectively a binary container with all the libraries, etc
> needed to run an app. Therefore, if you cannot run an AppImage, there is a
> serious problem with the package upstream.
> 
> Since we build most software from sources in Gentoo (with the exception of
> '-bin' binary packages), this doesn't really tell us much.

Right, all of it.

It was just meant as a "quick and easy way to survive temporarily"
for people in need (out of whichever reasons).