From 22aa9939d4af5399f24c60f357e2c2e96c52f5dc Mon Sep 17 00:00:00 2001 From: Li-Wen Hsu Date: Wed, 27 Mar 2019 17:56:18 +0000 Subject: [PATCH] - Add QT5 and KDE5 options [1] - Fix build with gcc on !libc++ archs [2] - Rework patch-sal_osl_unx_thread.cxx for more portable [3] - Fix pkg-plist while GTK3 enabled PR: 236748 [1], 236765 [2] Submitted by: VVD [1], jhibbits [2], Greg Veldman [3] --- editors/libreoffice/Makefile | 23 +++++++++++-- editors/libreoffice/files/patch-powerpc | 15 +++++---- .../files/patch-sal_osl_unx_thread.cxx | 32 ++++++++++++------- .../files/patch-sal_osl_unx_uunxapi.cxx | 25 +++++++++++++++ 4 files changed, 74 insertions(+), 21 deletions(-) create mode 100644 editors/libreoffice/files/patch-sal_osl_unx_uunxapi.cxx diff --git a/editors/libreoffice/Makefile b/editors/libreoffice/Makefile index 4d16b2c785ea..20ff0b78d935 100644 --- a/editors/libreoffice/Makefile +++ b/editors/libreoffice/Makefile @@ -2,6 +2,8 @@ .include "${.CURDIR}/Makefile.common" +PORTREVISION= 1 + MASTER_SITES= https://download.documentfoundation.org/libreoffice/src/${PORTVERSION}/ \ https://dev-www.libreoffice.org/src/:src \ https://dev-www.libreoffice.org/extern/:ext @@ -115,15 +117,17 @@ USES= autoreconf:build bison compiler:c++14-lang cpe gmake jpeg \ mysql:client \ perl5 pkgconfig python shebangfix shared-mime-info ssl tar:xz -OPTIONS_DEFINE= CUPS DOCS GNOME GTK2 GTK3 JAVA MMEDIA PGSQL SDK SYSTRAY \ - TEST WEBDAV +OPTIONS_DEFINE= CUPS DOCS GNOME GTK2 GTK3 JAVA KDE5 MMEDIA PGSQL QT5 SDK \ + SYSTRAY TEST WEBDAV OPTIONS_DEFAULT= CUPS GTK2 MMEDIA GTK2_DESC= GTK+ 2 GUI toolkit support GTK3_DESC= GTK+ 3 GUI toolkit support (experimental) JAVA_DESC= Add Java support (XML filters, macros, DB connections) +KDE5_DESC= KF5/Qt5 GUI toolkit support (require QT5) MMEDIA_DESC= Enable multimedia backend for Impress PGSQL_DESC= Build with PostgreSQL-SDBC driver +QT5_DESC= Qt5 GUI toolkit support SDK_DESC= Build with SDK SYSTRAY_DESC= Enable systemtray quickstarter TEST_DESC= Run all regression tests @@ -193,6 +197,11 @@ JAVA_DISTFILES= 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip:src \ JAVA_USE= JAVA=yes JAVA_VARS= JAVA_BUILD=yes +KDE5_CONFIGURE_ENABLE= kde5 +KDE5_USE= kde=config,coreaddons,i18n,kio,windowsystem +KDE5_USES= kde:5 +KDE5_IMPLIES= QT5 + MMEDIA_CONFIGURE_ENABLE= gstreamer-1-0 MMEDIA_USE= GSTREAMER1=yes @@ -200,6 +209,10 @@ PGSQL_CONFIGURE_ENABLE= postgresql-sdbc PGSQL_CONFIGURE_WITH= gssapi krb5 PGSQL_USES= pgsql +QT5_CONFIGURE_ENABLE= qt5 +QT5_USE= qt=buildtools_build,core,gui,network,qmake_build,widgets,x11extras +QT5_USES= qt:5 + SDK_BUILD_DEPENDS= doxygen:devel/doxygen SDK_CONFIGURE_ENABLE= odk SDK_CONFIGURE_OFF= --without-doxygen @@ -264,7 +277,8 @@ CONFIGURE_ENV= DMAKE=${LOCALBASE}/bin/dmake \ OPENCOLLADA_CFLAGS="${COLLADA_CFLAGS}" \ OPENCOLLADA_LIBS="${COLLADA_LIBS}" \ PYTHON_CFLAGS="`${PYTHON_VERSION}-config --cflags`" \ - PYTHON_LIBS="`${PYTHON_VERSION}-config --libs`" + PYTHON_LIBS="`${PYTHON_VERSION}-config --libs`" \ + ac_cv_path_SED=${LOCALBASE}/bin/gsed MAKE_ARGS+= TMPDIR=${WRKDIR} MAKE_ENV+= CXXFLAGS_WARN="${CXXFLAGS_WARN}" @@ -312,6 +326,9 @@ post-install-SDK-on: ${FIND} -s ${subdir}/libreoffice -not -type d >> ${TMPPLIST} .endfor +post-install-GTK3-on: + @${ECHO_CMD} "share/gir-1.0/LOKDocView-0.1.gir" >> ${TMPPLIST} + add-plist-gnome: .for subdir in gnome hicolor locolor @${ECHO_CMD} "@rmtry share/icons/${subdir}/icon-theme.cache" >> ${TMPPLIST} diff --git a/editors/libreoffice/files/patch-powerpc b/editors/libreoffice/files/patch-powerpc index 165ed9a55bab..489e93d20066 100644 --- a/editors/libreoffice/files/patch-powerpc +++ b/editors/libreoffice/files/patch-powerpc @@ -171,24 +171,27 @@ #include #include #include ---- testtools/CustomTarget_uno_test.mk.orig -+++ testtools/CustomTarget_uno_test.mk -@@ -12,6 +12,9 @@ +--- testtools/CustomTarget_uno_test.mk.orig 2019-03-27 15:11:56.660402000 +0800 ++++ testtools/CustomTarget_uno_test.mk 2019-03-27 15:11:55.757889000 +0800 +@@ -12,7 +12,10 @@ # this target is phony to run it every time .PHONY : $(call gb_CustomTarget_get_target,testtools/uno_test) +-$(call gb_CustomTarget_get_target,testtools/uno_test) : \ +ifeq (($(OS)-$(CPUNAME)), FREEBSD-POWERPC64) + @echo "FreeBSD PowerPC64 GCC fails this test! likely broken UNO bridge. Fix me." +else - $(call gb_CustomTarget_get_target,testtools/uno_test) : \ ++ $(call gb_CustomTarget_get_target,testtools/uno_test) : \ $(call gb_Executable_get_runtime_dependencies,uno) \ $(call gb_InternalUnoApi_get_target,bridgetest) \ -@@ -26,5 +29,5 @@ + $(call gb_Package_get_target,instsetoo_native_setup_ure) \ +@@ -29,6 +32,7 @@ -env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD)) \ -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services)) \ -env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)) -- +endif + endif + # vim:set shiftwidth=4 tabstop=4 noexpandtab: --- vcl/headless/svpbmp.cxx.orig +++ vcl/headless/svpbmp.cxx diff --git a/editors/libreoffice/files/patch-sal_osl_unx_thread.cxx b/editors/libreoffice/files/patch-sal_osl_unx_thread.cxx index 78bdf8dd757f..29c719c92574 100644 --- a/editors/libreoffice/files/patch-sal_osl_unx_thread.cxx +++ b/editors/libreoffice/files/patch-sal_osl_unx_thread.cxx @@ -1,9 +1,11 @@ osl_thread_priority_init_Impl() tries to assign values to variables declared as const on platforms not excluded by NO_PTHREAD_PRIORITY. -This includes FreeBSD. Patch locally until fixed upstream. +This includes FreeBSD. This is https://gerrit.libreoffice.org/69603 +upstream, and this comment and the relevant parts of this patch can +be removed if/when that is merged. ---- sal/osl/unx/thread.cxx.orig 2019-02-12 22:11:36.000000000 +0000 -+++ sal/osl/unx/thread.cxx 2019-02-18 23:03:57.933036000 +0000 +--- sal/osl/unx/thread.cxx.orig 2019-03-15 19:58:40.000000000 +0000 ++++ sal/osl/unx/thread.cxx 2019-03-23 20:09:21.755731000 +0000 @@ -46,6 +46,10 @@ #include #endif @@ -15,33 +17,39 @@ This includes FreeBSD. Patch locally until fixed upstream. /**************************************************************************** * @@@ TODO @@@ * -@@ -88,11 +92,11 @@ +@@ -88,11 +92,19 @@ struct osl_thread_priority_st { -- int const m_Highest; -- int const m_Above_Normal; -- int const m_Normal; -- int const m_Below_Normal; -- int const m_Lowest; ++#ifndef NO_PTHREAD_PRIORITY + int m_Highest; + int m_Above_Normal; + int m_Normal; + int m_Below_Normal; + int m_Lowest; ++#else + int const m_Highest; + int const m_Above_Normal; + int const m_Normal; + int const m_Below_Normal; + int const m_Lowest; ++#endif /* NO_PTHREAD_PRIORITY */ }; #define OSL_THREAD_PRIORITY_INITIALIZER { 127, 96, 64, 32, 0 } -@@ -110,7 +114,7 @@ +@@ -110,7 +122,11 @@ struct osl_thread_global_st { pthread_once_t m_once; -- struct osl_thread_priority_st const m_priority; ++#ifndef NO_PTHREAD_PRIORITY + struct osl_thread_priority_st m_priority; ++#else + struct osl_thread_priority_st const m_priority; ++#endif /* NO_PTHREAD_PRIORITY */ struct osl_thread_textencoding_st m_textencoding; }; -@@ -545,7 +549,7 @@ +@@ -545,7 +561,7 @@ if ( 0 != err ) SAL_WARN("sal.osl", "pthread_setname_np failed with errno " << err); #elif defined __FreeBSD_kernel__ diff --git a/editors/libreoffice/files/patch-sal_osl_unx_uunxapi.cxx b/editors/libreoffice/files/patch-sal_osl_unx_uunxapi.cxx new file mode 100644 index 000000000000..b69fe52c57bd --- /dev/null +++ b/editors/libreoffice/files/patch-sal_osl_unx_uunxapi.cxx @@ -0,0 +1,25 @@ +--- sal/osl/unx/uunxapi.cxx.bak 2019-03-23 22:42:30.703590000 -0500 ++++ sal/osl/unx/uunxapi.cxx 2019-03-23 22:46:37.905090000 -0500 +@@ -563,14 +563,22 @@ + case EBFONT: + return "EBFONT"; + #endif ++#ifdef ENOSTR + case ENOSTR: + return "ENOSTR"; ++#endif ++#ifdef ENODATA + case ENODATA: + return "ENODATA"; ++#endif ++#if defined(ETIME) && (!defined(ETIMEDOUT) || ETIME != ETIMEDOUT) + case ETIME: + return "ETIME"; ++#endif ++#ifdef ENOSR + case ENOSR: + return "ENOSR"; ++#endif + #ifdef ENONET + case ENONET: + return "ENONET";