svn commit: r357744 - in head/editors/libreoffice: . files

Jung-uk Kim jkim at FreeBSD.org
Sat Jun 14 05:52:27 UTC 2014


Author: jkim
Date: Sat Jun 14 05:52:26 2014
New Revision: 357744
URL: http://svnweb.freebsd.org/changeset/ports/357744
QAT: https://qat.redports.org/buildarchive/r357744/

Log:
  - Fix build with libc++ on i386.
  - Fix JAVA option.  A distfile was missing.
  - Work around INSTALLS_ICONS issues.  Icon caches were not properly updated.
  - Tidy up bash completion installation.

Added:
  head/editors/libreoffice/files/extra-libc++.i386   (contents, props changed)
Modified:
  head/editors/libreoffice/Makefile
  head/editors/libreoffice/distinfo
  head/editors/libreoffice/files/patch-bin__distro-install-desktop-integration

Modified: head/editors/libreoffice/Makefile
==============================================================================
--- head/editors/libreoffice/Makefile	Sat Jun 14 05:51:59 2014	(r357743)
+++ head/editors/libreoffice/Makefile	Sat Jun 14 05:52:26 2014	(r357744)
@@ -2,7 +2,7 @@
 
 .include "${.CURDIR}/Makefile.common"
 
-PORTREVISION=	0
+PORTREVISION=	1
 
 COMMENT=	Full integrated office productivity suite
 
@@ -245,6 +245,7 @@ DISTFILES+=	17410483b5b5f267aa18b7e00b65
 		2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz:src \
 		2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz:src \
 		3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip:src \
+		35c94d2df8893241173de1d16b6034c0-swingExSrc.zip:src \
 		39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip:src \
 		3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip:src \
 		3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz:src \
@@ -344,6 +345,7 @@ LDFLAGS=	-B${LOCALBASE}/bin
 
 .if ${COMPILER_FEATURES:Mlibc++}
 EXTRA_PATCHES+=	${FILESDIR}/extra-libc++:-p1
+EXTRA_PATCHES+=	${FILESDIR}/extra-libc++.i386:-p0
 .endif
 
 .if ${OSVERSION} < 900506
@@ -368,17 +370,15 @@ post-configure:
 	@${TOUCH} ${WRKSRC}/src.downloaded
 
 post-install:
-	@${RM} -f ${PLISTF} ${PLISTD}
+	@${RM} -f ${PLISTD} ${PLISTF}
 	# It seems that the empty directories are necessary for libreoffice keep them for now
 	@cd ${STAGEDIR}${PREFIX} && ${FIND} -d lib/libreoffice -type d \
 	    -empty -exec ${ECHO_CMD} "@exec ${MKDIR} %D/{}" \; >> ${PLISTD}
 
-	@cd ${STAGEDIR}${PREFIX} && ${FIND} -H -s bin lib man \
+	@cd ${STAGEDIR}${PREFIX} && ${FIND} -H -s bin etc lib man \
 	    \( -type f -o -type l \) -print >> ${PLISTF}
 	@cd ${STAGEDIR}${PREFIX} && ${FIND} -d lib/libreoffice -type d \
 	    -exec ${ECHO_CMD} "@dirrm {}" \; >> ${PLISTD}
-
-	@${ECHO_CMD} etc/bash_completion.d/libreoffice.sh >> ${PLISTF}
 	@${ECHO_CMD} "@dirrmtry etc/bash_completion.d" >> ${PLISTD}
 
 .for subdir in applications icons mime mimelnk
@@ -393,6 +393,18 @@ post-install:
 	    \( -type f -o -type l \) -print >> ${PLISTF}
 .endfor
 
+# XXX INSTALLS_ICONS does not work here, i.e., it runs *before* post-install.
+.if defined(INSTALLS_ICONS)
+	@for i in `${GREP} "^share/icons/.*/" ${PLISTF} | ${CUT} -d / -f 1-3 | ${SORT} -u`; do \
+		${ECHO_CMD} "@unexec /bin/rm %D/$${i}/icon-theme.cache 2>/dev/null || /usr/bin/true" \
+			>> ${TMPPLIST}.icons1; \
+		${ECHO_CMD} "@exec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \
+			>> ${TMPPLIST}; \
+		${ECHO_CMD} "@unexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \
+			>> ${TMPPLIST}; \
+	done
+.endif
+
 .if ${PORT_OPTIONS:MSDK}
 .for subdir in include share share/doc share/idl
 	@cd ${STAGEDIR}${PREFIX} && ${FIND} -H -s ${subdir}/libreoffice \
