Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 715106 - net-im/zoom - Camera don't work
Summary: net-im/zoom - Camera don't work
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Ulrich Müller
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-27 23:15 UTC by Fulgurance
Modified: 2021-05-10 11:10 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge info (file_715106.txt,6.93 KB, text/plain)
2020-03-27 23:15 UTC, Fulgurance
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Fulgurance 2020-03-27 23:15:02 UTC
Hello, today i have emerged official zoom gentoo ebuild, but when i have testedit, i have seen camera don't work with him.

It's ebuild bug, because zoom ebuild into jorgicio overlay work fine.

(the same problem for the previous version)
Comment 1 Fulgurance 2020-03-27 23:15:38 UTC
Created attachment 626470 [details]
emerge info
Comment 2 Fulgurance 2020-03-28 08:28:22 UTC
I have looked jorgicio overlay, but when gentoo have added zoom in official repository, jorgicio have removed his ebuild and added the gentoo ebuild ...

I think it's good idea to contact him: https://github.com/jorgicio/jorgicio-gentoo-overlay to correct ebuild bug.
Comment 3 Andreas K. Hüttel archtester gentoo-dev 2020-03-28 10:17:47 UTC
(In reply to Fulgurance from comment #2)
> I have looked jorgicio overlay, but when gentoo have added zoom in official
> repository, jorgicio have removed his ebuild and added the gentoo ebuild ...
> 
> I think it's good idea to contact him:
> https://github.com/jorgicio/jorgicio-gentoo-overlay to correct ebuild bug.

I checked and the ebuilds are identical.

So whatever it is, it's something else...
Comment 4 Vasilis Lourdas 2020-03-28 10:37:41 UTC
Same here. The latest version does not show any video. The camera led lights up (which means it sends video), but Zoom shows a blank screen. VLC works fine with the camera.

I have sent Zoom a support request about this.

Another big issue for me is the inclusion of qtwebengine in the RDEPEND flag, which means it requires to compile qtwebengine. This package is the worst of all, even libreoffice compiles in much less time. My laptop has been compiling for 4,5 hours now. The .tar.xz offered by the Zoom site already includes libQt5WebEngine.so.5.9.6, so why can't we use all the bundled libraries?
Comment 5 Leho Kraav (:macmaN @lkraav) 2020-03-28 11:10:49 UTC
Vasilis is correct. I filed https://bugs.gentoo.org/715144 to look to drop dependencies.
Comment 6 Vasilis Lourdas 2020-03-28 11:15:09 UTC
In fact, after hacking a older version from jorgicio's overlay (which uses the bundled libraries) to my local overlay as a newer version (zoom-3.5.374815.0324-r1.ebuild), everything works fine. So, I guess the fact that the camera doesn't work must be why instead of the bundled libraries, the system's libraries are used.
Comment 7 Ulrich Müller gentoo-dev 2020-03-28 11:47:07 UTC
Looks like the problem is twofold:
1. We are missing a dependency on media-libs/libjpeg-turbo.
2. Even if libjpeg-turbo is installed, zoom doesn't find the lib unless it is in the current directory. Since the dependency doesn't show up with scanelf, I suspect that it is opened with dlopen() in the current dir. (And indeed there is the string "./libturbojpeg.so" in the binary.)


(In reply to Vasilis Lourdas from comment #4)
> Same here. The latest version does not show any video. The camera led lights
> up (which means it sends video), but Zoom shows a blank screen. VLC works
> fine with the camera.
> 
> I have sent Zoom a support request about this.

Please report to them that they should dlopen just "libturbojpeg.so" without the "./", because otherwise LD_LIBRARY_PATH is ignored.
Comment 8 Vasilis Lourdas 2020-03-28 11:51:13 UTC
(In reply to Ulrich Müller from comment #7)
> Please report to them that they should dlopen just "libturbojpeg.so" without
> the "./", because otherwise LD_LIBRARY_PATH is ignored.

I'll try to follow up on my initial request.

Why can't the bundled dependencies be used? I wouldn't insist on this one, if the dependencies were light, qtwebengine is a huge pain to compile. On my i5 8600 it took more than 2 hours to compile, this is simply insane!
Comment 9 Larry the Git Cow gentoo-dev 2020-03-28 12:16:14 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c59604601505f67e7c744a656b8a89cb55b94da

commit 8c59604601505f67e7c744a656b8a89cb55b94da
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-03-28 12:14:50 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-03-28 12:15:05 +0000

    net-im/zoom: Several fixes.
    
    Fix problem that ALSA devices are not found if media-sound/apulse[sdk]
    is installed.
    
    Add missing dependency on media-libs/libjpeg-turbo and a symlink
    (for dlopen?) to fix a camera problem.
    
    Install a better icon. Generic camera icon taken from
    https://github.com/google/material-design-icons/blob/master/av/svg/production/ic_videocam_24px.svg
    (licensed under Apache-2.0) and locally modified.
    
    Closes: https://bugs.gentoo.org/715106
    Closes: https://bugs.gentoo.org/715088
    Package-Manager: Portage-2.3.96, Repoman-2.3.22
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 net-im/zoom/files/zoom-videocam.svg                |  4 +++
 ....0324.ebuild => zoom-3.5.374815.0324-r1.ebuild} | 30 +++++++++++++++++++---
 2 files changed, 30 insertions(+), 4 deletions(-)
Comment 10 Ulrich Müller gentoo-dev 2020-03-28 12:28:50 UTC
(In reply to Vasilis Lourdas from comment #8)
> Why can't the bundled dependencies be used?

Generally we try to avoid bundled dependencies. See for example the following blog post for an explanation:
https://flameeyes.blog/2009/01/02/bundling-libraries-for-despair-and-insecurity/

In the case of the bundled Qt, it is version 5.9.6 which is very old and has known security problems. For example, bug 679650 and bug 699328 for qtwebengine.

> I wouldn't insist on this one, if the dependencies were light, qtwebengine
> is a huge pain to compile. On my i5 8600 it took more than 2 hours to
> compile, this is simply insane!

This is a valid concern. The way to go would be a binary package for qtwebengine. There is bug 669082 for it, so I'd suggest that you follow up there.
Comment 11 Ulrich Müller gentoo-dev 2020-03-28 13:07:54 UTC
About the long build time for dev-qt/qtwebengine, allegedly USE=jumbo-build should significatly reduce it (but will require some 2 GB of memory per process).
Comment 12 Leho Kraav (:macmaN @lkraav) 2020-03-28 13:20:17 UTC
> About the long build time for dev-qt/qtwebengine, allegedly USE=jumbo-build should significatly reduce it (but will require some 2 GB of memory per process).

Here's some real world data, i7-6700T CPU @ 2.80GHz, 32GB RAM build server

```
$ qlop -v dev-qt/qtwebengine
2018-07-07T14:07:29 >>> dev-qt/qtwebengine-5.9.4: 1:53:00
2018-07-14T04:41:23 >>> dev-qt/qtwebengine-5.9.6-r1: 2:21:14
2018-10-17T19:50:28 >>> dev-qt/qtwebengine-5.11.1: 1:50:33
2019-02-07T22:20:31 >>> dev-qt/qtwebengine-5.11.3: 1:27:23
2019-05-22T15:16:29 >>> dev-qt/qtwebengine-5.12.3: 4:01:43
2019-07-21T02:22:31 >>> dev-qt/qtwebengine-5.12.3: 3:24:23
2019-10-26T20:14:11 >>> dev-qt/qtwebengine-5.12.5: 4:03:25
2020-01-04T13:54:36 >>> dev-qt/qtwebengine-5.13.2: 2:19:59
2020-01-18T17:18:45 >>> dev-qt/qtwebengine-5.13.2: 2:26:04
```

I know `USE=jumbo-build` is enabled on 5.13, but can't recall what it was on 5.11 and earlier.

It certainly seems to help (compare with 5.12 build time), but it's far from panacea. I'd gladly avoid building it altogether.

PS thanks for qtwebengine-bin bug link.
Comment 13 Vasilis Lourdas 2020-03-28 14:27:04 UTC
Just for the sake of the jumbo-build USE flag, I did a new build.

Yes, it does provide 50% time savings (at least in my case):

2019-05-27T20:34:17 >>> dev-qt/qtwebengine-5.12.3: 1:41:55
2019-09-09T21:30:49 >>> dev-qt/qtwebengine-5.12.3: 1:37:54
2020-03-27T23:34:24 >>> dev-qt/qtwebengine-5.14.1: 2:04:49
2020-03-28T15:25:34 >>> dev-qt/qtwebengine-5.14.1: 58′28″
Comment 14 Vasilis Lourdas 2020-03-31 07:19:41 UTC
I just installed net-im/zoom-3.5.374815.0324-r2 and I still have no video...
Comment 15 Ulrich Müller gentoo-dev 2020-03-31 08:18:00 UTC
(In reply to Vasilis Lourdas from comment #14)
> I just installed net-im/zoom-3.5.374815.0324-r2 and I still have no video...

I won't exclude that some dependency is still missing. Looking at https://github.com/jorgicio/jorgicio-gentoo-overlay/blob/3efe9666da8e023efba8ffbcde37b2f81448db4d/net-im/zoom/zoom-3.5.361976.0301.ebuild, it's dependencies are somewhat different from ours:

	pulseaudio? ( media-sound/pulseaudio[alsa?] )
	dev-db/sqlite:3
	dev-db/unixODBC
	dev-libs/nss
	dev-qt/qtsql:5
	dev-qt/qtconcurrent:5
	dev-qt/qtmultimedia:5
	dev-qt/qtquickcontrols2:5
	dev-qt/qtdeclarative:5
	dev-qt/qtsvg:5
	dev-qt/qtxmlpatterns:5
	media-libs/gst-plugins-base
	media-libs/mesa
	media-libs/fontconfig
	dev-libs/glib:2
	x11-libs/libSM
	x11-libs/libX11
	x11-libs/libXcomposite
	x11-libs/libXfixes
	x11-libs/libXi
	x11-libs/libXrandr
	x11-libs/libXrender
	x11-libs/libxshmfence
	x11-libs/xcb-util-image
	x11-libs/xcb-util-keysyms

Can you check if you have all of these packages installed? If not, does the problem go away if you install the missing ones?
Comment 16 Vasilis Lourdas 2020-03-31 08:37:37 UTC
(In reply to Ulrich Müller from comment #15)
> I won't exclude that some dependency is still missing. Looking at
> https://github.com/jorgicio/jorgicio-gentoo-overlay/blob/
> 3efe9666da8e023efba8ffbcde37b2f81448db4d/net-im/zoom/zoom-3.5.361976.0301.
> ebuild, it's dependencies are somewhat different from ours:
> 
> 	pulseaudio? ( media-sound/pulseaudio[alsa?] )
> 	dev-db/sqlite:3
> 	dev-db/unixODBC
> 	dev-libs/nss
> 	dev-qt/qtsql:5
> 	dev-qt/qtconcurrent:5
> 	dev-qt/qtmultimedia:5
> 	dev-qt/qtquickcontrols2:5
> 	dev-qt/qtdeclarative:5
> 	dev-qt/qtsvg:5
> 	dev-qt/qtxmlpatterns:5
> 	media-libs/gst-plugins-base
> 	media-libs/mesa
> 	media-libs/fontconfig
> 	dev-libs/glib:2
> 	x11-libs/libSM
> 	x11-libs/libX11
> 	x11-libs/libXcomposite
> 	x11-libs/libXfixes
> 	x11-libs/libXi
> 	x11-libs/libXrandr
> 	x11-libs/libXrender
> 	x11-libs/libxshmfence
> 	x11-libs/xcb-util-image
> 	x11-libs/xcb-util-keysyms
> 
> Can you check if you have all of these packages installed? If not, does the
> problem go away if you install the missing ones?

I have all these installed.
Comment 17 Vasilis Lourdas 2020-04-06 17:58:54 UTC
Installed net-im/zoom-3.5.374815.0324-r4 in my laptop and still no video...
Comment 18 Ulrich Müller gentoo-dev 2020-04-07 08:54:26 UTC
(In reply to Vasilis Lourdas from comment #17)
> Installed net-im/zoom-3.5.374815.0324-r4 in my laptop and still no video...

I cannot reproduce the problem here, therefore I cannot debug it.

Can your attach your emerge --info please? Also, what type of camera is it (e.g., post the relevant line from "lsusb" output)?
Comment 19 Leho Kraav (:macmaN @lkraav) 2020-04-07 10:26:51 UTC
I'm also on Ulrich's "everything works fine" boat. Been using Zoom latest ebuild daily, video and everything works. My camera is Logitech C920, regular `uvcvideo` module.
Comment 20 Hypoon 2020-04-08 04:34:42 UTC
=net-im/zoom-3.5.382995.0407 does NOT work for me with =media-libs/libjpeg-turbo-2.0.4 installed. Zoom activates my Logitech C310 (the LED on my camera comes on) but fails to show the video feed.

The symlink at /opt/zoom/libturbojpeg.so resolves to /usr/lib64/libturbojpeg.so.0.2.0, as expected.

If I remove the symlink and replace it with the copy they ship with the binaries from Zoom's website, then it works perfectly and Zoom displays video from my camera without issue.

I noticed that Zoom ships version "0.1.0" while I had "0.2.0" installed. I tried downgrading to =media-libs/libjpeg-turbo-1.5.3-r2, but that did not help. I also tried several combinations of USE flags (java, static-libs) and symlinking to 32-bit versions of the library (/usr/lib/libturbojpeg.so, via abi_x86_32), but none of my attempts were successful.

At the end of the evening, I restored everything to the original state and discovered that the camera almost worked... it was displaying a few frames of video very slowly. The image was very dark (not surprising... the room was very dark), but it was playing. It's still completely unusable, but I wonder now whether the darkness of the image mattered. Could this be a performance issue, such that the content of the video feed matters? I'll try to test this more thoroughly tomorrow.

Some highlights from emerge --info (I'll upload the full emerge --info upon request):
System uname: Linux-5.6.2-gentoo-x86_64-AMD_Ryzen_7_2700X_Eight-Core_Processor-with-gentoo-2.6
sys-devel/gcc:            9.2.0-r2::gentoo
sys-kernel/linux-headers: 5.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"

and to recap some package versions:
=net-im/zoom-3.5.382995.0407
=media-libs/libjpeg-turbo-2.0.4
=media-libs/libuvc-0.0.6-r1
=media-libs/libv4l-1.16.6
=media-tv/v4l-utils-1.16.6

and some hardware, for performance considerations:
Camera: Logitech C310 (720p30 maximum in MJPEG mode)
CPU: Ryzen 7 2700X
GPU: Nvidia Quadro P620, running four 1080p displays
Memory: 32GB
Disk: Samsung 970 Pro (M.2 / NVMe)

md5 libturbojpeg.so.0.1.0: 3221b1878d2979529090b0aa7356874a

I'm willing to email someone copies of the working (shipped by Zoom) and non-working (locally compiled) libturbojpeg.so files for comparison, but I'm not comfortable uploading them publicly (I'm not a lawyer).
Comment 21 Ulrich Müller gentoo-dev 2020-04-08 06:31:03 UTC
(In reply to Hypoon from comment #20)
> =net-im/zoom-3.5.382995.0407 does NOT work for me with
> =media-libs/libjpeg-turbo-2.0.4 installed. Zoom activates my Logitech C310
> (the LED on my camera comes on) but fails to show the video feed.
> 
> The symlink at /opt/zoom/libturbojpeg.so resolves to
> /usr/lib64/libturbojpeg.so.0.2.0, as expected.
> 
> If I remove the symlink and replace it with the copy they ship with the
> binaries from Zoom's website, then it works perfectly and Zoom displays
> video from my camera without issue.
> 
> I noticed that Zoom ships version "0.1.0" while I had "0.2.0" installed. I
> tried downgrading to =media-libs/libjpeg-turbo-1.5.3-r2, but that did not
> help. I also tried several combinations of USE flags (java, static-libs) and
> symlinking to 32-bit versions of the library (/usr/lib/libturbojpeg.so, via
> abi_x86_32), but none of my attempts were successful.

Thank you for investigating. libjpeg-turbo-1.5.3 and -2.0.4 should be API compatible, so indeed (at least in theory) downgrading shouldn't make a difference.

Unfortunately, the bundled libturbojpeg.so.0.1.0 (version 1.5.3 or older?) has known security vulnerabilities:
https://bugs.gentoo.org/buglist.cgi?bug_status=RESOLVED&email1=security%40gentoo.org&emailassigned_to1=1&emailtype1=equals&list_id=4537062&query_format=advanced&resolution=FIXED&short_desc=media-libs%2Flibjpeg-turbo-1.5&short_desc_type=allwordssubstr
https://www.cvedetails.com/vulnerability-list/vendor_id-17075/product_id-40849/Libjpeg-turbo-Libjpeg-turbo.html

So, not sure what to do. We could add a USE flag enabling the bundled libturbojpeg, but it would have to be permanently masked for security reasons, which would be less than ideal.
Comment 22 Drew 2020-04-08 12:10:25 UTC
The same situation as Hypoon. With system libjpeg-turbo-2.0.4 the light on the camera is on, but no video in zoom (black screen). Replaced libturbojpeg.so by libturbojpeg.so.0.1.0 (md5sum: 3221b1878d2979529090b0aa7356874a) from zoom.us - the camera works. Tried both zoom versions in portage 3.5.374815.0324-r4 and 3.5.382995.0407, results are the same.

Camera: Logitech C525 HD Webcam, 720p

System uname: Linux-5.4.28-gentoo-x86_64-x86_64-Intel-R-_Core-TM-_i7-8550U_CPU_@_1.80GHz-with-gentoo-2.6
sys-devel/gcc:            9.2.0-r2::gentoo
sys-kernel/linux-headers: 5.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=skylake -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
Comment 23 Larry the Git Cow gentoo-dev 2020-04-08 12:57:05 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d0ceca5eb00102241a8ced5151c0823716181399

commit d0ceca5eb00102241a8ced5151c0823716181399
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-04-08 12:47:40 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-04-08 12:56:51 +0000

    profiles/base: Mask bundled-libjpeg-turbo for net-im/zoom.
    
    Bug: https://bugs.gentoo.org/715106
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 profiles/base/package.use.mask | 5 +++++
 1 file changed, 5 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9093b2fd2b0dc2b969a29f72dcdb150ba25e0dd8

commit 9093b2fd2b0dc2b969a29f72dcdb150ba25e0dd8
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-04-08 12:47:26 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-04-08 12:56:50 +0000

    net-im/zoom: New use flag bundled-libjpeg-turbo.
    
    Bug: https://bugs.gentoo.org/715106
    Package-Manager: Portage-2.3.96, Repoman-2.3.22
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 net-im/zoom/metadata.xml                |  4 ++++
 net-im/zoom/zoom-3.5.382995.0407.ebuild | 12 +++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)
Comment 24 Ulrich Müller gentoo-dev 2020-04-08 13:05:42 UTC
I have added a USE flag "bundled-libjpeg-turbo" which will enable installation of the bundled library. Since old versions of libjpeg-turbo have known security issues, the flag is masked in the base profile.

If you want to unmask the flag (on your own risk), add the following line to your /etc/portage/profile/package.use.mask:

net-im/zoom -bundled-libjpeg-turbo


Please test if this fixes the camera problem.
Comment 25 Hypoon 2020-04-08 14:53:56 UTC
I can confirm, the video feed matters. If there's very little detail in the video feed, Zoom can display it. I placed a bright yellow piece of paper over my webcam and Zoom displays a yellow screen despite using the "non-working" libturbojpeg.so. Removing the yellow paper after starting the video feed does not work: the video feed hangs immediately, still showing all yellow.

I haven't tested the updated ebuild yet... I don't want to give up that easily.
Comment 26 Hypoon 2020-04-08 16:50:21 UTC
A little bit more info. This is what Zoom is reading from libturbojpeg.so:

ptr = dlopen("./libturbojpeg.so", RTLD_NOW)
dlsym(ptr,"TJBUFSIZEYUV")
dlsym(ptr,"TJBUFSIZE")
dlsym(ptr,"tjInitDecompress")
dlsym(ptr,"tjInitCompress")
dlsym(ptr,"tjDecompressHeader2")
dlsym(ptr,"tjDecompressToYUV")
dlsym(ptr,"tjCompressFromYUVPlanes")
dlsym(ptr,"tjDestroy")
dlsym(ptr,"tjGetErrorStr")
dlclose(ptr)

None of those functions are returning NULL, so I assume one of the dlsym-retrieved functions must behave differently between the good and bad versions of the library (The above behavior is the same in both cases).
Comment 27 Vasilis Lourdas 2020-04-08 18:26:19 UTC
(In reply to Ulrich Müller from comment #24)
> I have added a USE flag "bundled-libjpeg-turbo" which will enable
> installation of the bundled library. Since old versions of libjpeg-turbo
> have known security issues, the flag is masked in the base profile.
> 
> If you want to unmask the flag (on your own risk), add the following line to
> your /etc/portage/profile/package.use.mask:
> 
> net-im/zoom -bundled-libjpeg-turbo
> 
> 
> Please test if this fixes the camera problem.

The latest ebuild fixes the camera issue for me.

My camera is a Logitech C525.
Comment 28 Ulrich Müller gentoo-dev 2020-04-08 18:52:49 UTC
(In reply to Hypoon from comment #26)

Pretty sure that the bundled libturbojpeg.so.0.1.0 is based on version 1.4.1 or 1.4.2. I could not find any version tag (it was only introduced later in 2.0), but the binary contains the string "Copyright (C) 1991-2015 The libjpeg-turbo Project and many others". Comparing this with the git history of file jversion.h (JCOPYRIGHT_SHORT), only versions 1.4.1 and 1.4.2 have the 2015 end date.

The ebuilds for 1.4.1 and 1.4.2 are in git history and still build:
https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libjpeg-turbo/libjpeg-turbo-1.4.1.ebuild?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d
https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libjpeg-turbo/libjpeg-turbo-1.4.2.ebuild?id=b526c82430b0d0762be60a63f63c2a189c65b51c

For convenience, binaries for both versions are here:
https://dev.gentoo.org/~ulm/libjpeg-turbo/

So, could you check if the camera works with one of those versions? That way, we could find out if the problem is connected to the library version, or to local modifications by Zoom upstream.
Comment 29 Ulrich Müller gentoo-dev 2020-04-08 18:56:55 UTC
(In reply to Vasilis Lourdas from comment #27)
> The latest ebuild fixes the camera issue for me.

Good, so we have a workaround at least. Thanks for testing.
Comment 30 Hypoon 2020-04-08 22:34:55 UTC
I tested the two binaries in https://dev.gentoo.org/~ulm/libjpeg-turbo/, but neither of them worked. I'm still working on an idea.
Comment 31 Drew 2020-04-09 12:13:10 UTC
(In reply to Ulrich Müller from comment #24)

> Please test if this fixes the camera problem.
Camera image is visible. Thank you for quick fix!
Comment 32 Hypoon 2020-04-11 04:11:18 UTC
Just documenting: the new Zoom release (3.5.383291.0407) ships with the same libturbojpeg.so.0.1.0 as the last one (3.5.382995.0407). Actually, everything is identical except for version.txt and the two binaries, zoom and ZoomLauncher. The new zoom binary still uses dlopen to access "./libturbojpeg.so", and my webcam still does not work using any libturbojpeg.so other than the one that Zoom ships.
Comment 33 Hypoon 2020-04-16 21:16:32 UTC
Just documenting again: The update to Zoom 3.5.385850.0413 is just like the previous one: same files changed, same issues remain, etc...
Comment 34 Hypoon 2020-04-23 19:51:04 UTC
No changes with Zoom 3.5.392530.0421 either. I hear that version 5 is coming soon, which drew my attention to the fact that Windows and Mac OS are both on version 4. While the Linux client appears to maintain feature parity with Windows and Mac OS, I would have assumed based on the version number that 3.5.392530.0421 would count as version 3.

In any case, perhaps we can hope for a major version bump soon.

Once I finish another major commitment, I'll put more time back into figuring out how to avoid using the libturbojpeg.so that Zoom ships.
Comment 35 Ulrich Müller gentoo-dev 2020-04-28 05:07:43 UTC
No changes to libturbojpeg in zoom-5.0.398100.0427:

$ md5sum zoom/libturbojpeg.so.0.1.0 
3221b1878d2979529090b0aa7356874a  zoom/libturbojpeg.so.0.1.0
Comment 36 Jean-Francois Ostiguy 2020-04-28 13:21:07 UTC

This may be of some help. My camera is a Logitech HD C910. It does not work with the gentoo package as installed (however, a much older camera does work) . 
The C910 camera turns on but the video screen is blank.  I got it to work with the following procedure:

(1) download the zoom client package from zoom.us and extract the bundled
libturbojpeg.so and libmpg123.so 

(2) put these libs under /opt/zoom with the rest of the installed binaries
    (remove any existing links to system versions of these libs)

(3) add LD_LIBRARY_PATH=/opt/zoom  to the script /usr/bin/zoom, before the exec statement.
 
This tells me that the bundled libraries are needed. 
Not too surprising since the zoom client was compiled with Qt 5.9.X headers.
5.9.X is mostly, but not fully abi compatible with 5.14.X. I suggest enabling
the bundled library USE flag with possibly an appropriate LD_LIBRARY_PATH statement as well ...
Comment 37 Ulrich Müller gentoo-dev 2020-04-28 14:31:51 UTC
(In reply to Jean-Francois Ostiguy from comment #36)
> (1) download the zoom client package from zoom.us and extract the bundled
> libturbojpeg.so and libmpg123.so 
> 
> (2) put these libs under /opt/zoom with the rest of the installed binaries
>     (remove any existing links to system versions of these libs)
> 
> (3) add LD_LIBRARY_PATH=/opt/zoom  to the script /usr/bin/zoom, before the
> exec statement.

Are you certain that zoom is actually loading libmpg123 for camera access? (For example, check with strace.)

The libmpg123 bundled with zoom is ancient (version 1.19.0 from 2014) and has known security vulnerabilities like bug 623786, bug 626346, and bug 631604.
Comment 38 Jeffrey Lin 2020-05-07 01:32:23 UTC
> Are you certain that zoom is actually loading libmpg123 for camera access?
> (For example, check with strace.)

For what it's worth, I've never had media-sound/mpg123 installed (added it to package.provided) and have USE="-bundled-libjpeg-turbo" and all functionality has worked as far as I can tell.
Comment 39 Shiru 2020-07-16 22:36:25 UTC
(In reply to Jeffrey Lin from comment #38)
> > Are you certain that zoom is actually loading libmpg123 for camera access?
> > (For example, check with strace.)
> 
> For what it's worth, I've never had media-sound/mpg123 installed (added it
> to package.provided) and have USE="-bundled-libjpeg-turbo" and all
> functionality has worked as far as I can tell.

In fact, it depends on which video camera you are using.
For example, using a n integrated camera like the one I have with my Toshiba Laptop is OK (everything works like a charm). Therefore, if you have bought your camera separately like Loicool/Logitech ones, you will encounter the issue described here.

Is there a plan to get ZOOM works with those external cameras ?
Comment 40 Ulrich Müller gentoo-dev 2020-07-17 07:24:00 UTC
(In reply to Shiru from comment #39)
> In fact, it depends on which video camera you are using.

This may well be possible.

> For example, using a n integrated camera like the one I have with my Toshiba
> Laptop is OK (everything works like a charm). Therefore, if you have bought
> your camera separately like Loicool/Logitech ones, you will encounter the
> issue described here.

If there's a pattern, that's not it. Zoom works fine here with an (older) external Logitech webcam and the system media-libs/libjpeg-turbo.

> Is there a plan to get ZOOM works with those external cameras ?

USE="bundled-libjpeg-turbo" doesn't work for you?
Comment 41 Vasilis Lourdas 2020-07-17 07:27:34 UTC
(In reply to Shiru from comment #39)
> Laptop is OK (everything works like a charm). Therefore, if you have bought
> your camera separately like Loicool/Logitech ones, you will encounter the
> issue described here.
> 
> Is there a plan to get ZOOM works with those external cameras ?

Support for external USB webcams in Linux mostly depends on kernel configuration. Activating USB UVC support will probably suffice for almost all USB cameras. I have a a Logitech C920 and a C310 camera in 2 PCs and both work perfectly with the Zoom ebuild provided by portage.
Comment 42 Alexey Skobkin 2020-08-18 11:25:47 UTC
Any progress?

net-im/zoom-5.2.446620.0816 - camera still not working. Still bound to the browser version to use it.
'USE="bundled-libjpeg-turbo"' couldn't be enabled too.

> If there's very little detail in the video feed, Zoom can display it. I placed a bright yellow piece of paper over my webcam and Zoom displays a yellow screen despite using the "non-working" libturbojpeg.so.

Can confirm that. Images from fully closed camera lens and open are different. When it's closed I see black screen and when it's opened I see grey screen.
Comment 43 Anton T 2020-08-26 19:40:24 UTC
(In reply to Jean-Francois Ostiguy from comment #36)
> 
> This may be of some help. My camera is a Logitech HD C910. It does not work
> with the gentoo package as installed (however, a much older camera does
> work) . 
> The C910 camera turns on but the video screen is blank.  I got it to work
> with the following procedure:
> 
> (1) download the zoom client package from zoom.us and extract the bundled
> libturbojpeg.so and libmpg123.so 
> 
> (2) put these libs under /opt/zoom with the rest of the installed binaries
>     (remove any existing links to system versions of these libs)
> 
> (3) add LD_LIBRARY_PATH=/opt/zoom  to the script /usr/bin/zoom, before the
> exec statement.
>  
> This tells me that the bundled libraries are needed. 
> Not too surprising since the zoom client was compiled with Qt 5.9.X headers.
> 5.9.X is mostly, but not fully abi compatible with 5.14.X. I suggest enabling
> the bundled library USE flag with possibly an appropriate LD_LIBRARY_PATH
> statement as well ...

Can confirm, by using this method(downloading zoom client and replacing libraries in /opt/zoom with libraries from client archive) has worked for me. But I had to replace only `libturbojpeg.so` in order to make camera(logitech c270) work.
Comment 44 Ulrich Müller gentoo-dev 2020-08-26 21:08:44 UTC
(In reply to Anton T from comment #43)
> Can confirm, by using this method(downloading zoom client and replacing
> libraries in /opt/zoom with libraries from client archive) has worked for
> me. But I had to replace only `libturbojpeg.so` in order to make
> camera(logitech c270) work.

USE="bundled-libjpeg-turbo" should do exactly that.
Comment 45 Alexey Skobkin 2020-08-27 07:51:48 UTC
> USE="bundled-libjpeg-turbo" should do exactly that.

Can't enable this flag:

# USE="bundled-libjpeg-turbo" emerge -1avqt zoom

[ebuild   R   ] net-im/zoom-5.2.446620.0816  USE="pulseaudio (-bundled-libjpeg-turbo)"
Comment 46 Ulrich Müller gentoo-dev 2020-08-27 17:15:09 UTC
(In reply to skobk.in from comment #45)
> > USE="bundled-libjpeg-turbo" should do exactly that.
> 
> Can't enable this flag:
> 
> # USE="bundled-libjpeg-turbo" emerge -1avqt zoom
> 
> [ebuild   R   ] net-im/zoom-5.2.446620.0816  USE="pulseaudio
> (-bundled-libjpeg-turbo)"

See comment #24.
Comment 47 Ulrich Müller gentoo-dev 2020-10-27 12:12:45 UTC
Is this still an issue? New zoom versions (e.g., 5.3.472687.1012 or 5.4.53268.1025) come with bundled libjpeg-turbo-2.0.4, which should be close to version 2.0.5 that we have in the tree.

So unless I'll hear someone speak up that things still don't work with USE="-bundled-libjpeg-turbo" (while they do with USE="bundled-libjpeg-turbo"), I'm inclined to drop that flag.
Comment 48 Ulrich Müller gentoo-dev 2020-10-28 13:22:19 UTC
(In reply to Ulrich Müller from comment #47)

bundled-libjpeg-turbo flag dropped in version 5.4.53350.1027.
Comment 49 Bruce Guenter 2020-10-29 04:11:30 UTC
When I upgraded to =net-im/zoom-5.4.53350.1027 today, the camera comes on but the video stream is black. Downgrading to =net-im/zoom-5.4.53268.1025 with USE=-bundled-libjpeg-turbo also has a black video stream. Adding USE=bundled-libjpeg-turbo fixes the video again for me. So, it seems this USE flag is still needed.
Comment 50 Larry the Git Cow gentoo-dev 2020-10-29 07:39:25 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=051281dc93732bac602ed34ce5742798840ec639

commit 051281dc93732bac602ed34ce5742798840ec639
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-10-29 07:38:41 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-10-29 07:38:41 +0000

    net-im/zoom: Re-add bundled-libjpeg-turbo flag.
    
    Bug: https://bugs.gentoo.org/715106#c49
    Package-Manager: Portage-3.0.8, Repoman-3.0.2
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 ...om-5.4.53350.1027.ebuild => zoom-5.4.53350.1027-r1.ebuild} | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
Comment 51 Drew 2020-10-29 07:56:13 UTC
5.4.53268.1025 (+bundled-libjpeg-turbo) - camera works
5.4.53350.1027 (no bundled-libjpeg-turbo) - black screen
Comment 52 Ulrich Müller gentoo-dev 2020-10-29 10:38:45 UTC
(In reply to Bruce Guenter from comment #49)
> When I upgraded to =net-im/zoom-5.4.53350.1027 today, the camera comes on
> but the video stream is black. Downgrading to =net-im/zoom-5.4.53268.1025
> with USE=-bundled-libjpeg-turbo also has a black video stream. Adding
> USE=bundled-libjpeg-turbo fixes the video again for me. So, it seems this
> USE flag is still needed.

(In reply to Drew from comment #51)
> 5.4.53268.1025 (+bundled-libjpeg-turbo) - camera works
> 5.4.53350.1027 (no bundled-libjpeg-turbo) - black screen

Thank you for the feedback. The flag is restored in zoom-5.4.53350.1027-r1. I have also dropped the USE mask because the (known) vulnerabilities are fixed in libjpeg-turbo-2.0.4.

This seems to confirm my suspicion from comment #28 that zoom upstream has tampered with that lib and has bundled a modified version.
Comment 53 Leho Kraav (:macmaN @lkraav) 2020-11-02 15:33:35 UTC
For me, 5.4 builds only proceed to call screen with USE=+bundled-libjpeg-turbo

Trying to use system libjpeg-turbo produces an infinitely spinning pre-call "Connecting..." modal, so something clearly fails there in the background.

I don't see any clearly related error message in user journal.
Comment 54 Larry the Git Cow gentoo-dev 2020-11-21 12:06:07 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65423dc00cf49422061d3d6ee4ca2143bd3ca1b1

commit 65423dc00cf49422061d3d6ee4ca2143bd3ca1b1
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-11-21 12:04:16 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-11-21 12:04:16 +0000

    profiles/base: Restore bundled-libjpeg-turbo USE mask for net-im/zoom.
    
    The libturbojpeg.so bundled with >=zoom-5.3 has an empty DT_RPATH
    (see output of "readelf -d" or "scanelf -r"). This is insecure
    because the loader will search the working directory when it finds
    an empty path.
    
    Bug: https://bugs.gentoo.org/715106
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 profiles/base/package.use.mask | 8 ++++++++
 1 file changed, 8 insertions(+)
Comment 55 Paweł Metelski 2020-12-09 15:22:42 UTC
I confirm that USE=+bundled-libjpeg-turbo allows using 046d:081b Logitech, Inc. Webcam C310 instead of viewing black rectangle. I suggest that this bug is referenced in the ewarn message - as the default behavior is not perfect.
Comment 56 Larry the Git Cow gentoo-dev 2020-12-14 07:47:45 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b338087696e80f25b11d0a596e8216a3fe0aa158

commit b338087696e80f25b11d0a596e8216a3fe0aa158
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2020-12-14 07:47:13 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2020-12-14 07:47:40 +0000

    net-im/zoom: Add reference to bug 715106 to ewarn message.
    
    Bug: https://bugs.gentoo.org/715106#c55
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 net-im/zoom/zoom-5.4.56259.1207-r2.ebuild | 1 +
 1 file changed, 1 insertion(+)
Comment 57 Shiru 2021-01-06 14:10:33 UTC
(In reply to Ulrich Müller from comment #40)
> (In reply to Shiru from comment #39)
> > In fact, it depends on which video camera you are using.
> 
> This may well be possible.
> 
> > For example, using a n integrated camera like the one I have with my Toshiba
> > Laptop is OK (everything works like a charm). Therefore, if you have bought
> > your camera separately like Loicool/Logitech ones, you will encounter the
> > issue described here.
> 
> If there's a pattern, that's not it. Zoom works fine here with an (older)
> external Logitech webcam and the system media-libs/libjpeg-turbo.
> 
> > Is there a plan to get ZOOM works with those external cameras ?
> 
> USE="bundled-libjpeg-turbo" doesn't work for you?

I just tried again today but it does not work (it works perfectly with Skype but black screen with Zoom even it detects my camera).

Zoom version and use flags = (~)5.4.57450.1220^msd {bundled-libjpeg-turbo +bundled-qt pulseaudio wayland}

Is there any chance i can resolve this issue?

Thanks in adavance,
Shiru
Comment 58 Shiru 2021-01-06 14:22:24 UTC
I made an error about use flags: there is no bundled-libjpeg-turbom no pulseaudio and nowayland.

But what is strange is Portage ignore my use flag bundled-libjpeg-turbom either via /etc/portage/package.use file, either by the command line: USE="bundled-libjpeg-turbo" emerge -a net-im/zoom

I don't know my configuration problem or the package itself.

Shiru
Comment 59 Ulrich Müller gentoo-dev 2021-01-06 14:35:47 UTC
(In reply to Shiru from comment #58)
> But what is strange is Portage ignore my use flag bundled-libjpeg-turbom
> either via /etc/portage/package.use file, either by the command line:
> USE="bundled-libjpeg-turbo" emerge -a net-im/zoom

Read comment #24.
Comment 60 UlvHare 2021-01-12 11:51:43 UTC
Confirm:
net-im/zoom-5.4.57862.0110, Logitech C270 - works if bundled-libjpeg-turbo enabled, gray screen if not. System libjpeg-turbo version is 2.06.
Comment 61 UlvHare 2021-04-02 08:59:28 UTC
The same with version 5.6.13632.0328
Comment 62 Ulrich Müller gentoo-dev 2021-05-10 11:10:59 UTC
After 60 comments, this bug is more confusing than it is helpful. I believe that the original issue has been fixed with the bundled jpeg lib. Therefore I am closing this.

If you still have a camera problem (_with_ USE=bundled-libjpeg-turbo) then please open a new bug.