Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
@ 2015-12-02  7:56 Maxin B. John
  2015-12-02 12:56 ` Otavio Salvador
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Maxin B. John @ 2015-12-02  7:56 UTC (permalink / raw)
  To: openembedded-core

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.

Changes in v2:
a) Squash the two libjpeg related commits into one

Changes in v3:
a) Use libjpeg-turbo version 1.4.2
b) Build libjpeg-turbo with libjpeg v6b ABI which is commonly used
by other major distributions.

[YOCTO #8628]

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta/recipes-core/jpeg/jpeg_9a.bb                | 29 -------------------
 meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb | 36 ++++++++++++++++++++++++
 2 files changed, 36 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.2.bb

diff --git a/meta/recipes-core/jpeg/jpeg_9a.bb b/meta/recipes-core/jpeg/jpeg_9a.bb
deleted file mode 100644
index ea2e65d..0000000
--- a/meta/recipes-core/jpeg/jpeg_9a.bb
+++ /dev/null
@@ -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
-}
diff --git a/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb b/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb
new file mode 100644
index 0000000..0947763
--- /dev/null
+++ b/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb
@@ -0,0 +1,36 @@
+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] = "86b0d5f7507c2e6c21c00219162c3c44"
+SRC_URI[sha256sum] = "521bb5d3043e7ac063ce3026d9a59cc2ab2e9636c655a2515af5f4706122233e"
+
+S = "${WORKDIR}/${BPN}-${BASEPV}"
+
+# Drop-in replacement for jpeg
+PROVIDES = "jpeg"
+RPROVIDES_${PN} += "jpeg"
+RREPLACES_${PN} += "jpeg"
+RCONFLICTS_${PN} += "jpeg"
+
+inherit autotools pkgconfig
+
+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}/*"
+
+DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*"
+
+BBCLASSEXTEND = "native"
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-02 12:56 ` Otavio Salvador
@ 2015-12-02  8:39   ` Maxin B. John
  0 siblings, 0 replies; 9+ messages in thread
From: Maxin B. John @ 2015-12-02  8:39 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: Patches and discussions about the oe-core layer

Hi  Otavio,

On Wed, Dec 02, 2015 at 10:56:54AM -0200, Otavio Salvador wrote:
> On Wed, Dec 2, 2015 at 5:56 AM, Maxin B. John <maxin.john@intel.com> wrote:
> > 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.
> >
> > Changes in v2:
> > a) Squash the two libjpeg related commits into one
> >
> > Changes in v3:
> > a) Use libjpeg-turbo version 1.4.2
> > b) Build libjpeg-turbo with libjpeg v6b ABI which is commonly used
> > by other major distributions.
> >
> > [YOCTO #8628]
> >
> > Signed-off-by: Maxin B. John <maxin.john@intel.com>
> 
> Please move the Changes out of the commit log; you should send it
> adding it after --- so it is not applied.
>

Ok, will do that. Thanks!

> -- 
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://code.ossystems.com.br
> Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750

Best Regards,
Maxin


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
@ 2015-12-02  8:39 Maxin B. John
  0 siblings, 0 replies; 9+ messages in thread
From: Maxin B. John @ 2015-12-02  8:39 UTC (permalink / raw)
  To: openembedded-core

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]

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 meta/recipes-core/jpeg/jpeg_9a.bb                | 29 -------------------
 meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb | 36 ++++++++++++++++++++++++
 2 files changed, 36 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.2.bb

diff --git a/meta/recipes-core/jpeg/jpeg_9a.bb b/meta/recipes-core/jpeg/jpeg_9a.bb
deleted file mode 100644
index ea2e65d..0000000
--- a/meta/recipes-core/jpeg/jpeg_9a.bb
+++ /dev/null
@@ -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
-}
diff --git a/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb b/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb
new file mode 100644
index 0000000..0947763
--- /dev/null
+++ b/meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb
@@ -0,0 +1,36 @@
+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] = "86b0d5f7507c2e6c21c00219162c3c44"
+SRC_URI[sha256sum] = "521bb5d3043e7ac063ce3026d9a59cc2ab2e9636c655a2515af5f4706122233e"
+
+S = "${WORKDIR}/${BPN}-${BASEPV}"
+
+# Drop-in replacement for jpeg
+PROVIDES = "jpeg"
+RPROVIDES_${PN} += "jpeg"
+RREPLACES_${PN} += "jpeg"
+RCONFLICTS_${PN} += "jpeg"
+
+inherit autotools pkgconfig
+
+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}/*"
+
+DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*"
+
+BBCLASSEXTEND = "native"
-- 
2.4.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-02  7:56 [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo Maxin B. John
@ 2015-12-02 12:56 ` Otavio Salvador
  2015-12-02  8:39   ` Maxin B. John
  2015-12-04  9:11 ` Burton, Ross
  2015-12-07 22:56 ` Burton, Ross
  2 siblings, 1 reply; 9+ messages in thread
From: Otavio Salvador @ 2015-12-02 12:56 UTC (permalink / raw)
  To: Maxin B. John; +Cc: Patches and discussions about the oe-core layer

On Wed, Dec 2, 2015 at 5:56 AM, Maxin B. John <maxin.john@intel.com> wrote:
> 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.
>
> Changes in v2:
> a) Squash the two libjpeg related commits into one
>
> Changes in v3:
> a) Use libjpeg-turbo version 1.4.2
> b) Build libjpeg-turbo with libjpeg v6b ABI which is commonly used
> by other major distributions.
>
> [YOCTO #8628]
>
> Signed-off-by: Maxin B. John <maxin.john@intel.com>

Please move the Changes out of the commit log; you should send it
adding it after --- so it is not applied.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-04  9:11 ` Burton, Ross
@ 2015-12-04  6:03   ` Maxin B. John
  2015-12-04 10:58     ` Burton, Ross
  0 siblings, 1 reply; 9+ messages in thread
