[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - config_host.mk.in configure.ac external/jpeg-turbo external/poppler RepositoryExternal.mk

Michael Stahl mstahl at redhat.com
Thu Nov 3 09:26:47 UTC 2016


 RepositoryExternal.mk                            |   23 +++++++++++++-----
 config_host.mk.in                                |    2 +
 configure.ac                                     |   12 +++++++--
 external/jpeg-turbo/jpeg-turbo.win_build.patch.1 |   28 +++++++++++++++++++++++
 external/poppler/ExternalProject_poppler.mk      |    2 -
 external/poppler/UnpackedTarball_poppler.mk      |    1 
 external/poppler/poppler-libjpeg.patch.1         |   23 ++++++++++++++++++
 7 files changed, 81 insertions(+), 10 deletions(-)

New commits:
commit 206554422b9163fce76c8f44ec8be6c0de230685
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Nov 2 14:13:54 2016 +0100

    poppler: build against libjpeg
    
    Albert Astals Cid points out that --disable-libjpeg causes poppler to
    use internal JPEG code instead, which is not actively maintained.
    
    Add LIBJPEG_CFLAGS / LIBJPEG_LIBS to config_host.mk and patch poppler to
    respect LIBJPEG_LIBS.
    
    Reviewed-on: https://gerrit.libreoffice.org/30496
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit eea709f67d91e271e3df37e6c6724b7b5870b1ee)
    
    jpeg-turbo: resolve some conflicts to fix poppler build
    
    poppler uses both windows.h and jpeg headers, so runs into the conflict
    between Win32 definitions of boolean, INT16, INT32, and jpeg's.
    
    Tweak jpeg-turbo headers so it uses the Win32 definitions.
    (cherry picked from commit f2761b62b3d0b45a3e57781a16c8c5c6ee94ded0)
    
    Change-Id: Id19a62a9bd9dc41fee5e8e43e2798e515aacc299
    Reviewed-on: https://gerrit.libreoffice.org/30506
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: David Tardon <dtardon at redhat.com>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 0fc7d25..ece2bd7 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -426,32 +426,37 @@ endif # SYSTEM_ZLIB
 ifneq ($(SYSTEM_JPEG),)
 
 define gb_LinkTarget__use_jpeg
-$(call gb_LinkTarget_add_libs,$(1),-ljpeg)
+$(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS))
 $(call gb_LinkTarget_set_ldflags,$(1),\
 	$$(filter-out -L/usr/lib/jvm%,$$(T_LDFLAGS)) \
 )
 
 endef
 
+gb_ExternalProject__use_jpeg :=
+
 else ifneq ($(filter JPEG_TURBO,$(BUILD_TYPE)),)
 
 define gb_LinkTarget__use_jpeg
 $(call gb_LinkTarget_set_include,$(1),\
-	-I$(call gb_UnpackedTarball_get_dir,jpeg-turbo) \
+	$(LIBJPEG_CFLAGS) \
 	$$(INCLUDE) \
 )
-$(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,jpeg-turbo)/.libs/libjpeg$(gb_StaticLibrary_PLAINEXT) \
-)
+$(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS))
 $(call gb_LinkTarget_use_external_project,$(1),jpeg-turbo,full)
 
 endef
 
+define gb_ExternalProject__use_jpeg
+$(call gb_ExternalProject_use_external_project,$(1),jpeg-turbo)
+
+endef
+
 else # !SYSTEM_JPEG
 
 define gb_LinkTarget__use_jpeg
 $(call gb_LinkTarget_set_include,$(1),\
-	-I$(call gb_UnpackedTarball_get_dir,jpeg) \
+	$(LIBJPEG_CFLAGS) \
 	$$(INCLUDE) \
 )
 
@@ -459,6 +464,11 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\
 	jpeg \
 )
 
+define gb_ExternalProject__use_jpeg
+$(call gb_ExternalProject_use_static_libraries,$(1),jpeg)
+
+endef
+
 endef
 
 endif # SYSTEM_JPEG