@@ -409,8 +421,4 @@ post-install:
 	@${GREP} '^@dirrmtry ' ${PLISTD} | ${SORT} -ru | \
 	    ${SED} -e '${PLIST_REINPLACE_DIRRMTRY}' >> ${TMPPLIST}
 
-	@${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d
-	@${INSTALL_SCRIPT} ${STAGEDIR}/etc/bash_completion.d/libreoffice.sh \
-	    ${STAGEDIR}${PREFIX}/etc/bash_completion.d
-
 .include <bsd.port.post.mk>

Modified: head/editors/libreoffice/distinfo
==============================================================================
--- head/editors/libreoffice/distinfo	Sat Jun 14 05:51:59 2014	(r357743)
+++ head/editors/libreoffice/distinfo	Sat Jun 14 05:52:26 2014	(r357744)
@@ -12,6 +12,8 @@ SHA256 (libreoffice/2e482c7567908d334785
 SIZE (libreoffice/2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz) = 262206
 SHA256 (libreoffice/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip) = 5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b
 SIZE (libreoffice/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip) = 1180582
+SHA256 (libreoffice/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip) = 64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1
+SIZE (libreoffice/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip) = 9796
 SHA256 (libreoffice/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip) = 085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045
 SIZE (libreoffice/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip) = 153157
 SHA256 (libreoffice/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip) = e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743

Added: head/editors/libreoffice/files/extra-libc++.i386
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/editors/libreoffice/files/extra-libc++.i386	Sat Jun 14 05:52:26 2014	(r357744)
@@ -0,0 +1,123 @@
+--- bridges/source/cpp_uno/gcc3_linux_intel/except.cxx.orig	2014-04-30 15:49:45.000000000 -0400
++++ bridges/source/cpp_uno/gcc3_linux_intel/except.cxx	2014-06-13 18:15:56.000000000 -0400
+@@ -22,11 +22,6 @@
+ #include <dlfcn.h>
+ #include <boost/unordered_map.hpp>
+ 
+-#include <cxxabi.h>
+-#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
+-#define _GLIBCXX_CDTOR_CALLABI
+-#endif
+-
+ #include <rtl/strbuf.hxx>
+ #include <rtl/ustrbuf.hxx>
+ #include <osl/diagnose.h>
+@@ -248,7 +243,11 @@
+             Reference< XInterface >() );
+     }
+ 
++#ifdef _LIBCPP_VERSION
++    pCppExc = __cxxabiv1::__cxa_allocate_exception( pTypeDescr->nSize );
++#else
+     pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
++#endif
+     ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
+ 
+     // destruct uno exception
+@@ -280,7 +279,11 @@
+     }
+     }
+ 
++#ifdef _LIBCPP_VERSION
++    __cxxabiv1::__cxa_throw( pCppExc, rtti, deleteException );
++#else
+     __cxa_throw( pCppExc, rtti, deleteException );
++#endif
+ }
+ 
+ //==================================================================================================
+--- bridges/source/cpp_uno/gcc3_linux_intel/share.hxx.orig	2014-04-30 15:49:45.000000000 -0400
++++ bridges/source/cpp_uno/gcc3_linux_intel/share.hxx	2014-06-13 18:14:07.000000000 -0400
+@@ -25,10 +25,39 @@
+ 
+ #include <uno/any2.h>
+ 
+-namespace CPPU_CURRENT_NAMESPACE
++#include <cxxabi.h>
++#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
++#define _GLIBCXX_CDTOR_CALLABI
++#endif
++
++#ifdef _LIBCPP_VERSION
++
++namespace __cxxabiv1
+ {
++    struct __class_type_info : public std::type_info
++    {
++        explicit __class_type_info( const char *__n ) : type_info( __n ) { }
++        virtual ~__class_type_info();
++    };
++
++    struct __si_class_type_info : public __class_type_info
++    {
++        explicit __si_class_type_info( const char *__n, const __class_type_info *__b ) :
++            __class_type_info( __n ), __base_type( __b ) { }
++        virtual ~__si_class_type_info();
++        const __class_type_info *__base_type;
++    };
+ 
+-void dummy_can_throw_anything( char const * );
++extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) _NOEXCEPT;
++
++extern "C" _LIBCPP_NORETURN void __cxa_throw(
++    void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) );
++}
++
++#else
++
++namespace CPPU_CURRENT_NAMESPACE
++{
+ 
+ // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
+ 
+@@ -85,6 +114,13 @@
+ extern "C" void __cxa_throw (
+     void *thrown_exception, void *tinfo, void (*dest) (void *) ) __attribute__((noreturn));
+ #endif
++}
++#endif
++
++namespace CPPU_CURRENT_NAMESPACE
++{
++
++void dummy_can_throw_anything( char const * );
+ 
+ // -----
+ 
+@@ -93,8 +129,11 @@
+     uno_Any * pUnoExc, uno_Mapping * pUno2Cpp );
+ //==================================================================================================
+ void fillUnoException(
++#ifdef _LIBCPP_VERSION
++    __cxxabiv1::__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
++#else
+     __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno );
+-
++#endif
+ }
+ 
+ namespace x86
+--- bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx.orig	2014-04-30 15:49:45.000000000 -0400
++++ bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx	2014-06-13 18:18:11.000000000 -0400
+@@ -203,7 +203,11 @@
+      catch (...)
+      {
+           // fill uno exception
++#ifdef _LIBCPP_VERSION
++        CPPU_CURRENT_NAMESPACE::fillUnoException( __cxxabiv1::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
++#else
+         fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
++#endif
+ 
+         // temporary params
+         for ( ; nTempIndices--; )

Modified: head/editors/libreoffice/files/patch-bin__distro-install-desktop-integration
==============================================================================
--- head/editors/libreoffice/files/patch-bin__distro-install-desktop-integration	Sat Jun 14 05:51:59 2014	(r357743)
+++ head/editors/libreoffice/files/patch-bin__distro-install-desktop-integration	Sat Jun 14 05:52:26 2014	(r357744)
@@ -1,5 +1,5 @@
---- bin/distro-install-desktop-integration.orig	2014-04-30 21:49:45.000000000 +0200
-+++ bin/distro-install-desktop-integration	2014-06-11 00:30:50.431187842 +0200
+--- bin/distro-install-desktop-integration.orig	2014-04-30 15:49:45.000000000 -0400
++++ bin/distro-install-desktop-integration	2014-06-13 13:33:37.000000000 -0400
 @@ -94,13 +94,13 @@
  }
  
@@ -49,3 +49,21 @@
      done
  fi
  
+@@ -178,12 +180,12 @@
+ test -f $DESTDIR/gid_Module_Root_Brand && echo "$PREFIXDIR/bin/soffice" >>$DESTDIR/gid_Module_Root_Brand
+ 
+ # create bash completion
+-mkdir -p $DESTDIR/etc/bash_completion.d
+-./bin/generate-bash-completion bin/bash-completion.in $DESTDIR/etc/bash_completion.d/$INSTALLDIRNAME.sh
+-test -f $DESTDIR/gid_Module_Root_Brand && echo "/etc/bash_completion.d/$INSTALLDIRNAME.sh" >>$DESTDIR/gid_Module_Root_Brand
++mkdir -p $DESTDIR$PREFIXDIR/etc/bash_completion.d
++./bin/generate-bash-completion bin/bash-completion.in $DESTDIR$PREFIXDIR/etc/bash_completion.d/$INSTALLDIRNAME.sh
++test -f $DESTDIR/gid_Module_Root_Brand && echo "$PREFIXDIR/etc/bash_completion.d/$INSTALLDIRNAME.sh" >>$DESTDIR/gid_Module_Root_Brand
+ if test "$WITH_COMPAT_OOWRAPPERS" = "YES" ; then
+-    ./bin/generate-bash-completion --compat-oowrappers bin/bash-completion.in $DESTDIR/etc/bash_completion.d/ooffice.sh
+-    test -f $DESTDIR/gid_Module_Root_Brand && echo "/etc/bash_completion.d/ooffice.sh" >>$DESTDIR/gid_Module_Root_Brand
++    ./bin/generate-bash-completion --compat-oowrappers bin/bash-completion.in $DESTDIR$PREFIXDIR/etc/bash_completion.d/ooffice.sh
++    test -f $DESTDIR/gid_Module_Root_Brand && echo "$PREFIXDIR/etc/bash_completion.d/ooffice.sh" >>$DESTDIR/gid_Module_Root_Brand
+ fi
+ 
+ echo "Install $OOINSTDIR/basis$VERSION/program/java-set-classpath";


More information about the svn-ports-head mailing list