summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-proxy/oops')
-rw-r--r--net-proxy/oops/Manifest2
-rw-r--r--net-proxy/oops/files/implicit-decl.patch9
-rw-r--r--net-proxy/oops/files/libpcreposix.patch19
-rw-r--r--net-proxy/oops/files/modules-as-needed.patch17
-rw-r--r--net-proxy/oops/files/oops-1.5.24-pthread-rwlock.patch30
-rw-r--r--net-proxy/oops/files/oops-1.5.24-respect-flags.patch352
-rw-r--r--net-proxy/oops/files/oops-1.5.24-textrel.patch24
-rw-r--r--net-proxy/oops/files/oops-1.5.24_pre20050503+db-5.0.patch13
-rw-r--r--net-proxy/oops/files/oops.cfg654
-rw-r--r--net-proxy/oops/files/oops.initd27
-rw-r--r--net-proxy/oops/files/rotate-logs.patch12
-rw-r--r--net-proxy/oops/metadata.xml6
-rw-r--r--net-proxy/oops/oops-1.5.24_pre20050503-r4.ebuild98
-rw-r--r--net-proxy/oops/oops-1.5.24_pre20050503-r5.ebuild112
14 files changed, 1375 insertions, 0 deletions
diff --git a/net-proxy/oops/Manifest b/net-proxy/oops/Manifest
new file mode 100644
index 000000000000..112ff567b3b7
--- /dev/null
+++ b/net-proxy/oops/Manifest
@@ -0,0 +1,2 @@
+DIST oops-1.5.23.tar.gz 473290 SHA256 b9ab7c0b5b11de7944f098d6f99158fe1b9c3b9cf82fe7827685c6cec8ccfa04 SHA512 5d33b19d6a48f3b38cffe7eb17ef0b0a00cc92cb1608a05f196ec747df51e318e8f0a82d1f0c2e254c16a7d97f640ed8bf30be62994f3b81d5ebd3cdc6358be3 WHIRLPOOL d2d9d1da409e91beb5e7761285b360dce3824f3defacc3c7f10305617bcdbd9e8807be645e74c268f4b8126ff330a7c49936ced06247c3bdc2190f8d194b4710
+DIST oops-1.5.24_pre20050503.patch.gz 101103 SHA256 954e59d046096867a8e818bf47190ab06c8416abb80d151757825a664192aded SHA512 230fede3d76ebd35f404055605381555707aed4d3fdf53e5e5074c66500b55360e7546c3faa54466791f485a89e359c3e5576162eef6c17ca49c1006ebfddb0a WHIRLPOOL 6ae6284393ed53d3d083af6abca2b7a5cb2c80d0c02838f5d518f02de12a13122900e2dbe62532953bdd839430d94523d28a8abf555e463d25a807a75f692cff
diff --git a/net-proxy/oops/files/implicit-decl.patch b/net-proxy/oops/files/implicit-decl.patch
new file mode 100644
index 000000000000..767814dd6a82
--- /dev/null
+++ b/net-proxy/oops/files/implicit-decl.patch
@@ -0,0 +1,9 @@
+diff -Nru oops-1.5.23.orig/src/hash.c oops-1.5.23/src/hash.c
+--- oops-1.5.23.orig/src/hash.c 2001-01-28 14:34:43.000000000 +0200
++++ oops-1.5.23/src/hash.c 2007-04-11 14:19:26.000000000 +0300
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <string.h>
+ #include <strings.h>
+ #include "hash.h"
+
diff --git a/net-proxy/oops/files/libpcreposix.patch b/net-proxy/oops/files/libpcreposix.patch
new file mode 100644
index 000000000000..1648ecabb152
--- /dev/null
+++ b/net-proxy/oops/files/libpcreposix.patch
@@ -0,0 +1,19 @@
+diff -Nru oops-1.5.23.orig/configure.in oops-1.5.23/configure.in
+--- oops-1.5.23.orig/configure.in 2007-11-20 22:47:27.000000000 +0200
++++ oops-1.5.23/configure.in 2007-11-20 22:58:42.000000000 +0200
+@@ -454,14 +454,7 @@
+ AC_DEFINE(REGEX_H, <regex.h>)
+ ;;
+ pcre)
+- if test -r "/usr/lib/libpcreposix.a" -a -r "/usr/lib/libpcre.a"; then
+- LIBS="$LIBS /usr/lib/libpcreposix.a /usr/lib/libpcre.a"
+- elif test -r "/usr/local/lib/libpcreposix.a" -a -r "/usr/local/lib/libpcre.a"; then
+- LIBS="$LIBS /usr/local/lib/libpcreposix.a /usr/local/lib/libpcre.a"
+- fi
+- if test "X`echo $CFLAGS | grep '\-I/usr/local/include'`" = "X"; then
+- CFLAGS="$CFLAGS -I/usr/local/include"
+- fi
++ LIBS="$LIBS -lpcreposix"
+ AC_DEFINE(REGEX_H, <pcreposix.h>)
+ ;;
+ builtin)
diff --git a/net-proxy/oops/files/modules-as-needed.patch b/net-proxy/oops/files/modules-as-needed.patch
new file mode 100644
index 000000000000..41703cd389ee
--- /dev/null
+++ b/net-proxy/oops/files/modules-as-needed.patch
@@ -0,0 +1,17 @@
+diff -Nru src/modules.orig/Makefile.in src/modules/Makefile.in
+--- src/modules.orig/Makefile.in 2006-05-20 01:28:11.000000000 +0300
++++ src/modules/Makefile.in 2006-05-20 01:29:11.827604500 +0300
+@@ -110,11 +110,11 @@
+
+ passwd_pgsql.so: passwd_sql.c ../modules.h ../oops.h
+ ${CC} ${CFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
+- ${LD} $(SOFLAGS) $(LDFLAGS) $(LIBS) -o passwd_pgsql.so passwd_pgsql.o $(PGSQL_LIB)
++ ${LD} $(SOFLAGS) $(LDFLAGS) -o passwd_pgsql.so passwd_pgsql.o $(LIBS) $(PGSQL_LIB)
+
+ passwd_mysql.so: passwd_sql.c ../modules.h ../oops.h
+ ${CC} ${CFLAGS} ${CDEFS} -D__MYSQL -c passwd_sql.c -o passwd_mysql.o
+- ${LD} $(SOFLAGS) $(LDFLAGS) $(LIBS) -o passwd_mysql.so passwd_mysql.o $(MYSQL_LIB)
++ ${LD} $(SOFLAGS) $(LDFLAGS) -o passwd_mysql.so passwd_mysql.o $(LIBS) $(MYSQL_LIB)
+
+ passwd_pgsql.o: passwd_sql.c ../modules.h ../oops.h
+ ${CC} ${CFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
diff --git a/net-proxy/oops/files/oops-1.5.24-pthread-rwlock.patch b/net-proxy/oops/files/oops-1.5.24-pthread-rwlock.patch
new file mode 100644
index 000000000000..2606af7330d5
--- /dev/null
+++ b/net-proxy/oops/files/oops-1.5.24-pthread-rwlock.patch
@@ -0,0 +1,30 @@
+diff -Nru oops-1.5.23.orig/src/lib/rwlock/rwlock.c oops-1.5.23/src/lib/rwlock/rwlock.c
+--- oops-1.5.23.orig/src/lib/rwlock/rwlock.c 2000-11-29 19:03:35.000000000 +0200
++++ oops-1.5.23/src/lib/rwlock/rwlock.c 2006-09-06 00:30:36.000000000 +0300
+@@ -53,6 +53,8 @@
+ #include <pthread.h>
+ #include "rwlock.h"
+
++#if defined(OOPS_IMPLEMENT_RWLOCK)
++
+ /* maximum number of times a read lock may be obtained */
+ #define MAX_READ_LOCKS (INT_MAX - 1)
+
+@@ -375,4 +377,6 @@
+ return(0);
+ }
+
++#endif /* defined(OOPS_IMPLEMENT_RWLOCK) */
++
+ #endif /* _THREAD_SAFE || _PTHREADS || _REENTRANT */
+diff -Nru oops-1.5.23.orig/src/lib/rwlock/rwlock.h oops-1.5.23/src/lib/rwlock/rwlock.h
+--- oops-1.5.23.orig/src/lib/rwlock/rwlock.h 2003-10-06 17:15:40.000000000 +0300
++++ oops-1.5.23/src/lib/rwlock/rwlock.h 2006-09-06 00:29:46.000000000 +0300
+@@ -53,6 +53,7 @@
+
+ #if !defined(PTHREAD_RWLOCK_INITIALIZER)
+ #define PTHREAD_RWLOCK_INITIALIZER NULL
++#define OOPS_IMPLEMENT_RWLOCK 1
+
+ struct pthread_rwlock {
+ pthread_mutex_t lock; /* monitor lock */
diff --git a/net-proxy/oops/files/oops-1.5.24-respect-flags.patch b/net-proxy/oops/files/oops-1.5.24-respect-flags.patch
new file mode 100644
index 000000000000..67c814aea2f2
--- /dev/null
+++ b/net-proxy/oops/files/oops-1.5.24-respect-flags.patch
@@ -0,0 +1,352 @@
+diff --git a/configure.in b/configure.in
+index 0b9ac65..a68d7c1 100644
+--- a/configure.in
++++ b/configure.in
+@@ -204,8 +204,6 @@ tm.__tm_gmtoff__ = tm.__tm_gmtoff__*2;
+ AC_DEFINE(HAVE__GMTOFF__) AC_MSG_RESULT(yes)
+ ],[AC_MSG_RESULT(no)])
+
+-LD=ld
+-
+ ##
+ ##
+ ##
+@@ -309,18 +307,18 @@ CXXCOMPFLAGS=-c
+ CXXSOFLAGS=$SOFLAGS
+
+ case "$host_os" in
+-irix*) CFLAGS="-D_SGI_MP_SOURCE"
++irix*) EXTCFLAGS+="-D_SGI_MP_SOURCE"
+ ;;
+-osf*) CFLAGS="$CFLAGS -D_REENTRANT -DOSF"
++osf*) EXTCFLAGS+="$CFLAGS -D_REENTRANT -DOSF"
+ LIBS="-oldstyle_liblookup -lpthread $LIBS"
+
+ ;;
+-freebsd*) CFLAGS="$CFLAGS -D_REENTRANT -DFREEBSD -D_THREAD_SAFE -DFD_SETSIZE=2048 -I."
++freebsd*) EXTCFLAGS+="$CFLAGS -D_REENTRANT -DFREEBSD -D_THREAD_SAFE -DFD_SETSIZE=2048 -I."
+ CXXSOFLAGS="-shared"
+ LIBS="$LEXLIB $LIBS"
+ if test "$large_files" = "yes" ; then
+ ## FreeBSD need no any special flags for 64bit files
+- CFLAGS="$CFLAGS -DWITH_LARGE_FILES"
++ EXTCFLAGS+=" -DWITH_LARGE_FILES"
+ fi
+ if test "X$LIBGB_NAME" != "X" ; then
+ LIBGB_NAME="$LIBGB_NAME -lstdc++"
+@@ -328,39 +326,38 @@ freebsd*) CFLAGS="$CFLAGS -D_REENTRANT -DFREEBSD -D_THREAD_SAFE -DFD_SETSIZE=204
+ rel=`uname -r`
+ case "$rel" in
+ 4*)
+- CFLAGS="$CFLAGS -pthread"
++ EXTCFLAGS+=" -pthread"
+ ;;
+ 5*)
+ LIBS="-lc_r $LEXLIB $LIBS"
+ ;;
+ *)
+- CFLAGS="$CFLAGS -pthread"
++ EXTCFLAGS+=" -pthread"
+ LIBS="-lc_r $LEXLIB $LIBS"
+ ;;
+ esac
+ RPATH_OPTION="-rpath"
+ ;;
+-bsdi*) CFLAGS="$CFLAGS -pthread -DBSDOS"
++bsdi*) EXTCFLAGS+=" -pthread -DBSDOS"
+ rel=`uname -r`
+ case "$rel" in
+ 4*)
+- CFLAGS="$CFLAGS -pthread"
++ EXTCFLAGS+=" -pthread"
+ ;;
+ 5*)
+ LIBS="-lc_r $LEXLIB $LIBS"
+ ;;
+ *)
+- CFLAGS="$CFLAGS -pthread"
++ EXTCFLAGS+=" -pthread"
+ LIBS="-lc_r $LEXLIB $LIBS"
+ ;;
+ esac
+ LIBS="$LEXLIB $LIBS"
+ CXX=g++
+ ;;
+-gnu*|linux*) CFLAGS="$CFLAGS -D_REENTRANT -DLINUX"
+- CXX=g++
++gnu*|linux*) EXTCFLAGS+=" -D_REENTRANT -DLINUX"
+ if test "$pthread_in" = "pthreads" ; then
+- CFLAGS="$CFLAGS -D_MIT_POSIX_THREADS"
++ EXTCFLAGS+=" -D_MIT_POSIX_THREADS"
+ LIBS="-lpthreads $LEXLIB -ldb $LIBS"
+ echo Probably you have MIT-threads. If yes, swich to LinuxThreads.
+ else
+@@ -369,11 +366,11 @@ gnu*|linux*) CFLAGS="$CFLAGS -D_REENTRANT -DLINUX"
+ if test "$large_files" = "yes" ; then
+ ## Linux ext2fs does'nt support large files yet.
+ AC_MSG_RESULT(Warning: Linux ext2fs doesn't support large files.)
+- CFLAGS="$CFLAGS -DWITH_LARGE_FILES -D_FILE_OFFSET_BITS=64 -D__USE_LARGEFILE64 -D__USE_FILE_OFFSET64"
++ EXTCFLAGS+=" -DWITH_LARGE_FILES -D_FILE_OFFSET_BITS=64 -D__USE_LARGEFILE64 -D__USE_FILE_OFFSET64"
+ fi
+ RPATH_OPTION="-rpath"
+ ;;
+-solaris*) CFLAGS="$CFLAGS -D_REENTRANT -DSOLARIS"
++solaris*) EXTCFLAGS="$CFLAGS -D_REENTRANT -DSOLARIS"
+ if test "X$LIBDB_REAL_PATH" != "X" ; then
+ LIBDB_NAME="-R$LIBDB_REAL_PATH $LIBDB_NAME"
+ fi
+@@ -390,7 +387,7 @@ solaris*) CFLAGS="$CFLAGS -D_REENTRANT -DSOLARIS"
+ LIBGB_NAME="$LIBGB_NAME -lstdc++"
+ fi
+ ;;
+- *) CFLAGS="$CFLAGS -mt"
++ *) EXTCFLAGS+="-mt"
+ SUNPRO_CC_VER=`CC -V 2>&1 | sed 's/.*C++ //' | sed 's/\..*//'`
+ if test "$SUNPRO_CC_VER" = "5" ; then
+ CXX="CC -compat=4 -w -fast -xO3 -DNO_MEMBER_TEMPLATES=1"
+@@ -407,14 +404,14 @@ solaris*) CFLAGS="$CFLAGS -D_REENTRANT -DSOLARIS"
+ ;;
+ esac
+ if test "$large_files" = "yes" ; then
+- CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DWITH_LARGE_FILES"
++ EXTCFLAGS=" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DWITH_LARGE_FILES"
+ fi
+ ;;
+ aix4*) AC_DEFINE(MODULES)
+ LIBS="$LIBS -ldl $LEXLIB"
+ SOFLAGS=-G
+ case "$CC" in
+- gcc*) CFLAGS="-D_THREAD_SAFE $CFLAGS"
++ gcc*) EXTCFLAGS+=" -D_THREAD_SAFE $CFLAGS"
+ CXX=g++
+ LIBS="$LIBS -lpthreads -lc_r"
+ ;;
+@@ -424,7 +421,7 @@ aix4*) AC_DEFINE(MODULES)
+ ;;
+ esac
+ if test "$large_files" = "yes" ; then
+- CFLAGS="$CFLAGS -D_LARGE_FILES -D_LARGE_FILE_API -DWITH_LARGE_FILES"
++ EXTCFLAGS+=" -D_LARGE_FILES -D_LARGE_FILE_API -DWITH_LARGE_FILES"
+ fi
+ ;;
+ esac
+@@ -432,14 +429,14 @@ esac
+ if test "X$MYSQL_PATH" != "X" ; then
+ LIBS="-L$MYSQL_PATH/lib -lmysqlclient $LIBS"
+ AC_DEFINE(HAVE_MYSQL)
+- CFLAGS="$CFLAGS -I$MYSQL_PATH/include"
++ CFLAGS+=" -I$MYSQL_PATH/include"
+ MYSQL_LIB="-L$MYSQL_PATH/lib -lmysqlclient"
+ fi
+
+ if test "X$PGSQL_PATH" != "X" ; then
+ LIBS="$LIBS -L$PGSQL_PATH/lib -lpg"
+ AC_DEFINE(HAVE_PGSQL)
+- CFLAGS="-I$PGSQL_PATH/include $LIBS"
++ CFLAGS+="-I$PGSQL_PATH/include $LIBS"
+ PGSQL_LIB="-L$PGSQL_PATH/lib -lpg"
+ fi
+
+@@ -601,7 +598,7 @@ if test "X$LIBDB_PATH" != "X" ; then
+ esac
+ fi
+
+-CFLAGS="$CFLAGS $LIBDB_INCL"
++EXTCFLAGS+=" $LIBDB_INCL"
+
+ AC_MSG_CHECKING(for GigaBASE)
+ if test "$LIBGB_PATH" = "no" ; then
+@@ -653,7 +650,7 @@ elif test -r "/usr/local/lib/libz.a"; then
+ AC_DEFINE(HAVE_ZLIB)
+ AC_MSG_RESULT(/usr/local/lib/libz.a)
+ if test "X`echo $CFLAGS | grep '\-I/usr/local/include'`" = "X"; then
+- CFLAGS="$CFLAGS -I/usr/local/include"
++ EXTCFLAGS+=" -I/usr/local/include"
+ fi
+ elif test -r "/usr/lib/libz.a"; then
+ LIBZ_NAME="/usr/lib/libz.a"
+@@ -689,7 +686,7 @@ EOF
+ res=`./confmain`
+ fi
+ if test "$res" = "yes"; then
+- CFLAGS="$CFLAGS -export-dynamic"
++ EXTCFLAGS+=" -export-dynamic"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+@@ -698,7 +695,7 @@ fi
+ rm -f confmain*
+
+ echo $CC
+-echo $CFLAGS
++echo $EXTCFLAGS
+ echo $LIBS
+
+ if test "${enable_oops_user+set}" != set; then
+@@ -728,8 +725,6 @@ AC_SUBST(MOD_EXT)
+ AC_SUBST(OPT_MODS)
+ AC_SUBST(STATIC_MODULES)
+ AC_SUBST(CHOWN)
+-AC_SUBST(LD)
+-AC_SUBST(LDFLAGS)
+ AC_SUBST(VER)
+ AC_SUBST(LIBGB_PATH)
+ AC_SUBST(LIBGB_NAME)
+@@ -795,6 +790,7 @@ AC_SUBST(LIBDB_INCL)
+ AC_SUBST(LIBZ_NAME)
+ AC_SUBST(EXTRASRC)
+ AC_SUBST(EXTLDFLAGS)
++AC_SUBST(EXTCFLAGS)
+
+ AC_DEFINE_UNQUOTED(OOPS_HOME, "$oops_prefix/oops")
+ AC_DEFINE_UNQUOTED(OOPS_SBINDIR, "$oops_sbindir")
+diff --git a/src/Makefile.in b/src/Makefile.in
+index b366c2f..0ac6aff 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -1,6 +1,4 @@
+-CC = @CC@
+-CXX = @CXX@
+-LDFLAGS = @LDFLAGS@
++EXTCFLAGS = @EXTCFLAGS@
+ EXTLDFLAGS = @EXTLDFLAGS@
+ INSTALL = @INSTALL@ @SETOWNER@
+ INSTALL_DATA = @INSTALL@ -m 644 @SETOWNER@
+@@ -29,13 +27,13 @@ EXTRAOBJS = $(EXTRASRC:.c=.o)
+
+ #CFLAGS = -Wall -ggdb -D_REENTRANT -D_POSIX_PTHREADS_SEMANTICS
+
+-CFLAGS = @CFLAGS@ -fPIE @DEFS@
++CFLAGS += -fPIE @DEFS@
+
+ VER=@VER@
+ OOPSPATH=@prefix@/oops
+
+ .c.o:
+- ${CC} -c ${CFLAGS} ${CDEFS} $<
++ ${CC} -c ${CFLAGS} ${EXTCFLAGS} ${CDEFS} $<
+
+ all: extras modules oops
+
+@@ -45,7 +43,7 @@ modules::
+ cd modules; $(MAKE)
+
+ oops: ${OBJS}
+- ${CXX} ${CFLAGS} ${OBJS} ${EXTLDFLAGS} ${LIBGB_PATH} ${LIBGB_NAME} ${OOPS_LIBS} ${LIBZ_NAME} ${OOPS_RPATH} -o oops
++ ${CXX} ${CFLAGS} ${EXTCFLAGS} ${OBJS} ${EXTLDFLAGS} ${LIBGB_PATH} ${LIBGB_NAME} ${OOPS_LIBS} ${LIBZ_NAME} ${OOPS_RPATH} -o oops
+
+ mkinstalldirs:
+ ../mkinstalldirs ${OOPSPATH} \
+@@ -150,7 +148,7 @@ version.h: version
+ echo "#define VERSION \""`cat version`"\""> version.h
+
+ lex.yy.o: lex.yy.c y.tab.h oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -c lex.yy.c
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -c lex.yy.c
+
+ lex.yy.c: parser.l
+ @LEX@ parser.l
+@@ -159,13 +157,13 @@ y.tab.c: parser.y
+ @YACC@ -d parser.y
+
+ y.tab.o: y.tab.c oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -c y.tab.c
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -c y.tab.c
+
+ malloc.o: malloc.c
+- ${CC} ${CFLAGS} ${CDEFS} -DEBUG -c malloc.c
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -DEBUG -c malloc.c
+
+ gnu_regex.o: gnu_regex.c
+- ${CC} ${CFLAGS} -DREGEX -c gnu_regex.c
++ ${CC} ${CFLAGS} ${EXTCFLAGS} -DREGEX -c gnu_regex.c
+
+ clean:
+ rm -f *o lex.yy.c y.tab.[ch] version.h oops DEADJOE
+diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in
+index d8e3c50..60c6b73 100644
+--- a/src/modules/Makefile.in
++++ b/src/modules/Makefile.in
+@@ -1,9 +1,4 @@
+-CC = @CC@
+-CXX = @CXX@
+ LIBS = @LIBS@
+-CFLAGS = @CFLAGS@ -fPIC @DEFS@
+-LDFLAGS = @LDFLAGS@
+-LD = @LD@
+ SOFLAGS = @SOFLAGS@
+ OPT_MODS = @OPT_MODS@
+ CXXCOMPFLAGS = @LIBGB_INCL@ @CXXCOMPFLAGS@
+@@ -15,27 +10,30 @@ LIBDB_NAME = @LIBDB_NAME@
+ MYSQL_LIB = @MYSQL_LIB@
+ PGSQL_LIB = @PGSQL_LIB@
+ EXTRASRC = @EXTRASRC@
++EXTCFLAGS = @EXTCFLAGS@
++
++CFLAGS += -fPIC @DEFS@
+
+ .SUFFIXES: .c .cpp .o .so
+
+ EXTRAOBJS = $(EXTRASRC:%c=../%o)
+
+ .c.o:
+- ${CC} ${CFLAGS} ${LIBDB_INCL} ${CDEFS} -c $<
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${LIBDB_INCL} ${CDEFS} -c $<
+ #
+ .o.so:
+ ${LD} $(SOFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
+
+ .c.so:
+- ${CC} ${CFLAGS} ${LIBDB_INCL} ${SOFLAGS} ${CDEFS} -c $<
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${LIBDB_INCL} ${SOFLAGS} ${CDEFS} -c $<
+ ${LD} $(SOFLAGS) $(LDFLAGS) -o $@ $(<:.c=.o) $(LIBS)
+
+ .cpp.o:
+- ${CXX} ${CFLAGS} ${SOFLAGS} ${CDEFS} $(CXXCOMPFLAGS) $< -o $*.a
++ ${CXX} ${CFLAGS} ${EXTCFLAGS} ${SOFLAGS} ${CDEFS} $(CXXCOMPFLAGS) $< -o $*.a
+ mv $*.a $*.o
+
+ .cpp.so:
+- ${CXX} ${CFLAGS} ${CXXSOFLAGS} ${CDEFS} $< @LIBGB_PATH@ @LIBGB_NAME@ $(LIBS) -o $@
++ ${CXX} ${CFLAGS} ${EXTCFLAGS} ${CXXSOFLAGS} ${CDEFS} $< @LIBGB_PATH@ @LIBGB_NAME@ $(LIBS) -o $@
+
+ all: log_dummy.@MOD_EXT@ \
+ err.@MOD_EXT@ \
+@@ -97,30 +95,30 @@ custom_log.@MOD_EXT@: custom_log.c ../modules.h ../oops.h
+ #berkeley_db_api.@MOD_EXT@: berkeley_db_api.c ../modules.h ../oops.h
+
+ berkeley_db_api.o: berkeley_db_api.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} ${LIBDB_INCL} -c berkeley_db_api.c -o berkeley_db_api.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} ${LIBDB_INCL} -c berkeley_db_api.c -o berkeley_db_api.o
+
+ berkeley_db_api.so: berkeley_db_api.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} ${LIBDB_INCL} -c berkeley_db_api.c -o berkeley_db_api.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} ${LIBDB_INCL} -c berkeley_db_api.c -o berkeley_db_api.o
+ ${LD} $(SOFLAGS) $(LDFLAGS) -L $(LIBDB_PATH)/lib berkeley_db_api.o -o berkeley_db_api.so $(LIBS) $(LIBDB_NAME)
+
+ gigabase_db_api.@MOD_EXT@: gigabase_db_api.cpp ../modules.h ../oops.h
+
+ oopsctl: oopsctl.c ../modules.h ../config.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} oopsctl.c ${EXTRAOBJS} ${LIBS} -o oopsctl
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} oopsctl.c ${EXTRAOBJS} ${LIBS} -o oopsctl
+
+ passwd_pgsql.so: passwd_sql.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
+ ${LD} $(SOFLAGS) $(LDFLAGS) -o passwd_pgsql.so passwd_pgsql.o $(LIBS) $(PGSQL_LIB)
+
+ passwd_mysql.so: passwd_sql.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -D__MYSQL -c passwd_sql.c -o passwd_mysql.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -D__MYSQL -c passwd_sql.c -o passwd_mysql.o
+ ${LD} $(SOFLAGS) $(LDFLAGS) -o passwd_mysql.so passwd_mysql.o $(LIBS) $(MYSQL_LIB)
+
+ passwd_pgsql.o: passwd_sql.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -D__PGSQL -c passwd_sql.c -o passwd_pgsql.o
+
+ passwd_mysql.o: passwd_sql.c ../modules.h ../oops.h
+- ${CC} ${CFLAGS} ${CDEFS} -D__MYSQL -c passwd_sql.c -o passwd_mysql.o
++ ${CC} ${CFLAGS} ${EXTCFLAGS} ${CDEFS} -D__MYSQL -c passwd_sql.c -o passwd_mysql.o
+
+
+ clean:
diff --git a/net-proxy/oops/files/oops-1.5.24-textrel.patch b/net-proxy/oops/files/oops-1.5.24-textrel.patch
new file mode 100644
index 000000000000..432a86d07435
--- /dev/null
+++ b/net-proxy/oops/files/oops-1.5.24-textrel.patch
@@ -0,0 +1,24 @@
+diff -Nru oops-1.5.23.orig/src/Makefile.in oops-1.5.23/src/Makefile.in
+--- oops-1.5.23.orig/src/Makefile.in 2006-03-06 22:14:53.000000000 +0200
++++ oops-1.5.23/src/Makefile.in 2006-03-06 22:17:58.954199750 +0200
+@@ -29,7 +29,7 @@
+
+ #CFLAGS = -Wall -ggdb -D_REENTRANT -D_POSIX_PTHREADS_SEMANTICS
+
+-CFLAGS = @CFLAGS@ @DEFS@
++CFLAGS = @CFLAGS@ -fPIE @DEFS@
+
+ VER=@VER@
+ OOPSPATH=@prefix@/oops
+diff -Nru oops-1.5.23.orig/src/modules/Makefile.in oops-1.5.23/src/modules/Makefile.in
+--- oops-1.5.23.orig/src/modules/Makefile.in 2006-03-06 22:14:52.000000000 +0200
++++ oops-1.5.23/src/modules/Makefile.in 2006-03-06 22:18:21.967638000 +0200
+@@ -1,7 +1,7 @@
+ CC = @CC@
+ CXX = @CXX@
+ LIBS = @LIBS@
+-CFLAGS = @CFLAGS@ @DEFS@
++CFLAGS = @CFLAGS@ -fPIC @DEFS@
+ LDFLAGS = @LDFLAGS@
+ LD = @LD@
+ SOFLAGS = @SOFLAGS@
diff --git a/net-proxy/oops/files/oops-1.5.24_pre20050503+db-5.0.patch b/net-proxy/oops/files/oops-1.5.24_pre20050503+db-5.0.patch
new file mode 100644
index 000000000000..190944828ee8
--- /dev/null
+++ b/net-proxy/oops/files/oops-1.5.24_pre20050503+db-5.0.patch
@@ -0,0 +1,13 @@
+Index: oops-1.5.23/src/modules/berkeley_db_api.c
+===================================================================
+--- oops-1.5.23.orig/src/modules/berkeley_db_api.c
++++ oops-1.5.23/src/modules/berkeley_db_api.c
+@@ -283,7 +283,7 @@ int rc;
+ dbp->set_bt_compare(dbp, my_bt_compare);
+ dbp->set_pagesize(dbp, OOPS_DB_PAGE_SIZE);
+ rc = dbp->open(dbp,
+- #if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR > 0
++ #if DB_VERSION_MAJOR > 4 || DB_VERSION_MINOR > 0
+ NULL,
+ #endif
+ dbname,
diff --git a/net-proxy/oops/files/oops.cfg b/net-proxy/oops/files/oops.cfg
new file mode 100644
index 000000000000..3dc96fad2331
--- /dev/null
+++ b/net-proxy/oops/files/oops.cfg
@@ -0,0 +1,654 @@
+##
+# nameservers. Multiple nameserver entries are allowed.
+##
+
+nameserver 127.0.0.1
+
+##
+# Ports and address to use for HTTP and ICP
+##
+
+#bind ip_addr|hostname
+http_port 3128
+icp_port 3130
+
+##
+## Change euid to that user
+##
+## WARNING: if you use userid, then you will not be able to open new sockets on
+## reserved (< 1024) ports and will not be able to return to original userid.
+##
+userid oops
+
+##
+## Change root directory. If don't know exactly what are you doing -
+## leave commented.
+#chroot ???
+
+##
+# Logfile - just debug output
+# When used in form 'filename [{N S}] [[un]buffered]'
+# will be rotated automatically (up to N files up to S bytes in size)
+##
+logfile /var/log/oops/oops.log
+#logfile /usr/oops/logs/oops.log { 3 1m } unbuffered
+
+##
+# Accesslog - the same as for squid. Re rotating - see note for logfile
+##
+accesslog /var/log/oops/oops.access
+#accesslog /usr/oops/logs/access.log
+
+##
+# Pidfile. for kill -1 `cat oops.pid` and for locking.
+##
+pidfile /var/run/oops/oops.pid
+
+##
+# Statistics file - once per minute flush some statistics to this file
+##
+statistics /var/log/oops/oops_statfile
+
+##
+# icons - where to find link.gif, dir.gif, binary.gif and so on (for
+# ftp lists). If omitted - name of running host will be used. But
+# using explicit names is better way.
+##
+
+#icons-host ss5.paco.net
+#icons-port 80
+#icons-path icons
+
+##
+# When total object volume in memory grow over this (this mean
+# that cachable data from network came faster then we can save on disk)
+# drop objects (without attempt to save on disk).
+##
+mem_max 64m
+
+##
+# Hint, how much cached objects keep in memory.
+# When total amount become larger then this limit - start
+# swaping cachable objects to disk
+##
+lo_mark 8m
+
+##
+# start random early drop when number of clients reach some level.
+# this can protect you against attacks and against situation when
+# oops cant handle too much connections. By default - 0 (or no limits).
+##
+#start_red 0
+
+##
+# refuse any connection when number of already connected clients reach some
+# level. By default - 0 (or no limits).
+##
+#refuse_at 0
+
+##
+# if document contain no Expires: then expire after (in days)
+# ftp-expire-value - expire time for ftp (in days)
+##
+default-expire-value 7
+ftp-expire-value 7
+
+##
+# Maximum expite time - doc will not keep in cache more then
+# this number of days (except if defaiult-expire-value used for this documeny)
+##
+max-expire-value 30
+
+##
+# in which proportion time passed since last document modification
+# will accounted in expire time. For example, if last-modified-factor=5
+# and there was passed 10 days since document modification, then expiration
+# will be setted to 2 days in future (but no nore then max-expire-value)
+##
+last-modified-factor 5
+
+##
+# If you want not cache replies without Last-Modified:
+# uncomment next line.
+##
+#dont_cache_without_last_modified
+
+# run expire every ( in hours )
+##
+default-expire-interval 1
+
+##
+# icp_timeout - how long to wait icp reply from peer (in ms, e.g 1000 = 1sec)
+##
+icp_timeout 1000
+
+##
+# start disk cache cleanup when free space will be (in %%)
+# As on the very large storages 1% is large space (1% from 9G is
+# 90M), then on such storages you can set both disk-low-free and
+# disk-ok-free to 0. Oops will start cleanup if it have less then 256
+# free blocks(1M), and stop when it reach 512 bree blocks(2M).
+##
+disk-low-free 3
+
+##
+# stop disk cache cleanup when free space will be (in %%)
+##
+disk-ok-free 5
+
+##
+# Force_http11 - turn on http/1.1 for each request to document server
+# This option required if module 'vary' used.
+##
+force_http11
+
+##
+# Always check document freshness, even it is not stale or expired
+# This force Oops behave like squid - first check cached doc, then send
+##
+#always_check_freshness
+
+##
+# If user-requestor aborted connection to proxy, but there was received more
+# then some percent ot the document - then continue.
+# default value - 75%
+##
+force_completion 75
+
+##
+# maximum size of the object we will cache
+##
+maxresident 1m
+
+insert_x_forwarded_for yes
+insert_via yes
+
+##
+# If host have several interfaces or aliases, use exactly
+# this name when connecting to server:
+##
+#connect-from proxy.paco.net
+
+##
+# ACLs - currently: urlregex, urlpath, usercharset
+# port, dstdom, dstdom_regex, src_ip, time
+# each acl can be loaded from file.
+##
+#acl CACHEABLECGI urlregex http://www\.topping\.com\.ua/cgi-bin/pingstat\.cgi\?072199131826
+#acl WWWPACO urlregex www\.paco\.net
+#acl NO_RLH urlregex zipper
+#acl REWRITEPORTS urlregex (www.job.ru|www.sale.ru)
+#acl REWRITEHOSTS urlregex (www.asm.ru|zipper\.paco)
+#acl WINUSER usercharset windows-1251
+#acl DOSUSER usercharset ibm866
+#acl UNIXUSER usercharset koi8-r
+#acl RUS dstdom ru su
+#acl UKR dstdom ua
+#acl BADPORTS port [0:79],110,138,139,513,[6000:6010]
+#acl BADDOMAIN dstdom baddomain1.com baddomain2.com
+#acl BADDOMREGEX dstdom_regex baddomain\.((com)|(org))
+#acl LOCAL_NETWORKS src_ip include:/etc/oops/acl_local_networks
+#acl BADNETWORKS src_ip 192.168.10/24
+#acl WORKTIME time Mon,Tue:Fri 0900:1800
+#acl HTMLS content_type text/html
+#acl USERS username joe
+acl ADMINS src_ip 127.0.0.1
+acl PURGE method PURGE
+
+##
+# acl_deny [!]ACL [!]ACL ...
+# deny access for combined acl
+##
+acl_deny PURGE !ADMINS
+
+##
+# Never cache objects with URL, containing...
+##
+stop_cache ?
+stop_cache cgi-bin
+
+##
+# stop_cache_acl [!]ACL [!]ACL ...
+# Stop cache using ACL
+##
+#stop_cache_acl WWWPACO
+
+##
+# refresh_pattern ACLNAME min percent max
+# 'min' and 'max' are limits between Expite time will be assigned
+# Iff document have no expire: header and have Last-Modified: header
+# we will use 'percent' to estimate how far in the future document will
+# be expired.
+##
+#refresh_pattern CACHEABLECGI 20 50% 200
+#refresh_pattern WWWPACO 0 0% 0
+
+##
+# bind_acl {hostname|ip} [!]ACL [!]ACL ...
+# bind to given address when connecting to server
+# if request match ACLNAME
+##
+#bind_acl outname1 RUS
+#bind_acl outname2 UKR
+
+##
+# Always check document freshness, but now on acl basis.
+# You can have several such lines.
+## This example will force to check freshness only for html documents.
+#always_check_freshness_acl HTMLS
+
+##
+# line 'parent ....' will force all connections (except to destinations
+# in local-domain or local-networks) go through parent host
+##
+#parent proxy.paco.net 3128
+
+##
+# parent_auth login:password
+# if your parent require login/password from your proxy
+##
+#parent_auth login:password
+
+# ICP peer's
+#peer proxy.paco.net 3128 3130 {
+## ^^^ peer name ^http port ^icp port
+## icp port can be 0, in which case we assume this is non-icp
+## proxy. We assume that non-icp peer act like parent which
+## answer MISS all th etime. If this peer refused connection
+## then it goes down for 60 seconds - it doesn't take part in
+## any peer-related decisions.
+# sibling ;
+## if this peer require login/password from your proxy
+# my_auth my_login:my_password;
+## we will send requests for these domains
+# allow dstdomain * ;
+## we will NOT send requests for these domains
+# deny dstdomain * ;
+## we will send only requests matched to this acl
+# peer_access [!]ACL1 [!]ACL2
+## if (and only if) peer is not icp-capable, then , in case of fail we
+## leave failed peer alone for the down_timeout interval (in seconds).
+## Then we will try again
+# down_timeout 60 ;
+#}
+
+#peer proxy.gu.net 80 3130 {
+# parent ;
+# allow dstdomain * ;
+# deny dstdomain paco.net odessa.ua ;
+#}
+
+##
+# Never use "parent" when connecting to server in these domains
+##
+local-domain odessa.ua od.ua
+local-domain odessa.net paco.net netsy.net netsy.com te.net.ua
+
+local-networks 195.114.128/19 10/8 192.168/16
+
+#
+# Groups
+#
+
+group main {
+##
+# You can describe group ip adresses here, or using src_ip acl's
+# with networks_acl directive.
+# networks_acl always have higher preference (checked first) and
+# are checked in the order of appearance.
+# If host wil not fall in any networks_acl - we check in networks.
+# networks are ordered by masklen - longest masks(most specific networks)
+# are checked first.
+##
+
+#Next line enables redirection features and transparent proxying
+ redir_mods fastredir transparent;
+#Change this next line to list the IP's of everyone in this group
+ networks 195.114.128/19 127/8 195.5.40.93/32 ;
+
+# networks_acl LOCAL_NETWORKS !BAD_NETWORKS ;
+ badports [0:79],110,138,139,513,[6000:6010] ;
+ miss allow;
+##
+# denytime - when deny access to proxy server for this group
+##
+# denytime Sat,Sun 0642:1000
+# denytime Mon,Thu:Fri,Sun 0900:2100
+##
+# Authentication modules for this group (seprated by space)
+##
+# auth_mods passwd_file;
+
+##
+# URL-Redirector (porno, ad. filtering) modules for this group (separate by
+# space)
+##
+# redir_mods redir;
+
+
+##
+# limit whole group to 8Kbytes per sec
+##
+# bandwidth 8k;
+
+##
+# limit each host 8Kbytes per sec
+##
+# per_ip_bw 8k;
+
+##
+# limit connections number from each host
+#
+# per_ip_conn 8;
+
+##
+# limit request rate from this group (requests per second). This is crude,
+# and must be used as last resort
+##
+# maxreqrate 100;
+
+##
+# icp acl ...
+##
+# icp {
+# allow dstdomain * ;
+# }
+
+##
+# http acl
+##
+ http {
+##
+# http acls can be in form 'allow dstdomain domainname domainname ... domainname ;
+# or in form 'allow dstdomain include:filename ;
+# where filename - name of the file, which contain
+# domainnames (one per line, # - comment line);
+# the same rules for 'deny'
+##
+ allow dstdomain * ;
+ }
+}
+
+group world {
+ networks 0/0;
+ badports [0:79],110,138,139,513,[6000:6010];
+ http {
+ deny dstdomain * ;
+ }
+ icp {
+ deny dstdomain * ;
+ }
+}
+
+##
+# Storage section
+# Change this for your own situation. Oops can work without
+# storages (using only in-memory cache).
+##
+
+##
+# Storage description (can be several)
+# path - filename of storage. can be raw device (be carefull!)
+# size - size (of storage file). Can be smthng like 100k or 200m or 4g
+# Size used only durig format process (oops -z).
+##
+
+storage {
+ path /var/lib/oops/storage/oops_storage ;
+# Size of the storage. Can be in bytes or 'auto'. Auto is
+# usefull for pre-created storages or disk slices.
+# NOTE: 'size auto' won't work for Linux on disk slices.
+# To use large ( > 2G ) files run configure with --enable-large-files
+
+ size 100m ;
+
+# You have to use 'offset' in the case your raw device (or slice)
+# require that. For example if you use entire disk as storage
+# under AIX and Soalris/Sparc - you have to skip first block
+# which contain disk label (that is storage will start from
+# next 512 sector.
+# offset 512;
+}
+
+#storage {
+# path /usr/oops/storages/oops_storage1 ;
+# size 600m ;
+#}
+
+module lang {
+
+ default_charset eng
+
+ # Recode tables and other charset stuff
+ CharsetRecodeTable windows-1251 /etc/oops/tables/koi-win.tab
+ CharsetRecodeTable ISO-8859-5 /etc/oops/tables/koi-iso.tab
+ CharsetRecodeTable ibm866 /etc/oops/tables/koi-alt.tab
+ CharsetAgent windows-1251 AIR_Mosaic IWENG/1 MSIE WinMosaic (Windows (WinNT;
+ CharsetAgent windows-1251 (Win16; (Win95; (Win98; (16-bit) Opera/3.0
+ CharsetAgent ibm866 DosLynx Lynx2/OS/2
+}
+
+module err {
+ # error reporting module
+
+ # template
+ template /etc/oops/err_template.html
+
+ # Language to use when generate Error messages
+ lang eng
+}
+
+module passwd_file {
+ # password proxy-authentication module
+ #
+ # default realm, scheme and passwd file
+ # the only thing you really want to change is 'file' and 'template'
+ # you don't have to reconfigure oops if you only
+ # change content passwd file or template: oops authomatically
+ # reload file
+
+ realm oops
+ scheme Basic
+ file /etc/oops/passwd
+ template /etc/oops/auth_template.html
+}
+
+module passwd_pgsql {
+ # proxy authentication using postgresql
+ # "Ivan B. Yelnikov" <bahek@khspu.ru>
+ #
+ # host - host where database live,
+ # user,password - login and password for database access
+ # database - database name
+ # select - file with request body
+ # template - file with html doc which user will receive
+ # during authentication
+ scheme Basic
+ realm oops
+ host <host address/name>
+ user <database_user>
+ password <user_password>
+ database <database_name>
+ select /etc/oops/select.sql
+ template /etc/oops/auth_template.html
+}
+
+module passwd_mysql {
+ # proxy authentication usin mysql
+ # "Ivan B. Yelnikov" <bahek@khspu.ru>
+ #
+ # look passwd_pgsql description
+ #
+ scheme Basic
+ realm oops
+ host <host address/name>
+ user <database_user>
+ password <user_password>
+ database <database_name>
+ select /etc/oops/select.sql
+ template /etc/oops/auth_template.html
+}
+
+module redir {
+ # file - regex rules.
+ # each line consist of one or two fields (separated with white space)
+ # 1. regular expression
+ # 2. redirect-location
+ # if requested (by client) url match regex then
+ # if we have redirect-url then we send '302 Moved Temporary' to
+ # redirect-location
+ # if we have no redirect-location (i.e. we have no 2-nd field)
+ # then we send template.html (%R will be substituted by rule)
+ # or some default message if we have no template.
+ # you don't have to reconfigure oops each time
+ # you edit rules or template, they will be reloaded authomatically
+
+ file /etc/oops/redir_rules
+ template /etc/oops/redir_template.html
+## mode control will redir rewrite url or send Location: header
+## with new location. Values are 'rewrite' or 'bounce'
+# mode rewrite
+
+ # This module can process requests which come on http_port
+ # and/or on different port. For example, you wish oops
+ # bind on two ports - 3128 and 3129, and all requests which come on
+ # port 3129 must pass through filters, and requests which come on port
+ # 3128 (common http_port) - not. Then you have to uncomment next line
+ # myport 3129
+ # which means exactly: bind oops to additional port 3129 and process
+ # requests which come on this port.
+ # myport can be in the next form:
+ # myport [{hostname|ip_addr}:]port
+}
+
+module oopsctl {
+ # path to oopsctl unix socket
+ socket_path /var/run/oops/oopsctl
+ # time to auto-refresh page (seconds)
+ html_refresh 300
+}
+
+##
+## This module hadnle 'Vary' header - it was written to better support
+## Russian Apache
+##
+module vary {
+ user-agent by_charset
+ accept-charset ignore
+}
+
+##
+## WWW -accelerator. To use - add word accel to
+## redir_mods line for
+## the group 'world' description
+## You will find more description of this module in supplied accel_maps file
+##
+#module accel {
+# myport can have next form:
+# myport [{hostname|ip_addr}:]port ...
+# myport 80
+##
+# allow access to proxy through accel module.
+# Deny will stop proxy through accel completely, regardless
+# of any other access rules
+##
+# proxy_requests deny
+#
+##
+# File with maps and other config directives
+# Checked once per minute. No need to restart oops if maps changed
+##
+# file /etc/oops/accel_maps
+#}
+
+##
+## Transparent proxy. To use - add word 'transparent' into
+## redir_mods line for your group.
+## in the your local (or any other) group description
+##
+#module transparent {
+# myport can have next form:
+# myport [{hostname|ip_addr}:]port ...
+# myport 3128
+#}
+
+##
+## %h - remote ip address
+## %A - local ip address
+## %d - ip address of source (peer or document server)
+## %l - remote logname from identd (not suported now)
+## %U - remote user (from 'Authorization' header)
+## %u - remote user (from proxy-auth)
+## %{format}t - time with optional {format} (for strftime)
+## %t - time with standard format %d/%b/%Y:%T %Z
+## %r - request line
+## %s - status code
+## %b - bytes received
+## %{header}i - value of header in request
+## %m - HIT/MISS
+## %k - hierarchy (DIRECT/NONE/...)
+##
+## directive buffered can be followed by size of the buffer,
+## like 'buffered 32000'
+##
+#module customlog {
+# path /usr/local/oops/logs/access_custom1
+# format "%h %l %u %t \"%r\" %>s %b"
+# squid httpd mode log emulation
+# format "%h %u %l %t \"%r\" %s %b %m:%k"
+# buffered
+# path /usr/local/oops/logs/access_custom2
+# format "%h->%A %l %u [%t] \"%r\" %s %b \"%{User-Agent}i\""
+#}
+
+module berkeley_db {
+ ##
+ # dbhome - directory where all DB indexes reside. Use full path
+ # this directory must exist.
+ # dbname - filename for index file. Use just filename (no full path)
+ ##
+
+ dbhome /var/lib/oops/db
+ dbname dburl
+
+ ##
+ # This parameter specifies internal cache size of BerkeleyDB.
+ # Increase this parameter for best performance (if you have a lot of memory).
+ # For example: db_cache_mem 64m
+ # Default and minimum value: 4m
+ #
+ # This memory pool is not part of memory pool, specified by mem_max parameter.
+ # WARNING: the amount of RAM used by oops will be increased by the value of
+ # this parameter.
+ ##
+ #db_cache_mem 4m
+
+}
+
+#module gigabase_db {
+# This module enable GigaBASE as database engine.
+# You can use berkeley_db or gigabase_db, not both.
+# Also, important notice - indexes created with different modules
+# are not compatible.
+# ##
+# # dbhome - directory where all DB indexes reside. Use full path
+# # this directory must exist.
+# # dbname - filename for index file. Use just filename (no full path)
+# ##
+#
+# dbhome /var/lib/oops/db
+# dbname gdburl
+#
+# ##
+# # This parameter specifies internal cache size of BerkeleyDB.
+# # Increase this parameter for best performance (if you have a lot of memory).
+# # For example: db_cache_mem 64m
+# # Default and minimum value: 4m
+# #
+# # This memory pool is not part of memory pool, specified by mem_max parameter.
+# # WARNING: the amount of RAM used by oops will be increased by the value of
+# # this parameter.
+# ##
+# #db_cache_mem 4m
+#
+#}
diff --git a/net-proxy/oops/files/oops.initd b/net-proxy/oops/files/oops.initd
new file mode 100644
index 000000000000..fec45e6afda4
--- /dev/null
+++ b/net-proxy/oops/files/oops.initd
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting oops"
+ /usr/sbin/oopsctl start &> /dev/null
+ eend $?
+}
+
+status() {
+ if service_started "${myservice}"; then
+ /usr/sbin/oopsctl stat
+ fi
+ return 0
+}
+
+stop() {
+ ebegin "Stopping oops"
+ /usr/sbin/oopsctl stop &> /dev/null
+ eend $?
+}
diff --git a/net-proxy/oops/files/rotate-logs.patch b/net-proxy/oops/files/rotate-logs.patch
new file mode 100644
index 000000000000..236aa4b60926
--- /dev/null
+++ b/net-proxy/oops/files/rotate-logs.patch
@@ -0,0 +1,12 @@
+diff -Nru oops-1.5.23.orig/src/rotate_logs.c oops-1.5.23/src/rotate_logs.c
+--- oops-1.5.23.orig/src/rotate_logs.c 2001-08-31 15:30:30.000000000 +0200
++++ oops-1.5.23/src/rotate_logs.c 2009-07-12 12:47:56.000000000 +0200
+@@ -32,7 +32,7 @@
+ if ( !num ) {
+ /* if no number of logs configured just reopen file */
+ close(fb->fd);
+- fb->fd = open(name, O_WRONLY|O_APPEND|O_CREAT);
++ fb->fd = open(name, O_WRONLY|O_APPEND|O_CREAT, 0660);
+ return;
+
+ }
diff --git a/net-proxy/oops/metadata.xml b/net-proxy/oops/metadata.xml
new file mode 100644
index 000000000000..3a9154222f27
--- /dev/null
+++ b/net-proxy/oops/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+<longdescription>An advanced multithreaded caching web proxy</longdescription>
+</pkgmetadata>
diff --git a/net-proxy/oops/oops-1.5.24_pre20050503-r4.ebuild b/net-proxy/oops/oops-1.5.24_pre20050503-r4.ebuild
new file mode 100644
index 000000000000..daad5346c82a
--- /dev/null
+++ b/net-proxy/oops/oops-1.5.24_pre20050503-r4.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils flag-o-matic toolchain-funcs autotools user
+
+MY_P="${PN}-1.5.23"
+
+DESCRIPTION="An advanced multithreaded caching web proxy"
+HOMEPAGE="http://zipper.paco.net/~igor/oops.eng/"
+SRC_URI="http://zipper.paco.net/~igor/oops/${MY_P}.tar.gz
+ mirror://gentoo/${P}.patch.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 sparc x86"
+IUSE=""
+
+RDEPEND="dev-libs/libpcre
+ >=sys-libs/db-3"
+DEPEND="${RDEPEND}
+ sys-devel/flex"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ enewgroup oops
+ enewuser oops -1 -1 /var/lib/oops oops
+}
+
+src_prepare() {
+ epatch "${WORKDIR}/${P}.patch"
+ epatch "${FILESDIR}/${P/_*}-textrel.patch"
+ epatch "${FILESDIR}/${P/_*}-pthread-rwlock.patch"
+ epatch "${FILESDIR}/modules-as-needed.patch"
+ epatch "${FILESDIR}/implicit-decl.patch"
+ epatch "${FILESDIR}/libpcreposix.patch"
+ epatch "${FILESDIR}/rotate-logs.patch"
+ epatch "${FILESDIR}/${P}+db-5.0.patch"
+ sed -i -e 's:y\.tab\.h:y.tab.c:' src/Makefile.in
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --prefix=/usr \
+ --libdir=/usr/$(get_libdir)/oops \
+ --enable-oops-user=oops \
+ --sysconfdir=/etc/oops \
+ --sbindir=/usr/sbin \
+ --with-regexp=pcre \
+ --localstatedir=/var/run/oops \
+ --enable-large-files \
+ --with-zlib=-lz \
+ || die "configure problem"
+
+ sed -i -e '/STRERROR_R/d' src/config.h.in
+ sed -i \
+ -e "s|OOPS_LIBDIR = /usr/$(get_libdir)/oops|OOPS_LIBDIR = ${D}/usr/$(get_libdir)/oops|" \
+ -e "s|OOPS_SBINDIR = /usr/sbin|OOPS_SBINDIR = ${D}/usr/sbin|" \
+ -e "s|OOPS_SYSCONFDIR = /etc/oops|OOPS_SYSCONFDIR = ${D}/etc/oops|" \
+ -e "s|OOPS_LOCALSTATEDIR = /var/run/oops|OOPS_LOCALSTATEDIR = ${D}/var/run/oops|" \
+ -e "s|OOPSPATH=/usr/oops|OOPSPATH=${D}/usr/oops|" \
+ src/Makefile
+ sed -i \
+ -e "s|^\(LDFLAGS *= *\)${LDFLAGS}|\1$(raw-ldflags)|" \
+ src/modules/Makefile #modules makefile use ld directly
+}
+
+src_install() {
+ dodir /usr/sbin
+ einstall || die "install problem"
+
+ newinitd "${FILESDIR}/oops.initd" oops
+ diropts -m0750 -o root -g oops
+ dodir /etc/oops
+ insinto /etc/oops
+ doins "${FILESDIR}/oops.cfg"
+
+ diropts -m0755 -o oops -g oops
+ keepdir /var/run/oops
+ diropts -m0770 -o oops -g oops
+ keepdir /var/log/oops
+ keepdir /var/lib/oops/storage
+ keepdir /var/lib/oops/db
+
+ # cleanups
+ rm -rf "${D}/usr/oops"
+ rm -rf "${D}/usr/lib/oops/modules"
+}
+
+pkg_postinst() {
+ #Set proper owner/group if installed from binary package
+ chgrp oops "${ROOT}/etc/oops"
+ chown -R oops:oops "${ROOT}/var/run/oops" "${ROOT}/var/log/oops" "${ROOT}/var/lib/oops"
+}
diff --git a/net-proxy/oops/oops-1.5.24_pre20050503-r5.ebuild b/net-proxy/oops/oops-1.5.24_pre20050503-r5.ebuild
new file mode 100644
index 000000000000..e14de892a7f0
--- /dev/null
+++ b/net-proxy/oops/oops-1.5.24_pre20050503-r5.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils flag-o-matic toolchain-funcs autotools user
+
+MY_P="${PN}-1.5.23"
+
+DESCRIPTION="An advanced multithreaded caching web proxy"
+HOMEPAGE="http://zipper.paco.net/~igor/oops.eng/"
+SRC_URI="http://zipper.paco.net/~igor/oops/${MY_P}.tar.gz
+ mirror://gentoo/${P}.patch.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/libpcre
+ >=sys-libs/db-3"
+DEPEND="${RDEPEND}
+ sys-devel/flex"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ enewgroup oops
+ enewuser oops -1 -1 /var/lib/oops oops
+}
+
+src_prepare() {
+ epatch "${WORKDIR}/${P}.patch"
+ epatch "${FILESDIR}/${P/_*}-textrel.patch"
+ epatch "${FILESDIR}/${P/_*}-pthread-rwlock.patch"
+ epatch "${FILESDIR}/modules-as-needed.patch"
+ epatch "${FILESDIR}/implicit-decl.patch"
+ epatch "${FILESDIR}/libpcreposix.patch"
+ epatch "${FILESDIR}/rotate-logs.patch"
+ epatch "${FILESDIR}/${P}+db-5.0.patch"
+ epatch "${FILESDIR}/${P/_*}-respect-flags.patch"
+ sed -i -e 's:y\.tab\.h:y.tab.c:' src/Makefile.in
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --prefix=/usr \
+ --libdir=/usr/$(get_libdir)/oops \
+ --enable-oops-user=oops \
+ --sysconfdir=/etc/oops \
+ --sbindir=/usr/sbin \
+ --with-regexp=pcre \
+ --localstatedir=/run/oops \
+ --enable-large-files \
+ --with-zlib=-lz \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getCC)"
+
+ sed -i -e '/STRERROR_R/d' src/config.h.in || die
+ sed -i \
+ -e "s|OOPS_LIBDIR = /usr/$(get_libdir)/oops|OOPS_LIBDIR = ${D}/usr/$(get_libdir)/oops|" \
+ -e "s|OOPS_SBINDIR = /usr/sbin|OOPS_SBINDIR = ${D}/usr/sbin|" \
+ -e "s|OOPS_SYSCONFDIR = /etc/oops|OOPS_SYSCONFDIR = ${D}/etc/oops|" \
+ -e "s|OOPS_LOCALSTATEDIR = /var/run/oops|OOPS_LOCALSTATEDIR = ${D}/run/oops|" \
+ -e "s|OOPSPATH=/usr/oops|OOPSPATH=${D}/usr/oops|" \
+ src/Makefile || die
+ sed -i \
+ -e "s|^\(LDFLAGS *= *\)${LDFLAGS}|\1$(raw-ldflags)|" \
+ src/modules/Makefile || die #modules makefile use ld directly
+}
+
+src_compile() {
+ emake \
+ AR="$(tc-getAR)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getCC)" \
+ RANLIB=":" \
+ STRIP=":"
+}
+
+src_install() {
+ dodir /usr/sbin
+ einstall || die "install problem"
+
+ newinitd "${FILESDIR}/oops.initd" oops
+ diropts -m0750 -o root -g oops
+ dodir /etc/oops
+ insinto /etc/oops
+ doins "${FILESDIR}/oops.cfg"
+
+ diropts -m0755 -o oops -g oops
+ keepdir /run/oops
+ diropts -m0770 -o oops -g oops
+ keepdir /var/log/oops
+ keepdir /var/lib/oops/storage
+ keepdir /var/lib/oops/db
+
+ # cleanups
+ rm -rf "${D}/usr/oops"
+ rm -rf "${D}/usr/lib/oops/modules"
+}
+
+pkg_postinst() {
+ #Set proper owner/group if installed from binary package
+ chgrp oops "${ROOT}/etc/oops"
+ chown -R oops:oops "${ROOT}/run/oops" "${ROOT}/var/log/oops" "${ROOT}/var/lib/oops"
+}