# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/bacula-3.0.3.ebuild,v 1.2 2009/12/26 17:22:56 pva Exp $ EAPI="2" inherit eutils IUSE="bacula-clientonly bacula-console bacula-nodir bacula-nosd ipv6 logwatch mysql postgres python qt4 readline sqlite +sqlite3 ssl static tcpd wxwindows X tray-monitor" # bacula-web bimagemgr brestore bweb KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86" DESCRIPTION="Featureful client/server network backup suite" HOMEPAGE="http://www.bacula.org/" MY_PV=${PV/_beta/-b} MY_P=${PN}-${MY_PV} S=${WORKDIR}/${MY_P} #DOC_VER="${MY_PV}" #DOC_SRC_URI="mirror://sourceforge/bacula/${PN}-docs-${DOC_VER}.tar.bz2" #GUI_VER="${PV}" #GUI_SRC_URI="mirror://sourceforge/bacula/${PN}-gui-${GUI_VER}.tar.gz" SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz" # doc? ( ${DOC_SRC_URI} ) # bacula-web? ( ${GUI_SRC_URI} ) # bimagemgr? ( ${GUI_SRC_URI} ) # brestore? ( ${GUI_SRC_URI} ) # bweb? ( ${GUI_SRC_URI} ) LICENSE="GPL-2" SLOT="0" DEPEND=" >=sys-libs/zlib-1.1.4 dev-libs/gmp !bacula-clientonly? ( postgres? ( >=virtual/postgresql-server-7.4 ) mysql? ( virtual/mysql ) sqlite? ( =dev-db/sqlite-2* ) sqlite3? ( >=dev-db/sqlite-3.0.0 ) virtual/mta ) bacula-console? ( wxwindows? ( =x11-libs/wxGTK-2.6* ) qt4? ( x11-libs/qt-svg:4 >=x11-libs/qwt-5 ) ) ssl? ( dev-libs/openssl ) logwatch? ( sys-apps/logwatch ) tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) readline? ( >=sys-libs/readline-4.1 ) python? ( dev-lang/python[threads] )" # doc? ( # app-text/ghostscript-gpl # dev-tex/latex2html[png] # app-text/dvipdfm # ) RDEPEND="${DEPEND} !bacula-clientonly? ( sys-block/mtx app-arch/mt-st )" pkg_setup() { local dbnum declare -i dbnum=0 if ! useq bacula-clientonly; then if useq mysql; then export mydbtype='mysql' let dbnum++ fi if useq postgres; then export mydbtype='postgresql' let dbnum++ fi if useq sqlite; then export mydbtype='sqlite' let dbnum++ fi if useq sqlite3; then export mydbtype='sqlite3' let dbnum++ fi if [[ "${dbnum}" -lt 1 ]]; then eerror eerror "To use ${P} it is required to set a database in the USE flags." eerror "Supported databases are mysql, postgresql, sqlite, sqlite3" eerror die "No database type selected." elif [[ "${dbnum}" -gt 1 ]]; then eerror eerror "You have set ${P} to use multiple database types." eerror "I don't know which to set as the default!" eerror "You can use /etc/portage/package.use to set per-package USE flags" eerror "Set it so only one database type, mysql, postgres, sqlite, sqlite3" eerror die "Multiple database types selected." fi fi # create the daemon group and user if [ -z "$(egetent group bacula)" ]; then enewgroup bacula einfo einfo "The group 'bacula' has been created. Any users you add to this" einfo "group have access to files created by the daemons." einfo fi if ! useq bacula-clientonly; then if [ -z "$(egetent passwd bacula)" ]; then enewuser bacula -1 -1 /var/lib/bacula bacula,disk,tape,cdrom,cdrw einfo einfo "The user 'bacula' has been created. Please see the bacula manual" einfo "for information about running bacula as a non-root user." einfo fi fi } src_prepare() { # adjusts default configuration files for several binaries # to /etc/bacula/ instead of ./ #pushd src && epatch "${FILESDIR}/${PV}/${PN}"-default-configs.patch && popd pushd src for f in console/console.c dird/dird.c filed/filed.c \ stored/bcopy.c stored/bextract.c stored/bls.c \ stored/bscan.c stored/btape.c stored/stored.c \ tray-monitor/tray-monitor.c qt-console/main.cpp; do sed -i 's|^#define CONFIG_FILE "|#define CONFIG_FILE "/etc/bacula/|' "$f" done popd # apply upstream patches #epatch "${FILESDIR}"/${PV}/${PV}-foo.patch } src_configure() { local myconf='' if useq bacula-clientonly; then myconf="${myconf} \ $(use_enable bacula-clientonly client-only) \ $(use_enable static static-fd)" else myconf="${myconf} \ --with-${mydbtype} \ $(use_enable static static-tools) \ $(use_enable static static-fd) \ $(use_enable !bacula-nodir build-dird) \ $(use_enable !bacula-nosd build-stored)" if ! useq bacula-nodir; then myconf="${myconf} $(use_enable static static-dir)" fi if ! useq bacula-nosd; then myconf="${myconf} $(use_enable static static-sd)" fi case "${mydbtype}" in sqlite) ;; *) myconf="${myconf} --enable-batch-insert" ;; esac fi if useq bacula-console; then if useq qt4 && has_version '