Closed Bug 442679 Opened 16 years ago Closed 16 years ago

Weave doesn't work on 64-bit Linux systems

Categories

(Cloud Services :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Future

People

(Reporter: donald.e.owen, Unassigned)

References

Details

(Keywords: 64bit)

Attachments

(5 files, 4 obsolete files)

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9) Gecko/2008061017 Firefox/3.0
Build Identifier: Weave 1.34

Using Ubuntu linux 8.04-amd64 with firefox 3.0 from the official ubuntu repositories weave 1.34 fails to sync.  Bug #442257 seems to be the same thing that was supposedly fixed but still does not work (for me at least) so I am re-filing this.  Possibly a regression bug?  If this is a duplicate then please mark this as such.

debug message:

2008-06-30 09:33:39	Service.DAV	DEBUG	LOCK request for lock
2008-06-30 09:33:40	Service.DAV	WARN	_makeRequest: got status 423
2008-06-30 09:33:40	Async.Generator	ERROR	Exception: [object Object]
2008-06-30 09:33:40	Async.Generator	DEBUG	Stack trace:
No traceback available.
This exception was raised by an asynchronous coroutine.
Initial async stack trace:
unknown (async) :: WeaveLockWrapper-17
module:wrap.js:91 :: WeaveNotifyWrapper
module:service.js:601 :: WeaveSync_sync
chrome://weave/content/sync.js:366 :: Sync_doSync
chrome://browser/content/browser.xul:1 :: oncommand
2008-06-30 09:34:09	Service.DAV	DEBUG	LOCK request for lock
2008-06-30 09:34:10	Service.DAV	DEBUG	GET request for meta/version
2008-06-30 09:34:11	Service.Main	TRACE	Retrieving keypair from server
2008-06-30 09:34:11	Service.DAV	DEBUG	GET request for private/privkey
2008-06-30 09:34:11	Service.DAV	DEBUG	GET request for public/pubkey
2008-06-30 09:34:11	Service.BmkEngine	INFO	Beginning sync
2008-06-30 09:34:11	Service.DAV	DEBUG	GET request for user-data/
2008-06-30 09:34:12	Service.DAV	DEBUG	GET request for user-data/bookmarks/
2008-06-30 09:34:12	Service.DAV	DEBUG	GET request for user-data/bookmarks/deltas/
2008-06-30 09:34:13	Service.RemoteStore	DEBUG	Downloading status file
2008-06-30 09:34:13	Service.DAV	DEBUG	GET request for user-data/bookmarks/status.json
2008-06-30 09:34:13	Service.Resource	DEBUG	GET request successful
2008-06-30 09:34:13	Service.JsonFilter	DEBUG	Decoding JSON data
2008-06-30 09:34:13	Service.RemoteStore	DEBUG	Downloading status file... done
2008-06-30 09:34:13	Service.BmkEngine	DEBUG	Remote/local sync GUIDs do not match.  Forcing initial sync.
2008-06-30 09:34:13	Service.BmkEngine	INFO	Local snapshot version: -1
2008-06-30 09:34:13	Service.BmkEngine	INFO	Server maxVersion: 3
2008-06-30 09:34:13	Service.DAV	DEBUG	GET request for user-data/bookmarks/keys.json
2008-06-30 09:34:13	Service.Resource	DEBUG	GET request successful
2008-06-30 09:34:13	Service.JsonFilter	DEBUG	Decoding JSON data
2008-06-30 09:34:13	Service.Main	ERROR	Cc['@labs.mozilla.com/Weave/Crypto;1'] is undefined (file 'file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/crypto.js', line 72)
2008-06-30 09:34:13	Service.Main	ERROR	()@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/crypto.js:72
Crypto_unwrapKey("Q+NETwaqtqXK2+GhdE51FySGmwOhl3/VjklI4rYfxnriIsUZWcyQxYHxNeOHmqlY8naOallVQ75LYgIZ5Ut2Unoho+Q4j2toskxdghEhPeTnlvLLoxvwo8O7bmWosP9rx0TcSb1OuHklcVF4cF5PpOE/q30ndE/1xmZwkcDOPj6YtLijvXRpMHK1plGcSjHbbPJWa7CO8ElK/D3tJF655JmlZqKZuij+ZE7lyrhxfT+caQDjkmh9R7X6ELbkEbJre2TTL8ejyEO0OAy8movF/T77rkDOgmgrPQkbL5ZqvG2fRso0QgNkgTFQjbO/CBRwBnkkb9iNpzit6nGIGUOPPw==",[object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/crypto.js:225
AsyncGen_run()@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:223
Async_run([object Object],Crypto_unwrapKey,(function (data) {self._log.trace(self.name + ": cb-" + cbId + " called.");self._cont(data);}),"Q+NETwaqtqXK2+GhdE51FySGmwOhl3/VjklI4rYfxnriIsUZWcyQxYHxNeOHmqlY8naOallVQ75LYgIZ5Ut2Unoho+Q4j2toskxdghEhPeTnlvLLoxvwo8O7bmWosP9rx0TcSb1OuHklcVF4cF5PpOE/q30ndE/1xmZwkcDOPj6YtLijvXRpMHK1plGcSjHbbPJWa7CO8ElK/D3tJF655JmlZqKZuij+ZE7lyrhxfT+caQDjkmh9R7X6ELbkEbJre2TTL8ejyEO0OAy8movF/T77rkDOgmgrPQkbL5ZqvG2fRso0QgNkgTFQjbO/CBRwBnkkb9iNpzit6nGIGUOPPw==",[object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:342
Async_sugar([object Object],(function (data) {self._log.trace(self.name + ": cb-" + cbId + " called.");self._cont(data);}),"Q+NETwaqtqXK2+GhdE51FySGmwOhl3/VjklI4rYfxnriIsUZWcyQxYHxNeOHmqlY8naOallVQ75LYgIZ5Ut2Unoho+Q4j2toskxdghEhPeTnlvLLoxvwo8O7bmWosP9rx0TcSb1OuHklcVF4cF5PpOE/q30ndE/1xmZwkcDOPj6YtLijvXRpMHK1plGcSjHbbPJWa7CO8ElK/D3tJF655JmlZqKZuij+ZE7lyrhxfT+caQDjkmh9R7X6ELbkEbJre2TTL8ejyEO0OAy8movF/T77rkDOgmgrPQkbL5ZqvG2fRso0QgNkgTFQjbO/CBRwBnkkb9iNpzit6nGIGUOPPw==",[object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:362
Keychain__getKeyAndIV([object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/remote.js:365
AsyncGen__cont([object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:236
([object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:136
AsyncGen__done([object Object])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:289
([object XPCWrappedNative_NoHelper])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/async.js:264
EL_notify([object XPCWrappedNative_NoHelper])@file:///home/donny/.mozilla/firefox/23w0iaku.default/extensions/%7B340c2bbc-ce74-4362-90b5-7c26312808ef%7D/modules/util.js:439
This exception was raised by an asynchronous coroutine.
Initial async stack trace:
unknown (async) :: BmkEngine__sync-32
module:engines.js:432 :: Engine_sync
module:service.js:684 :: WeaveSvc__syncEngine
module:wrap.js:91 :: WeaveNotifyWrapper
module:service.js:618 :: WeaveSync__sync
module:async.js:136 :: anonymous
module:async.js:264 :: anonymous
module:util.js:439 :: EL_notify


Reproducible: Always

Steps to Reproduce:
1.Use ubuntu 8.04
2. Use official repo version of ff-3.0
3. Use weave 1.34
Actual Results:  
Sync failed.

Expected Results:  
Sync succeeded.

HP Laptop dv6565us w/ Ubuntu Linux 8.04-amd64 w/ repo version of ff-3.0-final
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
(In reply to comment #0)
> User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9)

Oh. I think that's the problem -- 64 bit.

Reopening, because this is a different issue than 442257 was (that was just a bug, for this we'll need to add a 64-bit binary build to the xpi).
Status: RESOLVED → UNCONFIRMED
Resolution: DUPLICATE → ---
Status: UNCONFIRMED → NEW
Ever confirmed: true
Severity: major → normal
Summary: Sync fails on ubuntu linux, weave crypto undefined → Weave doesn't work on 64-bit Linux systems
Hm yes I missed that when I first scanned the bug.
I don't have a x86_64 setup, we should relnote this for 0.2 and target this but for 0.3.
Target Milestone: -- → 0.3
Donny:

Can you go to Tools->Error Console, and enter the following in the "Code" textbox at the top (one line) and press enter:

    Components.classes["@mozilla.org/xre/app-info;1"]
      .getService(Components.interfaces.nsIXULRuntime).XPCOMABI

You should see a item added to the top or bottom of the log; on my 32 bit Linux box I get "x86-gcc", not sure what a 64-bit box yields.
It returns :
x86_64-gcc3
I did try and run Weave on a plain-vanilla firefox binary from getfirefox.com on my x86-64 linux desktop and it did run fine.
So it might not be a 64-bit problem as much as a Ubuntu 8.04 x86-64 problem. I don't know for sure, just throwing out as much information as possible.
One clarification for above post, the getfirefox.com version is an "i686" build.  Don't know if that helps or not.
Right. When you're running Ubuntu's build you're getting a 64 bit binary, our builds are 32 bit. The Weave component is only 32 bit right now, so it only works in our 32 bit Firefox build.

Hopefully fixing this should just entail building a 64 bit .so, and shipping it in the xpi's /platform/Linux_x86_64-gcc3/WeaveCrypto.so.
Sounds good.  Anything I can do besides just wait for the 64-bit release?
One other question: just where exactly would I look for the above-mentioned /platform/Linux_86_64-gcc3/WeaveCrypto.so ?
I've got weave running on 64-bit Ubuntu now.  Justin was right: disabling the Makefile error for x86-64 was all it takes.

The whole procedure looks like this:

  sudo apt-get install xulrunner-1.9-dev mercurial build-essential
  hg clone http://hg.mozilla.org/labs/weave
  cd weave
  hg up -r 971e4f7e4710
  # the revision of the 0.2.0 release build, according to hg log
  vi src/Makefile
  # disable the error for x86_64 arch
  # add headers += -I/usr/include/nss -I/usr/include/nspr to get it to build on Ubuntu
  make sdkdir=/usr/lib/xulrunner-devel-1.9 xpi
  # you'll get a sync-Linux.xpi that contains a 64-bit-only build of weave

The changes I made to src/Makefile are (this patch might not apply cleanly due to tab->space conversion after travelling through my clipboard):

diff -r 971e4f7e4710 src/Makefile
--- a/src/Makefile	Tue Jul 01 00:05:27 2008 -0700
+++ b/src/Makefile	Wed Jul 02 01:13:06 2008 +0300
@@ -82,8 +82,12 @@ else
         ifeq ($(machine), arm)
 	  arch = arm
 	else
-          # FIXME: x86_64, ia64, sparc, Alpha
-          $(error Sorry, your arch is unknown/unsupported: $(machine))
+          ifeq ($(machine), x86_64)
+            arch = x86_64
+          else
+            # FIXME: x86_64, ia64, sparc, Alpha
+            $(error Sorry, your arch is unknown/unsupported: $(machine))
+          endif
         endif
       endif
     endif
@@ -127,6 +131,9 @@ headers = -I$(sdkdir)/include \
           -I$(sdkdir)/include/pipnss \
           -I$(sdkdir)/include/nspr \
           -I$(sdkdir)/sdk/include
+
+# hack to get it to work on ubuntu
+headers += -I/usr/include/nss -I/usr/include/nspr
 
 libdirs := $(sdkdir)/lib $(sdkdir)/bin
 libs := xpcomglue_s xpcom nspr4 \
(In reply to comment #10)

> +# hack to get it to work on ubuntu
> +headers += -I/usr/include/nss -I/usr/include/nspr

Hmm, I wonder if that's also needed on 32 bit systems, when using Ubuntu's xulrunner sdk (xulrunner-dev-1.9). Seems like Ubuntu should be providing those under /usr/lib/xulrunner-devel-1.9 anyway.
CCing asac and bsmedberg -- are the header locations mentioned in the last comments a packaging problem that should be fixed?
I've tried Marius fix, using Ubuntu Hardy x86_64. I had to add some workarounrds:

+          -I/usr/include/xulrunner-1.9/unstable \
+          -I/usr/include/xulrunner-1.9/stable

Now I have to sudo make in order to overcome the symbolic linking issue, but still the make process fails with the following error during testing phase:

test_service:	FAIL
make[2]: *** [test_service] Erreur 1
Ho sorry my fault I forgot to add the xpi at the end of the making command, please disregard last comment
For the lazy, here a compiled package with 64 bit support. I personally won't support this xpi though, disclaimer: use at your own risk.
Well, this seems easy enough to fix. So can we maybe expect to see this fix released with version 2.1, instead of what is targeted as 0.3?
We don't currently have an x64 build environment, but we will commit the fix, so at least getting it to build won't require any patches.
For 0.2.2 I had to edit install.rdf before compiling from source
I have filed a bug for Ubuntu and am presently packaging Weave (for x86_64 and x86). For ubuntu specific packaging, I suggest we chat there.

https://bugs.launchpad.net/ubuntu/+bug/246808
Comment #10 and comment #13 both have changes that look promising.  I believe additional changes to install.rdf will be necessary, since we now prevent the xpi from installing on x86_64.

Can someone put together a single patch and attach it to this bug?  Please request review from me when you do, I'll take a look and land it asap.
Here's the patch I'm using to build on Ubuntu 8.04. I'm also including the following change to src/Makefile, but I suspect this is specific to the way Ubuntu packages xulrunner and not something that should go into the weave source tree.

@@ -134,6 +138,9 @@
           -I$(sdkdir)/include/pipnss \
           -I$(sdkdir)/include/nspr \
           -I$(sdkdir)/sdk/include
+
+# hack to get it to work on ubuntu
+headers += -I/usr/include/nss -I/usr/include/nspr
 
 libdirs := $(sdkdir)/lib $(sdkdir)/bin
 libs := xpcomglue_s xpcom nspr4 \
Attachment #329217 - Flags: review?(thunder)
Comment on attachment 329217 [details] [diff] [review]
Patch to allow building on Linux x86_64 architecture

Looks good (though I have not tested it - I don't have an x86_64 build env).

I'm not sure whether to add your additional ubuntu-only changes.  Would they hurt compilation on other systems?

If/when I do set up an x86_64 build env, it is likely to be ubuntu (I already use ubuntu for the x86 one).
Attachment #329217 - Flags: review?(thunder) → review+
Patch from comment #22 committed:

changeset:   1000:e563ee2bbec1
tag:         tip
user:        Dan Mills <thunder@mozilla.com>
date:        Sun Jul 13 04:06:44 2008 -0700
summary:     Bug 442679: Add support for compiling on 64-bit linux systems.  Patch by Mark Wilkinson <mhw@kremvax.net>
Attachment #327774 - Attachment is obsolete: true
FWIW, using the weave-0.2.4 XPI provided here doesn't seem to work on my Linux x86_64 system (Fedora 8). I'm unable to sign in, it appears to accept my password, but when it's checking whether my passphrase is correct it always claims it's wrong, even though I know it's right (verified on more than one other computer). I get this in the log any time I try to sign in:

2008-07-16 09:12:15	Async.Generator	ERROR	Exception: Cc['@labs.mozilla.com/Weave/Crypto;1'] is undefined (module:crypto.js:72 :: TypeError)
The "is undefined" bit indicated that the module never got registered, shades of bug 442257 comment 9. What does ldd report for the .so? 
ldd when run from within the run-mozilla.sh script reports the following libraries not being found:

        libnspr4.so.0d => not found
        libsmime3.so.1d => not found
        libssl3.so.1d => not found
        libnss3.so.1d => not found
        libnssutil3.so.1d => not found
        libplds4.so.0d => not found
        libplc4.so.0d => not found

What's up wiht the .1d and .0d extensions I wonder? All those libraries, w/o those funky extensions, exist in my /usr/lib64 directory, not to mention that they exist in the same directory firefox-bin lives in (in my build directory).
Good news: Ubuntu released an updated xulrunner-1.9-dev package into hardy-proposed, and weave 0.2.5 now builds out of the box on a 64-bit, with no Makefile changes:

  sudo apt-get install xulrunner-1.9-dev mercurial build-essential
  hg clone http://hg.mozilla.org/labs/weave
  cd weave
  hg up -r c8bce0724360 # the 0.2.5 release build
  make sdkdir=/usr/lib/xulrunner-devel-1.9.0.1 xpi
  firefox weave-Linux.xpi 

Has anyone had any success with this on Fedora9 x64?  I downloaded the the attachment from comment #25 but I can't login to my account.  I get the following errors in the log:

2008-07-20 06:43:06	Chrome.Login	TRACE	Sync login window opened
2008-07-20 06:43:09	Chrome.Window	INFO	Logging in...
2008-07-20 06:43:09	Chrome.Window	INFO	User string: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1
2008-07-20 06:43:09	Chrome.Window	INFO	Weave version: 0.2.4
2008-07-20 06:43:09	Service.Main	DEBUG	Logging in user bikehead
2008-07-20 06:43:09	Service.Main	DEBUG	Verifying login for user bikehead
2008-07-20 06:43:09	Service.Main	CONFIG	Using server URL: https://services.mozilla.com/user/bikehead/
2008-07-20 06:43:09	Service.DAV	DEBUG	checkLogin called for user bikehead
2008-07-20 06:43:09	Service.DAV	DEBUG	GET request for root folder
2008-07-20 06:43:11	Service.DAV	DEBUG	checkLogin got response status 200
2008-07-20 06:43:11	Service.Main	INFO	Making sure server is initialized...
2008-07-20 06:43:11	Service.DAV	DEBUG	checkLogin called for user bikehead
2008-07-20 06:43:11	Service.DAV	DEBUG	GET request for root folder
2008-07-20 06:43:16	Service.DAV	DEBUG	checkLogin got response status 200
2008-07-20 06:43:16	Service.DAV	DEBUG	GET request for meta/version
2008-07-20 06:43:23	Service.Main	DEBUG	Caching keys
2008-07-20 06:43:23	Service.DAV	DEBUG	GET request for private/privkey
2008-07-20 06:43:25	Service.DAV	WARN	_makeRequest: got status 404
2008-07-20 06:43:25	Service.DAV	DEBUG	GET request for public/pubkey
2008-07-20 06:43:26	Service.DAV	WARN	_makeRequest: got status 404
2008-07-20 06:43:26	Service.Main	DEBUG	Generating new RSA key
2008-07-20 06:43:26	Async.Generator	ERROR	Exception: Cc['@labs.mozilla.com/Weave/Crypto;1'] is undefined (module:crypto.js:72 :: TypeError)
2008-07-20 06:43:26	Async.Generator	DEBUG	Async stack trace:
unknown (async) :: WeaveNotifyWrapper-60 (last self.cb generated at module:wrap.js:92 :: WeaveNotifyWrapper)
module:wrap.js:170 :: WeaveLocalLockWrapper
module:async.js:232 :: AsyncGen_run
module:async.js:331 :: Async_run
module:async.js:351 :: Async_sugar
module:service.js:620 :: WeaveSvc_loginAndInit
chrome://weave/content/login.js:146 :: Login_doOK
chrome://global/content/bindings/dialog.xml:354 :: anonymous
chrome://global/content/bindings/dialog.xml:355 :: _fireButtonEvent
chrome://global/content/bindings/dialog.xml:329 :: _doButtonCommand
chrome://global/content/bindings/dialog.xml:318 :: _handleButtonCommand

2008-07-20 06:43:28	Chrome.Login	TRACE	Sync login window closed
(In reply to comment #29)
> Good news: Ubuntu released an updated xulrunner-1.9-dev package into
> hardy-proposed, and weave 0.2.5 now builds out of the box on a 64-bit, with no
> Makefile changes:
> 
>   sudo apt-get install xulrunner-1.9-dev mercurial build-essential
>   hg clone http://hg.mozilla.org/labs/weave
>   cd weave
>   hg up -r c8bce0724360 # the 0.2.5 release build
>   make sdkdir=/usr/lib/xulrunner-devel-1.9.0.1 xpi
>   firefox weave-Linux.xpi 
> 

Hi Marius, following your instructions I get all sorts of errors on the make operation (see below).

This is under ubuntu 8.04 with a 64bit kernel.

Can you perhaps provide a percompiled xpi?

thanks


weave/weave$ make sdkdir=/usr/lib/xulrunner-devel-1.9.0.1 xpi
./build/subst.pl chrome.manifest 'buildid=1033' 'unpacked=# ' 'jar='
./build/subst.pl src/WeaveCrypto.rc 'buildid=1033' 'unpacked=# ' 'jar='
make -C src install
make[1]: Entering directory `weave/weave/src'
c++ -shared -pipe -Os -fPIC -fno-rtti -fno-exceptions -fno-strict-aliasing -fno-common -fshort-wchar -pthread -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -include xpcom-config.h -I/usr/lib/xulrunner-devel-1.9.0.1/include -I/usr/lib/xulrunner-devel-1.9.0.1/include/system_wrappers -I/usr/lib/xulrunner-devel-1.9.0.1/include/nss -I/usr/lib/xulrunner-devel-1.9.0.1/include/xpcom -I/usr/lib/xulrunner-devel-1.9.0.1/include/string -I/usr/lib/xulrunner-devel-1.9.0.1/include/pipnss -I/usr/lib/xulrunner-devel-1.9.0.1/include/nspr -I/usr/lib/xulrunner-devel-1.9.0.1/sdk/include -o WeaveCrypto.so WeaveCrypto.cpp WeaveCryptoModule.cpp -pthread -pipe -DMOZILLA_STRICT_API -Wl,-dead_strip -Wl,-exported_symbol -Wl,-z,defs -Wl,-h,WeaveCrypto.so -Wl,-rpath-link,/usr/lib/xulrunner-devel-1.9.0.1/bin /usr/lib/xulrunner-devel-1.9.0.1/lib/libxpcomglue_s.a -L/usr/lib/xulrunner-devel-1.9.0.1/lib -L/usr/lib/xulrunner-devel-1.9.0.1/bin -lxpcomglue_s -lxpcom -lnspr4 -lcrmf -lsmime3 -lssl3 -lnss3 -lnssutil3 -lplds4 -lplc4
In file included from WeaveCrypto.h:43,
                 from WeaveCrypto.cpp:41:
IWeaveCrypto.h:74: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:89: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:107: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:110: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:113: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:116: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:130: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
IWeaveCrypto.h:150: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
In file included from WeaveCrypto.cpp:41:
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.h:57: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’
WeaveCrypto.cpp:389: error: prototype for ‘nsresult WeaveCrypto::GenerateKeypair(const nsACString&, const nsACString&, const nsACString&, nsACString&, nsACString&)’ does not match any in class ‘WeaveCrypto’
WeaveCrypto.h:57: error: candidate is: virtual nsresult WeaveCrypto::GenerateKeypair(const nsACString&, const nsACString&, const nsACString&, nsACString&)
In file included from WeaveCrypto.h:43,
                 from WeaveCryptoModule.cpp:40:
IWeaveCrypto.h:74: error: expected ‘,’ or ‘...’ before ‘NS_OUTPARAM’

asac: does this need to be tracked as a downstream Ubuntu/debian bug, as was done in bug 442257? I don't think there's much to do on the Weave/Mozilla side of things here... Comment 28 here seems to indicate Redhat has the library naming correct.
Here are some instructions for Fedora 9 x86_64.

In order to build weave install this packages:

   su -c 'yum install xulrunner-devel-unstable nss-devel nspr-devel gcc gcc-c++'

Then apply the attached patch to adjust the Makefile and at the end start the build process with

   make sdkdir=/usr/lib64/xulrunner-sdk-1.9 xpi

As you can see there are some differences to Ubuntu. So we are in need of a more sophisticated Makefile to support more Linux distributions. Unfortunately this exceeds my skills :-)
I'm trying to use weave on FC9-64 so I tried the build patch attachement in #33.  It build fine, but when I try and use it I get the following error:

2008-08-21 16:18:31	Chrome.Window	INFO	User string: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1
2008-08-21 16:18:31	Chrome.Window	INFO	Weave version: 0.2.6

2008-08-21 16:18:33	Service.Main	DEBUG	Using cached keypair
2008-08-21 16:18:33	Async.Generator	ERROR	Exception: Cc['@labs.mozilla.com/Weave/Crypto;1'] is undefined (module:crypto.js:72 :: TypeError)
2008-08-21 16:18:33	Async.Generator	DEBUG	Async stack trace:
unknown (async) :: WeaveNotifyWrapper-1 (last self.cb generated at module:wrap.js:93 :: WeaveNotifyWrapper)
module:wrap.js:171 :: WeaveLocalLockWrapper
module:async.js:233 :: AsyncGen_run
module:async.js:332 :: Async_run
module:async.js:352 :: Async_sugar
module:service.js:633 :: WeaveSvc_loginAndInit
chrome://weave/content/login.js:146 :: Login_doOK
chrome://global/content/bindings/dialog.xml:354 :: anonymous
chrome://global/content/bindings/dialog.xml:355 :: _fireButtonEvent
chrome://global/content/bindings/dialog.xml:329 :: _doButtonCommand
chrome://global/content/bindings/dialog.xml:318 :: _handleButtonCommand

This occurs on a fresh install of weave on two different machines.  Why would the add-on build but fail during execution?
Current hg + the fc9 patch builds, but the resulting xpi just produces the same "there was a problem with the weave crypto component" error on load as the stock dist xpi. 

I hacked up the Makefile includes a bit more, and got it to build an xpi that actually runs, and appears to work (just successfully completed my first sync, with no errors reported). Here's what my working includes section looks like:

headers = -I$(sdkdir)/include \
          -I/usr/include/xulrunner-sdk-1.9/system_wrappers \
          -I/usr/include/xulrunner-sdk-1.9/xpcom \
          -I/usr/include/xulrunner-sdk-1.9//string \
          -I/usr/include/xulrunner-sdk-1.9/pipnss \
          -I$(sdkdir)/sdk/include \
          -I/usr/include/nspr4 \
          -I/usr/include/nss3 \
          -I/usr/include/xulrunner-sdk-1.9/unstable \
          -I/usr/include/xulrunner-sdk-1.9/stable

Obviously there's some hard-coded hackery in there that needs to be cleaned up, but it seems to work for now.
Attachment #336700 - Attachment description: working (for me) Fedora 9 x86_64 xpi → working (for me) Fedora 9 x86_64 weave 2.6 xpi
Attachment #336700 - Attachment mime type: application/octet-stream → application/x-xpinstall
This slightly different xpi contains both the normal weave-0.2.6 release and the extra files for 64 bit and therefore works on all platforms.
Attachment #329398 - Attachment is obsolete: true
Attachment #336700 - Attachment is obsolete: true
Unfortunately I get,
2008-09-23 09:51:26	Async.Generator	ERROR	Exception: Cc['@labs.mozilla.com/Weave/Crypto;1'] is undefined (module:crypto.js:72 :: TypeError)
with attachement 339944.  I'm running FC9 -x64.  Others are saying "works for me" but I get this problem on three different FC964 machines.  Any ideas as to what I'm missing?
(In reply to comment #37)
> Created an attachment (id=339944) [details]
> Precompiled weave-0.2.6 with 64 bit support
> 
> This slightly different xpi contains both the normal weave-0.2.6 release and
> the extra files for 64 bit and therefore works on all platforms.

Confirmed this build works under Debian Lenny amd64.
Confirmed working on amd64 Ubuntu Intrepid. Can this 32/64bit xpi capability be added to the main Weave release processes so the "official" xpi's are 64 capable?
we don't currently have any 64bit machines, sorry
unfortunately NOT working on openSUSE 11.0 64bit
Not functional under F9 x86_64 here.
Weave 0.2.7 for Debian/Ubuntu (tested on Debian testing and Ubuntu 8.04). Usual phrasing about how I don't provide support, these may eat your hard disk, etc...
The 0.2.7 Ubuntu build also fails for me on F9; the common problem has been the typical "problem with the weave crypto component" the entire time. I had a similar problem building from hg tip and the supplied patch.
The build from Samat Jain seems to work fine for me on Ubuntu 8.10 x64 with the repository version of firefox.  Thanks for the build Samat.
These bugs need to be triaged, removing 0.3 milestone setting.
Target Milestone: 0.3 → Future
The Makefile hacks I did that got 0.2.6 working on F9 x64 don't seem to work with 0.2.7... Samat, could you submit the source/patchset for you working ubuntu build so I can maybe use it as a starting point?

Mozilla devs: if I set you up with a login on an x86_64 fedora machine you could use for testing, would that help at all?
I've upgraded my account to 0.3 using my macbook. Now I try to sync with my home desktop that runs Ubuntu Hardy 8.04.2 x86_64. To that effect I discovered I have to build my own xpi. But it fails with the following output:

$ make sdkdir=/usr/lib/xulrunner-devel-1.9.0.5/ xpi
./build/subst.pl modules/constants.js 'weave_version=0.2.95' 'buildid=1289' 'update_url=https://people.mozilla.com/~cbeard/sync/dist/update-dev.rdf' 'unpacked=# ' 'jar='
./build/subst.pl src/WeaveCrypto.rc 'weave_version=0.2.95' 'buildid=1289' 'update_url=https://people.mozilla.com/~cbeard/sync/dist/update-dev.rdf' 'unpacked=# ' 'jar='
./build/subst.pl chrome.manifest 'weave_version=0.2.95' 'buildid=1289' 'update_url=https://people.mozilla.com/~cbeard/sync/dist/update-dev.rdf' 'unpacked=# ' 'jar='
./build/subst.pl install.rdf 'weave_version=0.2.95' 'buildid=1289' 'update_url=https://people.mozilla.com/~cbeard/sync/dist/update-dev.rdf' 'unpacked=# ' 'jar='
make -C src install
make[1]: entrant dans le répertoire « /home/leo/Programmes/weave/src »
/usr/lib/xulrunner-devel-1.9.0.5//bin/xpidl -m header -I/usr/lib/xulrunner-devel-1.9.0.5//idl IWeaveCrypto.idl
c++ -shared -pipe -Os -fPIC -fno-rtti -fno-exceptions -fno-strict-aliasing -fno-common -pthread -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -include xpcom-config.h -I/usr/lib/xulrunner-devel-1.9.0.5//include -I/usr/lib/xulrunner-devel-1.9.0.5//include/system_wrappers -I/usr/lib/xulrunner-devel-1.9.0.5//include/nss -I/usr/lib/xulrunner-devel-1.9.0.5//include/xpcom -I/usr/lib/xulrunner-devel-1.9.0.5//include/string -I/usr/lib/xulrunner-devel-1.9.0.5//include/pipnss -I/usr/lib/xulrunner-devel-1.9.0.5//include/nspr -I/usr/lib/xulrunner-devel-1.9.0.5//sdk/include -o WeaveCrypto.so WeaveCrypto.cpp WeaveCryptoModule.cpp -pthread -pipe -DMOZILLA_STRICT_API -Wl,-dead_strip -Wl,-exported_symbol -Wl,-z,defs -Wl,-h,WeaveCrypto.so -Wl,-rpath-link,/usr/lib/xulrunner-devel-1.9.0.5//bin /usr/lib/xulrunner-devel-1.9.0.5//lib/libxpcomglue_s.a -L/usr/lib/xulrunner-devel-1.9.0.5//lib -L/usr/lib/xulrunner-devel-1.9.0.5//bin -lxpcomglue_s -lxpcom -lnspr4 -lcrmf -lsmime3 -lssl3 -lnss3 -lnssutil3 -lplds4 -lplc4
In file included from WeaveCrypto.cpp:43:
/usr/lib/xulrunner-devel-1.9.0.5//include/nsStringAPI.h:1053: erreur: size of array «arg» is negative
make[1]: *** [WeaveCrypto.so] Erreur 1
make[1]: quittant le répertoire « /home/leo/Programmes/weave/src »
make: *** [build] Erreur 2
Hardware: x86 → x86_64
Appears one member from ubuntuforums found a workaround, although it's not clear how he did it: http://ubuntuforums.org/showpost.php?p=6456287&postcount=23
Here are the changes I needed to make to get weave built on Ubuntu Intrepid x86_64 (note - I have not yet tested the resulting .xpi file). I think the second hunk (adding the -fshort-wchar cflag) is the important one. I'm more uneasy about adding the extra include directories to the existing list - it just doesn't feel like the right thing to be doing. On Ubuntu I *think* the right way of setting this stuff would be to use the appropriate pkg-config options. For example, on Ubuntu x86_64 you can get these settings:

$ pkg-config --cflags libxul nss
-fshort-wchar -I/usr/include/xulrunner-1.9.0.5/stable -I/usr/include/nspr -I/usr/include/nss  
$ 

NOTE: I'm not saying that these are the right options for Ubuntu, simply that they seem to produce the right results. I've not investigated the intent behind how the xulrunner bits have been packaged on Ubuntu, and I don't know how portable the pkg-config package names are. Perhaps a broader survey would reveal how pkg-config could be used to adapt to the various Linux build environments.
Errrk! Ignore the changes to tabs.js. The only changes needed to build on x86_64 are to src/Makefile.
Attachment #355552 - Attachment is obsolete: true
Confirmed working on Ubuntu 8.10 x64

Propose moving to fixed.
Keywords: 64bit
Version: unspecified → 0.3
I may be misunderstanding what "moving to fixed" means, but surely the bug is not fixed until the actual users on 64-bit platforms can download a working Weave addon from addons.mozilla.org?

Just today I updated to Weave 0.2.7.1 which most certainly is not functional on Ubuntu 8.10 x64.
Whoa there man, you are way out of date.  Newest version is 0.2.105

https://wiki.mozilla.org/Labs/Weave and then go hit latest build
This bug has been fixed to the best of my knowledge.  Reports that it works on Fedora x64 and I can confirm it working on Ubuntu 8.10 x64.

If nobody can report non-functional with the latest build and the generic firefox download of 3.1b2 then I am marking this bug fixed.
Status: NEW → RESOLVED
Closed: 16 years ago16 years ago
Resolution: --- → FIXED
Component: Weave → General
Product: Mozilla Labs → Weave
Version: 0.3 → unspecified
QA Contact: weave → general
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: