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

But net-im/zoom states:

What's the deal? Does sound work or not?

The deal is ... don't use the port, merely run zoom inside firefox.

1642950845906.png


Needs a working microphone, speakers, webcam and ample dog food.
 
I think that jitsi is much more fit for educational purposes than zoom, teams, google-talk, and all proprietary software out there. There are lots of public Organisations using jitsi by now.
Including Universities, mainly in Europe, schools, ONGs, et. al. It is opensource and you can use it directly in the browser or install a server in your computer. I use it in GNU/Debian. I think there is some work out in the freeBSD community to port it and such. Other great opensource tool for teaching is bigbluebutton
https://bigbluebutton.org/
there are lots of tutos on YT teaching how to use them...
 
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.

This is what I went through:

Code:
# cd /usr/ports/net-im/zoom
# make install clean

Code:
You installed Zoom: A video conferencing client.

CAVEAT: Sound doesn't yet work in Zoom on FreeBSD.

In order to run Zoom you need:
1. Linux emulation enabled. For this you should execute:
   # sysrc linux_enable=YES
   and reboot and/or execute:
   # kldload linux
2. Have devfs mounted for the Linux emulator.
   For this you should execute:
   # mount -t devfs none /compat/linux/dev
   and reboot and/or add this line to /etc/fstab:
   devfs /compat/linux/dev devfs rw 0 0
3. Have Linux OpenGL package for your video card is installed.
   It could be one of linux-nvidia-libs*, etc.
   Enable a port option corresponding to your OpenGL driver, if applicable.
   Try running with LIBGL_ALWAYS_SOFTWARE=1 if zoom crashes because of OpenGL.
4. Have multimedia/webcamd installed and running. The usual way to
   start webcamd is to have these two lines in /etc/rc.conf:
   webcamd_enable="YES"
   webcamd_flags="-H"

Zoom stores configuration values in ~/.config/zoomus.conf, some
of which you can adjust.

If you have linux-c7-pulseaudio-libs or linux-c7-alsa-plugins-pulseaudio
installed and zoom asserts in pulseaudio, please change system.audio.type
to "alsa" in ~/.config/zoomus.conf


===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/compat/linux/opt/zoom/libQt5Network.so
/compat/linux/opt/zoom/libQt5Network.so.5.9.9
/compat/linux/opt/zoom/libQt5Network.so.5
/compat/linux/opt/zoom/libQt5Network.so.5.9
/compat/linux/opt/zoom/zoom

Code:
# whereis zoom
zoom: /usr/local/bin/zoom /usr/ports/games/zoom
# /usr/local/bin/zoom
ELF binary type "3" not known.
/usr/local/bin/zoom: /compat/linux/opt/zoom/zoom: Exec format error

After following instructions from discussion threads that discussed an error similar to this, for instance from this freebsd forums page

Code:
# readelf -e /usr/local/bin/zoom
readelf: Not an ELF file.
readelf -e /compat/linux/opt/zoom/zoom  
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            GNU
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices x86-64
  Version:                           0x1
  Entry point address:               0x44731e
  Start of program headers:          64 (bytes into file)
  Start of section headers:          63432864 (bytes into file)
  Flags:                             0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         30
  Section header string table index: 29

Elf file type is DYN (Shared object file)
Entry point 0x44731e
There are 9 program headers, starting at offset 64

# brandelf -t Linux /usr/local/bin/zoom
brandelf: file '/usr/local/bin/zoom' is not ELF format
# brandelf -t Linux /compat/linux/opt/zoom/zoom
# hash -r
# /usr/local/bin/zoom
ELF binary type "3" not known.
/usr/local/bin/zoom: /compat/linux/opt/zoom/zoom: Exec format error
# kldload linux
kldload: can't load linux: Operation not permitted
# kldload linux64
kldload: can't load linux64: Operation not permitted

After this I followed some of the steps of the post-install instructions from the install process. Here is what I did:

Code:
# sysrc linux_enable=YES

# kldload linux
kldload: can't load linux: Operation not permitted

# mount -t devfs none /compat/linux/dev

Also added this line to /etc/fstab:
Code:
devfs /compat/linux/dev devfs rw 0 0

#the post install instructions also said:
Code:
Have Linux OpenGL package for your video card is installed.
It could be one of linux-nvidia-libs*, etc.
Enable a port option corresponding to your OpenGL driver, if applicable.
Try running with LIBGL_ALWAYS_SOFTWARE=1 if zoom crashes because of OpenGL.

