Package: zabbix
Version: 1:1.4.4-4
Severity: normal
Tags: patch

Hello,

I'm attaching a patch to add sqlite3 support to the Debian packages.
As I'm not experienced at all with dbconfig-common, I'm not sure how to
workaround $dbc_dbname expecting a filename with full path for
/etc/zabbix/zabbix_server.conf and a filename without its path for the
DB initialisation.

For now, I'm fixing the resulting /etc by hand, but I hope you'll know
more on how to handle this. Also, the permissions on the sqlite3 db need
to be fixed after creation, else the server or the php frontend aren't
able to access it.

Please comment, and I'm open to suggestions and to provide better
versions of the patch with some guidance on the above issues.

Thanks,
Jordi

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-3-k7 (SMP w/1 CPU core)
Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
diff -u zabbix-1.4.4/debian/zabbix-frontend-php.postrm 
zabbix-1.4.4/debian/zabbix-frontend-php.postrm
--- zabbix-1.4.4/debian/zabbix-frontend-php.postrm
+++ zabbix-1.4.4/debian/zabbix-frontend-php.postrm
@@ -5,7 +5,7 @@
 fi
 
 if [ -f /usr/share/dbconfig-common/dpkg/frontend.postrm ]; then
-    dbc_dbtypes="mysql, pgsql"
+    dbc_dbtypes="mysql, pgsql, sqlite3"
     . /usr/share/dbconfig-common/dpkg/frontend.postrm
     dbc_go zabbix-frontend-php $@
 fi
diff -u zabbix-1.4.4/debian/changelog zabbix-1.4.4/debian/changelog
--- zabbix-1.4.4/debian/changelog
+++ zabbix-1.4.4/debian/changelog
@@ -1,3 +1,11 @@
+zabbix (1:1.4.4-2~bpo1) unstable; urgency=low
+
+  * Recompile for etch.
+  * Add a zabbix-server-sqlite3 package.
+  * Add libcurl-dev as an alternative to libcurl4-gnutls-dev.
+
+ -- Jordi Mallach <[EMAIL PROTECTED]>  Mon, 04 Feb 2008 19:46:02 +0100
+
 zabbix (1:1.4.4-2) unstable; urgency=high
 
   * install images_mysql.sql and images_pgsql.sql
diff -u zabbix-1.4.4/debian/rules zabbix-1.4.4/debian/rules
--- zabbix-1.4.4/debian/rules
+++ zabbix-1.4.4/debian/rules
@@ -12,10 +12,12 @@
 PKG_CLIENT = zabbix-agent
 PKG_SERVER_MYSQL = zabbix-server-mysql
 PKG_SERVER_PGSQL = zabbix-server-pgsql
+PKG_SERVER_SQLITE3 = zabbix-server-sqlite3
 PKG_FRONTEND = zabbix-frontend-php
 TMP_CLIENT = $(CURDIR)/debian/$(PKG_CLIENT)
 TMP_SERVER_MYSQL = $(CURDIR)/debian/$(PKG_SERVER_MYSQL)
 TMP_SERVER_PGSQL = $(CURDIR)/debian/$(PKG_SERVER_PGSQL)
+TMP_SERVER_SQLITE3 = $(CURDIR)/debian/$(PKG_SERVER_SQLITE3)
 TMP_FRONTEND = $(CURDIR)/debian/$(PKG_FRONTEND)
 
 INSTALL = install
@@ -106,6 +108,18 @@
        LIBCURL_LDFLAGS="-lcurl" ./configure $(CONFFLAGS_SERVER) --with-pgsql
        touch config-pgsql-stamp
 
+build-sqlite3: config-sqlite3
+       dh_testdir
+       $(MAKE)
+
+config-sqlite3: prepare config-sqlite3-stamp
+config-sqlite3-stamp:
+       @echo "Configuring sqlite3"
+       dh_testdir
+       rm -f config-*-stamp
+       LIBCURL_LDFLAGS="-lcurl" ./configure $(CONFFLAGS_SERVER) --with-sqlite3
+       touch config-sqlite3-stamp
+
 clean: unpatch
        dh_testdir
        dh_testroot
