# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/bacula-2.4.1-r1.ebuild,v 1.6 2008/08/11 17:26:35 yngwin Exp $ # # TODO: # - install stuff from examples/: # - examples/nagios/ + add nagios USE flag etc. # (see also example/reports/check_bacula_pools.sh which is newer # than examples/nagios/check_bacula_pools.sh) # - examples/autochangers/ # - examples/devices/ # - examples/python/ # - examples/reports/baculareport.pl # - correctly filter unneeded /usr/libexec/bacula/ stuff depending # on selected USE flags, e.g. bacula-clientonly # - install stuff from bacula-gui package: # - bweb # - bacula-web # - bimagemgr # - brestore # - bacula >=2.4.0 supports --without-qwt -- reflect with USE=qwt? # EAPI="1" inherit eutils IUSE="bacula-clientonly bacula-console bacula-nodir bacula-nosd doc gnome ipv6 logrotate logwatch mysql postgres python qt4 readline sqlite sqlite3 ssl static tcpd wxwindows X" # bacula-web bimagemgr brestore bweb KEYWORDS="~amd64 hppa ppc sparc x86" DESCRIPTION="Featureful client/server network backup suite" HOMEPAGE="http://www.bacula.org/" DOC_VER="${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/${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/qt-4.3* ) >=x11-libs/qwt-5 ) gnome? ( >=gnome-base/libgnome-2 x11-libs/gksu ) ) ssl? ( dev-libs/openssl ) logrotate? ( app-admin/logrotate ) logwatch? ( sys-apps/logwatch ) tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) readline? ( >=sys-libs/readline-4.1 ) doc? ( virtual/ghostscript dev-tex/latex2html )" 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_unpack() { unpack ${A} cd "${S}" # adjusts default configuration files for several binaries # to /etc/bacula/ instead of ./ pushd src && epatch "${FILESDIR}/${PV}/${PN}"-default-configs.patch && popd # replaces (deprecated) gnomesu with gksu in the gnome menu files useq bacula-console && useq gnome && epatch "${FILESDIR}/${PV}/${PN}"-gnomesu2gksu.diff # apply upstream patches epatch "${FILESDIR}"/${PV}/${PV}-mount.patch epatch "${FILESDIR}"/${PV}/${PV}-mysql-timeout.patch epatch "${FILESDIR}"/${PV}/${PV}-sd-crash.patch } src_compile() { if useq doc && has_version dev-tex/latex2html && ! built_with_use dev-tex/latex2html png; then eerror "${PN} needs the PNG support of latex2html" eerror "Please re-emerge dev-tex/latex2html with USE=png" die "need dev-tex/latex2html built with png USE flag" fi 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 fi if useq bacula-console; then if useq qt4 && has_version '