Your message dated Wed, 19 May 2010 12:17:10 +0000
with message-id <[email protected]>
and subject line Bug#580704: fixed in awstats 6.9.5~dfsg-3
has caused the Debian Bug report #580704,
regarding awstats: Cosmetic improvements to cron scripts (update.sh and 
buildstatic.sh)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
580704: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580704
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: awstats
Version: 6.9.5~dfsg-2
Severity: wishlist
Tags: patch


These are some miscellaneous changes I made to the cron scripts.
Please feel free to take or leave any of these changes.

I used a different method to initialize the values read from
/etc/default/awstats (again with inspiration from /etc/init.d/rsync and
other init files).  Specifically, instead of:
   [ -r "$DEFAULT" ] && . "$DEFAULT"
   -NICE=${AWSTATS_NICE:-10}
I did this:
   AWSTATS_NICE=10
   [ -r "$DEFAULT" ] && . "$DEFAULT"
This method reduces the need for another environment variable ("NICE")
because it can use the existing environment variable ("AWSTATS_NICE")
defined in /etc/default/awstats (similarly for "AWSTATS_LANG" and
"AWSTATS_ENABLE_BUILDSTATICPAGES").

I moved AWSTATS_LANG, Y, and m (the date calls) out of the
buildstatic.sh loop since they should remain constant for all config files.

I used an alternate method to extract the config file name using posix
shell parameter expansions (without calling the external programs ls and
sed).

Note: the included patch was generated in comparison to the resulting
files from my previous patches.
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580672
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580692
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580693
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580699
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=580702

For the convenience of the maintainers of this package, I have
attached a patch file incorporating all the changes I submitted today
(using "git format-patch") and a couple additional bug fixes I
submitted earlier.  Please feel free to take any of the patches or
give me some feedback if you'd like something done differently.  I
hope this is helpful, and I really appreciate the work the awstats
Debian team has put into maintaining this package.

