About

Supporting the site

App Repository‎ > ‎Archives‎ > ‎

crashplan-3.2

Warning: This version is deprecated and no longer works with Crashplan. If you try to install this version, it will try to update itself automatically and "self-destroy", since the latest version requires another native library. This page is only kept for reference purposes.

Overview

CrashPlan is a provider of online backups. Their software allows continuous monitoring of folders for changes and backup to multiple destinations, such as external drives, remote machines, and friends' computers.

The CrashPlan engine is implemented in Java and therefore requires OpenJDK to be installed, but it requires also a couple of native libraries (namely, JTuxlibffi, and libmd5). We cross-compile those libraries and pack them with a pre-installed version of the client.

Acknowledgements

This DroboApp has been the result of much online searching. In particular, the patch for JTux was adapted from here. The idea of using the Debian version of libjna comes from here. Libffi as a requirement comes from here, as well as the idea of moving the tmp folder. LibMD5 was introduced in version 3.2, and the instructions came from here.

Preparation

Make sure you have a cross-compiling virtual machine properly setup.

Compilation

Note: it is only necessary to install OpenJDK 6 on the VM if you plan to cross-compile JTux and libmd5.

export DEST=/mnt/DroboFS/Shares/DroboApps/crashplan
cd ~/code/

apt-get install openjdk-6-jdk
wget http://basepath.com/aup/jtux/jtux.tar.gz
tar zxf jtux.tar.gz
cd jtux/
wget -O makefile.patch http://droboports.com/app-repository/crashplan-3-2/makefile.patch
patch < makefile.patch
make
JTUX=`pwd`
cd ..

wget ftp://sourceware.org/pub/libffi/libffi-3.0.10.tar.gz
tar zxf libffi-3.0.10.tar.gz
cd libffi-3.0.10
CFLAGS="$CFLAGS -O3" ./configure --host=arm-none-linux-gnueabi --prefix=$DEST --disable-static
make clean && make
FFI=`pwd`
cd ..

wget http://www.twmacinta.com/myjava/fast-md5-2.7.1.zip
unzip fast-md5-2.7.1.zip 
cd fast-md5
$CC $CFLAGS -O3 -shared -I. -I/usr/lib/jvm/java-6-openjdk/include src/lib/arch/linux_x86/MD5.c -o libmd5.so
MD5=`pwd`
cd ..

wget http://ftp.ch.debian.org/debian/pool/main/libj/libjna-java/libjna-java_3.2.7-4_armel.deb
mkdir libjna-java_3.2.7-4
dpkg -x libjna-java_3.2.7-4_armel.deb libjna-java_3.2.7-4
LIBJNA=`pwd`/libjna-java_3.2.7-4

wget http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.2_Linux.tgz
tar zxf CrashPlan_3.2_Linux.tgz
cd CrashPlan-install
./install.sh

Pre-Installation

We pre-install CrashPlan on the VM. This cannot be done as the superuser, otherwise it will change the behavior of the installer. Answer the installer questions as follows:

Would you like to switch users and install as root? (y/n) [y] n

Do you accept and agree to be bound by the EULA? (yes/no) y   

What directory do you wish to install CrashPlan to? [~/crashplan] /mnt/DroboFS/Shares/DroboApps/crashplan

/mnt/DroboFS/Shares/DroboApps/crashplan does not exist.  Create /mnt/DroboFS/Shares/DroboApps/crashplan? (y/n) [y] y

What directory do you wish to store backups in? [/mnt/DroboFS/Shares/DroboApps/crashplan/manifest] 

/mnt/DroboFS/Shares/DroboApps/crashplan/manifest does not exist.  Create /mnt/DroboFS/Shares/DroboApps/crashplan/manifest? (y/n) [y] y

Is this correct? (y/n) [y] y

Packaging

cd $DEST
mkdir -p tmp var/run var/log
chmod a+rwx tmp
cd lib
mkdir -p com/sun/jna/linux-arm
cp $LIBJNA/usr/lib/jni/libjnidispatch.so com/sun/jna/linux-arm/
jar uf jna-3.2.5.jar com/sun/jna/linux-arm/libjnidispatch.so
rm -fr com
cd ..
mv libjtux.so libjtux386.so
cp $JTUX/libjtux.so .
cp $FFI/arm-none-linux-gnueabi/.libs/libffi.so.5 .
cp $MD5/libmd5.so .
wget -O service.sh http://droboports.com/app-repository/crashplan-3-2/service.sh
chmod a+x service.sh
~/bin/package.sh

Installing

Download the TGZ file below and place it in you DroboApps share. If you do not have SSH access, reboot your Drobo. Otherwise, SSH in and type:

/usr/bin/DroboApps.sh install

Final remarks

This package does not change the DroboFS configuration in any way. In fact, it ships with no configuration at all. To configure the CrashPlan engine you have to install the software on your machine, and redirect the GUI to connect with the DroboFS. To do this, you need to establish a port forward from your desktop to the Drobo. Something like this should do the trick:

ssh -L 4200:localhost:4243 root@drobo-fs

Short explanation: this forwards any connection attempts to port 4200 on your machine to port 4243 on the Drobo. Once this is done, you have to tell the CrashPlan client to connect to port 4200 instead of the default (4243). To do this on a Mac, edit file "~/Library/Application Support/CrashPlan/ui.properties" and add this line:

 servicePort=4200

Save the file, and start the app. It will ask for the credentials to be used on the Drobo. Once logged in, if the folder selection screen shows the path /mnt/DroboFS/Shares, then congratulations, you have CrashPlan on your Drobo.

More information about configuring a server over SSH can be found here.

Upgrade advice

Upgrading should pose no problems, since even if the DroboApp is completely deleted CrashPlan will pickup from where it stopped. If the app does not start you can safely clean the "cache" folder. That should solve most, if not all problems.

Please visit the DroboSpace forums to leave your comments, suggestions and feedback.

ċ
crashplan.tgz
Download
  18923k v. 2 Mar 24, 2012, 3:57 AM Ricardo Padilha
ċ
libffi.so.5
Download
  105k v. 2 Mar 24, 2012, 3:38 AM Ricardo Padilha
ċ
libjtux.so
Download
  97k v. 2 Mar 24, 2012, 3:39 AM Ricardo Padilha
ċ
libmd5.so
Download
  8k v. 2 Mar 24, 2012, 3:39 AM Ricardo Padilha
ċ
makefile.patch
Download
  4k v. 2 Mar 24, 2012, 3:36 AM Ricardo Padilha
ċ
service.sh
Download
  1k v. 2 Mar 24, 2012, 3:35 AM Ricardo Padilha
Comments