Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

In order to view a page that uses O3D, it looks like I need some sort of plugin for Chrome/Chromium/Firefox. However, it seems like the only way to even get the plugin running in Chrom(ium) is to build the whole thing myself.

Is there any way to get my hands on a precompiled binary?

And how come the version of Firefox that ships with Ubuntu does not have native support for O3D content when the Windows version of Firefox ships with it out of the box?

share|improve this question

1 Answer 1

up vote 1 down vote accepted

After spending a considerable amount of time puzzling over this, I decided to just go ahead and compile it anyway. To make it easier for those who should want to try this in the future, I have prepared a small (yeah, right!) Bash script to automate the entire process.


Short version: if you just want me to give you a command to run, then here it is:

wget http://files.quickmediasolutions.com/install_o3d ; chmod 755 install_o3d ; ./install_o3d

Note: you will be prompted for your root password in order to install some packages.

The script may take a few minutes to run (or even up to an hour) but in the end you should end up with a package (or two) in /tmp/o3d/o3d_root/o3d/build/out/Debug/. This can then be installed for O3D support.


Long version: Google doesn't seem to provide precompiled binaries (that I could find at least) so I visited this page and got the instructions for building it and began constructing a Bash script to perform the actions.

First the script makes sure that you have the right packages on your system. It also checks to see if you provided a path as a parameter which is used to store the repositories (/tmp/o3d is used if no parameter is specified). Then it checks out Google's depot_tools and adds it to PATH (not permanently though). Then the script uses gclient to fetch all of the code from different repositories (believe me, it downloads a lot - like over 500MB of stuff). Unfortunately the DEPS file in the o3d_root/o3d folder seems to have the wrong revision number for breakpad so my script patches it on the fly and re-syncs.

Then the long and tedious process of building the plugin begins. Depending on the speed of your system this can take anywhere from 10 to 60 minutes.

When the process is done, you will find the packages in o3d_root/o3d/build/out/Debug/. Note that the build process may report an error and stop. But as far as I can tell, the error can be ignored because the packages are already built at that point. From there you can simply install the package.

Here is my script in its entirety:

#!/bin/bash

# check all dependencies
echo "Checking dependencies..."
echo "[Note: you may be prompted for your root password]"
sudo apt-get install python gcc g++ libxt-dev libgtk2.0-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libx11-dev fakeroot libnss3-dev libgconf2-dev libcurl4-gnutls-dev libgnome-keyring-dev libdbus-glib-1-dev subversion dpkg-dev build-essential debhelper cdbs

# check to see if a path was specified
if test $# -lt 1 ; then
  INSTALLPATH="/tmp/o3d"
  echo "No path specified, assuming '$INSTALLPATH'..."
else
  INSTALLPATH="$1"
fi

# make that directory
mkdir -p $INSTALLPATH
cd $INSTALLPATH

# checkout the depot_tools
echo "Checking out depot tools..."
svn co http://src.chromium.org/svn/trunk/tools/depot_tools

# export the path to these tools
export PATH="$PATH":`pwd`/depot_tools

mkdir o3d_root
cd o3d_root

# now download the code
echo "Downloading code..."
gclient config http://src.chromium.org/svn/trunk/o3d
gclient sync

# apply our patch to the DEPS file
echo "Applying patch to DEPS file..."
echo -e "13c13\n<   \"breakpad_rev\": \"604\",\n---\n>   \"breakpad_rev\": \"605\"," >DEPS.patch
patch o3d/DEPS DEPS.patch

# re-sync the code
echo "Re-syncing..."
gclient sync

# build it
echo "Building o3d plugin..."
cd o3d
./gypbuild

echo "Done!"
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.