aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Young <redtricycle@gmail.com>2011-07-18 22:14:56 -0300
committerRobby Workman <rworkman@slackbuilds.org>2011-07-21 22:52:11 -0500
commitcf44db154b16a9b30bc6a1db36e65a98ec94414d (patch)
treedeea49a5b7c5c244e889cea71471542f68b2a1c0
parent393d02330593dfb81528e64f808ff385453a0a83 (diff)
system/crashplan: Added (on and off-site backup)
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
-rw-r--r--system/crashplan/README12
-rw-r--r--system/crashplan/crashplan.SlackBuild111
-rw-r--r--system/crashplan/crashplan.info10
-rw-r--r--system/crashplan/doinst.sh29
-rw-r--r--system/crashplan/slack-desc19
5 files changed, 181 insertions, 0 deletions
diff --git a/system/crashplan/README b/system/crashplan/README
new file mode 100644
index 000000000000..d721b2648b28
--- /dev/null
+++ b/system/crashplan/README
@@ -0,0 +1,12 @@
+CrashPlan is a backup software product that backs up personal files once a
+day:
+
+* Free onsite backup, allowing you to back up to other computers and
+ attached external hard drives.
+* Free offsite backup when you back up to computers belonging to people you
+ know, like friends and family.
+* Paid cloud-storage backup: the free version of CrashPlan does not back up
+ to their cloud storage.
+
+The daemon is CrashPlanEngine, which is started by rc.crashplan.
+The GUI can be launched by using the command CrashPlanDesktop.
diff --git a/system/crashplan/crashplan.SlackBuild b/system/crashplan/crashplan.SlackBuild
new file mode 100644
index 000000000000..4b0021f21a74
--- /dev/null
+++ b/system/crashplan/crashplan.SlackBuild
@@ -0,0 +1,111 @@
+#!/bin/sh
+# Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST
+# Copyright 2009, 2010, 2011 Eric Hameleers, Eindhoven, Netherlands
+# Slackware build script for crashplan
+# Written by Lionel Young <redtricycle@gmail.com>
+# Based on http://slackbuilds.org/template.SlackBuild
+
+PRGNAM=crashplan
+VERSION=${VERSION:-3.0.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM=CrashPlan
+TARGETDIR=/opt/crashplan
+MANIFESTDIR=/var/crashplan # Directory to store backups to
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# Pre-compiled binaries included only for i486 and x86_64
+if [ ! "$ARCH" = "i486" -a ! "$ARCH" = "x86_64" ]; then
+ echo "$ARCH architecture not supported."
+ exit 1
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-install
+tar xvf $CWD/${SRCNAM}_${VERSION}_Linux.tgz
+cd $SRCNAM-install
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Repackage everything into /opt
+mkdir -p $PKG/$TARGETDIR/bin/
+mkdir -p $PKG/usr/bin
+mkdir -p $PKG/etc/rc.d/
+mkdir -p $PKG/usr/share/applications/
+mkdir -p $PKG/$MANIFESTDIR
+
+# Expand the archive
+( cd $PKG/$TARGETDIR
+ cat $TMP/$SRCNAM-install/${SRCNAM}_${VERSION}.cpi | gzip -d -c - | cpio -i --no-preserve-owner
+)
+
+# Make the log file world writable
+chmod 777 $PKG/$TARGETDIR/log
+
+# create a file that has our install vars, which is required to run
+echo "" > $PKG/${TARGETDIR}/install.vars
+echo "TARGETDIR=${TARGETDIR}" >> $PKG/${TARGETDIR}/install.vars
+echo "BINSDIR=${TARGETDIR}/bin" >> $PKG/${TARGETDIR}/install.vars
+echo "MANIFESTDIR=${MANIFESTDIR}" >> $PKG/${TARGETDIR}/install.vars
+echo "INITDIR=/etc/rc.d" >> $PKG/${TARGETDIR}/install.vars
+echo "RUNLVLDIR=/etc/rc.d" >> $PKG/${TARGETDIR}/install.vars
+NOW=`date +%Y%m%d`
+echo "INSTALLDATE=$NOW" >> $PKG/${TARGETDIR}/install.vars
+cat .defaults >> $PKG/${TARGETDIR}/install.vars
+JAVACOMMON=`which java`
+echo "JAVACOMMON=${JAVACOMMON}" >> $PKG/${TARGETDIR}/install.vars
+
+# Repackage the binaries in the appropriate directories
+cp -a scripts/CrashPlanDesktop scripts/CrashPlanEngine scripts/run.conf $PKG/$TARGETDIR/bin/
+ln -s $TARGETDIR/bin/CrashPlanDesktop $PKG/usr/bin/CrashPlanDesktop
+
+# Repackage the init script
+# Perform substitution on the init script; we need to make the value of INITSCRIPT available
+# to what lives in /etc/rc.d
+INITSCRIPT=$TARGETDIR/bin/CrashPlanEngine
+SEDEXPRSUB=`echo $INITSCRIPT | sed 's/\//\\\\\//g'`
+SEDEXPR="s/<INITSCRIPT>/$SEDEXPRSUB/g"
+sed $SEDEXPR scripts/crashplan > $PKG/etc/rc.d/rc.crashplan.new
+
+# Desktop icon
+cp -a scripts/CrashPlan.desktop $PKG/usr/share/applications/
+sed -i \
+ -e "s#Categories=;#Categories=System;Utility;#" \
+ -e "s#Exec=.*#Exec=${TARGETDIR}/bin/CrashPlanDesktop#" \
+ -e "s#Icon=.*#Icon=${TARGETDIR}/skin/icon_app_128x128.png#" \
+ $PKG/usr/share/applications/CrashPlan.desktop
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ EULA.txt README \
+ $PKG/$TARGETDIR/doc/* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/system/crashplan/crashplan.info b/system/crashplan/crashplan.info
new file mode 100644
index 000000000000..f688ce84c92d
--- /dev/null
+++ b/system/crashplan/crashplan.info
@@ -0,0 +1,10 @@
+PRGNAM="crashplan"
+VERSION="3.0.3"
+HOMEPAGE="http://www.crashplan.com"
+DOWNLOAD="http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.0.3_Linux.tgz"
+MD5SUM="0260aafd45577be89281eb436aefce39"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Lionel Young"
+EMAIL="redtricycle@gmail.com"
+APPROVED="Niels Horn"
diff --git a/system/crashplan/doinst.sh b/system/crashplan/doinst.sh
new file mode 100644
index 000000000000..6d96187db8be
--- /dev/null
+++ b/system/crashplan/doinst.sh
@@ -0,0 +1,29 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ if [ -e $OLD ]; then
+ cp -a $OLD ${NEW}.incoming
+ cat $NEW > ${NEW}.incoming
+ mv ${NEW}.incoming $NEW
+ fi
+ config $NEW
+}
+
+preserve_perms etc/rc.d/rc.crashplan.new
+
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
diff --git a/system/crashplan/slack-desc b/system/crashplan/slack-desc
new file mode 100644
index 000000000000..36c0ea572dbe
--- /dev/null
+++ b/system/crashplan/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+crashplan: crashplan (on and off-site backup)
+crashplan:
+crashplan: CrashPlan is a backup software product that backs up personal files
+crashplan: once a day. Free onsite backup, allowing you to back up to other
+crashplan: computers and attached external hard drives. Free offsite backup
+crashplan: when you back up to computers belonging to people you know, like
+crashplan: friends and family. Paid cloud-storage backup; the free version of
+crashplan: CrashPlan does not back up to their cloud storage.
+crashplan:
+crashplan:
+crashplan: Home: http://www.crashplan.com