-- System Information:
Debian Release: 5.0.4
  APT prefers stable
  APT policy: (500, 'stable'), (50, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages awstats depends on:
ii  perl                     5.10.0-19lenny2 Larry Wall's Practical Extraction 

Versions of packages awstats recommends:
ii  libnet-xwhois-perl            0.90-3     Whois Client Interface for Perl5

Versions of packages awstats suggests:
pn  apache2 | httpd            <none>        (no description available)
pn  libgeo-ipfree-perl         <none>        (no description available)
pn  libnet-dns-perl            <none>        (no description available)
pn  libnet-ip-perl             <none>        (no description available)
ii  liburi-perl                1.35.dfsg.1-1 Manipulates and accesses URI strin

-- no debconf information
>From cf333f189d573132288370e4e9d0b5fdb66eb3ff Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Tue, 27 Apr 2010 15:28:21 -0700
Subject: Cosmetic improvements to cron scripts (update.sh and buildstatic.sh).

---
 debian/buildstatic.sh |   32 ++++++++++++++++++--------------
 debian/update.sh      |   14 ++++++++------
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index a0ec26a..0e41700 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##
-## buildstatic.sh, written by Sergey B Kirpichev <[email protected]> 
+## buildstatic.sh, written by Sergey B Kirpichev <[email protected]>
 ##
 ## Build all static html reports from AWStats data (Debian specific)
 ##
@@ -11,31 +11,35 @@ DEFAULT=/etc/default/awstats
 AWSTATS=/usr/lib/cgi-bin/awstats.pl
 BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl
 
+# Set defaults.
+AWSTATS_NICE=10
+AWSTATS_ENABLE_BUILDSTATICPAGES="no"
+AWSTATS_LANG="en"
+
 [ -f $AWSTATS -a -f $BUILDSTATICPAGES ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
 
-NICE=${AWSTATS_NICE:-10}
-ENABLE=${AWSTATS_ENABLE_BUILDSTATICPAGES:-no}
-if [ "$ENABLE" != "yes" ]; then
+if [ "$AWSTATS_ENABLE_BUILDSTATICPAGES" != "yes" ]; then
   exit 0
 fi
 
+Y=`date +%Y`
+m=`date +%m`
+
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
-          /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
-do
-  Y=`date +%Y`
-  m=`date +%m`
+for c in awstats.*.conf; do
+  c=${c#awstats.} # remove prefix
+  c=${c%.conf}    # remove suffix
   mkdir -p /var/cache/awstats/$c/$Y/$m/
-  AL=${AWSTATS_LANG:-en}
-  if ! nice -n $NICE $BUILDSTATICPAGES \
-    -config=$c \
+  if ! nice -n $AWSTATS_NICE $BUILDSTATICPAGES \
+       -config=$c \
        -year=$Y \
        -month=$m \
-       -lang=$AL \
-       -staticlinksext=${AL}.html \
+       -lang=$AWSTATS_LANG \
+       -staticlinksext=${AWSTATS_LANG}.html \
+       -awstatsprog=$AWSTATS \
        -dir=/var/cache/awstats/$c/$Y/$m/ >$TMPFILE 2>&1
   then
     # an error occurred
diff --git a/debian/update.sh b/debian/update.sh
index 904f59b..fff3ab6 100755
--- a/debian/update.sh
+++ b/debian/update.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##
-## update.sh, written by Sergey B Kirpchev <[email protected]>
+## update.sh, written by Sergey B Kirpichev <[email protected]>
 ##
 ## Update AWStats data for all configs, awstats.*.conf (Debian specific)
 ##
@@ -10,17 +10,19 @@ set -e
 DEFAULT=/etc/default/awstats
 AWSTATS=/usr/lib/cgi-bin/awstats.pl
 
+# Set defaults.
+AWSTATS_NICE=10
+
 [ -f $AWSTATS ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
-NICE=${AWSTATS_NICE:-10}
 
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
-          /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
-do
-  if ! nice -n $NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
+for c in awstats.*.conf; do
+  c=${c#awstats.} # remove prefix
+  c=${c%.conf}    # remove suffix
+  if ! nice -n $AWSTATS_NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
     # an error occurred
     cat $TMPFILE >&2
   fi
-- 
1.5.6.5

#!/bin/sh
##
## update.sh, written by Sergey B Kirpichev <[email protected]>
##
## Update AWStats data for all configs, awstats.*.conf (Debian specific)
##

set -e

DEFAULT=/etc/default/awstats
AWSTATS=/usr/lib/cgi-bin/awstats.pl

# Set defaults.
AWSTATS_NICE=10

[ -f $AWSTATS ] || exit 1
[ -r "$DEFAULT" ] && . "$DEFAULT"

cd /etc/awstats

TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
for c in awstats.*.conf; do
  c=${c#awstats.} # remove prefix
  c=${c%.conf}    # remove suffix
  if ! nice -n $AWSTATS_NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
    # an error occurred
    cat $TMPFILE >&2
  fi
done
rm -f $TMPFILE
#!/bin/sh
##
## buildstatic.sh, written by Sergey B Kirpichev <[email protected]>
##
## Build all static html reports from AWStats data (Debian specific)
##

set -e

DEFAULT=/etc/default/awstats
AWSTATS=/usr/lib/cgi-bin/awstats.pl
BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl

# Set defaults.
AWSTATS_NICE=10
AWSTATS_ENABLE_BUILDSTATICPAGES="no"
AWSTATS_LANG="en"

[ -f $AWSTATS -a -f $BUILDSTATICPAGES ] || exit 1
[ -r "$DEFAULT" ] && . "$DEFAULT"

if [ "$AWSTATS_ENABLE_BUILDSTATICPAGES" != "yes" ]; then
  exit 0
fi

Y=`date +%Y`
m=`date +%m`

cd /etc/awstats

TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
for c in awstats.*.conf; do
  c=${c#awstats.} # remove prefix
  c=${c%.conf}    # remove suffix
  mkdir -p /var/cache/awstats/$c/$Y/$m/
  if ! nice -n $AWSTATS_NICE $BUILDSTATICPAGES \
	-config=$c \
	-year=$Y \
	-month=$m \
	-lang=$AWSTATS_LANG \
	-staticlinksext=${AWSTATS_LANG}.html \
	-awstatsprog=$AWSTATS \
	-dir=/var/cache/awstats/$c/$Y/$m/ >$TMPFILE 2>&1
  then
    # an error occurred
    cat $TMPFILE >&2
  fi
done
rm -f $TMPFILE
>From 846a6c9606c180815f40e5b91fdb7135ae3f81fe Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Thu, 29 Apr 2010 14:12:49 -0700
Subject: Add patch to report error when config file exists but cannot be read.
 Closes: #572353, thanks to Ken Neighbors.

---
 debian/patches/1015_config_read_error.patch |   26 ++++++++++++++++++++++++++
 debian/patches/series                       |    1 +
 2 files changed, 27 insertions(+), 0 deletions(-)
 create mode 100644 debian/patches/1015_config_read_error.patch

diff --git a/debian/patches/1015_config_read_error.patch 
b/debian/patches/1015_config_read_error.patch
new file mode 100644
index 0000000..be08c20
--- /dev/null
+++ b/debian/patches/1015_config_read_error.patch
@@ -0,0 +1,26 @@
+Description: Report error when config file exists but cannot be read.
+Author: Ken Neighbors <[email protected]>
+Bug-Debian: http://bugs.debian.org/572353
+
+Index: awstats/wwwroot/cgi-bin/awstats.pl
+===================================================================
+--- awstats.orig/wwwroot/cgi-bin/awstats.pl    2007-07-07 11:00:06.000000000 
+0000
++++ awstats/wwwroot/cgi-bin/awstats.pl 2010-04-29 20:34:08.000000000 +0000
+@@ -1742,11 +1742,17 @@
+                       $FileSuffix = ".$SiteConfig";
+                       last;
+               }
++              elsif ( -e "$searchdir$PROG.$SiteConfig.conf" ) {
++                      error("Couldn't open config file 
\"$searchdir$PROG.$SiteConfig.conf\": $!" );
++              }
+               if ( open( CONFIG, "$searchdir$PROG.conf" ) ) {
+                       $FileConfig = "$searchdir$PROG.conf";
+                       $FileSuffix = '';
+                       last;
+               }
++              elsif ( -e "$searchdir$PROG.conf" ) {
++                      error("Couldn't open config file 
\"$searchdir$PROG.conf\": $!" );
++              }
+       }
+       if ( !$FileConfig ) {
+               error(
diff --git a/debian/patches/series b/debian/patches/series
index 88bb06f..ec29f1c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -10,4 +10,5 @@
 1012_ipv6_strip_trailing_dot.patch
 1013_yahoo_search.patch
 1014_websec_robot.patch
+1015_config_read_error.patch
 2001_awstatsprog_path.patch
-- 
1.5.6.5


>From 641feeb2ac32ef72c4faf4546154b96e3af488b8 Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Thu, 29 Apr 2010 14:01:39 -0700
Subject: Add patch to fix truncated nested included config files.
 Closes: #575545, thanks to Ken Neighbors.

---
 debian/patches/1016_nested_includes.patch |   28 ++++++++++++++++++++++++++++
 debian/patches/series                     |    1 +
 2 files changed, 29 insertions(+), 0 deletions(-)
 create mode 100644 debian/patches/1016_nested_includes.patch

diff --git a/debian/patches/1016_nested_includes.patch 
b/debian/patches/1016_nested_includes.patch
new file mode 100644
index 0000000..80449f9
--- /dev/null
+++ b/debian/patches/1016_nested_includes.patch
@@ -0,0 +1,28 @@
+Description: Fix bug with truncated nested included config files.
+Author: Ken Neighbors <[email protected]>
+Bug-Debian: http://bugs.debian.org/575545
+
+Index: awstats/wwwroot/cgi-bin/awstats.pl
+===================================================================
+--- awstats.orig/wwwroot/cgi-bin/awstats.pl    2007-07-07 11:00:06.000000000 
+0000
++++ awstats/wwwroot/cgi-bin/awstats.pl 2010-03-26 16:54:32.000000000 +0000
+@@ -1220,6 +1220,7 @@
+                               );
+                               next;
+                       }
++                      local( *CONFIG_INCLUDE );
+                       if ( open( CONFIG_INCLUDE, $includeFile ) ) {
+                               &Parse_Config( *CONFIG_INCLUDE, $level + 1, 
$includeFile );
+                               close(CONFIG_INCLUDE);
+Index: awstats/tools/awstats_buildstaticpages.pl
+===================================================================
+--- awstats.orig/tools/awstats_buildstaticpages.pl     2007-07-07 
10:57:20.000000000 +0000
++++ awstats/tools/awstats_buildstaticpages.pl  2010-03-26 19:11:57.000000000 
+0000
+@@ -189,6 +189,7 @@
+                               warning("Warning: Perl versions before 5.6 
cannot handle nested includes");
+                               next;
+                       }
++                  local( *CONFIG_INCLUDE );
+                   if ( open( CONFIG_INCLUDE, $includeFile ) ) {
+                               &Parse_Config( *CONFIG_INCLUDE , $level+1, 
$includeFile);
+                               close( CONFIG_INCLUDE );
diff --git a/debian/patches/series b/debian/patches/series
index 88bb06f..00ddf4e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -10,4 +10,5 @@
 1012_ipv6_strip_trailing_dot.patch
 1013_yahoo_search.patch
 1014_websec_robot.patch
+1016_nested_includes.patch
 2001_awstatsprog_path.patch
-- 
1.5.6.5


>From cf0fa60b4d7279d6dc3deae071a0ff9555823e40 Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Wed, 28 Apr 2010 09:54:58 -0700
Subject: Show error messages from cron jobs (update.sh and buildstatic.sh).

---
 debian/buildstatic.sh |   12 +++++++++---
 debian/update.sh      |    9 +++++++--
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index 91dd4d9..9f41cbc 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -16,6 +16,7 @@ 
BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl
 
 cd /etc/awstats
 
+TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
 for c in awstats \
          `/bin/ls -1 awstats.*.conf 2>/dev/null | \
           /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
@@ -24,11 +25,16 @@ do
   m=`date +%m`
   mkdir -p /var/cache/awstats/$c/$Y/$m/
   AL=${AWSTATS_LANG:-en}
-  $BUILDSTATICPAGES \
+  if ! $BUILDSTATICPAGES \
     -config=$c \
        -year=$Y \
        -month=$m \
        -lang=$AL \
        -staticlinksext=${AL}.html \
-       -dir=/var/cache/awstats/$c/$Y/$m/
-done >/dev/null
+       -dir=/var/cache/awstats/$c/$Y/$m/ >$TMPFILE 2>&1
+  then
+    # an error occurred
+    cat $TMPFILE >&2
+  fi
+done
+rm -f $TMPFILE
diff --git a/debian/update.sh b/debian/update.sh
index bd49d5d..11a8e03 100755
--- a/debian/update.sh
+++ b/debian/update.sh
@@ -14,9 +14,14 @@ AWSTATS=/usr/lib/cgi-bin/awstats.pl
 
 cd /etc/awstats
 
+TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
 for c in awstats \
          `/bin/ls -1 awstats.*.conf 2>/dev/null | \
           /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
 do
-  $AWSTATS -config=$c -update
-done >/dev/null
+  if ! $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
+    # an error occurred
+    cat $TMPFILE >&2
+  fi
+done
+rm -f $TMPFILE
-- 
1.5.6.5


>From 3492ee4e32a1dd2cafa982c6603b7f8afe14564d Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Wed, 28 Apr 2010 22:31:40 -0700
Subject: Add option to disable nightly generation of static html reports.

---
 debian/README.Debian   |    1 +
 debian/buildstatic.sh  |    5 +++++
 debian/default/awstats |    4 ++++
 3 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/debian/README.Debian b/debian/README.Debian
index d5a9a1e..ed8b69f 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -8,6 +8,7 @@ Do the following for a simple setup of a single website with 
Apache 2.x:
 
   * Edit /etc/logrotate.d/apache2 to permit www-data access to logfiles
   * copy /usr/share/doc/awstats/examples/apache.conf to /etc/apache2/conf.d/
+  * edit /etc/default/awstats to enable nightly build of static html reports
 
 The above is _NOT_ supported or recommended! Please read the rest of this
 document instead...
diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index 9f41cbc..ca09cc7 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -14,6 +14,11 @@ 
BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl
 [ -f $AWSTATS -a -f $BUILDSTATICPAGES ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
 
+ENABLE=${AWSTATS_ENABLE_BUILDSTATICPAGES:-no}
+if [ "$ENABLE" != "yes" ]; then
+  exit 0
+fi
+
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
diff --git a/debian/default/awstats b/debian/default/awstats
index 3785ea3..d8830cc 100644
--- a/debian/default/awstats
+++ b/debian/default/awstats
@@ -1,5 +1,9 @@
 # AWStats configuration options
 
+# This variable controls whether to create static html reports every
+# night in /var/cache/awstats/.  Set to "yes" or "no".
+AWSTATS_ENABLE_BUILDSTATICPAGES="no"
+
 # This variable control the language of all static html reports.  Set
 # one to appropriate two-letter language code (default to en).
 #AWSTATS_LANG=ru
-- 
1.5.6.5


>From 31217b14bb2ca6b06797ee26adf6957e55b445dd Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Wed, 28 Apr 2010 22:34:27 -0700
Subject: Use "nice" to lower the priority of the AWStats processes when
 updating databases and generating static html reports from cron.

---
 debian/buildstatic.sh  |    3 ++-
 debian/default/awstats |    5 +++++
 debian/update.sh       |    4 +++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index ca09cc7..8af4c83 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -14,6 +14,7 @@ 
BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl
 [ -f $AWSTATS -a -f $BUILDSTATICPAGES ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
 
+NICE=${AWSTATS_NICE:-10}
 ENABLE=${AWSTATS_ENABLE_BUILDSTATICPAGES:-no}
 if [ "$ENABLE" != "yes" ]; then
   exit 0
@@ -30,7 +31,7 @@ do
   m=`date +%m`
   mkdir -p /var/cache/awstats/$c/$Y/$m/
   AL=${AWSTATS_LANG:-en}
-  if ! $BUILDSTATICPAGES \
+  if ! nice -n $NICE $BUILDSTATICPAGES \
     -config=$c \
        -year=$Y \
        -month=$m \
diff --git a/debian/default/awstats b/debian/default/awstats
index d8830cc..ac8c320 100644
--- a/debian/default/awstats
+++ b/debian/default/awstats
@@ -1,5 +1,10 @@
 # AWStats configuration options
 
+# This variable controls the scheduling priority for updating AWStats
+# datafiles and for generating static html reports.  Normal priority
+# is 0 and a lower priority is 10.  See "man nice" for more info.
+AWSTATS_NICE=10
+
 # This variable controls whether to create static html reports every
 # night in /var/cache/awstats/.  Set to "yes" or "no".
 AWSTATS_ENABLE_BUILDSTATICPAGES="no"
diff --git a/debian/update.sh b/debian/update.sh
index 11a8e03..2dcf647 100755
--- a/debian/update.sh
+++ b/debian/update.sh
@@ -11,6 +11,8 @@ DEFAULT=/etc/default/awstats
 AWSTATS=/usr/lib/cgi-bin/awstats.pl
 
 [ -f $AWSTATS ] || exit 1
+[ -r "$DEFAULT" ] && . "$DEFAULT"
+NICE=${AWSTATS_NICE:-10}
 
 cd /etc/awstats
 
@@ -19,7 +21,7 @@ for c in awstats \
          `/bin/ls -1 awstats.*.conf 2>/dev/null | \
           /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
 do
-  if ! $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
+  if ! nice -n $NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
     # an error occurred
     cat $TMPFILE >&2
   fi
-- 
1.5.6.5


>From 3889a9f7a8dd63ff6c17d169d388c8c131a6a805 Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Tue, 27 Apr 2010 14:48:25 -0700
Subject: Do not use implied default config file /etc/awstats/awstats.conf but
 instead require sysadmin to install one or more explicit config
 file(s) so that update.sh and buildstatic.sh will work for either
 single-site or multi-site installations.  This fixes the problem where
 awstats.pl complains about undefined SiteDomain when using separate
 config files as described in README.Debian for multiple stats.

---
 debian/README.Debian                 |   66 +++++++++++++--------------------
 debian/buildstatic.sh                |    3 +-
 debian/examples/awstats.default.conf |   35 ++++++++++++++++++
 debian/rules                         |    2 +-
 debian/update.sh                     |    3 +-
 5 files changed, 64 insertions(+), 45 deletions(-)
 create mode 100644 debian/examples/awstats.default.conf

diff --git a/debian/README.Debian b/debian/README.Debian
index ed8b69f..b3ea45b 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -8,6 +8,7 @@ Do the following for a simple setup of a single website with 
Apache 2.x:
 
   * Edit /etc/logrotate.d/apache2 to permit www-data access to logfiles
   * copy /usr/share/doc/awstats/examples/apache.conf to /etc/apache2/conf.d/
+  * copy /usr/share/doc/awstats/examples/awstats.default.conf to /etc/awstats/
   * edit /etc/default/awstats to enable nightly build of static html reports
 
 The above is _NOT_ supported or recommended! Please read the rest of this
@@ -68,52 +69,37 @@ symlink from /var/www/awstats-icon to 
/usr/share/awstats/icon/.
 Multiple stats
 --------------
 
-To handle multiple stats (eg. using VirtualHosts in Apache) you
-should...
-
- 1) Place all configs in /etc/awstats.
-
- 2) Name the configs "awstats." + whatever you want - ".conf" (eg.
-    awstats.example.com.conf"). But avoid "awstats.awstats.conf.
-
-    To retain use of a common config file containing defaults for all
-    of your sites, consider a scheme such as the following:
- 
-    Make a bunch of awstats.[site_name_here].conf files, and have
-    the first line include the parent awstats.conf file (which by
-    default also includes awstats.conf.local). The remainder of the
-    file should have your site-specific configuration settings, which
-    override the defaults specified in awstats.conf and
-    awstats.conf.local.
- 
-    Here is an example of an awstats.example.com.conf file (of course,
-    tailor the file for your own configuration):
-    
-        Include "/etc/awstats/awstats.conf"
+To handle multiple stats (for example, using VirtualHosts in Apache)
+you should place all your configuration files under /etc/awstats/.
+Name the files "awstats." + whatever you want + ".conf" (for example,
+"awstats.example.com.conf").  But avoid "awstats.awstats.conf".
+
+To retain use of a common config file containing defaults for all of
+your sites, consider a scheme such as the following:
+
+  Make a bunch of awstats.[site_name_here].conf files, and have the
+  first line include the parent awstats.conf file (which by default
+  also includes awstats.conf.local). The remainder of the file should
+  have your site-specific configuration settings, which override the
+  defaults specified in awstats.conf and awstats.conf.local.
+
+  Here is an example of an awstats.example.com.conf file (of course,
+  tailor the file for your own configuration):
+
+        Include "awstats.conf"
         SiteDomain="example.com"
         HostAliases="example.com www.example.com"
         DirData="/var/lib/awstats/example.com"
         LogFile="/var/log/apache2/example.com_access_log"
 
-    This way you can leave awstats.conf alone, and put your
-    server-specific settings into awstats.conf.local, and your
-    site-specific settings into each awstats.[site_name_here].conf
-    file.
-
-    Note, that awstats package cannot safely handle upgrades to
-    locally added config files -- if config options change then the
-    main file is updated (with warnings if edited locally) but extra
-    config files are silently ignored and possibly broken.
-
- 3) Run awstats.pl with each config one by one (have a look at the
-    scripts awstats-update and awstats_updateall.pl in
-    /usr/share/doc/awstats/examples/).
-
- 4) Edit /etc/cron.d/awstats for each site. Possibly a line like this
-    for each site:
+  This way you can leave awstats.conf alone, and put your
+  server-specific settings into awstats.conf.local, and your
+  site-specific settings into each awstats.[site_name_here].conf file.
 
-        20 2 * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl ] && \
-            /usr/lib/cgi-bin/awstats.pl -config=example.com -update >/dev/null
+Note that the awstats package cannot safely handle upgrades to locally
+added config files -- if config options change then the main file is
+updated (with warnings if edited locally), but extra config files are
+silently ignored and possibly broken.
 
 
 Browser and referer stats are missing
diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index 8af4c83..a0ec26a 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -23,8 +23,7 @@ fi
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in awstats \
-         `/bin/ls -1 awstats.*.conf 2>/dev/null | \
+for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
           /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
 do
   Y=`date +%Y`
diff --git a/debian/examples/awstats.default.conf 
b/debian/examples/awstats.default.conf
new file mode 100644
index 0000000..d63661d
--- /dev/null
+++ b/debian/examples/awstats.default.conf
@@ -0,0 +1,35 @@
+# This is a sample site-specific configuration file for AWStats.  You
+# can copy it into /etc/awstats/ and rename it according to your site
+# name.  Also change the SiteDomain parameter below to your site name
+# and add any additional configuration parameters that you wish to
+# override (see /etc/awstats/awstats.conf for a list of parameters).
+
+# You may create several copies of this file with different names for
+# multiple virtual hosts.  To set defaults for all of your sites, it
+# is recommended that you place your changes in
+# /etc/awstats/awstats.conf.local and leave awstats.conf as it is.
+
+# Note that when a variable is defined both in a config file and in an
+# included file, AWStats will use the last value read for parameters that
+# contains one value and AWStats will concat all values from both files for
+# parameters that are lists of values.
+#
+Include "/etc/awstats/awstats.conf"
+
+# "SiteDomain" must contain the main domain name, or the main intranet web
+# server name, used to reach the web site.
+# If you share the same log file for several virtual web servers, this
+# parameter is used to tell AWStats to filter record that contains records for
+# this virtual host name only (So check that this virtual hostname can be
+# found in your log file and use a personalized log format that include the
+# %virtualname tag).
+# But for multi hosting a better solution is to have one log file for each
+# virtual web server. In this case, this parameter is only used to generate
+# full URL's links when ShowLinksOnUrl option is set to 1.
+# If analyzing mail log, enter here the domain name of mail server.
+# Example: "myintranetserver"
+# Example: "www.domain.com"
+# Example: "ftp.domain.com"
+# Example: "domain.com"
+#
+SiteDomain="localhost"
diff --git a/debian/rules b/debian/rules
index a21daa3..b691154 100755
--- a/debian/rules
+++ b/debian/rules
@@ -34,7 +34,7 @@ DEB_INSTALL_DOCS_ALL = README.TXT
 
 awstats_example_scripts = $(filter-out 
%/awstats_buildstaticpages.pl,$(wildcard tools/*.pl)) $(wildcard 
debian/examples/*.sh)
 
-DEB_INSTALL_EXAMPLES_awstats = $(awstats_example_scripts) 
debian/examples/apache.conf wwwroot/cgi-bin/awstats.model.conf 
wwwroot/cgi-bin/plugins/example/* wwwroot/css wwwroot/js tools/xslt
+DEB_INSTALL_EXAMPLES_awstats = $(awstats_example_scripts) 
debian/examples/awstats.default.conf debian/examples/apache.conf 
wwwroot/cgi-bin/awstats.model.conf wwwroot/cgi-bin/plugins/example/* 
wwwroot/css wwwroot/js tools/xslt
 DEB_COMPRESS_EXCLUDE = $(notdir $(awstats_example_scripts)) awstats.ico
 
 JAVA_HOME = /usr/lib/jvm/default-java
diff --git a/debian/update.sh b/debian/update.sh
index 2dcf647..904f59b 100755
--- a/debian/update.sh
+++ b/debian/update.sh
@@ -17,8 +17,7 @@ NICE=${AWSTATS_NICE:-10}
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in awstats \
-         `/bin/ls -1 awstats.*.conf 2>/dev/null | \
+for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
           /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
 do
   if ! nice -n $NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
-- 
1.5.6.5


>From 9ec6cd3775c74ec57ab2474b6a347b05fbe88f98 Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Tue, 27 Apr 2010 15:05:12 -0700
Subject: Improve documentation of logfile permissions and suggest
 EnableLockForUpdate=1.

---
 debian/README.Debian |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/debian/README.Debian b/debian/README.Debian
index b3ea45b..94fff06 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -7,16 +7,16 @@ Quick'n'dirty setup
 Do the following for a simple setup of a single website with Apache 2.x:
 
   * Edit /etc/logrotate.d/apache2 to permit www-data access to logfiles
-  * copy /usr/share/doc/awstats/examples/apache.conf to /etc/apache2/conf.d/
-  * copy /usr/share/doc/awstats/examples/awstats.default.conf to /etc/awstats/
-  * edit /etc/default/awstats to enable nightly build of static html reports
+  * Copy /usr/share/doc/awstats/examples/apache.conf to /etc/apache2/conf.d/
+  * Copy /usr/share/doc/awstats/examples/awstats.default.conf to /etc/awstats/
+  * Edit /etc/default/awstats to enable nightly build of static html reports
 
 The above is _NOT_ supported or recommended! Please read the rest of this
 document instead...
 
 
-No stats are generated
-----------------------
+No stats are generated due to logfile permissions
+-------------------------------------------------
 
 As AWStats is used both as a CGI-script and offline, it is by default run as
 uid=www-data in cron jobs so that generated files are accessible from CGI as
@@ -24,8 +24,10 @@ well.
 By default Apache stores (since version 1.3.22-1) logfiles with uid=root and
 gid=adm, so you need to either...
 
- 1) Change the rights of the logfiles in /etc/logrotate.d/apache2 so that
-    www-data has at least read access.
+ 1) Change the rights of the logfiles so that www-data has at least read
+    access.  For example:
+    change line in /etc/logrotate.d/apache2 to: "create 644 root adm"
+    change permissions of existing files: chmod 644 /var/log/apache2/*.log
 
  2) As 1) but change to a specific user, and use the suEXEC feature of Apache
     to run as same user (and either change the right of /var/lib/awstats as
@@ -47,8 +49,19 @@ By default AWStats scans logfiles each 10 minutes. When 
Apache (and
 other webservers) rotate their logfiles, the last entries in the old
 logfile may not have been read by AWStats.
 
-Make sure to run AWStats right _before_ web logs are rotated (add a
-"prerotate" in /etc/logrotate.d/apache2 for Apache).
+Make sure to run AWStats right _before_ web logs are rotated.  For
+example, insert the following lines in /etc/logrotate.d/apache2:
+
+       prerotate
+               if [ -x /usr/share/awstats/tools/update.sh ]; then
+                       su - -c /usr/share/awstats/tools/update.sh www-data
+               fi
+       endscript
+
+Also consider enabling lock files in /etc/awstats/awstats.conf.local
+with EnableLockForUpdate=1 so that only one AWStats update process is
+running at a time.  This will reduce system resources especially if
+the AWStats update process takes longer than 10 minutes to complete.
 
 
 The icons are missing
-- 
1.5.6.5


>From cf333f189d573132288370e4e9d0b5fdb66eb3ff Mon Sep 17 00:00:00 2001
From: Ken Neighbors <[email protected]>
Date: Tue, 27 Apr 2010 15:28:21 -0700
Subject: Cosmetic improvements to cron scripts (update.sh and buildstatic.sh).

---
 debian/buildstatic.sh |   32 ++++++++++++++++++--------------
 debian/update.sh      |   14 ++++++++------
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/debian/buildstatic.sh b/debian/buildstatic.sh
index a0ec26a..0e41700 100755
--- a/debian/buildstatic.sh
+++ b/debian/buildstatic.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##
-## buildstatic.sh, written by Sergey B Kirpichev <[email protected]> 
+## buildstatic.sh, written by Sergey B Kirpichev <[email protected]>
 ##
 ## Build all static html reports from AWStats data (Debian specific)
 ##
@@ -11,31 +11,35 @@ DEFAULT=/etc/default/awstats
 AWSTATS=/usr/lib/cgi-bin/awstats.pl
 BUILDSTATICPAGES=/usr/share/awstats/tools/awstats_buildstaticpages.pl
 
+# Set defaults.
+AWSTATS_NICE=10
+AWSTATS_ENABLE_BUILDSTATICPAGES="no"
+AWSTATS_LANG="en"
+
 [ -f $AWSTATS -a -f $BUILDSTATICPAGES ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
 
-NICE=${AWSTATS_NICE:-10}
-ENABLE=${AWSTATS_ENABLE_BUILDSTATICPAGES:-no}
-if [ "$ENABLE" != "yes" ]; then
+if [ "$AWSTATS_ENABLE_BUILDSTATICPAGES" != "yes" ]; then
   exit 0
 fi
 
+Y=`date +%Y`
+m=`date +%m`
+
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
-          /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
-do
-  Y=`date +%Y`
-  m=`date +%m`
+for c in awstats.*.conf; do
+  c=${c#awstats.} # remove prefix
+  c=${c%.conf}    # remove suffix
   mkdir -p /var/cache/awstats/$c/$Y/$m/
-  AL=${AWSTATS_LANG:-en}
-  if ! nice -n $NICE $BUILDSTATICPAGES \
-    -config=$c \
+  if ! nice -n $AWSTATS_NICE $BUILDSTATICPAGES \
+       -config=$c \
        -year=$Y \
        -month=$m \
-       -lang=$AL \
-       -staticlinksext=${AL}.html \
+       -lang=$AWSTATS_LANG \
+       -staticlinksext=${AWSTATS_LANG}.html \
+       -awstatsprog=$AWSTATS \
        -dir=/var/cache/awstats/$c/$Y/$m/ >$TMPFILE 2>&1
   then
     # an error occurred
diff --git a/debian/update.sh b/debian/update.sh
index 904f59b..fff3ab6 100755
--- a/debian/update.sh
+++ b/debian/update.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##
-## update.sh, written by Sergey B Kirpchev <[email protected]>
+## update.sh, written by Sergey B Kirpichev <[email protected]>
 ##
 ## Update AWStats data for all configs, awstats.*.conf (Debian specific)
 ##
@@ -10,17 +10,19 @@ set -e
 DEFAULT=/etc/default/awstats
 AWSTATS=/usr/lib/cgi-bin/awstats.pl
 
+# Set defaults.
+AWSTATS_NICE=10
+
 [ -f $AWSTATS ] || exit 1
 [ -r "$DEFAULT" ] && . "$DEFAULT"
-NICE=${AWSTATS_NICE:-10}
 
 cd /etc/awstats
 
 TMPFILE=`mktemp /tmp/awstats.XXXXXXXXXX`
-for c in `/bin/ls -1 awstats.*.conf 2>/dev/null | \
-          /bin/sed 's/^awstats\.\(.*\)\.conf/\1/'`
-do
-  if ! nice -n $NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
+for c in awstats.*.conf; do
+  c=${c#awstats.} # remove prefix
+  c=${c%.conf}    # remove suffix
+  if ! nice -n $AWSTATS_NICE $AWSTATS -config=$c -update >$TMPFILE 2>&1; then
     # an error occurred
     cat $TMPFILE >&2
   fi
-- 
1.5.6.5



--- End Message ---
--- Begin Message ---
Source: awstats
Source-Version: 6.9.5~dfsg-3

We believe that the bug you reported is fixed in the latest version of
awstats, which is due to be installed in the Debian FTP archive:

awstats_6.9.5~dfsg-3.debian.tar.gz
  to main/a/awstats/awstats_6.9.5~dfsg-3.debian.tar.gz
awstats_6.9.5~dfsg-3.dsc
  to main/a/awstats/awstats_6.9.5~dfsg-3.dsc
awstats_6.9.5~dfsg-3_all.deb
  to main/a/awstats/awstats_6.9.5~dfsg-3_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jonas Smedegaard <[email protected]> (supplier of updated awstats package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Format: 1.8
Date: Wed, 19 May 2010 13:53:50 +0200
Source: awstats
Binary: awstats
Architecture: source all
Version: 6.9.5~dfsg-3
Distribution: unstable
Urgency: low
Maintainer: Debian AWStats Team <[email protected]>
Changed-By: Jonas Smedegaard <[email protected]>
Description: 
 awstats    - powerful and featureful web server log analyzer
Closes: 350601 572353 580672 580692 580693 580704
Changes: 
 awstats (6.9.5~dfsg-3) unstable; urgency=low
 .
   [ Sergey B Kirpichev ]
   * Show error messages from cron jobs.
     Closes: bug#580672, thanks to Ken Neighbors.
   * Add option to disable nightly generation of static html reports.
     Closes: bug#580692, thanks to Ken Neighbors.
   * Option to use "nice" to lower the priority of cron scripts.
     Closes: bug#580693, thanks to Ken Neighbors.
   * Set default language (en) for static reports generation
   * Cosmetic improvements to cron scripts.
     Closes: bug#580704.
   * Recognize method/protocol RTSP in uppercase.
     Closes: bug#350601, thanks to Lee Maguire.
   * Report permissions problem while reading awstats.custom.conf.
     Closes: bug#572353, thanks to Ken Neighbors.
 .
   [ Jonas Smedegaard ]
   * Reverse test logic when sourcing /etc/default/awstats to not fail if
     missing.
   * Respect TMPDIR for temporary files (i.e. use mktemp --tmpdir).
   * Update patches:
     + Drop (unapplied) patch 0011: applied upstream at some point in the
       past.
     + Unfuzz (unapplied) patch 0006.
     + Refresh patches 0006, 1015 and 1016 with compacting quilt options
       --no-index --no-timestamps -pab.
Checksums-Sha1: 
 65a0d00a9556356e27dbdddb70edba3dc1ce665c 1429 awstats_6.9.5~dfsg-3.dsc
 b6c4129ec07aac5e7d792c7ac97705243ea4d6aa 38727 
awstats_6.9.5~dfsg-3.debian.tar.gz
 191e157a51391c33478e3993f182ee550b324a3a 985542 awstats_6.9.5~dfsg-3_all.deb
Checksums-Sha256: 
 de94426295c62a1af0e2e2dbaf85e9d889201c6dfc5b94a03ca2da28c2cba657 1429 
awstats_6.9.5~dfsg-3.dsc
 2ded3ecf7e153309212a930a7f07d32080281024c8bcf165d64bae57bb2c4dc8 38727 
awstats_6.9.5~dfsg-3.debian.tar.gz
 c23a39f8ffdc118e2a65c5fb8199e7d20af65a65a77dc6313606cc1e5e99bc07 985542 
awstats_6.9.5~dfsg-3_all.deb
Files: 
 968b45d3f5f2692fa27c655abb51181e 1429 web optional awstats_6.9.5~dfsg-3.dsc
 b1f694a01ae50cb3dffb00ecec9887d9 38727 web optional 
awstats_6.9.5~dfsg-3.debian.tar.gz
 72d7e584ae477da97a4105e2feeb15ed 985542 web optional 
awstats_6.9.5~dfsg-3_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEAREDAAYFAkvz1IMACgkQn7DbMsAkQLiN7gCgp5n+ZuhPc29u8JYadtHz8lnu
6ecAoJHDbvbUWMK/1WHfk1QSoSRvTCoJ
=WRTw
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to