diff options
Diffstat (limited to 'app-backup/bacula/bacula-2.2.6.ebuild')
-rw-r--r-- | app-backup/bacula/bacula-2.2.6.ebuild | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/app-backup/bacula/bacula-2.2.6.ebuild b/app-backup/bacula/bacula-2.2.6.ebuild deleted file mode 100644 index a0134fd0f51b..000000000000 --- a/app-backup/bacula/bacula-2.2.6.ebuild +++ /dev/null @@ -1,380 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/bacula-2.2.6.ebuild,v 1.2 2007/11/15 13:26:52 wschlich 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 bacula-web and/or bweb from bacula-gui package -# - -inherit eutils - -IUSE="bacula-clientonly bacula-console bacula-nodir bacula-nosd bacula-split-init doc gnome ipv6 logrotate logwatch mysql postgres python qt4 readline sqlite sqlite3 ssl static tcpd wxwindows X" -KEYWORDS="~amd64 ~hppa ~sparc ~x86" - -DESCRIPTION="Featureful client/server network backup suite" -HOMEPAGE="http://www.bacula.org/" - -DOC_VER="${PV}" -SRC_URI="mirror://sourceforge/bacula/${P}.tar.gz - doc? ( mirror://sourceforge/bacula/${PN}-docs-${DOC_VER}.tar.bz2 )" - -LICENSE="GPL-2" -SLOT="0" - -DEPEND=" - >=sys-libs/zlib-1.1.4 - dev-libs/gmp - !bacula-clientonly? ( - postgres? ( >=dev-db/postgresql-7.4.0 ) - 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-4* - >=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/<config> instead of ./<config> - 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 -} - -src_compile() { - 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 '<x11-libs/qwt-5'; then - eerror "x11-libs/qwt found in a version < 5, thus the" - eerror "compilation of 'bat' would fail (see" - eerror "http://bugs.gentoo.org/188477#c11 for details)." - eerror "please either unmerge <x11-libs/qwt-5 or disable" - eerror "the qt4 USE flag to disable building 'bat'." - die "incompatible slotted qwt version found" - fi - myconf="${myconf} \ - $(use_with X x) \ - $(use_enable gnome) \ - $(use_enable gnome tray-monitor) \ - $(use_enable wxwindows bwx-console) \ - $(use_enable qt4 bat) \ - $(use_enable static static-cons)" - fi - - myconf="${myconf} \ - $(use_with python) \ - $(use_enable readline) \ - $(use_with readline readline /usr) \ - $(use_with ssl openssl) \ - $(use_enable ipv6) \ - $(use_with tcpd tcp-wrappers)" - - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --with-pid-dir=/var/run \ - --sysconfdir=/etc/bacula \ - --infodir=/usr/share/info \ - --with-subsys-dir=/var/lock/subsys \ - --with-working-dir=/var/lib/bacula \ - --with-scriptdir=/usr/libexec/bacula \ - --with-dir-user=bacula \ - --with-dir-group=bacula \ - --with-sd-user=root \ - --with-sd-group=bacula \ - --with-fd-user=root \ - --with-fd-group=bacula \ - --enable-smartalloc \ - --host=${CHOST} \ - ${myconf} \ - || die "configure failed" - - emake || die "emake failed" - - # build docs from bacula-docs tarball - if useq doc; then - pushd "${WORKDIR}/${PN}-docs-${DOC_VER}" - - ./configure \ - --with-bacula="${S}" \ - || die "configure for bacula-docs failed" - - # the main Makefile tries to build stuff in - # ./developer/ and ./bacula-web/, which is - # unfortunately broken in 2.0.3, so we only - # build stuff in ./manual/, which works. - pushd manual - emake -j1 || die "emake for bacula-docs failed" - popd - - popd - fi -} - -src_install() { - emake DESTDIR="${D}" install || die "emake install failed" - - # install bat when enabled (for some reason ./configure doesn't pick this up) - if useq bacula-console && useq qt4; then - dosbin "${S}"/src/qt-console/bat - fi - - # remove some scripts we don't need at all - rm -f "${D}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql} - - # rename statically linked apps - if useq static; then - pushd "${D}"/usr/sbin - mv static-bacula-fd bacula-fd - mv static-bconsole bconsole - if ! useq bacula-clientonly; then - mv static-bacula-dir bacula-dir - mv static-bacula-sd bacula-sd - fi - if useq bacula-console && useq gnome; then - mv static-gnome-console gnome-console - fi - if useq bacula-console && useq qt4; then - mv static-bat bat - fi - popd - fi - - # gnome-console menu entries using gksu - if useq bacula-console && useq gnome; then - emake DESTDIR="${D}" install-menu-xsu \ - || die "Failed to install gnome menu files" - fi - - # extra files which 'make install' doesn't cover - if ! useq bacula-clientonly; then - # the database update scripts - diropts -m0750 - insinto /usr/libexec/bacula/updatedb - insopts -m0754 - doins "${S}"/updatedb/* - fperms 0640 /usr/libexec/bacula/updatedb/README - - # the logrotate configuration - if useq logrotate; then - diropts -m0755 - insinto /etc/logrotate.d - insopts -m0644 - newins "${S}"/scripts/logrotate bacula - fi - - # the logwatch scripts - if useq logwatch; then - diropts -m0750 - dodir /etc/log.d/scripts/services - dodir /etc/log.d/conf/logfiles - dodir /etc/log.d/conf/services - cd "${S}"/scripts/logwatch - emake DESTDIR="${D}" install || die "Failed to install logwatch scripts" - cd "${S}" - fi - fi - - # documentation - for d in "${S}"/{ChangeLog,LICENSE,README,ReleaseNotes,SUPPORT,kernstodo,projects}; do - dodoc "${d}" - done - # TODO FIXME: developers and bacula-web documentation is broken with 2.0.3 :-( - if useq doc; then -#! dodoc "${WORKDIR}/${PN}-docs-${DOC_VER}"/developers/developers.pdf - dodoc "${WORKDIR}/${PN}-docs-${DOC_VER}"/manual/bacula.pdf - diropts -m0755 -#! dodir /usr/share/doc/"${PF}"/developers - dodir /usr/share/doc/"${PF}"/manual - insopts -m0644 -#! insinto /usr/share/doc/"${PF}"/developers -#! doins "${WORKDIR}/${PN}-docs-${DOC_VER}"/developers/developers/* - insinto /usr/share/doc/"${PF}"/manual - doins "${WORKDIR}/${PN}-docs-${DOC_VER}"/manual/bacula/* - fi - - # setup init scripts - myservices="fd" - if ! useq bacula-clientonly; then - if ! useq bacula-nodir; then - myservices="${myservices} dir" - fi - if ! useq bacula-nosd; then - myservices="${myservices} sd" - fi - fi - if useq bacula-split-init; then - myscripts="" - for service in ${myservices}; do - myscripts="${myscripts} bacula-${service}" - done - else - myscripts="bacula-all" - fi - for script in ${myscripts}; do - # copy over init script and config to a temporary location - # so we can modify them as needed - cp "${FILESDIR}/${PV}/${script}"-conf "${T}/${script}".conf - cp "${FILESDIR}/${PV}/${script}"-init "${T}/${script}".init - # set database dependancy for the all-in-one and director init scripts - case "${mydbtype}" in - sqlite*) - # sqlite + sqlite3 databases don't have daemons - sed -i -e "s:%database%::" "${T}/${script}".init - ;; - *) - # all other databases have daemons - sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".init - ;; - esac - # set services for the all-in-one init script - sed -i -e "s:%services%:${myservices}:" "${T}/${script}".conf - # install init script and config - newinitd "${T}/${script}".init "${script}" - newconfd "${T}/${script}".conf "${script}" - done - - # make sure the working directory exists - diropts -m0750 - keepdir /var/lib/bacula - - # make sure bacula group can execute bacula libexec scripts - fowners root:bacula /usr/libexec/bacula/* -} - -pkg_postinst() { - if useq bacula-clientonly; then - fowners root:bacula /var/lib/bacula - else - fowners bacula:bacula /var/lib/bacula - fi - - if ! useq bacula-clientonly && ! useq bacula-nodir; then - einfo - einfo "If this is a new install, you must create the ${mydbtype} databases with:" - einfo " /usr/libexec/bacula/create_${mydbtype}_database" - einfo " /usr/libexec/bacula/make_${mydbtype}_tables" - einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges" - einfo - einfo "If you're upgrading from a major release, you must upgrade your bacula catalog database." - einfo "Please read the manual chapter for how to upgrade your database." - einfo "You can find database upgrade scripts in /usr/libexec/bacula/updatedb." - einfo - fi -} |