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#