Closed Bug 149126 Opened 22 years ago Closed 22 years ago

Mail Client doesn't work correctly with Open Office with rpm builds

Categories

(Core Graveyard :: X-remote, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gsathis, Assigned: blizzard)

References

Details

Attachments

(2 files, 4 obsolete files)

From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0rc3) Gecko/20020523 BuildID: 2002052316 I have installed tarball installation under /opt/programs/mozilla. I edited /opt/programs/mozilla/mozilla and exported MOZILLA_FIVE_HOME as /opt/programs/mozilla. I configured OpenOffice to use external program /opt/programs/mozilla/mozilla for sending emails directly from Openoffice Writter or Calc. Everything worked fine. i.e when you do File ->Send->Document as E-Mail, it will open the mozilla-mail client and attach the document as attachment. The problem comes in if I have rpm builds that I have downloaded. I installed all the necessary mozilla rpms. In the OpenOffice I changed the external program as /usr/bin/mozilla. If try to send the document as email, I get the following error when there are no mozilla instances running /usr/lib/mozilla/mozilla-bin: relocation error: /usr/lib/libjsj.so: undefined symbol: __vt_24nsGetServiceByContractID If there is already an instance of mozilla browser or mozilla mail running, it opens up compose window, but it doesn't attach the document.I strongly believe it has something to do with rpm builds since it is working just fine under tarball install. Reproducible: Always Steps to Reproduce: 1. Install the mozilla rpms 2. Configure Openoffice to use mozilla for mail 3. try to send a document as email
Well, for starters, the tarball builds and the rpm builds are built with different compilers. At a glance, it looks as though you're mixing different mozilla installation libs. Could you verify that MOZILLA_FIVE_HOME is unset (the script should handle that itself)? Also make sure that you don't have multiple versions of the rpms installed. What distribution are you running on? What version of libc do you have installed? Does running /usr/bin/mozilla work outside of OpenOffice?
Outside OpenOffice, yes /usr/bin/mozilla works fine. I am not able to note any difference. In /usr/bin/mozilla, MOZILLA_FIVE_HOME is set to /usr/lib/mozilla and is exported in the first few lines. I have Redhat 7.3 installation. I am having the following packages as far as libc go. glibc-kernheaders-2.4-7.14 glibc-utils-2.2.5-34 glibc-common-2.2.5-34 glibc-2.2.5-34 glibc-devel-2.2.5-34 Infact, I have been following this bug since Redhat 7.2 and the RPMS since mozilla 0.99 have this problem. I was thinking I am doing something wrong and since it is consistent across various revision level, I thought I need to get some help and may be a bug in rpm build or mozilla. No, I don't have multiple versions of rpms installed. All the packages I have installed are rc3.
It sounds like you have some random library from an old installation lying around somewhere.
I have made a fresh RedHat 7.3 installation. I have installed the following packages mozilla-1.0rc3-0 mozilla-mail-1.0rc3-0 mozilla-chat-1.0rc3-0 mozilla-nss-1.0rc3-0 mozilla-nspr-1.0rc3-0 mozilla-js-debugger-1.0rc3-0 mozilla-dom-inspector-1.0rc3-0 mozilla-psm-1.0rc3-0 and I have the following glibc packages glibc-common-2.2.5-34 glibc-2.2.5-34 I have installed j2re-1.4.0_01-fcs rpm and OOo_1.0.0_LinuxIntel_install tarball installation. Same error occurs. /usr/lib/mozilla/mozilla-bin: relocation error: /usr/lib/libjsj.so: undefined symbol: __vt_24nsGetServiceByContractID I am able to reproduce the error on a fresh clean install of RedHat 7.3 (no redhat updates applied for any of the packages)
What does 'ldd /usr/lib/libjsj.so' return and what does 'ldd /usr/lib/mozilla/mozilla-bin' return?
Priority: -- → P5
Target Milestone: --- → Future
There is no /usr/lib/libjsj.so. There is a /usr/lib/mozilla-1.0.0/libjsj.so file. I did a 'ldd /usr/lib/mozilla-1.0.0/libjsj.so' The following is the result libxpcom.so => not found libplds4.so => not found libplc4.so => not found libnspr4.so => not found libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4002a000) libdl.so.2 => /lib/libdl.so.2 (0x4003e000) libmozjs.so => not found libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40042000) libm.so.6 => /lib/i686/libm.so.6 (0x40085000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) Also there is no mozilla directory in /usr/lib instead there is a mozilla-1.0.0 directory there. The result of 'ldd /usr/lib/mozilla-1.0.0/mozilla-bin' libgkgfx.so => not found libjsj.so => not found libmozjs.so => not found libxpcom.so => not found libplds4.so => not found libplc4.so => not found libnspr4.so => not found libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40026000) libdl.so.2 => /lib/libdl.so.2 (0x4003a000) libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x4003d000) libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x4016b000) libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x401a0000) libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x401a3000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x401c8000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401d0000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x401dd000) libm.so.6 => /lib/i686/libm.so.6 (0x402b2000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x402d4000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Very strange. Your error from comment #4 said /usr/lib/libjsj.so. Have you tried removing /usr/lib/mozilla/component.reg and running '/usr/lib/mozilla/run-mozilla.sh /usr/lib/mozilla/regxpcom' ? Then try running the browser.
I upgraded the browser to 1.0 version and removed /usr/lib/mozilla-1.0.0/component.reg and ran '/usr/lib/mozilla-1.0.0/run-mozilla.sh /usr/lib/mozilla-1.0.0/regxpcom' Now, when I do file->send->Document as Email, it opens up the mozilla mail client compose window (no errors), but it did not attach the document. With tar install, it does attach the document perfectly.
Use the /usr/lib/mozilla-1.0.0/mozilla-rebuild-databases.pl script.
I executed that perl script and it didn't help either.
Do you actually have a file called /usr/lib/libjsj.so? --Chris
Till about mozilla-1.0rc3, the file libjsj.so was there in /usr/lib/ directory. I filed this bug when I was in RC3. I have moved to 1.0 version now. This morning, I made a fresh RH7.3 installation this morning to answer your question correctly. I removed all the mozilla packages from RH7.3 default installation. It still left out /usr/lib/mozilla with some files in it. I removed that directory now I installed the following packages mozilla-chat-1.0.0-4 mozilla-mail-1.0.0-4 mozilla-psm-1.0.0-4 mozilla-1.0.0-4 mozilla-devel-1.0.0-4 mozilla-js-debugger-1.0.0-4 mozilla-nspr-devel-1.0.0-4 mozilla-nss-devel-1.0.0-4 mozilla-nspr-1.0.0-4 mozilla-dom-inspector-1.0.0-4 mozilla-nss-1.0.0-4 I installed the other packages as described in comment #4. Now, libjsj.so is in /usr/lib/mozilla-1.0.0/ directory. I checked rc2 rpms and rc3 rpms that I have. That file was in /usr/lib directory and not in 1.0 release, I think you have moved it to /usr/lib/mozilla-1.0.0/ dir. Coming to the problem, doing file->send->document as email, still doesn't work correctly. i.e. it does not attach the document. There is one difference, I don't get the relocation error of /usr/lib/libjsj.so anymore. Note: Till about my comment #4, I was on RC3 and on #6 I moved to 1.0.0. All my reference in this comment are based on Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020605.
The problem now sounds like a x-remote issue which I know the rpm scripts handle differently than the tarball scripts. Over to Blizzard.
Assignee: seawood → blizzard
Priority: P5 → --
Target Milestone: Future → ---
Does openoffice have hooks into mozilla or something? This is New Knowledge to me if it does.
Open Office have hooks to Netscape 6 rather than mozilla directly. But, since Netscape6 is technically mozilla, it works.(but with tar install of mozilla only) To configure openoffice for this, you have to open the Writer program of OpenOffice. From the menu on the top, select tools, goto options. Expand the openoffice.org section, and click on External Programs. You will find the form to put in the information about which program to use, if there is http, https, ftp,mailto links were found in the document. Also there is a place to put path of netscape 6.x to send document as email. I hope the above information will help you to reproduce the bug that I am talking about.
I can reproduce this with the patched run-mozilla.sh script from bug 122698. OpenOffice does send-document-as-email by creating a temporary file and then doing mozilla -compose attachment=file:///blah/blah/blah.sxw the mozilla script sees "-compose" and does mozilla-xremote-client "xfeDoCommand(composeMessage)" and so drops the attachment. xremote does not currently understand attachments. however, if there is already a running process, not using xremote will just bring up the Select Profile dialog, which is also not what you want. BTW: I couldn't get OpenOffice to not set MOZILLA_FIVE_HOME to /usr/local/OpenOffice.org1.0/program
nsAppRunner passes the attachment=xxxxxxxxxxxxx as an "argument" to nsWindowWatcher's OpenWindow (nsAppRunner considers atachment=xxx to be the "value" for the "-compose" argument). The compose window seems to take a laundry list of arguments (to,subject,body...) XRemoteService could do the same (also would need to open messengercompose.xul itself), but I'm not sure how the XRemote commandline would look... mozilla -remote "xfeDoCommand(composeMessage,attachment=xxxxxxxxxx)" This could actually be done with all the xfeDoCommands (none currently pass any arguments to OpenWindow). Mail allows you to specify folder/messsage by URI. Browser doesn't seem to do anything useful. WONTFIX? seems a bit like featuritus (would be rarely used), but wouldn't be hard to implement and would be pretty slick. => XRemote (this would be impossible to fix from the script alone)
Assignee: blizzard → seawood
arg! ==>XRemote
Assignee: seawood → blizzard
Component: Build Config → X-remote
QA Contact: granrose → blizzard
the patch could probably be cleaned up somewhat, but works. the following work properly: mozilla -remote "xfeDoCommand(composeMessage)" mozilla -remote "xfeDoCommand(composeMessage,attachment=file:///tmp/something)" mozilla -remote "xfeDoCommand(composeMessage,from=me@here.com,to=you@there.com)" this patch would also fix XRemote's involvement with bug 117114 by passing a pointer to null argument instead of a null pointer (trick WindowWatcher into thinking it's a dialog).
marking NEW
Status: UNCONFIRMED → NEW
Ever confirmed: true
the patch also makes it possible to open any folder from any mail/news account: mozilla -remote "xfeDoCommand(openInbox,mailbox://ajschult@eos.ncsu.edu/Drafts)" "xfeDoCommand(openInbox,news://ajschult@news.ncsu.edu/alt.os.linux)" that doesn't seem particularly useful to me, but it's to be one of the lofty objectives in bug 101169.
Keywords: mozilla1.2
Attachment #89505 - Attachment is patch: true
Keywords: patch
Blocks: 122698
*** Bug 204690 has been marked as a duplicate of this bug. ***
Attached patch update for the prior patch (obsolete) (deleted) — Splinter Review
I want the feature to do integration with Mozilla mailer, so update the patch to the recent code base. The update mainly lies in: 1). nsISupportsString instead of nsISupportsWString 2). nsAutoString instead of nsString 3). whitespace instead of comma as the separator between arguments.
add cc
It would be really nice if the patch could be added when 1.4 released. Anyone help to review?
Attachment #122731 - Flags: superreview?(dmose)
Attachment #122731 - Flags: review?(blizzard)
Blizzard and dmose, Please take a look at this patch. If possible, we'd like to put it in 1.4 release. Thx a lot. Henry
Comment on attachment 122731 [details] [diff] [review] update for the prior patch Index: mozilla/xpfe/components/xremote/src/XRemoteService.cpp =================================================================== RCS file: /cvsroot/mozilla/xpfe/components/xremote/src/XRemoteService.cpp,v retrieving revision 1.27 diff -u -r1.27 XRemoteService.cpp --- mozilla/xpfe/components/xremote/src/XRemoteService.cpp 7 Mar 2003 00:24:27 -0000 1.27 +++ mozilla/xpfe/components/xremote/src/XRemoteService.cpp 8 May 2003 05:19:56 -0000 @@ -499,6 +499,38 @@ } void +XRemoteService::FindRestInList(nsCString &aString, nsCString &retString, + PRUint32 *aIndexRet) +{ + // init our return + *aIndexRet = 0; + // make a copy to work with + nsCString tempString = aString; a) Since you're going to give up if there's no comma character, why not do that FindChar first and then use Substring() to copy it into TempString? This will save a copy in the case where you give up. + PRInt32 strIndex; + // find out of there's a , at the start of the string + strIndex = tempString.FindChar(' '); b) It doesn't look to me like the above comment is correct. The code looks for a ',' anywhere in the string. nsresult +XRemoteService::GetComposeLocation(char **_retval) +{ + // get the Compose chrome URL + *_retval = nsCRT::strdup("chrome://messenger/content/messengercompose/messengercompose.xul "); + + return NS_OK; +} c) Make the argument be a const char **, and just set the pointer to "string" directly. This is a constant string which will point into a .rodata section or equivalent, so there shouldn't be any ownership issue. + // see if there are any arguments on the end + nsCString restArgument; + PRUint32 index = 0; d) The first thing FindRestInList is set index to 0. Why do it here also? + FindRestInList(aArgument, restArgument, &index); + + if (!restArgument.IsEmpty()) + aArgument.Truncate(index); + + nsCOMPtr<nsISupportsString> arg; + arg = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID); e) use the do_CreateInstance(..., &rv) form and check the return value, please. + nsAutoString argValue; + argValue.AssignWithConversion(restArgument.get()); f) AssignWithConversion is deprecated. I suspect you want either NS_ConvertASCIItoUCS2 or NS_ConvertUTF8toUCS2, if you know that the input will be in one of those two encodings. Or could it be in some system specific encoding other than those? // open a new compose window else if (aArgument.EqualsIgnoreCase("composemessage")) { - nsCString tempString("mailto:"); - rv = OpenURL(tempString, nsnull, PR_FALSE); + /* + * Here we change to OpenChromeWindow instead of OpenURL so as to + * pass argument values to the compose window, especially attachments + */ + nsXPIDLCString composeLocation; + GetComposeLocation(getter_Copies(composeLocation)); + + if (!composeLocation) + return NS_ERROR_FAILURE; g) Assuming you've changed GetComposeLocation as I suggested, you no longer want an nsXPIDLCString here, because's there no need to free anything. Better to check the return value here, not look at composeLocation itself.
Attachment #122731 - Flags: superreview?(dmose) → superreview-
Attached patch XfeDoCommand accept secondary Argument_2 (obsolete) (deleted) — Splinter Review
Update the patch according to the points dmose mentioned.
Attachment #122731 - Attachment is obsolete: true
Attachment #123125 - Flags: superreview?(dmose)
Attachment #123125 - Flags: review?(blizzard)
Comment on attachment 123125 [details] [diff] [review] XfeDoCommand accept secondary Argument_2 >+ if (NS_FAILED(rv)) return rv; Put the if and then clauses on separate lines, please. The way it stands, it's not possible to set a break on the return in a debugger. Make that change, and you've got sr=dmose@mozilla.org.
Attachment #123125 - Flags: superreview?(dmose) → superreview+
Attached patch xfeDoCommand accept secondary arugments patch 3 (obsolete) (deleted) — Splinter Review
put the if and then clauses on separate lines
Attachment #123125 - Attachment is obsolete: true
Attachment #123228 - Flags: review?(blizzard)
Comment on attachment 123228 [details] [diff] [review] xfeDoCommand accept secondary arugments patch 3 this feature is cool and if possible, should be added to moz 1.4
Attachment #123228 - Flags: approval1.4?
Attachment #123228 - Flags: review?(blizzard) → review?(antonio.xu)
Attachment #123228 - Flags: review?(antonio.xu) → review+
please remove extra whitespace at the end of the line in your patch, and I still think you should use nsCAutoString instead of nsCString, but anyway,just remove extra whitespace is ok. Make that change, and you've got=antonio.xu@sun.com
revome the extra whitespaces and tabs.
Attachment #123228 - Attachment is obsolete: true
Attachment #123487 - Flags: approval1.4?
Comment on attachment 123487 [details] [diff] [review] xfeDoCommand accepts the secondary argument patch 4 This needs blizzard's review still.
Attachment #123487 - Flags: approval1.4? → review?(blizzard)
Attachment #123228 - Flags: approval1.4?
With this patch this works: ./mozilla -remote 'xfedocommand(composemessage to=blizzard@mozilla.org,attachment=file:///tmp/test.txt)' but this doesn't: ./mozilla -remote 'xfedocommand(composemessage, to=blizzard@mozilla.org,attachment=file:///tmp/test.txt)' Note the comma after composemessage. In the past all of our arguments take a form like this: openurl(http://www.mozilla.org,new-tab) openurl(http://www.mozilla.org, new-tab) and they work. This would change that.
Attachment #123487 - Flags: review?(blizzard) → review-
Attachment #122731 - Flags: review?(blizzard)
Attachment #123125 - Flags: review?(blizzard)
Thanks blizzard! I took whitespace as the separator just because the secondary argument uses comma as separator, too. Since it will cause inconsistency of the xfeDoCommand format, I've modified to comma instead of whitespace as the separator. Please review again.
Attachment #123487 - Attachment is obsolete: true
Attachment #123739 - Flags: review?(blizzard)
Comment on attachment 123739 [details] [diff] [review] xfeDoCommand accepts secondary argument. r=blizzard Seems to work pretty well and the code looks fine. Thanks!
Attachment #123739 - Flags: review?(blizzard) → review+
Attachment #123739 - Flags: approval1.4?
Comment on attachment 123739 [details] [diff] [review] xfeDoCommand accepts secondary argument. a=asa (on behalf of drivers) for checkin to 1.4
Attachment #123739 - Flags: approval1.4? → approval1.4+
checked into trunk
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: