Index: /trunk/dports/net/zabbix2/Portfile
===================================================================
--- /trunk/dports/net/zabbix2/Portfile	(revision 99497)
+++ /trunk/dports/net/zabbix2/Portfile	(revision 99497)
@@ -0,0 +1,326 @@
+# -*- 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$
+
+PortSystem          1.0
+
+name                zabbix2
+version             2.0.3
+revision            0
+categories          net
+maintainers         openmaintainer
+platforms           darwin
+
+license             GPL-2
+
+description         An open source application and network monitor
+
+long_description    Zabbix is the ultimate open source availability and \
+                    performance monitoring solution. Zabbix offers advanced \
+                    monitoring, alerting, and visualization features today \
+                    which are missing in other monitoring systems, even some \
+                    of the best commercial ones. 
+
+distname            zabbix-${version}
+livecheck.name      zabbix
+livecheck.regex     "zabbix-(\[0-9.\]+\.\[0-9.\]+)\.tar"
+homepage            http://www.zabbix.com/
+master_sites        sourceforge:zabbix
+
+checksums \
+    rmd160  f5af99ef4756ef9695248b9bc79c8fe709eec1cd \
+    sha256  b6febeab76e6af3efdc124bce1bb51a30651babcf41f2d22fe428ff69ab3f764
+
+depends_lib         port:fping \
+                    port:curl \
+                    port:OpenIPMI
+
+conflicts           zabbix
+
+configure.args      --enable-server \
+                    --enable-agent \
+                    --with-net-snmp \
+                    --bindir=${prefix}/bin/zabbix \
+                    --sbindir=${prefix}/sbin/zabbix \
+                    --libexecdir=${prefix}/libexec/zabbix \
+                    --datadir=${prefix}/share/zabbix \
+                    --sysconfdir=${prefix}/etc/zabbix \
+                    --localstatedir=${prefix}/var/zabbix
+
+configure.args-append       --with-openipmi=${prefix}
+
+configure.ldflags-append    -lresolv
+
+if { [variant_isset agent_only] } {
+    startupitem.create      yes
+    startupitem.start       "${prefix}/share/zabbix/zabbix_agentd.init start"
+    startupitem.stop        "${prefix}/share/zabbix/zabbix_agentd.init stop"
+} else {
+    startupitem.create      yes
+    startupitem.start       "${prefix}/share/zabbix/zabbix_server.init start"
+    startupitem.stop        "${prefix}/share/zabbix/zabbix_server.init stop"
+}
+
+variant mysql5 conflicts pgsql81 pgsql82 pgsql83 pgsql84 sqlite3 \
+    description {Use MySQL 5.x for server database} {
+    depends_lib-append      path:bin/mysql_config5:mysql5
+    configure.args-append   --with-mysql=${prefix}/lib/mysql5/bin/mysql_config
+}
+
+variant pgsql81 conflicts mysql5 pgsql82 pgsql83 pgsql84 sqlite3 \
+    description {Use PostgreSQL 8.1.x for server database} {
+    depends_lib-append      port:postgresql81
+    configure.args-append   --with-pgsql=${prefix}/lib/postgresql81/bin/pg_config
+}
+
+variant pgsql82 conflicts mysql5 pgsql81 pgsql83 pgsql84 sqlite3 \
+    description {Use PostgreSQL 8.2.x for server database} {
+    depends_lib-append    port:postgresql82
+    configure.args-append    --with-pgsql=${prefix}/lib/postgresql82/bin/pg_config
+}
+
+variant pgsql83 conflicts mysql5 pgsql81 pgsql82 pgsql84 sqlite3 \
+    description {Use PostgreSQL 8.3.x for server database} {
+    depends_lib-append      port:postgresql83
+    configure.args-append   --with-pgsql=${prefix}/lib/postgresql83/bin/pg_config
+}
+
+variant pgsql84 conflicts mysql5 pgsql81 pgsql82 pgsql83 sqlite3 \
+    description {Use PostgreSQL 8.4.x for server database} {
+    depends_lib-append      port:postgresql84
+    configure.args-append   --with-pgsql=${prefix}/lib/postgresql84/bin/pg_config
+}
+
+variant sqlite3 conflicts mysql5 pgsql81 pgsql82 pgsql83 pgsql84 \
+    description {Use SQLite 3.x for server database} {
+    depends_lib-append      port:sqlite3
+    configure.args-append   --with-sqlite3=${prefix}
+}
+
+variant agent_only conflicts mysql5 pgsql81 pgsql82 pgsql83 pgsql84 sqlite3 \
+    description {Do not install the Zabbix server} {
+    depends_lib-delete      port:fping \
+                            port:curl
+
+    configure.args-delete   --enable-server \
+                            --with-net-snmp
+}
+
+if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3] && ![variant_isset agent_only]} {
+    default_variants +mysql5
+}
+
+post-extract {
+    reinplace "s|#DBSocket=/tmp/mysql.sock|DBSocket=${prefix}/var/run/mysql5/mysqld.sock|g" \
+            ${worksrcpath}/conf/zabbix_server.conf
+
+    reinplace "s|#FpingLocation=/usr/sbin/fping|FpingLocation=${prefix}/sbin/fping|g" \
+        ${worksrcpath}/conf/zabbix_server.conf
+}
+
+pre-destroot {
+    add_users zabbix group=zabbix
+}
+
+post-destroot {
+
+if { [variant_isset agent_only] } {
+# Don't install MySQL data and frontend stuff for agent_only
+
+# Copy sample agent .conf files
+    xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix
+    xinstall -m 755  ${worksrcpath}/conf/zabbix_agent.conf \
+        ${destroot}${prefix}/etc/zabbix/zabbix_agent.conf.sample
+    xinstall -m 755  ${worksrcpath}/conf/zabbix_agentd.conf \
+        ${destroot}${prefix}/etc/zabbix/zabbix_agentd.conf.sample
+
+# Copy a startup script for the agent
+    xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix
+    xinstall -m 755 ${portpath}/${filesdir}/zabbix_agentd.init \
+        ${destroot}${prefix}/share/zabbix
+    reinplace "s|__PREFIX__|${prefix}|g" \
+        ${destroot}${prefix}/share/zabbix/zabbix_agentd.init
+} else {
+
+# Copy sample server and agent .conf files
+    xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix
+    xinstall -m 755 ${worksrcpath}/conf/zabbix_agent.conf \
+        ${destroot}${prefix}/etc/zabbix/zabbix_agent.conf.sample
+    xinstall -m 755 ${worksrcpath}/conf/zabbix_agentd.conf \
+        ${destroot}${prefix}/etc/zabbix/zabbix_agentd.conf.sample
+    xinstall -m 755 ${worksrcpath}/conf/zabbix_server.conf \
+        ${destroot}${prefix}/etc/zabbix/zabbix_server.conf.sample
+    delete ${destroot}${prefix}/etc/zabbix/zabbix_server.conf
+    delete ${destroot}${prefix}/etc/zabbix/zabbix_agentd.conf
+    delete ${destroot}${prefix}/etc/zabbix/zabbix_agent.conf
+
+# Copy database data and schemas
+    xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/data
+    xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/schema
+
+    eval xinstall -m 755 ${worksrcpath}/database/mysql/data.sql \
+        ${destroot}${prefix}/share/zabbix/data
+    eval xinstall -m 755 ${worksrcpath}/database/mysql/images.sql \
+        ${destroot}${prefix}/share/zabbix/data
+    eval xinstall -m 755 ${worksrcpath}/database/mysql/schema.sql \
+        ${destroot}${prefix}/share/zabbix/schema
+
+    file copy ${worksrcpath}/upgrades \
+        ${destroot}${prefix}/share/zabbix/
+
+# Copy the front end files
+
+    file mkdir ${destroot}${prefix}/share/zabbix/frontends/
+    file copy ${worksrcpath}/frontends/php/ \
+        ${destroot}${prefix}/share/zabbix/frontends/
+
+# Create a startup script for the server
+    xinstall -m 755 ${portpath}/${filesdir}/zabbix_server.init \
+        ${destroot}${prefix}/share/zabbix
+    reinplace "s|__PREFIX__|${prefix}|g" \
+        ${destroot}${prefix}/share/zabbix/zabbix_server.init
+
+# Create a startup script for the agent
+    xinstall -m 755 ${portpath}/${filesdir}/zabbix_agentd.init \
+        ${destroot}${prefix}/share/zabbix
+    reinplace "s|__PREFIX__|${prefix}|g" \
+        ${destroot}${prefix}/share/zabbix/zabbix_agentd.init
+
+# Set permissions for etc (protect passwords) and the frontend
+    system "chmod 660 ${destroot}${prefix}/etc/zabbix/*"
+    system "chown zabbix:zabbix ${destroot}${prefix}/etc/zabbix/*"
+    system "chown -R www:www ${destroot}${prefix}/share/zabbix/frontends/*"
+
+# End else clause - Done with server stuff
+}
+
+# Copy Win32 agent for normal and agent_only installs
+    xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/zabbix_agent_win32
+    xinstall -m 755 ${worksrcpath}/bin/win32/zabbix_agentd.exe \
+        ${destroot}${prefix}/share/zabbix/zabbix_agent_win32
+}
+
+if {[variant_isset agent_only]} {
+    notes "
+####                                        ####
+#### ZABBIX2 agent installation section     ####
+
+1) Edit the sample .conf file ${prefix}/etc/zabbix/zabbix_agentd.conf
+   (rename & omit .sample)
+
+   Set the following variable to the ip address of your ZABBIX server to\
+   allow it access to the agent.
+
+    Server=x.x.x.x
+
+
+2) Set zabbix_agentd to run at system boot
+
+     sudo port load zabbix2
+
+   To start Zabbix manually, use: 
+     ${prefix}/share/zabbix/zabbix_agentd.init start (stop|status)
+
+
+3) A Win32 agent is in ${prefix}/share/zabbix/zabbix_agent_win32 for\
+   installation on Windows NT 4.0, Windows 2000, and Windows XP.
+
+#### End ZABBIX2 agent installation section ####
+####                                        ####
+"
+} else {
+    notes "
+####                                           ####
+#### Begin ZABBIX2 server installation section ####
+
+1) Setup MySQL, i.e. via MacPorts:
+
+    sudo port install mysql5-server
+
+
+2) Setup the ZABBIX MySQL database
+
+-Create the ZABBIX database
+    mysql5 -u root -p (enter password at prompt)
+    mysql> create database zabbix character set utf8;
+    mysql> quit;
+
+-Import the ZABBIX Schema
+    cd ${prefix}/share/zabbix/schema
+    cat mysql.sql | mysql5 -u root -p zabbix
+    cd ${prefix}/share/zabbix/data
+    cat images.sql | mysql5 -u root -p zabbix
+    cat data.sql | mysql5 -u root -p zabbix
+
+-Create a MySQL 'zabbix' user and password
+    mysql5 -u root -p
+    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<zabbix-mysql-password>';
+    mysql> grant all privileges on zabbix.* to zabbix identified by '<zabbix-mysql-password>';
+    mysql> quit;
+
+
+3) Edit the sample .conf file ${prefix}/etc/zabbix/zabbix_server.conf
+   (rename & omit .sample)
+
+   Modify these variables at the very least:
+
+    DBName=zabbix
+    DBUser=zabbix
+    DBPassword=<zabbix-mysql-password>
+
+
+4) Install PHP 5, i.e. via MacPorts:
+
+    sudo port install php5 php5-gd php5-mbstring php5-mysql php5-sockets
+
+
+5) Set a symbolic link in your Apache document root pointing to the PHP
+   frontend files
+
+    sudo ln -s ${prefix}/share/zabbix/frontends/php <Apache-docroot>/zabbix
+
+
+6) Set zabbix_server to run at system boot, then start it
+
+    sudo port load zabbix2
+
+   To start Zabbix manually, use: 
+    ${prefix}/share/zabbix/zabbix_server.init start (stop|status)
+
+    Note: Your shared memory will likely need to be increased
+          (see http://support.apple.com/kb/HT4022)
+
+7) A Win32 agent is in ${prefix}/share/zabbix/zabbix_agent_win32 for\
+   installation on Windows NT 4.0, Windows 2000, and Windows XP.  See\
+   the ReadMe.txt for instructions.
+
+
+8) Open http://localhost/zabbix/ in your browser and walk through the setup,
+   then login with default user 'Admin' and password 'zabbix'.
+
+
+9) Read the fine manual at http://www.zabbix.com/documentation/
+
+
+#### End ZABBIX2 server installation section   ####
+####                                           ####
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! ZABBIX -> ZABBIX2 Server Upgrade process !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!  0) BACK UP YOUR DATABASE                                                !!
+!!                                                                          !!
+!!  1) Be sure to use 'sudo port unload zabbix' to stop the background      !!
+!!     server before deactivating zabbix, and then use                      !!
+!!     'sudo port load zabbix2' **AFTER UPGRADING THE DATABASE** as         !!
+!!     described below.                                                     !!
+!!                                                                          !!
+!!  2) For upgrading from 1.8 (zabbix -> zabbix2), upgrade scripts are      !!
+!!     located in ${prefix}/share/zabbix/upgrades                          !!
+!!                                                                          !!
+!!  For upgrade procedure, please see                                       !!
+!!    http://www.zabbix.com/documentation/2.0/manual/installation/upgrade   !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+"
+}
