wok annotate boxbackup-server/receipt @ rev 25697

dool: reduced size of package
author Hans-G?nter Theisgen
date Sun May 12 07:10:04 2024 +0100 (4 weeks ago)
parents 5ea0ce1cecc0
children
rev   line source
domcox@1357 1 # SliTaz package receipt.
domcox@1357 2
domcox@1357 3 PACKAGE="boxbackup-server"
Hans-G?nter@22561 4 VERSION="0.12"
domcox@1357 5 CATEGORY="network"
Hans-G?nter@22561 6 TAGS="backup automatic server network"
Hans-G?nter@22561 7 SHORT_DESC="Server for the BoxBackup on-line backup system."
domcox@12350 8 MAINTAINER="domcox@slitaz.org"
pascal@15202 9 LICENSE="GPL2"
pascal@21601 10 WEB_SITE="https://www.boxbackup.org/"
Hans-G?nter@22561 11
domcox@1357 12 SOURCE="boxbackup"
Hans-G?nter@22561 13 TARBALL="$SOURCE-$VERSION.tar.gz"
Hans-G?nter@22561 14 WGET_URL="https://github.com/$SOURCE/$SOURCE/archive/BoxBackup-$VERSION.master.190831.9e0e93e.tar.gz"
domcox@1357 15
Hans-G?nter@22561 16 DEPENDS="db gcc-lib-base libedit openssl perl zlib"
Hans-G?nter@22562 17 BUILD_DEPENDS="autoconf automake db-dev libedit-dev libxslt openssl-dev zlib-dev"
pascal@15202 18
domcox@1357 19 # Configuration variables
domcox@12350 20 HOSTNAME=$(ifconfig | awk -F ":" '/cast/ {print substr($2,0, index($2," ")-1) }')
domcox@12350 21 CONF_DIR="/etc/boxbackup"
domcox@1357 22 DATA_DIR="/var/lib/bbstored"
domcox@1357 23 CA_DIR="${CONF_DIR}/ca"
domcox@1357 24 BBUSER="bbstored"
domcox@1357 25
pascal@25597 26 # What is the latest version available today?
pascal@24055 27 current_version()
pascal@24055 28 {
pascal@24055 29 wget -O - ${WGET_URL%/arch*}/releases 2>/dev/null | \
pascal@25597 30 sed '/tag\//!d;s|.*BoxBackup-||;s|[<"].*||;q'
pascal@24055 31 }
pascal@24055 32
domcox@1357 33 # Rules to configure and make the package.
domcox@1357 34 compile_rules()
domcox@1357 35 {
Hans-G?nter@22561 36 ./bootstrap &&
pascal@4998 37 ./configure --prefix=/usr $CONFIGURE_ARGS &&
Hans-G?nter@22561 38 make -j1 &&
Hans-G?nter@22561 39 {
pascal@9047 40 mkdir -p $DESTDIR
Hans-G?nter@22561 41 cp -a parcels/boxbackup-git_-backup-client-i486-slitaz-linux-gnu $DESTDIR
Hans-G?nter@22561 42 cp -a parcels/boxbackup-git_-backup-server-i486-slitaz-linux-gnu $DESTDIR
Hans-G?nter@22561 43 rm -f $DESTDIR/boxbackup-git_-backup-server-i486-slitaz-linux-gnu/*.*
pascal@9047 44 }
al@19288 45 cook_pick_manpages $src/docs/man/*
domcox@1357 46 }
domcox@1357 47
domcox@1357 48 # Rules to gen a SliTaz package suitable for Tazpkg.
domcox@1357 49 genpkg_rules()
domcox@1357 50 {
domcox@1357 51 mkdir -p $fs/usr/bin
domcox@1357 52 mkdir -p $fs/etc/init.d
Hans-G?nter@22561 53
Hans-G?nter@22561 54 cp -a $install/boxbackup-git_-backup-server-i486-slitaz-linux-gnu/bb* \
Hans-G?nter@22561 55 $fs/usr/bin
Hans-G?nter@22561 56 cp -a $install/boxbackup-git_-backup-server-i486-slitaz-linux-gnu/ra* \
Hans-G?nter@22561 57 $fs/usr/bin
pankso@9697 58 cp -a $stuff/bbstored $fs/etc/init.d
domcox@1357 59 }
domcox@1357 60
domcox@1357 61
domcox@1357 62 # Pre and post install commands for Tazpkg.
domcox@1357 63
domcox@1357 64 pre_install()
domcox@1357 65 {
domcox@1357 66 # Stop daemon
Hans-G?nter@22561 67 if [ -z "$1" -a -e /var/run/bbstored.pid ]
Hans-G?nter@22561 68 then
domcox@1357 69 /etc/init.d/bbstored stop
domcox@1357 70 fi
domcox@1357 71 }
domcox@1357 72
domcox@1357 73 post_install()
domcox@1357 74 {
Hans-G?nter@22561 75 # default configuration directory is now /etc/boxbackup
Hans-G?nter@22561 76 if [ ! -e "$1/etc/box/bbstored.conf" ]
Hans-G?nter@22561 77 then
pascal@18732 78 mv "$1/etc/box" "$1$CONF_DIR"
domcox@12350 79 fi
domcox@12350 80
domcox@1357 81 # adduser BBUSER if needed
Hans-G?nter@22561 82 if ! grep -q $BBUSER "$1/etc/passwd"
Hans-G?nter@22561 83 then
al@18668 84 echo
al@18668 85 action "Adding user '$BBUSER'..."
pascal@18730 86 echo $BBUSER':x:505:505:BoxBackup Network Backup:/dev/null:/bin/false' >> "$1/etc/passwd"
pascal@18730 87 echo $BBUSER':!:14013:0:99999:7:::' >> "$1/etc/shadow"
pascal@18730 88 echo $BBUSER':x:505:' >> "$1/etc/group"
pascal@18730 89 echo $BBUSER':!::' >> "$1/etc/gshadow"
domcox@1357 90 status
domcox@1357 91 fi
domcox@1357 92
Hans-G?nter@22561 93 # Create configuration as needed
Hans-G?nter@22561 94 if [ ! -e "$1$CONF_DIR" ]
Hans-G?nter@22561 95 then
pascal@18730 96 mkdir -p "$1$CONF_DIR" &&
pascal@18730 97 chroot "$1/" chown $BBUSER $CONF_DIR &&
pascal@18730 98 chmod 700 "$1$CONF_DIR"
domcox@1357 99 fi
domcox@1357 100
Hans-G?nter@22561 101 if [ ! -e "$1$DATA_DIR/backup" ]
Hans-G?nter@22561 102 then
Hans-G?nter@22561 103 # Creating backup directory
al@18668 104 action "Creating backup directory..."
pascal@18730 105 mkdir -p "$1$DATA_DIR/backup" &&
pascal@18730 106 chroot "$1/" chown -R $BBUSER $DATA_DIR &&
pascal@18730 107 chmod -R 700 "$1$DATA_DIR"
domcox@1357 108 status
domcox@1357 109 fi
domcox@1357 110
Hans-G?nter@22561 111 if [ ! -e "$1$CONF_DIR/raidfile.conf" ]
Hans-G?nter@22561 112 then
domcox@1357 113 # RAID Setup
al@18668 114 action "Disabling deprecated userland RAID..."
pascal@18730 115 chroot "$1/" /usr/bin/raidfile-config $CONF_DIR 2048 $DATA_DIR 2>1 > /dev/null
domcox@1357 116 status
pascal@18730 117 chroot "$1/" chown -R $BBUSER $CONF_DIR/raidfile.conf &&
pascal@18730 118 chmod 700 -R "$1$CONF_DIR/raidfile.conf"
domcox@1357 119 fi
domcox@1357 120
Hans-G?nter@22561 121 if [ ! -e "$1$CONF_DIR/bbstored.conf" ]
Hans-G?nter@22561 122 then
domcox@1357 123 # Setting hostname
al@18668 124 action "Setting hostname... "
Hans-G?nter@22561 125 if [ $(chroot "$1/" hostname -f 2>1 > /dev/null;echo $?) -eq 0 ]
Hans-G?nter@22561 126 then
pascal@18730 127 HOSTNAME=$(chroot "$1/" hostname -f)
domcox@1357 128 fi
Hans-G?nter@22561 129 if [ -z $HOSTNAME ]
Hans-G?nter@22561 130 then
domcox@1357 131 HOSTNAME="127.0.0.1"
domcox@1357 132 fi
pascal@17940 133 export $HOSTNAME
domcox@1357 134 echo $HOSTNAME
domcox@1357 135
domcox@1357 136 # Setting up the CA environment
al@18668 137 action "Creating certificates..."
pascal@18730 138 chroot "$1/" /usr/bin/bbstored-certs $CA_DIR init 2>1 > /dev/null
domcox@1357 139 status
domcox@1357 140
domcox@1357 141 # Generate server certificate request
al@18668 142 action "Generate server certificate request..."
pascal@18730 143 chroot "$1/" bbstored-config $CONF_DIR $HOSTNAME $BBUSER 2>1 > /dev/null
domcox@1357 144 status
domcox@1357 145
domcox@1357 146 # Sign the server certificate
al@18668 147 action "Sign the server certificate..."
Hans-G?nter@22561 148 chroot "$1/" openssl x509 -req -sha1 -extensions usr_crt \
Hans-G?nter@22561 149 -in $CONF_DIR/$BBUSER/${HOSTNAME}-csr.pem \
Hans-G?nter@22561 150 -CA $CA_DIR/roots/serverCA.pem \
Hans-G?nter@22561 151 -CAkey $CA_DIR/keys/serverRootKey.pem \
Hans-G?nter@22561 152 -out $CA_DIR/servers/${HOSTNAME}-cert.pem \
domcox@1357 153 -days 5000 2>1 > /dev/null
domcox@1357 154 status
domcox@1357 155
domcox@1357 156 # Preparing the server certificates
al@18668 157 action "Installing server certificate..."
Hans-G?nter@22561 158 cp -a "$1$CA_DIR/servers/${HOSTNAME}-cert.pem" \
Hans-G?nter@22561 159 "$1$CONF_DIR/$BBUSER"
domcox@1357 160 status
al@18668 161 action "Installing client certificate..."
Hans-G?nter@22561 162 cp -a "$1$CA_DIR/roots/clientCA.pem" \
Hans-G?nter@22561 163 "$1$CONF_DIR/$BBUSER"
domcox@1357 164 status
domcox@1357 165
domcox@1357 166 # Securing $CONF_DIR
pascal@18730 167 chroot "$1/" chown -R $BBUSER $CONF_DIR/bbstored* &&
pascal@18730 168 chmod 700 -R "$1$CONF_DIR/bbstored"*
domcox@1357 169 fi
domcox@1357 170
Hans-G?nter@22561 171 if [ -e "$1$CA_DIR" ]
Hans-G?nter@22561 172 then
domcox@1357 173 # Warning
domcox@1357 174 echo
domcox@1357 175 echo "IMPORTANT NOTE:"
domcox@1357 176 echo "--------------"
domcox@1357 177 echo "The certificate authority directory $CA_DIR is intended to be"
domcox@1357 178 echo "moved to another system. It should not be kept on the backup server"
domcox@1357 179 echo "to limit the impact of a server compromise."
domcox@1357 180 fi
domcox@1357 181 }
domcox@1357 182
domcox@1357 183 # Pre and post remove commands for Tazpkg
domcox@1357 184
domcox@1357 185 pre_remove()
domcox@1357 186 {
domcox@1357 187 /etc/init.d/bbstored stop
domcox@1357 188 }
domcox@1357 189
domcox@1357 190 post_remove()
domcox@1357 191 {
al@18668 192 echo
Hans-G?nter@22561 193 if grep -q $BBUSER /etc/passwd
Hans-G?nter@22561 194 then
al@18668 195 action "Removing $BBUSER user..."
domcox@1357 196 deluser bbstored
domcox@1357 197 status
domcox@1357 198 fi
Hans-G?nter@22561 199
domcox@1357 200 # Delete data
Hans-G?nter@22561 201 if [ -e $DATA_DIR ]
Hans-G?nter@22561 202 then
al@18668 203 action "Removing all backup data..."
domcox@1357 204 rm -r $DATA_DIR
domcox@1357 205 status
domcox@1357 206 fi
Hans-G?nter@22561 207
Hans-G?nter@22561 208 # Delete bbstored configuration files
Hans-G?nter@22561 209 if [ -e $CONF_DIR/bbstored.conf ]
Hans-G?nter@22561 210 then
al@18668 211 action "Removing config files..."
domcox@1357 212 rm -rf $CONF_DIR/bbstored
domcox@1357 213 rm -f $CONF_DIR/raidfile.conf
domcox@1357 214 rm -f $CONF_DIR/bbstored.conf
domcox@1357 215 status
domcox@1357 216 fi
Hans-G?nter@22561 217
domcox@1357 218 # Delete certificates
Hans-G?nter@22561 219 if [ -e $CA_DIR ]
Hans-G?nter@22561 220 then
al@18668 221 action "Removing certificates..."
al@18668 222 rm -r $CA_DIR
domcox@1357 223 status
al@18668 224 fi
Hans-G?nter@22561 225
domcox@1357 226 # Delete $CONF_DIR (if empty)
Hans-G?nter@22561 227 if [ $(ls -lA $CONF_DIR | wc -l) -eq 0 ]
Hans-G?nter@22561 228 then
al@18668 229 action "Removing $CONF_DIR..."
domcox@1357 230 rm -r $CONF_DIR
domcox@1357 231 status
domcox@1357 232 fi
Hans-G?nter@22561 233
domcox@1357 234 # Delete PID, sock files
domcox@1357 235 rm -f /var/run/bbstored.*
jozee@3568 236 }