(searched for sound card dmesg |grep sound also tried 'audio' didn't find the name of the sound card)

Code:
Have multimedia/webcamd installed and running. The usual way to
start webcamd is to have these two lines in /etc/rc.conf:
webcamd_enable="YES"
webcamd_flags="-H"

Didn't include those lines. Don't have a webcam in my desktop computer.

Before reboot:

Code:
/usr/local/bin/zoom
ELF binary type "3" not known.
/usr/local/bin/zoom: /compat/linux/opt/zoom/zoom: Exec format error

Code:
# kldload linux
kldload: can't load linux: Operation not permitted

Will reboot now and update.

Update:

Zoom works.
With these errors:
Code:
# /usr/local/bin/zoom
XDG_RUNTIME_DIR (/var/run/user/1001) is not owned by us (uid 0), but by uid 1001! (This could e.g. happe
n if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that
.)
No PulseAudio daemon running, or not running as session daemon.
zoom started.
Client: Breakpad is using Single Client Mode! client fd = -1
QStandardPaths: wrong ownership on runtime directory /var/run/user/1001, 1001 instead of 0
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: ][client: Linux][OS: CentOS Linux 7 (Core)][Hardware:
CPU Core:4 Frenquency:3.59333 G Memory size:6035MB CPU Brand:AMD Ryzen 3 3200G with Radeon Vega Graphics
     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
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
error was 0
error was 0
error was 0

Update: Launched Zoom twice for two different meetings, Zoom as an installed application receives video, but there is no audio. Zoom on the browser does not have the audio issue. The issue with the installed application is as simple as that of figuring out the name of the audio components of the computer and the external speaker, and adding a line of code somewhere in some system file.
 

Attachments

  • zoom works.png
    zoom works.png
    25.2 KB · Views: 106
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.
FreeBSD doesn't want to change itself for apps, apps need to conform to some standards. FreeBSD is totally fine OS for everyday use and its proven by Apple and Sony. It provides totally fine kernel and userland. If something doesn't work its 99% developer's fault. Linux is chaos, they are trying to conform to some standards(POSIX and SUS) but in reality its totally different, it even doesn't have anything to do with licensing. And also, Zoom its proprietary software, no FreeBSD binaries.
 
FreeBSD makes a point here. What else could FreeBSD do, apart from a refusal to port non-standard apps, to prompt apps to confirm to standards?
Many open source apps wont work because of linux-specific things, if it was to follow standards(its defined as one of their goals, ONE and TWO). Linux continues to change itself for the sake of convenience, it constantly makes up new non-standard things in order for apps to work on it. It's sad, i wish it was different, Linux has good kernel and GNU's userland is full of features(its bloated but yeah..). Also GPL isn't that bad, in my opinion.
 
If FreeBSD is the superior OS then they ought to work with FreeBSD WITHOUT the FreeBSD devs bttching about this or that.
You know... many of us here prefer to use FreeBSD for exactly that reason: It's superior in many aspects because it does not change and bend around standards just to make some proprietary 3rd-party app work. It remains a fairly static, solid, easy-to-maintain solution. Meanwhile, Linux changes interfaces and makes slalom moves around standards just to get some proprietary stuff to work every other full moon.
Back when I was developing stuff that needed to interface the Linux kernel I had to modify code more often than I did laundry. One day you just wake up and something fundamental changes that just breaks your stuff. And that happens constantly over at the Linux world.
From a purely technical point of view, I much rather use (and develop for) Windows than a Linux system.

Personally, I vastly prefer having some 3rd-party proprietary thing NOT working on FreeBSD than having FreeBSD bending over, changing interfaces, discarding standard compliance etc.
And that is the one of the main reasons why I switched to FreeBSD as my primary desktop OS.

Other than that, I found FreeBSD devs to be very non-bitchy compared to your average developer of a different OS ;)
FreeBSD: Whenever possible we patch upstream. If that doesn't work out (usually for political reasons), we maintain the patches ourselves in the ports tree. If that is not enough, upstream is either badly designed or by design OS specific. Then you still have plenty of options such as:
  • Linux binary compatibility layer
  • Wine
  • Jails (which can be Linux jails)
  • Virtual machines
But yeah, every now and then somebody comes along here and thinks that FreeBSD has to do something for them. That's not how it works. If it doesn't work for you (and you either can't or don't want to put efforts into it yourself) just don't use it:
FreeBSD: Allow me to attend AA.

Not so long ago, I'd argue barely 10 years, maybe 15, this was exactly the situation over at Linux land: A lot of proprietary 3rd-party stuff just didn't work. And it was not a disaster. People still used Linux. If it didn't work for them they either put in the efforts or used something else. The only thing that changed is the direction that Linux took since then: Break it until it's fixed.
We don't like to do that around here. And I hope that it will stay that way.
There are plenty of companies that choose FreeBSD over Linux for not just that reason - but sometimes truly just that reason.
Meanwhile, there are companies that put in the effort of officially supporting FreeBSD. Just look at the Nvidia drivers - they work well.
Linux either decided or just passively became a corporate dick size comparison. But as often in those situations: quantity won over quality which clearly shows.

I'm going to leave you with this: https://forums.freebsd.org/threads/why-is-freebsd-not-more-like.66591/#post-393755
 
We don't like to do that around here. And I hope that it will stay that way.
I truely believe it will stay this way. For those consumers that just want more, more, more then Linux is in no way too restrictive for them, unlike Windows was becoming when Microsoft and Apple introduced DRM, spyware, etc.

So effectively we need to thank Linux for being our buffer from those kinds of people. Linux will remain the wall of chaos that the FreeBSD developers will pick at like a messy buffet for those few decent things that come out of it, such as drivers, LLVM and, erm.. surely there is more than that, I just personally can't think of anything good that has come out of Linux for a while :/
 
Back
Top