Etherpad

Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2009-12-19 15:07:35
Size: 2162
Editor: pool-96-243-197-55
Comment:
Revision 15 as of 2010-02-22 15:23:17
Size: 4638
Editor: 92
Comment: Additional environment variables
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
sudo apt-get install sun-java6-jdk scala libmysql-java Install pre-requisite packages for getting and building Etherpad.

{{{
sudo apt-get install sun-java6-jdk scala mysql-server mysql-client libmysql-java mercurial
}}}

Etherpad will not build or run with openjdk-6-jdk or openjdk-6-jre. It also is best to use Sun's jar since fastjar seems to have some issues.

If you get this error:
{{{
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate
}}}
Checkout /etc/apt/sources.list and add this line if missing:
{{{
deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
}}}
Then
{{{
apt-get update
}}}
and try again.
Line 9: Line 32:

There are no releases of Etherpad at the moment, so we grab directly from mercurial.
Line 14: Line 39:
If you are running this command from behind an office firewall, you might run into a bug in Python for HTTPS from behind a proxy (http://bugs.python.org/issue1424152). Clone from the http URL instead.

{{{
hg clone http://etherpad.googlecode.com/hg/ etherpad
}}}
Line 15: Line 46:
The description below shows the difference between the original file and changes, leading + shows where lines are added or changed. This example show two changes to trunk/infrastructure/bin/makejar.sh, both removing /lib from a path.
Line 35: Line 67:
(As of Dec. 23, 2009 the patching instructions above are either incomplete or do not provide any explanation on what to do. Typing the first command directly into the command line produces a "not found" error. Please revise these instructions to be more clear in a step-by-step fashion rather than assuming a user should know what to do.) Yes and Update would be nice :)

If your mysql was updated you may need to restart mysql now.
Line 44: Line 80:
+ 'growingupfree.org': true,
+ 'quinncoincorporated.org': true,
+ 'yourdomain.com': true,
+ 'yourdomain.org': true,
Line 53: Line 89:
export JAVA_HOME=/usr/lib/jvm/java-6-sun/
export SCALA_HOME=/usr/share/java
export MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
$ export JAVA_HOME=/usr/lib/jvm/java-6-sun/
$ export SCALA_HOME=/usr/share/java
$ export MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
$ export JAVA="$JAVA_HOME/bin/java"
$ export SCALA="$SCALA_HOME/bin/scala"
$ export PATH="$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH"
Line 60: Line 99:
Set the variable "mysql" in the db setup script, to the name of your mysql client executable.
Line 61: Line 102:
#!sql
INSERT INTO `user` VALUES ('localhost','etherpad','YOUR_PASSWORD_HASH','N','N','N','N','N','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0);
diff -r 81287c8af1ac -r 5ea3ba9d10f7 trunk/etherpad/bin/setup-mysql-db.sh
--- a/trunk/etherpad/bin/setup-mysql-db.sh Fri Dec 18 18:44:23 2009 +1100
+++ b/trunk/etherpad/bin/setup-mysql-db.sh Sun Dec 20 15:53:08 2009 +0530
@@ -19,6 +19,7 @@
   exit 1
 fi
 
+mysql="mysql"
 db="etherpad"
 
 echo "Creating etherpad ${db}..."
}}}
Line 65: Line 115:
INSERT INTO `db` VALUES ('localhost','etherpad','etherpad','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') Run the db setup script.