@@ -2674,6 +2684,7 @@ endef
 else # !SYSTEM_POPPLER
 
 define gb_LinkTarget__use_poppler
+$(call gb_LinkTarget_use_external,$(1),jpeg)
 $(call gb_LinkTarget_use_external_project,$(1),poppler,full)
 
 $(call gb_LinkTarget_set_include,$(1),\
diff --git a/config_host.mk.in b/config_host.mk.in
index ddd144e..04fc400 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -328,6 +328,8 @@ export LIBFONTS_JAR=@LIBFONTS_JAR@
 export LIBFORMULA_JAR=@LIBFORMULA_JAR@
 export LIBGCRYPT_CFLAGS=@LIBGCRYPT_CFLAGS@
 export LIBGCRYPT_LIBS=@LIBGCRYPT_LIBS@
+export LIBJPEG_CFLAGS=$(gb_SPACE)@LIBJPEG_CFLAGS@
+export LIBJPEG_LIBS=$(gb_SPACE)@LIBJPEG_LIBS@
 export LIBLANGTAG_CFLAGS=$(gb_SPACE)@LIBLANGTAG_CFLAGS@
 export LIBLANGTAG_LIBS=$(gb_SPACE)@LIBLANGTAG_LIBS@
 export LIBLAYOUT_JAR=@LIBLAYOUT_JAR@
diff --git a/configure.ac b/configure.ac
index 3862386..66a830c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7636,10 +7636,10 @@ fi
 if test "$with_system_jpeg" = "yes"; then
     AC_MSG_RESULT([external])
     SYSTEM_JPEG=TRUE
-    AC_CHECK_HEADER(jpeglib.h, [],
+    AC_CHECK_HEADER(jpeglib.h, [ LIBJPEG_CFLAGS= ],
         [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], [])
-    AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ JPEG3RDLIB=-ljpeg ],
-    [AC_MSG_CHECKING(jpeg library not found or fuctional)], [])
+    AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ LIBJPEG_LIBS="-ljpeg" ],
+        [AC_MSG_ERROR(jpeg library not found or fuctional)], [])
     libo_MINGW_CHECK_DLL([libjpeg])
 else
     SYSTEM_JPEG=
@@ -7688,12 +7688,18 @@ Alternatively, you can install the 'new' nasm where ever you want and make sure
 _EOS
         AC_MSG_ERROR([no nasm (Netwide Assembler) found])
         fi
+        LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/jpeg-turbo"
+        LIBJPEG_LIBS="${WORKDIR}/UnpackedTarball/jpeg-turbo/.libs/libjpeg.lib"
     else
         AC_MSG_RESULT([internal, jpeg])
         BUILD_TYPE="$BUILD_TYPE JPEG"
+        LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/jpeg"
+        LIBJPEG_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -ljpeg"
     fi
 fi
 AC_SUBST(NASM)
+AC_SUBST(LIBJPEG_CFLAGS)
+AC_SUBST(LIBJPEG_LIBS)
 AC_SUBST(SYSTEM_JPEG)
 
 dnl ===================================================================
diff --git a/external/jpeg-turbo/jpeg-turbo.win_build.patch.1 b/external/jpeg-turbo/jpeg-turbo.win_build.patch.1
index ce00851..b5dabaa 100644
--- a/external/jpeg-turbo/jpeg-turbo.win_build.patch.1
+++ b/external/jpeg-turbo/jpeg-turbo.win_build.patch.1
@@ -1,3 +1,7 @@
+Copy definitions of "boolean", "INT16", "INT32" from win/jconfig.h.in
+
+... into jconfig.h.in, which is the one we use via configure.
+
 diff -ru jpeg-turbo.orig/simd/Makefile.in jpeg-turbo/simd/Makefile.in
 --- jpeg-turbo.orig/simd/Makefile.in	2015-09-21 20:48:45.000000000 +0200
 +++ jpeg-turbo/simd/Makefile.in	2015-11-22 10:52:46.975285184 +0100
