#393 closed enhancement (fixed)
Prefer newer libwebp shared library
Reported by: | netmk | Owned by: | netmk |
---|---|---|---|
Priority: | critical | Milestone: | 0.10 |
Component: | packaging | Version: | trunk |
Keywords: | Cc: |
Description (last modified by )
Running on Ubuntu 12.04.2 LTS.
Default libwebp library was libwebp.so.2.0.0 on my system. With version 0.10 (r3878) of the xpra server, this result in undefined symbols:
alex@net-mobile:~/xpra-src/Xpra/trunk/src$ xpra cannot load webp encoder: EncodeRGB missing from xpra.codecs.webm.encode: /usr/lib/i386-linux-gnu/libwebp.so.2: undefined symbol: WebPEncodeLosslessRGB cannot load webp encoder: EncodeRGBA missing from xpra.codecs.webm.encode: /usr/lib/i386-linux-gnu/libwebp.so.2: undefined symbol: WebPEncodeLosslessRGB cannot load webp encoder: EncodeBGR missing from xpra.codecs.webm.encode: /usr/lib/i386-linux-gnu/libwebp.so.2: undefined symbol: WebPEncodeLosslessRGB cannot load webp encoder: EncodeBGRA missing from xpra.codecs.webm.encode: /usr/lib/i386-linux-gnu/libwebp.so.2: undefined symbol: WebPEncodeLosslessRGB <snip..>
After updating to libwebp.so.4.0.3, libwebp.so.2.0.0 was still used, since "xpra/codecs/webm/init.py" tries to load .2 first, then .4:
_LIBRARY_NAMES = ["libwebp.so.2", "libwebp.so.4"]
Short of checking for this specifically, I would suggest favoring newer versions first in cases where multiple versions of the library is installed (patch attached)
Attachments (2)
Change History (7)
Changed 8 years ago by
Attachment: | libwebp.patch added |
---|
comment:1 Changed 8 years ago by
Description: | modified (diff) |
---|---|
Milestone: | → 0.10 |
Priority: | minor → critical |
Status: | new → assigned |
Changed 8 years ago by
Attachment: | support-old-libwebp.patch added |
---|
with this patch we should be able to run
comment:2 Changed 8 years ago by
Owner: | changed from Antoine Martin to netmk |
---|---|
Status: | assigned → new |
Can you please try the patch attached and let me know if it works ok for you?
Preferably testing both before and after reverting libwebp.patch
so we can ensure that 0.10.x works with libwebp.so.2
as well as before (that is, without lossless compression).
Since I only have libwebp.so.4
, I've tested by adding this:
try: #make it fail: _LIBRARY.SURELYDOESNOTEXIST = None ...
Thanks!
PS: as of r3879, you can check which encodings support lossless mode with:
$ xpra info | grep -i 'encodings' client.encodings=x264,vpx,webp,png,png/P,png/L,rgb,jpeg client.encodings.core=rgb24,vpx,x264,webp,png,png/L,png/P,jpeg,rgb32 encodings=vpx,x264,webp,png,png/L,png/P,jpeg,rgb encodings.core=('rgb24', 'rgb32', 'vpx', 'x264', 'webp', 'png', 'png/L', 'png/P', 'jpeg') encodings.lossless=('rgb24', 'rgb32', 'png', 'png/L', 'png/P', 'webp') encodings.with_lossless_mode=('webp',) encodings.with_quality=('x264', 'webp', 'jpeg') encodings.with_speed=('x264', 'png', 'png/L', 'png/P', 'jpeg', 'rgb')
comment:3 Changed 8 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
applied in r3884 - feel free to re-open this ticket if you still have problems
comment:4 Changed 8 years ago by
Confirmed tested before and after changeset (r3879), using libwebp.so.2.0.0
comment:5 Changed 5 weeks ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/393
Thanks, applied in r3879
We'll need more changes before the release though, because as it is
libwebp.so.2
prevents the whole module from loading because of the missing lossless functions.We need to fail more gracefully since we already handle the case where they are not available python side (but maybe also improve how we detect if they are missing too).