Hello everyone,

I've got a two-in-one patch I'd like to know if any volunteers would
like to test to get ports/editors/openoffice.org-2-RC built and
installed under the following circumstances where it may be failing:

  1. You've installed the devel/icu 3.8+ port, and the build gives you
an undefined symbol named
"_ZN7icu_3_814LEFontInstance16getStaticClassIDEv" error
  2. You're running 8.0-CURRENT and the KSE stuff has been removed and
you installed diablo-jdk. This may be crashing when it tries to run the
java stuff during the OO.o build, causing the build to fail with obscure
error messages.

My fix for #1, above, is to provide a new knob WITH_SYSTEM_ICU that
tells configure to use the local-system's installed icu library, rather
than the one that was shipped with the OO.o tarball. It seems that
during the build, the include path unwittingly brings in your system
headers, but then attempts to link against the shipped library. Both of
these are incompatible APIs, and the result is an inability to resolve a
symbol that is public in the OO.o version, but protected in the ports
version. I am also attaching a patch for devel/icu that applies this
permission change.

My fix for #2, above, is to set the build jdk to "bsdjava" for FreeBSD
8.0+, which results in having Mk/bsd.java.mk look for the ports
source-build rather than using the diablo-jdk for doing java compiles.
For other versions of FreeBSD, the default is left at what it was before
(diablo, then ports).

-- 
Coleman Kane
diff --git a/editors/openoffice.org-2-RC/Makefile b/editors/openoffice.org-2-RC/Makefile
index c870dc7..5655df5 100644
--- a/editors/openoffice.org-2-RC/Makefile
+++ b/editors/openoffice.org-2-RC/Makefile
@@ -7,6 +7,7 @@
 
 PORTNAME?=	openoffice.org
 PORTVERSION?=	2.4.${SNAPDATE}
+PORTREVISION?=	1
 CATEGORIES+=	editors java
 MASTER_SITES+=	http://ooopackages.good-day.net/pub/OpenOffice.org/sources/ \
 		http://openoffice.lunarshells.com/sources/ \
@@ -53,7 +54,11 @@ WITHOUT_CPU_CFLAGS=	true
 
 USE_JAVA=	yes
 JAVA_BUILD=	jdk
+.if (${OSVERSION} >= 800000)
+JAVA_VENDOR=	bsdjava
+.else
 JAVA_VENDOR=	freebsd bsdjava
+.endif
 .if (${OSVERSION} >= 700000)
 JAVA_VERSION=	1.5
 .else
diff --git a/editors/openoffice.org-2-RC/files/Makefile.knobs b/editors/openoffice.org-2-RC/files/Makefile.knobs
index c0c76e9..a5a9644 100644
--- a/editors/openoffice.org-2-RC/files/Makefile.knobs
+++ b/editors/openoffice.org-2-RC/files/Makefile.knobs
@@ -54,6 +54,13 @@ CONFIGURE_ARGS+=	--enable-debug --enable-symbols=TRUE --enable-dbgutil
 CONFIGURE_ARGS+=	--enable-symbols=SMALL
 .endif
 
+.if defined(WITH_SYSTEM_ICU)
+LIB_DEPENDS+=		icule:${PORTSDIR}/devel/icu
+CONFIGURE_ARGS+=	--with-system-icu=yes
+.else
+CONFIGURE_ARGS+=	--with-system-icu=no
+.endif
+
 pre-fetch:
 .if (${OSVERSION} < 503001 && ${OSVERSION} >= 500000) || (${OSVERSION} < 492000)
 	@${ECHO}
@@ -86,6 +93,11 @@ pre-fetch:
 	@${ECHO} "You can compile OOo without gnome VFS support with"
 	@${ECHO} "make -DWITHOUT_GNOMEVFS"
 .endif
+.if !defined(WITH_SYSTEM_ICU)
+	@${ECHO}
+	@${ECHO} "You can compile OOo with devel/icu from ports with"
+	@${ECHO} "make -DWITH_SYSTEM_ICU"
+.endif
 .if !defined(WITH_SYSTEM_FREETYPE)
 	@${ECHO}
 	@${ECHO} "You can compile OOo with freetype2 from ports with"
diff --git a/devel/icu/Makefile b/devel/icu/Makefile
index bc367b3..78edecb 100644
--- a/devel/icu/Makefile
+++ b/devel/icu/Makefile
@@ -7,7 +7,7 @@
 
 PORTNAME=	icu
 PORTVERSION=	3.8.1
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=${PORTNAME}
diff --git a/devel/icu/files/patch-common_unicode_rbbi.h b/devel/icu/files/patch-common_unicode_rbbi.h
new file mode 100644
index 0000000..68f2fc2
--- /dev/null
+++ b/devel/icu/files/patch-common_unicode_rbbi.h
@@ -0,0 +1,17 @@
+--- common/unicode/rbbi.h.orig	2008-04-16 09:58:20.000000000 -0400
++++ common/unicode/rbbi.h	2008-04-16 09:59:00.000000000 -0400
+@@ -611,12 +611,14 @@
+     virtual int32_t getBreakType() const;
+ #endif
+ 
++public:
+     /**
+       * Set the type of the break iterator.
+       * @internal
+       */
+     virtual void setBreakType(int32_t type);
+ 
++protected:
+     /**
+       * Common initialization function, used by constructors and bufferClone.
+       *   (Also used by DictionaryBasedBreakIterator::createBufferClone().)

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to