wok-next annotate boxbackup/receipt @ rev 21727

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