{{{
#!sh
$ cd trunk/etherpad
$ sudo bin/setup-mysql-db.sh
Line 67: Line 122:

Note if you had setup a password for the root account on the mysql server, then this won't work directly. You can edit the setup-mysql-db.sh as needed to fix this. For example (there are two instances of this in the file)

{{{
- echo "create database ${db};" | ${mysql} -u root
+ echo "create database ${db};" | ${mysql} --user=root --password=secret
#and same for the other instances of ${mysql}
}}}

Install packages

Install pre-requisite packages for getting and building Etherpad.

sudo apt-get install sun-java6-jdk scala mysql-server mysql-client libmysql-java mercurial

Etherpad will not build or run with openjdk-6-jdk or openjdk-6-jre. It also is best to use Sun's jar since fastjar seems to have some issues.

If you get this error:

Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package sun-java6-jdk has no installation candidate

Checkout /etc/apt/sources.list and add this line if missing:

deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

Then

apt-get update

and try again.

Get Etherpad code

There are no releases of Etherpad at the moment, so we grab directly from mercurial.

hg clone https://etherpad.googlecode.com/hg/ etherpad

If you are running this command from behind an office firewall, you might run into a bug in Python for HTTPS from behind a proxy (http://bugs.python.org/issue1424152). Clone from the http URL instead.

hg clone http://etherpad.googlecode.com/hg/ etherpad

You will need to patch the etherpad code to build on Ubuntu: The description below shows the difference between the original file and changes, leading + shows where lines are added or changed. This example show two changes to trunk/infrastructure/bin/makejar.sh, both removing /lib from a path.

diff -r 81287c8af1ac trunk/infrastructure/bin/makejar.sh
--- a/trunk/infrastructure/bin/makejar.sh       Fri Dec 18 18:44:23 2009 +1100
+++ b/trunk/infrastructure/bin/makejar.sh       Sat Dec 19 09:50:05 2009 -0500
@@ -32,11 +32,11 @@
 
 TMPSTORE=/tmp/ajbuild-tmpstore-`date +%s`
 
-JARFILES=`echo $SCALA_HOME/lib/scala-library.jar lib/*.jar lib/manifest`
+JARFILES=`echo $SCALA_HOME/scala-library.jar lib/*.jar lib/manifest`
 function genjar {
     echo "unzipping JARs..."
     pushd $1 >> /dev/null
-    $JAR xf $SCALA_HOME/lib/scala-library.jar
+    $JAR xf $SCALA_HOME/scala-library.jar
     rm -rf META-INF
     for a in ../../lib/*.jar; do
        $JAR xf $a

(As of Dec. 23, 2009 the patching instructions above are either incomplete or do not provide any explanation on what to do. Typing the first command directly into the command line produces a "not found" error. Please revise these instructions to be more clear in a step-by-step fashion rather than assuming a user should know what to do.) Yes and Update would be nice Smile :)

If your mysql was updated you may need to restart mysql now.

Be sure to add you domain to the list of SUPERDOMAINs:

diff -r 81287c8af1ac trunk/etherpad/src/etherpad/globals.js
--- a/trunk/etherpad/src/etherpad/globals.js    Fri Dec 18 18:44:23 2009 +1100
+++ b/trunk/etherpad/src/etherpad/globals.js    Sat Dec 19 09:50:05 2009 -0500
@@ -29,6 +29,8 @@
 var SUPERDOMAINS = {
   'localbox.info': true,
   'localhost': true,
+  'yourdomain.com': true,
+  'yourdomain.org': true,
   'etherpad.com': true
 };

Configure Environment

$ export JAVA_HOME=/usr/lib/jvm/java-6-sun/
$ export SCALA_HOME=/usr/share/java
$ export MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
$ export JAVA="$JAVA_HOME/bin/java"
$ export SCALA="$SCALA_HOME/bin/scala"
$ export PATH="$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH"

Configure MySQL

Set the variable "mysql" in the db setup script, to the name of your mysql client executable.

diff -r 81287c8af1ac -r 5ea3ba9d10f7 trunk/etherpad/bin/setup-mysql-db.sh
--- a/trunk/etherpad/bin/setup-mysql-db.sh      Fri Dec 18 18:44:23 2009 +1100
+++ b/trunk/etherpad/bin/setup-mysql-db.sh      Sun Dec 20 15:53:08 2009 +0530
@@ -19,6 +19,7 @@
   exit 1
 fi
 
+mysql="mysql"
 db="etherpad"
 
 echo "Creating etherpad ${db}..."

Run the db setup script.

$ cd trunk/etherpad
$ sudo bin/setup-mysql-db.sh

Note if you had setup a password for the root account on the mysql server, then this won't work directly. You can edit the setup-mysql-db.sh as needed to fix this. For example (there are two instances of this in the file)

- echo "create database ${db};" | ${mysql} -u root
+ echo "create database ${db};" | ${mysql} --user=root --password=secret
#and same for the other instances of ${mysql}

Compiling Etherpad

From trunk/etherpad:

$ bin/rebuildjar.sh

Running Etherpad

$ bin/run-local.sh

Etherpad (last edited 2012-02-15 09:24:13 by 135)