* [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