@@ -129,7 +143,7 @@
        dh_clean
 
 
-install: install-indep install-agent install-mysql install-pgsql
+install: install-indep install-agent install-mysql install-pgsql 
install-sqlite3
 
 install-indep:
        dh_testdir
@@ -261,6 +275,43 @@
        touch install-pgsql-stamp
 
 
+install-sqlite3: install-sqlite3-stamp
+install-sqlite3-stamp: build-sqlite3
+       echo ""
+       echo $(PKG_SERVER_SQLITE3)
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/usr/bin
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/usr/sbin
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/etc/zabbix/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/etc/zabbix/alert.d/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/etc/logrotate.d/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/etc/init.d/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/usr/share/zabbix-server/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/var/log/zabbix-server/
+       $(INSTALL_DIR) 
$(TMP_SERVER_SQLITE3)/usr/share/dbconfig-common/data/$(PKG_SERVER_SQLITE3)/install/
+       $(INSTALL_DIR) 
$(TMP_SERVER_SQLITE3)/usr/share/doc/zabbix-server-sqlite3/
+       chmod 750 $(TMP_SERVER_SQLITE3)/var/log/zabbix-server/
+       $(INSTALL_DIR) $(TMP_SERVER_SQLITE3)/var/run/zabbix-server/
+       chmod 750 $(TMP_SERVER_SQLITE3)/var/run/zabbix-server/
+
+       $(INSTALL_PROGRAM) src/zabbix_server/zabbix_server 
$(TMP_SERVER_SQLITE3)/usr/sbin
+       $(INSTALL_PROGRAM) src/zabbix_get/zabbix_get 
$(TMP_SERVER_SQLITE3)/usr/bin
+
+       $(INSTALL_FILE) create/schema/sqlite.sql 
$(TMP_SERVER_SQLITE3)/usr/share/zabbix-server/
+       $(INSTALL_FILE) create/data/data.sql 
$(TMP_SERVER_SQLITE3)/usr/share/zabbix-server/
+       $(INSTALL_FILE) debian/zabbix-server-mysql.logrotate 
$(TMP_SERVER_SQLITE3)/etc/logrotate.d/zabbix-server-sqlite3
+       $(INSTALL_FILE) debian/templates/zabbix_server.conf.in 
$(TMP_SERVER_SQLITE3)/usr/share/doc/zabbix-server-sqlite3/zabbix_server.conf
+
+       #install schema + data sql files for dbc_config
+       $(INSTALL_FILE) create/schema/sqlite.sql 
$(TMP_SERVER_SQLITE3)/usr/share/dbconfig-common/data/$(PKG_SERVER_SQLITE3)/install/sqlite3
+       cat create/data/data.sql >> 
$(TMP_SERVER_SQLITE3)/usr/share/dbconfig-common/data/$(PKG_SERVER_SQLITE3)/install/sqlite3
+       cat create/data/images_sqlite3.sql >> 
$(TMP_SERVER_SQLITE3)/usr/share/dbconfig-common/data/$(PKG_SERVER_SQLITE3)/install/sqlite3
+
+       dh_installinit -p $(PKG_SERVER_SQLITE3) --name zabbix-server
+       dh_install -a
+       touch install-sqlite3-stamp
+
+
 # Build architecture-independent files here.
 binary-indep: install-indep
        dh_testdir
@@ -282,7 +333,7 @@
        dh_builddeb -i
 
 # Build architecture-dependent files here.
-binary-arch: binary-arch-agent binary-arch-mysql binary-arch-pgsql
+binary-arch: binary-arch-agent binary-arch-mysql binary-arch-pgsql 
binary-arch-sqlite3
        dh_testdir
        dh_testroot
        dh_installchangelogs ChangeLog -a
@@ -308,5 +359,7 @@
+binary-arch-sqlite3: build-sqlite3 install-sqlite3
+
 binary-arch-agent: build-agent install-agent
 
 binary: binary-arch binary-indep
 
