I've gotten it working on Ubuntu 9.04 x86_64 with the Firefox 3.5
build from
https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa
For the lazy, I've posted prebuilt xpis, to install these files just
go to Tools->Addons, then either download the following files and drag
the xpi file onto the addons button, or click the following links and
authorize the sources when prompted:
For x86_64:
http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-linux-x86_64-0.5.25.0.xpi
For i386: (link will be up soon)
It was built from
http://gears.googlecode.com/svn/trunk revision 3373
If you'd like to build it yourself, use the following commands:
svn co
http://gears.googlecode.com/svn/trunk -r3373
cd trunk
wget
http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-gcc433.diff
patch -p0 -i gears-gcc433.diff
make
Patch is below (rename to gears-gcc433.diff after copying into a text
editor), if you'd prefer to download see
http://gkovacs.xvm.mit.edu/google-gears-firefox-3.5-x86_64/gears-gcc433.diff
Index: geolocation/backoff_manager.cc
===================================================================
--- geolocation/backoff_manager.cc (revision 3373)
+++ geolocation/backoff_manager.cc (working copy)
@@ -26,6 +26,7 @@
#include "gears/geolocation/backoff_manager.h"
#include <assert.h>
+#include <stdlib.h>
// The baseline minimum period between network requests.
static const int kBaselineMinimumRequestInterval = 1000 * 5; // 5
seconds
Index: cctests/test.cc
===================================================================
--- cctests/test.cc (revision 3373)
+++ cctests/test.cc (working copy)
@@ -700,15 +700,15 @@
bool ok = false;
JsParamType t = context->GetArgumentType(1);
- if (type == STRING16(L"bool") && t == JSPARAM_BOOL ||
- type == STRING16(L"int") && t == JSPARAM_INT ||
- type == STRING16(L"double") && t == JSPARAM_DOUBLE ||
- type == STRING16(L"string") && t == JSPARAM_STRING16 ||
- type == STRING16(L"null") && t == JSPARAM_NULL ||
- type == STRING16(L"undefined") && t == JSPARAM_UNDEFINED ||
- type == STRING16(L"array") && t == JSPARAM_ARRAY ||
- type == STRING16(L"function") && t == JSPARAM_FUNCTION ||
- type == STRING16(L"object") && t == JSPARAM_OBJECT) {
+ if ((type == STRING16(L"bool") && t == JSPARAM_BOOL) ||
+ (type == STRING16(L"int") && t == JSPARAM_INT) ||
+ (type == STRING16(L"double") && t == JSPARAM_DOUBLE) ||
+ (type == STRING16(L"string") && t == JSPARAM_STRING16) ||
+ (type == STRING16(L"null") && t == JSPARAM_NULL) ||
+ (type == STRING16(L"undefined") && t == JSPARAM_UNDEFINED) ||
+ (type == STRING16(L"array") && t == JSPARAM_ARRAY) ||
+ (type == STRING16(L"function") && t == JSPARAM_FUNCTION) ||
+ (type == STRING16(L"object") && t == JSPARAM_OBJECT)) {
ok = true;
}
context->SetReturnValue(JSPARAM_BOOL, &ok);
Index: desktop/desktop.cc
===================================================================
--- desktop/desktop.cc (revision 3373)
+++ desktop/desktop.cc (working copy)
@@ -216,14 +216,14 @@
}
// Resolve the icon urls
- if (!shortcut_info->icon16x16.url.empty() &&
- !ResolveUrl(&shortcut_info->icon16x16.url, &error_) ||
- !shortcut_info->icon32x32.url.empty() &&
- !ResolveUrl(&shortcut_info->icon32x32.url, &error_) ||
- !shortcut_info->icon48x48.url.empty() &&
- !ResolveUrl(&shortcut_info->icon48x48.url, &error_) ||
- !shortcut_info->icon128x128.url.empty() &&
- !ResolveUrl(&shortcut_info->icon128x128.url, &error_)) {
+ if ((!shortcut_info->icon16x16.url.empty() &&
+ !ResolveUrl(&shortcut_info->icon16x16.url, &error_)) ||
+ (!shortcut_info->icon32x32.url.empty() &&
+ !ResolveUrl(&shortcut_info->icon32x32.url, &error_)) ||
+ (!shortcut_info->icon48x48.url.empty() &&
+ !ResolveUrl(&shortcut_info->icon48x48.url, &error_)) ||
+ (!shortcut_info->icon128x128.url.empty() &&
+ !ResolveUrl(&shortcut_info->icon128x128.url, &error_))) {
return false;
}
Index: base/common/string16.h
===================================================================
--- base/common/string16.h (revision 3373)
+++ base/common/string16.h (working copy)
@@ -46,6 +46,7 @@
#define GEARS_BASE_COMMON_STRING16_H__
#include <string>
+#include <string.h>
#include "gears/base/common/basictypes.h"
// Need to cast literals (Linux, OSX) and SQLite void* retvals (all
platforms)
Index: base/common/string_utils.cc
===================================================================
--- base/common/string_utils.cc (revision 3373)
+++ base/common/string_utils.cc (working copy)
@@ -25,6 +25,7 @@
#include "gears/base/common/string_utils.h"
#include "third_party/convert_utf/ConvertUTF.h"
+#include <limits.h>
#if defined(OS_ANDROID)
// Android is missing wcslen. This is just a wide character strlen.
Index: base/common/http_utils.cc
===================================================================
--- base/common/http_utils.cc (revision 3373)
+++ base/common/http_utils.cc (working copy)
@@ -27,6 +27,7 @@
#include <iterator>
#include <vector>
+#include <stdlib.h>
#include "gears/base/common/http_utils.h"
//
----------------------------------------------------------------------