--- bopm-3.1.3.orig/src/libopm/config.guess +++ bopm-3.1.3/src/libopm/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. -timestamp='2006-02-23' +timestamp='2009-12-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -26,16 +27,16 @@ # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -55,8 +56,9 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -160,6 +162,7 @@ arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -168,7 +171,7 @@ arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -210,7 +213,7 @@ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} @@ -322,14 +325,33 @@ case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -530,7 +552,7 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -638,7 +660,7 @@ # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -770,6 +792,8 @@ case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac @@ -777,10 +801,7 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:MSYS_NT-*:*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -790,15 +811,24 @@ i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[345]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[345]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -828,7 +858,31 @@ i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) @@ -840,6 +894,17 @@ frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -849,74 +914,33 @@ m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips64 - #undef mips64el + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + padre:Linux:*:*) + echo sparc-unknown-linux-gnu exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level @@ -926,8 +950,11 @@ *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -947,69 +974,9 @@ x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1038,7 +1005,7 @@ i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1082,8 +1049,11 @@ pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1121,6 +1091,16 @@ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1133,7 +1113,7 @@ rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1196,6 +1176,9 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1205,6 +1188,15 @@ SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1214,6 +1206,16 @@ *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1295,6 +1297,9 @@ i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1455,9 +1460,9 @@ the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be --- bopm-3.1.3.orig/src/libopm/config.sub +++ bopm-3.1.3/src/libopm/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. -timestamp='2006-02-23' +timestamp='2010-01-22' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -31,13 +32,16 @@ # Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -71,8 +75,9 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -121,6 +126,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -147,10 +153,13 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -240,20 +249,24 @@ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -266,6 +279,7 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -274,22 +288,22 @@ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m32c) + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -318,25 +332,28 @@ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ + | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -357,23 +374,27 @@ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) ;; - m32c-*) + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -437,6 +458,10 @@ basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -445,10 +470,26 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -477,8 +518,8 @@ basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -516,6 +557,10 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -670,6 +715,14 @@ basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -681,10 +734,17 @@ basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -811,6 +871,14 @@ basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -912,6 +980,10 @@ sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -923,6 +995,9 @@ basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -1012,6 +1087,15 @@ basic_machine=tic6x-unknown os=-coff ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1087,6 +1171,10 @@ basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1125,10 +1213,10 @@ we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1175,6 +1263,9 @@ # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1195,10 +1286,11 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1207,7 +1299,7 @@ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1217,7 +1309,7 @@ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1347,6 +1439,11 @@ -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; -none) ;; *) @@ -1369,6 +1466,12 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1378,9 +1481,9 @@ arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1406,6 +1509,9 @@ m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1535,7 +1641,7 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) --- bopm-3.1.3.orig/debian/bopm.lintian-overrides +++ bopm-3.1.3/debian/bopm.lintian-overrides @@ -0,0 +1,4 @@ +# /etc/bopm/bopm.conf is owned by user irc group root and should not be world +# readable which is why we use 0640 file permission. +bopm: non-standard-file-perm etc/bopm/bopm.conf 0640 != 0644 + --- bopm-3.1.3.orig/debian/bopm.1 +++ bopm-3.1.3/debian/bopm.1 @@ -0,0 +1,26 @@ +.TH BOPM "1" "November 2002" "BOPM 3.0" "User Commands" +.SH NAME +BOPM \- Blitzed Open Proxy Monitor +.SH DESCRIPTION +BOPM, also known as the Blitzed Open Proxy Monitor, is an IRC bot which +requires operator privileges to scan the clients connecting to your +IRC server for open proxies. +.TP +\fB\-c\fR +Path to the configuration file. By default BOPM reads `/etc/bopm/bopm.conf', +but `\-c CONFNAME' will cause BOPM to read `/etc/bopm/CONFNAME.conf' instead. +The primary use for this is to run multiple BOPMs from one directory. +.TP +\fB\-d\fR +Debug mode. BOPM will not fork, and will write +logs to stderr. Multiple \fB\-d\fR increase the debug level. +.TP +\fB\-v\fR +Specifies the path where the logfile should be saved to. By default BOPM +saves its logfile to `/var/log/bopm/CONFNAME.log'. This option allows you +to specify an alternative directory. +.SH AUTHORS +.B bopm +was written by Erik Fears, Andy Smith, David Leadbeater, Sotiris Tsimbonis, +Rob Levin, Ben AKA locksmith, John Payne, Jakub Jankowski, Emre ERTUGAY, Alex +Wu and Harald Skoglund. --- bopm-3.1.3.orig/debian/bopm.default +++ bopm-3.1.3/debian/bopm.default @@ -0,0 +1,5 @@ +# /etc/default/bopm + +# Don't start bopm unless you have read the documentation +START_BOPM=false + --- bopm-3.1.3.orig/debian/format +++ bopm-3.1.3/debian/format @@ -0,0 +1 @@ +3.0 (native) --- bopm-3.1.3.orig/debian/control +++ bopm-3.1.3/debian/control @@ -0,0 +1,15 @@ +Source: bopm +Section: net +Priority: optional +Maintainer: Martin Wuertele +Build-Depends: debhelper (>= 7.0.50), dpatch, autotools-dev +Standards-Version: 3.9.2 +Homepage: http://wiki.blitzed.org/BOPM + +Package: bopm +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Blitzed Open Proxy Monitor + An open-source open proxy monitor, designed for use with hybrid-based ircds, + although it can be used with slight modification on any server which has +c + to show connects to opers and that supports KLINEs. --- bopm-3.1.3.orig/debian/manpages +++ bopm-3.1.3/debian/manpages @@ -0,0 +1 @@ +debian/bopm.1 --- bopm-3.1.3.orig/debian/copyright +++ bopm-3.1.3/debian/copyright @@ -0,0 +1,46 @@ +This package was debianized by Martin Wuertele on +Thu, 14 Nov 2002 14:16:50 +0100. + +It was downloaded from http://www.blitzed.org/bopm/ + +Upstream Authors: Erik Fears + Andy Smith + David Leadbeater + Sotiris Tsimbonis + Rob Levin + Ben AKA locksmith + John Payne + Jakub Jankowski + Emre ERTUGAY + Alex Wu + Harald Skoglund + + +Copyright 2002, 2003 Erik Fears + Andy Smith + David Leadbeater + Sotiris Tsimbonis + Rob Levin + Ben AKA locksmith + John Payne + Jakub Jankowski + Emre ERTUGAY + Alex Wu + Harald Skoglund + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. --- bopm-3.1.3.orig/debian/changelog +++ bopm-3.1.3/debian/changelog @@ -0,0 +1,206 @@ +bopm (3.1.3-3) unstable; urgency=low + + * added debian source format + * fixed non-escaped minus in the manpage and updated authors info + * added homepage filed + * updated standards + + -- Martin Wuertele Tue, 26 Jul 2011 20:07:32 +0200 + +bopm (3.1.3-2) unstable; urgency=low + + * update config.sub and config.guess in src/libopm as + well (closes: #534827) + Credits to Bradley Smith + + -- Martin Wuertele Thu, 12 Nov 2009 20:54:40 +0100 + +bopm (3.1.3-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Added LSB formatted dependency info in init.d script (closes: #469631) + + -- Peter Eisentraut Fri, 04 Apr 2008 11:24:22 +0200 + +bopm (3.1.3-1) unstable; urgency=low + + * New upstream release. + * Removed myself from the maintainer list as signalised some time ago. + * Removed empty postinst. + * Updated the horrible manpage a bit. + * Updated the Debian-provided configuration file according to the sample + configuration file (opm.blitzed.org was shut down, thus all references + are now removed). + + -- Philipp Kern Sat, 06 Oct 2007 10:52:32 +0200 + +bopm (3.1.2-12) unstable; urgency=medium + + [ Philipp Kern ] + * No time to rant. Change the owner to `irc', otherwise BOPM might + be unable to read its configuration file. + + -- Philipp Kern Tue, 7 Nov 2006 23:01:30 +0100 + +bopm (3.1.2-11) unstable; urgency=medium + + [ Philipp Kern ] + * Change the default permissions for `/etc/bopm/bopm.conf' from + 0644 to 0640, as the old setting might possibly leak passwords + to local users. Already created configuration files are not + touched explicitly, though. (Closes: #397261) + + -- Philipp Kern Tue, 7 Nov 2006 22:09:27 +0100 + +bopm (3.1.2-10) unstable; urgency=low + + [ Philipp Kern ] + * Correct CVS location + * Update to current CVS, includes various compile and dereference fixes + * Dropping `01_gcc-4.0.patch' and `02_segv_fix.patch', no longer needed + + -- Philipp Kern Sun, 10 Sep 2006 18:21:32 +0200 + +bopm (3.1.2-9) unstable; urgency=low + + [ Philipp Kern ] + * Fix package purge, the default log files will now be removed from + `/var/log/bopm' (Closes: #376923) + * Include a patch to enable IRC operators to update BOPM's port and + protocol list on-the-fly (Closes: #374163) + * Introduce an iteration over all configuration files in `/etc/bopm', + to support multiple instances of BOPM (Closes: #193190) + * Copied the `debian' subdirectory to a clean copy, thus removing + all changes not related to the packaging or covered by dpatch + * Deactivate opm.blitzed.org in the sample configuration file: + the open proxy blacklist has been shut down + + [ Martin Wuertele ] + * Switch comaintainer and maintainer, as the latter is more active + + -- Philipp Kern Thu, 27 Jul 2006 17:46:33 +0200 + +bopm (3.1.2-8) unstable; urgency=low + + * added Philipp Kern to uploaders and updates his + e-mail address + * removed debug flag from the default options (Closes: #372956) + * changed patch management to dpatch + * updates maintscripts and standards + + -- Martin Wuertele Sat, 17 Jun 2006 19:01:30 +0200 + +bopm (3.1.2-7) unstable; urgency=low + + * updates /etc/init.d/bopm to use correct location of pid-file and log-file + (Closes: #326510) + * fixed changelog (Thanks to Philipp Kern for pointing + out) + * fixed and updated init-script + (Closes: #193190 - see /etc/default/bopm to add options) + + -- Martin Wuertele Mon, 12 Jun 2006 06:39:55 +0200 + +bopm (3.1.2-6) unstable; urgency=low + + * added patch fixing gcc-4.0 problems on amd64 (thanks to Andreas + Jochens ) + (Closes: #285542) + + -- Martin Wuertele Thu, 28 Apr 2005 21:26:35 +0200 + +bopm (3.1.2-5) unstable; urgency=low + + * updated sample configuration file + (Closes: #283579) + + -- Martin Wuertele Thu, 28 Apr 2005 21:24:55 +0200 + +bopm (3.1.2-4) unstable; urgency=low + + * moved logfile to /var/log/bopm (credits to Philipp Kern + ) + (Closes: #273175) + + -- Martin Wuertele Wed, 10 Nov 2004 22:11:43 +0100 + +bopm (3.1.2-3) unstable; urgency=low + + * added patch fixing segfault if incorrect IPv4 address is passed via + CONNREGEX from the ircd (patch by Philipp Kern ) + (Closes: #264775) + + -- Martin Wuertele Tue, 24 Aug 2004 13:07:40 +0200 + +bopm (3.1.2-2) unstable; urgency=low + + * updated standards, regenerated config.{guess,sub} + + -- Martin Wuertele Thu, 19 Aug 2004 19:47:38 +0200 + +bopm (3.1.2-1) unstable; urgency=low + + * new upstream release + + -- Martin Wuertele Sat, 13 Mar 2004 09:37:06 +0100 + +bopm (3.1.1-2) unstable; urgency=low + + * fixed minor issues in copyright + + -- Martin Wuertele Tue, 16 Dec 2003 20:57:59 +0100 + +bopm (3.1.1-1) unstable; urgency=low + + * new upstream release + (Closes: #199446, #194871, #177393) + + -- Martin Wuertele aka maxx Thu, 17 Jul 2003 17:21:47 +0200 + +bopm (3.0.3-2) unstable; urgency=low + + * added build-depend on file since upstream won't use a newer libtool. + (Closes: #177393) + + -- Martin Wuertele Sun, 13 Apr 2003 00:50:34 +0200 + +bopm (3.0.3-1) unstable; urgency=low + + * new upstream version + + -- Martin Wuertele Sat, 8 Mar 2003 16:27:44 +0100 + +bopm (3.0.2-2) unstable; urgency=low + + * switched to newer libtool + (Closes: #177393) + + -- Martin Wuertele Mon, 20 Jan 2003 20:29:32 +0100 + +bopm (3.0.2-1) unstable; urgency=low + + * new upstream release + + -- Martin Wuertele Sat, 18 Jan 2003 21:03:55 +0100 + +bopm (3.0-1) unstable; urgency=low + + * new upstream release. + (Closes: #174836) + + -- Martin Wuertele Wed, 1 Jan 2003 23:36:19 +0100 + +bopm (2.31-1) unstable; urgency=low + + * fixed init.d to start bopm including symlink to /usr/sbin + * added manpage for bopm + + -- Martin Wuertele Sat, 16 Nov 2002 13:41:39 +0100 + +bopm (2.31-0) unstable; urgency=low + + * Initial Release. + (Closes: #169090) + + -- Martin Wuertele Thu, 14 Nov 2002 14:16:50 +0100 + --- bopm-3.1.3.orig/debian/compat +++ bopm-3.1.3/debian/compat @@ -0,0 +1 @@ +7 --- bopm-3.1.3.orig/debian/rules +++ bopm-3.1.3/debian/rules @@ -0,0 +1,97 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# we use dpatch +include /usr/share/dpatch/dpatch.make + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 -s +else + CFLAGS += -O0 +endif + +config.status: configure + dh_testdir + + cp -f /usr/share/misc/config.sub config.sub + cp -f /usr/share/misc/config.guess config.guess + cp -f /usr/share/misc/config.sub src/libopm/config.sub + cp -f /usr/share/misc/config.guess src/libopm/config.guess + + ./configure --host=$(DEB_HOST_GNU_TYPE) \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --exec-prefix=/usr \ + --sysconfdir=/etc/bopm \ + --localstatedir=/var/log/bopm + + + +build: build-stamp + +build-stamp: patch-stamp config.status + @echo "--- Compiling" + dh_testdir + + $(MAKE) + + touch build-stamp + +clean: clean1 unpatch +clean1: + @echo "--- Cleaning" + dh_testdir + dh_testroot + dh_clean + + [ ! -f Makefile ] || $(MAKE) distclean + + rm -f config.guess config.sub + +install: build + dh_testdir + dh_testroot + dh_clean + dh_installdirs + + install -o root -g root -m 755 src/bopm $(CURDIR)/debian/bopm/usr/sbin + install -o irc -g root -m 640 debian/bopm.conf.debian $(CURDIR)/debian/bopm/etc/bopm/bopm.conf + install -d -o irc -g root -m 755 $(CURDIR)/debian/bopm/var/log/bopm/ + install -o root -g root -m 644 debian/bopm.default $(CURDIR)/debian/bopm/etc/default/bopm + +# Build architecture-independent files here. +binary-indep: build install + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs + dh_installinit --init-script=bopm \ + --update-rcd-params='start 60 2 3 4 5 . stop 60 0 1 6 .' + dh_installman + dh_installinfo + dh_installchangelogs ChangeLog + dh_lintian + dh_link + dh_strip + dh_compress + dh_makeshlibs bopm + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch build install patch unpatch clean1 --- bopm-3.1.3.orig/debian/source.lintian-overrides +++ bopm-3.1.3/debian/source.lintian-overrides @@ -0,0 +1,2 @@ +# we discard config.guess and regenerate it with autoconf +bopm source: patch-system-but-direct-changes-in-diff src/libopm/config.guess and 1 more --- bopm-3.1.3.orig/debian/README.source +++ bopm-3.1.3/debian/README.source @@ -0,0 +1,2 @@ +This packages uses dpatch to manage differences between the upsteram and the +Debian version. --- bopm-3.1.3.orig/debian/dirs +++ bopm-3.1.3/debian/dirs @@ -0,0 +1,4 @@ +etc/bopm +etc/default +usr/sbin +var/log --- bopm-3.1.3.orig/debian/docs +++ bopm-3.1.3/debian/docs @@ -0,0 +1,3 @@ +README +TODO +ChangeLog --- bopm-3.1.3.orig/debian/init.d +++ bopm-3.1.3/debian/init.d @@ -0,0 +1,75 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: bopm +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start or stop SAUCE +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/bopm +NAME=bopm +DESC="Blitzed Open Proxy Monitor" + +# defaults - DON'T CHANGE, edit /etc/default/bopm instead! +START_BOPM=false + +# source /etc/default/bopm +test -f /etc/default/bopm && . /etc/default/bopm + +# if /var/run/bopm doesn't exist yet create it +test -d /var/run/bopm || mkdir /var/run/bopm && chown irc:root /var/run/bopm + +if [ "$START_BOPM" = "false" ] ; then + echo "$DESC: disabled, see /etc/default/bopm" + exit 0 +fi + +get_confname() { + CONFNAME=$(echo $1|sed -e 's#.*/\([a-zA-Z0-9]*\)\.conf$#\1#') +} + +test -f $DAEMON || exit 0 + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: $NAME" + for i in /etc/bopm/*.conf; do + get_confname $i + start-stop-daemon --start --quiet -c irc \ + --pidfile /var/run/bopm/$CONFNAME.pid \ + -b -o --exec $DAEMON -- -c $CONFNAME + echo -n "." + done + echo + ;; + stop) + echo -n "Stopping $DESC: $NAME" + for i in /etc/bopm/*.conf; do + get_confname $i + start-stop-daemon --oknodo --stop --quiet \ + --pidfile /var/run/bopm/$CONFNAME.pid --exec $DAEMON + echo -n "." + done + echo + ;; + restart|force-reload) + $0 stop + sleep 1 + $0 start + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 + +# vim:set filetype=sh: + --- bopm-3.1.3.orig/debian/README.Debian +++ bopm-3.1.3/debian/README.Debian @@ -0,0 +1,30 @@ +Adding new protocol-port pairs via IRC +-------------------------------------- + +It is possible to add new protocol-port pairs at runtime. To use this +feature you need to put the following string into the topic of +the channel your BOPM is in: + + addproto:SCANNER=PROTO:PORT,PROTO:PORT + +PROTO could be one of the following: + + hc (HTTP) + hp (HTTPPOST) + s4 (SOCKS4) + s5 (SOCKS5) + wg (WINGATE) + rt (ROUTER) + +SCANNER is one of the scanners defined in `bopm.conf', usually either +`default' or `extra'. + +You can omit protocols (and ports) that are the same, to compact the +string. + +Security concern: Users with operator access to BOPM's channel are able +to add new ports to scan without other authentication. They are, however, +limited by the maximum topic length. + + -- Philipp Kern Thu, 20 Jul 2006 17:25:09 +0200 + --- bopm-3.1.3.orig/debian/bopm.postrm +++ bopm-3.1.3/debian/bopm.postrm @@ -0,0 +1,33 @@ +#!/bin/sh -e + +case "$1" in + remove) + ;; + + purge) + # Delete the default log files if present; files of secondary + # configurations are not deleted automatically + if [ -f /var/log/bopm/bopm.log ]; then rm -f /var/log/bopm/bopm.log; fi + if [ -f /var/log/bopm/scan.log ]; then rm -f /var/log/bopm/scan.log; fi + # Delete the BOPM directory if non-empty + if [ -d /var/log/bopm ]; then + rmdir --ignore-fail-on-non-empty /var/log/bopm + fi + # This should not be necessary, as prerm is supposed to stop BOPM + # correctly. But we better delete some leftover cruft than having + # it still floating around on the system. + if [ -f /var/run/bopm/bopm.pid ]; then rm -f /var/run/bopm/bopm.pid; fi + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument '$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- bopm-3.1.3.orig/debian/bopm.conf.debian +++ bopm-3.1.3/debian/bopm.conf.debian @@ -0,0 +1,692 @@ +/* + +BOPM sample configuration + +*/ + +options { + /* + * Full path and filename for storing the process ID of the running + * BOPM. + */ + pidfile = "/var/run/bopm/bopm.pid"; + + /* + * How many seconds to store the IP address of hosts which are + * confirmed (by previous scans) to be secure. New users from these + * IP addresses will not be scanned again until this amount of time + * has passed. IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THIS + * DIRECTIVE, but it is provided due to demand. + * + * The main reason for not using this feature is that anyone capable + * of running a proxy can get abusers onto your network - all they + * need do is shut the proxy down, connect themselves, restart the + * proxy, and tell their friends to come flood. + * + * Keep this directive commented out to disable negative caching. + */ +# negcache = 3600; + + /* + * Amount of file descriptors to allocate to asynchronous DNS. 64 + * should be plenty for almost anyone - previous versions of BOPM only + * did one at a time! + */ + dns_fdlimit = 64; + + /* + * Put the full path and filename of a logfile here if you wish to log + * every scan done. Normally BOPM only logs successfully detected + * proxies in the bopm.log, but you may get abuse reports to your ISP + * about portscanning. Being able to show that it was BOPM that did + * the scan in question can be useful. Leave commented for no + * logging. + */ +# scanlog = "/var/log/bopm/scan.log"; +}; + + +IRC { + /* + * IP to bind to for the IRC connection. You only need to use this if + * you wish BOPM to use a particular interface (virtual host, IP + * alias, ...) when connecting to the IRC server. There is another + * "vhost" setting in the scan {} block below for the actual + * portscans. Note that this directive expects an IP address, not a + * hostname. Please leave this commented out if you do not + * understand what it does, as most people don't need it. + */ +# vhost = "0.0.0.0"; + + /* + * Nickname for BOPM to use. + */ + nick = "bopm"; + + /* + * Text to appear in the "realname" field of BOPM's /whois output. + */ + realname = "Blitzed Open Proxy Monitor"; + + /* + * If you don't have an identd running, what username to use. + */ + username = "bopm"; + + /* + * Hostname (or IP) of the IRC server which BOPM will monitor + * connections on. + */ + server = "myserver.somenetwork.org"; + + + /* + * Password used to connect to the IRC server (PASS) + */ +# password = "secret"; + + + /* + * Port of the above server to connect to. This is what BOPM uses to + * get onto IRC itself, it is nothing to do with what ports/protocols + * are scanned, nor do you need to list every port your ircd listens + * on. + */ + port = 6667; + + /* + * Command to execute to identify to NickServ (if your network uses + * it). This is the raw IRC command text, and the below example + * corresponds to "/msg nickserv identify password" in a client. If + * you don't understand, just edit "password" in the line below to be + * your BOPM's nick password. Leave commented out if you don't need + * to identify to NickServ. + */ +# nickserv = "privmsg nickserv :identify password"; + + /* + * The username and password needed for BOPM to oper up. + */ + oper = "bopm operpass"; + + /* + * Mode string that BOPM needs to set on itself as soon as it opers + * up. This needs to include the mode for seeing connection notices, + * otherwise BOPM won't scan anyone (that's usually umode +c). It's + * often also a good idea to remove any helper modes so that users + * don't try to talk to the BOPM. + * + * REMEMBER THAT IRCU AND LATER VERSIONS OF UNREAL DO NOT USE A SIMPLE + * +c !! + */ + mode = "+c-h"; + + /* Example for Bahamut; +F gives BOPM relaxed flood limits */ +# mode = "+Fc-h"; + + /* + * If this is set then BOPM will use it as an /away message as soon as + * it connects. + */ + away = "I'm a bot. Your messages will be ignored."; + + /* + * Info about channels you wish BOPM to join in order to accept + * commands. BOPM will also print messages in these channels every + * time it detects a proxy. Only IRC operators can command BOPM to do + * anything, but some of the things BOPM reports to these channels + * could be soncidered sensitive, so it's best not to put BOPM into + * public channels. + */ + channel { + /* + * Channel name. Local ("&") channels are supported if your ircd + * supports them. + */ + name = "#bopm"; + + /* + * If BOPM will need to use a key to enter this channel, this is + * where you specify it. + */ +# key = "somekey"; + + /* + * If you use ChanServ then maybe you want to set the channel + * invite-only and have each BOPM do "/msg ChanServ invite" to get + * itself in. Leave commented if you don't, or if this makes no + * sense to you. + */ +# invite = "privmsg chanserv :invite #bopm"; + }; + + /* + * You can define a bunch of channels if you want: + * + * channel { name = "#other"; }; channel { name="#channel"; } + */ + + /* + * connregex is a POSIX regular expression used to parse connection + * (+c) notices from the ircd. The complexity of the expression should + * be kept to a minimum. + * + * Items in order MUST be: nick user host IP + * + * BOPM will not work with ircds which do not send an IP in the + * connection notice. + * + * This is fairly complicated stuff, and the consequences of getting + * it wrong are the BOPM does not scan anyone. Unless you know + * absolutely what you are doing, please just uncomment the example + * below that best matches the type of ircd you use. + * + * !!! NOTE !!! If a connregex for your ircd does not appear here and the + * hybrid connregex does not appear to work, check the BOPM FAQ at + * http://blitzed.org/bopm/faq.phtml before contacting our lists for help. + * + */ + + /* Hybrid / Bahamut / Unreal (in HCN mode) */ + connregex = "\\*\\*\\* Notice -- Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*"; + + /* + * Ultimate ircd - note the control-B characters around Connect/Exit, + * that is because that text appears in bold in the actual connect + * notice. Be very careful when editing this, do it as you would put + * bold characters into IRC MOTDs. + */ +# connregex = "\\*\\*\\* Connect/Exit -- from [^:]+: Client connecting on port [0-9]+: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*"; + + /* + * SorIRCd 1.3.4+ / StarIRCd 5.26+. + */ +# connregex = "\\*\\*\\* Notice -- Client connecting on port [0-9]+: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*"; + + + /* + * "kline" controls the command used when an open proxy is confirmed. + * We suggest applying a temporary (no more than a few hours) KLINE on the host. + * + * + * Make sure if you need to change this string you also change the + * kline command for every DNSBL you enable below. + * + * Also note that some servers do not allow you to include ':' characters + * inside the KLINE message (e.g. for a http:// address). + * + * Users rewriting this message into something that isn't even a valid + * IRC command is the single most common cause of support requests and + * therefore WE WILL NOT SUPPORT YOU UNLESS YOU USE ONE OF THE EXAMPLE + * KLINE COMMANDS BELOW. + * + * + * That said, should you wish to customise this text, several + * printf-like placeholders are available: + * + * %n User's nick + * %u User's username + * %h User's irc hostname + * %i User's IP address + * + */ + kline = "KLINE *@%h :Open Proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information."; + + /* A GLINE example for IRCu: */ +# kline = "GLINE +*@%i 1800 :Open proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information."; + + /* An AKILL example for services with OperServ + * Your BOPM must have permission to AKILL for this to work! */ + +# kline = "PRIVMSG OpenServ :AKILL +3h *@%h Open proxy found on your host. Please visit www.blitzed.org/proxy?ip=%i for more information."; + + /* + * Text to send on connection, these can be stacked and will be sent in this order + * + * !!! UNREAL USERS PLEASE NOTE !!! + * Unreal users will need PROTOCTL HCN to force hybrid connect + * notices. + * + * Yes Unreal users! That means you! That means you need the line + * below! See that thing at the start of the line? That's what we + * call a comment! Remove it to UNcomment the line. + */ +# perform = "PROTOCTL HCN"; + +}; + + +/* + * OPM Block defines blacklists and information required to report new proxies + * to a dns blacklist. DNS-based blacklists store IP addresses in a DNS zone + * file. There are several blacklist that list IP addresses known to be open + * proxies or other forms of IRC abuse. By checking against these blacklists, + * BOPMs are able to ban known sources of abuse without completely scanning them. + */ + +OPM { + /* + * Blacklist zones to check IPs against. If you would rather not + * trust a remotely managed blacklist, you could set up your own, or + * leave these commented out in which case every user will be + * scanned. The use of at least one open proxy DNSBL is recommended + * however. + * + * Blitzed is not associated with any of these DNSBLs, please check + * the policies of each blacklist you use to check you are comfortable + * with using them to block access to your server (and that you are + * allowed to use them). + */ + + /* DroneBL - http://dronebl.org */ +# blacklist { +# /* The DNS name of the blacklist */ +# name = "dnsbl.dronebl.org"; +# +# /* +# * There are only two values that are valid for this +# * "A record bitmask" and "A record reply" +# * These options affect how the values specified to reply +# * below will be interpreted, a bitmask is where the reply +# * values are 2^n and more than one is added up, a reply is +# * simply where the last octet of the IP is that number. +# * If you are not sure then the values set for dnsbl.dronebl.org +# * will work without any changes. +# */ +# type = "A record reply"; +# +# /* Kline types not listed in the reply list below. +# * +# * For DNSBLs that are not IRC specific and you just wish to kline +# * certain types this can be disabled. +# */ +# ban_unknown = yes; +# +# /* The actual values returned by the dnsbl.dronebl.org blacklist +# * As documented at http://www.dronebl.org/howtouse.do */ +# reply { +# 2 = "Sample"; +# 3 = "IRC Drone"; +# 4 = "Tor"; +# 5 = "Bottler"; +# 6 = "Unknown spambot or drone"; +# 7 = "DDOS Drone"; +# 8 = "SOCKS Proxy"; +# 9 = "HTTP Proxy"; +# 10 = "ProxyChain"; +# 255 = "Unknown"; +# }; +# +# /* The kline message sent for this specific blacklist, remember to put +# * the removal method in this. +# */ +# kline = "KLINE *@%h :You have a host listed in the DroneBL. For more information, visit http://dronebl.org/lookup_branded.do?ip=%i&network=Network"; +# }; + +# /* ircbl.ahbl.org - see http://ahbl.org/docs/ircbl +# * http://oldwww.temp.ahbl.org/docs/ircbl.php */ +# blacklist { +# name = "ircbl.ahbl.org"; +# type = "A record reply"; +# ban_unknown = no; +# reply { +# 2 = "Open proxy"; +# }; +# kline = "KLINE *@%h :Listed in ircbl.ahbl.org. See http://ahbl.org/removals"; +# }; + + /* tor.dnsbl.sectoor.de - http://www.sectoor.de/tor.php */ +# blacklist { +# name = "tor.dnsbl.sectoor.de"; +# type = "A record reply"; +# reply { +# 1 = "Tor exit server"; +# }; +# ban_unknown = no; +# kline = "KLINE *@%h :Tor exit server detected. See www.sectoor.de/tor.php?ip=%i"; +# }; + + /* rbl.efnet.org - http://rbl.efnet.org/ */ +# blacklist { +# name = "rbl.efnet.org"; +# type = "A record reply"; +# reply { +# 1 = "Open proxy"; +# 2 = "Trojan spreader"; +# 3 = "Trojan infected client"; +# 4 = "TOR exit server"; +# 5 = "Drones / Flooding"; +# }; +# ban_unknown = yes; +# kline = "KLINE *@%h :Listed in rbl.efnet.org. See rbl.efnet.org/?i=%i"; +# }; + + + /* example: NJABL - please read http://www.njabl.org/use.html before + * uncommenting */ +# blacklist { +# name = "dnsbl.njabl.org"; +# type = "A record reply"; +# reply { +# 9 = "Open proxy"; +# }; +# ban_unknown = no; +# kline = "KLINE *@%h :Open proxy found on your host, please visit www.njabl.org/cgi-bin/lookup.cgi?query=%i"; +# }; + + /* + * You can report the insecure proxies you find to a DNSBL also! + * The remaining directives in this section are only needed if you + * intend to do this. Reports are sent by email, one email per IP + * address. The format does support multiple addresses in one email, + * but we don't know of any servers that are detecting enough insecure + * proxies for this to be really necessary. + */ + + /* + * Email address to send reports FROM. If you intend to send reports, + * please pick an email address that we can actually send mail to + * should we ever need to contact you. + */ +# dnsbl_from = "mybopm@myserver.org"; + + /* + * Email address to send reports TO. + * For example DroneBL: + */ +# dnsbl_to = "bopm-report@dronebl.org"; + + /* + * Full path to your sendmail binary. Even if your system does not + * use sendmail, it probably does have a binary called "sendmail" + * present in /usr/sbin or /usr/lib. If you don't set this, no + * proxies will be reported. + */ +# sendmail = "/usr/sbin/sendmail"; +}; + + +/* + * The short explanation: + * + * This is where you define what ports/protocols to check for. You can have + * multiple scanner blocks and then choose which users will get scanned by + * which scanners further down. + * + * The long explanation: + * + * Scanner defines a virtual scanner. For each user being scanned, a scanner + * will use a file descriptor (and subsequent connection) for each protocol. + * Once connecting it will negotiate the proxy to connect to + * target_ip:target_port (target_ip MUST be an IP). + * + * Once connected, any data passed through the proxy will be checked to see if + * target_string is contained within that data. If it is the proxy is + * considered open. If the connection is closed at any point before + * target_string is matched, or if at least max_read bytes are read from the + * connection, the negotiation is considered failed. + */ + +scanner { + + /* + * Unique name of this scanner. This is used further down in the + * user {} blocks to decide which users get affected by which + * scanners. + */ + name="default"; + + /* + * HTTP CONNECT - very common proxy protocol supported by widely known + * software such as Squid and Apache. The most common sort of + * insecure proxy and found on a multitude of weird ports too. Offers + * transparent two way TCP connections. + */ + protocol = HTTP:80; + protocol = HTTP:8080; + protocol = HTTP:3128; + protocol = HTTP:6588; + + /* + * SOCKS4/5 - well known proxy protocols, probably the second most + * common for insecure proxies, also offers transparent two way TCP + * connections. Fortunately largely confined to port 1080. + */ + protocol = SOCKS4:1080; + protocol = SOCKS5:1080; + + /* + * Cisco routers with a default password (yes, it really does happen). + * Also pretty much anything else that will let you telnet to anywhere + * else on the internet. Fortunately these are always on port 23. + */ + protocol = ROUTER:23; + + /* + * WinGate is commercial windows proxy software which is now not so + * common, but still to be found, and helpfully presents an interface + * that can be used to telnet out, on port 23. + */ + protocol = WINGATE:23; + + /* + * The HTTP POST protocol, often dismissed when writing the access + * controls for proxies, but sadly can still be used to abused. + * Offers only the opportunity to send a single block of data, but + * enough of them at once can still make for a devastating flood. + * Found on the same ports that HTTP CONNECT proxies inhabit. + * + * Note that if your ircd has "ping cookies" then clients from HTTP + * POST proxies cannot actually ever get onto your network anyway. If + * you leave the checks in then you'll still find some (because some + * people IRC from boxes that run them), but if you use BOPM purely as + * a protective measure and you have ping cookies, you need not scan + * for HTTP POST. + */ + protocol = HTTPPOST:80; + + /* + * IP this scanner will bind to. Use this if you need your scans to + * come FROM a particular interface on the machine you run BOPM from. + * If you don't understand what this means, please leave this + * commented out, as this is a major source of support queries! + */ +# vhost = "127.0.0.1"; + + /* Maximum file descriptors this scanner can use. Remember that there + * will be one FD for each protocol listed above. As this example + * scanner has 8 protocols, it requires 8 FDs per user. With a 512 FD + * limit, this scanner can be used on 64 users _at the same time_. + * That should be adequate for most servers. + */ + fd = 512; + + /* + * Maximum data read from a proxy before considering it closed. Don't + * set this too high, some people have fun setting up lots of ports + * that send endless data to tie up your scanner. 4KB is plenty for + * any known proxy. + */ + max_read = 4096; + + /* + * Amount of time (in seconds) before a test is considered timed out. + * Again, all but the poorest slowest proxies will be detected within + * 30 seconds, and this helps keep resource usage low. + */ + timeout = 30; + + /* + * Target IP to tell the proxy to connect to + * + * !!! THIS MUST BE CHANGED !!! + * + * You cannot instruct the proxy to connect to itself! The easiest + * thing to do would be to set this to the IP of your ircd and then + * keep the default target_strings. + * + * Please use an IP that is publically reachable from anywhere on the + * Internet, because you have no way of knowing where the insecure + * proxies will be located. Just because you and your BOPM can + * connect to your ircd on some private IP like 192.168.0.1, does not + * mean that the insecure proxies out there on the Internet will be + * able to. And if they never connect, you will never detect them. + * + * Remember to change this setting for every scanner you configure. + * + */ + target_ip = "127.0.0.1"; + + /* + * Target port to tell the proxy to connect to. This is usually + * something like 6667. Basically any client-usable port. + */ + target_port = 6667; + + /* + * Target string we check for in the data read back by the scanner. + * This should be some string out of the data that your ircd usually + * sends on connect. The example below will work on most + * hybrid/bahamut ircds. Multiple target strings are allowed. + * + * NOTE: Try to keep the number of target strings to a minimum. Two + * should be fine. One for normal connections and one for throttled + * connections. Comment out any others for efficiency. + */ + + /* Usually first line sent to client on connection to ircd. + * If your ircd supports a more specific line (see below), + * using it will reduce false positives. + */ + target_string = "*** Looking up your hostname..."; + + /* Some ircds give a source for the NOTICE AUTH (bahamut for example). + * It is recommended you use the following instead of the generic + * "*** Looking up your hostname..." if your ircd supports it. + * This will reduce the chances of false positives. + */ +# target_string = ":server.yournetwork.org NOTICE AUTH :*** Looking up your hostname..."; + + /* If you try to connect too fast, you'll be throttled by your own + * ircd. Here's what a hybrid throttle message looks like: + */ + target_string = "ERROR :Trying to reconnect too fast."; + + /* And the same for bahamut (comment this out if you're not using bahamut): */ + target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled."; +}; + +scanner { + name = "extended"; + + protocol = HTTP:81; + protocol = HTTP:8000; + protocol = HTTP:8001; + protocol = HTTP:8081; + + protocol = HTTPPOST:81; + protocol = HTTPPOST:6588; +# protocol = HTTPPOST:4480; + protocol = HTTPPOST:8000; + protocol = HTTPPOST:8001; + protocol = HTTPPOST:8080; + protocol = HTTPPOST:8081; + + /* + * IRCnet have seen many socks5 on these ports, more than on the + * standard ports even. + */ + protocol = SOCKS4:4914; + protocol = SOCKS4:6826; + protocol = SOCKS4:7198; + protocol = SOCKS4:7366; + protocol = SOCKS4:9036; + + protocol = SOCKS5:4438; + protocol = SOCKS5:5104; + protocol = SOCKS5:5113; + protocol = SOCKS5:5262; + protocol = SOCKS5:5634; + protocol = SOCKS5:6552; + protocol = SOCKS5:6561; + protocol = SOCKS5:7464; + protocol = SOCKS5:7810; + protocol = SOCKS5:8130; + protocol = SOCKS5:8148; + protocol = SOCKS5:8520; + protocol = SOCKS5:8814; + protocol = SOCKS5:9100; + protocol = SOCKS5:9186; + protocol = SOCKS5:9447; + protocol = SOCKS5:9578; + + /* + * These came courtsey of Keith Dunnett from a bunch of public open + * proxy lists. + */ + protocol = SOCKS4:29992; + protocol = SOCKS4:38884; + protocol = SOCKS4:18844; + protocol = SOCKS4:17771; + protocol = SOCKS4:31121; + + fd = 400; + + /* If required you can add settings such as target_ip here + * they will override the defaults set in the first scanner + * for this and subsequent scanners defined in the config file + * This affects the following options: + * fd, vhost, target_ip, target_port, target_string, timeout and + * max_read. + */ +}; + + + +/* + * User blocks define what scanners will be used to scan which hostmasks. When + * a user connects they will be scanned on every scanner {} (above) that + * matches their host. + */ + +user { + /* + * Users matching this host mask will be scanned with all the + * protocols in the scanner named. + */ + mask = "*!*@*"; + scanner = "default"; +}; + +user { + /* Connections without ident will match on a vast number of connections + * very few proxies run ident though */ +# mask = "*!~*@*"; + mask = "*!squid@*"; + mask = "*!nobody@*"; + mask = "*!www-data@*"; + mask = "*!cache@*"; + mask = "*!CacheFlowS@*"; + mask = "*!*@*www*"; + mask = "*!*@*proxy*"; + mask = "*!*@*cache*"; + + scanner = "extended"; +}; + + +/* + * Exempt hosts matching certain strings from any form of scanning or dnsbl. + * BOPM will check each string against both the hostname and the IP address of + * the user. + * + * There are very few valid reasons to actually use "exempt". BOPM should + * never get false positives, and we would like to know very much if it does. + * One possible scenario is that the machine BOPM runs from is specifically + * authorized to use certain hosts as proxies, and users from those hosts use + * your network. In this case, without exempt, BOPM will scan these hosts, + * find itself able to use them as proxies, and ban them. + */ +exempt { + mask = "*!*@127.0.0.1"; +}; --- bopm-3.1.3.orig/debian/patches/03_bopm-topic-check.diff +++ bopm-3.1.3/debian/patches/03_bopm-topic-check.diff @@ -0,0 +1,300 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## bopm-topic-check.diff.dpatch by Philipp Kern +## +## DP: Check the topic of BOPM's channel to retrieve new ports and protocols + +@DPATCH@ +Index: src/irc.c +=================================================================== +RCS file: /data/cvs/bopm/src/irc.c,v +retrieving revision 1.27 +diff -u -r1.27 irc.c +--- bopm/src/irc.c 29 Nov 2003 19:56:19 -0000 1.27 ++++ bopm/src/irc.c 26 Jan 2004 17:01:57 -0000 +@@ -94,6 +94,7 @@ + static void m_userhost(char **, unsigned int, char *, struct UserInfo *); + static void m_cannot_join(char **, unsigned int, char *, struct UserInfo *); + static void m_kill(char **, unsigned int, char *, struct UserInfo *); ++static void m_topic(char **, unsigned int, char *, struct UserInfo *); + + extern struct cnode *nc_head; + +@@ -132,7 +133,9 @@ + {"473", m_cannot_join }, + {"474", m_cannot_join }, + {"475", m_cannot_join }, +- {"KILL", m_kill } ++ {"KILL", m_kill }, ++ {"TOPIC", m_topic }, ++ {"332", m_topic } + }; + + /* irc_cycle +@@ -309,6 +312,13 @@ + LIST_FOREACH(node, IRCItem->channels->head) + { + chan = (struct ChannelConf *) node->data; ++ ++ if(*chan->name == '@') ++ { ++ strncat(IRC_CHANNELS, "@", MSGLENMAX); ++ chan->name++; ++ } ++ + strncat(IRC_CHANNELS, chan->name, MSGLENMAX); + + if(node->next) +@@ -1147,3 +1157,24 @@ + /* Restart bopm to rehash */ + main_restart(); + } ++ ++/* m_topic ++ * ++ * parv[0] = source ++ * parv[1] = command ++ * parv[2] = channel ++ * parv[3] = (might be) nick ++ * parv[3 or 4] = text ++ */ ++ ++static void m_topic(char **parv, unsigned int parc, char *msg, struct UserInfo *source_p) ++{ ++ if(source_p == NULL) ++ return; ++ ++ if(parc < 4) ++ return; ++ ++ scan_add_from_string(parc == 5 ? parv[4] : parv[3]); ++} ++ +Index: src/scan.c +=================================================================== +RCS file: /data/cvs/bopm/src/scan.c,v +retrieving revision 1.33 +diff -u -r1.33 scan.c +--- bopm/src/scan.c 22 Jun 2003 17:05:30 -0000 1.33 ++++ bopm/src/scan.c 26 Jan 2004 17:01:58 -0000 +@@ -155,6 +155,16 @@ + } + } + ++/* Structure needed by the two functions below */ ++static struct protocol_assoc protocols[] = ++{ ++ { OPM_TYPE_HTTP, "HTTP", "hc" }, ++ { OPM_TYPE_HTTPPOST, "HTTPPOST", "hp" }, ++ { OPM_TYPE_SOCKS4, "SOCKS4", "s4" }, ++ { OPM_TYPE_SOCKS5, "SOCKS5", "s5" }, ++ { OPM_TYPE_WINGATE, "WINGATE", "wg" }, ++ { OPM_TYPE_ROUTER, "ROUTER", "rt" } ++}; + + /* scan_gettype(int protocol) + * +@@ -174,16 +184,6 @@ + unsigned int i; + static char *undef = "undefined"; + +- static struct protocol_assoc protocols[] = +- { +- { OPM_TYPE_HTTP, "HTTP" }, +- { OPM_TYPE_HTTPPOST, "HTTPPOST" }, +- { OPM_TYPE_SOCKS4, "SOCKS4" }, +- { OPM_TYPE_SOCKS5, "SOCKS5" }, +- { OPM_TYPE_WINGATE, "WINGATE" }, +- { OPM_TYPE_ROUTER, "ROUTER" } +- }; +- + for(i = 0; i < (sizeof(protocols) / sizeof(struct protocol_assoc)); i++) + if(protocol == protocols[i].type) + return protocols[i].name; +@@ -191,6 +191,30 @@ + return undef; + } + ++/* scan_findtype(char *protocol) ++ * ++ * Given human readable protocol name return constant value ++ * ++ * Parameters: ++ * protocol: Protocol to return (from libopm/src/opm_types.h) ++ * ++ * Return: ++ * Integer value of protocol constant ++ * ++ */ ++ ++int scan_findtype(char *protocol) ++{ ++ unsigned int i; ++ ++ for(i = 0; i < (sizeof(protocols) / sizeof(struct protocol_assoc)); i++) ++ if(strcasecmp(protocols[i].name, protocol) == 0 || ++ strcasecmp(protocols[i].short_name, protocol) == 0) ++ return protocols[i].type; ++ ++ return 0; ++} ++ + + /* scan_init + +@@ -1174,4 +1198,81 @@ + fprintf(scanlogfile, "[%s] %s:%d (%s) \"%s\"\n", buf_present, + remote->ip, remote->port, scan_gettype(remote->protocol), ss->proof); + fflush(scanlogfile); ++} ++ ++/* scan_find_scanner ++ * ++ * Finds and returns the scanner (OPM_T) with the specified name. ++ */ ++ ++static OPM_T *scan_find_scanner(char *name) ++{ ++ node_t *p; ++ struct scanner_struct *scs; ++ ++ LIST_FOREACH(p, SCANNERS->head) ++ { ++ scs = (struct scanner_struct *) p->data; ++ if(strcmp(name, scs->name) == 0) ++ return scs->scanner; ++ } ++ return NULL; ++} ++ ++/* scan_add_from_string ++ * ++ * Adds protocols to scanners by parsing a string. ++ * Format of the string is addproto:SCANNER=proto:port,proto:port,... ++ * ++ * The passed text will be scribbled on. ++ */ ++ ++void scan_add_from_string(char *text) ++{ ++ char *start = text; ++ ++ while(start) ++ { ++ char *end, *scannername; ++ unsigned lastport = 0, lastproto = 0; ++ OPM_T *scanner; ++ ++ start = strstr(start, "addproto:"); ++ if(!start) ++ return; ++ start += 9; ++ scannername = start; ++ start = strchr(start, '='); ++ if(!start) ++ return; ++ *(start++) = '\0'; ++ scanner = scan_find_scanner(scannername); ++ end = start + strcspn(start, " "); ++ ++ while(start < end) { ++ char *currend = strchr(start, ','); ++ if(!currend) ++ currend = end; ++ ++ if(isalpha(*start)) { ++ char *sep = strchr(start, ':'); ++ *((sep ? sep : currend)) = '\0'; ++ lastproto = scan_findtype(start); ++ if(sep && (sep + 1) < currend) ++ lastport = atoi(sep + 1); ++ }else{ ++ lastport = atoi(start); ++ } ++ ++ if(lastport > 0 && lastproto > 0 && ++ !opm_checktype(scanner, lastproto, lastport)) { ++ if(opm_addtype(scanner, lastproto, lastport) == OPM_SUCCESS) ++ log_printf("SCAN -> Added protocol %s:%d to scanner [%s] " ++ "(from string)", scan_gettype(lastproto), ++ lastport, scannername); ++ } ++ ++ start = currend + 1; ++ } ++ } + } +Index: src/scan.h +=================================================================== +RCS file: /data/cvs/bopm/src/scan.h,v +retrieving revision 1.7 +diff -u -r1.7 scan.h +--- bopm/src/scan.h 20 Jun 2003 04:18:38 -0000 1.7 ++++ bopm/src/scan.h 26 Jan 2004 17:01:58 -0000 +@@ -31,10 +31,12 @@ + { + int type; + char *name; ++ char *short_name; + }; + + extern void scan_init(void); + extern char *scan_gettype(int); ++extern int scan_findtype(char *); + extern void scan_cycle(void); + extern void scan_connect(char **, char *); + extern void scan_checkfinished(struct scan_struct *); +@@ -42,6 +44,7 @@ + extern int scan_checkexempt(char *, char *); + extern void scan_timer(void); + extern void scan_positive(struct scan_struct *, char *, char *); ++extern void scan_add_from_string(char *); + + struct kline_format_assoc + { +Index: src/libopm.c +=================================================================== +RCS file: /data/cvs/libopm/src/libopm.c,v +retrieving revision 1.80 +diff -u -r1.80 libopm.c +--- bopm/src/libopm/src/libopm.c 22 Jun 2003 13:19:40 -0000 1.80 ++++ bopm/src/libopm/src/libopm.c 26 Jan 2004 17:02:10 -0000 +@@ -319,8 +319,24 @@ + return libopm_config_set((scanner->config), key, value); + } + ++/* opm_checktype ++ * ++ * Checks if a type/port pair is already added to a scanner. ++ */ + ++int opm_checktype(OPM_T *scanner, int type, unsigned short port) ++{ ++ OPM_NODE_T *p; ++ OPM_PROTOCOL_CONFIG_T *proto; + ++ LIST_FOREACH(p, scanner->protocols->head) ++ { ++ proto = p->data; ++ if(proto->type->type == type && proto->port == port) ++ return 1; ++ } ++ return 0; ++} + + /* opm_addtype + * +Index: src/opm.h +=================================================================== +RCS file: /data/cvs/libopm/src/opm.h,v +retrieving revision 1.26 +diff -u -r1.26 opm.h +--- bopm/src/libopm/src/opm.h 20 Jun 2003 04:18:44 -0000 1.26 ++++ bopm/src/libopm/src/opm.h 26 Jan 2004 17:02:10 -0000 +@@ -69,6 +69,7 @@ + void opm_end(OPM_T *, OPM_REMOTE_T *); + void opm_endscan(OPM_T *, OPM_REMOTE_T *); + ++OPM_ERR_T opm_checktype(OPM_T *, int, unsigned short int); + OPM_ERR_T opm_addtype(OPM_T *, int, unsigned short int); + OPM_ERR_T opm_remote_addtype(OPM_REMOTE_T *, int, unsigned short int); + OPM_ERR_T opm_callback(OPM_T *, int, OPM_CALLBACK_FUNC *, void *); --- bopm-3.1.3.orig/debian/patches/00list +++ bopm-3.1.3/debian/patches/00list @@ -0,0 +1 @@ +03_bopm-topic-check.diff --- bopm-3.1.3.orig/debian/source/format +++ bopm-3.1.3/debian/source/format @@ -0,0 +1 @@ +1.0