Would it be possible to port Zoom meeting client to freeBSD?

Hello BSD family, I am a school teacher and would love to use my freeBSD desktop for Zooming with my kiddos all day. I tried to get Zoom to work via Wine but no luck.

And no, I cannot use any alternative meeting clients. Must be zoom since that is waht the school district paid for.

Any ideas or suggestions as to creative solutions to achieve functionality are welcome. I need the zoom client not just the web client as the zoom client enables certain host features unavailable otherwise.

Help! =) Thanks all!

Chris
crldb@icloud.com
 
So you tried Wine, what about with a Linux compatibility layer

 
Any ideas or suggestions as to creative solutions to achieve functionality are welcome. I need the zoom client not just the web client as the zoom client enables certain host features unavailable otherwise.

Hi, I spin up a VM in Virtualbox of a Linux distro. For example I have AntiX in a VM, which is small and I keep Flatpak installed for certain applications. I did a quick test and installed Zoom from flathub and it all looked good, although I don't have a meeting to test fully.

Anyway, just a thought. Still technically in FreeBSD, just cheating a little.
 
I also got zoom working using @shkhln`s workaround for steam

Code:
pactl: /usr/local/steam-utils/lib64/fakepulse/libpulse.so.0: no version information available (required by pactl)
fakepulse: pa_path_get_filename
pactl: src/fakepulse.c:250: pa_path_get_filename: Assertion `0' failed.
zoom started.
Client: Breakpad is using Single Client Mode! client fd = -1
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'
pactl: /usr/local/steam-utils/lib64/fakepulse/libpulse.so.0: no version information available (required by pactl)
fakepulse: pa_path_get_filename
pactl: src/fakepulse.c:250: pa_path_get_filename: Assertion `0' failed.
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: ][client: Linux][OS: CentOS Linux 7 (Core)][Hardware: CPU Core:8 Frenquency:2.67 G Memory size:12217MB CPU Brand:Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz GPU Brand:][Req ID: ]
Linux Client Version is 5.2.458699.0906
QSG_RENDER_LOOP is
XDG_CURRENT_DESKTOP = ;   GDMSESSION =
Graphics Card Info::
Zoom package arch is 64bit, runing OS arch is x86_64
AppIconMgr::systemDesktopName log Desktop Name:
pactl: /usr/local/steam-utils/lib64/fakepulse/libpulse.so.0: no version information available (required by pactl)
fakepulse: pa_path_get_filename
pactl: src/fakepulse.c:250: pa_path_get_filename: Assertion `0' failed.
qt.svg: link image0 hasn't been detected!
qt.svg: :/images/wechat.svg:10:6: Could not resolve property: pattern0
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM

So this explains why there is no sound...
 

Attachments

  • zoom_freebsd_linuxulator_centos7.png
    zoom_freebsd_linuxulator_centos7.png
    176.4 KB · Views: 566
  • zoom_linuxulator_freebsd12_with_graphics.png
    zoom_linuxulator_freebsd12_with_graphics.png
    163.3 KB · Views: 538
Thought I would share. On OpenBSD I just tried the Zoom web interface on Firefox 76.0 (64-bit) using some random User-agent switching extension. I set it to masquerade as Windows / Firefox 80.

It allowed webcam which worked well and audio recording was also fine. The only thing that broke and crashed the browser (presumably due to pledge) was screen sharing. Though I believe in a recent version they have fixed that.

This is the exact extension I used.

https://addons.mozilla.org/en-GB/firefox/addon/uaswitcher/

I plan to give it a shot on FreeBSD sometime in the next week or so when I get time.
 
I have hard time to understand why WebRTC applications such as Zoom works in Chromium, but not in FireFox. User agent switcher can solve the problem, but I want to know why this problem exists.

AFAIK, WebRTC implementation in both Firefox and Chromium is similar but not identical. There's also lack of some codec in Firefox e.g. iLBC and iSAC. But I think that's not the issue. There's some negotiation between client to find some middle ground.
Then there's the "Signalling" issue: I thinks that's the main reason. For Signalling to works we need server. WebRTC by itself cant handle Signalling. Server also needed to handle "saving state". JavaScript Session Establishment Protocol (JSEP) prohibits browser to saving state, thus the need for the server. Server also can solve the NAT problem.

I can't pin point to the specific, but I think that Firefox can't handle such WebRTC application properly because of Server (such as zoom server). I would be happy to hear your thoughts.
 
I think the WebRTC thing is a problem with Microsoft's things (Skype / Teams) working with Firefox. Whether this was just a dumb engineering decision or an artificial one to further their Chrome ecosystem is possibly another topic.

Zoom does work with Firefox based on my above experience. I think it requires web assembly so I wonder if it implements its own decoder / encoder via that?
 
Why doesn't Zoom work? Why should I try Linux compatibility layers? Why are there limitations that Linux doesn't have? Why do I need to Google, and read forums to make the attempt? Don't give me that "Oh it's the fault of the Zoom developers." Linus and Co. made Zoom work with Linux. They got it done. FreeBSD: Get it done without all the normal FreeBSD excuses about licensing and blobs and other bologna. Under no circumstances DO NOT tell me that it's Zoom's fault. If it were Zoom's fault then there would be problems outside the BSD world (which there are not). Those are excuses. Get the job done. Every other OS has got the job done. Why can't I go to a meeting of Alcoholics Anonymous (to include audio) with FreeBSD? For effing sakes AA ought to work. Please, without getting into development models and licensing bullcrap explain why I ought to use FreeBSD even though BASIC things like Zoom won't work. Coronavirus has been with us since 2019. You've had that long to catch up with social norms. Zoom works on EVERY OS except FreeBSD (GhostBSD). I haven't tried OpenBSD, NetBSD, DragonflyBSD, or MidnightBSD, but I assume the same issues exist.
 
