wok annotate boxbackup-server/receipt @ rev 17940

boxbackup-server, nagisk, privoxy: fix post_install
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Apr 15 10:26:28 2015 +0200 (2015-04-15)
parents 223b265f40fd
children 600ae8f0e5e7
rev   line source
domcox@1357 1 # SliTaz package receipt.
domcox@1357 2
domcox@1357 3 PACKAGE="boxbackup-server"
domcox@10920 4 VERSION="0.11.1"
domcox@1357 5 CATEGORY="network"
domcox@1357 6 SHORT_DESC="Server for the BoxBackup on-line backup system"
domcox@12350 7 MAINTAINER="domcox@slitaz.org"
pascal@15202 8 LICENSE="GPL2"
domcox@1357 9 SOURCE="boxbackup"
domcox@1357 10 TARBALL="$SOURCE-$VERSION.tgz"
domcox@1357 11 WEB_SITE="http://www.boxbackup.org/"
domcox@5320 12 # stable
domcox@5320 13 # WGET_URL="$SF_MIRROR/$SOURCE/$TARBALL"
domcox@12350 14 #WGET_URL="http://www.boxbackup.org/svn/box/packages/$TARBALL"
pascal@12663 15 WGET_URL="http://www.boxbackup.org/export/3106/box/packages/$TARBALL"
jozee@3568 16 TAGS="backup automatic server network"
domcox@1357 17
pascal@15202 18 DEPENDS="db libedit openssl perl zlib gcc-lib-base"
pascal@15202 19 BUILD_DEPENDS="db-dev libedit-dev openssl-dev zlib-dev"
pascal@15202 20
domcox@1357 21 # Configuration variables
domcox@12350 22 HOSTNAME=$(ifconfig | awk -F ":" '/cast/ {print substr($2,0, index($2," ")-1) }')
domcox@12350 23 CONF_DIR="/etc/boxbackup"
domcox@1357 24 DATA_DIR="/var/lib/bbstored"
domcox@1357 25 CA_DIR="${CONF_DIR}/ca"
domcox@1357 26 BBUSER="bbstored"
domcox@1357 27
domcox@1357 28 # Rules to configure and make the package.
domcox@1357 29 compile_rules()
domcox@1357 30 {
domcox@1357 31 cd $src
pascal@4998 32 ./configure --prefix=/usr $CONFIGURE_ARGS &&
pascal@9047 33 make -j1 && {
pascal@9047 34 mkdir -p $DESTDIR
pascal@9099 35 cp -a parcels/boxbackup-${VERSION}-backup-client-linux-gnu $DESTDIR
pascal@9099 36 cp -a parcels/boxbackup-${VERSION}-backup-server-linux-gnu $DESTDIR
pascal@9099 37 rm -f $DESTDIR/boxbackup-${VERSION}-backup-server-linux-gnu/*.*
pascal@9047 38 }
domcox@1357 39 }
domcox@1357 40
domcox@1357 41 # Rules to gen a SliTaz package suitable for Tazpkg.
domcox@1357 42 genpkg_rules()
domcox@1357 43 {
domcox@1357 44 mkdir -p $fs/usr/bin
pascal@15202 45 cp -a $install/boxbackup-${VERSION}-backup-server-linux-gnu/bb* $fs/usr/bin
pascal@15202 46 cp -a $install/boxbackup-${VERSION}-backup-server-linux-gnu/ra* $fs/usr/bin
domcox@1357 47 mkdir -p $fs/etc/init.d
pankso@9697 48 cp -a $stuff/bbstored $fs/etc/init.d
domcox@1357 49 }
domcox@1357 50
domcox@1357 51
domcox@1357 52 # Pre and post install commands for Tazpkg.
domcox@1357 53
domcox@1357 54 pre_install()
domcox@1357 55 {
domcox@1357 56 # Stop daemon
domcox@1357 57 if [ -e /var/run/bbstored.pid ]; then
domcox@1357 58 /etc/init.d/bbstored stop
domcox@1357 59 fi
domcox@1357 60 }
domcox@1357 61
domcox@1357 62 post_install()
domcox@1357 63 {
domcox@12350 64 # default conf dir is now /etc/boxbackup
pascal@17940 65 if [ ! -e $1/etc/box/bbstored.conf ]; then
pascal@17940 66 mv $1/etc/box $1$CONF_DIR
domcox@12350 67 fi
domcox@12350 68
domcox@1357 69 # adduser BBUSER if needed
domcox@1357 70 if ! grep -q $BBUSER $1/etc/passwd; then
domcox@1357 71 echo -n "Adding user '$BBUSER'..."
domcox@1357 72 echo $BBUSER':x:505:505:BoxBackup Network Backup:/dev/null:/bin/false' >> $1/etc/passwd
domcox@1357 73 echo $BBUSER':!:14013:0:99999:7:::' >> $1/etc/shadow
domcox@1357 74 echo $BBUSER':x:505:' >> $1/etc/group
domcox@1357 75 echo $BBUSER':!::' >> $1/etc/gshadow
domcox@1357 76 status
domcox@1357 77 fi
domcox@1357 78
domcox@1357 79 # Create config is needed
pascal@17940 80 if [ ! -e $1$CONF_DIR ]; then
pascal@17940 81 mkdir -p $1$CONF_DIR &&
pascal@17940 82 chroot $1/ chown $BBUSER $CONF_DIR &&
pascal@17940 83 chmod 700 $1$CONF_DIR
domcox@1357 84 fi
domcox@1357 85
pascal@17940 86 if [ ! -e $1$DATA_DIR/backup ]; then
domcox@1357 87 # Creating backup dir
domcox@1357 88 echo -n "Creating backup directory..."
pascal@17940 89 mkdir -p $1$DATA_DIR/backup &&
pascal@17940 90 chroot $1/ chown -R $BBUSER $DATA_DIR &&
pascal@17940 91 chmod -R 700 $1$DATA_DIR
domcox@1357 92 status
domcox@1357 93 fi
domcox@1357 94
pascal@17940 95 if [ ! -e $1$CONF_DIR/raidfile.conf ]; then
domcox@1357 96 # RAID Setup
domcox@1357 97 echo -n "Disabling deprecated userland RAID..."
pascal@17940 98 chroot $1/ /usr/bin/raidfile-config $CONF_DIR 2048 $DATA_DIR 2>1 > /dev/null
domcox@1357 99 status
pascal@17940 100 chroot $1/ chown -R $BBUSER $CONF_DIR/raidfile.conf &&
pascal@17940 101 chmod 700 -R $1$CONF_DIR/raidfile.conf
domcox@1357 102 fi
domcox@1357 103
pascal@17940 104 if [ ! -e $1$CONF_DIR/bbstored.conf ]; then
domcox@1357 105 # Setting hostname
domcox@1357 106 echo -n "Setting hostname... "
pascal@17940 107 if [ $(chroot $1/ hostname -f 2>1 > /dev/null;echo $?) -eq 0 ]; then
pascal@17940 108 HOSTNAME=$(chroot $1/ hostname -f)
domcox@1357 109 fi
domcox@1357 110 if [ -z $HOSTNAME ]; then
domcox@1357 111 HOSTNAME="127.0.0.1"
domcox@1357 112 fi
pascal@17940 113 export $HOSTNAME
domcox@1357 114 echo $HOSTNAME
domcox@1357 115
domcox@1357 116 # Setting up the CA environment
domcox@1357 117 echo -n "Creating certificates..."
pascal@17940 118 chroot $1/ /usr/bin/bbstored-certs $CA_DIR init 2>1 > /dev/null
domcox@1357 119 status
domcox@1357 120
domcox@1357 121 # Generate server certificate request
domcox@1357 122 echo -n "Generate server certificate request..."
pascal@17940 123 chroot $1/ bbstored-config $CONF_DIR $HOSTNAME $BBUSER 2>1 > /dev/null
domcox@1357 124 status
domcox@1357 125
domcox@1357 126 # Sign the server certificate
domcox@1357 127 echo -n "Sign the server certificate..."
pascal@17940 128 chroot $1/ openssl x509 -req -sha1 -extensions usr_crt \
domcox@1357 129 -in $CONF_DIR/$BBUSER/${HOSTNAME}-csr.pem \
domcox@1357 130 -CA $CA_DIR/roots/serverCA.pem \
domcox@1357 131 -CAkey $CA_DIR/keys/serverRootKey.pem \
domcox@1357 132 -out $CA_DIR/servers/${HOSTNAME}-cert.pem \
domcox@1357 133 -days 5000 2>1 > /dev/null
domcox@1357 134 status
domcox@1357 135
domcox@1357 136 # Preparing the server certificates
domcox@1357 137 echo -n "Installing server certificate..."
pascal@17940 138 cp -a $1$CA_DIR/servers/${HOSTNAME}-cert.pem $1$CONF_DIR/$BBUSER
domcox@1357 139 status
domcox@1357 140 echo -n "Installing client certificate..."
pascal@17940 141 cp -a $1$CA_DIR/roots/clientCA.pem $1$CONF_DIR/$BBUSER
domcox@1357 142 status
domcox@1357 143
domcox@1357 144 # Securing $CONF_DIR
pascal@17940 145 chroot $1/ chown -R $BBUSER $CONF_DIR/bbstored* &&i
pascal@17940 146 chmod 700 -R $1$CONF_DIR/bbstored*
domcox@1357 147 fi
domcox@1357 148
domcox@1357 149 if [ -e $CA_DIR ]; then
domcox@1357 150 # Warning
domcox@1357 151 echo
domcox@1357 152 echo "IMPORTANT NOTE:"
domcox@1357 153 echo "--------------"
domcox@1357 154 echo "The certificate authority directory $CA_DIR is intended to be"
domcox@1357 155 echo "moved to another system. It should not be kept on the backup server"
domcox@1357 156 echo "to limit the impact of a server compromise."
domcox@1357 157 fi
domcox@1357 158 }
domcox@1357 159
domcox@1357 160 # Pre and post remove commands for Tazpkg
domcox@1357 161
domcox@1357 162 pre_remove()
domcox@1357 163 {
domcox@1357 164 /etc/init.d/bbstored stop
domcox@1357 165 }
domcox@1357 166
domcox@1357 167 post_remove()
domcox@1357 168 {
domcox@1357 169 if grep -q $BBUSER $1/etc/passwd; then
domcox@1357 170 echo -n "Removing $BBUSER user..."
domcox@1357 171 deluser bbstored
domcox@1357 172 status
domcox@1357 173 fi
domcox@1357 174 # Delete data
domcox@1357 175 if [ -e $DATA_DIR ]; then
domcox@1357 176 echo -n "Removing all backup data..."
domcox@1357 177 rm -r $DATA_DIR
domcox@1357 178 status
domcox@1357 179 fi
domcox@1357 180 # Delete bbstored conf files
domcox@1357 181 if [ -e $CONF_DIR/bbstored.conf ]; then
domcox@1357 182 echo -n "Removing config files..."
domcox@1357 183 rm -rf $CONF_DIR/bbstored
domcox@1357 184 rm -f $CONF_DIR/raidfile.conf
domcox@1357 185 rm -f $CONF_DIR/bbstored.conf
domcox@1357 186 status
domcox@1357 187 fi
domcox@1357 188 # Delete certificates
domcox@1357 189 if [ -e $CA_DIR ]; then
domcox@1357 190 echo -n "Removing certificates..."
domcox@1357 191 rm -r $CA_DIR
domcox@1357 192 status
domcox@1357 193 fi
domcox@1357 194 # Delete $CONF_DIR (if empty)
domcox@12350 195 if [ $(ls -lA $CONF_DIR | wc -l) -eq 0 ]; then
domcox@1357 196 echo -n "Removing $CONF_DIR..."
domcox@1357 197 rm -r $CONF_DIR
domcox@1357 198 status
domcox@1357 199 fi
domcox@1357 200 # Delete PID, sock files
domcox@1357 201 rm -f /var/run/bbstored.*
jozee@3568 202 }