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

Geezer

Aspiring Daemon

Reaction score: 612
Messages: 933

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.
 

Cypher

New Member

Reaction score: 4
Messages: 8

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...
 

Sivan!

Active Member

Reaction score: 18
Messages: 106

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: 7

Sivan!

Active Member

Reaction score: 18
Messages: 106

Top