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 {
|
pascal@4998
|
31 ./configure --prefix=/usr $CONFIGURE_ARGS &&
|
pascal@9047
|
32 make -j1 && {
|
pascal@9047
|
33 mkdir -p $DESTDIR
|
pascal@9099
|
34 cp -a parcels/boxbackup-${VERSION}-backup-client-linux-gnu $DESTDIR
|
pascal@9099
|
35 cp -a parcels/boxbackup-${VERSION}-backup-server-linux-gnu $DESTDIR
|
pascal@9099
|
36 rm -f $DESTDIR/boxbackup-${VERSION}-backup-server-linux-gnu/*.*
|
pascal@9047
|
37 }
|
domcox@1357
|
38 }
|
domcox@1357
|
39
|
domcox@1357
|
40 # Rules to gen a SliTaz package suitable for Tazpkg.
|
domcox@1357
|
41 genpkg_rules()
|
domcox@1357
|
42 {
|
domcox@1357
|
43 mkdir -p $fs/usr/bin
|
pascal@15202
|
44 cp -a $install/boxbackup-${VERSION}-backup-server-linux-gnu/bb* $fs/usr/bin
|
pascal@15202
|
45 cp -a $install/boxbackup-${VERSION}-backup-server-linux-gnu/ra* $fs/usr/bin
|
domcox@1357
|
46 mkdir -p $fs/etc/init.d
|
pankso@9697
|
47 cp -a $stuff/bbstored $fs/etc/init.d
|
domcox@1357
|
48 }
|
domcox@1357
|
49
|
domcox@1357
|
50
|
domcox@1357
|
51 # Pre and post install commands for Tazpkg.
|
domcox@1357
|
52
|
domcox@1357
|
53 pre_install()
|
domcox@1357
|
54 {
|
domcox@1357
|
55 # Stop daemon
|
domcox@1357
|
56 if [ -e /var/run/bbstored.pid ]; then
|
domcox@1357
|
57 /etc/init.d/bbstored stop
|
domcox@1357
|
58 fi
|
domcox@1357
|
59 }
|
domcox@1357
|
60
|
domcox@1357
|
61 post_install()
|
domcox@1357
|
62 {
|
domcox@12350
|
63 # default conf dir is now /etc/boxbackup
|
pascal@17940
|
64 if [ ! -e $1/etc/box/bbstored.conf ]; then
|
pascal@17941
|
65 mv /etc/box $1$CONF_DIR
|
domcox@12350
|
66 fi
|
domcox@12350
|
67
|
domcox@1357
|
68 # adduser BBUSER if needed
|
domcox@1357
|
69 if ! grep -q $BBUSER $1/etc/passwd; then
|
domcox@1357
|
70 echo -n "Adding user '$BBUSER'..."
|
domcox@1357
|
71 echo $BBUSER':x:505:505:BoxBackup Network Backup:/dev/null:/bin/false' >> $1/etc/passwd
|
domcox@1357
|
72 echo $BBUSER':!:14013:0:99999:7:::' >> $1/etc/shadow
|
domcox@1357
|
73 echo $BBUSER':x:505:' >> $1/etc/group
|
domcox@1357
|
74 echo $BBUSER':!::' >> $1/etc/gshadow
|
domcox@1357
|
75 status
|
domcox@1357
|
76 fi
|
domcox@1357
|
77
|
domcox@1357
|
78 # Create config is needed
|
pascal@17940
|
79 if [ ! -e $1$CONF_DIR ]; then
|
pascal@17940
|
80 mkdir -p $1$CONF_DIR &&
|
pascal@17940
|
81 chroot $1/ chown $BBUSER $CONF_DIR &&
|
pascal@17940
|
82 chmod 700 $1$CONF_DIR
|
domcox@1357
|
83 fi
|
domcox@1357
|
84
|
pascal@17940
|
85 if [ ! -e $1$DATA_DIR/backup ]; then
|
domcox@1357
|
86 # Creating backup dir
|
domcox@1357
|
87 echo -n "Creating backup directory..."
|
pascal@17940
|
88 mkdir -p $1$DATA_DIR/backup &&
|
pascal@17940
|
89 chroot $1/ chown -R $BBUSER $DATA_DIR &&
|
pascal@17940
|
90 chmod -R 700 $1$DATA_DIR
|
domcox@1357
|
91 status
|
domcox@1357
|
92 fi
|
domcox@1357
|
93
|
pascal@17940
|
94 if [ ! -e $1$CONF_DIR/raidfile.conf ]; then
|
domcox@1357
|
95 # RAID Setup
|
domcox@1357
|
96 echo -n "Disabling deprecated userland RAID..."
|
pascal@17940
|
97 chroot $1/ /usr/bin/raidfile-config $CONF_DIR 2048 $DATA_DIR 2>1 > /dev/null
|
domcox@1357
|
98 status
|
pascal@17940
|
99 chroot $1/ chown -R $BBUSER $CONF_DIR/raidfile.conf &&
|
pascal@17940
|
100 chmod 700 -R $1$CONF_DIR/raidfile.conf
|
domcox@1357
|
101 fi
|
domcox@1357
|
102
|
pascal@17940
|
103 if [ ! -e $1$CONF_DIR/bbstored.conf ]; then
|
domcox@1357
|
104 # Setting hostname
|
domcox@1357
|
105 echo -n "Setting hostname... "
|
pascal@17940
|
106 if [ $(chroot $1/ hostname -f 2>1 > /dev/null;echo $?) -eq 0 ]; then
|
pascal@17940
|
107 HOSTNAME=$(chroot $1/ hostname -f)
|
domcox@1357
|
108 fi
|
domcox@1357
|
109 if [ -z $HOSTNAME ]; then
|
domcox@1357
|
110 HOSTNAME="127.0.0.1"
|
domcox@1357
|
111 fi
|
pascal@17940
|
112 export $HOSTNAME
|
domcox@1357
|
113 echo $HOSTNAME
|
domcox@1357
|
114
|
domcox@1357
|
115 # Setting up the CA environment
|
domcox@1357
|
116 echo -n "Creating certificates..."
|
pascal@17940
|
117 chroot $1/ /usr/bin/bbstored-certs $CA_DIR init 2>1 > /dev/null
|
domcox@1357
|
118 status
|
domcox@1357
|
119
|
domcox@1357
|
120 # Generate server certificate request
|
domcox@1357
|
121 echo -n "Generate server certificate request..."
|
pascal@17940
|
122 chroot $1/ bbstored-config $CONF_DIR $HOSTNAME $BBUSER 2>1 > /dev/null
|
domcox@1357
|
123 status
|
domcox@1357
|
124
|
domcox@1357
|
125 # Sign the server certificate
|
domcox@1357
|
126 echo -n "Sign the server certificate..."
|
pascal@17940
|
127 chroot $1/ openssl x509 -req -sha1 -extensions usr_crt \
|
domcox@1357
|
128 -in $CONF_DIR/$BBUSER/${HOSTNAME}-csr.pem \
|
domcox@1357
|
129 -CA $CA_DIR/roots/serverCA.pem \
|
domcox@1357
|
130 -CAkey $CA_DIR/keys/serverRootKey.pem \
|
domcox@1357
|
131 -out $CA_DIR/servers/${HOSTNAME}-cert.pem \
|
domcox@1357
|
132 -days 5000 2>1 > /dev/null
|
domcox@1357
|
133 status
|
domcox@1357
|
134
|
domcox@1357
|
135 # Preparing the server certificates
|
domcox@1357
|
136 echo -n "Installing server certificate..."
|
pascal@17940
|
137 cp -a $1$CA_DIR/servers/${HOSTNAME}-cert.pem $1$CONF_DIR/$BBUSER
|
domcox@1357
|
138 status
|
domcox@1357
|
139 echo -n "Installing client certificate..."
|
pascal@17940
|
140 cp -a $1$CA_DIR/roots/clientCA.pem $1$CONF_DIR/$BBUSER
|
domcox@1357
|
141 status
|
domcox@1357
|
142
|
domcox@1357
|
143 # Securing $CONF_DIR
|
pascal@17941
|
144 chroot $1/ chown -R $BBUSER $CONF_DIR/bbstored* &&
|
pascal@17940
|
145 chmod 700 -R $1$CONF_DIR/bbstored*
|
domcox@1357
|
146 fi
|
domcox@1357
|
147
|
pascal@17941
|
148 if [ -e $1$CA_DIR ]; then
|
domcox@1357
|
149 # Warning
|
domcox@1357
|
150 echo
|
domcox@1357
|
151 echo "IMPORTANT NOTE:"
|
domcox@1357
|
152 echo "--------------"
|
domcox@1357
|
153 echo "The certificate authority directory $CA_DIR is intended to be"
|
domcox@1357
|
154 echo "moved to another system. It should not be kept on the backup server"
|
domcox@1357
|
155 echo "to limit the impact of a server compromise."
|
domcox@1357
|
156 fi
|
domcox@1357
|
157 }
|
domcox@1357
|
158
|
domcox@1357
|
159 # Pre and post remove commands for Tazpkg
|
domcox@1357
|
160
|
domcox@1357
|
161 pre_remove()
|
domcox@1357
|
162 {
|
domcox@1357
|
163 /etc/init.d/bbstored stop
|
domcox@1357
|
164 }
|
domcox@1357
|
165
|
domcox@1357
|
166 post_remove()
|
domcox@1357
|
167 {
|
domcox@1357
|
168 if grep -q $BBUSER $1/etc/passwd; then
|
domcox@1357
|
169 echo -n "Removing $BBUSER user..."
|
domcox@1357
|
170 deluser bbstored
|
domcox@1357
|
171 status
|
domcox@1357
|
172 fi
|
domcox@1357
|
173 # Delete data
|
domcox@1357
|
174 if [ -e $DATA_DIR ]; then
|
domcox@1357
|
175 echo -n "Removing all backup data..."
|
domcox@1357
|
176 rm -r $DATA_DIR
|
domcox@1357
|
177 status
|
domcox@1357
|
178 fi
|
domcox@1357
|
179 # Delete bbstored conf files
|
domcox@1357
|
180 if [ -e $CONF_DIR/bbstored.conf ]; then
|
domcox@1357
|
181 echo -n "Removing config files..."
|
domcox@1357
|
182 rm -rf $CONF_DIR/bbstored
|
domcox@1357
|
183 rm -f $CONF_DIR/raidfile.conf
|
domcox@1357
|
184 rm -f $CONF_DIR/bbstored.conf
|
domcox@1357
|
185 status
|
domcox@1357
|
186 fi
|
domcox@1357
|
187 # Delete certificates
|
domcox@1357
|
188 if [ -e $CA_DIR ]; then
|
domcox@1357
|
189 echo -n "Removing certificates..."
|
domcox@1357
|
190 rm -r $CA_DIR
|
domcox@1357
|
191 status
|
domcox@1357
|
192 fi
|
domcox@1357
|
193 # Delete $CONF_DIR (if empty)
|
domcox@12350
|
194 if [ $(ls -lA $CONF_DIR | wc -l) -eq 0 ]; then
|
domcox@1357
|
195 echo -n "Removing $CONF_DIR..."
|
domcox@1357
|
196 rm -r $CONF_DIR
|
domcox@1357
|
197 status
|
domcox@1357
|
198 fi
|
domcox@1357
|
199 # Delete PID, sock files
|
domcox@1357
|
200 rm -f /var/run/bbstored.*
|
jozee@3568
|
201 }
|