# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 81489 2011-07-31 20:41:57Z macsforever2000@macports.org $

PortSystem 1.0

name             bacula
version          5.0.3
revision         2
categories       sysutils
platforms        darwin
license          GPL
maintainers      macsforever2000

description      network based backup program
long_description "Bacula is a set of computer programs that permit you to \
                 manage backup, recovery, and verification of computer data across \
                 a network of computers of different kinds."

homepage         http://www.bacula.org/
master_sites     sourceforge

checksums           md5     9de254ae39cab0587fdb2f5d8d90b03b \
                    sha1    4ced1c4f8984a063a1134b59968d163243017611 \
                    rmd160  0ae8f303b379daffdf09e4eab9b35182759add41

depends_lib      port:gawk \
                 port:zlib \
                 port:openssl \
                 port:libiconv \
                 port:gettext \
                 port:ncurses

patchfiles       patch-configure.diff \
                 patch-base64-typecast.diff

post-patch {
                 reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/configure
}

configure.ccache no
configure.args   --mandir=${prefix}/share/man \
                 --docdir=${prefix}/share/doc/bacula \
                 --datarootdir=${prefix}/share \
                 --with-pid-dir=${prefix}/var/run \
                 --with-subsys-dir=${prefix}/var/run/subsys \
                 --sysconfdir=${prefix}/etc/${name} \
                 --with-libintl-prefix=${prefix} \
                 --with-openssl=${prefix} \
                 --with-libiconv-prefix=${prefix} \
                 --with-readline=${prefix} \
                 --with-archivedir=/var/tmp \
                 --with-included-gettext=${prefix} \
                 --enable-smartalloc \
                 --enable-largefile \
                 --without-sqlite \
                 --without-sqlite3 \
                 --without-postgresql \
                 --without-mysql \
                 --disable-gnome \
                 --disable-wx-console \
                 --disable-tray-monitor \
                 --with-tcp-wrappers \
                 ac_cv_lib_ssl_EVP_PKEY_encrypt_old=yes

# The ac_cv_lib_ssl_EVP_PKEY_encrypt_old=yes line above is for openssl 1.0
# to get around an apparent bug in bacula

configure.cppflags-append   -I${prefix}/ncurses
configure.ldflags           ""

destroot.keepdirs   ${destroot}${prefix}/var/run/subsys \
                    ${destroot}${prefix}/var/bacula/working

# Don't overwrite preference files
post-destroot {
  file rename ${destroot}${prefix}/etc/bacula/bacula-fd.conf ${destroot}${prefix}/etc/bacula/bacula-fd.conf.example
  file rename ${destroot}${prefix}/etc/bacula/bconsole.conf ${destroot}${prefix}/etc/bacula/bconsole.conf.example
  file rename ${destroot}${prefix}/etc/bacula/mtx-changer.conf ${destroot}${prefix}/etc/bacula/mtx-changer.conf.example
}

startupitem.create  yes
startupitem.init    "BIN=${prefix}/sbin/bacula-fd\nPID=${prefix}/var/run/bacula-fd.*.pid"
startupitem.start   "\[ -x \${BIN} \] && \${BIN} -c ${prefix}/etc/bacula/bacula-fd.conf"
startupitem.stop    "\[ -r \${PID} \] && /bin/kill \$(cat \${PID})"

variant client_only conflicts mysql5 postgresql83 postgresql84 sqlite2 sqlite3 description "Install bacula client (bacula-fd) only" {
  configure.args-append --enable-client-only
}

variant mysql5 conflicts client_only postgresql83 postgresql84 sqlite2 sqlite3 description "Install bacula client and server with mysql 5 backend" {
  depends_lib-append    path:bin/mysql_config5:mysql5
  configure.args-append --with-mysql
  configure.args-delete --without-mysql
}

variant postgresql83 conflicts mysql5 postgresql84 sqlite2 sqlite3 client_only description "Install bacula client and server with postgresql 8.3 backend" {
  depends_lib-append    port:postgresql83
  configure.args-append --with-postgresql
  configure.args-delete --without-postgresql
  configure.env-append PATH=${prefix}/lib/postgresql83/bin:$env(PATH)
}

variant postgresql84 conflicts mysql5 postgresql83 sqlite2 sqlite3 client_only description "Install bacula client and server with postgresql 8.4 backend" {
  depends_lib-append    port:postgresql84
  configure.args-append --with-postgresql
  configure.args-delete --without-postgresql
  configure.env-append PATH=${prefix}/lib/postgresql84/bin:$env(PATH)
}

variant sqlite2 conflicts client_only sqlite3 mysql5 postgresql83 postgresql84 description "Install bacula client and server with sqlite 2 backend" {
  depends_lib-append    port:sqlite2
  configure.args-append --with-sqlite=${prefix}
  configure.args-delete --without-sqlite
}

variant sqlite3 conflicts client_only sqlite2 mysql5 postgresql83 postgresql84 description "Install bacula client and server with sqlite 3 backend" {
  depends_lib-append    port:sqlite3
  configure.args-append --with-sqlite3=${prefix}
  configure.args-delete --without-sqlite3
}

if {![variant_isset mysql5] && ![variant_isset postgresql83] && ![variant_isset postgresql84] && ![variant_isset sqlite2] && ![variant_isset sqlite3]} {
  default_variants +client_only
}

livecheck.type          regex
livecheck.url           ${homepage}en/?page=downloads
livecheck.regex         bacula-(\[0-9.\]\\.\[0-9.\]\\.\[0-9.\]).tar.gz