-.PHONY: build build-mysql build-pgsql config-mysql config-pgsql clean install 
install-indep install-mysql install-pgsql install-agent build-agent 
binary-indep binary-arch binary-arch-mysql binary-arch-pgsql binary-arch-agent 
binary
+.PHONY: build build-mysql build-pgsql build-sqlite3 config-mysql config-pgsql 
config-sqlite3 clean install install-indep install-mysql install-pgsql install 
sqlite3 install-agent build-agent binary-indep binary-arch binary-arch-mysql 
binary-arch-pgsql binary-arch-sqlite3 binary-arch-agent binary
diff -u zabbix-1.4.4/debian/zabbix-server-pgsql.postrm 
zabbix-1.4.4/debian/zabbix-server-pgsql.postrm
--- zabbix-1.4.4/debian/zabbix-server-pgsql.postrm
+++ zabbix-1.4.4/debian/zabbix-server-pgsql.postrm
@@ -7,7 +7,7 @@
        . /usr/share/debconf/confmodule
 fi
 if [ -f /usr/share/dbconfig-common/dpkg/postrm.pgsql  ]; then
-       . /usr/share/dbconfig-common/dpkg/postrm.pgsql 
+       . /usr/share/dbconfig-common/dpkg/postrm.pgsql
        
        dbc_dbuser=zabbix
        dbc_dbname=zabbix
diff -u zabbix-1.4.4/debian/zabbix-frontend-php.config 
zabbix-1.4.4/debian/zabbix-frontend-php.config
--- zabbix-1.4.4/debian/zabbix-frontend-php.config
+++ zabbix-1.4.4/debian/zabbix-frontend-php.config
@@ -7,7 +7,7 @@
     dbc_first_version="1:1.4.2-3"
     dbc_load_include="php:/etc/zabbix/dbconfig.php"
     dbc_load_include_args="-tDB_TYPE -sDB_SERVER -dDB_DATABASE -uDB_USER 
-pDB_PASSWORD"
-    dbc_dbtypes="mysql, pgsql"
+    dbc_dbtypes="mysql, pgsql, sqlite3"
     dbc_dbuser=zabbix
     dbc_dbname=zabbix
     . /usr/share/dbconfig-common/dpkg/frontend.config
diff -u zabbix-1.4.4/debian/control zabbix-1.4.4/debian/control
--- zabbix-1.4.4/debian/control
+++ zabbix-1.4.4/debian/control
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Zabbix Maintainers <[EMAIL PROTECTED]>
 Uploaders: Fabio Tranchitella <[EMAIL PROTECTED]>, Michael Ablassmeier <[EMAIL 
PROTECTED]>
-Build-Depends: debhelper (>= 5.0.0), libsnmp9-dev | libsnmp-dev, 
libmysqlclient15-dev, dpatch, automake1.9, po-debconf, libpq-dev, 
libcurl4-gnutls-dev, libldap2-dev,libiksemel-dev 
+Build-Depends: debhelper (>= 5.0.0), libsnmp9-dev | libsnmp-dev, 
libmysqlclient15-dev, dpatch, automake1.9, po-debconf, libpq-dev, 
libcurl4-gnutls-dev | libcurl-dev, libldap2-dev, libiksemel-dev, libsqlite3-dev
 Standards-Version: 3.7.3
  
 Package: zabbix-agent
@@ -35,7 +35,7 @@
 Depends: ${shlibs:Depends}, ${misc:Depends}, fping, adduser, dbconfig-common 
(>= 1.8.19), logrotate
 Recommends: mysql-server (>= 4.0.16-2), snmpd
 Suggests: zabbix-frontend-php
-Conflicts: zabbix-server-pgsql
+Conflicts: zabbix-server-pgsql, zabbix-server-sqlite3
 Description: software for monitoring of your networks -- server
  Zabbix is an all-in-one 24x7, free monitoring solution for both
  commercial and non-commercial use. 
@@ -63,7 +63,7 @@
 Depends: ${shlibs:Depends}, ${misc:Depends}, fping, adduser, dbconfig-common 
(>= 1.8.19), logrotate
 Recommends: postgresql-8.1, snmpd
 Suggests: zabbix-frontend-php
