mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-25 01:55:19 +01:00
e7e0b34988
several new kerberos related libraries and applications to FreeBSD: o kgetcred(1) allows one to manually get a ticket for a particular service. o kf(1) securily forwards ticket to another host through an authenticated and encrypted stream. o kcc(1) is an umbrella program around klist(1), kswitch(1), kgetcred(1) and other user kerberos operations. klist and kswitch are just symlinks to kcc(1) now. o kswitch(1) allows you to easily switch between kerberos credentials if you're running KCM. o hxtool(1) is a certificate management tool to use with PKINIT. o string2key(1) maps a password into key. o kdigest(8) is a userland tool to access the KDC's digest interface. o kimpersonate(8) creates a "fake" ticket for a service. We also now install manpages for some lirbaries that were not installed before, libheimntlm and libhx509. - The new HEIMDAL version no longer supports Kerberos 4. All users are recommended to switch to Kerberos 5. - Weak ciphers are now disabled by default. To enable DES support (used by telnet(8)), use "allow_weak_crypto" option in krb5.conf. - libtelnet, pam_ksu and pam_krb5 are now compiled with error on warnings disabled due to the function they use (krb5_get_err_text(3)) being deprecated. I plan to work on this next. - Heimdal's KDC now require sqlite to operate. We use the bundled version and install it as libheimsqlite. If some other FreeBSD components will require it in the future we can rename it to libbsdsqlite and use for these components as well. - This is not a latest Heimdal version, the new one was released while I was working on the update. I will update it to 1.5.2 soon, as it fixes some important bugs and security issues.
377 lines
11 KiB
Bash
377 lines
11 KiB
Bash
#! /bin/sh
|
|
# Common stub for a few missing GNU programs while installing.
|
|
|
|
scriptversion=2009-04-28.21; # UTC
|
|
|
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
|
# 2008, 2009 Free Software Foundation, Inc.
|
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2, or (at your option)
|
|
# any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
# As a special exception to the GNU General Public License, if you
|
|
# distribute this file as part of a program that contains a
|
|
# configuration script generated by Autoconf, you may include it under
|
|
# the same distribution terms that you use for the rest of that program.
|
|
|
|
if test $# -eq 0; then
|
|
echo 1>&2 "Try \`$0 --help' for more information"
|
|
exit 1
|
|
fi
|
|
|
|
run=:
|
|
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
|
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
|
|
|
# In the cases where this matters, `missing' is being run in the
|
|
# srcdir already.
|
|
if test -f configure.ac; then
|
|
configure_ac=configure.ac
|
|
else
|
|
configure_ac=configure.in
|
|
fi
|
|
|
|
msg="missing on your system"
|
|
|
|
case $1 in
|
|
--run)
|
|
# Try to run requested program, and just exit if it succeeds.
|
|
run=
|
|
shift
|
|
"$@" && exit 0
|
|
# Exit code 63 means version mismatch. This often happens
|
|
# when the user try to use an ancient version of a tool on
|
|
# a file that requires a minimum version. In this case we
|
|
# we should proceed has if the program had been absent, or
|
|
# if --run hadn't been passed.
|
|
if test $? = 63; then
|
|
run=:
|
|
msg="probably too old"
|
|
fi
|
|
;;
|
|
|
|
-h|--h|--he|--hel|--help)
|
|
echo "\
|
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
|
|
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
|
error status if there is no known handling for PROGRAM.
|
|
|
|
Options:
|
|
-h, --help display this help and exit
|
|
-v, --version output version information and exit
|
|
--run try to run the given command, and emulate it if it fails
|
|
|
|
Supported PROGRAM values:
|
|
aclocal touch file \`aclocal.m4'
|
|
autoconf touch file \`configure'
|
|
autoheader touch file \`config.h.in'
|
|
autom4te touch the output file, or create a stub one
|
|
automake touch all \`Makefile.in' files
|
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
|
flex create \`lex.yy.c', if possible, from existing .c
|
|
help2man touch the output file
|
|
lex create \`lex.yy.c', if possible, from existing .c
|
|
makeinfo touch the output file
|
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
|
|
|
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
|
\`g' are ignored when checking the name.
|
|
|
|
Send bug reports to <bug-automake@gnu.org>."
|
|
exit $?
|
|
;;
|
|
|
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
|
echo "missing $scriptversion (GNU Automake)"
|
|
exit $?
|
|
;;
|
|
|
|
-*)
|
|
echo 1>&2 "$0: Unknown \`$1' option"
|
|
echo 1>&2 "Try \`$0 --help' for more information"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
|
|
# normalize program name to check for.
|
|
program=`echo "$1" | sed '
|
|
s/^gnu-//; t
|
|
s/^gnu//; t
|
|
s/^g//; t'`
|
|
|
|
# Now exit if we have it, but it failed. Also exit now if we
|
|
# don't have it and --version was passed (most likely to detect
|
|
# the program). This is about non-GNU programs, so use $1 not
|
|
# $program.
|
|
case $1 in
|
|
lex*|yacc*)
|
|
# Not GNU programs, they don't have --version.
|
|
;;
|
|
|
|
tar*)
|
|
if test -n "$run"; then
|
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
|
exit 1
|
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
|
# We have it, but it failed.
|
|
exit 1
|
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
|
# Could not run --version or --help. This is probably someone
|
|
# running `$TOOL --version' or `$TOOL --help' to check whether
|
|
# $TOOL exists and not knowing $TOOL uses missing.
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
# If it does not exist, or fails to run (possibly an outdated version),
|
|
# try to emulate it.
|
|
case $program in
|
|
aclocal*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
|
any GNU archive site."
|
|
touch aclocal.m4
|
|
;;
|
|
|
|
autoconf*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified \`${configure_ac}'. You might want to install the
|
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
|
archive site."
|
|
touch configure
|
|
;;
|
|
|
|
autoheader*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
|
from any GNU archive site."
|
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
|
test -z "$files" && files="config.h"
|
|
touch_files=
|
|
for f in $files; do
|
|
case $f in
|
|
*:*) touch_files="$touch_files "`echo "$f" |
|
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
|
*) touch_files="$touch_files $f.in";;
|
|
esac
|
|
done
|
|
touch $touch_files
|
|
;;
|
|
|
|
automake*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
|
You might want to install the \`Automake' and \`Perl' packages.
|
|
Grab them from any GNU archive site."
|
|
find . -type f -name Makefile.am -print |
|
|
sed 's/\.am$/.in/' |
|
|
while read f; do touch "$f"; done
|
|
;;
|
|
|
|
autom4te*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is needed, but is $msg.
|
|
You might have modified some files without having the
|
|
proper tools for further handling them.
|
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
|
archive site."
|
|
|
|
file=`echo "$*" | sed -n "$sed_output"`
|
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
|
if test -f "$file"; then
|
|
touch $file
|
|
else
|
|
test -z "$file" || exec >$file
|
|
echo "#! /bin/sh"
|
|
echo "# Created by GNU Automake missing as a replacement of"
|
|
echo "# $ $@"
|
|
echo "exit 0"
|
|
chmod +x $file
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
bison*|yacc*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' $msg. You should only need it if
|
|
you modified a \`.y' file. You may need the \`Bison' package
|
|
in order for those modifications to take effect. You can get
|
|
\`Bison' from any GNU archive site."
|
|
rm -f y.tab.c y.tab.h
|
|
if test $# -ne 1; then
|
|
eval LASTARG="\${$#}"
|
|
case $LASTARG in
|
|
*.y)
|
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
|
if test -f "$SRCFILE"; then
|
|
cp "$SRCFILE" y.tab.c
|
|
fi
|
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
|
if test -f "$SRCFILE"; then
|
|
cp "$SRCFILE" y.tab.h
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
if test ! -f y.tab.h; then
|
|
echo >y.tab.h
|
|
fi
|
|
if test ! -f y.tab.c; then
|
|
echo 'main() { return 0; }' >y.tab.c
|
|
fi
|
|
;;
|
|
|
|
lex*|flex*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified a \`.l' file. You may need the \`Flex' package
|
|
in order for those modifications to take effect. You can get
|
|
\`Flex' from any GNU archive site."
|
|
rm -f lex.yy.c
|
|
if test $# -ne 1; then
|
|
eval LASTARG="\${$#}"
|
|
case $LASTARG in
|
|
*.l)
|
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
|
if test -f "$SRCFILE"; then
|
|
cp "$SRCFILE" lex.yy.c
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
if test ! -f lex.yy.c; then
|
|
echo 'main() { return 0; }' >lex.yy.c
|
|
fi
|
|
;;
|
|
|
|
help2man*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified a dependency of a manual page. You may need the
|
|
\`Help2man' package in order for those modifications to take
|
|
effect. You can get \`Help2man' from any GNU archive site."
|
|
|
|
file=`echo "$*" | sed -n "$sed_output"`
|
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
|
if test -f "$file"; then
|
|
touch $file
|
|
else
|
|
test -z "$file" || exec >$file
|
|
echo ".ab help2man is required to generate this page"
|
|
exit $?
|
|
fi
|
|
;;
|
|
|
|
makeinfo*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is $msg. You should only need it if
|
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
|
indirectly affecting the aspect of the manual. The spurious
|
|
call might also be the consequence of using a buggy \`make' (AIX,
|
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
|
the \`GNU make' package. Grab either from any GNU archive site."
|
|
# The file to touch is that specified with -o ...
|
|
file=`echo "$*" | sed -n "$sed_output"`
|
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
|
if test -z "$file"; then
|
|
# ... or it is the one specified with @setfilename ...
|
|
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
|
file=`sed -n '
|
|
/^@setfilename/{
|
|
s/.* \([^ ]*\) *$/\1/
|
|
p
|
|
q
|
|
}' $infile`
|
|
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
|
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
|
fi
|
|
# If the file does not exist, the user really needs makeinfo;
|
|
# let's fail without touching anything.
|
|
test -f $file || exit 1
|
|
touch $file
|
|
;;
|
|
|
|
tar*)
|
|
shift
|
|
|
|
# We have already tried tar in the generic part.
|
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
|
# messages.
|
|
if (gnutar --version > /dev/null 2>&1); then
|
|
gnutar "$@" && exit 0
|
|
fi
|
|
if (gtar --version > /dev/null 2>&1); then
|
|
gtar "$@" && exit 0
|
|
fi
|
|
firstarg="$1"
|
|
if shift; then
|
|
case $firstarg in
|
|
*o*)
|
|
firstarg=`echo "$firstarg" | sed s/o//`
|
|
tar "$firstarg" "$@" && exit 0
|
|
;;
|
|
esac
|
|
case $firstarg in
|
|
*h*)
|
|
firstarg=`echo "$firstarg" | sed s/h//`
|
|
tar "$firstarg" "$@" && exit 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo 1>&2 "\
|
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
|
You may want to install GNU tar or Free paxutils, or check the
|
|
command line arguments."
|
|
exit 1
|
|
;;
|
|
|
|
*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is needed, and is $msg.
|
|
You might have modified some files without having the
|
|
proper tools for further handling them. Check the \`README' file,
|
|
it often tells you about the needed prerequisites for installing
|
|
this package. You may also peek at any GNU archive site, in case
|
|
some other package would contain this missing \`$1' program."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|
|
|
|
# Local variables:
|
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
# time-stamp-start: "scriptversion="
|
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
# time-stamp-time-zone: "UTC"
|
|
# time-stamp-end: "; # UTC"
|
|
# End:
|