# SliTaz package receipt. PACKAGE="boxbackup-server" VERSION="0.11.1" CATEGORY="network" SHORT_DESC="Server for the BoxBackup on-line backup system" MAINTAINER="domcox@users.sourceforge.net" DEPENDS="db libedit openssl perl zlib gcc-lib-base" BUILD_DEPENDS="db-dev libedit-dev openssl-dev zlib-dev" SOURCE="boxbackup" TARBALL="$SOURCE-$VERSION.tgz" WEB_SITE="http://www.boxbackup.org/" # stable # WGET_URL="$SF_MIRROR/$SOURCE/$TARBALL" WGET_URL="http://www.boxbackup.org/svn/box/packages/$TARBALL" TAGS="backup automatic server network" # Configuration variables HOSTNAME=`ifconfig | awk -F ":" '/cast/ {print substr($2,0, index($2," ")-1) }'` CONF_DIR="/etc/box" DATA_DIR="/var/lib/bbstored" CA_DIR="${CONF_DIR}/ca" BBUSER="bbstored" # Rules to configure and make the package. compile_rules() { cd $src ./configure --prefix=/usr $CONFIGURE_ARGS && make -j1 && { mkdir -p $DESTDIR cp -a parcels/boxbackup-${VERSION}-backup-client-linux-gnu $DESTDIR cp -a parcels/boxbackup-${VERSION}-backup-server-linux-gnu $DESTDIR rm -f $DESTDIR/boxbackup-${VERSION}-backup-server-linux-gnu/*.* } } # Rules to gen a SliTaz package suitable for Tazpkg. genpkg_rules() { mkdir -p $fs/usr/bin cp -a $_pkg/boxbackup-${VERSION}-backup-server-linux-gnu/bb* $fs/usr/bin cp -a $_pkg/boxbackup-${VERSION}-backup-server-linux-gnu/ra* $fs/usr/bin mkdir -p $fs/etc/init.d cp -a $stuff/bbstored $fs/etc/init.d } # Pre and post install commands for Tazpkg. pre_install() { # Stop daemon if [ -e /var/run/bbstored.pid ]; then /etc/init.d/bbstored stop fi } post_install() { # adduser BBUSER if needed if ! grep -q $BBUSER $1/etc/passwd; then echo -n "Adding user '$BBUSER'..." echo $BBUSER':x:505:505:BoxBackup Network Backup:/dev/null:/bin/false' >> $1/etc/passwd echo $BBUSER':!:14013:0:99999:7:::' >> $1/etc/shadow echo $BBUSER':x:505:' >> $1/etc/group echo $BBUSER':!::' >> $1/etc/gshadow status fi # Create config is needed if [ ! -e $CONF_DIR ]; then mkdir -p $CONF_DIR && chown $BBUSER $CONF_DIR && chmod 700 $CONF_DIR fi if [ ! -e $DATA_DIR/backup ]; then # Creating backup dir echo -n "Creating backup directory..." mkdir -p $DATA_DIR/backup && chown -R $BBUSER $DATA_DIR && chmod -R 700 $DATA_DIR status fi if [ ! -e $CONF_DIR/raidfile.conf ]; then # RAID Setup echo -n "Disabling deprecated userland RAID..." /usr/bin/raidfile-config $CONF_DIR 2048 $DATA_DIR 2>1 > /dev/null status chown -R $BBUSER $CONF_DIR/raidfile.conf && chmod 700 -R $CONF_DIR/raidfile.conf fi if [ ! -e $CONF_DIR/bbstored.conf ]; then # Setting hostname echo -n "Setting hostname... " if [ `hostname -f 2>1 > /dev/null;echo $?` -eq 0 ]; then HOSTNAME=`hostname -f` fi if [ -z $HOSTNAME ]; then HOSTNAME="127.0.0.1" fi echo $HOSTNAME # Setting up the CA environment echo -n "Creating certificates..." /usr/bin/bbstored-certs $CA_DIR init 2>1 > /dev/null status # Generate server certificate request echo -n "Generate server certificate request..." bbstored-config $CONF_DIR $HOSTNAME $BBUSER 2>1 > /dev/null status # Sign the server certificate echo -n "Sign the server certificate..." openssl x509 -req -sha1 -extensions usr_crt \ -in $CONF_DIR/$BBUSER/${HOSTNAME}-csr.pem \ -CA $CA_DIR/roots/serverCA.pem \ -CAkey $CA_DIR/keys/serverRootKey.pem \ -out $CA_DIR/servers/${HOSTNAME}-cert.pem \ -days 5000 2>1 > /dev/null status # Preparing the server certificates echo -n "Installing server certificate..." cp -a $CA_DIR/servers/${HOSTNAME}-cert.pem $CONF_DIR/$BBUSER status echo -n "Installing client certificate..." cp -a $CA_DIR/roots/clientCA.pem $CONF_DIR/$BBUSER status # Securing $CONF_DIR chown -R $BBUSER $CONF_DIR/bbstored* && chmod 700 -R $CONF_DIR/bbstored* fi if [ -e $CA_DIR ]; then # Warning echo echo "IMPORTANT NOTE:" echo "--------------" echo "The certificate authority directory $CA_DIR is intended to be" echo "moved to another system. It should not be kept on the backup server" echo "to limit the impact of a server compromise." fi } # Pre and post remove commands for Tazpkg pre_remove() { /etc/init.d/bbstored stop } post_remove() { if grep -q $BBUSER $1/etc/passwd; then echo -n "Removing $BBUSER user..." deluser bbstored status fi # Delete data if [ -e $DATA_DIR ]; then echo -n "Removing all backup data..." rm -r $DATA_DIR status fi # Delete bbstored conf files if [ -e $CONF_DIR/bbstored.conf ]; then echo -n "Removing config files..." rm -rf $CONF_DIR/bbstored rm -f $CONF_DIR/raidfile.conf rm -f $CONF_DIR/bbstored.conf status fi # Delete certificates if [ -e $CA_DIR ]; then echo -n "Removing certificates..." rm -r $CA_DIR status fi # Delete $CONF_DIR (if empty) if [ `ls -lA $CONF_DIR | wc -l` -eq 0 ]; then echo -n "Removing $CONF_DIR..." rm -r $CONF_DIR status fi # Delete PID, sock files rm -f /var/run/bbstored.* }