From: don Date: Sat, 4 Feb 2006 00:26:01 +0000 (+0000) Subject: Load spamass-milter-0.3.0 into spamass-milter/trunk. X-Git-Tag: debian/0.4.0-1~92 X-Git-Url: https://git.donarmstrong.com/?p=deb_pkgs%2Fspamass-milter.git;a=commitdiff_plain;h=b710828435b1f296a81fb7f239b64ce7a1b3e9b8 Load spamass-milter-0.3.0 into spamass-milter/trunk. --- diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c4053d9 --- /dev/null +++ b/Makefile @@ -0,0 +1,696 @@ +# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +SOURCES = $(spamass_milter_SOURCES) + +srcdir = . +top_srcdir = . + +pkgdatadir = $(datadir)/spamass-milter +pkglibdir = $(libdir)/spamass-milter +pkgincludedir = $(includedir)/spamass-milter +top_builddir = . +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = /usr/bin/install -c +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = i686-pc-linux-gnu +host_triplet = i686-pc-linux-gnu +sbin_PROGRAMS = spamass-milter$(EXEEXT) +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/spamass-milter.1.in $(top_srcdir)/configure \ + $(top_srcdir)/contrib/spamass-milter.spec.in AUTHORS ChangeLog \ + NEWS TODO config.guess config.sub daemon.c install-sh missing \ + poll.c strsep.c +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/ac_acx_pthread.m4 \ + $(top_srcdir)/ac_cf_gnu_source.m4 \ + $(top_srcdir)/ac_cxx_exceptions.m4 \ + $(top_srcdir)/ac_cxx_namespaces.m4 \ + $(top_srcdir)/ac_cxx_verbose_terminate_handler.m4 \ + $(top_srcdir)/ac_dmalloc.m4 \ + $(top_srcdir)/ac_pike_compiler_flag.m4 \ + $(top_srcdir)/ac_vl_prog_cc_warnings.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno configure.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = contrib/spamass-milter.spec spamass-milter.1 +am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" +sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(sbin_PROGRAMS) +am_spamass_milter_OBJECTS = spamass-milter.$(OBJEXT) +spamass_milter_OBJECTS = $(am_spamass_milter_OBJECTS) +spamass_milter_DEPENDENCIES = +DEFAULT_INCLUDES = -I. -I$(srcdir) -I. +depcomp = +am__depfiles_maybe = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +SOURCES = $(spamass_milter_SOURCES) +DIST_SOURCES = $(spamass_milter_SOURCES) +man1dir = $(mandir)/man1 +MANS = $(man1_MANS) $(man_MANS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run aclocal-1.9 +AMDEP_FALSE = # +AMDEP_TRUE = +AMTAR = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run tar +AUTOCONF = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run autoconf +AUTOHEADER = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run autoheader +AUTOMAKE = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run automake-1.9 +AWK = gawk +CC = gcc +CCDEPMODE = depmode=none +CFLAGS = -g -O2 -Wall -pthread +CPPFLAGS = +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=none +CXXFLAGS = -g -O2 -Wall -fno-default-inline -fno-inline -pthread +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = grep -E +EXEEXT = +HAVE_MDOC_FALSE = # +HAVE_MDOC_TRUE = +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +LDFLAGS = -L/usr/lib/libmilter +LIBOBJS = +LIBS = -lmilter +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/missing --run makeinfo +NROFF = nroff +OBJEXT = o +PACKAGE = spamass-milter +PACKAGE_BUGREPORT = +PACKAGE_NAME = spamass-milter +PACKAGE_STRING = spamass-milter 0.3.0 +PACKAGE_TARNAME = spamass-milter +PACKAGE_VERSION = 0.3.0 +PATH_SEPARATOR = : +PTHREAD_CC = gcc +PTHREAD_CFLAGS = -pthread +PTHREAD_LIBS = +SENDMAIL = /usr/sbin/sendmail +SET_MAKE = +SHELL = /bin/sh +SPAMC = /usr/bin/spamc +STRIP = +VERSION = 0.3.0 +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_STRIP = +acx_pthread_config = +am__fastdepCC_FALSE = +am__fastdepCC_TRUE = # +am__fastdepCXX_FALSE = +am__fastdepCXX_TRUE = # +am__include = include +am__leading_dot = . +am__quote = +am__tar = ${AMTAR} chof - "$$tardir" +am__untar = ${AMTAR} xf - +bindir = ${exec_prefix}/bin +build = i686-pc-linux-gnu +build_alias = +build_cpu = i686 +build_os = linux-gnu +build_vendor = pc +datadir = ${prefix}/share +exec_prefix = ${prefix} +host = i686-pc-linux-gnu +host_alias = +host_cpu = i686 +host_os = linux-gnu +host_vendor = pc +includedir = ${prefix}/include +infodir = ${prefix}/info +install_sh = /home/don/deb_pkgs/spamass-milter/spamass-milter-0.3.0/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localstatedir = ${prefix}/var +mandir = /home/don/deb_pkgs/don_packages/spamass-milter/spamass-milter-0.3.0/debian/spamass-milter/usr/share/man +mkdir_p = mkdir -p -- +oldincludedir = /usr/include +prefix = /home/don/deb_pkgs/don_packages/spamass-milter/spamass-milter-0.3.0/debian/spamass-milter/usr +program_transform_name = s,x,x, +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +sysconfdir = ${prefix}/etc +target_alias = +AUTOMAKE_OPTIONS = no-dependencies foreign dist-bzip2 + +# The number of files autoconf leaves lying around after a clean is amazing. +CLEANFILES = *~ .deps/* .libs/* .deps .libs spamass-milter.man +MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in \ + config.log config.status configure configure.lineno stamp-h.in \ + COPYING INSTALL config.guess config.sub install-sh missing mkinstalldirs \ + ${DIST_ARCHIVES} ${DIST_ARCHIVE_SIGS} + +DIST_ARCHIVE_SIGS = ${DIST_ARCHIVES:S/$/.sig/} +man_MANS = spamass-milter.1 +#man1_MANS = spamass-milter.man +DEB_CONTRIB = contrib/spamass-milter +RH_CONTRIB = contrib/spamass-milter-redhat.rc \ + contrib/spamass-milter.spec \ + contrib/spamass-milter.spec.in + +FBSD_CONTRIB = contrib/spamass-milter.sh +MISC_CONTRIB = contrib/README.gnus +spamass_milter_SOURCES = spamass-milter.cpp spamass-milter.h +spamass_milter_LDADD = +EXTRA_DIST = $(DEB_CONTRIB) \ + $(RH_CONTRIB) \ + $(FBSD_CONTRIB) \ + $(MISC_CONTRIB) \ + mdoc2man.awk \ + spamass-milter.1.in \ + subst_poll.h + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .1 .c .cpp .man .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +contrib/spamass-milter.spec: $(top_builddir)/config.status $(top_srcdir)/contrib/spamass-milter.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +spamass-milter.1: $(top_builddir)/config.status $(srcdir)/spamass-milter.1.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-sbinPROGRAMS: $(sbin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)" + @list='$(sbin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-sbinPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(sbin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ + rm -f "$(DESTDIR)$(sbindir)/$$f"; \ + done + +clean-sbinPROGRAMS: + -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS) +spamass-milter$(EXEEXT): $(spamass_milter_OBJECTS) $(spamass_milter_DEPENDENCIES) + @rm -f spamass-milter$(EXEEXT) + $(CXXLINK) $(spamass_milter_LDFLAGS) $(spamass_milter_OBJECTS) $(spamass_milter_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(COMPILE) -c $< + +.c.obj: + $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.cpp.o: + $(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: + $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +uninstall-info-am: +install-man1: $(man1_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ + done +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + mkdir $(distdir) + $(mkdir_p) $(distdir)/. $(distdir)/contrib + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) $(MANS) config.h +installdirs: + for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-man + +install-exec-am: install-sbinPROGRAMS + +install-info: install-info-am + +install-man: install-man1 + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-man uninstall-sbinPROGRAMS + +uninstall-man: uninstall-man1 + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-generic clean-sbinPROGRAMS ctags dist dist-all \ + dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-local distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-exec install-exec-am install-info install-info-am \ + install-man install-man1 install-sbinPROGRAMS install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am uninstall-man \ + uninstall-man1 uninstall-sbinPROGRAMS + + +maintainer-clean-local: + -chmod -R +w autom4te* $(distdir) + rm -rf autom4te* $(distdir) +distclean-local: + rm -f configure.lineno + +# rebuild ChangeLog during dist, but only if it's a zero-byte file +# (i.e. clean CVS co) +dist-hook: + if test ! -s $(distdir)/ChangeLog ; then \ + cvs2cl --no-wrap -S -U contrib/users --stdout > $(distdir)/ChangeLog ; \ + fi + +.PHONY: sign upload changelog dist-hook + +# Bah. Automake does not have a dist-local hook which would let me +# create the PGP sigs when the distfiles themselves are built. So +# build them just before upload. +sign: dist-all + rm -f ${DIST_ARCHIVE_SIGS} + for file in ${DIST_ARCHIVES} ; \ + do \ + gpg -b -a -u 6B56A1DD -o $$file.sig $$file ; \ + done + +upload: dist-all sign + ncftpput savannah.gnu.org incoming/savannah/spamass-milt \ + ${DIST_ARCHIVES} ${DIST_ARCHIVE_SIGS} + +# The good old way +#upload: dist-all +# rsync -a --progress $(distdir).tar.bz2 $(distdir).tar.gz subversions.gnu.org:/upload/spamass-milt/ + +changelog: + cvs2cl --no-wrap -S -U contrib/users + +.1.man: mdoc2man.awk + $(AWK) -f mdoc2man.awk $< > $@ + +spamass-milter.cpp: spamass-milter.h +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/config.guess b/config.guess index 0e30d56..8229471 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-07-02' +timestamp='2004-11-12' # 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 @@ -53,7 +53,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -197,15 +197,21 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + luna88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -221,25 +227,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} + echo mips64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -277,14 +291,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? @@ -307,6 +319,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit 0 ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; @@ -327,7 +345,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; @@ -399,6 +417,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; @@ -734,7 +755,7 @@ EOF echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` @@ -742,6 +763,11 @@ EOF FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; @@ -751,22 +777,8 @@ EOF *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/FreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -799,8 +811,13 @@ EOF echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; @@ -810,9 +827,18 @@ EOF cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit 0 ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; @@ -948,6 +974,9 @@ EOF LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 @@ -978,6 +1007,9 @@ EOF i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; @@ -1047,9 +1079,9 @@ EOF M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; - M68*:*:R3V[567]*:*) + M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1147,9 +1179,10 @@ EOF echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - case `uname -p` in + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; + unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; @@ -1164,7 +1197,7 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) @@ -1208,6 +1241,19 @@ EOF SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms && exit 0 ;; + I*) echo ia64-dec-vms && exit 0 ;; + V*) echo vax-dec-vms && exit 0 ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/config.sub b/config.sub index 9d7f733..0f84ac2 100755 --- a/config.sub +++ b/config.sub @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-07-04' +timestamp='2004-11-30' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -70,7 +70,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -118,7 +118,8 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +145,7 @@ case $os in -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) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -228,14 +229,15 @@ case $basic_machine in | a29k \ | 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 \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -247,6 +249,7 @@ case $basic_machine in | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ @@ -259,12 +262,12 @@ case $basic_machine in | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -292,20 +295,20 @@ case $basic_machine in | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | amd64-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -319,11 +322,13 @@ case $basic_machine in | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ @@ -332,14 +337,14 @@ case $basic_machine in | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; @@ -359,6 +364,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -376,6 +384,9 @@ case $basic_machine in amd64) basic_machine=x86_64-pc ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -435,12 +446,27 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -463,6 +489,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -641,10 +671,6 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -725,10 +751,6 @@ case $basic_machine in np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -740,6 +762,10 @@ case $basic_machine in basic_machine=or32-unknown os=-coff ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose @@ -960,6 +986,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -1003,6 +1033,10 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1033,6 +1067,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1055,7 +1092,7 @@ case $basic_machine in sh64) basic_machine=sh64-unknown ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1128,19 +1165,20 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1164,6 +1202,9 @@ case $os in -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1176,6 +1217,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1197,6 +1241,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1219,6 +1266,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1255,6 +1305,9 @@ case $os in -kaos*) os=-kaos ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1335,6 +1388,9 @@ case $basic_machine in *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1467,9 +1523,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; diff --git a/debian/NEWS.Debian b/debian/NEWS.Debian new file mode 100644 index 0000000..89af372 --- /dev/null +++ b/debian/NEWS.Debian @@ -0,0 +1,9 @@ +spamass-milter (0.3.0-2) unstable; urgency=low + + * spamass-milter now has a (currently not available upstream) -I option + which will allow authenticated senders to skip SA checks in outbound + mail. As this option is not yet integrated in upstream, the actually + command line option may change in the future. You Have Been Warned. + + -- Don Armstrong Fri, 23 Dec 2005 03:28:31 -0800 + diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..60e5d86 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,74 @@ +-------------------------------------------------------------- + Integrating spamass-milter into your sendmail installation +-------------------------------------------------------------- + +You will need to edit /etc/mail/sendmail.mc and add an +INPUT_MAIL_FILTER line that connects to the spamass-milter socket. + +By default the spamass-milter socket is +/var/run/sendmail/spamass.sock; so your INPUT_MAIL_FILTER should look +something like: + + # spamassassin settings + INPUT_MAIL_FILTER(`spamassassin', + `S=local:/var/run/sendmail/spamass.sock, F=, + T=S:4m;R:4m;E:10m')dnl + +Briefly, the F=, tells sendmail to just pass the connection through if +the milter fails. This is most likely the setting you want. If you +want to temporarily fail a connection, you can set F=T. You almost +definitely don't want to reject connections, but if necessary, you can +do that by setting F=R. + +You may also need to adjust these timeout settings, as spamd can be +sluggish on a slow machine. S is the timeout for sending information +from the MTA to a filter. R is the timeout for reading a reply from +the filter. E is the overall timeout between sending end-of-message to +filter and waiting for the final acknowledgment. + +The settings above seem to work well on a Celeron 466 that receives +around 1000 emails an hour. You may wish to adjust them according to +your needs. + +See http://www.sendmail.com/partner/resources/development/milter_api/installation.html +and http://www.sendmail.org/m4/adding_mailfilters.html#INPUT_MAIL_FILTER +for more information on milters. + +------------------------------------------------------------- + Adjusting how spamass-milter is started +------------------------------------------------------------- + +You can adjust how spamass-milter starts, and the options it calls +spamc with by adjusting /etc/default/spamass-milter. OPTIONS is passed +directly to spamass-milter by /etc/init.d/spamass-milter. + +------------------------------------------------------------- +Debugging spamass-milter +------------------------------------------------------------- + +As spamass-milter is still undergoing development, you may see bugs +from time to time. + +If spamass-milter is segfaulting (SEGV or SIG 11) please build a +debugging version of the spamass-milter package and install it: + +mkdir temp; +cd temp; +apt-get source spamass-milter; +apt-get build-dep spamass-milter; +cd spamass-milter-*; +DEB_BUILD_OPTIONS='nostrip' CXXFLAGS='-O0 -g' fakeroot debian/rules clean binary; +dpkg -i spamass-milter*.deb; + +Then turn on coredumps (ulimit -c unlimited), and start spamass-milter +as usual (/etc/init.d/spamass-milter start). + +When spamass-milter cores, run gdb on the core, ala: +gdb /usr/sbin/spamass-milter /foo/corefile.pid +thread apply all where +bt +q + +and send the results along with your bug report using reportbug. + + -- Don Armstrong , Wed Feb 9 14:58:46 2005 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..f4f4fb3 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,85 @@ +spamass-milter (0.3.0-2) unstable; urgency=low + + * Add -I option to stop delaying mail from authenticated users. Thanks to + Paul Traina for the patch. (closes: #301755) + * Delete config.h, config.log, and config.status in the clean target + * Update standards version (no changes) + + -- Don Armstrong Fri, 23 Dec 2005 05:12:38 -0800 + +spamass-milter (0.3.0-1) unstable; urgency=low + + * New upstream release (closes: #295586) + * Include sendmail.mc in the reportbug script + * Stop using cdbs + * Specify path to spamc and sendmail directly to eliminate (useless) + build dependencies on spamc and sendmail + + -- Don Armstrong Tue, 1 Mar 2005 18:20:21 -0800 + +spamass-milter (0.2.0-7) unstable; urgency=low + + * Updates to deal with changes in spamassassin 3.0 + - hits is now score in the X-Spam-Status: header (closes: #273798) + * Parse user+detail@foo.com addresses correctly (load preferences of the + user user instead of the user+detail user.) + * Uploaded by Stephen Gran + + -- Don Armstrong Thu, 30 Sep 2004 13:56:17 -0700 + +spamass-milter (0.2.0-6) unstable; urgency=low + + * Add patch from cvs to create pidfile and use it in init script to + avoid start-stop-daemon needing /proc (closes: #216455) + * Use cdbs + - Add lintian override as the config.* patches aren't applied until buildtime + * Migrate patches to debian/patches + * Init scripts now send the right signal to stop spamass-milter + * Uploaded by Stephen Gran + + -- Don Armstrong Tue, 24 Feb 2004 10:09:09 -0800 + +spamass-milter (0.2.0-5) unstable; urgency=low + + * Changed recommends: spamd to spamassassin (closes: #204139) + * Fix typo in init script (oknod should be oknodo) (closes: #204301) + * Add debugging howto section to README.Debian + * Uploaded by Stephen Gran + + -- Don Armstrong Fri, 29 Aug 2003 18:00:05 -0700 + +spamass-milter (0.2.0-4) unstable; urgency=low + + * Add missing build-depends on groff + - Fixes FTBFS on autobuilders. + + * Update Standards Version to 3.6.0 + + -- Don Armstrong Wed, 30 Jul 2003 01:32:00 -0700 + +spamass-milter (0.2.0-3) unstable; urgency=low + + * Patch by Valentin Chopov to fix segfaults on + empty message bodies. [The "bob" patch] + + -- Don Armstrong Mon, 21 Jul 2003 12:48:02 -0700 + +spamass-milter (0.2.0-2) unstable; urgency=low + + * Removed bashism from /etc/init.d/spamass-milter [s/source/./] as + suggested and noticed by Joost van Baal . + + -- Don Armstrong Sun, 20 Jul 2003 01:13:18 -0700 + +spamass-milter (0.2.0-1) unstable; urgency=low + + * New upstream release + + -- Don Armstrong Thu, 26 Jun 2003 20:38:15 -0400 + +spamass-milter (0.1.3a-1) unstable; urgency=low + + * Initial debian packaging + + -- Don Armstrong Thu, 30 Jan 2003 01:24:44 -0500 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +4 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..e0f8407 --- /dev/null +++ b/debian/control @@ -0,0 +1,23 @@ +Source: spamass-milter +Section: mail +Priority: extra +Standards-Version: 3.6.2 +Build-Depends: libmilter-dev, debhelper (>= 4), groff-base +Maintainer: Don Armstrong + +Package: spamass-milter +Section: mail +Priority: extra +Architecture: any +Depends: ${shlibs:Depends}, spamc, sendmail +Recommends: spamassassin +Description: sendmail milter for filtering mail through spamassassin + A sendmail milter used to filter mail through spamassassin (spamc) + early in the delivery process. Enables site wide filtering through + spamassassin without speed penalties incured by setting up and + tearing down procmail processes for each e-mail. + . + - Administrator (or user) specified rejection threshold + - User specific spamassassin settings + - Header-only modification + Homepage: http://savannah.nongnu.org/projects/spamass-milt/ diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..6af49a8 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,12 @@ +Authors: Georg C. F. Greve + Michael Brown + Dan Nelson +Webpage: http://savannah.nongnu.org/projects/spamass-milt/ +Download: http://savannah.nongnu.org/download/spamass-milt/ +Debianized: Don Armstrong Thu, 30 Jan 2003 01:26:45 -0500 + +Copyright: Copyright (c) 2002 Georg C. F. Greve , + all rights maintained by FSF Europe e.V., + Villa Vogelsang, Antonienallee 1, 45279 Essen, Germany + +License: GPL, available at /usr/share/common-licenses/GPL diff --git a/debian/patches/01_automake_config.guess.diff b/debian/patches/01_automake_config.guess.diff new file mode 100644 index 0000000..51b2488 --- /dev/null +++ b/debian/patches/01_automake_config.guess.diff @@ -0,0 +1,292 @@ +--- config.guess 2004-12-30 08:00:40.000000000 -0800 ++++ /usr/share/automake-1.7/config.guess 2004-12-23 18:40:32.000000000 -0800 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +-timestamp='2003-07-02' ++timestamp='2004-11-12' + + # 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 +@@ -53,7 +53,7 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO +@@ -197,15 +197,21 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; ++ amd64:OpenBSD:*:*) ++ echo x86_64-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- arc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ cats:OpenBSD:*:*) ++ echo arm-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; ++ luna88k:OpenBSD:*:*) ++ echo m88k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +@@ -221,25 +227,33 @@ + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- pmax:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; + sgi:OpenBSD:*:*) +- echo mipseb-unknown-openbsd${UNAME_RELEASE} ++ echo mips64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- wgrisc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit 0 ;; ++ macppc:MirBSD:*:*) ++ echo powerppc-unknown-mirbsd${UNAME_RELEASE} ++ exit 0 ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit 0 ;; + alpha:OSF1:*:*) +- if test $UNAME_RELEASE = "V4.0"; then ++ case $UNAME_RELEASE in ++ *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` +- fi ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU +@@ -277,14 +291,12 @@ + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac ++ # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit 0 ;; +- Alpha*:OpenVMS:*:*) +- echo alpha-hp-vms ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? +@@ -307,6 +319,12 @@ + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit 0 ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; +@@ -327,7 +345,7 @@ + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; +- DRS?6000:UNIX_SV:4.2*:7*) ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; +@@ -399,6 +417,9 @@ + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; +@@ -734,7 +755,7 @@ + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) +- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +@@ -742,6 +763,11 @@ + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; +@@ -751,22 +777,8 @@ + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; +- *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) +- # Determine whether the default compiler uses glibc. +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #if __GLIBC__ >= 2 +- LIBC=gnu +- #else +- LIBC= +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` +- # GNU/FreeBSD systems have a "k" prefix to indicate we are using +- # FreeBSD's kernel, but not the complete OS. +- case ${LIBC} in gnu) kernel_only='k' ;; esac +- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} ++ *:FreeBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin +@@ -799,8 +811,13 @@ + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) ++ # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; +@@ -810,9 +827,18 @@ + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit 0 ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; +@@ -948,6 +974,9 @@ + LIBC=gnuaout + #endif + #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 +@@ -978,6 +1007,9 @@ + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; +@@ -1047,9 +1079,9 @@ + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; +- M68*:*:R3V[567]*:*) ++ M68*:*:R3V[5678]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` +@@ -1147,9 +1179,10 @@ + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) +- case `uname -p` in ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in + *86) UNAME_PROCESSOR=i686 ;; +- powerpc) UNAME_PROCESSOR=powerpc ;; ++ unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; +@@ -1164,7 +1197,7 @@ + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; +- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) ++ NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) +@@ -1208,6 +1241,19 @@ + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit 0 ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms && exit 0 ;; ++ I*) echo ia64-dec-vms && exit 0 ;; ++ V*) echo vax-dec-vms && exit 0 ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/debian/patches/02_automake_config.sub.diff b/debian/patches/02_automake_config.sub.diff new file mode 100644 index 0000000..e82076a --- /dev/null +++ b/debian/patches/02_automake_config.sub.diff @@ -0,0 +1,375 @@ +--- config.sub 2004-12-30 08:00:40.000000000 -0800 ++++ /usr/share/automake-1.7/config.sub 2004-12-23 18:40:32.000000000 -0800 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +-timestamp='2003-07-04' ++timestamp='2004-11-30' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -70,7 +70,7 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO +@@ -118,7 +118,8 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ ++ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -144,7 +145,7 @@ + -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) ++ -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; +@@ -228,14 +229,15 @@ + | a29k \ + | 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 \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ +- | ip2k \ +- | m32r | m68000 | m68k | m88k | mcore \ ++ | ip2k | iq2000 \ ++ | m32r | m32rle | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -247,6 +249,7 @@ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ +@@ -259,12 +262,12 @@ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ ++ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ +- | x86 | xscale | xstormy16 | xtensa \ ++ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; +@@ -292,20 +295,20 @@ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | amd64-* | arc-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ +- | clipper-* | cydra-* \ ++ | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* \ +- | m32r-* \ ++ | ip2k-* | iq2000-* \ ++ | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +@@ -319,11 +322,13 @@ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ + | msp430-* \ +- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ +@@ -332,14 +337,14 @@ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ +- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ +- | xtensa-* \ ++ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; +@@ -359,6 +364,9 @@ + basic_machine=a29k-amd + os=-udi + ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout +@@ -376,6 +384,9 @@ + amd64) + basic_machine=x86_64-pc + ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + amdahl) + basic_machine=580-amdahl + os=-sysv +@@ -435,12 +446,27 @@ + basic_machine=j90-cray + os=-unicos + ;; ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp ++ ;; ++ cr16c) ++ basic_machine=cr16c-unknown ++ os=-elf ++ ;; + crds | unos) + basic_machine=m68k-crds + ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; +@@ -463,6 +489,10 @@ + basic_machine=m88k-motorola + os=-sysv3 + ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx +@@ -641,10 +671,6 @@ + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; +- mmix*) +- basic_machine=mmix-knuth +- os=-mmixware +- ;; + monitor) + basic_machine=m68k-rom68k + os=-coff +@@ -725,10 +751,6 @@ + np1) + basic_machine=np1-gould + ;; +- nv1) +- basic_machine=nv1-cray +- os=-unicosmp +- ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -740,6 +762,10 @@ + basic_machine=or32-unknown + os=-coff + ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose +@@ -960,6 +986,10 @@ + tower | tower-32) + basic_machine=m68k-ncr + ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; + udi29k) + basic_machine=a29k-amd + os=-udi +@@ -1003,6 +1033,10 @@ + basic_machine=hppa1.1-winbond + os=-proelf + ;; ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; +@@ -1033,6 +1067,9 @@ + romp) + basic_machine=romp-ibm + ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; + rs6000) + basic_machine=rs6000-ibm + ;; +@@ -1055,7 +1092,7 @@ + sh64) + basic_machine=sh64-unknown + ;; +- sparc | sparcv9 | sparcv9b) ++ sparc | sparcv8 | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) +@@ -1128,19 +1165,20 @@ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ +- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1164,6 +1202,9 @@ + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; +@@ -1176,6 +1217,9 @@ + -opened*) + os=-openedition + ;; ++ -os400*) ++ os=-os400 ++ ;; + -wince*) + os=-wince + ;; +@@ -1197,6 +1241,9 @@ + -atheos*) + os=-atheos + ;; ++ -syllable*) ++ os=-syllable ++ ;; + -386bsd) + os=-bsd + ;; +@@ -1219,6 +1266,9 @@ + -sinix*) + os=-sysv4 + ;; ++ -tpf*) ++ os=-tpf ++ ;; + -triton*) + os=-sysv3 + ;; +@@ -1255,6 +1305,9 @@ + -kaos*) + os=-kaos + ;; ++ -zvmoe) ++ os=-zvmoe ++ ;; + -none) + ;; + *) +@@ -1335,6 +1388,9 @@ + *-ibm) + os=-aix + ;; ++ *-knuth) ++ os=-mmixware ++ ;; + *-wec) + os=-proelf + ;; +@@ -1467,9 +1523,15 @@ + -mvs* | -opened*) + vendor=ibm + ;; ++ -os400*) ++ vendor=ibm ++ ;; + -ptx*) + vendor=sequent + ;; ++ -tpf*) ++ vendor=ibm ++ ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; diff --git a/debian/patches/10_dont_handle_authenticated_users.diff b/debian/patches/10_dont_handle_authenticated_users.diff new file mode 100644 index 0000000..23cbb0d --- /dev/null +++ b/debian/patches/10_dont_handle_authenticated_users.diff @@ -0,0 +1,91 @@ + +--- spamass-milter.cpp 2005-02-04 23:03:22.000000000 -0800 ++++ spamass-milter.cpp 2005-03-27 17:13:50.595882304 -0800 +@@ -169,6 +169,7 @@ + char *spambucket; + bool flag_full_email = false; /* pass full email address to spamc */ + bool flag_expand = false; /* alias/virtusertable expansion */ ++bool ignore_authenticated_senders = false; + + #if defined(__FreeBSD__) /* popen bug - see PR bin/50770 */ + static pthread_mutex_t popen_mutex = PTHREAD_MUTEX_INITIALIZER; +@@ -180,7 +181,7 @@ + main(int argc, char* argv[]) + { + int c, err = 0; +- const char *args = "fd:mMp:P:r:u:D:i:b:B:e:x"; ++ const char *args = "fd:mMp:P:r:u:D:i:Ib:B:e:x"; + char *sock = NULL; + bool dofork = false; + char *pidfilename = NULL; +@@ -212,6 +213,10 @@ + debug(D_MISC, "Parsing ignore list"); + parse_networklist(optarg, &ignorenets); + break; ++ case 'I': ++ debug(D_MISC, "Ignore authenticated senders"); ++ ignore_authenticated_senders = true; ++ break; + case 'm': + dontmodifyspam = true; + smfilter.xxfi_flags &= ~SMFIF_CHGBODY; +@@ -279,7 +284,7 @@ + cout << PACKAGE_NAME << " - Version " << PACKAGE_VERSION << endl; + cout << "SpamAssassin Sendmail Milter Plugin" << endl; + cout << "Usage: spamass-milter -p socket [-b|-B bucket] [-d xx[,yy...]] [-D host]" << endl; +- cout << " [-e defaultdomain] [-f] [-i networks] [-m] [-M]" << endl; ++ cout << " [-e defaultdomain] [-f] [-i networks] [-I] [-m] [-M]" << endl; + cout << " [-P pidfile] [-r nn] [-u defaultuser] [-x]" << endl; + cout << " [-- spamc args ]" << endl; + cout << " -p socket: path to create socket" << endl; +@@ -293,6 +298,7 @@ + cout << " -f: fork into background" << endl; + cout << " -i: skip (ignore) checks from these IPs or netblocks" << endl; + cout << " example: -i 192.168.12.5,10.0.0.0/8,172.16/255.255.0.0" << endl; ++ cout << " -I: skip (ignore) checks if sender is authenticated" << endl; + cout << " -m: don't modify body, Content-type: or Subject:" << endl; + cout << " -M: don't modify the message at all" << endl; + cout << " -P pidfile: Put processid in pidfile" << endl; +@@ -761,6 +767,22 @@ + struct context *sctx = (struct context *)smfi_getpriv(ctx); + char *queueid; + ++ if (ignore_authenticated_senders) ++ { ++ char *auth_authen; ++ ++ auth_authen = smfi_getsymval(ctx, "{auth_authen}"); ++ debug(D_MISC, "auth_authen=%s", auth_authen ?: ""); ++ ++ if (auth_authen) ++ { ++ debug(D_MISC, "sender authenticated (%s) - accepting message", ++ auth_authen); ++ debug(D_FUNC, "mlfi_envfrom: exit ignore"); ++ return SMFIS_ACCEPT; ++ } ++ } ++ + debug(D_FUNC, "mlfi_envfrom: enter"); + try { + // launch new SpamAssassin + +--- spamass-milter.1.in 2004-03-18 10:37:08.000000000 -0800 ++++ spamass-milter.1.in 2005-03-27 20:23:09.552408021 -0800 +@@ -14,6 +14,7 @@ + .Op Fl e Ar defaultdomain + .Op Fl f + .Op Fl i Ar networks ++.Op Fl I + .Op Fl m + .Op Fl M + .Op Fl P Ar pidfile +@@ -119,6 +120,8 @@ + flags will append to the list. + For example, if you list all your internal networks, no outgoing emails + will be filtered. ++.It Fl I ++Ignores messages if the sender has authenticated via SMTP AUTH. + .It Fl m + Disables modification of the + .Ql Subject: diff --git a/debian/patches/disabled_10_segfault_on_empty_body.patch b/debian/patches/disabled_10_segfault_on_empty_body.patch new file mode 100644 index 0000000..f80dfba --- /dev/null +++ b/debian/patches/disabled_10_segfault_on_empty_body.patch @@ -0,0 +1,15 @@ +--- spamass-milter-0.2.0.orig/spamass-milter.cpp ++++ spamass-milter-0.2.0/spamass-milter.cpp +@@ -351,6 +378,12 @@ + string::size_type eoh = ( eoh1 < eoh2 ? eoh1 : eoh2 ); + string::size_type bob = assassin->d().find_first_not_of("\r\n", eoh); + ++ // Patch by Valentin Chopov to fix segfault on ++ // empty body ++ if (bob == string::npos) { ++ bob = assassin->d().size(); ++ } ++ + update_or_insert(assassin, ctx, assassin->spam_flag(), &SpamAssassin::set_spam_flag, "X-Spam-Flag"); + update_or_insert(assassin, ctx, assassin->spam_status(), &SpamAssassin::set_spam_status, "X-Spam-Status"); + diff --git a/debian/patches/disabled_15_write_to_pid_file.patch b/debian/patches/disabled_15_write_to_pid_file.patch new file mode 100644 index 0000000..a047533 --- /dev/null +++ b/debian/patches/disabled_15_write_to_pid_file.patch @@ -0,0 +1,99 @@ +--- spamass-milt/spamass-milter.cpp:1.69 Fri Sep 12 05:45:05 2003 ++++ spamass-milt/spamass-milter.cpp Tue Oct 21 21:40:32 2003 +@@ -174,7 +174,7 @@ + main(int argc, char* argv[]) + { + int c, err = 0; +- const char *args = "p:fd:mr:u:D:i:b:B:"; ++ const char *args = "fd:mp:P:r:u:D:i:b:B:"; + char *sock = NULL; + bool dofork = false; + +@@ -177,15 +177,14 @@ + const char *args = "p:fd:mr:u:D:i:b:B:"; + char *sock = NULL; + bool dofork = false; ++ char *pidfilename = NULL; ++ FILE *pidfile = NULL; + + openlog("spamass-milter", LOG_PID, LOG_MAIL); + + /* Process command line options */ + while ((c = getopt(argc, argv, args)) != -1) { + switch (c) { +- case 'p': +- sock = strdup(optarg); +- break; + case 'f': + dofork = true; + break; +@@ -215,6 +209,12 @@ + dontmodifyspam = true; + smfilter.xxfi_flags &= ~(SMFIF_CHGBODY|SMFIF_CHGHDRS); + break; ++ case 'p': ++ sock = strdup(optarg); ++ break; ++ case 'P': ++ pidfilename = strdup(optarg); ++ break; + case 'r': + flag_reject = true; + reject_score = atoi(optarg); +@@ -287,18 +287,37 @@ + exit(EX_USAGE); + } + +- if (dofork == true) { +- switch(fork()) { +- case -1: /* Uh-oh, we have a problem forking. */ +- fprintf(stderr, "Uh-oh, couldn't fork!\n"); +- exit(errno); +- break; +- case 0: /* Child */ +- break; +- default: /* Parent */ +- exit(0); ++ if (pidfilename) ++ { ++ unlink(pidfilename); ++ pidfile = fopen(pidfilename,"w"); ++ if (!pidfile) ++ { ++ fprintf(stderr, "Could not open pidfile: %s\n", strerror(errno)); ++ exit(1); ++ } ++ /* leave the file open through the fork, since we don't know our pid ++ yet ++ */ ++ } ++ ++ ++ if (dofork == true) ++ { ++ if (daemon(0, 0) == -1) ++ { ++ fprintf(stderr, "daemon() failed: %s\n", strerror(errno)); ++ exit(1); + } + } ++ ++ if (pidfile) ++ { ++ fprintf(pidfile, "%ld\n", (long)getpid()); ++ fclose(pidfile); ++ pidfile = NULL; ++ } ++ + { + struct stat junk; + if (stat(sock,&junk) == 0) unlink(sock); +@@ -314,7 +333,9 @@ + debug(D_ALWAYS, "spamass-milter %s starting", PACKAGE_VERSION); + err = smfi_main(); + debug(D_ALWAYS, "spamass-milter %s exiting", PACKAGE_VERSION); ++ if (pidfilename) ++ unlink(pidfilename); + return err; + } + diff --git a/debian/patches/disabled_20_pidfile_documentation.patch b/debian/patches/disabled_20_pidfile_documentation.patch new file mode 100644 index 0000000..4ffe0b7 --- /dev/null +++ b/debian/patches/disabled_20_pidfile_documentation.patch @@ -0,0 +1,23 @@ +--- spamass-milter.1.in.orig 2003-06-25 09:17:34.000000000 -0700 ++++ spamass-milter.1.in 2004-02-18 20:55:37.000000000 -0800 +@@ -12,6 +12,7 @@ + .Op Fl d Ar debugflags + .Op Fl D Ar host + .Op Fl f ++.Op Fl P Ar pidfile + .Op Fl i Ar networks + .Op Fl m + .Op Fl r Ar nn +@@ -88,6 +89,12 @@ + Causes + .Nm + to fork into the background. ++.It Fl P Ar pidfile ++Causes ++.Nm ++to write out it's pid to pidfile. ++.Ar pidfile ++is the name of the pidfile to write out. + .It Fl i Ar networks + Ignores messages if the originating IP is in the network(s) listed. + The message will be passed through without calling SpamAssassin at all. diff --git a/debian/patches/disabled_25_use_score_as_well_as_hit_spamass_3.0.patch b/debian/patches/disabled_25_use_score_as_well_as_hit_spamass_3.0.patch new file mode 100644 index 0000000..a49ecbf --- /dev/null +++ b/debian/patches/disabled_25_use_score_as_well_as_hit_spamass_3.0.patch @@ -0,0 +1,12 @@ +--- spamass-milter-0.2.0/spamass-milter.cpp.orig 2004-08-13 14:08:55.000000000 -0700 ++++ spamass-milter-0.2.0/spamass-milter.cpp 2004-08-13 14:12:16.000000000 -0700 +@@ -366,6 +366,9 @@ + int score, rv; + const char *spam_status = assassin->spam_status().c_str(); + rv = sscanf(spam_status,"%*s hits=%d", &score); ++ /* Spamassassin >= 3 uses score= instead of hit= */ ++ if (rv != 1) ++ rv = sscanf(spam_status,"%*s score=%d", &score); + if (rv != 1) + debug(D_ALWAYS, "Could not extract score from <%s>", spam_status); + else diff --git a/debian/patches/disabled_30_deal_correctly_with_plus.patch b/debian/patches/disabled_30_deal_correctly_with_plus.patch new file mode 100644 index 0000000..3ed4da7 --- /dev/null +++ b/debian/patches/disabled_30_deal_correctly_with_plus.patch @@ -0,0 +1,16 @@ +--- spamass-milter.cpp.orig 2004-09-30 13:47:49.000000000 -0700 ++++ spamass-milter.cpp 2004-09-30 13:50:15.000000000 -0700 +@@ -1375,8 +1375,11 @@ + SpamAssassin::local_user() + { + // assuming we have a recipient in the form: +- // we return 'username' +- return _rcpt.substr(1,_rcpt.find('@')-1); ++ // (angle brackets optional) we return 'username' ++ if (_rcpt[0] == '<') ++ return _rcpt.substr(1,_rcpt.find_first_of("@+")-1); ++ else ++ return _rcpt.substr(0,_rcpt.find_first_of("@+")); + } + + int diff --git a/debian/reportbug b/debian/reportbug new file mode 100644 index 0000000..a0b030f --- /dev/null +++ b/debian/reportbug @@ -0,0 +1,31 @@ +#!/bin/sh -e + +# Stolen from apt's reportbug scripts + +# reportbug #169495 +if [ -z "$YESNO" ]; then + YESNO=$"yYnN" +fi + +cat <&3 + cat /etc/default/spamass-milter >&3 || true + echo -e "\n-- /etc/init.d/spamass-milter --\n" + cat /etc/init.d/spamass-milter >&3 || true + echo -e "\n-- /etc/mail/sendmail.mc --\n" + cat /etc/mail/sendmail.mc >&3 || true +fi diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..6404cea --- /dev/null +++ b/debian/rules @@ -0,0 +1,94 @@ +#!/usr/bin/make -f + +#DH_VERBOSE = 1 + + +PREFIX=$(shell pwd)/debian/spamass-milter/usr + +patch: patch-stamp +patch-stamp: + dh_testdir + + if [ -e debian/patches ]; then \ + for a in `ls debian/patches/*.diff`; do \ + patch -f -p0 < $$a; \ + done; \ + fi; + + rm -f unpatch-stamp; + touch $@ + +unpatch: unpatch-stamp +unpatch-stamp: + dh_testdir + + if [ -e debian/patches ]; then \ + for a in `ls debian/patches/*.diff`; do \ + patch -f -p0 -R < $$a; \ + done; \ + fi; + + rm -f patch-stamp + touch $@ + + +configure: configure-stamp +configure-stamp: + +# SPAMC and SENDMAIL are the location of the spamc and sendmail binary, respectively. PREFIX is the location to install to. +# We must specify --mandir because for some ungodly reason, it's being installed into /usr/man by default + SPAMC="/usr/bin/spamc" SENDMAIL="/usr/sbin/sendmail" ./configure --prefix=$(PREFIX) --mandir=$(PREFIX)/share/man + touch $@ + +build: configure build-stamp +build-stamp: + dh_testdir + + $(MAKE) + + touch $@ + +clean: + dh_testdir + dh_testroot + + rm -f build-stamp + rm -f patch-stamp + rm -f unpatch-stamp + rm -f configure-stamp + + if [ -e Makefile -a -e config.status ]; then \ + $(MAKE) clean; \ + fi +# the clean target doesn't nuke these, so we kill them here. + rm -f config.log config.h config.status + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + $(MAKE) install + + +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs ChangeLog + dh_installdocs NEWS + dh_installman + dh_installinit + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-arch +.PHONY: build clean binary-arch binary install diff --git a/debian/spamass-milter.default b/debian/spamass-milter.default new file mode 100644 index 0000000..dad5458 --- /dev/null +++ b/debian/spamass-milter.default @@ -0,0 +1,14 @@ +# spamass-milt startup defaults + +# OPTIONS are passed directly to spamass-milter. +# man spamass-milter for details + +# Default, use the nobody user as the default user, ignore messages +# from localhost +OPTIONS="-u nobody -i 127.0.0.1" + +# Reject emails with spamassassin scores > 15. +#OPTIONS="-r 15" + +# Do not modify Subject:, Content-Type: or body. +#OPTIONS="-m" diff --git a/debian/spamass-milter.init b/debian/spamass-milter.init new file mode 100644 index 0000000..fcb8611 --- /dev/null +++ b/debian/spamass-milter.init @@ -0,0 +1,86 @@ +#!/bin/sh +# +# $Id: spamass-milter,v 1.4 2002/07/24 16:19:53 dnelson Exp $ +# +# Sample init script for Debian GNU/Linux +# +# Copyright (c) 2002 Georg C. F. Greve , +# all rights maintained by FSF Europe e.V., +# Villa Vogelsang, Antonienallee 1, 45279 Essen, Germany +# +# 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 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Contact: +# Michael Brown + +# This init script was modified on Thu, 30 Jan 2003 02:06:04 -0500 by +# Don Armstrong from contrib/spamass-milter to +# allow force-reload and options specified in +# /etc/default/spamass-milter necessary for inclusion in debian. + + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/spamass-milter +SOCKET=/var/run/sendmail/spamass.sock +PIDFILE=/var/run/spamass.pid +DESC="Sendmail milter plugin for SpamAssassin" + +DEFAULT=/etc/default/spamass-milter +OPTIONS="" + +test -x $DAEMON || exit 0 + +if [ -r $DEFAULT ]; then + . $DEFAULT; +fi; + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + + start-stop-daemon --start -p $PIDFILE --exec $DAEMON -- -P $PIDFILE -f -p $SOCKET $OPTIONS + + echo "${DAEMON}" + ;; + stop) + echo -n "Stopping $DESC: " + + start-stop-daemon --stop -p $PIDFILE --signal 3 --exec $DAEMON + /bin/sleep 5s + /bin/rm -f $SOCKET + + echo "${DAEMON}" + ;; + force-reload | restart) + echo -n "Restarting $DESC: " + + start-stop-daemon --stop -p $PIDFILE --signal 3 --exec $DAEMON + /bin/sleep 5s + /bin/rm -f $SOCKET + start-stop-daemon --start -p $PIDFILE --exec $DAEMON -- -P $PIDFILE -f -p $SOCKET $OPTIONS + + echo "${DAEMON}" + + ;; + *) + N=$0 + echo "Usage: $N {start|stop|restart}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/spamass-milter.1 b/spamass-milter.1 new file mode 100644 index 0000000..98b8a06 --- /dev/null +++ b/spamass-milter.1 @@ -0,0 +1,219 @@ +.\" $Id: spamass-milter.1.in,v 1.19 2004/03/18 18:37:08 dnelson Exp $ +.Dd July 25, 2001 +.Os +.Dt SPAMASS_MILTER 8 +.Sh NAME +.Nm spamass-milter +.Nd sendmail milter for passing emails through SpamAssassin +.Sh SYNOPSIS +.Nm +.Fl p Ar socket +.Op Fl b Ns | Ns Fl B Ar spamaddress +.Op Fl d Ar debugflags +.Op Fl D Ar host +.Op Fl e Ar defaultdomain +.Op Fl f +.Op Fl i Ar networks +.Op Fl m +.Op Fl M +.Op Fl P Ar pidfile +.Op Fl r Ar nn +.Op Fl u Ar defaultuser +.Op Fl x +.Op Fl - Ar spamc flags ... +.Sh DESCRIPTION +The +.Nm +utility is a sendmail milter that checks and modifies incoming email +messages with SpamAssassin. +.Pp +The following options are available: +.Bl -tag -width "indent" +.It Fl p Ar socket +Specifies the pathname of a socket to create for communication with +.Nm sendmail . +If it is removed, +.Nm sendmail +will not be able to access the milter. +This may cause messages to bounce, queue, or be passed through +unmiltered, depending on the parameters in +.Nm sendmail Ns 's .cf file. +.It Fl b Ar spamaddress +Redirects tagged spam to the specified email address. +All envelope recipients are removed, and inserted into the message as +.Ql X-Spam-Orig-To: +headers. +.It Fl B Ar spamaddress +Same as +.Fl b , +except the original recipients are retained. +Only one of +.Fl b +and +.Fl B +may be used. +.It Fl d Ar debugflags +Enables logging. +.Ar debugflags +is a comma-separated list of tokens: +.Bl -tag -width "indent" +.It func +Entry and exit of internal functions. +.It misc +Other non-verbose logging. +.It net +Lookups of the ignored netblocks list. +.It poll +Low-level I/O to the child spamc process. +.It rcpt +Recipient processing. +.It spamc +High-level I/O to the child spamc process. +.It str +Calls to field lookup and string comparison functions. +.It uori +Calls to the update_or_insert function. +.It 1 +(historical) Same as +.Ar func,misc . +.It 2 +(historical) Same as +.Ar func,misc,poll . +.It 3 +(historical) Same as +.Ar func,misc,poll,str,uori . +.El +.It Fl D Ar host +Connects to a remote spamd server on +.Ar host , +instead of using one on localhost. +This option is deprecated; use +.Fl - Fl d Ar host +instead. +.It Fl e Ar defaultdomain +Pass the full user@domain address to spamc. +The default is to pass only the username part on the assumption that +all users are local. +This flag is useful if you are using an SQL (or other username) backend +with spamassassin and have listed the full address there. +If the recipient name has no domain part (if the recipient is on the +local machine for example), +.Ar defaultdomain +is added. +Requires the +.Fl u +flag. +.It Fl f +Causes +.Nm +to fork into the background. +.It Fl i Ar networks +Ignores messages if the originating IP is in the network(s) listed. +The message will be passed through without calling SpamAssassin at all. +.Ar networks +is a comma-separated list, where each element can be either an IP address +(nnn.nnn.nnn.nnn), a CIDR network (nnn.nnn.nnn.nnn/nn), or a network/netmask +pair (nnn.nnn.nnn.nnn/nnn.nnn.nnn.nnn). +Multiple +.Fl i +flags will append to the list. +For example, if you list all your internal networks, no outgoing emails +will be filtered. +.It Fl m +Disables modification of the +.Ql Subject: +and +.Ql Content-Type: +headers and +message body. +This is useful when SpamAssassin is configured with +.Ql "defang_mime 0" +and +.Ql "report_header 1" , +or when SA is simply used to add headers for postprocessing later. +Updating the body through the milter interface can be slow for large +messages. +.It Fl M +Like +.Fl m , +but also disables creation of any SpamAssassin +.Ql X-Spam-* +headers as well. +Both tagged and untagged mail gets passed through unchanged. +To be useful, this option should be used with the +.Fl r , +.Fl b , +or +.Fl B +flags. +If +.Fl b +is used, the +.Ql X-Spam-Orig-To: +headers will still be added. +.It Fl P Ar pidfile +Create the file +.Ar pidfile , +containing the processid of the milter. +.It Fl r Ar nn +Reject scanned email if it greater than or equal to +.Ar nn . +If +.Ar -1 , +reject scanned email if SpamAssassin tags it as spam (useful if you +are also using the +.Fl u +flag, and users have changed their required_hits value). +.Pp +For example, if you usually use procmail to redirect tagged email into +a separate folder just in case of false positives, you can use +.Fl r Ar 15 +and reject flagrant spam outright while still receiving low-scoring +messages. +.It Fl u Ar defaultuser +Pass the username part of the first recipient to spamc with the +.Fl u +flag. +This allows user preferences files to be used. +If the message is addressed to multiple recipients, the username +.Ar defaultuser +is passed instead. +.Pp +Note that +.Nm +does not know whether an email is incoming or outgoing, so a message +from +.Aq user1@localdomain.com +to +.Aq user2@yahoo.com +will make +.Nm +pass +.Fl u Ar user2 +to spamc. +.It Fl x +Pass the recipient address through +.Nm sendmail Fl bv , +which will perform virtusertable and alias expansion. +The resulting username is then passed to spamc. +Requires the +.Fl u +flag. +.It Fl - Ar spamc flags ... +Pass all remaining options to spamc. +This allows you to connect to a remote spamd with +.Fl d +or +.Fl p . +.El +.Sh FILES +.Bl -tag -width "indent" +.It Pa /usr/bin/spamc +client interface to SpamAssassin +.El +.Sh SEE ALSO +.Xr spamassassin 1 , +.Xr spamd 1 +.Sh AUTHORS +.An "Georg C. F. Greve" Aq greve@gnu.org +.An "Dan Nelson" Aq dnelson@allantgroup.com diff --git a/spamass-milter.1.in b/spamass-milter.1.in index 26c4900..f797760 100644 --- a/spamass-milter.1.in +++ b/spamass-milter.1.in @@ -14,6 +14,7 @@ .Op Fl e Ar defaultdomain .Op Fl f .Op Fl i Ar networks +.Op Fl I .Op Fl m .Op Fl M .Op Fl P Ar pidfile @@ -119,6 +120,8 @@ Multiple flags will append to the list. For example, if you list all your internal networks, no outgoing emails will be filtered. +.It Fl I +Ignores messages if the sender has authenticated via SMTP AUTH. .It Fl m Disables modification of the .Ql Subject: diff --git a/spamass-milter.cpp b/spamass-milter.cpp index 6cf8e4c..06e54f2 100644 --- a/spamass-milter.cpp +++ b/spamass-milter.cpp @@ -169,6 +169,7 @@ bool flag_bucket_only = false; char *spambucket; bool flag_full_email = false; /* pass full email address to spamc */ bool flag_expand = false; /* alias/virtusertable expansion */ +bool ignore_authenticated_senders = false; #if defined(__FreeBSD__) /* popen bug - see PR bin/50770 */ static pthread_mutex_t popen_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -180,7 +181,7 @@ int main(int argc, char* argv[]) { int c, err = 0; - const char *args = "fd:mMp:P:r:u:D:i:b:B:e:x"; + const char *args = "fd:mMp:P:r:u:D:i:Ib:B:e:x"; char *sock = NULL; bool dofork = false; char *pidfilename = NULL; @@ -212,6 +213,10 @@ main(int argc, char* argv[]) debug(D_MISC, "Parsing ignore list"); parse_networklist(optarg, &ignorenets); break; + case 'I': + debug(D_MISC, "Ignore authenticated senders"); + ignore_authenticated_senders = true; + break; case 'm': dontmodifyspam = true; smfilter.xxfi_flags &= ~SMFIF_CHGBODY; @@ -279,7 +284,7 @@ main(int argc, char* argv[]) cout << PACKAGE_NAME << " - Version " << PACKAGE_VERSION << endl; cout << "SpamAssassin Sendmail Milter Plugin" << endl; cout << "Usage: spamass-milter -p socket [-b|-B bucket] [-d xx[,yy...]] [-D host]" << endl; - cout << " [-e defaultdomain] [-f] [-i networks] [-m] [-M]" << endl; + cout << " [-e defaultdomain] [-f] [-i networks] [-I] [-m] [-M]" << endl; cout << " [-P pidfile] [-r nn] [-u defaultuser] [-x]" << endl; cout << " [-- spamc args ]" << endl; cout << " -p socket: path to create socket" << endl; @@ -293,6 +298,7 @@ main(int argc, char* argv[]) cout << " -f: fork into background" << endl; cout << " -i: skip (ignore) checks from these IPs or netblocks" << endl; cout << " example: -i 192.168.12.5,10.0.0.0/8,172.16/255.255.0.0" << endl; + cout << " -I: skip (ignore) checks if sender is authenticated" << endl; cout << " -m: don't modify body, Content-type: or Subject:" << endl; cout << " -M: don't modify the message at all" << endl; cout << " -P pidfile: Put processid in pidfile" << endl; @@ -761,6 +767,22 @@ mlfi_envfrom(SMFICTX* ctx, char** envfrom) struct context *sctx = (struct context *)smfi_getpriv(ctx); char *queueid; + if (ignore_authenticated_senders) + { + char *auth_authen; + + auth_authen = smfi_getsymval(ctx, "{auth_authen}"); + debug(D_MISC, "auth_authen=%s", auth_authen ?: ""); + + if (auth_authen) + { + debug(D_MISC, "sender authenticated (%s) - accepting message", + auth_authen); + debug(D_FUNC, "mlfi_envfrom: exit ignore"); + return SMFIS_ACCEPT; + } + } + debug(D_FUNC, "mlfi_envfrom: enter"); try { // launch new SpamAssassin diff --git a/stamp-h1 b/stamp-h1 new file mode 100644 index 0000000..4547fe1 --- /dev/null +++ b/stamp-h1 @@ -0,0 +1 @@ +timestamp for config.h