From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Dec 31 22:10:03 2007 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 733BD16A420 for ; Mon, 31 Dec 2007 22:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5209713C457 for ; Mon, 31 Dec 2007 22:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id lBVMA3Jc077906 for ; Mon, 31 Dec 2007 22:10:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id lBVMA3VU077899; Mon, 31 Dec 2007 22:10:03 GMT (envelope-from gnats) Resent-Date: Mon, 31 Dec 2007 22:10:03 GMT Resent-Message-Id: <200712312210.lBVMA3VU077899@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Peter Jeremy Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37EBD16A418 for ; Mon, 31 Dec 2007 22:05:54 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from turion.vk2pj.dyndns.org (c220-239-20-82.belrs4.nsw.optusnet.com.au [220.239.20.82]) by mx1.freebsd.org (Postfix) with ESMTP id A0D9E13C442 for ; Mon, 31 Dec 2007 22:05:53 +0000 (UTC) (envelope-from peterjeremy@optushome.com.au) Received: from turion.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by turion.vk2pj.dyndns.org (8.14.2/8.14.2) with ESMTP id lBVM5plW061810; Tue, 1 Jan 2008 09:05:51 +1100 (EST) (envelope-from peter@turion.vk2pj.dyndns.org) Received: (from peter@localhost) by turion.vk2pj.dyndns.org (8.14.2/8.14.2/Submit) id lBVM5pNG061809; Tue, 1 Jan 2008 09:05:51 +1100 (EST) (envelope-from peter) Message-Id: <200712312205.lBVM5pNG061809@turion.vk2pj.dyndns.org> Date: Tue, 1 Jan 2008 09:05:51 +1100 (EST) From: Peter Jeremy To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/119204: [patch] OpenOffice 2.3 loops when file opened X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Peter Jeremy List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Dec 2007 22:10:03 -0000 >Number: 119204 >Category: ports >Synopsis: [patch] OpenOffice 2.3 loops when file opened >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Dec 31 22:10:02 UTC 2007 >Closed-Date: >Last-Modified: >Originator: Peter Jeremy >Release: FreeBSD 6.3-PRERELEASE amd64 >Organization: n/a >Environment: System: FreeBSD turion.vk2pj.dyndns.org 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #31: Wed Dec 26 09:23:54 EST 2007 root@turion.vk2pj.dyndns.org:/usr/obj/usr/src/sys/turion amd64 This also affects i386 and 7.x as well as openoffice-2-devel >Description: OOo will start but whenever I go to open a file, the "unpacking file" boxes will appear across the bottom and then the window will freeze (not update) and OOo will go to 100% CPU. The same effect occurs if I specify the file on the command line. Note that the 6.x/i386 system has been freshly rebuilt from scratch (no installed ports) so all the ports are consistent. This has been reported on the mailing lists as http://lists.freebsd.org/pipermail/freebsd-openoffice/2007-December/003453.html http://lists.freebsd.org/pipermail/freebsd-openoffice/2007-December/003487.html OOo reports the following errors: (process:81488): GLib-GObject-CRITICAL **: gtype.c:2242: initialization assertion failed, use IA__g_type_init() prior to this function (process:81488): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (process:81488): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed It may be related to the use of WITHOUT_MOZILLA which is the default on amd64 and I have it set locally for i386. >How-To-Repeat: Compile OOo with "WITHOUT_MOZILLA=yes" [this may not be required] Start OOo and open a document. The OOo window will stop updating (moving other windows over it leaves their image present) and OOo will start using 100% CPU. >Fix: The attached fix is an expanded version of the fix referenced in http://lists.freebsd.org/pipermail/freebsd-openoffice/2007-December/003464.html due to local problems when I tried to use that patch. --- shell/source/unix/sysshell/systemshell.cxx.orig 2007-12-29 07:58:28.000000000 +1100 +++ shell/source/unix/sysshell/systemshell.cxx 2007-12-29 20:15:55.000000000 +1100 @@ -72,8 +72,10 @@ const rtl::OUString LIB_RECENT_FILE = UNISTRING("librecentfile.so"); const rtl::OUString DEFAULT_CONTEXT = UNISTRING("DefaultContext"); +#ifdef GTK_IS_BROKEN void * (* sym_gtk_recent_manager_get_default) () = NULL; void (* sym_gtk_recent_manager_add_item) (void *, const char *) = NULL; +#endif // We need to re-encode file urls because osl_getFileURLFromSystemPath converts // to UTF-8 before encoding non ascii characters, which is not what other apps expect. @@ -114,6 +116,7 @@ return url; } +#ifdef GTK_IS_BROKEN bool init_recent_manager_api() { oslModule hDefault; @@ -128,24 +131,28 @@ bool ret = (NULL != sym_gtk_recent_manager_get_default) && (NULL != sym_gtk_recent_manager_add_item); return ret; } - +#endif //############################## void AddToRecentDocumentList(const rtl::OUString& aFileUrl, const rtl::OUString& aMimeType) { +#ifdef GTK_IS_BROKEN static bool bIsRecentManagerPresent = init_recent_manager_api(); +#endif // Convert file URL for external use (see above) rtl::OUString externalUrl = translateToExternalUrl(aFileUrl); if( 0 == externalUrl.getLength() ) externalUrl = aFileUrl; +#ifdef GTK_IS_BROKEN if( bIsRecentManagerPresent ) { void * recent_manager = sym_gtk_recent_manager_get_default(); sym_gtk_recent_manager_add_item(recent_manager, rtl::OUStringToOString(aFileUrl, RTL_TEXTENCODING_UTF8).getStr()); } else +#endif { rtl::OUString librecentfile_url = get_absolute_library_url(LIB_RECENT_FILE); >Release-Note: >Audit-Trail: >Unformatted: