Date: Tue, 1 Jan 2008 09:05:51 +1100 (EST) From: Peter Jeremy <peterjeremy@optushome.com.au> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/119204: [patch] OpenOffice 2.3 loops when file opened Message-ID: <200712312205.lBVM5pNG061809@turion.vk2pj.dyndns.org> Resent-Message-ID: <200712312210.lBVMA3VU077899@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712312205.lBVM5pNG061809>