diff options
author | stas <stas@FreeBSD.org> | 2011-09-29 05:23:57 +0000 |
---|---|---|
committer | stas <stas@FreeBSD.org> | 2011-09-29 05:23:57 +0000 |
commit | f6e720bf7e3d09d00d73f389a5dac8efdce0eb8c (patch) | |
tree | cf5b65423910d126fddaaf04b885d0de3507d692 /tools | |
parent | 51b6601db456e699ea5d4843cbc7239ee92d9c13 (diff) | |
download | FreeBSD-src-f6e720bf7e3d09d00d73f389a5dac8efdce0eb8c.zip FreeBSD-src-f6e720bf7e3d09d00d73f389a5dac8efdce0eb8c.tar.gz |
- Flatten the vendor heimdal tree.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/Makefile.am | 53 | ||||
-rw-r--r-- | tools/Makefile.in | 805 | ||||
-rwxr-xr-x | tools/build.sh | 212 | ||||
-rw-r--r-- | tools/heimdal-build.sh | 295 | ||||
-rw-r--r-- | tools/heimdal-gssapi.pc.in | 14 | ||||
-rwxr-xr-x | tools/kdc-log-analyze.pl | 549 | ||||
-rw-r--r-- | tools/krb5-config.1 | 90 | ||||
-rwxr-xr-x | tools/krb5-config.in | 118 |
8 files changed, 2136 insertions, 0 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am new file mode 100644 index 0000000..db60f48 --- /dev/null +++ b/tools/Makefile.am @@ -0,0 +1,53 @@ +# $Id: Makefile.am 22413 2008-01-12 05:58:14Z lha $ + +include $(top_srcdir)/Makefile.am.common + +bin_SCRIPTS = krb5-config + +pkgconfigdir = $(libdir)/pkgconfig + +pkgconfig_DATA = heimdal-gssapi.pc + +man_MANS = krb5-config.1 + +if PKINIT +LIB_pkinit = -lhx509 +endif + +subst = sed -e "s!@PACKAGE\@!$(PACKAGE)!g" \ + -e "s!@VERSION\@!$(VERSION)!g" \ + -e "s!@prefix\@!$(prefix)!g" \ + -e "s!@exec_prefix\@!$(exec_prefix)!g" \ + -e "s!@libdir\@!$(libdir)!g" \ + -e "s!@includedir\@!$(includedir)!g" \ + -e "s!@LIB_crypt\@!$(LIB_crypt)!g" \ + -e "s!@LIB_dbopen\@!$(LIB_dbopen)!g" \ + -e "s!@INCLUDE_hcrypto\@!$(INCLUDE_hcrypto)!g" \ + -e "s!@LIB_hcrypto_appl\@!$(LIB_hcrypto_appl)!g" \ + -e "s!@LIB_dlopen\@!$(LIB_dlopen)!g" \ + -e "s!@LIB_door_create\@!$(LIB_door_create)!g" \ + -e "s!@LIB_pkinit\@!$(LIB_pkinit)!g" \ + -e "s!@LIBS\@!$(LIBS)!g" + +krb5-config: krb5-config.in + $(subst) $(srcdir)/krb5-config.in > $@.new + mv $@.new $@ + chmod +x $@ + +heimdal-gssapi.pc: heimdal-gssapi.pc.in + $(subst) $(srcdir)/heimdal-gssapi.pc.in > $@.new + mv $@.new $@ + +EXTRA_DIST = \ + $(man_MANS) \ + heimdal-build.sh \ + krb5-config.in \ + heimdal-gssapi.pc.in \ + kdc-log-analyze.pl + +CLEANFILES = \ + krb5-config \ + krb5-config.new \ + heimdal-gssapi.pc \ + heimdal-gssapi.pc.new + diff --git a/tools/Makefile.in b/tools/Makefile.in new file mode 100644 index 0000000..7fee343 --- /dev/null +++ b/tools/Makefile.in @@ -0,0 +1,805 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 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. + +@SET_MAKE@ + +# $Id: Makefile.am 22413 2008-01-12 05:58:14Z lha $ + +# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $ + +# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +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 = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/Makefile.am.common \ + $(top_srcdir)/cf/Makefile.am.common +subdir = tools +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \ + $(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \ + $(top_srcdir)/cf/broken-getaddrinfo.m4 \ + $(top_srcdir)/cf/broken-glob.m4 \ + $(top_srcdir)/cf/broken-realloc.m4 \ + $(top_srcdir)/cf/broken-snprintf.m4 $(top_srcdir)/cf/broken.m4 \ + $(top_srcdir)/cf/broken2.m4 $(top_srcdir)/cf/c-attribute.m4 \ + $(top_srcdir)/cf/capabilities.m4 \ + $(top_srcdir)/cf/check-compile-et.m4 \ + $(top_srcdir)/cf/check-getpwnam_r-posix.m4 \ + $(top_srcdir)/cf/check-man.m4 \ + $(top_srcdir)/cf/check-netinet-ip-and-tcp.m4 \ + $(top_srcdir)/cf/check-type-extra.m4 \ + $(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \ + $(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \ + $(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \ + $(top_srcdir)/cf/dlopen.m4 \ + $(top_srcdir)/cf/find-func-no-libs.m4 \ + $(top_srcdir)/cf/find-func-no-libs2.m4 \ + $(top_srcdir)/cf/find-func.m4 \ + $(top_srcdir)/cf/find-if-not-broken.m4 \ + $(top_srcdir)/cf/framework-security.m4 \ + $(top_srcdir)/cf/have-struct-field.m4 \ + $(top_srcdir)/cf/have-type.m4 $(top_srcdir)/cf/irix.m4 \ + $(top_srcdir)/cf/krb-bigendian.m4 \ + $(top_srcdir)/cf/krb-func-getlogin.m4 \ + $(top_srcdir)/cf/krb-ipv6.m4 $(top_srcdir)/cf/krb-prog-ln-s.m4 \ + $(top_srcdir)/cf/krb-readline.m4 \ + $(top_srcdir)/cf/krb-struct-spwd.m4 \ + $(top_srcdir)/cf/krb-struct-winsize.m4 \ + $(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \ + $(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \ + $(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \ + $(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \ + $(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \ + $(top_srcdir)/cf/roken-frag.m4 \ + $(top_srcdir)/cf/socket-wrapper.m4 $(top_srcdir)/cf/sunos.m4 \ + $(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \ + $(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \ + $(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/config.h +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(pkgconfigdir)" +binSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(bin_SCRIPTS) +depcomp = +am__depfiles_maybe = +SOURCES = +DIST_SOURCES = +man1dir = $(mandir)/man1 +MANS = $(man_MANS) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +pkgconfigDATA_INSTALL = $(INSTALL_DATA) +DATA = $(pkgconfig_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CANONICAL_HOST = @CANONICAL_HOST@ +CATMAN = @CATMAN@ +CATMANEXT = @CATMANEXT@ +CC = @CC@ +CFLAGS = @CFLAGS@ +COMPILE_ET = @COMPILE_ET@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DBLIB = @DBLIB@ +DEFS = @DEFS@ +DIR_com_err = @DIR_com_err@ +DIR_hcrypto = @DIR_hcrypto@ +DIR_hdbdir = @DIR_hdbdir@ +DIR_roken = @DIR_roken@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +GROFF = @GROFF@ +INCLUDES_roken = @INCLUDES_roken@ +INCLUDE_hcrypto = @INCLUDE_hcrypto@ +INCLUDE_hesiod = @INCLUDE_hesiod@ +INCLUDE_krb4 = @INCLUDE_krb4@ +INCLUDE_openldap = @INCLUDE_openldap@ +INCLUDE_readline = @INCLUDE_readline@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBADD_roken = @LIBADD_roken@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@ +LIB_NDBM = @LIB_NDBM@ +LIB_XauFileName = @LIB_XauFileName@ +LIB_XauReadAuth = @LIB_XauReadAuth@ +LIB_XauWriteAuth = @LIB_XauWriteAuth@ +LIB_bswap16 = @LIB_bswap16@ +LIB_bswap32 = @LIB_bswap32@ +LIB_com_err = @LIB_com_err@ +LIB_com_err_a = @LIB_com_err_a@ +LIB_com_err_so = @LIB_com_err_so@ +LIB_crypt = @LIB_crypt@ +LIB_db_create = @LIB_db_create@ +LIB_dbm_firstkey = @LIB_dbm_firstkey@ +LIB_dbopen = @LIB_dbopen@ +LIB_dlopen = @LIB_dlopen@ +LIB_dn_expand = @LIB_dn_expand@ +LIB_door_create = @LIB_door_create@ +LIB_el_init = @LIB_el_init@ +LIB_freeaddrinfo = @LIB_freeaddrinfo@ +LIB_gai_strerror = @LIB_gai_strerror@ +LIB_getaddrinfo = @LIB_getaddrinfo@ +LIB_gethostbyname = @LIB_gethostbyname@ +LIB_gethostbyname2 = @LIB_gethostbyname2@ +LIB_getnameinfo = @LIB_getnameinfo@ +LIB_getpwnam_r = @LIB_getpwnam_r@ +LIB_getsockopt = @LIB_getsockopt@ +LIB_hcrypto = @LIB_hcrypto@ +LIB_hcrypto_a = @LIB_hcrypto_a@ +LIB_hcrypto_appl = @LIB_hcrypto_appl@ +LIB_hcrypto_so = @LIB_hcrypto_so@ +LIB_hesiod = @LIB_hesiod@ +LIB_hstrerror = @LIB_hstrerror@ +LIB_kdb = @LIB_kdb@ +LIB_krb4 = @LIB_krb4@ +LIB_loadquery = @LIB_loadquery@ +LIB_logout = @LIB_logout@ +LIB_logwtmp = @LIB_logwtmp@ +LIB_openldap = @LIB_openldap@ +LIB_openpty = @LIB_openpty@ +LIB_otp = @LIB_otp@ +LIB_pidfile = @LIB_pidfile@ +LIB_readline = @LIB_readline@ +LIB_res_ndestroy = @LIB_res_ndestroy@ +LIB_res_nsearch = @LIB_res_nsearch@ +LIB_res_search = @LIB_res_search@ +LIB_roken = @LIB_roken@ +LIB_security = @LIB_security@ +LIB_setsockopt = @LIB_setsockopt@ +LIB_socket = @LIB_socket@ +LIB_syslog = @LIB_syslog@ +LIB_tgetent = @LIB_tgetent@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NROFF = @NROFF@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREADS_CFLAGS = @PTHREADS_CFLAGS@ +PTHREADS_LIBS = @PTHREADS_LIBS@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VERSIONING = @VERSIONING@ +VOID_RETSIGTYPE = @VOID_RETSIGTYPE@ +WFLAGS = @WFLAGS@ +WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@ +WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dpagaix_cflags = @dpagaix_cflags@ +dpagaix_ldadd = @dpagaix_ldadd@ +dpagaix_ldflags = @dpagaix_ldflags@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 +AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) +@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME +AM_CFLAGS = $(WFLAGS) +CP = cp +buildinclude = $(top_builddir)/include +LIB_getattr = @LIB_getattr@ +LIB_getpwent_r = @LIB_getpwent_r@ +LIB_odm_initialize = @LIB_odm_initialize@ +LIB_setpcred = @LIB_setpcred@ +HESIODLIB = @HESIODLIB@ +HESIODINCLUDE = @HESIODINCLUDE@ +NROFF_MAN = groff -mandoc -Tascii +LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS) +@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \ +@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la + +@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la +@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la +@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la +bin_SCRIPTS = krb5-config +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = heimdal-gssapi.pc +man_MANS = krb5-config.1 +@PKINIT_TRUE@LIB_pkinit = -lhx509 +subst = sed -e "s!@PACKAGE\@!$(PACKAGE)!g" \ + -e "s!@VERSION\@!$(VERSION)!g" \ + -e "s!@prefix\@!$(prefix)!g" \ + -e "s!@exec_prefix\@!$(exec_prefix)!g" \ + -e "s!@libdir\@!$(libdir)!g" \ + -e "s!@includedir\@!$(includedir)!g" \ + -e "s!@LIB_crypt\@!$(LIB_crypt)!g" \ + -e "s!@LIB_dbopen\@!$(LIB_dbopen)!g" \ + -e "s!@INCLUDE_hcrypto\@!$(INCLUDE_hcrypto)!g" \ + -e "s!@LIB_hcrypto_appl\@!$(LIB_hcrypto_appl)!g" \ + -e "s!@LIB_dlopen\@!$(LIB_dlopen)!g" \ + -e "s!@LIB_door_create\@!$(LIB_door_create)!g" \ + -e "s!@LIB_pkinit\@!$(LIB_pkinit)!g" \ + -e "s!@LIBS\@!$(LIBS)!g" + +EXTRA_DIST = \ + $(man_MANS) \ + heimdal-build.sh \ + krb5-config.in \ + heimdal-gssapi.pc.in \ + kdc-log-analyze.pl + +CLEANFILES = \ + krb5-config \ + krb5-config.new \ + heimdal-gssapi.pc \ + heimdal-gssapi.pc.new + +all: all-am + +.SUFFIXES: +.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps tools/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign --ignore-deps tools/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ + else :; fi; \ + done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +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 +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + 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 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(SCRIPTS) $(MANS) $(DATA) all-local +installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)"; 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." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-man install-pkgconfigDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook + +install-dvi: install-dvi-am + +install-exec-am: install-binSCRIPTS + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-html: install-html-am + +install-info: install-info-am + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binSCRIPTS uninstall-man \ + uninstall-pkgconfigDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-data-am install-exec-am install-strip \ + uninstall-am + +.PHONY: all all-am all-local check check-am check-local clean \ + clean-generic clean-libtool dist-hook distclean \ + distclean-generic distclean-libtool distdir dvi dvi-am html \ + html-am info info-am install install-am install-binSCRIPTS \ + install-data install-data-am install-data-hook install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-hook \ + install-html install-html-am install-info install-info-am \ + install-man install-man1 install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-binSCRIPTS uninstall-hook uninstall-man \ + uninstall-man1 uninstall-pkgconfigDATA + + +install-suid-programs: + @foo='$(bin_SUIDS)'; \ + for file in $$foo; do \ + x=$(DESTDIR)$(bindir)/$$file; \ + if chown 0:0 $$x && chmod u+s $$x; then :; else \ + echo "*"; \ + echo "* Failed to install $$x setuid root"; \ + echo "*"; \ + fi; done + +install-exec-hook: install-suid-programs + +install-build-headers:: $(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ) $(nobase_include_HEADERS) + @foo='$(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ)'; \ + for f in $$foo; do \ + f=`basename $$f`; \ + if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \ + else file="$$f"; fi; \ + if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \ + : ; else \ + echo " $(CP) $$file $(buildinclude)/$$f"; \ + $(CP) $$file $(buildinclude)/$$f; \ + fi ; \ + done ; \ + foo='$(nobase_include_HEADERS)'; \ + for f in $$foo; do \ + if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \ + else file="$$f"; fi; \ + $(mkdir_p) $(buildinclude)/`dirname $$f` ; \ + if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \ + : ; else \ + echo " $(CP) $$file $(buildinclude)/$$f"; \ + $(CP) $$file $(buildinclude)/$$f; \ + fi ; \ + done + +all-local: install-build-headers + +check-local:: + @if test '$(CHECK_LOCAL)' = "no-check-local"; then \ + foo=''; elif test '$(CHECK_LOCAL)'; then \ + foo='$(CHECK_LOCAL)'; else \ + foo='$(PROGRAMS)'; fi; \ + if test "$$foo"; then \ + failed=0; all=0; \ + for i in $$foo; do \ + all=`expr $$all + 1`; \ + if (./$$i --version && ./$$i --help) > /dev/null 2>&1; then \ + echo "PASS: $$i"; \ + else \ + echo "FAIL: $$i"; \ + failed=`expr $$failed + 1`; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="$$failed of $$all tests failed"; \ + fi; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0 || exit 1; \ + fi + +.x.c: + @cmp -s $< $@ 2> /dev/null || cp $< $@ +#NROFF_MAN = nroff -man +.1.cat1: + $(NROFF_MAN) $< > $@ +.3.cat3: + $(NROFF_MAN) $< > $@ +.5.cat5: + $(NROFF_MAN) $< > $@ +.8.cat8: + $(NROFF_MAN) $< > $@ + +dist-cat1-mans: + @foo='$(man1_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.1) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat3-mans: + @foo='$(man3_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.3) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat5-mans: + @foo='$(man5_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.5) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat8-mans: + @foo='$(man8_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.8) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans + +install-cat-mans: + $(SHELL) $(top_srcdir)/cf/install-catman.sh install "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS) + +uninstall-cat-mans: + $(SHELL) $(top_srcdir)/cf/install-catman.sh uninstall "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS) + +install-data-hook: install-cat-mans +uninstall-hook: uninstall-cat-mans + +.et.h: + $(COMPILE_ET) $< +.et.c: + $(COMPILE_ET) $< + +# +# Useful target for debugging +# + +check-valgrind: + tobjdir=`cd $(top_builddir) && pwd` ; \ + tsrcdir=`cd $(top_srcdir) && pwd` ; \ + env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check + +# +# Target to please samba build farm, builds distfiles in-tree. +# Will break when automake changes... +# + +distdir-in-tree: $(DISTFILES) $(INFO_DEPS) + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" != .; then \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \ + fi ; \ + done + +krb5-config: krb5-config.in + $(subst) $(srcdir)/krb5-config.in > $@.new + mv $@.new $@ + chmod +x $@ + +heimdal-gssapi.pc: heimdal-gssapi.pc.in + $(subst) $(srcdir)/heimdal-gssapi.pc.in > $@.new + mv $@.new $@ +# 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/tools/build.sh b/tools/build.sh new file mode 100755 index 0000000..fad8608 --- /dev/null +++ b/tools/build.sh @@ -0,0 +1,212 @@ +#!/bin/sh +# +# Build many combinations of kth-krb/heimdal/openssl +# +# $Id: build.sh,v 1.8 2003/04/17 12:55:02 lha Exp $ + +opt_n= #: +make_f= #-j + +heimdal_versions="0.5.2 0.6pre4" +krb4_versions="1.2.2" +openssl_versions="0.9.6i 0.9.7a 0.9.7b" + +make_check_version=".*heimdal-0.6.*" + +# 0.5 dont eat 0.9.7 +dont_build="openssl-0.9.7.*heimdal-0.5.*" +# 1.2 dont eat 0.9.7 +dont_build="openssl-0.9.7.*krb4-1.2.* ${dont_build}" +#yacc problems +dont_build="openssl-0.9.6.*heimdal-0.5.*osf4.* ${dont_build}" +#local openssl 09.7 and broken kuser/Makefile.am +dont_build="openssl-0.9.6.*heimdal-0.5.*freebsd4.8.* ${dont_build}" +failed= + +# Allow override +for a in $HOME . /etc ; do + [ -f $a/.heimdal-build ] && . $a/.heimdal-build +done + +targetdir=${targetdir:-/scratch/heimdal-test} +logfile="${targetdir}/buildlog" + +distdirs="${distdirs} /afs/su.se/home/l/h/lha/Public/openssl" +distdirs="${distdirs} /afs/pdc.kth.se/public/ftp/pub/heimdal/src" +distdirs="${distdirs} /afs/pdc.kth.se/public/ftp/pub/heimdal/src/snapshots" +distdirs="${distdirs} /afs/pdc.kth.se/public/ftp/pub/krb/src" + + +logprint () { + d=`date '+%Y-%m-%d %H:%M:%S'` + echo "${d}: $*" + echo "${d}: --- $*" >> ${logfile} +} + +logerror () { + echo "$*" + exit 1 +} + +find_unzip_prog () { + unzip_prog= + oldIFS="$IFS" + IFS=: + set -- $PATH + IFS="$oldIFS" + for a in $* ; do + if [ -x $a/gzip ] ; then + unzip_prog="$a/gzip -dc" + break + elif [ -x $a/gunzip ] ; then + unzip_prog="$a/gunzip -c" + break + fi + done + [ "$unzip_prog" = "" ] && logerror failed to find unzip program +} + +find_canon_name () { + canon_name= + for a in ${distdirs} ; do + if [ -f $a/config.guess ] ; then + canon_name=`$a/config.guess` + fi + if [ "${canon_name}" != "" ] ; then + break + fi + done + [ "${canon_name}" = "" ] && logerror "cant find config.guess" +} + +do_check_p () { + eval check_var=\$"$1" + for a in ${check_var} ; do + expr "$2${canon_name}" : "${a}" > /dev/null 2>&1 && return 1 + done + return 0 +} + +unpack_tar () { + for a in ${distdirs} ; do + if [ -f $a/$1 ] ; then + ${opt_n} ${unzip_prog} ${a}/$1 | ${opt_n} tar xf - + return 0 + fi + done + logerror "did not find $1" +} + +build () { + real_ver=$1 + prog=$2 + ver=$3 + confprog=$4 + checks=$5 + pv=${prog}-${ver} + mkdir tmp || logerror "failed to build tmpdir" + cd tmp || logerror "failed to change dir to tmpdir" + do_check_p dont_build ${real_ver} || \ + { cd .. ; rmdir tmp ; logprint "not building $1" && return 0 ; } + cd .. || logerror "failed to change back from tmpdir" + rmdir tmp || logerror "failed to remove tmpdir" + logprint "preparing for ${pv}" + ${opt_n} rm -rf ${targetdir}/${prog}-${ver} + ${opt_n} rm -rf ${prog}-${ver} + unpack_tar ${pv}.tar.gz + ${opt_n} cd ${pv} || logerror directory ${pv} not there + logprint "configure ${prog} ${ver} (${confprog})" + ${opt_n} ./${confprog} \ + --prefix=${targetdir}/${pv} >> ${logfile} 2>&1 || \ + { logprint failed to configure ${pv} ; return 1 ; } + logprint "make ${prog} ${ver}" + ${opt_n} make ${make_f} >> ${logfile} 2>&1 || \ + { logprint failed to make ${pv} ; return 1 ; } + ${opt_n} make install >> ${logfile} 2>&1 || \ + { logprint failed to install ${pv} ; return 1 ; } + do_check_p make_check_version ${real_ver} || \ + { ${opt_n} make check >> ${logfile} 2>&1 || return 1 ; } + ${opt_n} cd .. + [ "${checks}" != "" ] && ${opt_n} ${checks} >> ${logfile} 2>&1 + return 0 +} + +find_canon_name + +logprint using host `hostname` +logprint `uname -a` +logprint canonical name ${canon_name} + +logprint clearing logfile +> ${logfile} + +find_unzip_prog + +logprint using target dir ${targetdir} +mkdir -p ${targetdir}/src +cd ${targetdir}/src || exit 1 +rm -rf heimdal* openssl* krb4* + +logprint === building openssl versions +for vo in ${openssl_versions} ; do + build openssl-${vo} openssl $vo config +done + +wssl="--with-openssl=${targetdir}/openssl" +wssli="--with-openssl-include=${targetdir}/openssl" #this is a hack for broken heimdal 0.5.x autoconf test +wossl="--without-openssl" +wk4c="--with-krb4-config=${targetdir}/krb4" +bk4c="/bin/krb4-config" +wok4="--without-krb4" + +logprint === building heimdal w/o krb4 versions +for vo in ${openssl_versions} ; do + for vh in ${heimdal_versions} ; do + v="openssl-${vo}-heimdal-${vh}" + build "${v}" \ + heimdal ${vh} \ + "configure ${wok4} ${wssl}-${vo} ${wssli}-${vo}/include" \ + "${targetdir}/heimdal-${vh}/bin/krb5-config --libs | grep lcrypto" \ || \ + { failed="${failed} ${v}" ; logprint ${v} failed ; } + done +done + +logprint === building krb4 +for vo in ${openssl_versions} ; do + for vk in ${krb4_versions} ; do + v="openssl-${vo}-krb4-${vk}" + build "${v}" \ + krb4 ${vk} \ + "configure ${wssl}-${vo}" \ + "${targetdir}/krb4-${vk}/bin/krb4-config --libs | grep lcrypto"|| \ + { failed="${failed} ${v}" ; logprint ${v} failed ; } + done +done + +logprint === building heimdal with krb4 versions +for vo in ${openssl_versions} ; do + for vk in ${krb4_versions} ; do + for vh in ${heimdal_versions} ; do + v="openssl-${vo}-krb4-${vk}-heimdal-${vh}" + build "${v}" \ + heimdal ${vh} \ + "configure ${wk4c}-${vk}${bk4c} ${wssl}-${vo} ${wssli}-${vo}/include" \ + "${targetdir}/heimdal-${vh}/bin/krb5-config --libs | grep lcrypto && ${targetdir}/heimdal-${vh}/bin/krb5-config --libs | grep krb4" \ + || \ + { failed="${failed} ${v}" ; logprint ${v} failed ; } + done + done +done + +logprint === building heimdal without krb4 and openssl versions +for vh in ${heimdal_versions} ; do + v="des-heimdal-${vh}" + build "${v}" \ + heimdal ${vh} \ + "configure ${wok4} ${wossl}" || \ + { failed="${failed} ${v}" ; logprint ${v} failed ; } +done + +logprint all done +[ "${failed}" != "" ] && logprint "failed: ${failed}" +exit 0 diff --git a/tools/heimdal-build.sh b/tools/heimdal-build.sh new file mode 100644 index 0000000..4e8a7ea --- /dev/null +++ b/tools/heimdal-build.sh @@ -0,0 +1,295 @@ +#!/bin/sh +# Fetches, builds and store the result of a heimdal build +# Version: $Id: heimdal-build.sh 21653 2007-07-18 20:15:59Z lha $ + +fetchmethod=wget #options are: wget, curl, ftp, afs +resultdir= +email=heimdal-build-log@it.su.se +baseurl=ftp://ftp.pdc.kth.se/pub/heimdal/src +afsdir=/afs/pdc.kth.se/public/ftp/pub/heimdal/src +keeptree=no +passhrase= +builddir= +noemail= +cputimelimit=3600 +confflags= + +# Add some bonus paths, to find sendmail and other tools +# on interesting platforms. +PATH="${PATH}:/usr/sbin:/usr/bin:/usr/libexec:/usr/lib" +PATH="${PATH}:/usr/local/bin:/usr/local/sbin" + +# no more user configurabled part below (hopefully) + +usage="[--current] [--svn SourceRepository] [--cvs-flags] [--result-directory dir] [--fetch-method wget|ftp|curl|cvs|fetch|afs] --keep-tree] [--autotools] [--passhrase string] [--no-email] [--build-dir dir] [--cputime] [--distcheck] [--test-environment env] [--configure-flags flags]" + +date=`date +%Y%m%d` +if [ "$?" != 0 ]; then + echo "have no sane date, punting" + exit 1 +fi + +hostname=`hostname` +if [ "$?" != 0 ]; then + echo "have no sane hostname, punting" + exit 1 +fi + +version=`grep "^# Version: " "$0" | cut -f2- -d:` +if [ "X${version}" = X ]; then + echo "Can not figure out what version I am" + exit 1 +fi + +dir= +hversion= +cvsroot= +cvsflags= +cvsbranch= +branch= +autotools=no +distcheck=no + +while true +do + case $1 in + --autotools) + autotools=yes + shift + ;; + --build-dir) + builddir="$2" + shift 2 + ;; + --current) + dir="snapshots/" + hversion="heimdal-${date}" + shift + ;; + --release) + hversion="heimdal-$2" + shift 2 + ;; + --cputime) + cputimelimit="$2" + shift 2 + ;; + --ccache-dir) + ccachedir="$2" + shift 2 + ;; + --svn) + hversion="heimdal-svn-${date}" + svnroot=$2 + fetchmethod=svn + shift 2 + ;; + --distcheck) + distcheck=yes + shift + ;; + --result-directory) + resultdir="$2" + if [ ! -d "$resultdir" ]; then + echo "$resultdir doesn't exists" + exit 1 + fi + resultdir="`pwd`/${resultdir}" + shift 2 + ;; + --fetch-method) + fetchmethod="$2" + shift 2 + ;; + --keep-tree) + keeptree=yes + shift + ;; + --passphrase) + passhrase="$2" + shift 2 + ;; + --prepend-path) + prependpath="$2" + shift 2 + ;; + --test-environment) + testenvironment="$2" + shift 2 + ;; + --no-email) + noemail="yes" + shift + ;; + --configure-flags) + confflags="${confflags} $2" + shift 2 + ;; + --version) + echo "Version: $version" + exit 0 + ;; + -*) + echo "unknown option: $1" + break + ;; + *) + break + ;; + esac +done +if test $# -gt 0; then + echo $usage + exit 1 +fi + +if [ "X${hversion}" = X ]; then + echo "no version given" + exit 0 +fi + +hfile="${hversion}.tar.gz" +url="${baseurl}/${dir}${hfile}" +afsfile="${afsdir}/${dir}${hfile}" +unpack=yes + +# extra paths for the user +if [ "X${prependpath}" != X ]; then + PATH="${prependpath}:${PATH}" +fi + +# Limit cpu seconds this all can take +ulimit -t "$cputimelimit" > /dev/null 2>&1 + +if [ "X${builddir}" != X ]; then + echo "Changing build dir to ${builddir}" + cd "${builddir}" +fi + +echo "Removing old source" +rm -rf ${hversion} + +echo "Fetching ${hversion} using $fetchmethod" +case "$fetchmethod" in +wget|ftp|fetch) + ${fetchmethod} $url > /dev/null + res=$? + ;; +curl) + ${fetchmethod} -o ${hfile} ${url} > /dev/null + res=$? + ;; +afs) + cp ${afsfile} ${hfile} + res=$? + ;; +svn) + svn co $svnroot ${hversion} + res=$? + unpack=no + autotools=yes + ;; +*) + echo "unknown fetch method" + ;; +esac + +if [ "X$res" != X0 ]; then + echo "Failed to download the tar-ball" + exit 1 +fi + +if [ X"$unpack" = Xyes ]; then + echo Unpacking source + (gzip -dc ${hfile} | tar xf -) || exit 1 +fi + +if [ X"$autotools" = Xyes ]; then + echo "Autotooling" + (cd ${hversion} && sh ./autogen.sh) || exit 1 +fi + +if [ X"$ccachedir" != X ]; then + CCACHE_DIR="${ccachedir}" + export CCACHE_DIR +fi + +cd ${hversion} || exit 1 + +makecheckenv= +if [ X"${testenvironment}" != X ] ; then + makecheckenv="${makecheckenv} TESTS_ENVIRONMENT=\"${testenvironment}\"" +fi + +mkdir socket_wrapper_dir +SOCKET_WRAPPER_DIR=`pwd`/socket_wrapper_dir +export SOCKET_WRAPPER_DIR + +echo "Configuring and building ($hversion)" +echo "./configure --enable-socket-wrapper ${confflags}" > ab.txt +./configure --enable-socket-wrapper ${confflags} >> ab.txt 2>&1 +if [ $? != 0 ] ; then + echo Configure failed + status=${status:-configure} +fi +echo make all >> ab.txt +make all >> ab.txt 2>&1 +if [ $? != 0 ] ; then + echo Make all failed + status=${status:-make all} +fi +echo make check >> ab.txt +eval env $makecheckenv make check >> ab.txt 2>&1 +if [ $? != 0 ] ; then + echo Make check failed + status=${status:-make check} +fi + +if [ "$distcheck" = yes ] ; then + echo make distcheck >> ab.txt + if [ $? != 0 ] ; then + echo Make check failed + status=${status:-make distcheck} + fi +fi + +status=${status:-ok} + +echo "done: ${status}" + +if [ "X${resultdir}" != X ] ; then + cp ab.txt "${resultdir}/ab-${hversion}-${hostname}-${date}.txt" +fi + +if [ "X${noemail}" = X ] ; then + cat > email-header <<EOF +From: ${USER:-unknown-user}@${hostname} +To: <heimdal-build-log@it.su.se> +Subject: heimdal-build-log SPAM COOKIE +X-heimdal-build: kaka-till-love + +Script-version: ${version} +Heimdal-version: ${hversion} +Machine: `uname -a` +Status: $status +EOF + + if [ "X$passhrase" != X ] ; then + cat >> email-header <<EOF +autobuild-passphrase: ${passhrase} +EOF + fi + cat >> email-header <<EOF +------L-O-G------------------------------------ +EOF + + cat email-header ab.txt | sendmail "${email}" +fi + +cd .. +if [ X"$keeptree" != Xyes ] ; then + rm -rf ${hversion} +fi +rm -f ${hfile} + +exit 0 diff --git a/tools/heimdal-gssapi.pc.in b/tools/heimdal-gssapi.pc.in new file mode 100644 index 0000000..4589dee --- /dev/null +++ b/tools/heimdal-gssapi.pc.in @@ -0,0 +1,14 @@ +# $Id$ +prefix=@PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: @PACKAGE@ +Description: Heimdal is an implementation of Kerberos 5, freely available under a three clause BSD style license. +Version: @VERSION@ +URL: http://www.pdc.kth.se/heimdal/ +#Requires: foo = 1.3.1 +#Conflicts: bar <= 4.5 +Libs: -L${libdir} -lgssapi -lheimntlm -lkrb5 @LIB_pkinit@ -lcom_err @LIB_hcrypto_appl@ -lasn1 -lroken @LIB_crypt@ @LIB_dlopen@ @LIB_door_create@ @LIBS@ +Cflags: -I${includedir} diff --git a/tools/kdc-log-analyze.pl b/tools/kdc-log-analyze.pl new file mode 100755 index 0000000..08d3e38 --- /dev/null +++ b/tools/kdc-log-analyze.pl @@ -0,0 +1,549 @@ +#! /usr/pkg/bin/perl +# -*- mode: perl; perl-indent-level: 8 -*- +# +# Copyright (c) 2003 Kungliga Tekniska Högskolan +# (Royal Institute of Technology, Stockholm, Sweden). +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the Institute nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $Id: kdc-log-analyze.pl 17173 2006-04-23 13:19:21Z lha $ +# +# kdc-log-analyze - Analyze a KDC log file and give a report on the contents +# +# Note: The parts you want likely want to customize are the variable $notlocal, +# the array @local_network_re and the array @local_realms. +# +# Idea and implemetion for MIT Kerberos was done first by +# Ken Hornstein <kenh@cmf.nrl.navy.mil>, this program wouldn't exists +# without his help. +# + +use strict; +use Sys::Hostname; + +my $notlocal = 'not SU'; +my @local_realms = ( "SU.SE" ); +my @local_networks_re = + ( + "130\.237", + "193\.11\.3[0-9]\.", + "130.242.128", + "2001:6b0:5:" + ); + +my $as_req = 0; +my %as_req_addr; +my %as_req_addr_nonlocal; +my %as_req_client; +my %as_req_server; +my %addr_uses_des; +my %princ_uses_des; +my $five24_req = 0; +my %five24_req_addr; +my %five24_req_addr_nonlocal; +my %five24_req_server; +my %five24_req_client; +my $as_req_successful = 0; +my $as_req_error = 0; +my $no_such_princ = 0; +my %no_such_princ_princ; +my %no_such_princ_addr; +my %no_such_princ_addr_nonlocal; +my $as_req_etype_odd = 0; +my %bw_addr; +my $pa_alt_princ_request = 0; +my $pa_alt_princ_verify = 0; +my $tgs_req = 0; +my %tgs_req_addr; +my %tgs_req_addr_nonlocal; +my %tgs_req_client; +my %tgs_req_server; +my $tgs_xrealm_out = 0; +my %tgs_xrealm_out_realm; +my %tgs_xrealm_out_princ; +my $tgs_xrealm_in = 0; +my %tgs_xrealm_in_realm; +my %tgs_xrealm_in_princ; +my %enctype_session; +my %enctype_ticket; +my $restarts = 0; +my $forward_non_forward = 0; +my $v4_req = 0; +my %v4_req_addr; +my %v4_req_addr_nonlocal; +my $v4_cross = 0; +my %v4_cross_realm; +my $v5_cross = 0; +my %v5_cross_realm; +my $referrals = 0; +my %referral_princ; +my %referral_realm; +my %strange_tcp_data; +my $http_malformed = 0; +my %http_malformed_addr; +my $http_non_kdc = 0; +my %http_non_kdc_addr; +my $tcp_conn_timeout = 0; +my %tcp_conn_timeout_addr; +my $failed_processing = 0; +my %failed_processing_addr; +my $connection_closed = 0; +my %connection_closed_addr; +my $pa_failed = 0; +my %pa_failed_princ; +my %pa_failed_addr; +my %ip; + +$ip{'4'} = $ip{'6'} = 0; + +while (<>) { + process_line($_); +} + +print "Kerberos KDC Log Report for ", + hostname, " on ", scalar localtime, "\n\n"; + +print "General Statistics\n\n"; + +print "\tNumber of IPv4 requests: $ip{'4'}\n"; +print "\tNumber of IPv6 requests: $ip{'6'}\n\n"; + +print "\tNumber of restarts: $restarts\n"; +print "\tNumber of V4 requests: $v4_req\n"; +if ($v4_req > 0) { + print "\tTop ten IP addresses performing V4 requests:\n"; + topten(\%v4_req_addr); +} +if (int(keys %v4_req_addr_nonlocal) > 0) { + print "\tTop ten $notlocal IP addresses performing V4 requests:\n"; + topten(\%v4_req_addr_nonlocal); + +} +print "\n"; + +print "\tNumber of V4 cross realms (krb4 and 524) requests: $v4_cross\n"; +if ($v4_cross > 0) { + print "\tTop ten realms performing V4 cross requests:\n"; + topten(\%v4_cross_realm); +} +print "\n"; + +print "\tNumber of V45 cross realms requests: $v5_cross\n"; +if ($v5_cross > 0) { + print "\tTop ten realms performing V4 cross requests:\n"; + topten(\%v5_cross_realm); +} +print "\n"; + +print "\tNumber of failed lookups: $no_such_princ\n"; +if ($no_such_princ > 0) { + print "\tTop ten IP addresses failing to find principal:\n"; + topten(\%no_such_princ_addr); + print "\tTop ten $notlocal IP addresses failing find principal:\n"; + topten(\%no_such_princ_addr_nonlocal); + print "\tTop ten failed to find principals\n"; + topten(\%no_such_princ_princ); +} +print "\n"; + +print "\tBandwidth pigs:\n"; +topten(\%bw_addr); +print "\n"; + +print "\tStrange TCP data clients: ", int(keys %strange_tcp_data),"\n"; +topten(\%strange_tcp_data); +print "\n"; + +print "\tTimeout waiting on TCP requests: ", $tcp_conn_timeout,"\n"; +if ($tcp_conn_timeout > 0) { + print "\tTop ten TCP timeout request clients\n"; + topten(\%tcp_conn_timeout_addr); +} +print "\n"; + +print "\tFailed processing requests: ", $failed_processing,"\n"; +if ($failed_processing > 0) { + print "\tTop ten failed processing request clients\n"; + topten(\%failed_processing_addr); +} +print "\n"; + +print "\tConnection closed requests: ", $connection_closed,"\n"; +if ($connection_closed > 0) { + print "\tTop ten connection closed request clients\n"; + topten(\%connection_closed_addr); +} +print "\n"; + +print "\tMalformed HTTP requests: ", $http_malformed,"\n"; +if ($http_malformed > 0) { + print "\tTop ten malformed HTTP request clients\n"; + topten(\%http_malformed_addr); +} +print "\n"; + +print "\tHTTP non kdc requests: ", $http_non_kdc,"\n"; +if ($http_non_kdc > 0) { + print "\tTop ten HTTP non KDC request clients\n"; + topten(\%http_non_kdc_addr); +} +print "\n"; + +print "Report on AS_REQ requests\n\n"; +print "Overall AS_REQ statistics\n\n"; + +print "\tTotal number: $as_req\n"; + +print "\nAS_REQ client/server statistics\n\n"; + +print "\tDistinct IP Addresses performing requests: ", + int(keys %as_req_addr),"\n"; +print "\tOverall top ten IP addresses\n"; +topten(\%as_req_addr); + +print "\tDistinct non-local ($notlocal) IP Addresses performing requests: ", + int(keys %as_req_addr_nonlocal), "\n"; +print "\tTop ten non-local ($notlocal) IP address:\n"; +topten(\%as_req_addr_nonlocal); + +print "\n\tPreauth failed for for: ", $pa_failed, " requests\n"; +if ($pa_failed) { + print "\tPreauth failed top ten IP addresses:\n"; + topten(\%pa_failed_addr); + print "\tPreauth failed top ten principals:\n"; + topten(\%pa_failed_princ); +} + +print "\n\tDistinct clients performing requests: ", + int(keys %as_req_client), "\n"; +print "\tTop ten clients:\n"; +topten(\%as_req_client); + +print "\tDistinct services requested: ", int(keys %as_req_server), "\n"; +print "\tTop ten requested services:\n"; +topten(\%as_req_server); + +print "\n\n\nReport on TGS_REQ requests:\n\n"; +print "Overall TGS_REQ statistics\n\n"; +print "\tTotal number: $tgs_req\n"; + +print "\nTGS_REQ client/server statistics\n\n"; +print "\tDistinct IP addresses performing requests: ", + int(keys %tgs_req_addr), "\n"; +print "\tOverall top ten IP addresses\n"; +topten(\%tgs_req_addr); + +print "\tDistinct non-local ($notlocal) IP Addresses performing requests: ", + int(keys %tgs_req_addr_nonlocal), "\n"; +print "\tTop ten non-local ($notlocal) IP address:\n"; +topten(\%tgs_req_addr_nonlocal); + +print "\tDistinct clients performing requests: ", + int(keys %tgs_req_client), "\n"; +print "\tTop ten clients:\n"; +topten(\%tgs_req_client); + +print "\tDistinct services requested: ", int(keys %tgs_req_server), "\n"; +print "\tTop ten requested services:\n"; +topten(\%tgs_req_server); + +print "\n\n\nReport on 524_REQ requests:\n\n"; + +print "\t524_REQ client/server statistics\n\n"; + +print "\tDistinct IP Addresses performing requests: ", + int(keys %five24_req_addr),"\n"; +print "\tOverall top ten IP addresses\n"; +topten(\%five24_req_addr); + +print "\tDistinct non-local ($notlocal) IP Addresses performing requests: ", + int(keys %five24_req_addr_nonlocal), "\n"; +print "\tTop ten non-local ($notlocal) IP address:\n"; +topten(\%five24_req_addr_nonlocal); + +print "\tDistinct clients performing requests: ", int(keys %five24_req_client), "\n"; +print "\tTop ten clients:\n"; +topten(\%five24_req_client); + +print "\tDistinct services requested: ", int(keys %five24_req_server), "\n"; +print "\tTop ten requested services:\n"; +topten(\%five24_req_server); +print "\n"; + +print "Cross realm statistics\n\n"; + +print "\tNumber of cross-realm tgs out: $tgs_xrealm_out\n"; +if ($tgs_xrealm_out > 0) { + print "\tTop ten realms used for out cross-realm:\n"; + topten(\%tgs_xrealm_out_realm); + print "\tTop ten principals use out cross-realm:\n"; + topten(\%tgs_xrealm_out_princ); +} +print "\tNumber of cross-realm tgs in: $tgs_xrealm_in\n"; +if ($tgs_xrealm_in > 0) { + print "\tTop ten realms used for in cross-realm:\n"; + topten(\%tgs_xrealm_in_realm); + print "\tTop ten principals use in cross-realm:\n"; + topten(\%tgs_xrealm_in_princ); +} + +print "\n\nReport on referral:\n\n"; + +print "\tNumber of referrals: $referrals\n"; +if ($referrals > 0) { + print "\tTop ten referral-ed principals:\n"; + topten(\%referral_princ); + print "\tTop ten to realm referrals:\n"; + topten(\%referral_realm); +} + +print "\n\nEnctype Statistics:\n\n"; +print "\tTop ten session enctypes:\n"; +topten(\%enctype_session); +print "\tTop ten ticket enctypes:\n"; +topten(\%enctype_ticket); + +print "\tDistinct IP addresses using DES: ", int(keys %addr_uses_des), "\n"; +print "\tTop IP addresses using DES:\n"; +topten(\%addr_uses_des); +print "\tDistinct principals using DES: ", int(keys %princ_uses_des), "\n"; +print "\tTop ten principals using DES:\n"; +topten(\%princ_uses_des); + +print "\n"; + +printf("Requests to forward non-forwardable ticket: $forward_non_forward\n"); + + +exit 0; + +my $last_addr = ""; +my $last_principal = ""; + +sub process_line { + local($_) = @_; + # + # Eat these lines that are output as a result of startup (but + # log the number of restarts) + # + if (/AS-REQ \(krb4\) (.*) from IPv([46]):([0-9\.:a-fA-F]+) for krbtgt.*$/){ + $v4_req++; + $v4_req_addr{$3}++; + $v4_req_addr_nonlocal{$3}++ if (!islocaladdr($3)); + $last_addr = $3; + $last_principal = $1; + $ip{$2}++; + } elsif (/AS-REQ (.*) from IPv([46]):([0-9\.:a-fA-F]+) for (.*)$/) { + $as_req++; + $as_req_client{$1}++; + $as_req_server{$4}++; + $as_req_addr{$3}++; + $as_req_addr_nonlocal{$3}++ if (!islocaladdr($3)); + $last_addr = $3; + $last_principal = $1; + $ip{$2}++; + } elsif (/TGS-REQ \(krb4\)/) { + #Nothing + } elsif (/TGS-REQ (.+) from IPv([46]):([0-9\.:a-fA-F]+) for (.*?)( \[.*\]){0,1}$/) { + $tgs_req++; + $tgs_req_client{$1}++; + $tgs_req_server{$4}++; + $tgs_req_addr{$3}++; + $tgs_req_addr_nonlocal{$3}++ if (!islocaladdr($3)); + $last_addr = $3; + $last_principal = $1; + $ip{$2}++; + + my $source = $1; + my $dest = $4; + + if (!islocalrealm($source)) { + $tgs_xrealm_in++; + $tgs_xrealm_in_princ{$source}++; + if ($source =~ /[^@]+@([^@]+)/ ) { + $tgs_xrealm_in_realm{$1}++; + } + } + if ($dest =~ /krbtgt\/([^@]+)@[^@]+/) { + if (!islocalrealm($1)) { + $tgs_xrealm_out++; + $tgs_xrealm_out_realm{$1}++; + $tgs_xrealm_out_princ{$source}++; + } + } + } elsif (/524-REQ (.*) from IPv([46]):([0-9\.:a-fA-F]+) for (.*)$/) { + $five24_req++; + $five24_req_client{$1}++; + $five24_req_server{$4}++; + $five24_req_addr{$3}++; + $five24_req_addr_nonlocal{$3}++ if (!islocaladdr($3)); + $last_addr = $3; + $last_principal = $1; + $ip{$2}++; + } elsif (/TCP data of strange type from IPv[46]:([0-9\.:a-fA-F]+)/) { + $strange_tcp_data{$1}++; + } elsif (/Lookup (.*) failed: No such entry in the database/) { + $no_such_princ++; + $no_such_princ_addr{$last_addr}++; + $no_such_princ_addr_nonlocal{$last_addr}++ if (!islocaladdr($last_addr)); + $no_such_princ_princ{$1}++; + } elsif (/Lookup .* succeeded$/) { + # Nothing + } elsif (/Malformed HTTP request from IPv[46]:([0-9\.:a-fA-F]+)$/) { + $http_malformed++; + $http_malformed_addr{$1}++; + } elsif (/TCP-connection from IPv[46]:([0-9\.:a-fA-F]+) expired after [0-9]+ bytes/) { + $tcp_conn_timeout++; + $tcp_conn_timeout_addr{$1}++; + } elsif (/Failed processing [0-9]+ byte request from IPv[46]:([0-9\.:a-fA-F]+)/) { + $failed_processing++; + $failed_processing_addr{$1}++; + } elsif (/connection closed before end of data after [0-9]+ bytes from IPv[46]:([0-9\.:a-fA-F]+)/) { + $connection_closed++; + $connection_closed_addr{$1}++; + } elsif (/HTTP request from IPv[46]:([0-9\.:a-fA-F]+) is non KDC request/) { + $http_non_kdc++; + $http_non_kdc_addr{$1}++; + } elsif (/returning a referral to realm (.*) for server (.*) that was not found/) { + $referrals++; + $referral_princ{$2}++; + $referral_realm{$1}++; + } elsif (/krb4 Cross-realm (.*) -> (.*) disabled/) { + $v4_cross++; + $v4_cross_realm{$1."->".$2}++; + } elsif (/524 cross-realm (.*) -> (.*) disabled/) { + $v4_cross++; + $v4_cross_realm{$1."->".$2}++; + } elsif (/cross-realm (.*) -> (.*): no transit through realm (.*)/) { + } elsif (/cross-realm (.*) -> (.*) via \[([^\]]+)\]/) { + $v5_cross++; + $v5_cross_realm{$1."->".$2}++; + } elsif (/cross-realm (.*) -> (.*)/) { + $v5_cross++; + $v5_cross_realm{$1."->".$2}++; + } elsif (/sending ([0-9]+) bytes to IPv[46]:([0-9\.:a-fA-F]+)/) { + $bw_addr{$2} += $1; + } elsif (/Using ([-a-z0-9]+)\/([-a-z0-9]+)/) { + $enctype_ticket{$1}++; + $enctype_session{$2}++; + + my $ticket = $1; + my $session = $2; + + if ($ticket =~ /des-cbc-(crc|md4|md5)/) { + $addr_uses_des{$last_addr}++; + $princ_uses_des{$last_principal}++; + } + + } elsif (/Failed to decrypt PA-DATA -- (.+)$/) { + $pa_failed++; + $pa_failed_princ{$last_principal}++; + $pa_failed_addr{$last_addr}++; + + } elsif (/Request to forward non-forwardable ticket/) { + $forward_non_forward++; + } elsif (/HTTP request:/) { + } elsif (/krb_rd_req: Incorrect network address/) { + } elsif (/krb_rd_req: Ticket expired \(krb_rd_req\)/) { + } elsif (/Ticket expired \(.*\)/) { + } elsif (/krb_rd_req: Can't decode authenticator \(krb_rd_req\)/) { + } elsif (/Request from wrong address/) { + # XXX + } elsif (/UNKNOWN --/) { + # XXX + } elsif (/Too large time skew -- (.*)$/) { + # XXX + } elsif (/No PA-ENC-TIMESTAMP --/) { + # XXX + } elsif (/Looking for pa-data --/) { + # XXX + } elsif (/Pre-authentication succeded -- (.+)$/) { + # XXX + } elsif (/Bad request for ([,a-zA-Z0-9]+) ticket/) { + # XXX + } elsif (/Failed to verify AP-REQ: Ticket expired/) { + # XXX + } elsif (/Client not found in database:/) { + # XXX + } elsif (/Server not found in database \(krb4\)/) { + } elsif (/Server not found in database:/) { + # XXX + } elsif (/newsyslog.*logfile turned over/) { + # Nothing + } elsif (/Requested flags:/) { + # Nothing + } elsif (/shutting down/) { + # Nothing + } elsif (/listening on IP/) { + # Nothing + } elsif (/commencing operation/) { + $restarts++; + } + # + # Log it if we didn't parse the line + # + else { + print "Unknown log file line: $_"; + } +} + +sub topten { + my ($list) = @_; + my @keys; + + my $key; + + @keys = (sort {$$list{$b} <=> $$list{$a}} (keys %{$list})); + splice @keys, 10; + + foreach $key (@keys) { + print "\t\t$key - $$list{$key}\n"; + } +} + +sub islocaladdr (\$) { + my ($addr) = @_; + my $net; + + foreach $net (@local_networks_re) { + return 1 if ($addr =~ /$net/); + } + return 0; +} + +sub islocalrealm (\$) { + my ($princ) = @_; + my $realm; + + foreach $realm (@local_realms) { + return 1 if ($princ eq $realm); + return 1 if ($princ =~ /[^@]+\@${realm}/); + } + return 0; +} diff --git a/tools/krb5-config.1 b/tools/krb5-config.1 new file mode 100644 index 0000000..4ed1cd8 --- /dev/null +++ b/tools/krb5-config.1 @@ -0,0 +1,90 @@ +.\" Copyright (c) 2000 - 2001 Kungliga Tekniska Högskolan +.\" (Royal Institute of Technology, Stockholm, Sweden). +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" 3. Neither the name of the Institute nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: krb5-config.1 11648 2003-02-16 21:10:32Z lha $ +.\" +.Dd November 30, 2000 +.Dt KRB5-CONFIG 1 +.Os HEIMDAL +.Sh NAME +.Nm krb5-config +.Nd "give information on how to link code against Heimdal libraries" +.Sh SYNOPSIS +.Nm +.Op Fl -prefix Ns Op = Ns Ar dir +.Op Fl -exec-prefix Ns Op = Ns Ar dir +.Op Fl -libs +.Op Fl -cflags +.Op Ar libraries +.Sh DESCRIPTION +.Nm +tells the application programmer what special flags to use to compile +and link programs against the libraries installed by Heimdal. +.Pp +Options supported: +.Bl -tag -width Ds +.It Fl -prefix Ns Op = Ns Ar dir +Print the prefix if no +.Ar dir +is specified, otherwise set prefix to +.Ar dir . +.It Fl -exec-prefix Ns Op = Ns Ar dir +Print the exec-prefix if no +.Ar dir +is specified, otherwise set exec-prefix to +.Ar dir . +.It Fl -libs +Output the set of libraries that should be linked against. +.It Fl -cflags +Output the set of flags to give to the C compiler when using the +Heimdal libraries. +.El +.Pp +By default +.Nm +will output the set of flags and libraries to be used by a normal +program using the krb5 API. The user can also supply a library to be +used, the supported ones are: +.Bl -tag -width Ds +.It krb5 +(the default) +.It gssapi +use the krb5 gssapi mechanism +.It kadm-client +use the client-side kadmin libraries +.It kadm-server +use the server-side kadmin libraries +.El +.Sh SEE ALSO +.Xr cc 1 +.Sh HISTORY +.Nm +appeared in Heimdal 0.3d. diff --git a/tools/krb5-config.in b/tools/krb5-config.in new file mode 100755 index 0000000..35da594 --- /dev/null +++ b/tools/krb5-config.in @@ -0,0 +1,118 @@ +#!/bin/sh +# $Id: krb5-config.in 20528 2007-04-22 13:22:16Z lha $ + +do_libs=no +do_cflags=no +do_usage=no +print_prefix=no +print_exec_prefix=no +library=krb5 + +if test $# -eq 0; then + do_usage=yes + usage_exit=1 +fi + +for i in $*; do + case $i in + --help) + do_usage=yes + usage_exit=0 + ;; + --version) + echo "@PACKAGE@ @VERSION@" + echo '$Id: krb5-config.in 20528 2007-04-22 13:22:16Z lha $' + exit 0 + ;; + --prefix=*) + prefix=`echo $i | sed 's/^--prefix=//'` + ;; + --prefix) + print_prefix=yes + ;; + --exec-prefix=*) + exec_prefix=`echo $i | sed 's/^--exec-prefix=//'` + ;; + --exec-prefix) + print_exec_prefix=yes + ;; + --libs) + do_libs=yes + ;; + --cflags) + do_cflags=yes + ;; + krb5) + library=krb5 + ;; + gssapi) + library=gssapi + ;; + kadm-client) + library=kadm-client + ;; + kadm-server) + library=kadm-server + ;; + kafs) + library=kafs + ;; + *) + echo "unknown option: $i" + exit 1 + ;; + esac +done + +if test "$do_usage" = "yes"; then + echo "usage: $0 [options] [libraries]" + echo "options: [--prefix[=dir]] [--exec-prefix[=dir]] [--libs] [--cflags]" + echo "libraries: krb5 gssapi kadm-client kadm-server kafs" + exit $usage_exit +fi + +if test "$prefix" = ""; then + prefix=@prefix@ +fi +if test "$exec_prefix" = ""; then + exec_prefix=@exec_prefix@ +fi + +libdir=@libdir@ +includedir=@includedir@ + +if test "$print_prefix" = "yes"; then + echo $prefix +fi + +if test "$print_exec_prefix" = "yes"; then + echo $exec_prefix +fi + +if test "$do_libs" = "yes"; then + lib_flags="-L${libdir}" + case $library in + gssapi) + lib_flags="$lib_flags -lgssapi -lheimntlm" + ;; + kadm-client) + lib_flags="$lib_flags -lkadm5clnt" + ;; + kadm-server) + lib_flags="$lib_flags -lkadm5srv @LIB_dbopen@" + ;; + kafs) + lib_flags="$lib_flags -lkafs" + ;; + esac + lib_flags="$lib_flags -lkrb5 @LIB_pkinit@ -lcom_err" + lib_flags="$lib_flags @LIB_hcrypto_appl@ -lasn1 -lroken" + lib_flags="$lib_flags @LIB_crypt@ @LIB_dlopen@" + lib_flags="$lib_flags @LIB_door_create@ @LIBS@" + echo $lib_flags +fi +if test "$do_cflags" = "yes"; then + echo "-I${includedir} @INCLUDE_hcrypto@" +fi + +exit 0 |