diff options
Diffstat (limited to 'debian')
31 files changed, 2076 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000..3bd9ba60 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,117 @@ +Boxbackup for Debian +-------------------- +Quick setup guide for boxbackup system +-------------------------------------- + +=============== +*************** +NOTE: The debian package should handle most of the configuration +for you via debconf. + +However this is a quick guide if you prefer to do this by +yourself. + +If you want to use debconf to configure Boxbackup, do NOT follow +those explanations. Jump directly to the section on Managing certificates +*************** +=============== + + + +Boxbackup-server configuration +------------------------------ + +You need to create the server configuration files contained in +/etc/boxbackup. + +For this you must first use the raidfile-config script. + +raidfile-config /etc/boxbackup 2048 /raid/0.0 /raid/0.1 /raid/0.2 + +where: +- /etc/boxbackup is the location of the configuration files (don't + change that as several scripts use that by default) +- 2048 is the block size of the RAID system, this should be set to + the block size of the underlying filesystem +- the three following path names are the location of the 3 RAID partitions + used by boxbackup to store the backup. They should be on 3 different + physical drive. You can disable the use of userland RAID by specifying + only one path name. + +You should now have a file /etc/boxbackup/raidfile.conf that you can +customize to add another set of disc. + +Now run the bbstored-config script: + +bbstored-config /etc/boxbackup serverhostname bbstored + +where: +- /etc/boxbackup is the location of the configuration files (don't + change that as several scripts use that by default). +- serverhostname is the fqdn name of the server you are installing on, + this is used to determine on wich interface the daemon will listen on. +- bbstored is the user the server will run under, this user is automatically + created by the Debian package. + +Now you have to manage your certificate. See below for this. + +To manage the client accounts use the bbstoreaccounts utility. +To add an account: +bbstoreaccounts create ACCOUNT_NUMBER DISC_SET SOFT_QUOTA HARD_QUOTA + +where: +- ACCOUNT_NUMBER is the account number to create, a 8 digits hexadecimal number. +- DISC_SET is a disc set number defined in /etc/boxbackup/raidfile.conf where the + files for that account will go into. +- SOFT_QUOTA is the soft storage quota size, the client will avoid to upload files + when reaching that limit +- HARD_QUOTA is the hard storage quota size, the server will not store files when + reaching that limit. + +An exemple of invocation: +bbstoreaccounts create 1EF235CA 0 1024M 1250M +(suffixes M, G and B are accepted for quota size meaning respectively Megabytes, +Gigabytes and Blocks) + +Boxbackup-client configuration +------------------------------ + +You need to create the client configuration files contained in +/etc/boxbackup. + +For this you must use the bbackupd-config script. + +bbackupd-config /etc/boxbackup lazy ACCOUNT_NUMBER SERVER_NAME /var/lib/bbackupd BACKUP_DIR [[BACKUP_DIR]...] + +where: +- /etc/boxbackup is the location of the configuration files (don't + change that as several scripts use that by default). +- lazy: backup mode, could be lazy (continuous scan of filesystem) or + snapshot (backup launch by a cron script, see /etc/cron.d/boxbackup-client) +- ACCOUT_NUMBER: your account number provided by the backup server administrator +- SERVER_NAME is the fqdn name of the server you will connect to. +- /var/lib/bbackupd: location of working directory (don't change) +- BACKUP_DIR: a list of directories to backup (they must not contain another + mounted filesystem) + + + + +Managing certificates +--------------------- + +For this you need to use the bbstored-certs script contained in the boxbackup-utils package. + +To initialise your CA (creates a "ca" directory with private key and certificate in it) launch: +bbstored-certs ca init + +To sign a server certificate: +bbstored-certs ca sign-server server-csr.pem + +To sign a client certificate: +bbstored-certs ca sign clientaccount-csr.pem + +You will find a more detailled documentation on the boxbackup Web site: +http://www.fluffy.co.uk/boxbackup/ + + -- Jérôme Schell <jerome@myreseau.org>, Tue, 1 Jun 2004 07:51:24 +0000 diff --git a/debian/bbackupctl.8 b/debian/bbackupctl.8 new file mode 100644 index 00000000..17568448 --- /dev/null +++ b/debian/bbackupctl.8 @@ -0,0 +1,81 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH bbackupctl 8 "Oct 9, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +bbackupctl \- control command of the client daemon of the Box Backup system +.SH SYNOPSIS +.B bbackupctl +.RI "[-q] [-c config_file] command" +.SH DESCRIPTION +This manual page documents briefly the +.B bbackupctl +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.PP +.\" TeX users may be more comfortable with the \fB<whatever>\fP and +.\" \fI<whatever>\fP escape sequences to invode bold face and italics, +.\" respectively. +\fbbbackupctl\fP can be used to send commands to the client daemon of the Box +Backup system. +.SH OPTIONS +.TP +.B -q +Run in quiet mode. Reduce the output of the program. +.TP +.B -c config_file +Use an alternate configuration file instead of the default one. +.TP +.B command +.RS +.TP +.B sync +Start the synchronization with the remote store. The goal is mainly to +implement snapshot mode backup. When the daemon is configured to run is +this mode, this command is used to launch the synchronization via a cron job. +.TP +.B force-sync +Force the start of the synchronization with the remote store, even if +the return value of the script indicated by the config file parameter +SyncAllowScript says not to run the sync. +.TP +.B reload +Tell the daemon to reload its configuration file. +.TP +.B terminate +Terminate the daemon. +.TP +.B wait-for-sync +Wait until the next synchronization start, then exit the command. With this you +can obtain a synchronous backup, when the command exits you know that the +remote store is in sync with your local data (be careful that recently +modified files will not be immediatly uploaded to the store, see MinimumFileAge +and MaxUploadWait config file parameters). +.SH FILES +.TP +.I /etc/boxbackup/bbackupd.conf +Default configuration file for bbackupctl. +.SH SEE ALSO +.BR bbackupd (8), +.BR bbackupquery (8), +.BR bbackupd-config (8). +.br +.SH AUTHOR +This manual page was written by Jérôme Schell <jerome@myreseau.org> +(with the help of the online documentation located at +http://www.fluffy.co.uk/boxbackup/) +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/bbackupd-config.8 b/debian/bbackupd-config.8 new file mode 100644 index 00000000..ba370fd9 --- /dev/null +++ b/debian/bbackupd-config.8 @@ -0,0 +1,78 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH bbackupd-config 8 "Oct 10, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +bbackupd-config \- utility to configure the client daemon of the Box Backup system +.SH SYNOPSIS +.B bbackupd-config +.RI "config_file backup_mode account_number server_hostname working_directory backup_directory [backup_directory...]" +.SH DESCRIPTION +This manual page documents briefly the +.B bbackupd-config +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.PP +.\" TeX users may be more comfortable with the \fB<whatever>\fP and +.\" \fI<whatever>\fP escape sequences to invode bold face and italics, +.\" respectively. +\fbbbackupd-config\fP can be used to generate the configuration for the client daemon +of the Box Backup system, bbackupd. +.SH OPTIONS +.TP +.B config_file +Location of the generated configuration. Generally /etc/boxbackup. +.TP +.B backup_mode +The general behavior of the backup daemon: +.RS +.TP +.B lazy +In this mode the daemon will scan the backup directories at regular +interval looking for modified files. Only files over a certain age will +be uploaded to the remote store. +.TP +.B snapshot +In this mode the daemon will upload a snapshot of the backup directories +when it is told to do it. Manual or cron invocation via bbackupctl is +necessary for backup to occur. +.RE +.TP +.B account_number +The hexadecimal number of the account you are configuring (provided by the +remote server administrator). +.TP +.B server_hostname +Name of the backup server hosting the remote store. +.TP +.B working_directory +The directory containing management files of the client daemon. Generally /var/lib/bbackupd. +.TP +.B backup_directory +Directory to backup. Multiple directories can be specified separated by white spaces. Be +careful not to specify directories containing other mount points, this could affect +the efficiency of the backup. +.SH SEE ALSO +.BR bbackupd (8), +.BR bbackupctl (8), +.BR bbackupquery (8). +.br +.SH AUTHOR +This manual page was written by Jérôme Schell <jerome@myreseau.org> +(with the help of the online documentation located at +http://www.fluffy.co.uk/boxbackup/) +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/bbackupd.8 b/debian/bbackupd.8 new file mode 100644 index 00000000..3e18bb55 --- /dev/null +++ b/debian/bbackupd.8 @@ -0,0 +1,60 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH bbackupd 8 "Oct 9, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +bbackupd \- client daemon of the Box Backup system +.SH SYNOPSIS +.B bbackupd +.RI "config_file [SINGLEPROCESS]" +.SH DESCRIPTION +This manual page documents briefly the +.B bbackupd +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.PP +.\" TeX users may be more comfortable with the \fB<whatever>\fP and +.\" \fI<whatever>\fP escape sequences to invode bold face and italics, +.\" respectively. +\fbbbackupd\fP is the client daemon of the Box Backup system. It runs in +the background, periodically scanning the file system looking for modified +files. It then uploads them to the remote store according to parameters +defined in its config file. +.SH OPTIONS +.TP +.B config_file +Path to the configuration file for bbackupd. +.TP +.B SINGLEPROCESS +For test purpose only. Prevent the daemon to fork in the background and to detach from the terminal. +.SH FILES +.TP +.I /etc/boxbackup/bbackupd.conf +Default configuration file for bbackupd. +.TP +.I /var/lib/bbackupd +Location of management files of the daemon. +.SH SEE ALSO +.BR bbackupctl (8), +.BR bbackupquery (8), +.BR bbackupd-config (8). +.br +.SH AUTHOR +This manual page was written by Jérôme Schell <jerome@myreseau.org> +(with the help of the online documentation located at +http://www.fluffy.co.uk/boxbackup/) +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/bbackupquery.8 b/debian/bbackupquery.8 new file mode 100644 index 00000000..4eb769b3 --- /dev/null +++ b/debian/bbackupquery.8 @@ -0,0 +1,95 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH bbackupquery 8 "Oct 10, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp <n> insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +bbackupquery \- utility to execute queries on a remote Box Backup store +.SH SYNOPSIS +.B bbackupquery +.RI "[-q] [-c config_file] [commands...]" +.SH DESCRIPTION +This manual page documents briefly the +.B bbackupquery +command. +This manual page was written for the Debian distribution +because the original program does not have a manual page. +.PP +.\" TeX users may be more comfortable with the \fB<whatever>\fP and +.\" \fI<whatever>\fP escape sequences to invode bold face and italics, +.\" respectively. +\fbbbackupquery\fP can be used to perform operation on a remote Box Backup +store. It can naviguate through the remote store tree, list or retrieve last +or old revisions of files and directories, get quota usage for the account +and compare remote and local data. +.SH OPTIONS +.TP +.B -q +Run in quiet mode. Reduce the output of the program. +.TP +.B -c config_file +Use an alternate configuration file instead of the default one. +.TP +.B commands +Commands to run on the server. If no command is specified, bbackupquery +will enter interactive mode where commands can be entered at the prompt. +In interactive mode, issuing "help [command]" will display additionnal +options supported by each command. +.sp 1 +Available commands are: +.RS +.TP +.B list, ls +Display a listing of files and directories of the current working directory. +.TP +.B cd +Change directory in the remote tree. +.TP +.B pwd +Print current remote directory. +.TP +.B lcd +Change directory in the local tree. +.TP +.B sh +Execute a shell command on the local side. +.TP +.B get +Retrieve a file from the store to the local filesystem. +.TP +.B restore +Restore a directory from the remote store to the local filesystem. +.TP +.B compare +Compare the remote current data with local data. +.TP +.B getobject +For debuging purpose only. Retrieve an object from the store in its raw form. +.TP +.B usage +Display usage statistics on the store for the current account. +.TP +.B quit +Disconnect from the store and exit the program. +.SH SEE ALSO +.BR bbackupd (8), +.BR bbackupd-config (8), +.BR bbackupctl (8). +.br +.SH AUTHOR +This manual page was written by Jérôme Schell <jerome@myreseau.org> +(with the help of the online documentation located at +http://www.fluffy.co.uk/boxbackup/) +for the Debian GNU/Linux system (but may be used by others). diff --git a/debian/boxbackup-client.config b/debian/boxbackup-client.config new file mode 100644 index 00000000..9c0843e6 --- /dev/null +++ b/debian/boxbackup-client.config @@ -0,0 +1,129 @@ +#!/bin/bash -e + +# Source debconf library +. /usr/share/debconf/confmodule + +# This conf script is capable of backing up +#db_version 2.0 +#db_capb backup + +#db_metaget debconf/priority value +#CONFPRIO=$RET + +# Exit if debconf priority is above medium +db_get debconf/priority + +if [ "$RET" = "high" -o "$RET" = "critical" ]; then + exit 0 +fi + +# Handle with debconf or not? +db_input medium boxbackup-client/debconf || true +db_go +db_get boxbackup-client/debconf +if [ "$RET" = "false" ]; then + exit 0 +fi + +# Backup mode +db_get boxbackup-client/backupMode +OLDMODE=$RET + +db_input medium boxbackup-client/backupMode || true +db_go + + +# accountNumber +ANOK=0 +while [ $ANOK = 0 ]; do + db_input medium boxbackup-client/accountNumber || true + db_go + + db_get boxbackup-client/accountNumber + + if [ -z `echo $RET | sed 's/[[:xdigit:]]//g'` ]; then + ANOK=1 + fi + + if [ $ANOK = 0 ]; then + db_input critical boxbackup-client/incorrectAccountNumber || true + db_go + fi +done + +# backupServer +db_input medium boxbackup-client/backupServer || true +db_go + +# backupDirs +DIRSOK=0 +while [ $DIRSOK = 0 ]; do + db_input medium boxbackup-client/backupDirs || true + db_go + + db_get boxbackup-client/backupDirs + + if [ ! -z "$RET" ]; then + DIRSOK=1 + for dir in $RET; do + if [ ! -z `echo $dir | sed 's/^[[:space:]]*\/[[:alnum:]\.\_-]*\/*\([[:alnum:]\.\_-]*\/*\)*[[:space:]]*$//g'` ]; then + DIRSOK=0; + fi + done + fi + + if [ $DIRSOK = 0 ]; then + db_input critical boxbackup-client/incorrectDirectories || true + db_go + fi +done + +# UpdateStoreInterval MinimumFileAge MaxUploadWait +#db_get boxbackup-client/backupMode + +# This is a way to get back to the default values when switching the backup mode +#if [ ! -z $OLDMODE ]; then +# if [ $OLDMODE != $RET ]; then +# db_set boxbackup-client/UpdateStoreInterval "3600" +# db_set boxbackup-client/MinimumFileAge "21600" +# db_set boxbackup-client/MaxUploadWait "86400" +# fi +#fi + +db_get boxbackup-client/backupMode +if [ "$RET" = "lazy" ]; then + for param in UpdateStoreInterval MinimumFileAge MaxUploadWait; do + NUMOK=0 + while [ $NUMOK = 0 ]; do + db_input low boxbackup-client/$param || true + db_go + + db_get boxbackup-client/$param + + if [ -z `echo $RET | sed 's/[[:digit:]]//g'` ]; then + NUMOK=1 + fi + + if [ $NUMOK = 0 ]; then + db_input critical boxbackup-client/IncorrectNumber || true + db_go + fi + done + done +fi + + +# NotifyMail +db_input medium boxbackup-client/notifyMail || true +db_go + +# x509 and private key +db_input medium boxbackup-client/generateCertificate || true +db_go + +# Display general info +db_input medium boxbackup-client/generalInfo || true +db_go + +exit 0 + diff --git a/debian/boxbackup-client.cron.d b/debian/boxbackup-client.cron.d new file mode 100644 index 00000000..486e4be3 --- /dev/null +++ b/debian/boxbackup-client.cron.d @@ -0,0 +1,2 @@ +# Launch the boxbackup client/server synchronization when in snapshot mode +#0 0 * * * root /usr/sbin/bbackupctl -q sync diff --git a/debian/boxbackup-client.dirs b/debian/boxbackup-client.dirs new file mode 100644 index 00000000..96e786f8 --- /dev/null +++ b/debian/boxbackup-client.dirs @@ -0,0 +1,5 @@ +usr/sbin +var/lib/bbackupd +etc/boxbackup +etc/boxbackup/bbackupd + diff --git a/debian/boxbackup-client.docs b/debian/boxbackup-client.docs new file mode 100644 index 00000000..4cf84605 --- /dev/null +++ b/debian/boxbackup-client.docs @@ -0,0 +1,8 @@ +BUGS.txt +CONTACT.txt +DOCUMENTATION.txt +LINUX.txt +NETBSD.txt +THANKS.txt +TODO.txt +VERSION.txt diff --git a/debian/boxbackup-client.init b/debian/boxbackup-client.init new file mode 100644 index 00000000..905873fc --- /dev/null +++ b/debian/boxbackup-client.init @@ -0,0 +1,69 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: boxbackup-server +# Required-Start: $syslog $local_fs $network +# Required-Stop: $syslog $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: S 0 1 6 +# Short-Description: boxbackup client +# Description: Init script to start and stop the boxbackup client +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/bbackupd +NAME=bbackupd +DESC=boxbackup-client +CONF=/etc/boxbackup/bbackupd.conf + +test -f $DAEMON || exit 0 + +test -f $CONF || exit 0 + +PIDFILE=`grep 'PidFile' $CONF | sed 's/[[:space:]]*PidFile[[:space:]]*=[[:space:]]*\(\/[A-Za-z0-9/]*\)/\1/'` +CERTFILE=`grep 'CertificateFile' $CONF | sed 's/[[:space:]]*CertificateFile[[:space:]]*=[[:space:]]*\(\/[A-Za-z0-9/]*\)/\1/'` +ACCNUM=`grep 'AccountNumber' $CONF | sed 's/[[:space:]]*AccountNumber[[:space:]]*=[[:space:]]*\([A-Za-z0-9/]*\)/\1/'` + +[ -z $PIDFILE ] && PIDFILE="/var/run/bbackupd.pid" + +# Don't start if certificate file or account number are not present +[ ! -e $CERTFILE -o -z $ACCNUM ] && exit 0 + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $CONF + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --oknodo --retry 5 --stop --quiet --pidfile $PIDFILE \ + --exec $DAEMON + echo "$NAME." + ;; + reload|force-reload) + echo "Reloading $DESC configuration files." + start-stop-daemon --stop --signal 1 --quiet --pidfile \ + $PIDFILE --exec $DAEMON -- $CONF + ;; + restart) + echo -n "Restarting $DESC: " + start-stop-daemon --oknodo --retry 5 --stop --quiet --pidfile \ + $PIDFILE --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --pidfile \ + $PIDFILE --exec $DAEMON -- $CONF + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + #echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/boxbackup-client.install b/debian/boxbackup-client.install new file mode 100644 index 00000000..4cb9fb6a --- /dev/null +++ b/debian/boxbackup-client.install @@ -0,0 +1,4 @@ +parcels/boxbackup-0.10-backup-client-linux-gnu/bbackupd /usr/sbin/ +parcels/boxbackup-0.10-backup-client-linux-gnu/bbackupctl /usr/sbin/ +parcels/boxbackup-0.10-backup-client-linux-gnu/bbackupquery /usr/sbin/ +parcels/boxbackup-0.10-backup-client-linux-gnu/bbackupd-config /usr/sbin/ diff --git a/debian/boxbackup-client.manpages b/debian/boxbackup-client.manpages new file mode 100644 index 00000000..ba5cdeae --- /dev/null +++ b/debian/boxbackup-client.manpages @@ -0,0 +1,5 @@ +debian/bbackupd.8 +debian/bbackupd-config.8 +debian/bbackupctl.8 +debian/bbackupquery.8 + diff --git a/debian/boxbackup-client.postinst b/debian/boxbackup-client.postinst new file mode 100644 index 00000000..8fd8ae20 --- /dev/null +++ b/debian/boxbackup-client.postinst @@ -0,0 +1,349 @@ +#! /bin/bash +# postinst script for boxbackup-client +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +#loading debconf module +. /usr/share/debconf/confmodule + +CONFDIR=/etc/boxbackup +DEBCONFBB=$CONFDIR/bbackupd.debconf +BBCONF=$CONFDIR/bbackupd.conf +BBKEY=$CONFDIR/bbackupd/boxbackup-client-encrypt-key.raw +BBPRIVKEY=$CONFDIR/bbackupd/boxbackup-client-priv-key.pem +BBCERTREQ=$CONFDIR/bbackupd/boxbackup-client-cert-req.pem +BBCERT=$CONFDIR/bbackupd/boxbackup-client-cert.pem +BBCACERT=$CONFDIR/bbackupd/boxbackup-server-ca-cert.pem +DEBCONFNOTIFY=$CONFDIR/bbackupd/notifyadmin.debconf +NOTIFYSCRIPT=$CONFDIR/bbackupd/notifyadmin + +case "$1" in + configure) + db_get boxbackup-client/debconf + if [ "$RET" = "true" ]; then + # Generate configuration files + # backupd.conf + echo "#To reconfigure boxbackup-client run #dpkg-reconfigure boxbackup-client" >> $DEBCONFBB + + db_get boxbackup-client/backupServer + echo "StoreHostname = $RET" >> $DEBCONFBB + + db_get boxbackup-client/accountNumber + ACCOUNT=$RET + echo "AccountNumber = 0x$ACCOUNT" >> $DEBCONFBB + echo "KeysFile = $BBKEY" >> $DEBCONFBB + echo "" >> $DEBCONFBB + echo "CertificateFile = $BBCERT" >> $DEBCONFBB + echo "PrivateKeyFile = $BBPRIVKEY" >> $DEBCONFBB + echo "TrustedCAsFile = $BBCACERT" >> $DEBCONFBB + echo "" >> $DEBCONFBB + echo "DataDirectory = /var/lib/bbackupd" >> $DEBCONFBB + + cat >>$DEBCONFBB <<__EOF + +# This script is run whenever bbackupd encounters a problem which requires +# the system administrator to assist: +# 1) The store is full, and no more data can be uploaded. +# 2) Some files or directories were not readable. +# The default script emails the system administrator. +NotifyScript = $NOTIFYSCRIPT + +__EOF + + db_get boxbackup-client/backupMode + if [ "$RET" = "lazy" ]; then + db_get boxbackup-client/UpdateStoreInterval + UPDATE=$RET + [ -z $UPDATE ] && UPDATE="3600" + + db_get boxbackup-client/MinimumFileAge + FILEAGE=$RET + [ -z $FILEAGE ] && FILEAGE="21600" + + db_get boxbackup-client/MaxUploadWait + UPWAIT=$RET + [ -z $UPWAIT ] && UPWAIT="86400" + + AUTO=yes + else + AUTO=no + UPDATE=0 + FILEAGE=0 + UPWAIT=0 + fi + + cat >>$DEBCONFBB <<__EOF +# Backup mode specification +# With snapshot mode, you will need to run bbackupctl to instruct the daemon to upload files. +# Set to no for snapshot mode and yes for lazy mode +AutomaticBackup = $AUTO + +# A scan of the local discs will be made once an hour (approximately). +# To avoid cycles of load on the server, this time is randomly adjusted by a small +# percentage as the daemon runs. +# Defaults: 3600 for lazy mode - 0 for snapshot mode +UpdateStoreInterval = $UPDATE + +# A file must have been modified at least 6 hours ago before it will be uploaded. +# Defaults: 21600 for lazy mode - 0 for snapshot mode +MinimumFileAge = $FILEAGE + +# If a file is modified repeated, it won't be uploaded immediately in case it's modified again. +# However, it should be uploaded eventually. This is how long we should wait after first noticing +# a change. (1 day) +# Defaults: 86400 for lazy mode - 0 for snapshot mode +MaxUploadWait = $UPWAIT + +# Files above this size (in bytes) are tracked, and if they are renamed they will simply be +# renamed on the server, rather than being uploaded again. (64k - 1) +FileTrackingSizeThreshold = 65535 + +# The daemon does "changes only" uploads for files above this size (in bytes). +# Files less than it are uploaded whole without this extra processing. +DiffingUploadSizeThreshold = 8192 + +# The limit on how much time is spent diffing files. Most files shouldn't take very long, +# but if you have really big files you can use this to limit the time spent diffing them. +# * Reduce if you are having problems with processor usage. +# * Increase if you have large files, and think the upload of changes is too large and want +# to spend more time searching for unchanged blocks. +MaximumDiffingTime = 20 + +# Uncomment this line to see exactly what the daemon is going when it's connected to the server. +# ExtendedLogging = yes + +# Use this to temporarily stop bbackupd from syncronising or connecting to the store. +# This specifies a program or script script which is run just before each sync, and ideally +# the full path to the interpreter. It will be run as the same user bbackupd is running as, +# usually root. +# The script prints either "now" or a number to STDOUT (and a terminating newline, no quotes). +# If the result was "now", then the sync will happen. If it's a number, then the script will +# be asked again in that number of seconds. +# For example, you could use this on a laptop to only backup when on a specific network. + +# SyncAllowScript = /path/to/intepreter/or/exe script-name parameters etc + +# Where the command socket is created in the filesystem. +CommandSocket = /var/run/bbackupd.sock + +Server +{ + PidFile = /var/run/bbackupd.pid +} + +# +# BackupLocations specifies which locations on disc should be backed up. Each +# directory is in the format +# +# name +# { +# Path = /path/of/directory +# (optional exclude directives) +# } +# +# 'name' is derived from the Path by the config script, but should merely be +# unique. +# +# The exclude directives are of the form +# +# [Exclude|AlwaysInclude][File|Dir][|sRegex] = regex or full pathname +# +# (The regex suffix is shown as 'sRegex' to make File or Dir plural) +# +# For example: +# +# ExcludeDir = /home/guest-user +# ExcludeFilesRegex = \.(mp3|MP3)$ +# AlwaysIncludeFile = /home/username/veryimportant.mp3 +# +# This excludes the directory /home/guest-user from the backup along with all mp3 +# files, except one MP3 file in particular. +# +# In general, Exclude excludes a file or directory, unless the directory is +# explicitly mentioned in a AlwaysInclude directive. +# +# If a directive ends in Regex, then it is a regular expression rather than a +# explicit full pathname. See +# +# man 7 re_format +# +# for the regex syntax on your platform. +# + +BackupLocations +{ +__EOF + + db_get boxbackup-client/backupDirs + + for dir in $RET; do + NAME=`echo $dir | sed 's/\//-/g' | sed 's/^-//'` + + # TODO : exclude encrypt key file from the backup + + echo " $NAME" >> $DEBCONFBB + echo " {" >> $DEBCONFBB + echo " Path = $dir" >> $DEBCONFBB + echo " }" >> $DEBCONFBB + done + + echo "}" >> $DEBCONFBB + + # Encryption key + if [ ! -e $BBKEY ]; then + if ! openssl rand -out $BBKEY 1024 >&2; then + echo "Can't generate encryption key. Check why." >&2 + fi + fi + + chmod 600 $BBKEY || true + + # SSL stuff + if [ ! -z $ACCOUNT ]; then + if [ ! -e $BBPRIVKEY -a ! -e $BBCERT ]; then + db_get boxbackup-client/generateCertificate + + if [ "$RET" = "true" ]; then + if ! openssl genrsa -out $BBPRIVKEY 2048 >&2; then + echo "Private key generation failed! Check why." >&2 + else + chmod 600 $BBPRIVKEY || true + fi + + + if ! openssl req -new -key $BBPRIVKEY -sha1 -out $BBCERTREQ >&2 <<__EOF +. +. +. +. +. +BACKUP-$ACCOUNT +. +. +. +__EOF + then + echo "Certificate request generation failed ! Check why." >&2 + fi + fi + fi + fi + + # Generate notify script + CLIENTNAME=`hostname --fqdn` + + db_get boxbackup-client/notifyMail + MAILTO=$RET + + cat >>$DEBCONFNOTIFY <<__EOF +#!/bin/sh +#To reconfigure boxbackup-client run #dpkg-reconfigure boxbackup-client +SUBJECT="BACKUP PROBLEM on host $CLIENTNAME" +SENDTO="$MAILTO" + +if [ \$1 = store-full ] +then +sendmail \$SENDTO <<EOM +Subject: \$SUBJECT (store full) +To: \$SENDTO + + +The store account for $CLIENTNAME is full. + +============================= +FILES ARE NOT BEING BACKED UP +============================= + +Please adjust the limits on account $account_num on server $server. + +EOM +elif [ \$1 = read-error ] +then +sendmail \$SENDTO <<EOM +Subject: \$SUBJECT (read errors) +To: \$SENDTO + + +Errors occured reading some files or directories for backup on $CLIENTNAME. + +=================================== +THESE FILES ARE NOT BEING BACKED UP +=================================== + +Check the logs on $CLIENTNAME for the files and directories which caused +these errors, and take appropraite action. + +Other files are being backed up. + +EOM +else +sendmail \$SENDTO <<EOM +Subject: \$SUBJECT (unknown) +To: \$SENDTO + + +The backup daemon on $CLIENTNAME reported an unknown error. + +========================== +FILES MAY NOT BE BACKED UP +========================== + +Please check the logs on $CLIENTNAME. + +EOM +fi +__EOF + + db_stop + + ucf --three-way $DEBCONFBB $BBCONF >&2 </dev/tty + rm -f $DEBCONFBB + chmod 644 $BBCONF || true + chown root:root $BBCONF || true + + ucf --three-way $DEBCONFNOTIFY $NOTIFYSCRIPT >&2 </dev/tty + rm -f $DEBCONFNOTIFY + chmod 755 $NOTIFYSCRIPT || true + chown root:root $NOTIFYSCRIPT || true + else + db_stop + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + db_stop + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + db_stop + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/boxbackup-client.postrm b/debian/boxbackup-client.postrm new file mode 100644 index 00000000..07ec26b4 --- /dev/null +++ b/debian/boxbackup-client.postrm @@ -0,0 +1,39 @@ +#! /bin/sh +# postrm script for boxbackup-client +# +# see: dh_installdeb(1) +# summary of how this script can be called: +# * <postrm> `remove' +# * <postrm> `purge' +# * <old-postrm> `upgrade' <new-version> +# * <new-postrm> `failed-upgrade' <old-version> +# * <new-postrm> `abort-install' +# * <new-postrm> `abort-install' <old-version> +# * <new-postrm> `abort-upgrade' <old-version> +# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version> +# for details, see /usr/share/doc/packaging-manual/ + +set -e + + +case "$1" in + purge) + for i in /etc/boxbackup/bbackupd.conf /etc/boxbackup/bbackupd/notifyadmin; do + if [ -e $i ]; then + rm -f $i + fi + ucf -p $i + done + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 0 +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + diff --git a/debian/boxbackup-client.templates b/debian/boxbackup-client.templates new file mode 100644 index 00000000..e1d71dc1 --- /dev/null +++ b/debian/boxbackup-client.templates @@ -0,0 +1,144 @@ +Template: boxbackup-client/debconf +Type: boolean +Default: true +Description: Do you want to handle the boxbackup client configuration with debconf? + Debconf can create the configuration files for boxbackup client. + If you prefer to do this by yourself you will need to use the script + bbackupd-config provided by this package. + . + The server won't start if it isn't configured. + . + Whatever you choose here, you will need to read the README.Debian file + in /usr/share/doc/boxbackup-client. + +Template: boxbackup-client/backupMode +Type: select +Choices: lazy, snapshot +Description: Select the backup mode you prefer + Boxbackup client supports two modes of backup: + -lazy: the backup daemon will regularly scan your filesystem searching + for modified files. It will then upload the files over a specified age + to the backup server. + -snapshot: the backup will be explicitly run at given time set in a cron entry + The cron file is provided with this package, you will have to set the + time you wish the backup to occur (/etc/cron.d/boxbackup-client). + +Template: boxbackup-client/accountNumber +Type: string +Description: Enter your account number on the backup server + The administrator of the boxbackup server (perhaps you) should have provided + you an account number. It consits in an hexadecimal number. + . + If you don't already have one, leave that field blank. You will be able to + configure it later by running dpkg-reconfigure boxbackup-client as root. + +Template: boxbackup-client/incorrectAccountNumber +Type: note +Description: Please enter an hexadecimal number + The account number must be an hexadecimal number (e.g. 1E04 or 4500). + +Template: boxbackup-client/backupServer +Type: string +Description: Enter the fully qualified domain name of the backup server + The server name is the computer running an instance of Boxbackup server + your client will connect to. It must be the fully qualified domain name + of that machine (that can be resolve to an IP address). + If you are behind a firewall, you must allow outgoing connexion to tcp + port 2201 to be able to reach the server. + +Template: boxbackup-client/backupDirs +Type: string +Description: Enter a space separated list of directories to backup + You must tell boxbackup which directories you would like to backup to the remote + server. + You must enter this directories as a space separated list of absolute path names. + Be careful that those directories do NOT contain other mounted file systems within + them at any depth or you will have problems. + +Template: boxbackup-client/incorrectDirectories +Type: note +Description: Please enter correct path names + The path names to the directories must be absolute path names separated by spaces. + . + For example: /home/myaccount /etc/ + +Template: boxbackup-client/UpdateStoreInterval +Type: string +Default: 3600 +Description: Enter the interval in seconds between scan of directories + Boxbackup scans the directories you have selected looking for modified files. + This scans occurs at regular interval that you can customize. + . + The default value is 3600s (one hour). + +Template: boxbackup-client/MinimumFileAge +Type: string +Default: 21600 +Description: Enter the time in seconds to wait after a file modification before uploading it + A file will be uploaded to the server only after a certain time after its + last modification. If you reduce this value and you modify your files often, + remember that you will have more old revisions of your files on the server and + reach your quota limit faster (thus removing older revisions of our files sooner) + . + The default value is 21600s (six hours). + +Template: boxbackup-client/MaxUploadWait +Type: string +Default: 86400 +Description: Enter the max time in seconds to wait before uploading a frequently modified file + As a file is not uploaded before a certain time after its last modification, + if it is frequently modified, it would never get uploaded. So this parameter + defines the maximum time to wait since the first modification noticed + before uploading a file. + . + The default value is 86400s (1 day). + +Template: boxbackup-client/IncorrectNumber +Type: note +Description: Please enter a correct number of seconds + This parameter must be a number. + +Template: boxbackup-client/notifyMail +Type: string +Default: root +Description: Enter the user name or email address to send notification to. + Boxbackup client must know the user name or email address of the person + who will receive alert notifications. Such notifications are sent when + a problem occurs during the backup (the store is full or some files + were not readable). + . + Enter either a user name (e.g. root) or an email address (e.g. admin@mydomain.org) + +Template: boxbackup-client/generateCertificate +Type: boolean +Default: true +Description: Do you want debconf to generate the client private key and x509 certificate request? + The boxbackup client needs a RSA private key and the corresponding x509 certificate + to authenticate itself to the server. + . + Debconf can generate for you the private key and a x509 certificate sign request. + You will need to send the certificate request to the administrator of the Boxbackup server + and this one will sign it and send it back to you along with the server Certification Authority + certificate. You will need to put these files in your boxbackup configuration directory (see + /etc/boxbackup/bbackupd.conf file for the exact name to give to these files). + . + If you prefer to manage this by yourself, say No here. + +Template: boxbackup-client/generalInfo +Type: note +Description: Read /usr/share/doc/boxbackup-client/README.Debian to finish the configuration + You should read the /usr/share/doc/boxbackup-client/README.Debian file + to learn how to finish the configuration of boxbackup client. + You will have to send the certificate request to the boxbackup server + administrator. + You can also customize the directories to backup in the file /etc/boxbackup/bbackupd.conf. + . + Be sure to make a *secure* backup copy of the following files: + - /etc/boxbackup/bbackupd/boxbackup-client-encrypt-key.raw : the key used to encrypt/decrypt + your backup. + - /etc/boxbackup/bbackupd/boxbackup-client-priv-key.pem : your private key. + - /etc/boxbackup/bbackupd/boxbackup-client-cert.pem : your certificate signed by the + server administrator. + I advise you to backup the whole /etc/boxbackup directory. + Without those files you won't be able to restore your data. You have been warned. + diff --git a/debian/boxbackup-server.config b/debian/boxbackup-server.config new file mode 100644 index 00000000..0d46f6ec --- /dev/null +++ b/debian/boxbackup-server.config @@ -0,0 +1,114 @@ +#!/bin/bash -e + +# Source debconf library +. /usr/share/debconf/confmodule + +# This conf script is capable of backing up +#db_version 2.0 +#db_capb backup + +#db_metaget debconf/priority value +#CONFPRIO=$RET + +# Handle with debconf or not? +db_input medium boxbackup-server/debconf || true +db_go +db_get boxbackup-server/debconf +if [ "$RET" = "false" ]; then + exit 0 +fi + +# RAID directories +db_get boxbackup-server/raidDirectories +OLDRAIDDIR=$RET +RAIDOK=0 +while [ $RAIDOK = 0 ]; do + db_input medium boxbackup-server/raidDirectories || true + db_go + + db_get boxbackup-server/raidDirectories + + DIR1=`echo "$RET" | awk '{ print $1 }'` + DIR2=`echo "$RET" | awk '{ print $2 }'` + DIR3=`echo "$RET" | awk '{ print $3 }'` + + if [ -n $DIR1 ]; then + if [ -z $DIR2 -o -z $DIR3 ]; then + DIR2=$DIR1 + DIR3=$DIR1 + fi + + PATHOK=1 + for i in $DIR1 $DIR2 $DIR3; do + if [ `echo $i | awk '{ if (/^\/[A-Za-z0-9\.\-_]+\/?([A-Za-z0-9\.\-_]+\/?)*$/) { print 1 } else { print 0 } }'` = 0 ]; then + PATHOK=0 + fi + done + + if [ $PATHOK = 1 ]; then + RAIDOK=1; + fi + fi + + if [ $RAIDOK = 0 ]; then + db_input critical boxbackup-server/incorrectDirectories || true + db_go + fi +done + +# RAID block size +# Try to figure out the block size of the first partition given +db_get boxbackup-server/raidDirectories +if [ "$OLDRAIDDIR" != "$RET" ]; then # Directories have been changed so we can try to guess the block size + TMPDIR=`echo $DIR1 | sed 's/\/$//'` + + while [ "$TMPDIR" != "" ]; do + DEV=`df -P | grep "$TMPDIR$" | awk '{ print $1 }'` + + if [ -z "$DEV" ]; then + TMPDIR=`echo $TMPDIR | sed 's/\/[^\/]*$//'` + else + TMPDIR="" + fi + done + + if [ "$DEV" != "" ]; then + if [ -x /sbin/tune2fs ]; then + BS=`/sbin/tune2fs -l $DEV 2>/dev/null | grep 'Block size' | awk '{print $3 }'` + + if [ $? = 0 -a $BS != "" ]; then + db_set boxbackup-server/raidBlockSize "$BS" + fi + fi + fi +fi + +BSOK=0 +while [ $BSOK = 0 ]; do + db_input medium boxbackup-server/raidBlockSize || true + db_go + + db_get boxbackup-server/raidBlockSize + + if [ `echo $RET | awk '{ if (/^[0-9]+$/) { print 1 } else { print 0 } }'` = 1 ]; then + if [ `echo $RET | awk '{ bs=sqrt($1); if (bs ~ /^[0-9]+$/) { print 1 } else { print 0 } }'` = 1 ]; then + BSOK=1 + fi + fi + + if [ $BSOK = 0 ]; then + db_input critical boxbackup-server/incorrectBlocksize || true + db_go + fi +done + +# x509 and private key +db_input medium boxbackup-server/generateCertificate || true +db_go + +# Display general info +db_input medium boxbackup-server/generalInfo || true +db_go + +exit 0 + diff --git a/debian/boxbackup-server.dirs b/debian/boxbackup-server.dirs new file mode 100644 index 00000000..a6c52ea6 --- /dev/null +++ b/debian/boxbackup-server.dirs @@ -0,0 +1,6 @@ +usr/sbin +etc/boxbackup +etc/boxbackup/bbstored +etc/logcheck/ignore.d.workstation +etc/logcheck/ignore.d.server + diff --git a/debian/boxbackup-server.docs b/debian/boxbackup-server.docs new file mode 100644 index 00000000..4cf84605 --- /dev/null +++ b/debian/boxbackup-server.docs @@ -0,0 +1,8 @@ +BUGS.txt +CONTACT.txt +DOCUMENTATION.txt +LINUX.txt +NETBSD.txt +THANKS.txt +TODO.txt +VERSION.txt diff --git a/debian/boxbackup-server.init b/debian/boxbackup-server.init new file mode 100644 index 00000000..b7b1b970 --- /dev/null +++ b/debian/boxbackup-server.init @@ -0,0 +1,80 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: boxbackup-server +# Required-Start: $syslog $local_fs $network +# Required-Stop: $syslog $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: S 0 1 6 +# Short-Description: boxbackup server +# Description: Init script to start and stop the boxbackup server +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/bbstored +NAME=bbstored +DESC=boxbackup-server +CONF=/etc/boxbackup/bbstored.conf + +test -f $DAEMON || exit 0 + +test -f $CONF || exit 0 + +PIDFILE=`grep 'PidFile' $CONF | sed 's/[[:space:]]*PidFile[[:space:]]*=[[:space:]]*\(\/[A-Za-z0-9/]*\)/\1/'` +CERTFILE=`grep 'CertificateFile' $CONF | sed 's/[[:space:]]*CertificateFile[[:space:]]*=[[:space:]]*\(\/[A-Za-z0-9/]*\)/\1/'` + +[ -z $PIDFILE ] && PIDFILE="/var/run/bbstored.pid" + +# Don't start if certificate file is not present +[ ! -e $CERTFILE ] && exit 0 + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $CONF + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE \ + --exec $DAEMON + echo "$NAME." + ;; + #reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + # echo "Reloading $DESC configuration files." + # start-stop-daemon --stop --signal 1 --quiet --pidfile \ + # /var/run/$NAME.pid --exec $DAEMON + #;; + restart|force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart". + # + echo -n "Restarting $DESC: " + start-stop-daemon --oknodo --stop --quiet --pidfile \ + $PIDFILE --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --pidfile \ + $PIDFILE --exec $DAEMON -- $CONF + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/boxbackup-server.install b/debian/boxbackup-server.install new file mode 100644 index 00000000..22c0ec7b --- /dev/null +++ b/debian/boxbackup-server.install @@ -0,0 +1,7 @@ +parcels/boxbackup-0.10-backup-server-linux-gnu/bbstored /usr/sbin/ +parcels/boxbackup-0.10-backup-server-linux-gnu/bbstoreaccounts /usr/sbin/ +parcels/boxbackup-0.10-backup-server-linux-gnu/bbstored-config /usr/sbin/ +parcels/boxbackup-0.10-backup-server-linux-gnu/raidfile-config /usr/sbin/ +debian/tmp/etc/logcheck/ignore.d.workstation/boxbackup-server /etc/logcheck/ignore.d.workstation +debian/tmp/etc/logcheck/ignore.d.server/boxbackup-server /etc/logcheck/ignore.d.server + diff --git a/debian/boxbackup-server.logcheck.ignore b/debian/boxbackup-server.logcheck.ignore new file mode 100644 index 00000000..c19b43db --- /dev/null +++ b/debian/boxbackup-server.logcheck.ignore @@ -0,0 +1,10 @@ +bbstored/hk\[.*\]: Starting housekeeping +bbstored/hk\[.*\]: Finished housekeeping +bbstored/hk\[.*\]: Housekeeping process started +bbstored\[.*\]: Starting daemon +bbstored\[.*\]: Terminating daemon +bbstored\[.*\]: Incoming connection from.*port.*\(handling in child.*\) +bbstored\[.*\]: Certificate CN: +bbstored\[.*\]: Login: Client ID +bbstored\[.*\]: Session finished + diff --git a/debian/boxbackup-server.postinst b/debian/boxbackup-server.postinst new file mode 100644 index 00000000..baaf87ac --- /dev/null +++ b/debian/boxbackup-server.postinst @@ -0,0 +1,211 @@ +#! /bin/sh +# postinst script for boxbackup-server +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +#loading debconf module +. /usr/share/debconf/confmodule + +CONFDIR=/etc/boxbackup +DEBCONFRAID=$CONFDIR/raidfile.debconf +DEBCONFBB=$CONFDIR/bbstored.debconf +RAIDCONF=$CONFDIR/raidfile.conf +BBCONF=$CONFDIR/bbstored.conf +BBACCOUNTS=$CONFDIR/bbstored/boxbackup-server-accounts.txt +BBUSER=bbstored +BBPRIVKEY=$CONFDIR/bbstored/boxbackup-server-key.pem +BBCERTREQ=$CONFDIR/bbstored/boxbackup-server-cert-req.pem +BBCERT=$CONFDIR/bbstored/boxbackup-server-cert.pem +BBCACERT=$CONFDIR/bbstored/boxbackup-client-ca-cert.pem + +case "$1" in + configure) + + # Set up the bbstored user + if [ -z "`getent passwd $BBUSER`" ]; then + echo "Creating $BBUSER user." >&2 + adduser --system --no-create-home \ + --disabled-password --disabled-login \ + --shell /bin/false --group --home /var $BBUSER + else + echo "User $BBUSER already exists." >&2 + fi + + db_get boxbackup-server/debconf + if [ "$RET" = "true" ]; then + # Generate configuration files + # raidfile.conf + echo "#To reconfigure boxbackup-server run #dpkg-reconfigure boxbackup-server" >> $DEBCONFRAID + + echo "disc0" >> $DEBCONFRAID + echo "{" >> $DEBCONFRAID + echo " SetNumber = 0" >> $DEBCONFRAID + + db_get boxbackup-server/raidBlockSize + echo " BlockSize = $RET" >> $DEBCONFRAID + + db_get boxbackup-server/raidDirectories + + DIR1=`echo "$RET" | awk '{ print $1 }'` + DIR2=`echo "$RET" | awk '{ print $2 }'` + DIR3=`echo "$RET" | awk '{ print $3 }'` + + if [ -n $DIR1 ]; then + if [ -z $DIR2 -o -z $DIR3 ]; then + DIR2=$DIR1 + DIR3=$DIR1 + fi + fi + + echo " Dir0 = $DIR1" >> $DEBCONFRAID + echo " Dir1 = $DIR2" >> $DEBCONFRAID + echo " Dir2 = $DIR3" >> $DEBCONFRAID + + echo "}" >> $DEBCONFRAID + + # Handle backup directories creation/permissions + for dir in "$DIR1" "$DIR2" "$DIR3"; do + if [ -d "$dir/backup" ]; then + # need stat package on Woody + #if (`stat -c %U $dir/backup` != $BBUSER); then + if [ `ls -ld $dir/backup | awk '{ print $3 }'` != "$BBUSER" ]; then + echo "Incorrect owner of backup directory. Changing it to $BBUSER..." >&2 + chown $BBUSER:$BBUSER $dir/backup + fi + + #if [ `stat -c %a $dir/backup` != "700" ]; then + if [ `ls -ld $dir/backup | awk '{ print $1 }'` != "drwx------" ]; then + chmod 700 $dir/backup + fi + else + echo "Creating $dir/backup directory..." >&2 + mkdir -p $dir/backup + chown $BBUSER:$BBUSER $dir/backup + chmod 700 $dir/backup + fi + done + + if ! dpkg-statoverride --list $CONFDIR/bbstored > /dev/null; then + dpkg-statoverride --update --add $BBUSER $BBUSER 700 $CONFDIR/bbstored + fi + + # Accounts file + if [ ! -e $BBACCOUNTS ]; then + touch $BBACCOUNTS + fi + + #if [ `stat -c %U $BBACCOUNTS` != $BBUSER ]; then + if [ `ls -ld $BBACCOUNTS | awk '{ print $3 }'` != "$BBUSER" ]; then + chown $BBUSER:$BBUSER $BBACCOUNTS + fi + + #if [ `stat -c %a $BBACCOUNTS` != "600" ]; then + if [ `ls -ld $BBACCOUNTS | awk '{ print $1 }'` != "drw-------" ]; then + chmod 600 $BBACCOUNTS + fi + + SERVNAME=`hostname --fqdn` + + # SSL stuff + if [ ! -e $BBPRIVKEY -a ! -e $BBCERT ]; then + db_get boxbackup-server/generateCertificate + + if [ "$RET" = "true" ]; then + if ! openssl genrsa -out $BBPRIVKEY 2048 >&2; then + echo "Private key generation failed! Check why." >&2 + else + chown $BBUSER: $BBPRIVKEY + chmod 600 $BBPRIVKEY || true + fi + + if ! openssl req -new -key $BBPRIVKEY -sha1 -out $BBCERTREQ >&2 <<EOF +. +. +. +. +. +$SERVNAME +. +. +. +EOF + then + echo "Certificate request generation failed ! Check why." >&2 + fi + fi + fi + + # Generate bbstored.conf + echo "#To reconfigure boxbackup-server run #dpkg-reconfigure boxbackup-server" >> $DEBCONFBB + echo "RaidFileConf = $RAIDCONF" >> $DEBCONFBB + echo "AccountDatabase = $BBACCOUNTS" >> $DEBCONFBB + echo >> $DEBCONFBB + echo "# Uncomment this line to see exactly what commands are being received from clients." >> $DEBCONFBB + echo "# ExtendedLogging = yes" >> $DEBCONFBB + echo >> $DEBCONFBB + echo "# scan all accounts for files which need deleting every 15 minutes." >> $DEBCONFBB + echo "TimeBetweenHousekeeping = 900" >> $DEBCONFBB + echo >> $DEBCONFBB + echo "Server" >> $DEBCONFBB + echo "{" >> $DEBCONFBB + echo " PidFile = /var/run/bbstored.pid" >> $DEBCONFBB + echo " User = bbstored" >> $DEBCONFBB + echo " ListenAddresses = inet:$SERVNAME" >> $DEBCONFBB + echo " CertificateFile = $BBCERT" >> $DEBCONFBB + echo " PrivateKeyFile = $BBPRIVKEY" >> $DEBCONFBB + echo " TrustedCAsFile = $BBCACERT" >> $DEBCONFBB + echo "}" >> $DEBCONFBB + + db_stop + + ucf --three-way $DEBCONFRAID $RAIDCONF >&2 </dev/tty + rm -f $DEBCONFRAID + chmod 644 $RAIDCONF || true + chown root:root $RAIDCONF || true + + ucf --three-way $DEBCONFBB $BBCONF >&2 </dev/tty + rm -f $DEBCONFBB + chmod 644 $BBCONF || true + chown root:root $BBCONF || true + else + db_stop + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + db_stop + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + db_stop + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/boxbackup-server.postrm b/debian/boxbackup-server.postrm new file mode 100644 index 00000000..ad624c69 --- /dev/null +++ b/debian/boxbackup-server.postrm @@ -0,0 +1,44 @@ +#! /bin/sh +# postrm script for #PACKAGE# +# +# see: dh_installdeb(1) +# summary of how this script can be called: +# * <postrm> `remove' +# * <postrm> `purge' +# * <old-postrm> `upgrade' <new-version> +# * <new-postrm> `failed-upgrade' <old-version> +# * <new-postrm> `abort-install' +# * <new-postrm> `abort-install' <old-version> +# * <new-postrm> `abort-upgrade' <old-version> +# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version> +# for details, see /usr/share/doc/packaging-manual/ + +set -e + + +case "$1" in + purge) + for i in /etc/boxbackup/raidfile.conf /etc/boxbackup/bbstored.conf; do + if [ -e $i ]; then + rm -f $i + fi + ucf -p $i + done + + dpkg-statoverride --remove /etc/boxbackup/bbstored || true + + getent passwd bbstored >/dev/null && deluser bbstored + getent group bbstored >/dev/null && delgroup bbstored + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 0 +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + diff --git a/debian/boxbackup-server.templates b/debian/boxbackup-server.templates new file mode 100644 index 00000000..ffe895da --- /dev/null +++ b/debian/boxbackup-server.templates @@ -0,0 +1,71 @@ +Template: boxbackup-server/debconf +Type: boolean +Default: true +Description: Do you want to handle the boxbackup server configuration with debconf? + Debconf can create the configuration files for boxbackup server. + If you prefer to do this by yourself you will need to use the scripts + raidfile-config and bbstored-config provided by this package. + . + The server won't start if it isn't configured. + . + Whatever you choose here, you will need to read the README.Debian file + in /usr/share/doc/boxbackup-server. + +Template: boxbackup-server/raidDirectories +Type: string +Description: Enter the location of the RAID directories + You have to choose the location for the 3 RAID file directories. + To enable RAID, it must be 3 directories path names separated by spaces + and those path names should point to 3 partitions on 3 differents + physical hard drives. + For example: /raid/0.0 /raid/0.1 /raid/0.2 + . + If you don't want to enable RAID, just specify the path to one directory + where the backups will be stored in (e.g. /usr/local/lib/boxbackup). + . + If they don't allready exist, these directories will be created for you. + +Template: boxbackup-server/incorrectDirectories +Type: note +Description: Please enter correct path names + The path names to the directories must be absolute path names separated by spaces. + . + For example: /raid/0.0 /raid/0.1 /raid/0.2 + +Template: boxbackup-server/raidBlockSize +Type: string +Default: 4096 +Description: Enter the block size for the userland RAID system + BoxBackup uses userland RAID techniques. + You have to choose the block size to use for the storage. + For maximum efficiency, set it to the block size of the underlying + filesystem (see tune2fs -l /dev/... to find your block size). + Even if you don't plan to use RAID, you have to set that value. + +Template: boxbackup-server/generateCertificate +Type: boolean +Default: true +Description: Do you want debconf to generate the server private key and x509 certificate request? + The boxbackup server needs a RSA private key and the corresponding x509 certificate + to perform client-server authentication and communication encryption. + . + Debconf can generate for you the private key and a x509 certificate sign request. + You will need to sign the certificate with your root CA (see the boxbackup-utils package) + and put this signed certificate and the root CA certificate in your configuration folder. + . + If you prefer to manage this by yourself, say No here. + +Template: boxbackup-server/generalInfo +Type: note +Description: Read /usr/share/doc/boxbackup-server/README.Debian to finish the configuration + You should read the /usr/share/doc/boxbackup-server/README.Debian file + to learn how to finish the configuration of boxbackup server. + You will have to sign the server certificate. + You can also add RAID file directories in the configuration + file /etc/boxbackup/raidfile.conf. + +Template: boxbackup-server/incorrectBlocksize +Type: note +Description: Please enter a power of two number + The block size must be a power of two number (e.g. 1024 or 4096). + diff --git a/debian/boxbackup-utils.dirs b/debian/boxbackup-utils.dirs new file mode 100644 index 00000000..e7724817 --- /dev/null +++ b/debian/boxbackup-utils.dirs @@ -0,0 +1 @@ +usr/bin diff --git a/debian/boxbackup-utils.docs b/debian/boxbackup-utils.docs new file mode 100644 index 00000000..4cf84605 --- /dev/null +++ b/debian/boxbackup-utils.docs @@ -0,0 +1,8 @@ +BUGS.txt +CONTACT.txt +DOCUMENTATION.txt +LINUX.txt +NETBSD.txt +THANKS.txt +TODO.txt +VERSION.txt diff --git a/debian/boxbackup-utils.install b/debian/boxbackup-utils.install new file mode 100644 index 00000000..c1620f2c --- /dev/null +++ b/debian/boxbackup-utils.install @@ -0,0 +1,2 @@ +parcels/boxbackup-0.10-backup-server-linux-gnu/bbstored-certs /usr/bin/ + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..72589177 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,92 @@ +boxbackup (0.10-1) unstable; urgency=low + + * New upstream version + * Add LSB headers in init script + + -- Jérôme Schell <jerome@myreseau.org> Mon, 10 Oct 2005 14:16:20 +0200 + +boxbackup (0.09-3) unstable; urgency=low + + * Added man pages for bbackupd, bbackupd-config, bbackupctl, bbackupquery + * Improve lintian compatibility of the packages + + -- Jérôme Schell <jerome@myreseau.org> Mon, 10 Oct 2005 14:16:20 +0200 + +boxbackup (0.09-2) unstable; urgency=low + + * Improve clean target of debian/rules + + -- Jérôme Schell <jerome@myreseau.org> Sun, 20 Feb 2005 11:41:20 +0010 + +boxbackup (0.09-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@myreseau.org> Thu, 6 Dec 2004 20:45:20 +0010 + +boxbackup (0.08-2) unstable; urgency=low + + * Fix endless loop when debconf priority is high or critical + + -- Jérôme Schell <jerome@taonix.org> Thu, 23 Sep 2004 17:36:20 +0010 + +boxbackup (0.08-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@taonix.org> Thu, 23 Sep 2004 17:36:20 +0010 + +boxbackup (0.07+PLUS4-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@taonix.org> Thu, 23 Sep 2004 10:21:20 +0010 + +boxbackup (0.07-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@taonix.org> Tue, 28 Jun 2004 21:26:20 +0010 + +boxbackup (0.06PLUS2-3) unstable; urgency=low + + * Fix the client init script to really stop the daemon + + -- Jérôme Schell <jerome@taonix.org> Tue, 27 Jun 2004 18:48:20 +0010 + +boxbackup (0.06PLUS2-2) unstable; urgency=low + + * Fix notifyadmin script is not executable + + -- Jérôme Schell <jerome@taonix.org> Tue, 24 Jun 2004 22:22:20 +0010 + +boxbackup (0.06PLUS2-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@taonix.org> Tue, 24 Jun 2004 20:46:20 +0010 + +boxbackup (0.06PLUS1-3) unstable; urgency=low + + * Fix bad default configuration file path + + -- Jérôme Schell <jerome@taonix.org> Tue, 19 Jun 2004 21:03:24 +0010 + +boxbackup (0.06PLUS1-2) unstable; urgency=low + + * Fix missing dependencies on openssl for boxbackup-client + + -- Jérôme Schell <jerome@taonix.org> Tue, 19 Jun 2004 00:30:24 +0010 + +boxbackup (0.06PLUS1-1) unstable; urgency=low + + * New upstream release. + + -- Jérôme Schell <jerome@taonix.org> Tue, 18 Jun 2004 18:51:24 +0010 + +boxbackup (0.06-1) unstable; urgency=low + + * Initial Release. + + -- Jérôme Schell <jerome@taonix.org> Tue, 1 Jun 2004 07:51:24 +0010 + diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..5296637d --- /dev/null +++ b/debian/control @@ -0,0 +1,37 @@ +Source: boxbackup +Section: utils +Priority: optional +Maintainer: Jérôme Schell <jerome@myreseau.org> +Build-Depends: debhelper (>> 3.0.0), libedit-dev, libdb4.3-dev, libssl-dev (>= 0.9.7), zlib1g-dev +Standards-Version: 3.5.2 + +Package: boxbackup-server +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends}, perl (>= 5.6.0), gawk, ucf (>= 0.08), openssl (>= 0.9.7) +Recommends: boxbackup-utils +Description: Server for BoxBackup remote backup system + Boxbackup is an automatic on-line backup system. + The server waits for connections from remote clients, + authenticates them via x509 certificates and stores the + encrypted data on hard drives with optionnals RAID techniques. + It also supports versions historization and per-user quotas. + +Package: boxbackup-client +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends}, ucf (>= 0.07), perl (>= 5.6.0), openssl (>= 0.9.7) +Description: Client for BoxBackup remote backup system + Boxbackup is an automatic on-line backup system. + The client is watching for changes on the local filesystem, + connects to a Boxbackup server and send the changes via a + secure channel. All data is encrypted before being sent to + the server. A command line tool is provided for restoration + of backups including deleted files and old versions. + +Package: boxbackup-utils +Architecture: all +Depends: perl (>= 5.6.0), openssl (>= 0.9.6c) +Description: Utilities for BoxBackup remote backup system + Boxbackup is an automatic on-line backup system. + This package contains utilities for managing SSL clients + certificates. + diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..42482124 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,48 @@ +This package was debianized by Jérôme Schell <jerome@myreseau.org> on +Tue, 1 Jun 2004 07:51:24 +0000. + +It was downloaded from http://www.fluffy.co.uk/boxbackup/ + +Upstream Author: Ben Summers <ben@fluffy.co.uk> + +Copyright: + +Copyright (c) 2003, 2004 + Ben Summers. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All use of this software and associated advertising materials must + display the following acknowledgement: + This product includes software developed by Ben Summers. +4. The names of the Authors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +[Where legally impermissible the Authors do not disclaim liability for +direct physical injury or death caused solely by defects in the software +unless it is modified by a third party.] + +THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +Commentary + +This license is based on a standard BSD license. Some minor changes in wording have been made to fit in with English law. + +© Ben Summers, 2003, 2004 diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..7dec776e --- /dev/null +++ b/debian/rules @@ -0,0 +1,152 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 by Joey Hess. +# +# This version is for a hypothetical package that builds an +# architecture-dependant package, as well as an architecture-independent +# package. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatibility version to use. +export DH_COMPAT=4 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +TMP:=$(CURDIR)/debian/tmp + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + ./configure + + touch configure-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here command to compile/build the package. + $(MAKE) + + touch build-stamp + +build: build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + rm -f configure-stamp + rm -f debian/files + + find . -name '*.o' | xargs --no-run-if-empty rm + find . -name '*.a' | xargs --no-run-if-empty rm + find . -name 'autogen_*' | xargs --no-run-if-empty rm + find . -name '_*' | xargs --no-run-if-empty rm + rm -f release/bin/bbstored/bbstored + rm -f release/bin/bbstoreaccounts/bbstoreaccounts + rm -f release/bin/bbackupd/bbackupd + rm -f release/bin/bbackupquery/bbackupquery + rm -f release/bin/bbackupctl/bbackupctl + rm -f local/modules.h + rm -f local/install.msg + rm -f ExceptionCodes.txt + rm -f parcels/scripts/install-backup-client + rm -f parcels/scripts/install-backup-server + rm -f infrastructure/BoxPlatform.pm + rm -f lib/common/BoxConfig.h + rm -f config.log config.status + + # Add here commands to clean up after the build process. + -$(MAKE) clean + + find . -name 'Makefile' | xargs --no-run-if-empty rm + + dh_clean + +install: DH_OPTIONS= +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + mkdir -p $(TMP)/etc/logcheck/ignore.d.workstation + mkdir -p $(TMP)/etc/logcheck/ignore.d.server + install -m 644 debian/boxbackup-server.logcheck.ignore $(TMP)/etc/logcheck/ignore.d.workstation/boxbackup-server + install -m 644 debian/boxbackup-server.logcheck.ignore $(TMP)/etc/logcheck/ignore.d.server/boxbackup-server + + dh_install + +# Build architecture-independent files here. +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: build install + dh_testdir -i + dh_testroot -i +# dh_installdebconf -i + dh_installdocs -i +# dh_installexamples -i +# dh_installmenu -i +# dh_installlogrotate -i +# dh_installemacsen -i +# dh_installpam -i +# dh_installmime -i +# dh_installinit -i +# dh_installcron -i +# dh_installman -i +# dh_installinfo -i +# dh_undocumented -i + dh_installchangelogs -i +# dh_link -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i +# dh_perl -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir -a + dh_testroot -a + dh_installdebconf -a + dh_installdocs -a +# dh_installexamples -a +# dh_installmenu -a +# dh_installlogrotate -a +# dh_installemacsen -a +# dh_installpam -a +# dh_installmime -a + dh_installinit -a + dh_installcron -a + dh_installman +# dh_installinfo -a +# dh_undocumented -a + dh_installchangelogs -a + dh_strip -a +# dh_link -a + dh_compress -a + dh_fixperms -a +# dh_makeshlibs -a + dh_installdeb -a +# dh_perl -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install |