Skip to contentSkip to conversation

libjpeg: Replace libjpeg with libjpeg-turbo

PATCH Superseded Maxin B. John 2 participants 3 messages Nov 30, 2015 – Dec 1, 2015

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libjpeg: Replace libjpeg with libjpeg-turbo

Moving libjpeg-turbo from meta-oe as a replacement for libjpeg package. libjpeg-turbo has same API/ABI as libjpeg. It is relatively faster in JPEG compression/decompression than libjpeg.

[YOCTO #8628]

---
 meta/recipes-core/jpeg/jpeg_9a.bb                | 29 -----------------
 meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb | 40 ++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 29 deletions(-)
 delete mode 100644 meta/recipes-core/jpeg/jpeg_9a.bb
 create mode 100644 meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb
meta/recipes-core/jpeg/jpeg_9a.bb deleted +0 -29
deleted file mode 100644
index ea2e65d..0000000
@@ -1,29 +0,0 @@
-SUMMARY = "libjpeg is a library for handling the JPEG (JFIF) image format"
-DESCRIPTION = "libjpeg contains a library for handling the JPEG (JFIF) image format, as well as related programs for accessing the libjpeg functions."
-HOMEPAGE = "http://www.ijg.org/"
-
-LICENSE ="BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://README;md5=ea93a8a2fed10106b63bc21679edacb9"
-
-SECTION = "libs"
-
-SRC_URI = "http://www.ijg.org/files/jpegsrc.v${PV}.tar.gz \
-	  "
-
-SRC_URI[md5sum] = "3353992aecaee1805ef4109aadd433e7"
-SRC_URI[sha256sum] = "3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7"
-
-inherit autotools
-
-PACKAGES =+ 		"jpeg-tools "
-DESCRIPTION_jpeg-tools = "The jpeg-tools package includes the client programs for access libjpeg functionality.  These tools allow for the compression, decompression, transformation and display of JPEG files."
-FILES_jpeg-tools = 	"${bindir}/*"
-
-BBCLASSEXTEND = "native"
-
-pkg_postinst_${PN}_linuxstdbase () {
-    if [ ! -e $D${libdir}/libjpeg.so.62 ]; then
-        JPEG=`find $D${libdir} -type f -name libjpeg.so.\*.\*.\*`
-        ln -sf `basename $JPEG` $D${libdir}/libjpeg.so.62
-    fi
-}
meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb new file +40 -0
new file mode 100644
index 0000000..e79f800
@@ -0,0 +1,40 @@
+DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
+HOMEPAGE = "http://libjpeg-turbo.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=12;md5=cad955d15145c3fdceec6855e078e953 \
+                    file://jpeglib.h;endline=14;md5=dfc803dc51ae21178d1376ec73c4454d \
+                    file://djpeg.c;endline=9;md5=e93a8f2061e8a0ac71c7a485c10489e2 \
+"
+
+DEPENDS = "nasm-native"
+
+BASEPV = "${@d.getVar('PV',True).split('+')[1]}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${BASEPV}.tar.gz"
+SRC_URI[md5sum] = "b1f6b84859a16b8ebdcda951fa07c3f2"
+SRC_URI[sha256sum] = "4bf5bad4ce85625bffbbd9912211e06790e00fb982b77724af7211034efafb08"
+
+S = "${WORKDIR}/${BPN}-${BASEPV}"
+
+# Drop-in replacement for jpeg
+PROVIDES = "jpeg"
+RPROVIDES_${PN} += "jpeg"
+RREPLACES_${PN} += "jpeg"
+RCONFLICTS_${PN} += "jpeg"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-jpeg8 "
+
+PACKAGES =+ "jpeg-tools libturbojpeg"
+
+DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality.  These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library."
+FILES_jpeg-tools = "${bindir}/*"
+
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so"
+INSANE_SKIP_libturbojpeg = "dev-so"
+
+BBCLASSEXTEND = "native"
+
+LEAD_SONAME = "libjpeg.so.8"
Signature · 1 line
2.4.0
#1 lore raw

meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb line 36

Quoted 3 lines · Maxin B. John
meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb new file +3 -0
+PACKAGES =+ "jpeg-tools libturbojpeg"
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so"
+INSANE_SKIP_libturbojpeg = "dev-so"

I don't understand why there's a libturbojpeg package solely for a development symlink that should be in $PN-dev.

Also, Martin pointed out that meta-oe's master-next has a 1.4.2 recipe, can you use that?

Ross

#2 lore raw

Hi Ross,

On Tue, Dec 01, 2015 at 03:36:06PM +0000, Burton, Ross wrote:

Quoted 5 lines · Maxin B. John

meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb line 36

Quoted 3 lines
meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.1.bb new file +3 -0
+PACKAGES =+ "jpeg-tools libturbojpeg"
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so"
+INSANE_SKIP_libturbojpeg = "dev-so"

I don't understand why there's a libturbojpeg package solely for a development symlink that should be in $PN-dev.

We can move that to $PN-dev.

Quoted 1 line

Also, Martin pointed out that meta-oe's master-next has a 1.4.2 recipe, can you use that?

Oh, I didn't notice that. Will send a v3 with these changes.

Quoted 1 line

Ross

Best Regards,
Maxin