diff options
author | 2006-09-19 15:41:10 +0000 | |
---|---|---|
committer | 2006-09-19 15:41:10 +0000 | |
commit | 1404d3047c73f58d2471a43a22db1918766b6a01 (patch) | |
tree | 343a45790c4abd9ee9a0a13a6ace62082fe44edb | |
parent | added channel-logo support (diff) | |
download | gentoo-2-1404d3047c73f58d2471a43a22db1918766b6a01.tar.gz gentoo-2-1404d3047c73f58d2471a43a22db1918766b6a01.tar.bz2 gentoo-2-1404d3047c73f58d2471a43a22db1918766b6a01.zip |
Change to fix bug #141004. Thanks to Wolf Giesen
(Portage version: 2.1.2_pre1)
-rw-r--r-- | app-admin/phpsyslogng/ChangeLog | 8 | ||||
-rw-r--r-- | app-admin/phpsyslogng/files/digest-phpsyslogng-2.8 | 2 | ||||
-rw-r--r-- | app-admin/phpsyslogng/files/digest-phpsyslogng-2.8-r1 | 3 | ||||
-rw-r--r-- | app-admin/phpsyslogng/files/logrotate.php | 140 | ||||
-rw-r--r-- | app-admin/phpsyslogng/phpsyslogng-2.8-r1.ebuild | 34 |
5 files changed, 186 insertions, 1 deletions
diff --git a/app-admin/phpsyslogng/ChangeLog b/app-admin/phpsyslogng/ChangeLog index bfdda083f944..d50b98a86650 100644 --- a/app-admin/phpsyslogng/ChangeLog +++ b/app-admin/phpsyslogng/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-admin/phpsyslogng # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/phpsyslogng/ChangeLog,v 1.2 2006/01/21 19:52:05 strerror Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/phpsyslogng/ChangeLog,v 1.3 2006/09/19 15:41:10 strerror Exp $ + +*phpsyslogng-2.8-r1 (19 Sep 2006) + + 19 Sep 2006; Benjamin Smee <strerror@gentoo.org> +files/logrotate.php, + +phpsyslogng-2.8-r1.ebuild: + Change to fix bug #141004. Thanks to Wolf Giesen 21 Jan 2006; Benjamin Smee <strerror@gentoo.org> files/postinstall-en.txt, phpsyslogng-2.8.ebuild: diff --git a/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8 b/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8 index 334fe1e2f3d4..bbe6a62e4859 100644 --- a/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8 +++ b/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8 @@ -1 +1,3 @@ MD5 752ec0c597f81bb8756d27b111b420f4 phpsyslogng-2.8.tar.gz 35686 +RMD160 38daab0986b42cd964a5e5f420c22408de38d1d1 phpsyslogng-2.8.tar.gz 35686 +SHA256 da1b15ac04e66f4e81aef7c7332a33004ee910fe8bd1df7756eb3f4d12b195ad phpsyslogng-2.8.tar.gz 35686 diff --git a/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8-r1 b/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8-r1 new file mode 100644 index 000000000000..bbe6a62e4859 --- /dev/null +++ b/app-admin/phpsyslogng/files/digest-phpsyslogng-2.8-r1 @@ -0,0 +1,3 @@ +MD5 752ec0c597f81bb8756d27b111b420f4 phpsyslogng-2.8.tar.gz 35686 +RMD160 38daab0986b42cd964a5e5f420c22408de38d1d1 phpsyslogng-2.8.tar.gz 35686 +SHA256 da1b15ac04e66f4e81aef7c7332a33004ee910fe8bd1df7756eb3f4d12b195ad phpsyslogng-2.8.tar.gz 35686 diff --git a/app-admin/phpsyslogng/files/logrotate.php b/app-admin/phpsyslogng/files/logrotate.php new file mode 100644 index 000000000000..d3e1d42577e3 --- /dev/null +++ b/app-admin/phpsyslogng/files/logrotate.php @@ -0,0 +1,140 @@ +#!/usr/bin/php +<?php +// Copyright (C) 2005 Claus Lund, clauslund@gmail.com + +echo "\nStarting logrotate\n"; +echo date("Y-m-d H:i:s\n"); + +$APP_ROOT = '/data/www/localhost/htdocs/phpsyslogng'; + +include_once "$APP_ROOT/includes/common_funcs.php"; +include_once "$APP_ROOT/config/config.php"; + +$dbLink = db_connect_syslog(DBADMIN, DBADMINPW); + +echo "Dropping temp".DEFAULTLOGTABLE." if it exists ... "; +// Drop temp table if it exists +$query = "DROP TABLE IF EXISTS temp".DEFAULTLOGTABLE; +perform_query($query, $dbLink); +echo "ok.\n"; + +echo "Creating ".DEFAULTLOGTABLE." ... "; +// Create new table +$query = "SHOW CREATE TABLE ".DEFAULTLOGTABLE; +$result = perform_query($query, $dbLink); +echo "ok.\n"; + +$row = mysql_fetch_array($result); +$createQuery = $row[1]; +$search = "CREATE TABLE `".DEFAULTLOGTABLE."`"; +$replace = "CREATE TABLE `temp".DEFAULTLOGTABLE."`"; +$createQuery = str_replace($search, $replace, $createQuery); +perform_query($createQuery, $dbLink); + +$today = date("Ymd"); + +// Drop the merge table +if(defined('MERGELOGTABLE') && MERGELOGTABLE) + { + $query = "FLUSH TABLES"; + perform_query($query, $dbLink); + + echo "Dropping ".MERGELOGTABLE." if it exists ... "; + $query = "DROP TABLE IF EXISTS ".MERGELOGTABLE; + perform_query($query, $dbLink); + echo "ok.\n"; + } + +// Rename the two tables +echo "Renaming ".DEFAULTLOGTABLE." to ".DEFAULTLOGTABLE.$today." and temp".DEFAULTLOGTABLE." to ".DEFAULTLOGTABLE." ... "; +$query = "RENAME TABLE ".DBNAME.".".DEFAULTLOGTABLE." TO ".DBNAME.".".DEFAULTLOGTABLE.$today.", ".DBNAME.".temp".DEFAULTLOGTABLE." TO ".DBNAME.".".DEFAULTLOGTABLE; +perform_query($query, $dbLink); +echo "ok.\n"; + +echo "\nLog rotate ended successfully.\n"; +echo "Now optimizing old logs.\n"; +$query = "OPTIMIZE TABLE ".DBNAME.".".DEFAULTLOGTABLE.$today; +perform_query($query, $dbLink); + +// Re-create the merge table +if(defined('MERGELOGTABLE') || defined('LOGROTATERETENTION')) + { + echo "Getting list of log tables.\n"; + $logTableArray = get_logtables($dbLink); + } + +if(defined('LOGROTATERETENTION') && LOGROTATERETENTION) + { + echo "Retention is in use, searching for tables to drop:"; + foreach($logTableArray as $value) + { + if(preg_match("/[0-9]+$/", $value)) + { + // determine is datestamp is old enough + $tableDate = strrev(substr(strrev($value), 0, 8)); + $cutoffDate = date("Ymd", mktime(0, 0, 0, date("m"), date("d")-LOGROTATERETENTION, date("Y"))); + +// printf(" [cutoffDate: %s tableDate %s] ", $cutoffDate, (intval($cutoffDate) > intval($tableDate)) ? ">":"<=", $tableDate); + + if(intval($cutoffDate) > intval($tableDate)) + { + $query = "DROP TABLE ".$value; + perform_query($query, $dbLink); + } + } + } + } + +if(defined('MERGELOGTABLE') && MERGELOGTABLE) + { + echo "Creating merge table:\n"; + $query = "SHOW CREATE TABLE ".DEFAULTLOGTABLE; + + $result = perform_query($query, $dbLink); + $row = mysql_fetch_array($result); + $createQuery = $row[1]; + + $oldStr = "CREATE TABLE `".DEFAULTLOGTABLE."`"; + $newStr = "CREATE TABLE `".MERGELOGTABLE."`"; + $createQuery = str_replace($oldStr, $newStr, $createQuery); + + $oldStr = "ENGINE=MyISAM"; + $newStr = "ENGINE=MRG_MyISAM"; + $createQuery = str_replace($oldStr, $newStr, $createQuery); + $oldStr = "TYPE=MyISAM"; + $newStr = "ENGINE=MRG_MyISAM"; + $createQuery = str_replace($oldStr, $newStr, $createQuery); + + $createQuery = str_replace('PRIMARY KEY', 'INDEX', $createQuery); + + // Re-create the merge table data (after some stuff has been dropped above by cutoffDate + if(defined('MERGELOGTABLE') || defined('LOGROTATERETENTION')) + { + echo "Getting list of log tables.\n"; + $logTableArray = get_logtables($dbLink); + } + + $unionStr = " UNION=("; + foreach($logTableArray as $value) + { + $unionStr = $unionStr.$value.", "; + } + $unionStr = rtrim($unionStr, ", "); + $unionStr = $unionStr.")"; + + $createQuery = $createQuery.$unionStr; + + $flushQuery = "FLUSH TABLES"; + perform_query($flushQuery, $dbLink); + + perform_query($createQuery, $dbLink); + + $flushQuery = "FLUSH TABLES"; + perform_query($flushQuery, $dbLink); + + echo "ok,\n"; + } + +echo "\n".date("Y-m-d H:i:s")."\n"; +echo "All done!\n"; +?> diff --git a/app-admin/phpsyslogng/phpsyslogng-2.8-r1.ebuild b/app-admin/phpsyslogng/phpsyslogng-2.8-r1.ebuild new file mode 100644 index 000000000000..45a652232b62 --- /dev/null +++ b/app-admin/phpsyslogng/phpsyslogng-2.8-r1.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/phpsyslogng/phpsyslogng-2.8-r1.ebuild,v 1.1 2006/09/19 15:41:10 strerror Exp $ + +inherit webapp + +DESCRIPTION="php-syslog-ng is a log monitor designed to easily manage logs from many hosts." +HOMEPAGE="http://www.phpwizardry.com/php-syslog-ng.php" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" +SRC_URI="http://www.phpwizardry.com/php-syslog-ng/${P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~x86" +IUSE="mysql" + +RDEPEND="virtual/httpd-php + mysql? ( >=dev-db/mysql-4.1 )" + +src_install() { + webapp_src_preinst + + dodoc README CHANGELOG + rm LICENSE README CHANGELOG + dodoc scripts/* + + cp -r . ${D}${MY_HTDOCSDIR} + cp ${FILESDIR}/logrotate.php ${D}${MY_HTDOCSDIR}/scripts + + webapp_configfile ${MY_HTDOCSDIR}/config/config.php + + webapp_postinst_txt en ${FILESDIR}/postinstall-en.txt + + webapp_src_install +} |