-Conflicts: zabbix-server-mysql
+Conflicts: zabbix-server-mysql, zabbix-server-sqlite3
 Description: software for monitoring of your networks -- server
  Zabbix is an all-in-one 24x7, free monitoring solution for both
  commercial and non-commercial use. 
@@ -86,10 +86,38 @@
  Client Systems and stores them in an DBMS. This Package is compiled
  with PostgreSQL support.
 
+Package: zabbix-server-sqlite3
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, fping, adduser, dbconfig-common 
(>= 1.8.34), logrotate, sqlite3
+Recommends: snmpd
+Suggests: zabbix-frontend-php
+Conflicts: zabbix-server-mysql, zabbix-server-pgsql
+Description: software for monitoring of your networks -- server
+ Zabbix is an all-in-one 24x7, free monitoring solution for both
+ commercial and non-commercial use. 
+ .
+ Zabbix can be installed on any UNIX platform. It acts as server 
+ that monitors client systems running on different platforms as 
+ well as other Network devices. The Software can be used for:
+ .
+  o high level monitoring of IT Services
+  o centralised monitoring of your servers and applications
+  o monitoring of SNMP-enabled devices
+  o performance monitoring (process load, network activity, disk
+    activity, memory usage, OS parameters etc.)
+  o data visualization
+ .
+ and much more.
+ .
+ This Package provides all binaries which are needed to run an
+ Zabbix Server. The Server collects all Informations of your Zabbix 
+ Client Systems and stores them in an DBMS. This Package is compiled
+ with SQLite3 support.
+
 Package: zabbix-frontend-php
 Architecture: all
-Depends: apache2 | httpd, php5 | php5-mysql | php5-pgsql, php5-gd, ucf, 
dbconfig-common (>= 1.8.19), ${misc:Depends} 
-Recommends: zabbix-server-mysql | zabbix-server-pgsql, mysql-server (>= 
4.0.16-2) | postgresql-8.1
+Depends: apache2 | httpd, php5 | php5-mysql | php5-pgsql | php5-sqlite3, 
php5-gd, ucf, dbconfig-common (>= 1.8.34), ${misc:Depends} 
+Recommends: zabbix-server-mysql | zabbix-server-pgsql | zabbix-server-sqlite3, 
mysql-server (>= 4.0.16-2) | postgresql-8.1 | sqlite3
 Description: software for monitoring of your servers -- php frontend
  Zabbix is an all-in-one 24x7, free monitoring solution for both
  commercial and non-commercial use. 