@@ -24,3 +28,27 @@ diff -ru jpeg-turbo.orig/configure jpeg-turbo/configure
 
  fi
  done
+--- jpeg-turbo/jconfig.h.in.orig	2016-11-02 22:43:55.012600000 +0100
++++ jpeg-turbo/jconfig.h.in	2016-11-02 22:45:01.905400000 +0100
+@@ -71,3 +71,21 @@
+ 
+ /* The size of `size_t', as computed by sizeof. */
+ #undef SIZEOF_SIZE_T
++
++#ifdef _MSC_VER
++
++/* Define "boolean" as unsigned char, not int, per Windows custom */
++#ifndef __RPCNDR_H__		/* don't conflict if rpcndr.h already read */
++typedef unsigned char boolean;
++#endif
++#define HAVE_BOOLEAN		/* prevent jmorecfg.h from redefining it */
++
++/* Define "INT32" as int, not long, per Windows custom */
++#if !(defined(_BASETSD_H_) || defined(_BASETSD_H))   /* don't conflict if basetsd.h already read */
++typedef short INT16;
++typedef signed int INT32;
++#endif
++#define XMD_H                   /* prevent jmorecfg.h from redefining it */
++
++#endif /* _MSC_VER */
++
diff --git a/external/poppler/ExternalProject_poppler.mk b/external/poppler/ExternalProject_poppler.mk
index eab1d91..f75dddc 100644
--- a/external/poppler/ExternalProject_poppler.mk
+++ b/external/poppler/ExternalProject_poppler.mk
@@ -26,7 +26,7 @@ $(call gb_ExternalProject_get_state_target,poppler,build) :
 			--disable-poppler-cpp \
 			--disable-libopenjpeg \
 			--disable-libtiff \
-			--disable-libjpeg \
+			--enable-libjpeg \
 			--disable-libpng \
 			--disable-zlib \
 			--disable-libcurl \
diff --git a/external/poppler/UnpackedTarball_poppler.mk b/external/poppler/UnpackedTarball_poppler.mk
index 4de2242..efcbee7 100644
--- a/external/poppler/UnpackedTarball_poppler.mk
+++ b/external/poppler/UnpackedTarball_poppler.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,poppler,\
 	external/poppler/poppler-0.46.0-std-max.patch.1 \
 	external/poppler/poppler-0.46.0-unused-private-field.patch.1 \
 	external/poppler/ubsan.patch.0 \
+	external/poppler/poppler-libjpeg.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/poppler/poppler-libjpeg.patch.1 b/external/poppler/poppler-libjpeg.patch.1
new file mode 100644
index 0000000..c8d54be
--- /dev/null
+++ b/external/poppler/poppler-libjpeg.patch.1
@@ -0,0 +1,23 @@
+do not override user supplied LIBJPEG_LIBS so we can use the one in WORKDIR
+
+--- poppler/configure.orig	2016-11-02 13:58:32.530617038 +0100
++++ poppler/configure	2016-11-02 13:58:06.233617689 +0100
+@@ -21377,8 +21377,9 @@
+           ac_save_USER_INCLUDES="$USER_INCLUDES"
+   ac_save_USER_LDFLAGS="$USER_LDFLAGS"
+   USER_INCLUDES="$USER_INCLUDES $LIBJPEG_CFLAGS"
+-  USER_LDFLAGS="$USER_LDFLAGS $LIBJPEG_CFLAGS"
++  USER_LDFLAGS="$USER_LDFLAGS $LIBJPEG_LIBS"
+ 
++if test -z "$LIBJPEG_LIBS"; then
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libjpeg6b" >&5
+ $as_echo_n "checking for libjpeg6b... " >&6; }
+@@ -21489,6 +21490,7 @@
+ 
+ 
+ fi
++fi
+ 
+ 
+ ac_save_CPPFLAGS="$CPPFLAGS"


More information about the Libreoffice-commits mailing list