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