only in patch2:
unchanged:
--- zabbix-1.4.4.orig/debian/zabbix-server-sqlite3.zabbix-server.init
+++ zabbix-1.4.4/debian/zabbix-server-sqlite3.zabbix-server.init
@@ -0,0 +1,45 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          zabbix-server
+# Required-Start:    $local_fs $network
+# Required-Stop:     $local_fs
+# Default-Start:     S
+# Default-Stop:             0 6
+# Short-Description: Start zabbix-server daemon
+### END INIT INFO
+DAEMON=/usr/sbin/zabbix_server
+NAME=zabbix_server
+DESC="Zabbix server"
+PID=/var/run/zabbix-server/$NAME.pid
+
+test -f $DAEMON || exit 0
+
+set -e
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+
+case "$1" in
+  start)
+    rm -f $PID
+       echo "Starting $DESC: $NAME"
+       start-stop-daemon --oknodo --start --pidfile $PID \
+               --exec $DAEMON < /dev/null &> /dev/null
+       ;;
+  stop)
+       echo "Stopping $DESC: $NAME"
+       start-stop-daemon --oknodo --stop --pidfile $PID \
+               --exec $DAEMON
+       ;;
+  restart|force-reload)
+       $0 stop
+       sleep 2
+       $0 start
+       ;;
+  *)
+       N=/etc/init.d/$NAME
+       echo "Usage: $N {start|stop|restart|force-reload}" >&2
+       exit 1
+       ;;
+esac
+
+exit 0
only in patch2:
unchanged:
--- zabbix-1.4.4.orig/debian/zabbix-server-sqlite3.postinst
+++ zabbix-1.4.4/debian/zabbix-server-sqlite3.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+. /usr/share/debconf/confmodule
+db_version 2.0 || [ $? -lt 30 ]
+
+
+# dbconfig-common stuff
+. /usr/share/dbconfig-common/dpkg/postinst.sqlite3
+dbc_dbuser=zabbix
+dbc_dbname=zabbix.db
+dbc_dbpath=/var/lib/dbconfig-common/sqlite3/zabbix-server-sqlite3
+dbc_generate_include=template:/etc/zabbix/zabbix_server.conf
+dbc_generate_include_owner="zabbix"
+dbc_generate_include_perms="640"
+dbc_generate_include_args="-U -o 
template_infile=/usr/share/doc/zabbix-server-sqlite3/zabbix_server.conf"
+dbc_go zabbix-server-sqlite3 $@
+
+if [ "$1" = "configure" ]; then
+    if ! getent group zabbix > /dev/null 2>&1 ; then
+    addgroup --system --quiet zabbix
+    fi
+
+    if ! getent passwd zabbix > /dev/null 2>&1 ; then
+    adduser --quiet \
+        --system --disabled-login --ingroup zabbix \
+        --home /var/run/zabbix-server/ --no-create-home \
+        zabbix
+    fi
+    chown zabbix:zabbix /var/log/zabbix-server -R
+    chown zabbix:zabbix /var/run/zabbix-server -R
+
+    # Give the database the correct permissions
+    touch $dbc_dbpath/$dbc_dbname
+    chown zabbix:www-data $dbc_dbpath
+    chmod 770 $dbc_dbpath
+    chown zabbix:www-data $dbc_dbpath/$dbc_dbname
+    chmod 660 $dbc_dbpath/$dbc_dbname
+
+    # Fix configuration, as we need the whole DB path
+    sed -i 
-e's!DBName=zabbix.db!DBName=/var/lib/dbconfig-common/sqlite3/zabbix-server-sqlite3/zabbix.db!'
 \
+      /etc/zabbix/zabbix_server.conf
+fi
+
+db_stop
+
+#DEBHELPER#
+
+exit 0
only in patch2:
unchanged:
--- zabbix-1.4.4.orig/debian/zabbix-server-sqlite3.config
+++ zabbix-1.4.4/debian/zabbix-server-sqlite3.config
@@ -0,0 +1,10 @@
+#!/bin/sh
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/config.sqlite3
+dbc_dbuser=zabbix
+dbc_dbname=zabbix.db
+dbc_go zabbix-server-sqlite3 $@
+
+#DEBHELPER#
+
+exit 0
only in patch2:
unchanged:
--- zabbix-1.4.4.orig/debian/zabbix-server-sqlite3.prerm
+++ zabbix-1.4.4/debian/zabbix-server-sqlite3.prerm
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm.sqlite3
+
+#DEBHELPER#
+
+dbc_go zabbix-server-sqlite3 $@
+
+exit 0
only in patch2:
unchanged:
--- zabbix-1.4.4.orig/debian/zabbix-server-sqlite3.postrm
+++ zabbix-1.4.4/debian/zabbix-server-sqlite3.postrm
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+if [ -f /usr/share/debconf/confmodule ]; then
+       . /usr/share/debconf/confmodule
+fi
+if [ -f /usr/share/dbconfig-common/dpkg/postrm.sqlite3  ]; then
+       . /usr/share/dbconfig-common/dpkg/postrm.sqlite3 
+       
+       dbc_dbuser=zabbix
+       dbc_dbname=zabbix.db
+       dbc_go zabbix-server-sqlite3 $@
+fi
+
+case "$1" in
+    failed-upgrade|abort-install|abort-upgrade|disappear|upgrade)
+    ;;
+    remove)
+    ;;
+    purge)
+        rm -fr /var/log/zabbix-server
+        rm -fr /var/run/zabbix-server
+        rm -f /etc/zabbix/zabbix_server.conf
+        ucf --purge /etc/zabbix/zabbix_server.conf || true
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+esac
+
+
+#DEBHELPER#

Reply via email to