From: Maxin B. John @ 2015-12-04  6:03 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

Hi Ross,

On Fri, Dec 04, 2015 at 09:11:59AM +0000, Burton, Ross wrote:
>Hi Maxin,
>
>>On 2 December 2015 at 07:56, Maxin B. John <maxin.john@intel.com> wrote:
>>
>>    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.
>>
>
>   As jpeg-turbo has assembler bits it's getting all confused about x32:
>
>            | checking if we have SIMD optimisations for cpu type... yes (x86_64)
>            | checking for nasm... nasm
>            | checking for object file format of host system... ELF64
>            | checking for object file format specifier (NAFLAGS) ... -felf64 -DELF -D__x86_64__
>            | checking whether the assembler (nasm -felf64 -DELF -D__x86_64__) works... yes
>            | checking whether the linker accepts assembler output... no
>            | configure: error: configuration problem: maybe object file format mismatch.
>
>            (https://autobuilder.yoctoproject.org/main/builders/nightly-x32/builds/545)

There was a discussion about supporting x32 support in libjpeg-turbo:
http://sourceforge.net/p/libjpeg-turbo/patches/35/

Due to some reasons, that ended up in "closed-wont-integrate".

Work-around could be to build with "--without-simd" for x32 or implement the x32 assembly SIMD 
routines to support that feature (long and painful).

>Ross

Best Regards,
Maxin


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-02  7:56 [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo Maxin B. John
  2015-12-02 12:56 ` Otavio Salvador
@ 2015-12-04  9:11 ` Burton, Ross
  2015-12-04  6:03   ` Maxin B. John
  2015-12-07 22:56 ` Burton, Ross
  2 siblings, 1 reply; 9+ messages in thread
From: Burton, Ross @ 2015-12-04  9:11 UTC (permalink / raw)
  To: Maxin B. John; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 920 bytes --]

Hi Maxin,

On 2 December 2015 at 07:56, Maxin B. John <maxin.john@intel.com> wrote:

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

As jpeg-turbo has assembler bits it's getting all confused about x32:

| checking if we have SIMD optimisations for cpu type... yes (x86_64)
| checking for nasm... nasm
| checking for object file format of host system... ELF64
| checking for object file format specifier (NAFLAGS) ... -felf64 -DELF
-D__x86_64__
| checking whether the assembler (nasm -felf64 -DELF -D__x86_64__) works...
yes
| checking whether the linker accepts assembler output... no
| configure: error: configuration problem: maybe object file format
mismatch.

(https://autobuilder.yoctoproject.org/main/builders/nightly-x32/builds/545)

Ross

[-- Attachment #2: Type: text/html, Size: 1625 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-04  6:03   ` Maxin B. John
@ 2015-12-04 10:58     ` Burton, Ross
  0 siblings, 0 replies; 9+ messages in thread
From: Burton, Ross @ 2015-12-04 10:58 UTC (permalink / raw)
  To: Maxin B. John; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 595 bytes --]

On 4 December 2015 at 06:03, Maxin B. John <maxin.john@intel.com> wrote:

> There was a discussion about supporting x32 support in libjpeg-turbo:
> http://sourceforge.net/p/libjpeg-turbo/patches/35/
>
> Due to some reasons, that ended up in "closed-wont-integrate".
>
> Work-around could be to build with "--without-simd" for x32 or implement
> the x32 assembly SIMD
> routines to support that feature (long and painful).
>

Looks like that was closed because the patch made it compile but failed to
actually work.  --without-simd for x32 is clearly the right thing to do.

Ross

[-- Attachment #2: Type: text/html, Size: 1127 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-02  7:56 [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo Maxin B. John
  2015-12-02 12:56 ` Otavio Salvador
  2015-12-04  9:11 ` Burton, Ross
@ 2015-12-07 22:56 ` Burton, Ross
  2015-12-07 23:09   ` Martin Jansa
  2 siblings, 1 reply; 9+ messages in thread
From: Burton, Ross @ 2015-12-07 22:56 UTC (permalink / raw)
  To: OE-core; +Cc: Chris Larson

[-- Attachment #1: Type: text/plain, Size: 658 bytes --]

On 2 December 2015 at 07:56, Maxin B. John <maxin.john@intel.com> wrote:

>  meta/recipes-core/jpeg/jpeg_9a.bb                | 29 -------------------
>  meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb | 36
> ++++++++++++++++++++++++
>

(CCing the usual suspects who will notice and care about this)

I've just noticed that this means that when the binary packages are
debian-renamed the version goes backwards: libjpeg-9a to libjpeg-8d+1.4.2.
Does anyone have an opinion on either:

1) ignore it
2) put an PE (epoch) in libjpeg-turbo
3) configure the debian renaming so the library has a different name
(libjpeg-turbo, presumably)

Ross

[-- Attachment #2: Type: text/html, Size: 1431 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo
  2015-12-07 22:56 ` Burton, Ross
@ 2015-12-07 23:09   ` Martin Jansa
  0 siblings, 0 replies; 9+ messages in thread
From: Martin Jansa @ 2015-12-07 23:09 UTC (permalink / raw)
  To: Burton, Ross; +Cc: Chris Larson, OE-core

[-- Attachment #1: Type: text/plain, Size: 919 bytes --]

On Mon, Dec 07, 2015 at 10:56:48PM +0000, Burton, Ross wrote:
> On 2 December 2015 at 07:56, Maxin B. John <maxin.john@intel.com> wrote:
> 
> >  meta/recipes-core/jpeg/jpeg_9a.bb                | 29 -------------------
> >  meta/recipes-core/jpeg/libjpeg-turbo_8d+1.4.2.bb | 36
> > ++++++++++++++++++++++++
> >
> 
> (CCing the usual suspects who will notice and care about this)
> 
> I've just noticed that this means that when the binary packages are
> debian-renamed the version goes backwards: libjpeg-9a to libjpeg-8d+1.4.2.
> Does anyone have an opinion on either:
> 
> 1) ignore it

I'm ok with ignoring it, because all DISTROs I care about were always
using libjpeg-turbo.

> 2) put an PE (epoch) in libjpeg-turbo
> 3) configure the debian renaming so the library has a different name
> (libjpeg-turbo, presumably)
> 
> Ross

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-12-07 23:07 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-02  7:56 [PATCH v3] libjpeg: Replace libjpeg with libjpeg-turbo Maxin B. John
2015-12-02 12:56 ` Otavio Salvador
2015-12-02  8:39   ` Maxin B. John
2015-12-04  9:11 ` Burton, Ross
2015-12-04  6:03   ` Maxin B. John
2015-12-04 10:58     ` Burton, Ross
2015-12-07 22:56 ` Burton, Ross
2015-12-07 23:09   ` Martin Jansa
  -- strict thread matches above, loose matches on Subject: below --
2015-12-02  8:39 Maxin B. John

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox