wok-next annotate boxbackup/receipt @ rev 20456

Combine receipts
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Mar 02 03:33:54 2018 +0200 (2018-03-02)
parents
children 471441bc00c3
rev   line source
al@20456 1 # SliTaz package receipt v2.
al@20456 2
al@20456 3 PACKAGE="boxbackup"
al@20456 4 VERSION="0.11.1"
al@20456 5 CATEGORY="meta"
al@20456 6 SHORT_DESC="BoxBackup on-line backup system"
al@20456 7 MAINTAINER="domcox@slitaz.org"
al@20456 8 LICENSE="GPL2"
al@20456 9 WEB_SITE="http://www.boxbackup.org/"
al@20456 10
al@20456 11 TARBALL="boxbackup-$VERSION.tgz"
al@20456 12 # stable
al@20456 13 # WGET_URL="$SF_MIRROR/boxbackup/$TARBALL"
al@20456 14 #WGET_URL="http://www.boxbackup.org/svn/box/packages/$TARBALL"
al@20456 15 WGET_URL="http://www.boxbackup.org/export/3106/box/packages/$TARBALL"
al@20456 16
al@20456 17 BUILD_DEPENDS="db-dev libedit-dev openssl-dev zlib-dev perl"
al@20456 18 SPLIT="boxbackup-client boxbackup-server"
al@20456 19
al@20456 20 # Configuration variables
al@20456 21
al@20456 22 compile_rules() {
al@20456 23 ./configure \
al@20456 24 --prefix=/usr \
al@20456 25 $CONFIGURE_ARGS &&
al@20456 26 make -j1 &&
al@20456 27 {
al@20456 28 mkdir -p $DESTDIR
al@20456 29 cp -a parcels/boxbackup-$VERSION-backup-client-linux-gnu $DESTDIR
al@20456 30 cp -a parcels/boxbackup-$VERSION-backup-server-linux-gnu $DESTDIR
al@20456 31 rm -f $DESTDIR/boxbackup-$VERSION-backup-server-linux-gnu/*.*
al@20456 32 }
al@20456 33
al@20456 34 cook_pick_manpages $src/docs/man/*
al@20456 35 }
al@20456 36
al@20456 37 genpkg_rules() {
al@20456 38 case $PACKAGE in
al@20456 39 boxbackup)
al@20456 40 DEPENDS="$SPLIT"
al@20456 41 ;;
al@20456 42 *-client)
al@20456 43 mkdir -p $fs/usr/bin
al@20456 44 cp -a $install/boxbackup-$VERSION-backup-client-linux-gnu/bb* $fs/usr/bin
al@20456 45 rm -f $fs/usr/bin/*.*
al@20456 46 mkdir -p $fs/etc/init.d
al@20456 47 cp -a $stuff/bbackupd $fs/etc/init.d
al@20456 48 CAT="network|client"
al@20456 49 DEPENDS="db libedit openssl perl zlib gcc-lib-base"
al@20456 50 TAGS="backup automatic client"
al@20456 51 ;;
al@20456 52 *-server)
al@20456 53 mkdir -p $fs/usr/bin
al@20456 54 cp -a $install/boxbackup-$VERSION-backup-server-linux-gnu/bb* $fs/usr/bin
al@20456 55 cp -a $install/boxbackup-$VERSION-backup-server-linux-gnu/ra* $fs/usr/bin
al@20456 56 mkdir -p $fs/etc/init.d
al@20456 57 cp -a $stuff/bbstored $fs/etc/init.d
al@20456 58 CAT="network|server"
al@20456 59 DEPENDS="db libedit openssl perl zlib gcc-lib-base"
al@20456 60 TAGS="backup automatic server network"
al@20456 61 ;;
al@20456 62 esac
al@20456 63 }
al@20456 64
al@20456 65 pre_install_boxbackup_client() {
al@20456 66 RUN_DMON=0
al@20456 67
al@20456 68 # Stop daemon
al@20456 69 if [ -z "$1" -a -e /var/run/bbackupd.pid ]; then
al@20456 70 /etc/init.d/bbackupd stop
al@20456 71 RUN_DMON=1
al@20456 72 fi
al@20456 73 }
al@20456 74
al@20456 75 post_install_boxbackup_client() {
al@20456 76 CONF_DIR="/etc/boxbackup"
al@20456 77 DATA_DIR="/var/lib/bbackupd"
al@20456 78
al@20456 79 # Creating conf dir
al@20456 80 if [ ! -e "$1/$CONF_DIR" ]; then
al@20456 81 mkdir -p "$1/$CONF_DIR" && chmod 755 "$1/$CONF_DIR"
al@20456 82 fi
al@20456 83 if [ ! -e "$1/$DATA_DIR" ]; then
al@20456 84 mkdir -p "$1/$DATA_DIR" && chmod 700 "$1/$DATA_DIR"
al@20456 85 fi
al@20456 86 if [ -z "$1" ]; then
al@20456 87 # Start daemon (if stopped by install)
al@20456 88 if [ $RUN_DMON -eq 1 ]; then
al@20456 89 /etc/init.d/bbackupd start
al@20456 90 fi
al@20456 91 fi
al@20456 92 true
al@20456 93 }
al@20456 94
al@20456 95 pre_remove_boxbackup_client() {
al@20456 96 # Stop daemon
al@20456 97 if [ -z "$1" ]; then
al@20456 98 if [ -e /var/run/bbackupd.pid ]; then
al@20456 99 /etc/init.d/bbackupd stop
al@20456 100 fi
al@20456 101 fi
al@20456 102 }
al@20456 103
al@20456 104 post_remove_boxbackup_client() {
al@20456 105 CONF_DIR="/etc/boxbackup"
al@20456 106 DATA_DIR="/var/lib/bbackupd"
al@20456 107
al@20456 108 # Delete DATA directory
al@20456 109 rm -rf "$1/$DATA_DIR"
al@20456 110
al@20456 111 # Delete Client config files
al@20456 112 rm -rf "$1/$CONF_DIR"/bbackupd*
al@20456 113
al@20456 114 # Delete CONF dir (if empty)
al@20456 115 if [ $(ls -lA "$1/$CONF_DIR" | wc -l) -eq 0 ]; then
al@20456 116 echo
al@20456 117 action "Removing $CONF_DIR..."
al@20456 118 rm -rf "$1/$CONF_DIR"
al@20456 119 status
al@20456 120 fi
al@20456 121 # Delete PID, sock files
al@20456 122 rm -f "$1/var/run/bbackupd".*
al@20456 123 }
al@20456 124
al@20456 125
al@20456 126 pre_install_boxbackup_server() {
al@20456 127 # Stop daemon
al@20456 128 if [ -z "$1" -a -e /var/run/bbstored.pid ]; then
al@20456 129 /etc/init.d/bbstored stop
al@20456 130 fi
al@20456 131 }
al@20456 132
al@20456 133 post_install_boxbackup_server() {
al@20456 134 HOSTNAME=$(ifconfig | awk -F ":" '/cast/ {print substr($2,0, index($2," ")-1) }')
al@20456 135 CONF_DIR="/etc/boxbackup"
al@20456 136 DATA_DIR="/var/lib/bbstored"
al@20456 137 CA_DIR="${CONF_DIR}/ca"
al@20456 138 BBUSER="bbstored"
al@20456 139
al@20456 140 # default conf dir is now /etc/boxbackup
al@20456 141 if [ ! -e "$1/etc/box/bbstored.conf" ]; then
al@20456 142 mv "$1/etc/box" "$1$CONF_DIR"
al@20456 143 fi
al@20456 144
al@20456 145 # adduser BBUSER if needed
al@20456 146 if ! grep -q $BBUSER "$1/etc/passwd"; then
al@20456 147 echo
al@20456 148 action "Adding user '$BBUSER'..."
al@20456 149 echo $BBUSER':x:505:505:BoxBackup Network Backup:/dev/null:/bin/false' >> "$1/etc/passwd"
al@20456 150 echo $BBUSER':!:14013:0:99999:7:::' >> "$1/etc/shadow"
al@20456 151 echo $BBUSER':x:505:' >> "$1/etc/group"
al@20456 152 echo $BBUSER':!::' >> "$1/etc/gshadow"
al@20456 153 status
al@20456 154 fi
al@20456 155
al@20456 156 # Create config is needed
al@20456 157 if [ ! -e "$1$CONF_DIR" ]; then
al@20456 158 mkdir -p "$1$CONF_DIR" &&
al@20456 159 chroot "$1/" chown $BBUSER $CONF_DIR &&
al@20456 160 chmod 700 "$1$CONF_DIR"
al@20456 161 fi
al@20456 162
al@20456 163 if [ ! -e "$1$DATA_DIR/backup" ]; then
al@20456 164 # Creating backup dir
al@20456 165 action "Creating backup directory..."
al@20456 166 mkdir -p "$1$DATA_DIR/backup" &&
al@20456 167 chroot "$1/" chown -R $BBUSER $DATA_DIR &&
al@20456 168 chmod -R 700 "$1$DATA_DIR"
al@20456 169 status
al@20456 170 fi
al@20456 171
al@20456 172 if [ ! -e "$1$CONF_DIR/raidfile.conf" ]; then
al@20456 173 # RAID Setup
al@20456 174 action "Disabling deprecated userland RAID..."
al@20456 175 chroot "$1/" /usr/bin/raidfile-config $CONF_DIR 2048 $DATA_DIR 2>1 > /dev/null
al@20456 176 status
al@20456 177 chroot "$1/" chown -R $BBUSER $CONF_DIR/raidfile.conf &&
al@20456 178 chmod 700 -R "$1$CONF_DIR/raidfile.conf"
al@20456 179 fi
al@20456 180
al@20456 181 if [ ! -e "$1$CONF_DIR/bbstored.conf" ]; then
al@20456 182 # Setting hostname
al@20456 183 action "Setting hostname... "
al@20456 184 if [ $(chroot "$1/" hostname -f 2>1 > /dev/null;echo $?) -eq 0 ]; then
al@20456 185 HOSTNAME=$(chroot "$1/" hostname -f)
al@20456 186 fi
al@20456 187 if [ -z $HOSTNAME ]; then
al@20456 188 HOSTNAME="127.0.0.1"
al@20456 189 fi
al@20456 190 export $HOSTNAME
al@20456 191 echo $HOSTNAME
al@20456 192
al@20456 193 # Setting up the CA environment
al@20456 194 action "Creating certificates..."
al@20456 195 chroot "$1/" /usr/bin/bbstored-certs $CA_DIR init 2>1 > /dev/null
al@20456 196 status
al@20456 197
al@20456 198 # Generate server certificate request
al@20456 199 action "Generate server certificate request..."
al@20456 200 chroot "$1/" bbstored-config $CONF_DIR $HOSTNAME $BBUSER 2>1 > /dev/null
al@20456 201 status
al@20456 202
al@20456 203 # Sign the server certificate
al@20456 204 action "Sign the server certificate..."
al@20456 205 chroot "$1/" openssl x509 -req -sha1 -extensions usr_crt \
al@20456 206 -in $CONF_DIR/$BBUSER/${HOSTNAME}-csr.pem \
al@20456 207 -CA $CA_DIR/roots/serverCA.pem \
al@20456 208 -CAkey $CA_DIR/keys/serverRootKey.pem \
al@20456 209 -out $CA_DIR/servers/${HOSTNAME}-cert.pem \
al@20456 210 -days 5000 2>1 > /dev/null
al@20456 211 status
al@20456 212
al@20456 213 # Preparing the server certificates
al@20456 214 action "Installing server certificate..."
al@20456 215 cp -a "$1$CA_DIR/servers/${HOSTNAME}-cert.pem" "$1$CONF_DIR/$BBUSER"
al@20456 216 status
al@20456 217 action "Installing client certificate..."
al@20456 218 cp -a "$1$CA_DIR/roots/clientCA.pem" "$1$CONF_DIR/$BBUSER"
al@20456 219 status
al@20456 220
al@20456 221 # Securing $CONF_DIR
al@20456 222 chroot "$1/" chown -R $BBUSER $CONF_DIR/bbstored* &&
al@20456 223 chmod 700 -R "$1$CONF_DIR/bbstored"*
al@20456 224 fi
al@20456 225
al@20456 226 if [ -e "$1$CA_DIR" ]; then
al@20456 227 # Warning
al@20456 228 echo
al@20456 229 echo "IMPORTANT NOTE:"
al@20456 230 echo "--------------"
al@20456 231 echo "The certificate authority directory $CA_DIR is intended to be"
al@20456 232 echo "moved to another system. It should not be kept on the backup server"
al@20456 233 echo "to limit the impact of a server compromise."
al@20456 234 fi
al@20456 235 }
al@20456 236
al@20456 237 pre_remove_boxbackup_server() {
al@20456 238 /etc/init.d/bbstored stop
al@20456 239 }
al@20456 240
al@20456 241 post_remove_boxbackup_server() {
al@20456 242 CONF_DIR="/etc/boxbackup"
al@20456 243 DATA_DIR="/var/lib/bbstored"
al@20456 244 CA_DIR="${CONF_DIR}/ca"
al@20456 245 BBUSER="bbstored"
al@20456 246
al@20456 247 echo
al@20456 248 if grep -q $BBUSER /etc/passwd; then
al@20456 249 action "Removing $BBUSER user..."
al@20456 250 deluser bbstored
al@20456 251 status
al@20456 252 fi
al@20456 253 # Delete data
al@20456 254 if [ -e $DATA_DIR ]; then
al@20456 255 action "Removing all backup data..."
al@20456 256 rm -r $DATA_DIR
al@20456 257 status
al@20456 258 fi
al@20456 259 # Delete bbstored conf files
al@20456 260 if [ -e $CONF_DIR/bbstored.conf ]; then
al@20456 261 action "Removing config files..."
al@20456 262 rm -rf $CONF_DIR/bbstored
al@20456 263 rm -f $CONF_DIR/raidfile.conf
al@20456 264 rm -f $CONF_DIR/bbstored.conf
al@20456 265 status
al@20456 266 fi
al@20456 267 # Delete certificates
al@20456 268 if [ -e $CA_DIR ]; then
al@20456 269 action "Removing certificates..."
al@20456 270 rm -r $CA_DIR
al@20456 271 status
al@20456 272 fi
al@20456 273 # Delete $CONF_DIR (if empty)
al@20456 274 if [ $(ls -lA $CONF_DIR | wc -l) -eq 0 ]; then
al@20456 275 action "Removing $CONF_DIR..."
al@20456 276 rm -r $CONF_DIR
al@20456 277 status
al@20456 278 fi
al@20456 279 # Delete PID, sock files
al@20456 280 rm -f /var/run/bbstored.*
al@20456 281 }
al@20456 282