summaryrefslogtreecommitdiffstats
path: root/source/a/logrotate
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/logrotate')
-rw-r--r--source/a/logrotate/doinst.sh13
-rwxr-xr-xsource/a/logrotate/logrotate.SlackBuild73
-rw-r--r--source/a/logrotate/logrotate.conf50
-rw-r--r--source/a/logrotate/logrotate.cron3
-rw-r--r--source/a/logrotate/logrotate.slackware.diff63
-rw-r--r--source/a/logrotate/slack-desc2
6 files changed, 158 insertions, 46 deletions
diff --git a/source/a/logrotate/doinst.sh b/source/a/logrotate/doinst.sh
new file mode 100644
index 000000000..ea006ffac
--- /dev/null
+++ b/source/a/logrotate/doinst.sh
@@ -0,0 +1,13 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/logrotate.conf.new
+
diff --git a/source/a/logrotate/logrotate.SlackBuild b/source/a/logrotate/logrotate.SlackBuild
index 6b6284b7c..76cc34abe 100755
--- a/source/a/logrotate/logrotate.SlackBuild
+++ b/source/a/logrotate/logrotate.SlackBuild
@@ -20,25 +20,42 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-VERSION=${VERSION:-3.7.4}
-ARCH=${ARCH:-x86_64}
+VERSION=${VERSION:-3.7.8}
BUILD=${BUILD:-1}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-logrotate
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
rm -rf $PKG
mkdir -p $TMP $PKG
-
-# Explode the package framework:
-cd $PKG
-explodepkg $CWD/_logrotate.tar.gz
-
cd $TMP
rm -rf logrotate-$VERSION
-tar xzvf $CWD/logrotate-$VERSION.tar.gz
+tar xvf $CWD/logrotate-$VERSION.tar.?z* || exit 1
cd logrotate-$VERSION
chown -R root:root .
find . \
@@ -47,25 +64,43 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-zcat $CWD/logrotate.slackware.diff.gz | patch -p1
+# Fixup a few things:
+zcat $CWD/logrotate.slackware.diff.gz | patch -p1 || exit 1
+
make clean
-make || exit 1
+make EXTRA_CFLAGS="$SLKCFLAGS" || exit 1
strip logrotate
+
+mkdir -p $PKG/usr/sbin
cat logrotate > $PKG/usr/sbin/logrotate
+chmod 0755 $PKG/usr/sbin/logrotate
+
+mkdir -p $PKG/usr/man/man8
cat logrotate.8 | gzip -9c > $PKG/usr/man/man8/logrotate.8.gz
+
+# Create the logrotate.d directory and install the config file
+mkdir -p $PKG/etc/logrotate.d
+zcat $CWD/logrotate.conf.gz > $PKG/etc/logrotate.conf.new
+
+# Make logrotate run from cron every day
+mkdir -p $PKG/etc/cron.daily
+zcat $CWD/logrotate.cron.gz > $PKG/etc/cron.daily/logrotate
+chmod 0755 $PKG/etc/cron.daily/logrotate
+
+# Create the state directory
+mkdir -p $PKG/var/lib/logrotate
+
mkdir -p $PKG/usr/doc/logrotate-$VERSION
cp -a \
CHANGES COPYING READM* \
- $PKG/usr/doc/logrotate-$VERSION
+ $PKG/usr/doc/logrotate-$VERSION
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-# Build the package:
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
cd $PKG
-makepkg -l y -c n $TMP/logrotate-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/logrotate-$VERSION-$ARCH-$BUILD.txz
-# Clean up the extra stuff:
-if [ "$1" = "--cleanup" ]; then
- rm -rf $TMP/logrotate-$VERSION
- rm -rf $PKG
-fi
diff --git a/source/a/logrotate/logrotate.conf b/source/a/logrotate/logrotate.conf
new file mode 100644
index 000000000..27b03e134
--- /dev/null
+++ b/source/a/logrotate/logrotate.conf
@@ -0,0 +1,50 @@
+# /etc/logrotate.conf
+#
+# logrotate is designed to ease administration of systems that generate large
+# numbers of log files. It allows automatic rotation, compression, removal, and
+# mailing of log files. Each log file may be handled daily, weekly, monthly, or
+# when it grows too large.
+#
+# logrotate is normally run daily from root's crontab.
+#
+# For more details, see "man logrotate".
+
+# rotate log files weekly:
+weekly
+
+# keep 4 weeks worth of backlogs:
+rotate 4
+
+# create new (empty) log files after rotating old ones:
+create
+
+# uncomment if you want to use the date as a suffix of the rotated file
+#dateext
+
+# uncomment this if you want your log files compressed:
+#compress
+
+# some packages install log rotation information in this directory:
+include /etc/logrotate.d
+
+# Rotate /var/log/wtmp:
+/var/log/wtmp {
+ monthly
+ create 0664 root utmp
+ minsize 1M
+ rotate 1
+}
+
+# Rotate /var/log/btmp:
+/var/log/btmp {
+ monthly
+ create 0600 root root
+ rotate 1
+}
+
+# Note that /var/log/lastlog is not rotated. This is intentional, and it should
+# not be. The lastlog file is a database, and is also a sparse file that takes
+# up much less space on the drive than it appears.
+
+# system-specific logs may be also be configured below:
+
diff --git a/source/a/logrotate/logrotate.cron b/source/a/logrotate/logrotate.cron
new file mode 100644
index 000000000..f91b3adda
--- /dev/null
+++ b/source/a/logrotate/logrotate.cron
@@ -0,0 +1,3 @@
+#!/bin/sh
+/usr/sbin/logrotate /etc/logrotate.conf
+[ $? != 0 ] && /usr/bin/logger -t logrotate "ALERT - exited abnormally."
diff --git a/source/a/logrotate/logrotate.slackware.diff b/source/a/logrotate/logrotate.slackware.diff
index 77b8aad6b..e9126cee3 100644
--- a/source/a/logrotate/logrotate.slackware.diff
+++ b/source/a/logrotate/logrotate.slackware.diff
@@ -1,44 +1,55 @@
-diff -u -r --new-file logrotate-3.7.4.orig/config.c logrotate-3.7.4/config.c
---- logrotate-3.7.4.orig/config.c 2006-07-24 07:08:04.000000000 -0500
-+++ logrotate-3.7.4/config.c 2006-09-21 01:07:50.000000000 -0500
-@@ -29,7 +29,7 @@
+diff -Nur logrotate-3.7.8.orig/Makefile logrotate-3.7.8/Makefile
+--- logrotate-3.7.8.orig/Makefile 2008-05-19 05:25:54.000000000 -0500
++++ logrotate-3.7.8/Makefile 2009-05-09 23:25:12.060201375 -0500
+@@ -1,7 +1,7 @@
+ VERSION = $(shell awk '/Version:/ { print $$2 }' logrotate.spec)
+ OS_NAME = $(shell uname -s)
+ LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`)
+-CFLAGS = -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
++CFLAGS = -Wall $(EXTRA_CFLAGS) -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
+ PROG = logrotate
+ MAN = logrotate.8
+ LOADLIBES = -lpopt
+diff -Nur logrotate-3.7.8.orig/config.c logrotate-3.7.8/config.c
+--- logrotate-3.7.8.orig/config.c 2008-06-02 05:26:14.000000000 -0500
++++ logrotate-3.7.8/config.c 2009-05-09 23:53:36.748287318 -0500
+@@ -33,8 +33,9 @@
#define isblank(c) ( (c) == ' ' || (c) == '\t' ) ? 1 : 0
#endif
-static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v",
-+static char *defTabooExts[] = { ".new", ".rpmsave", ".rpmorig", "~", ",v",
- ".rpmnew", ".swp"
+- ".rpmnew", ".swp", ".cfsaved", ".rhn-cfg-tmp-*"
++static char *defTabooExts[] = { ".new", ".orig", ".old", ".bak",
++ ".rpmsave", ".rpmorig", "~", ",v", ".rpmnew", ".swp", ".cfsaved",
++ ".rhn-cfg-tmp-*"
};
static int defTabooCount = sizeof(defTabooExts) / sizeof(char *);
-diff -u -r --new-file logrotate-3.7.4.orig/config.h logrotate-3.7.4/config.h
---- logrotate-3.7.4.orig/config.h 2005-11-12 13:07:56.000000000 -0600
-+++ logrotate-3.7.4/config.h 2006-09-21 01:08:02.000000000 -0500
-@@ -36,5 +36,5 @@
- #endif
- #ifndef STATEFILE
--#define STATEFILE "/var/lib/logrotate.status"
+diff -Nur logrotate-3.7.8.orig/config.h logrotate-3.7.8/config.h
+--- logrotate-3.7.8.orig/config.h 2005-11-12 13:07:56.000000000 -0600
++++ logrotate-3.7.8/config.h 2009-05-09 23:58:17.040241145 -0500
+@@ -13,7 +13,7 @@
+ #define DEFAULT_MAIL_COMMAND "/usr/bin/mailx"
+ #define COMPRESS_COMMAND "/usr/local/bin/gzip"
+ #define UNCOMPRESS_COMMAND "/usr/local/bin/gunzip"
+-#define STATEFILE "/var/log/logrotate.status"
+#define STATEFILE "/var/lib/logrotate/status"
#endif
-diff -u -r --new-file logrotate-3.7.4.orig/logrotate.8 logrotate-3.7.4/logrotate.8
---- logrotate-3.7.4.orig/logrotate.8 2006-05-17 09:46:51.000000000 -0500
-+++ logrotate-3.7.4/logrotate.8 2006-09-21 01:07:14.000000000 -0500
-@@ -1,4 +1,4 @@
--.TH LOGROTATE 8 "Wed Nov 5 2002" "Red Hat Linux" "System Administrator's Manual"
-+.TH LOGROTATE 8 "Wed Nov 5 2002" "Linux" "System Administrator's Manual"
- .SH NAME
- logrotate \- rotates, compresses, and mails system logs
- .SH SYNOPSIS
-@@ -410,7 +410,7 @@
+
+ /*
+diff -Nur logrotate-3.7.8.orig/logrotate.8 logrotate-3.7.8/logrotate.8
+--- logrotate-3.7.8.orig/logrotate.8 2008-12-06 08:05:40.000000000 -0600
++++ logrotate-3.7.8/logrotate.8 2009-05-09 23:56:45.137687740 -0500
+@@ -442,7 +442,7 @@
for information on the taboo extensions). If a + precedes the list of
extensions, the current taboo extension list is augmented, otherwise it
is replaced. At startup, the taboo extension list
--contains .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~.
-+contains .new, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~.
+-contains .rpmorig, .rpmsave, ,v, .swp, .rpmnew, ~, .cfsaved and .rhn-cfg-tmp-*.
++contains .new, .orig, .bak, .old, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, ~, .cfsaved and .rhn-cfg-tmp-*.
.TP
\fBweekly\fR
-@@ -427,7 +427,7 @@
+@@ -459,7 +459,7 @@
.SH FILES
.PD 0
.TP 27
diff --git a/source/a/logrotate/slack-desc b/source/a/logrotate/slack-desc
index 2a1c76a5d..e0fafdb5b 100644
--- a/source/a/logrotate/slack-desc
+++ b/source/a/logrotate/slack-desc
@@ -5,7 +5,7 @@
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
- |-----handy-ruler------------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
logrotate: logrotate (system log rotation tool)
logrotate:
logrotate: The logrotate utility is designed to simplify the administration