Feature #7391
openAll components should use libjpeg8-turbo as JPEG implementation
0%
Description
All major operating systems have migrated to libjpeg-turbo v8.
While IJG's libjpeg should remain the reference implementation for backward compatibility, components in oi-userland should now move to a faster implementation.
The dependant components are:
pikku> pkg search -r -o pkg.name "depend::image/library/libjpeg6" | sort -u
codec/jasper
consolidation/userland/userland-incorporation
desktop/compiz/plugin/compiz-fusion-main
desktop/office/openoffice
editor/gnu-emacs/gnu-emacs-gtk
editor/gnu-emacs/gnu-emacs-x11
gnome/vino
image/dcraw
image/djvulibre
image/editor/gimp
image/editor/inkscape
image/gnuplot
image/imagemagick
image/library/gegl
image/library/libjpeg
image/library/libtiff
image/scanner/xsane
image/scanner/xsane/sane-backends
image/viewer/eog
image/viewer/eom
image/viewer/geeqie
image/viewer/gthumb
library/audio/gstreamer/plugin/good
library/desktop/gdk-pixbuf
library/desktop/search/tracker
library/desktop/webkitgtk
library/desktop/webkitgtk2
library/e/efl
library/gd
library/graphics/libmng
library/graphics/wxwidgets
library/lcms
library/lcms2
library/libgphoto2-2
library/libpoppler
library/libwebp
library/print/cups-libs
library/python-2/python-imaging-26
library/python-2/python-imaging-27
library/python/python-imaging-27
library/qt4
media/vlc
print/filter/ghostscript
print/filter/hplip
system/qemu/kvm
system/storage/photorec
system/storage/qphotorec
terminal/mrxvt
web/php-54/extension/php-gd
web/php-55/extension/php-gd
web/php-56/extension/php-gd
web/php-70/extension/php-gd
pikku> pkg search -r -o pkg.name "depend::image/library/libjpeg8-turbo" | sort -u
consolidation/userland/userland-incorporation
image/library/libraw
The file 'shared-macros.mk' may define macros to set compilation flags to the default libjpeg.
Updated by Tim Mooney over 6 years ago
I'm converting terminal/mrxvt as a test, to see how difficult the process is. That work is being tracked at
https://github.com/OpenIndiana/oi-userland/pull/2797
Updated by Tim Mooney over 6 years ago
Tim Mooney wrote:
I'm converting terminal/mrxvt as a test, to see how difficult the process is. That work is being tracked at
This pull request was merged, terminal/mrxvt is complete
Updated by Tim Mooney over 6 years ago
print/filter/hplip pull request: https://github.com/OpenIndiana/oi-userland/pull/2829
Updated by Tim Mooney over 6 years ago
Tim Mooney wrote:
print/filter/hplip pull request: https://github.com/OpenIndiana/oi-userland/pull/2829
This pull request was merged, print/filter/hplip is complete
Updated by Tim Mooney over 6 years ago
library/print/cups-libs is on this list, but there is nothing in that component that dynamically links to any version of libjpeg.
Updated by Aurélien Larcher over 6 years ago
I listed components detected as dependent on libjpeg by IPS, I did not check the links.
Thanks for your help!
Updated by Tim Mooney over 6 years ago
codec/jasper is done: https://github.com/OpenIndiana/oi-userland/pull/2832
Updated by Aurélien Larcher about 4 years ago
narval> pkg search -r -o pkg.name "depend:require:image/library/libjpeg6" | sort -u
library/audio/gstreamer/plugin/good
library/audio/gstreamer1/plugin/base
library/desktop/webkitgtk2
library/graphics/wxwidgets
library/python/python-imaging-27
library/qt5
Updated by David Stes almost 2 years ago
I am adding libjpeg8-turbo support to Squeak (runtime/smalltalk/squeak the Smalltalk-80 package)
The Squeak JPEG plugin is documented at http://wiki.squeak.org/squeak/4043
By default Squeak uses its own copy of libjpeg so this duplicates code and does not use any of the OI libjpeg libraries at all.
During the recent work on updating the Squeak package for Debian Linux, a Squeak configure switch was added to link against libjpeg8-turbo (this is very recent in Squeak 4.19.6) and I am using now the same switch for OpenIndiana
Updated by David Stes over 1 year ago
while working on this issue, I found out that Squeak works with libjpeg6-ijg the IJG implementation but apparantly for some unknown reason NOT with libjpeg62-turbo or libjpeg8-turbo
So for the moment the latest update of squeak introduces a new dependency
depend fmri=pkg:/image/library/libjpeg6-ijg@6.0.2-2020.0.1.1 type=require
depend fmri=pkg:/image/library/libjpeg6@6.0.2-2020.0.1.1 type=require
this is already an improvement compared to the past because in the past squeak was statically linking lijbpeg into the VM so it was not visible at the IPS level and it was not dynamically linking libjpeg
Updated by David Stes over 1 year ago
I have upgraded Squeak now to use libjpeg8-turbo.
The reason it did not work at first is, because I was using the wrong include file
/usr/include/jpeglib.h
which links to libjpeg6-ijg.
Removing
/usr/include/jpeglib.h
helped to diagnose the issue.
The sizeof (struct jpeg_decompress_struct) and sizeof (struct jpeg_compress_struct) differs between libjpeg6-ijg , libjpeg8-turbo and libjpeg9-ijg.
I had a PR (pull request) for IJG libjpeg 9.4.0
That version also works fine with Squeak when using the right header file.