From what I understand, the bug is in fact from Pulse Audio, not Zoom. This information coming from yuri, the port maintainer.
The bug is NOT from Zoom or PulseAudio. If Zoom or PulseAudio were to blame then Zoom would not work on Linux (it does). I have wanted to use FreeBSD for years, but they keep pushing the blame onto Zoom, PulseAudio, Broadcom, and Nvidia. These things work flawlessly in Linux. If FreeBSD is the superior OS then they ought to work with FreeBSD WITHOUT the FreeBSD devs bttching about this or that. FreeBSD: Zoom: Make it work, and don't shift the blame onto Zoom. Linus didn't shift the blame onto Zoom. If you're so superior then you should be able to make anything in Linux work AND MORE. Licensing this and binary blobs that and Linux compatibility bologna... all excuses for why the OS that I *would* use doesn't actually work.
 
I want to--I WANT TO use FreeBSD. I've got one primary requirement for an OS though: I am an alcoholic, and I need to attend AA meetings on Zoom.

I don't want to hear about PulseAudio this or Zoom licensing that or Linux compatibility layers (if I need Linux compatibility then I would use Linux). It works in every non-BSD OS.

FreeBSD: Allow me to attend AA. Let me do it without spending days searching and tweaking .conf files. I don't think that's too much to ask from an OS these days.
 
… If FreeBSD is the superior OS …

FreeBSD is in some ways superior to some systems; in some ways not. Foot of the page, Terms and rules, <https://forums.freebsd.org/threads/66591/> in particular – please.

I could be annoyed that some things, which neither the FreeBSD Project nor the FreeBSD Foundation can control, will probably never work on FreeBSD. Annoyance gets us nowhere, so I prefer to let technical frustrations drift over me.

Things are what they are, and conflation does not help. Newcomer rtobiasr I mean this in a friendly way: easy, tiger. Let's focus on the ported client. I have some information elsewhere that might help …
 
Does sound work or not?

I'll be without my usual system for the next few hours.

In the meantime, for starters, a simple transcript of a start and clean quit, without attempting to do anything with the GUI (not signining in, and so on):

Code:
test@mowa219-gjp4-freebsd-d31121-mobile:~ % zoom
zoom started.
Client: Breakpad is using Single Client Mode! client fd = -1
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: ][client: Linux][OS: CentOS Linux 7 (Core)][Hardware: CPU Core:2 Frenquency:2.9 G Memory size:16271MB CPU Brand:       Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz GPU Brand:][Req ID: ]
Linux Client Version is 5.3.465578.0920
QSG_RENDER_LOOP is
XDG_CURRENT_DESKTOP = KDE;   GDMSESSION =
Graphics Card Info::
Zoom package arch is 64bit, runing OS arch is x86_64
AppIconMgr::systemDesktopName log Desktop Name: /usr/local/share/xsessions/plasma
error was 0
qt.svg: link image0 hasn't been detected!
qt.svg: :/images/wechat.svg:10:6: Could not resolve property: pattern0
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM
ALSA lib control.c:1375:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
WorkerBase::loop() normal exit, fds[0].revents & POLLIN = true
test@mowa219-gjp4-freebsd-d31121-mobile:~ % date ; uptime ; freebsd-version -kru ; uname -aKU
Sun Jan 23 11:45:02 GMT 2022
11:45AM  up  8:47, 7 users, load averages: 2.01, 2.20, 2.15
14.0-CURRENT
14.0-CURRENT
14.0-CURRENT
FreeBSD mowa219-gjp4-freebsd-d31121-mobile 14.0-CURRENT FreeBSD 14.0-CURRENT #2 main-72c89ce97: Tue Sep 28 01:22:15 BST 2021     root@mowa219-gjp4-freebsd-d31121-mobile:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG  amd64 1400033 1400033
test@mowa219-gjp4-freebsd-d31121-mobile:~ % pkg -vv | grep -e url -e enabled
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:14:amd64/latest",
    enabled         : yes,
test@mowa219-gjp4-freebsd-d31121-mobile:~ % pkg info -x net-im/zoom
zoom-video-conferencing-client-5.3.465578.0920_1
test@mowa219-gjp4-freebsd-d31121-mobile:~ %
 
FreeBSD: Zoom: Make it work, and don't shift the blame onto Zoom. Linus didn't shift the blame onto Zoom. If you're so superior then you should be able to make anything in Linux work AND MORE.
You seem a little confused as to the limitations of platform specific binaries. The Zoom client on Linux works only because Zoom (the company) has created binaries for Linux:

https://support.zoom.us/hc/en-us/articles/204206269-Installing-or-updating-Zoom-on-Linux

Zoom client on FreeBSD doesn't exist *at all* because Zoom has not ported it. Instead we use kludges such as Linux or Windows emulation and wrap it up in the ports collection to make it easy(ish) to install.

Or are you blaming FreeBSD for others not writing software for it? That is like blaming FreeBSD for not having a working Microsoft Office or Safari. I write tonnes of software that only exists as FreeBSD binaries; I don't then complain why Windows or Linux can't run it. It suggests a big misunderstanding on your behalf.

My advice is to just use Zoom in the browser. This works fine because it uses Javascript (and WebAssembly) which isn't a platform specific binary.
 
Back
Top