New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linphone: 3.12.0 -> unstable-2020-03-06 #82939
Conversation
b2cd560
to
109e982
Compare
I'm having some problems compiling
Gives the following output:
The relevant lines:
Somehow the builder doesn't seem to find stuff from |
Do you, the maintainer Raskin @7c6f434c , have any insight on building bctoolbox? |
Not really as I now have to use web-based chat applications, and this is a different version from what I have ever touched… it seems to offer another The missing function seems to have been added a year after that latest release of |
@7c6f434c Thanks, that indeed was the problem! I switched to unstable version of bcunit and now bctoolbox builds fine. 👍 |
109e982
to
d400936
Compare
Ok, I suppose I got all the dependencies updated and added. At least they all build up to liblinphone. Now, just linphone (i.e., linphone-desktop) remains. That's probably quite a beast.. With the current state I'm getting the following error:
Perhaps the default CMake build in nixpkgs doesn't work here and I should use these steps: https://gitlab.linphone.org/BC/public/linphone-desktop#building Not quite sure how to do it.. Any ideas appreciated! 🙂 |
Does |
Ah, true, it's |
d400936
to
e21e203
Compare
Some progress but got stuck now. The current state of this PR fails with errors I reported upstream: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 (Got past the first issue, now stuck on second failure that is shown in the first comment.) Probably it's just me doing something wrong but can't again figure out what it is.. |
Maybe a fresher and unreleased version of liblinphone is needed by linphone-desktop? Didn't check any details. |
Thanks again! Using master branch for liblinphone resulted in a chain reaction that I needed to use the master branch for four other linphone-related packages, but then I got past those errors I had. Yey! Now I'm just wondering if it's ok to use unstable versions for all these packages (linphone, liblinphone, belr, belle-sip, mediastreamer and ortp) in nixpkgs. It seems to me like the easiest route now. So I guess that's ok. (I'll clean the fixup and squash commits before this is merged.) Now the build process has some problems with Minizip:
That's looks really weird.. I don't even understand why it tries to make minizip because before these lines it has said that minizip found. Well, if I remove this line from the cmake file, the build process doesn't stop here anymore: https://gitlab.linphone.org/BC/public/linphone-desktop/blob/master/CMakeLists.txt#L520 But then it fails at the very final steps when inking of Minizip to Linphone executable:
I'm not quite sure why this happens because I have Minizip in One option could be to let linphone build its own minizip. Hmm.. |
I think it is OK to use unstable versions for Linphone, but as I remember one of these packages had an external reverse-dependency in Nixpkgs that should probably still get a stable version. Having two versions with a comment about the latest release of Linphone sounds fine, though. Re: vendored minizip — well, how long does minizip take to build… on another note, maybe now minizip is too old for some dependency of Linphone? |
Oh, just FYI, I figured out how to patch the cmake file to make minizip linking work. Still some other failures at the very end of the whole build process, but they don't seem overwhelming. |
Nope, not able to figure this out yet..
That directory it cannot find is just messed up.. It's a combination of two absolute paths. I haven't been able to figure out yet what flags should I pass to make it work. I tried patching some cmake files too but couldn't make it work. I'm not sure if this phase should install the files under EDIT: I'll continue tomorrow... |
pkgs/applications/networking/instant-messengers/linphone/default.nix
Outdated
Show resolved
Hide resolved
I mean, there is always the Brute Force Way of creating a symlink to |
I got the install phase working by writing my own install phase which just picks some files and copies them under Now, running the compiled linphone produces:
I then tried just creating empty (Also, need to fix the path in the resulting linphone.desktop file as it points to the executable under the build directory - I thought nix builder automatically fixes these..) |
I am a bit afraid that it wants a link to the library's lib directory. (Also, if you do the horrible hack of a nix symlink, does this create any lib directory?) |
I'd still like to make the following change: Add |
Or actually, maybe I'll implement something similar as |
If disabling H.264 requires a rebuild of the main package, what is the benefit in comparison to just overriding |
I ended up doing the plugin support similarly as it was before because the plugin directory needs to be set by environment variables and this needs to be set by wrapping the executables that use the library, the library cannot be wrapped. With these fixup commits, openh264 plugin should be enabled for Linphone. However, I'm not sure how this should affect anything.. Video codecs in preferences still look as follows: H264 is disabled. If I try to enable it, I get pop up asking: "Do you want to download H264 (Provided by CISCO SYSTEM,INC)?" So, I'm not sure if that mediastreamer plugin is even supposed to enable H264 for Linphone or is some other package by Cisco needed anyway.. But then, what is the purpose of the plugin...?? |
a0ad797
to
e788651
Compare
Things done now:
So, I think this is ready. |
Re: Cisco — it is a US story. There are MPEG patents covering H.264, and of course large communication players like Cisco need to be offered an «unlimited and unreported number of devices» license or they will tank the format. Cisco ended up deciding that if they have to pay for that patent license, they can as well provide binaries covered by this license to anyone who asks. These must be downloaded as binary dynamic libraries to be covered under Cisco's license from MPEG-LA, but Cisco also provides the source code under BSD copyright license with (as far as I remember) bit-perfect build reproducibility. |
Hmm, and if someone in US wants to go the Cisco-provided way, it is nontrivial right now, right? Just overriding some inputs to |
Downloading the Cisco file ( |
No idea, well we can wait for some user from US submitting a patch, I guess. |
e788651
to
86a012b
Compare
@7c6f434c Thanks a lot for your help with this PR!! 👌 |
I did not do anything and spent no effort beyond proofreading a couple of times just in case, only shared the memories of someone who has touched this — and similar packages — some time ago. Thank you for doing a lot of great (and documented in code comments with impressive attention to details) work here. |
Motivation for this change
Update Linphone as it has seen significant upgrades since 3.12.0.
IIUC, it has split into some library packages, so some nontrivial work needed.
Anyway, this is still work in progress, I'm trying to figure out how to fix the upgrade. I just wanted to open a draft pull request already so people know that this is being worked on (and they can help if they want).
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)