media-libs/libheif: add support for libjpeg-turbo-2.0
authorThomas Deutschmann <whissi@gentoo.org>
Sat, 6 Oct 2018 16:04:18 +0000 (18:04 +0200)
committerThomas Deutschmann <whissi@gentoo.org>
Sat, 6 Oct 2018 16:05:33 +0000 (18:05 +0200)
Package-Manager: Portage-2.3.50, Repoman-2.3.11
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
media-libs/libheif/files/libheif-1.3.2-openjpeg-2.patch [new file with mode: 0644]
media-libs/libheif/libheif-1.3.2-r1.ebuild [moved from media-libs/libheif/libheif-1.3.2.ebuild with 88% similarity]

diff --git a/media-libs/libheif/files/libheif-1.3.2-openjpeg-2.patch b/media-libs/libheif/files/libheif-1.3.2-openjpeg-2.patch
new file mode 100644 (file)
index 0000000..1382959
--- /dev/null
@@ -0,0 +1,93 @@
+Support building against libjpeg-turbo 2.0.
+
+Backport of https://github.com/strukturag/libheif/pull/85
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,6 +95,22 @@ AC_CHECK_LIB([jpeg], [jpeg_destroy_compress], [
+ ], [have_libjpeg="no"])
+ fi
+ AM_CONDITIONAL([HAVE_LIBJPEG], [test "x$have_libjpeg" = "xyes"])
++if eval "test x$have_libjpeg = xyes"; then
++AC_MSG_CHECKING([for jpeg_write_icc_profile])
++AC_LANG_PUSH(C++)
++AC_TRY_COMPILE([
++    #include <stddef.h>
++    #include <stdio.h>
++    #include <jpeglib.h>
++],[
++    jpeg_write_icc_profile(NULL, NULL, 0);
++],[has_jpeg_write_icc_profile=yes],[has_jpeg_write_icc_profile=no]);
++AC_LANG_POP(C++)
++AC_MSG_RESULT([$has_jpeg_write_icc_profile])
++if eval "test x$has_jpeg_write_icc_profile = xyes"; then
++    AC_DEFINE(HAVE_JPEG_WRITE_ICC_PROFILE, 1, [Define to 1 if jpeg_write_icc_profile is available in libjpeg.])
++fi
++fi
+ PKG_CHECK_MODULES([libpng], [libpng], [
+     AC_DEFINE([HAVE_LIBPNG], [1], [Whether libpng was found.])
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -8,6 +8,24 @@ include (${CMAKE_ROOT}/Modules/FindJPEG.cmake)
+ if(JPEG_FOUND)
+ add_definitions(-DHAVE_LIBJPEG=1)
++
++include (${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
++
++set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARIES})
++check_cxx_source_compiles("
++#include <stddef.h>
++#include <stdio.h>
++#include <jpeglib.h>
++
++int main() {
++  jpeg_write_icc_profile(NULL, NULL, 0);
++  return 0;
++}
++" HAVE_JPEG_WRITE_ICC_PROFILE)
++if(HAVE_JPEG_WRITE_ICC_PROFILE)
++  add_definitions(-DHAVE_JPEG_WRITE_ICC_PROFILE=1)
++endif()
++
+ set (heif_convert_sources
+   ${heif_convert_sources}
+   encoder_jpeg.cc
+--- a/examples/encoder_jpeg.cc
++++ b/examples/encoder_jpeg.cc
+@@ -17,6 +17,10 @@
+  * You should have received a copy of the GNU General Public License
+  * along with convert.  If not, see <http://www.gnu.org/licenses/>.
+  */
++#if defined(HAVE_CONFIG_H)
++#include "config.h"
++#endif
++
+ #include <assert.h>
+ #include <errno.h>
+ #include <string.h>
+--- a/examples/encoder_jpeg.h
++++ b/examples/encoder_jpeg.h
+@@ -24,6 +24,9 @@
+ #include <stddef.h>
+ #include <stdio.h>
++// Prevent duplicate definition for newer versions of libjpeg-turbo.
++#undef HAVE_STDDEF_H
++#undef HAVE_STDLIB_H
+ #include <jpeglib.h>
+ #include <string>
+--- a/examples/heif_enc.cc
++++ b/examples/heif_enc.cc
+@@ -35,6 +35,9 @@
+ #if HAVE_LIBJPEG
+ extern "C" {
++// Prevent duplicate definition for newer versions of libjpeg-turbo.
++#undef HAVE_STDDEF_H
++#undef HAVE_STDLIB_H
+ #include <jpeglib.h>
+ }
+ #endif
similarity index 88%
rename from media-libs/libheif/libheif-1.3.2.ebuild
rename to media-libs/libheif/libheif-1.3.2-r1.ebuild
index 2bce8218a61a6fd0306d4ce568c4c3a80a2d6327..aedf7a7e2591235882e7c87222ed80fe546eefd7 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
@@ -11,6 +11,8 @@ if [[ ${PV} == "9999" ]] ; then
 else
        SRC_URI="https://github.com/strukturag/${PN}/releases/download/v${PV}/${P}.tar.gz"
        KEYWORDS="~amd64 ~x86"
+
+       PATCHES=( "${FILESDIR}"/${P}-openjpeg-2.patch )
 fi
 
 DESCRIPTION="ISO/IEC 23008-12:2017 HEIF file format decoder and encoder"
@@ -20,14 +22,12 @@ LICENSE="GPL-3"
 SLOT="0/1.3"
 IUSE="static-libs +threads"
 
-# Doesn't yet support libjpeg-turbo-2, https://github.com/strukturag/libheif/issues/70
 DEPEND="
        media-libs/libde265:=[${MULTILIB_USEDEP}]
        media-libs/libpng:0=[${MULTILIB_USEDEP}]
        media-libs/x265:=[${MULTILIB_USEDEP}]
        sys-libs/zlib:=[${MULTILIB_USEDEP}]
        virtual/jpeg:0=[${MULTILIB_USEDEP}]
-       !>=media-libs/libjpeg-turbo-2
 "
 RDEPEND="${DEPEND}"