diff options
Diffstat (limited to 'source/n')
479 files changed, 118799 insertions, 0 deletions
diff --git a/source/n/alpine/alpine.SlackBuild b/source/n/alpine/alpine.SlackBuild new file mode 100755 index 000000000..6ed64d10d --- /dev/null +++ b/source/n/alpine/alpine.SlackBuild @@ -0,0 +1,195 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=alpine +VERSION=${VERSION:-2.00} +ARCH=${ARCH:-x86_64} +ALPINEBUILD=${ALPINEBUILD:-2} +IMAPDBUILD=${IMAPDBUILD:-2} +PINEPGP=${PINEPGP:-0.18.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG/etc + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/alpine.manpage.diff.gz | patch -p1 --verbose || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --with-ssl-dir=/usr \ + --with-ssl-certs-dir=/etc/ssl/certs \ + --with-c-client-target=slx \ + --with-system-pinerc=/etc/pine.conf \ + --with-system-fixed-pinerc=/etc/pine.conf.fixed \ + --disable-debug \ + --with-debug-level=0 \ + --without-tcl \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# This seems to ignore sysconfdir and libdir, so it's pretty useless to try them. +# Brute-force it. +# Eric says: no! Use configure parameters. +#zcat $CWD/alpine.config.h.diff.gz | patch -p1 --verbose || exit 1 + +# Correct paths and programs in tech-notes.txt: +zcat $CWD/alpine.tech-notes.txt.diff.gz | patch -p1 --verbose || exit 1 + +# Build and install: +# Since we build non-compliant to RFC3501 we have to answer 'y' half-way: +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix || exit 1 + +make install SSLTYPE=unix DESTDIR=$PKG || exit 1 + +# Add default config file: +./alpine/alpine -conf > $PKG/etc/pine.conf.new + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + LICENSE NOTICE README* VERSION \ + doc/tech-notes.txt doc/brochure.txt doc/mailcap.unx doc/mime.types \ + $PKG/usr/doc/${PKGNAM}-$VERSION +gzip -9 $PKG/usr/doc/${PKGNAM}-$VERSION/tech-notes.txt + +# Add pinepgp support: +cd $TMP +rm -rf pinepgp-$PINEPGP +tar xvf $CWD/pinepgp-$PINEPGP.tar.gz || exit 1 +cd pinepgp-$PINEPGP +zcat $CWD/pinepgp-${PINEPGP}-makefile-sed-fix.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/pinepgp.pinegpgp.in.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +./configure --prefix=/usr +make || exit 1 +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/pinepgp-$PINEPGP +cp -a COPYING* README $PKG/usr/doc/pinepgp-$PINEPGP +chmod 644 $PKG/usr/doc/pinepgp-$PINEPGP/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/doinst.sh.alpine > $PKG/install/doinst.sh +cat $CWD/slack-desc.alpine > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$ALPINEBUILD.txz + +# As is customary, now build a package for the included IMAP and +# POP3 daemons: +PKG2=/tmp/package-imapd +cd $TMP +rm -rf $PKG2 +mkdir -p $PKG2 +cd ${PKGNAM}-$VERSION/imap +mkdir -p $PKG2/usr/doc/imapd-$VERSION +cp -a \ + CONTENTS LICENSE.txt NOTICE SUPPORT \ + imap/docs/md5.txt \ + $PKG2/usr/doc/imapd-$VERSION +cat << EOF > $PKG2/usr/doc/imapd-$VERSION/additional-imap-documentation +Additional documentation for imapd may be found in the alpine +sources in the /imap/docs directory. +EOF +mkdir -p $PKG2/usr/man/man8 +for file in src/imapd/imapd.8 src/ipopd/ipopd.8 ; do + cat $file | gzip -9c > $PKG2/usr/man/man8/`basename $file`.gz +done +mkdir -p $PKG2/usr/sbin +cat imapd/imapd > $PKG2/usr/sbin/imapd +cat ipopd/ipop3d > $PKG2/usr/sbin/ipop3d +chmod 755 $PKG2/usr/sbin/imapd $PKG2/usr/sbin/ipop3d +# Strip binaries: +find $PKG2 | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# Add slack-desc file: +mkdir -p $PKG2/install +cat $CWD/slack-desc.imapd > $PKG2/install/slack-desc +cd $PKG2 +/sbin/makepkg -l y -c n $TMP/imapd-$VERSION-$ARCH-$IMAPDBUILD.txz + diff --git a/source/n/alpine/alpine.config.h.diff b/source/n/alpine/alpine.config.h.diff new file mode 100644 index 000000000..03064373e --- /dev/null +++ b/source/n/alpine/alpine.config.h.diff @@ -0,0 +1,15 @@ +--- ./include/config.h.orig 2008-08-06 20:59:51.000000000 -0500 ++++ ./include/config.h 2008-08-06 21:00:37.000000000 -0500 +@@ -557,10 +557,10 @@ + #define STDC_HEADERS 1 + + /* System pinerc */ +-#define SYSTEM_PINERC "/usr/lib/pine.conf" ++#define SYSTEM_PINERC "/etc/pine.conf" + + /* System fixed pinerc */ +-#define SYSTEM_PINERC_FIXED "/usr/lib/pine.conf.fixed" ++#define SYSTEM_PINERC_FIXED "/etc/pine.conf.fixed" + + /* Pine-Centric Host Specifier */ + #define SYSTYPE "LNX" diff --git a/source/n/alpine/alpine.manpage.diff b/source/n/alpine/alpine.manpage.diff new file mode 100644 index 000000000..c35b95e18 --- /dev/null +++ b/source/n/alpine/alpine.manpage.diff @@ -0,0 +1,17 @@ +--- ./doc/alpine.1.orig 2008-03-14 18:53:39.000000000 -0500 ++++ ./doc/alpine.1 2008-08-06 20:00:13.000000000 -0500 +@@ -305,11 +305,11 @@ + .br + /etc/mime.types System-wide file ext. to MIME type mapping + .br +-/usr/local/lib/pine.info Local pointer to system administrator. ++/etc/pine.info Local pointer to system administrator. + .br +-/usr/local/lib/pine.conf System-wide configuration file. ++/etc/pine.conf System-wide configuration file. + .br +-/usr/local/lib/pine.conf.fixed Non-overridable configuration file. ++/etc/pine.conf.fixed Non-overridable configuration file. + .br + /tmp/.\\usr\\spool\\mail\\xxxx Per-folder mailbox lock files. + .br diff --git a/source/n/alpine/alpine.tech-notes.txt.diff b/source/n/alpine/alpine.tech-notes.txt.diff new file mode 100644 index 000000000..3af68e921 --- /dev/null +++ b/source/n/alpine/alpine.tech-notes.txt.diff @@ -0,0 +1,136 @@ +--- ./doc/tech-notes.txt.orig 2008-03-17 17:26:52.000000000 -0500 ++++ ./doc/tech-notes.txt 2008-08-06 21:16:06.000000000 -0500 +@@ -271,14 +271,14 @@ + The selection of which MTA to use depends on the settings of smtp-server, + sendmail-path, and compile-time options. The first MTA specified in the + following list is used: +- 1. _sendmail-path_ in /usr/local/lib/pine.conf.fixed +- 2. _smtp-server_ in /usr/local/pine.conf.fixed ++ 1. _sendmail-path_ in /etc/pine.conf.fixed ++ 2. _smtp-server_ in /etc/pine.conf.fixed + 3. _sendmail-path_ specified on the command line. + 4. _smtp-server_ specified on the command line. + 5. _sendmail-path_ in the user's .pinerc file. + 6. _smtp-server_ in the user's .pinerc file. +- 7. _sendmail-path_ in /usr/local/lib/pine.conf +- 8. _smtp-server_ in /usr/local/pine.conf ++ 7. _sendmail-path_ in /etc/pine.conf ++ 8. _smtp-server_ in /etc/pine.conf + 9. DF_SENDMAIL_PATH defined at compile time. + 10. SENDMAIL and SENDMAILFLAGS defined at compile time. + +@@ -600,8 +600,8 @@ + into _Alpine_ so there are no _required_ auxiliary files. Instead of copying + the binaries manually, you may use make install to install them. + +- There are three optional auxiliary files: /usr/local/lib/pine.info, +- /usr/local/lib/pine.conf, and /usr/local/lib/pine.conf.fixed. The file ++ There are three optional auxiliary files: /usr/pine.info, ++ /etc/pine.conf, and /etc/pine.conf.fixed. The file + pine.info contains text on how to get further help on the local system. It + is part of the help text for the main menu and should probably refer to the + local help desk or the system administrator. If this file doesn't exist a +@@ -674,11 +674,11 @@ + This section lists the various files which _Alpine_ uses which are not email + folders. All of these are the default names of files, they may vary based on + _Alpine_'s configuration. +- /usr/local/lib/pine.conf ++ /etc/pine.conf + Pine's global configuration file. +- /usr/local/lib/pine.conf.fixed ++ /etc/pine.conf.fixed + Non-overridable global configuration file. +- /usr/local/lib/pine.info ++ /etc/pine.info + Local pointer to system administrator. + ~/.pinerc + Personal configuration file for each user. +@@ -872,10 +872,10 @@ + Configuration: Prints a sample system configuration file to the + screen or standard output. To generate an initial system + configuration file, execute +- alpine -conf > /usr/local/lib/pine.conf ++ alpine -conf > /etc/pine.conf + To generate a system configuration file using settings from an old + system configuration file, execute +- alpine -P old-pine.conf -conf > /usr/local/lib/pine.conf ++ alpine -P old-pine.conf -conf > /etc/pine.conf + A system configuration file is not required. + -convert_sigs _-p pinerc_ + Convert signatures contained in signature files into literal +@@ -973,7 +973,7 @@ + Pinerc may be either a local file or a remote configuration folder. + -P _pinerc_ + Uses the named file as the system wide configuration file instead of +- _/usr/local/lib/pine.conf_ on UNIX, or nothing on _PC-Alpine_. Pinerc ++ _/etc/pine.conf_ on UNIX, or nothing on _PC-Alpine_. Pinerc + may be either a local file or a remote configuration folder. + -passfile _passfile_ + This tells _Alpine_ what file should be used as the password file. +@@ -1180,8 +1180,8 @@ + configuration. In most cases, the compiled-in preferences will suit users + and administrators just fine. When running _Alpine_ on a UNIX system, the + default built-in configuration can be changed by setting variables in the +- system configuration files, /usr/local/lib/pine.conf or +- /usr/local/lib/pine.conf.fixed. (Actually, these files can be changed using ++ system configuration files, /etc/pine.conf or ++ /etc/pine.conf.fixed. (Actually, these files can be changed using + the configure arguments --with-system-pinerc=VALUE or + --with-system-fixed-pinerc=VALUE.) The location of the pine.conf file can be + changed with the -P command line argument. Both _Alpine_ and _PC-Alpine_ +@@ -3538,7 +3538,7 @@ + For Unix _Alpine_ the program _ispell_ works well as an alternate + spell checker. If your Unix system has _ispell_ it is probably + reasonable to make it the default speller by configuring it as the +- default in the system configuration file, /usr/local/lib/pine.conf. ++ default in the system configuration file, /etc/pine.conf. + If this option is not set, then the system's _spell_ command is used. + The spell command does not work the same as the alternate speller. It + produces a list of misspelled words on its standard output, instead, +@@ -3932,12 +3932,12 @@ + must exist as a full path or a path relative to your home directory). + Now for an example: + +- url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape, +- /usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT ++ url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/bin/firefox, ++ /usr/bin/lynx, C:\BIN\NETSCAPE.BAT + This example shows that for the first browser in the list to be used + the environment variable DISPLAY must be defined. If it is, then the +- file /usr/local/bin/netscape must exist. If either condition is not +- met, then the file /usr/local/bin/lynx must exist. If it doesn't, ++ file /usr/bin/firefox must exist. If either condition is not ++ met, then the file /usr/bin/lynx must exist. If it doesn't, + then the final path and file must exist. Note that the last entry is + a DOS/Windows path. This is one way to support _Alpine_ running on + more than one architecture with the same configuration file. +@@ -10273,9 +10273,9 @@ + 4. a command line argument + 5. the system-wide _fixed_ configuration file (Unix _Alpine_ only) + +- The fixed configuration file is normally /usr/local/lib/pine.conf.fixed. ++ The fixed configuration file is normally /etc/pine.conf.fixed. + +- The system-wide configuration file is normally /usr/local/lib/pine.conf for ++ The system-wide configuration file is normally /etc/pine.conf for + Unix _Alpine_ and is normally not set for _PC-Alpine_. For _PC-Alpine_, if + the environment variable _$PINECONF_ is set, that is used for the + system-wide configuration. This location can be set or changed on the +@@ -10524,7 +10524,7 @@ + * A program that implements the SMTP or ESMTP protocol via stdio. + * An entry in /etc/services for the alternate service. + * An entry in /etc/inetd.conf for the alternate service. +- * An entry in /usr/local/lib/pine.conf, /usr/local/lib/pine.conf.fixed or ++ * An entry in /etc/pine.conf, /etc/pine.conf.fixed or + ~/.pinerc. + _________________________________________________________________ + +@@ -11366,7 +11366,7 @@ + + The second selection is the standard UNIX print command. The default is + _lpr_, but it can be changed on a system basis to anything so desired in +- /usr/local/lib/pine.conf. ++ /etc/pine.conf. + + The third selection is the user's personal choice for a UNIX print command. + The text to be printed is piped into the command. _Enscript_ or _lpr_ with diff --git a/source/n/alpine/doinst.sh.alpine b/source/n/alpine/doinst.sh.alpine new file mode 100644 index 000000000..3a3694854 --- /dev/null +++ b/source/n/alpine/doinst.sh.alpine @@ -0,0 +1,18 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/pine.conf.new + +# Prevent sticker shock +if [ ! -e /usr/bin/pine ]; then + ( cd usr/bin ; ln -sf alpine pine ) +fi diff --git a/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff b/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff new file mode 100644 index 000000000..fe9f8d55a --- /dev/null +++ b/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff @@ -0,0 +1,87 @@ +diff -Naur pinepgp-0.18.0-orig/Makefile.in pinepgp-0.18.0/Makefile.in +--- pinepgp-0.18.0-orig/Makefile.in 2002-05-03 15:30:07.000000000 +0200 ++++ pinepgp-0.18.0/Makefile.in 2006-11-16 00:30:27.000000000 +0100 +@@ -44,52 +44,52 @@ + all: $(SOURCES) $(BUILD_FILTERS) + + $(SOURCES): $(SOURCES:%=%.in) +- $(CAT) $(@).in | $(SED) -e 's%\@SED\@%$(SED)%;\ +- s%\@CAT\@%$(CAT)%;\ +- s%\@RM\@%$(RM)%;\ +- s%\@MKTEMP\@%$(MKTEMP)%;\ +- s%\@BASH\@%$(BASH)%;\ +- s%\@bindir\@%$(bindir)%;\ +- s%\@tmpdir\@%$(tmpdir)%' > $(@) ++ $(CAT) $(@).in | $(SED) -e 's%\@SED\@%$(SED)%'\ ++ -e 's%\@CAT\@%$(CAT)%'\ ++ -e 's%\@RM\@%$(RM)%'\ ++ -e 's%\@MKTEMP\@%$(MKTEMP)%'\ ++ -e 's%\@BASH\@%$(BASH)%'\ ++ -e 's%\@bindir\@%$(bindir)%'\ ++ -e 's%\@tmpdir\@%$(tmpdir)%' > $(@) + chmod 755 $(@) + + pinegpg: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename=GnuPG%;\ +- s%^ces=.*%ces="$(GPG) -at -s"%;\ +- s%^cee=.*%cee="$(GPG) -at -e"%;\ +- s%^cese=.*%cese="$(GPG) -at -se"%;\ +- s%^cec=.*%cec="\$(GPG)"%;\ +- s%^cefp=.*%cefp=gpg%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename=GnuPG%'\ ++ -e 's%^ces=.*%ces="$(GPG) -at -s"%'\ ++ -e 's%^cee=.*%cee="$(GPG) -at -e"%'\ ++ -e 's%^cese=.*%cese="$(GPG) -at -se"%'\ ++ -e 's%^cec=.*%cec="\$(GPG)"%'\ ++ -e 's%^cefp=.*%cefp=gpg%' > $(@).c + $(CPP) -DGPG $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp26x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 2.6.x"%;\ +- s%^ces=.*%ces="\$(PGP) -fat -s"%;\ +- s%^cee=.*%cee="\$(PGP) -fat -e"%;\ +- s%^cese=.*%cese="\$(PGP) -fat -se"%;\ +- s%^cec=.*%cec="\$(PGP) -f"%;\ +- s%^cefp=.*%cefp=pgp26x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 2.6.x"%'\ ++ -e 's%^ces=.*%ces="\$(PGP) -fat -s"%'\ ++ -e 's%^cee=.*%cee="\$(PGP) -fat -e"%'\ ++ -e 's%^cese=.*%cese="\$(PGP) -fat -se"%'\ ++ -e 's%^cec=.*%cec="\$(PGP) -f"%'\ ++ -e 's%^cefp=.*%cefp=pgp26x%' > $(@).c + $(CPP) -DPGP26X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp5x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 5.x"%;\ +- s%^ces=.*%ces="$(PGP5S) -fat"%;\ +- s%^cee=.*%cee="$(PGP5E) -fat"%;\ +- s%^cese=.*%cese="$(PGP5E) -fat -s"%;\ +- s%^cec=.*%cec="$(PGP5V) -f"%;\ +- s%^cefp=.*%cefp=pgp26x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 5.x"%'\ ++ -e 's%^ces=.*%ces="$(PGP5S) -fat"%'\ ++ -e 's%^cee=.*%cee="$(PGP5E) -fat"%'\ ++ -e 's%^cese=.*%cese="$(PGP5E) -fat -s"%'\ ++ -e 's%^cec=.*%cec="$(PGP5V) -f"%'\ ++ -e 's%^cefp=.*%cefp=pgp26x%' > $(@).c + $(CPP) -DPGP5X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp65x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 6.5.x"%;\ +- s%^ces=.*%ces="\$(PGP6) -fat -s -u $$USER"%;\ +- s%^cee=.*%cee="\$(PGP6) -fat -e -u $$USER"%;\ +- s%^cese=.*%cese="\$(PGP6) -fat -se -u $$USER"%;\ +- s%^cec=.*%cec="\$(PGP6) -f -u $$USER"%;\ +- s%^cefp=.*%cefp=pgp65x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 6.5.x"%'\ ++ -e 's%^ces=.*%ces="\$(PGP6) -fat -s -u $$USER"%'\ ++ -e 's%^cee=.*%cee="\$(PGP6) -fat -e -u $$USER"%'\ ++ -e 's%^cese=.*%cese="\$(PGP6) -fat -se -u $$USER"%'\ ++ -e 's%^cec=.*%cec="\$(PGP6) -f -u $$USER"%'\ ++ -e 's%^cefp=.*%cefp=pgp65x%' > $(@).c + $(CPP) -DPGP65X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + diff --git a/source/n/alpine/pinepgp.pinegpgp.in.diff b/source/n/alpine/pinepgp.pinegpgp.in.diff new file mode 100644 index 000000000..4c76113db --- /dev/null +++ b/source/n/alpine/pinepgp.pinegpgp.in.diff @@ -0,0 +1,7 @@ +--- ./pinegpgp.in.orig 2002-05-03 08:30:07.000000000 -0500 ++++ ./pinegpgp.in 2008-08-06 21:47:36.000000000 -0500 +@@ -1,4 +1,3 @@ +-#!@BASH@ + + tmpdir=@tmpdir@ + diff --git a/source/n/alpine/slack-desc.alpine b/source/n/alpine/slack-desc.alpine new file mode 100644 index 000000000..79f962da1 --- /dev/null +++ b/source/n/alpine/slack-desc.alpine @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +alpine: alpine (Alternatively Licensed Program for Internet News and Email) +alpine: +alpine: Alpine is a fast, easy to use email client that is suitable for both +alpine: the inexperienced email user as well as for the most demanding of +alpine: power users. Alpine is based on the Pine(R) Message System, which +alpine: was also developed at the University of Washington. Alpine can be +alpine: learned by exploration and the use of context-sensitive help. The +alpine: user experience is highly customizable through the use of the Alpine +alpine: Setup command. +alpine: +alpine: The Alpine site may be found here: http://www.washington.edu/alpine diff --git a/source/n/alpine/slack-desc.imapd b/source/n/alpine/slack-desc.imapd new file mode 100644 index 000000000..d52249a24 --- /dev/null +++ b/source/n/alpine/slack-desc.imapd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +imapd: imapd (IMAP4rev1 from alpine) +imapd: +imapd: /usr/sbin/ipop3d and /usr/sbin/imapd are servers supporting the POP3 +imapd: and IMAP remote mail access protocols. They allow users to download +imapd: mail from your Linux system for remote viewing. +imapd: +imapd: +imapd: +imapd: +imapd: +imapd: diff --git a/source/n/autofs/autofs-3.1.7.diff b/source/n/autofs/autofs-3.1.7.diff new file mode 100644 index 000000000..7849eae95 --- /dev/null +++ b/source/n/autofs/autofs-3.1.7.diff @@ -0,0 +1,11 @@ +--- ./modules/lookup_program.c.orig Sat Mar 24 14:16:45 2001 ++++ ./modules/lookup_program.c Sat Mar 24 14:18:18 2001 +@@ -16,7 +16,7 @@ + + #include <ctype.h> + #include <errno.h> +-#include <limits.h> ++#include <linux/limits.h> + #include <malloc.h> + #include <stdio.h> + #include <string.h> diff --git a/source/n/autofs/autofs-3.1.7.tar.bz2.sign b/source/n/autofs/autofs-3.1.7.tar.bz2.sign new file mode 100644 index 000000000..8f80176b7 --- /dev/null +++ b/source/n/autofs/autofs-3.1.7.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.0.4 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQA6A7VZyGugalF9Dw4RAkieAJ96c+Si+lGnoSf0OJCanmwE7dilBwCgieKQ +SshwUTt1sSA9Iu3meWUm2yk= +=1kDE +-----END PGP SIGNATURE----- diff --git a/source/n/autofs/autofs.SlackBuild b/source/n/autofs/autofs.SlackBuild new file mode 100755 index 000000000..8886f3f1e --- /dev/null +++ b/source/n/autofs/autofs.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.1.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-autofs + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/{sbin,man/man{5,8}} + +cd $TMP +tar xvf $CWD/autofs-$VERSION.tar.bz2 || exit 1 +cd autofs-$VERSION || exit 1 +zcat $CWD/autofs-$VERSION.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Allow x86_64 arch: +zcat $CWD/autofs.x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Compensate for modern compiler requirements: +zcat $CWD/autofs.gcc.fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make || exit 1 + +make install INSTALLROOT=$PKG || exit 1 + +strip $PKG/usr/sbin/* +gzip -9 $PKG/usr/man/man*/* + +mkdir -p $PKG/usr/doc/autofs-$VERSION +cp -a \ + COPYING COPYRIGHT NEWS README README.options TODO \ + multiserver_mount.patch samples \ + $PKG/usr/doc/autofs-$VERSION +( cd $PKG/usr/doc/autofs-$VERSION + find . \( -name Makefile -o -name *.in \) -exec rm -f {} \; + find . -type d -exec chmod 755 {} \; + find . -type f -exec chmod 644 {} \; +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/autofs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/autofs/autofs.gcc.fix.diff b/source/n/autofs/autofs.gcc.fix.diff new file mode 100644 index 000000000..8b30019f7 --- /dev/null +++ b/source/n/autofs/autofs.gcc.fix.diff @@ -0,0 +1,12 @@ +diff -Naur autofs-3.1.7/modules/lookup_file.c autofs-3.1.7-gcc/modules/lookup_file.c +--- autofs-3.1.7/modules/lookup_file.c 2000-11-04 07:05:17.000000000 +0000 ++++ autofs-3.1.7-gcc/modules/lookup_file.c 2006-08-16 18:21:21.000000000 +0100 +@@ -197,7 +197,7 @@ + } + break; + } +- next_char: /* End of loop, since we can't continue; ++ next_char:; /* End of loop, since we can't continue; + inside a switch */ + } + diff --git a/source/n/autofs/autofs.x86_64.diff b/source/n/autofs/autofs.x86_64.diff new file mode 100644 index 000000000..8c4bf677c --- /dev/null +++ b/source/n/autofs/autofs.x86_64.diff @@ -0,0 +1,11 @@ +--- autofs-3.1.7/include/linux/auto_fs.h 2000-11-04 07:05:18.000000000 +0000 ++++ auto_fs.h 2006-10-19 13:46:21.000000000 +0000 +@@ -45,7 +45,7 @@ + * If so, 32-bit user-space code should be backwards compatible. + */ + +-#if defined(__sparc__) || defined(__mips__) ++#if defined(__sparc__) || defined(__mips__) || defined(__s390__) || defined(__x86_64__) + typedef unsigned int autofs_wqt_t; + #else + typedef unsigned long autofs_wqt_t; diff --git a/source/n/autofs/slack-desc b/source/n/autofs/slack-desc new file mode 100644 index 000000000..a7af6c0b2 --- /dev/null +++ b/source/n/autofs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +autofs: autofs (kernel-based automounter) +autofs: +autofs: autofs is a kernel-based automounter for Linux. It performs a job +autofs: similar to amd(8) but relies on a small stub of kernel code instead of +autofs: pretending to be an NFS server. The result is simpler code, better +autofs: reliability, and much faster operation in the common case (everything +autofs: already mounted.) +autofs: +autofs: +autofs: +autofs: diff --git a/source/n/biff+comsat/biff+comsat-0.17.diff b/source/n/biff+comsat/biff+comsat-0.17.diff new file mode 100644 index 000000000..ed615eb00 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat-0.17.diff @@ -0,0 +1,10 @@ +--- ./comsat/comsat.c.orig Sun Feb 25 18:05:33 2001 ++++ ./comsat/comsat.c Sun Feb 25 18:05:54 2001 +@@ -62,6 +62,7 @@ + #include <paths.h> /* used for _PATH_MAILDIR, _PATH_UTMP, etc. */ + #include <unistd.h> + #include <stdlib.h> ++#include <time.h> + + #include "../version.h" + diff --git a/source/n/biff+comsat/biff+comsat.SlackBuild b/source/n/biff+comsat/biff+comsat.SlackBuild new file mode 100755 index 000000000..b50da5aa6 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-biff+comsat + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf biff+comsat-$VERSION +tar xvf $CWD/biff+comsat-$VERSION.tar.gz || exit 1 +cd biff+comsat-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/biff+comsat-0.17.diff.gz | patch -p1 --verbose || exit +zcat $CWD/biff+comsat.offset.diff.gz | patch -p1 --verbose || exit +zcat $CWD/biff+comsat.badutmp.diff.gz | patch -p1 --verbose || exit + +./configure --prefix=/usr +make || exit 1 + +cd biff +strip biff +mkdir -p $PKG/usr/bin +cat biff > $PKG/usr/bin/biff +chmod 755 $PKG/usr/bin/biff +mkdir -p $PKG/usr/man/man{1,8} +cat biff.1 | gzip -9c > $PKG/usr/man/man1/biff.1.gz +cd ../comsat +strip comsat +mkdir -p $PKG/usr/sbin +cat comsat > $PKG/usr/sbin/in.comsat +chmod 755 $PKG/usr/sbin/in.comsat +cat comsat.8 | gzip -9c > $PKG/usr/man/man8/in.comsat.8.gz + +cd .. +mkdir -p $PKG/usr/doc/biff+comsat-$VERSION +cp -a README $PKG/usr/doc/biff+comsat-$VERSION +chown root:root $PKG/usr/doc/biff+comsat-$VERSION/* +chmod 644 $PKG/usr/doc/biff+comsat-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/biff+comsat-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/biff+comsat/biff+comsat.badutmp.diff b/source/n/biff+comsat/biff+comsat.badutmp.diff new file mode 100644 index 000000000..2cb79b590 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.badutmp.diff @@ -0,0 +1,43 @@ +--- ./comsat/comsat.c.orig 2004-06-21 13:50:09.000000000 -0700 ++++ ./comsat/comsat.c 2004-06-21 13:50:52.000000000 -0700 +@@ -69,6 +69,8 @@ + static int debug = 0; + #define dsyslog if (debug) syslog + ++ ++ + #define MAXIDLE 120 + + static char hostname[MAXHOSTNAMELEN]; +@@ -331,6 +333,7 @@ + char line[sizeof(utp->ut_line) + 1]; /* tty name */ + const char *cr; /* line delimiter */ + sigset_t sigset; /* scratch signal mask */ ++ struct passwd *pwbuf; /* passwd information buffer */ + + #ifdef USER_PROCESS + if (utp->ut_type != USER_PROCESS) { +@@ -371,6 +374,23 @@ + dsyslog(LOG_DEBUG, "%s: wrong mode on %s", name, tty); + return; + } ++ /* ++ * Ensure the tty is owned by the uid of 'name' to prevent old ++ * unremoved utmp records referring to user 'x' leading to ++ * biffage of user 'x''s email to user 'y' where user 'y' is ++ * logged onto the same terminal that user 'x' previously ++ * used. T.Crane, 8th June 2004. ++ */ ++ if ((pwbuf=getpwnam(name))==NULL) { ++ syslog(LOG_ERR, "get pwname(%s) failed", name); ++ exit(1); ++ } ++ if (pwbuf->pw_uid != stb.st_uid) { ++ dsyslog(LOG_DEBUG, "Warning: tty uid %d != uid %d for %s on %s\n", ++ stb.st_uid, pwbuf->pw_uid, name, tty); ++ return; ++ } ++ + dsyslog(LOG_DEBUG, "notify %s on %s\n", name, tty); + + /* diff --git a/source/n/biff+comsat/biff+comsat.offset.diff b/source/n/biff+comsat/biff+comsat.offset.diff new file mode 100644 index 000000000..11cd1eb76 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.offset.diff @@ -0,0 +1,93 @@ +--- ./comsat/comsat.c.orig Sun Jun 3 01:31:30 2001 ++++ ./comsat/comsat.c Sun Jun 3 01:31:34 2001 +@@ -77,8 +77,8 @@ + static int nutmp; + + static void mailfor(char *name); +-static void notify(struct utmp *utp, off_t offset); +-static void jkfprintf(FILE *, const char *name, off_t offset, const char *cr); ++static void notify(struct utmp *utp, off_t offset, const char *mailfile); ++static void jkfprintf(FILE *, const char *name, off_t offset, const char *cr, const char *mailfile); + static void onalrm(int); + + int main(void) { +@@ -273,20 +273,27 @@ + static void mailfor(char *name) + { + struct utmp *utp; +- char *cp; ++ char *cp, *cp2; + off_t offset; + ++ dsyslog(LOG_DEBUG, "mailfor: name = %s\n", name); /* T.Crane 29/06/2001 */ ++ ++ /* Eg. name is "tom@5990326:/var/spool/mail/tom.wien" */ + /* Break off the file offset part and convert it to an integer. */ + cp = strchr(name, '@'); ++ /* First, get the actual filename, ie. the part after the ':' */ ++ cp2 = strchr(name, ':')+1; /* If it does not exist cp2==NULL */ + if (!cp) return; + *cp = 0; + offset = atol(cp + 1); ++ dsyslog(LOG_DEBUG, "mailfor: offset = %d\n", offset); /* T.Crane 29/06/2001 */ ++ dsyslog(LOG_DEBUG, "mailfor: mailfile = %s\n", cp2); /* T.Crane 29/06/2001 */ + + /* Look through the utmp and call notify() for each matching login. */ + utp = &utmp[nutmp]; + while (--utp >= utmp) { + if (!strncmp(utp->ut_name, name, sizeof(utmp[0].ut_name))) +- notify(utp, offset); ++ notify(utp, offset, cp2); + } + } + +@@ -314,7 +321,7 @@ + /* + * This actually writes to the user's terminal. + */ +-static void notify(struct utmp *utp, off_t offset) ++static void notify(struct utmp *utp, off_t offset, const char *mailfile) + { + FILE *tp; /* file open on tty */ + struct stat stb; +@@ -427,7 +434,7 @@ + /* + * Print the first few lines of the message. + */ +- jkfprintf(tp, name, offset, cr); ++ jkfprintf(tp, name, offset, cr, mailfile); + + /* + * Close up and quit the child process. +@@ -439,8 +446,11 @@ + /* + * This prints a few lines from the mailbox of the user "name" at offset + * "offset", using "cr" as the line break string, to the file "tp". ++ * Added mailfile variable to take the name of the actual mailfile ++ * passed to us rather than the defalt mailfile of the user "name", ++ * T.Crane (T.Crane@rhul.ac.uk), 29/05/2001. + */ +-static void jkfprintf(FILE *tp, const char *name, off_t offset, const char *cr) ++static void jkfprintf(FILE *tp, const char *name, off_t offset, const char *cr, const char *mailfile) + { + char *cp, ch; + FILE *fi; +@@ -473,7 +483,17 @@ + /* + * Open the user's mailbox (recall we're already in the mail spool dir) + */ +- fi = fopen(name, "r"); ++ ++ /* If mailfile == NULL, then use name (ie. users' username instead) */ ++ if (mailfile != NULL) { ++ dsyslog(LOG_DEBUG, "jkfprint: actual mailbox = %s\n",mailfile); ++ fi = fopen(mailfile, "r"); ++ } ++ else { ++ dsyslog(LOG_DEBUG, "jkfprint: actual mailbox==NULL, using name %s\n",name); ++ fi = fopen(name, "r"); ++ } ++ + if (fi == NULL) return; + + /* Move to requested offset */ diff --git a/source/n/biff+comsat/slack-desc b/source/n/biff+comsat/slack-desc new file mode 100644 index 000000000..1c27bf328 --- /dev/null +++ b/source/n/biff+comsat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +biff+comsat: biff+comsat (mail arrival notification daemon) +biff+comsat: +biff+comsat: Comsat is the server process which receives reports of incoming mail +biff+comsat: and notifies users if they have requested this service. "biff" is +biff+comsat: the program that requests comsat service "biff y", and may be placed +biff+comsat: in a user's startup file if they'd like to hear a beep and trash +biff+comsat: their console with each new piece of junk mail. ;-) +biff+comsat: +biff+comsat: Biff was the name of Heidi Stettner's dog, who barked when the +biff+comsat: mailman came. Biff was well known to many of the early BSD developers +biff+comsat: living in Evans Hall at U.C. Berkeley. diff --git a/source/n/bind/3link.sh b/source/n/bind/3link.sh new file mode 100644 index 000000000..ec8ba4d19 --- /dev/null +++ b/source/n/bind/3link.sh @@ -0,0 +1,136 @@ +rm -f lwres_addr_parse.3 +ln -sf lwres_resutil.3 lwres_addr_parse.3 +rm -f lwres_buffer_add.3 +ln -sf lwres_buffer.3 lwres_buffer_add.3 +rm -f lwres_buffer_back.3 +ln -sf lwres_buffer.3 lwres_buffer_back.3 +rm -f lwres_buffer_clear.3 +ln -sf lwres_buffer.3 lwres_buffer_clear.3 +rm -f lwres_buffer_first.3 +ln -sf lwres_buffer.3 lwres_buffer_first.3 +rm -f lwres_buffer_forward.3 +ln -sf lwres_buffer.3 lwres_buffer_forward.3 +rm -f lwres_buffer_getmem.3 +ln -sf lwres_buffer.3 lwres_buffer_getmem.3 +rm -f lwres_buffer_getuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint16.3 +rm -f lwres_buffer_getuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint32.3 +rm -f lwres_buffer_getuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint8.3 +rm -f lwres_buffer_init.3 +ln -sf lwres_buffer.3 lwres_buffer_init.3 +rm -f lwres_buffer_invalidate.3 +ln -sf lwres_buffer.3 lwres_buffer_invalidate.3 +rm -f lwres_buffer_putmem.3 +ln -sf lwres_buffer.3 lwres_buffer_putmem.3 +rm -f lwres_buffer_putuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint16.3 +rm -f lwres_buffer_putuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint32.3 +rm -f lwres_buffer_putuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint8.3 +rm -f lwres_buffer_subtract.3 +ln -sf lwres_buffer.3 lwres_buffer_subtract.3 +rm -f lwres_conf_clear.3 +ln -sf lwres_config.3 lwres_conf_clear.3 +rm -f lwres_conf_get.3 +ln -sf lwres_config.3 lwres_conf_get.3 +rm -f lwres_conf_init.3 +ln -sf lwres_config.3 lwres_conf_init.3 +rm -f lwres_conf_parse.3 +ln -sf lwres_config.3 lwres_conf_parse.3 +rm -f lwres_conf_print.3 +ln -sf lwres_config.3 lwres_conf_print.3 +rm -f lwres_context_allocmem.3 +ln -sf lwres_context.3 lwres_context_allocmem.3 +rm -f lwres_context_create.3 +ln -sf lwres_context.3 lwres_context_create.3 +rm -f lwres_context_destroy.3 +ln -sf lwres_context.3 lwres_context_destroy.3 +rm -f lwres_context_freemem.3 +ln -sf lwres_context.3 lwres_context_freemem.3 +rm -f lwres_context_initserial.3 +ln -sf lwres_context.3 lwres_context_initserial.3 +rm -f lwres_context_nextserial.3 +ln -sf lwres_context.3 lwres_context_nextserial.3 +rm -f lwres_context_sendrecv.3 +ln -sf lwres_context.3 lwres_context_sendrecv.3 +rm -f lwres_endhostent.3 +ln -sf lwres_gethostent.3 lwres_endhostent.3 +rm -f lwres_endhostent_r.3 +ln -sf lwres_gethostent.3 lwres_endhostent_r.3 +rm -f lwres_freeaddrinfo.3 +ln -sf lwres_getaddrinfo.3 lwres_freeaddrinfo.3 +rm -f lwres_freehostent.3 +ln -sf lwres_getipnode.3 lwres_freehostent.3 +rm -f lwres_gabnrequest_free.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_free.3 +rm -f lwres_gabnrequest_parse.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_parse.3 +rm -f lwres_gabnrequest_render.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_render.3 +rm -f lwres_gabnresponse_free.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_free.3 +rm -f lwres_gabnresponse_parse.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_parse.3 +rm -f lwres_gabnresponse_render.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_render.3 +rm -f lwres_getaddrsbyname.3 +ln -sf lwres_resutil.3 lwres_getaddrsbyname.3 +rm -f lwres_gethostbyaddr.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr.3 +rm -f lwres_gethostbyaddr_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr_r.3 +rm -f lwres_gethostbyname.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname.3 +rm -f lwres_gethostbyname2.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname2.3 +rm -f lwres_gethostbyname_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname_r.3 +rm -f lwres_gethostent_r.3 +ln -sf lwres_gethostent.3 lwres_gethostent_r.3 +rm -f lwres_getipnodebyaddr.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyaddr.3 +rm -f lwres_getipnodebyname.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyname.3 +rm -f lwres_getnamebyaddr.3 +ln -sf lwres_resutil.3 lwres_getnamebyaddr.3 +rm -f lwres_gnbarequest_free.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_free.3 +rm -f lwres_gnbarequest_parse.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_parse.3 +rm -f lwres_gnbarequest_render.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_render.3 +rm -f lwres_gnbaresponse_free.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_free.3 +rm -f lwres_gnbaresponse_parse.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_parse.3 +rm -f lwres_gnbaresponse_render.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_render.3 +rm -f lwres_herror.3 +ln -sf lwres_hstrerror.3 lwres_herror.3 +rm -f lwres_lwpacket_parseheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_parseheader.3 +rm -f lwres_lwpacket_renderheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_renderheader.3 +rm -f lwres_net_ntop.3 +ln -sf lwres_inetntop.3 lwres_net_ntop.3 +rm -f lwres_nooprequest_free.3 +ln -sf lwres_noop.3 lwres_nooprequest_free.3 +rm -f lwres_nooprequest_parse.3 +ln -sf lwres_noop.3 lwres_nooprequest_parse.3 +rm -f lwres_nooprequest_render.3 +ln -sf lwres_noop.3 lwres_nooprequest_render.3 +rm -f lwres_noopresponse_free.3 +ln -sf lwres_noop.3 lwres_noopresponse_free.3 +rm -f lwres_noopresponse_parse.3 +ln -sf lwres_noop.3 lwres_noopresponse_parse.3 +rm -f lwres_noopresponse_render.3 +ln -sf lwres_noop.3 lwres_noopresponse_render.3 +rm -f lwres_sethostent.3 +ln -sf lwres_gethostent.3 lwres_sethostent.3 +rm -f lwres_sethostent_r.3 +ln -sf lwres_gethostent.3 lwres_sethostent_r.3 +rm -f lwres_string_parse.3 +ln -sf lwres_resutil.3 lwres_string_parse.3 diff --git a/source/n/bind/bind.SlackBuild b/source/n/bind/bind.SlackBuild new file mode 100755 index 000000000..afcde9e1b --- /dev/null +++ b/source/n/bind/bind.SlackBuild @@ -0,0 +1,164 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=bind +VERSION=${VERSION:-9.4.3-P3} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=/bind-$(mcookie) +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Remove use of SO_BSDCOMPAT which has been obsolete since the 2.2.x kernel series, +# and generates warnings under 2.6.x kernels: +zcat $CWD/bind.so_bsdcompat.diff.gz | patch -p1 --verbose || exit + +# We want to use /var/run/named/, not just /var/run/. +# This allows changing the ownership of that directory if we want to run +# named as a non-root user. +zcat $CWD/bind.var.run.named.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Threads break '-u' on Linux (for now) + +# The man pages should reflect /var/run/named: +zcat $CWD/bind.man.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-libtool \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --enable-threads \ + --with-openssl=/usr \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We like symlinks. +( cd $PKG/usr/sbin + ln -sf named lwresd +) + +# We like a lot of symlinks. +( cd $PKG/usr/man/man3 + sh $CWD/3link.sh +) + +# Install init script: +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.bind $PKG/etc/rc.d/rc.bind.new +chmod 644 $PKG/etc/rc.d/rc.bind.new + +# Add /var/run/named directory: +mkdir -p $PKG/var/run/named + +# Fix library perms: +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* 2> /dev/null + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYRIGHT FAQ* README* \ + doc/arm doc/misc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# This one should have the correct perms of the config file: +chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/misc/rndc.conf-sample + +# One format of this is plenty. Especially get rid of the bloated PDF. +( cd $PKG/usr/doc/bind-$VERSION/arm + rm -f Makefile* *.pdf *.xml README.SGML latex-fixup.pl +) + +# Add sample config files for a simple caching nameserver: +mkdir -p $PKG/var/named/caching-example +cat $CWD/caching-example/named.conf > $PKG/etc/named.conf.new +cat $CWD/caching-example/localhost.zone > $PKG/var/named/caching-example/localhost.zone +cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.root +# This name is deprecated, but having it here doesn't hurt in case +# an old configuration file wants it: +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.ca + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/n/bind/bind.man.diff b/source/n/bind/bind.man.diff new file mode 100644 index 000000000..6bcf19219 --- /dev/null +++ b/source/n/bind/bind.man.diff @@ -0,0 +1,22 @@ +--- ./bin/named/named.8.orig 2007-01-29 18:23:44.000000000 -0600 ++++ ./bin/named/named.8 2007-06-07 23:17:33.000000000 -0500 +@@ -202,7 +202,7 @@ + The default configuration file. + .RE + .PP +-\fI/var/run/named.pid\fR ++\fI/var/run/named/named.pid\fR + .RS 4 + The default process\-id file. + .RE +--- ./bin/named/lwresd.8.orig 2007-01-29 18:23:44.000000000 -0600 ++++ ./bin/named/lwresd.8 2007-06-07 23:17:18.000000000 -0500 +@@ -155,7 +155,7 @@ + The default configuration file. + .RE + .PP +-\fI/var/run/lwresd.pid\fR ++\fI/var/run/named/lwresd.pid\fR + .RS 4 + The default process\-id file. + .RE diff --git a/source/n/bind/bind.so_bsdcompat.diff b/source/n/bind/bind.so_bsdcompat.diff new file mode 100644 index 000000000..5d78031b7 --- /dev/null +++ b/source/n/bind/bind.so_bsdcompat.diff @@ -0,0 +1,11 @@ +--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600 ++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600 +@@ -245,6 +245,8 @@ + + #define SOCK_DEAD(s) ((s)->references == 0) + ++#undef SO_BSDCOMPAT ++ + static void + manager_log(isc_socketmgr_t *sockmgr, + isc_logcategory_t *category, isc_logmodule_t *module, int level, diff --git a/source/n/bind/bind.var.run.named.diff b/source/n/bind/bind.var.run.named.diff new file mode 100644 index 000000000..53cc8bd62 --- /dev/null +++ b/source/n/bind/bind.var.run.named.diff @@ -0,0 +1,14 @@ +--- ./bin/named/include/named/globals.h.orig Sat Nov 24 17:47:59 2001 ++++ ./bin/named/include/named/globals.h Tue Feb 26 18:51:18 2002 +@@ -102,9 +102,9 @@ + EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE); + + EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR +- "/run/named.pid"); ++ "/run/named/named.pid"); + EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR +- "/run/lwresd.pid"); ++ "/run/named/lwresd.pid"); + EXTERN const char * ns_g_username INIT(NULL); + + #undef EXTERN diff --git a/source/n/bind/caching-example/localhost.zone b/source/n/bind/caching-example/localhost.zone new file mode 100644 index 000000000..c47baf5f1 --- /dev/null +++ b/source/n/bind/caching-example/localhost.zone @@ -0,0 +1,11 @@ +$TTL 86400 +$ORIGIN localhost. +@ 1D IN SOA @ root ( + 42 ; serial (d. adams) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum + + 1D IN NS @ + 1D IN A 127.0.0.1 diff --git a/source/n/bind/caching-example/named.conf b/source/n/bind/caching-example/named.conf new file mode 100644 index 000000000..a8ee2795f --- /dev/null +++ b/source/n/bind/caching-example/named.conf @@ -0,0 +1,31 @@ +options { + directory "/var/named"; + /* + * If there is a firewall between you and nameservers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND 8.1 uses an unprivileged + * port by default. + */ + // query-source address * port 53; +}; + +// +// a caching only nameserver config +// +zone "." IN { + type hint; + file "caching-example/named.root"; +}; + +zone "localhost" IN { + type master; + file "caching-example/localhost.zone"; + allow-update { none; }; +}; + +zone "0.0.127.in-addr.arpa" IN { + type master; + file "caching-example/named.local"; + allow-update { none; }; +}; diff --git a/source/n/bind/caching-example/named.local b/source/n/bind/caching-example/named.local new file mode 100644 index 000000000..8bfc435fb --- /dev/null +++ b/source/n/bind/caching-example/named.local @@ -0,0 +1,10 @@ +$TTL 86400 +@ IN SOA localhost. root.localhost. ( + 1997022700 ; Serial + 28800 ; Refresh + 14400 ; Retry + 3600000 ; Expire + 86400 ) ; Minimum + IN NS localhost. + +1 IN PTR localhost. diff --git a/source/n/bind/caching-example/named.root b/source/n/bind/caching-example/named.root new file mode 100644 index 000000000..902a7047f --- /dev/null +++ b/source/n/bind/caching-example/named.root @@ -0,0 +1,85 @@ +; This file holds the information on root name servers needed to +; initialize cache of Internet domain name servers +; (e.g. reference this file in the "cache . <file>" +; configuration file of BIND domain name servers). +; +; This file is made available by InterNIC +; under anonymous FTP as +; file /domain/named.root +; on server FTP.INTERNIC.NET +; -OR- RS.INTERNIC.NET +; +; last update: Feb 04, 2008 +; related version of root zone: 2008020400 +; +; formerly NS.INTERNIC.NET +; +. 3600000 IN NS A.ROOT-SERVERS.NET. +A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 +A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30 +; +; formerly NS1.ISI.EDU +; +. 3600000 NS B.ROOT-SERVERS.NET. +B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 +; +; formerly C.PSI.NET +; +. 3600000 NS C.ROOT-SERVERS.NET. +C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 +; +; formerly TERP.UMD.EDU +; +. 3600000 NS D.ROOT-SERVERS.NET. +D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 +; +; formerly NS.NASA.GOV +; +. 3600000 NS E.ROOT-SERVERS.NET. +E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 +; +; formerly NS.ISC.ORG +; +. 3600000 NS F.ROOT-SERVERS.NET. +F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 +F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f +; +; formerly NS.NIC.DDN.MIL +; +. 3600000 NS G.ROOT-SERVERS.NET. +G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 +; +; formerly AOS.ARL.ARMY.MIL +; +. 3600000 NS H.ROOT-SERVERS.NET. +H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 +H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803f:235 +; +; formerly NIC.NORDU.NET +; +. 3600000 NS I.ROOT-SERVERS.NET. +I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 +; +; operated by VeriSign, Inc. +; +. 3600000 NS J.ROOT-SERVERS.NET. +J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30 +J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30 +; +; operated by RIPE NCC +; +. 3600000 NS K.ROOT-SERVERS.NET. +K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 +K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1 +; +; operated by ICANN +; +. 3600000 NS L.ROOT-SERVERS.NET. +L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42 +; +; operated by WIDE +; +. 3600000 NS M.ROOT-SERVERS.NET. +M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 +M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35 +; End of File diff --git a/source/n/bind/doinst.sh b/source/n/bind/doinst.sh new file mode 100644 index 000000000..afeff946f --- /dev/null +++ b/source/n/bind/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.bind.new: +if [ -e etc/rc.d/rc.bind ]; then + cp -a etc/rc.d/rc.bind etc/rc.d/rc.bind.new.incoming + cat etc/rc.d/rc.bind.new > etc/rc.d/rc.bind.new.incoming + mv etc/rc.d/rc.bind.new.incoming etc/rc.d/rc.bind.new +fi + +config etc/named.conf.new +config etc/rc.d/rc.bind.new + +# Add a /var/named if it doesn't exist: +if [ ! -d var/named ]; then + mkdir -p var/named + chmod 755 var/named +fi + +# Generate /etc/rndc.key if there's none there, +# and there also no /etc/rndc.conf (the other +# way to set this up). +if [ ! -r etc/rndc.key -a ! -r /etc/rndc.conf ]; then + chroot . /sbin/ldconfig + chroot . /usr/sbin/rndc-confgen -r /dev/urandom -a 2> /dev/null +fi diff --git a/source/n/bind/rc.bind b/source/n/bind/rc.bind new file mode 100644 index 000000000..966670e3b --- /dev/null +++ b/source/n/bind/rc.bind @@ -0,0 +1,112 @@ +#!/bin/sh +# Start/stop/restart the BIND name server daemon (named). + +# Start bind. In the past it was more secure to run BIND +# as a non-root user (for example, with '-u daemon'), but +# the modern version of BIND knows how to use the kernel's +# capability mechanism to drop all root privileges except +# the ability to bind() to a privileged port and set process +# resource limits, so -u should not be needed. If you wish +# to use it anyway, chown the /var/run/named directory to +# the non-root user. +# + +# You might also consider running BIND in a "chroot jail", +# a discussion of which may be found in +# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO. + +# One last note: rndc has a lot of other nice features that +# it is not within the scope of this start/stop/restart script +# to support. For more details, see "man rndc" or just type +# "rndc" to see the options. + + +# Sanity check. If either /usr/sbin/named or /etc/named.conf +# aren't ready, it doesn't make much sense to try to run this +# script: +if [ ! -x /usr/sbin/named ]; then + echo "/etc/rc.d/rc.bind: no /usr/sbin/named found (or not executable); cannot start." + exit 1 +elif [ ! -f /etc/named.conf ]; then + echo "/etc/rc.d/rc.bind: no /etc/named.conf found; cannot start /usr/sbin/named." + exit 1 +fi + +# Start BIND. As many times as you like. ;-) +# Seriously, don't run "rc.bind start" if BIND is already +# running or you'll get more than one copy running. +bind_start() { + if [ -x /usr/sbin/named ]; then + echo "Starting BIND: /usr/sbin/named" + /usr/sbin/named + sleep 1 + fi + if ! ps axc | grep -q named ; then + echo "WARNING: named did not start." + echo "Attempting to start named again: /usr/sbin/named" + /usr/sbin/named + sleep 1 + if ps axc | grep -q named ; then + echo "SUCCESS: named started." + else + echo "FAILED: Sorry, a second attempt to start named has also failed." + echo "There may be a configuration error that needs fixing. Good luck!" + fi + fi +} + +# Stop all running copies of BIND (/usr/sbin/named): +bind_stop() { + echo "Stopping BIND: /usr/sbin/rndc stop" + /usr/sbin/rndc stop + # A problem with using "/usr/sbin/rndc stop" is that if you + # managed to get multiple copies of named running it will + # only stop one of them and then can't stop the others even + # if you run it again. So, after doing things the nice way + # we'll do them the old-fashioned way. If you don't like + # it you can comment it out, but unless you have a lot of + # other programs you run called "named" this is unlikely + # to have any ill effects: + sleep 1 + if ps axc | grep -q named ; then + echo "Using "killall named" on additional BIND processes..." + /bin/killall named 2> /dev/null + fi +} + +# Reload BIND: +bind_reload() { + /usr/sbin/rndc reload +} + +# Restart BIND: +bind_restart() { + bind_stop + bind_start +} + +# Get BIND status: +bind_status() { + /usr/sbin/rndc status +} + +case "$1" in +'start') + bind_start + ;; +'stop') + bind_stop + ;; +'reload') + bind_reload + ;; +'restart') + bind_restart + ;; +'status') + bind_status + ;; +*) + echo "usage $0 start|stop|reload|restart|status" +esac + diff --git a/source/n/bind/slack-desc b/source/n/bind/slack-desc new file mode 100644 index 000000000..9e9b15d11 --- /dev/null +++ b/source/n/bind/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bind: bind (DNS server and utilities) +bind: +bind: The named daemon and support utilities such as dig, host, and +bind: nslookup. Sample configuration files for running a simple caching +bind: nameserver are included. Documentation for advanced name server +bind: setup can be found in /usr/doc/bind-9.x.x/. +bind: +bind: +bind: +bind: +bind: diff --git a/source/n/bluez-firmware/bluez-firmware.SlackBuild b/source/n/bluez-firmware/bluez-firmware.SlackBuild new file mode 100755 index 000000000..2fba9d2cb --- /dev/null +++ b/source/n/bluez-firmware/bluez-firmware.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=bluez-firmware +VERSION=${VERSION:-1.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --libdir=/lib \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-firmware/slack-desc b/source/n/bluez-firmware/slack-desc new file mode 100644 index 000000000..ff96de6b5 --- /dev/null +++ b/source/n/bluez-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-firmware: bluez-firmware (Bluetooth(TM) firmware) +bluez-firmware: +bluez-firmware: The bluez-firmware package contains firmware needed by various +bluez-firmware: chipsets to support Bluetooth(TM) on Linux. +bluez-firmware: +bluez-firmware: For more info, visit: http://www.bluez.org +bluez-firmware: +bluez-firmware: +bluez-firmware: +bluez-firmware: +bluez-firmware: diff --git a/source/n/bluez-hcidump/bluez-hcidump.SlackBuild b/source/n/bluez-hcidump/bluez-hcidump.SlackBuild new file mode 100755 index 000000000..0bef3fb99 --- /dev/null +++ b/source/n/bluez-hcidump/bluez-hcidump.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=bluez-hcidump +VERSION=${VERSION:-1.42} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-hcidump/slack-desc b/source/n/bluez-hcidump/slack-desc new file mode 100644 index 000000000..e4c8205c2 --- /dev/null +++ b/source/n/bluez-hcidump/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-hcidump: bluez-hcidump (Linux Bluetooth(TM) analyzer) +bluez-hcidump: +bluez-hcidump: The bluez-hcidump package contains a network analyzer for +bluez-hcidump: Bluetooth(TM). The hcidump utility reads raw HCI data coming from and +bluez-hcidump: going to a Bluetooth device and prints commands, events and data. +bluez-hcidump: +bluez-hcidump: For more info, visit: http://www.bluez.org +bluez-hcidump: +bluez-hcidump: +bluez-hcidump: +bluez-hcidump: diff --git a/source/n/bluez-libs/bluez-libs.SlackBuild b/source/n/bluez-libs/bluez-libs.SlackBuild new file mode 100755 index 000000000..e25d346d7 --- /dev/null +++ b/source/n/bluez-libs/bluez-libs.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=bluez-libs +VERSION=${VERSION:-3.36} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-libs/slack-desc b/source/n/bluez-libs/slack-desc new file mode 100644 index 000000000..f9a57e285 --- /dev/null +++ b/source/n/bluez-libs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-libs: bluez-libs (Bluetooth(TM) wireless libraries) +bluez-libs: +bluez-libs: The bluez-libs package contains an implementation of the Bluetooth(TM) +bluez-libs: wireless standards specifications for Linux. +bluez-libs: +bluez-libs: For more info, visit: http://www.bluez.org +bluez-libs: +bluez-libs: +bluez-libs: +bluez-libs: +bluez-libs: diff --git a/source/n/bluez-utils/60-bluetooth.rules b/source/n/bluez-utils/60-bluetooth.rules new file mode 100644 index 000000000..0957225fd --- /dev/null +++ b/source/n/bluez-utils/60-bluetooth.rules @@ -0,0 +1,35 @@ +# Brain Boxes BL-620 Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Brain Boxes", SYSFS{prod_id2}=="Bluetooth PC Card", ENV{HCIOPTS}="bboxes", RUN+="bluetooth_serial" + +# Xircom CreditCard Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Xircom", SYSFS{prod_id3}=="CBT", ENV{HCIOPTS}="xircom", RUN+="bluetooth_serial" + +# Xircom RealPort2 Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Xircom", SYSFS{prod_id3}=="CBT", ENV{HCIOPTS}="xircom", RUN+="bluetooth_serial" + +# IBM Bluetooth PC Card II +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="IBM", SYSFS{prod_id2}=="Bluetooth PC Card II", ENV{HCIOPTS}="tdk", RUN+="bluetooth_serial" + +# TDK Bluetooth PC Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="TDK", SYSFS{prod_id2}=="Bluetooth PC Card II", ENV{HCIOPTS}="tdk", RUN+="bluetooth_serial" + +# AmbiCom BT2000C Bluetooth PC/CF Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="AmbiCom BT2000C", SYSFS{prod_id2}=="Bluetooth PC/CF Card", ENV{HCIOPTS}="bt2000c", RUN+="bluetooth_serial" + +# COM One Platinium Bluetooth PC Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="COM1 SA", SYSFS{prod_id2}=="MC310 CARD", ENV{HCIOPTS}="comone", RUN+="bluetooth_serial" + +# Sphinx PICO Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="SPHINX", SYSFS{prod_id2}=="BT-CARD", ENV{HCIOPTS}="picocard", RUN+="bluetooth_serial" + +# H-Soft blue+Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="H-Soft", SYSFS{prod_id2}=="Blue+CARD", ENV{HCIOPTS}="$sysfs{manf_id},$sysfs{card_id}", RUN+="bluetooth_serial" + +# Compaq iPAQ Bluetooth Sleeve, Belkin F8T020, any other muppet who used an OXCF950 and didn't bother to program it appropriately. +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="CF CARD", SYSFS{prod_id2}=="GENERIC", ENV{HCIOPTS}="$sysfs{manf_id},$sysfs{card_id}", RUN+="bluetooth_serial" + +# Zoom Bluetooth Card and Sitecom CN-504 Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="PCMCIA", SYSFS{prod_id2}=="Bluetooth Card", ENV{HCIOPTS}="zoom", RUN+="bluetooth_serial" + +# CC&C BT0100M +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Bluetooth BT0100M", ENV{HCIOPTS}="bcsp 115200", RUN+="bluetooth_serial" diff --git a/source/n/bluez-utils/README.SLACKWARE b/source/n/bluez-utils/README.SLACKWARE new file mode 100644 index 000000000..795c8c5a2 --- /dev/null +++ b/source/n/bluez-utils/README.SLACKWARE @@ -0,0 +1,18 @@ +PIN (or passkey) management +--------------------------- +since bluez 3.0 the old pin_helper script has been replaced by +the dbus interface. To add a default passkey for every outgoing +request (e.g. the old /etc/bluetooth/pin file) drop it into +/etc/bluetooth/passkeys/default. (e.g. echo -n "1234" > +/etc/bluetooth/passkeys/default ) +To add a passkey for a specific outgoing connection replace default +with the device's address. ( /etc/bluetooth/passkeys/aa:bb:cc:dd:ee:ff +will contain passkey for aa:bb:cc:dd:ee:ff ). +After adding a passkey you should restart bluetooth with + +/etc/init.d/bluetooth restart + +and the new passkeys will be registered. + + +(This behaviour has been copied from Debian) diff --git a/source/n/bluez-utils/add-passkey.c b/source/n/bluez-utils/add-passkey.c new file mode 100644 index 000000000..b9dcbb517 --- /dev/null +++ b/source/n/bluez-utils/add-passkey.c @@ -0,0 +1,394 @@ +/* + * add-passkey.c: + * registers as an agent for the bluez bluetooth linux stack, the code is + * shamelessly stolen from bluez source found at http://bluez.sf.net + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2005-2006 Marcel Holtmann <marcel@holtmann.org> + * + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <errno.h> +#include <unistd.h> +#include <stdlib.h> +#include <signal.h> +#include <getopt.h> +#include <string.h> + +#include <dbus/dbus.h> + +#define INTERFACE "org.bluez.Security" + +// FIXME assumption +#define PASSKEYMAXLENGTH 255 + +static char *passkey = NULL; +static char *address = NULL; + +static volatile sig_atomic_t __io_canceled = 0; +static volatile sig_atomic_t __io_terminated = 0; + +static void sig_term(int sig) +{ + __io_canceled = 1; +} + +static DBusHandlerResult agent_filter(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *name, *old, *new; + + if (!dbus_message_is_signal(msg, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_get_args(msg, NULL, + DBUS_TYPE_STRING, &name, DBUS_TYPE_STRING, &old, + DBUS_TYPE_STRING, &new, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for NameOwnerChanged signal"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + if (!strcmp(name, "org.bluez") && *new == '\0') { + __io_terminated = 1; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult request_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + const char *path, *address; + + if (!passkey) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for passkey Request method"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + reply = dbus_message_new_method_return(msg); + if (!reply) { + fprintf(stderr, "Can't create reply message\n"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + dbus_message_append_args(reply, DBUS_TYPE_STRING, &passkey, + DBUS_TYPE_INVALID); + + dbus_connection_send(conn, reply, NULL); + + dbus_connection_flush(conn); + + dbus_message_unref(reply); + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult release_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for passkey Release method"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + reply = dbus_message_new_method_return(msg); + if (!reply) { + fprintf(stderr, "Can't create reply message\n"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + dbus_message_append_args(reply, DBUS_TYPE_INVALID); + + dbus_connection_send(conn, reply, NULL); + + dbus_connection_flush(conn); + + dbus_message_unref(reply); + + if (!__io_canceled) + fprintf(stderr, "Passkey service has been released\n"); + + __io_terminated = 1; + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult agent_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + if (dbus_message_is_method_call(msg, "org.bluez.PasskeyAgent", "Request")) + return request_message(conn, msg, data); + + if (dbus_message_is_method_call(msg, "org.bluez.PasskeyAgent", "Release")) + return release_message(conn, msg, data); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static const DBusObjectPathVTable agent_table = { + .message_function = agent_message, +}; + +static int register_agent(DBusConnection *conn, const char *agent_path, + const char *remote_address, int use_default) +{ + DBusMessage *msg, *reply; + DBusError err; + const char *path, *method, *address = remote_address; + + if (!dbus_connection_register_object_path(conn, agent_path, + &agent_table, NULL)) { + fprintf(stderr, "Can't register path object path for agent\n"); + return -1; + } + + if (use_default) { + path = "/org/bluez"; + method = "RegisterDefaultPasskeyAgent"; + } else { + path = "/org/bluez/hci0"; + method = "RegisterPasskeyAgent"; + } + + msg = dbus_message_new_method_call("org.bluez", path, INTERFACE, method); + if (!msg) { + fprintf(stderr, "Can't allocate new method call\n"); + return -1; + } + + if (use_default) + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_INVALID); + else + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID); + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + dbus_message_unref(msg); + + if (!reply) { + fprintf(stderr, "Can't register passkey agent\n"); + if (dbus_error_is_set(&err)) { + fprintf(stderr, "%s\n", err.message); + dbus_error_free(&err); + } + return -1; + } + + dbus_message_unref(reply); + + dbus_connection_flush(conn); + + return 0; +} + +static int unregister_agent(DBusConnection *conn, const char *agent_path, + const char *remote_address, int use_default) +{ + DBusMessage *msg, *reply; + DBusError err; + const char *path, *method, *address = remote_address; + + if (use_default) { + path = "/org/bluez"; + method = "UnregisterDefaultPasskeyAgent"; + } else { + path = "/org/bluez/hci0"; + method = "UnregisterPasskeyAgent"; + } + + msg = dbus_message_new_method_call("org.bluez", path, INTERFACE, method); + if (!msg) { + fprintf(stderr, "Can't allocate new method call\n"); + dbus_connection_close(conn); + exit(1); + } + + if (use_default) + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_INVALID); + else + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID); + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + dbus_message_unref(msg); + + if (!reply) { + fprintf(stderr, "Can't unregister passkey agent\n"); + if (dbus_error_is_set(&err)) { + fprintf(stderr, "%s\n", err.message); + dbus_error_free(&err); + } + return -1; + } + + dbus_message_unref(reply); + + dbus_connection_flush(conn); + + dbus_connection_unregister_object_path(conn, agent_path); + + return 0; +} + +static void usage(void) +{ +// printf("Bluetooth passkey agent ver %s\n\n", VERSION); + + printf("Usage:\n" + "\tadd-passkey [--passkey-fd n] [--default] [--path agent-path] [address]\n" + "\n" + "add-passkey will read from passkey-fd (default: stdin) adding a default passkey\n" + "if --default is given, or for a specific address if supplied on commandline.\n\n" + "--default or address are mandatory.\n" + "this program is based on bluez passkey-agent.c from http://bluez.sf.net\n" + "\n"); +} + +static struct option main_options[] = { + { "passkey-fd", 1, 0, 'f'}, + { "default", 0, 0, 'd' }, + { "path", 1, 0, 'p' }, + { "help", 0, 0, 'h' }, + { 0, 0, 0, 0 } +}; + +int main(int argc, char *argv[]) +{ + struct sigaction sa; + DBusConnection *conn; + char match_string[128], default_path[128], *agent_path = NULL; + int opt, use_default = 0, passkey_fd = 0; + char *tmppasskey; + + snprintf(default_path, sizeof(default_path), + "/org/bluez/passkey_agent_%d", getpid()); + + while ((opt = getopt_long(argc, argv, "+fdp:h", main_options, NULL)) != EOF) { + switch(opt) { + case 'f': + passkey_fd = atoi(optarg); + case 'd': + use_default = 1; + break; + case 'p': + if (optarg[0] != '/') { + fprintf(stderr, "Invalid path\n"); + exit(1); + } + agent_path = strdup(optarg); + break; + case 'h': + usage(); + exit(0); + default: + exit(1); + } + } + + argc -= optind; + argv += optind; + optind = 0; + + if (argc < 1 && !use_default) { + usage(); + exit(1); + } + + passkey = malloc(PASSKEYMAXLENGTH * sizeof(char)); + + if (!read(passkey_fd, passkey, PASSKEYMAXLENGTH)) { + fprintf(stderr, "Unable to read passkey from fd %d\n", passkey_fd); + exit(1); + } + + if (tmppasskey = index(passkey, '\n')) { + *tmppasskey = '\0'; + } + + address = (argc > 0) ? strdup(argv[0]) : NULL; + + if (!use_default && !address) { + usage(); + exit(1); + } + + if (!agent_path) + agent_path = strdup(default_path); + + conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); + if (!conn) { + fprintf(stderr, "Can't get on system bus"); + exit(1); + } + + if (register_agent(conn, agent_path, address, use_default) < 0) { + dbus_connection_close(conn); + exit(1); + } + + if (!dbus_connection_add_filter(conn, agent_filter, NULL, NULL)) + fprintf(stderr, "Can't add signal filter"); + + snprintf(match_string, sizeof(match_string), + "interface=%s,member=NameOwnerChanged,arg0=%s", + DBUS_INTERFACE_DBUS, "org.bluez"); + + dbus_bus_add_match(conn, match_string, NULL); + + memset(&sa, 0, sizeof(sa)); + sa.sa_flags = SA_NOCLDSTOP; + sa.sa_handler = sig_term; + sigaction(SIGTERM, &sa, NULL); + sigaction(SIGINT, &sa, NULL); + + while (!__io_canceled && !__io_terminated) { + if (dbus_connection_read_write_dispatch(conn, 100) != TRUE) + break; + } + + if (!__io_terminated) + unregister_agent(conn, agent_path, address, use_default); + + if (passkey) + free(passkey); + + dbus_connection_close(conn); + + return 0; +} diff --git a/source/n/bluez-utils/bluetooth.conf b/source/n/bluez-utils/bluetooth.conf new file mode 100644 index 000000000..c0476237a --- /dev/null +++ b/source/n/bluez-utils/bluetooth.conf @@ -0,0 +1,24 @@ +<!-- This configuration file specifies the required security policies + for Bluetooth core daemon to work. --> + +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + + <!-- ../system.conf have denied everything, so we just punch some holes --> + + <policy user="root"> + <allow own="org.bluez"/> + <allow send_destination="org.bluez"/> + <allow send_interface="org.bluez.Agent"/> + </policy> + + <policy at_console="true"> + <allow send_destination="org.bluez"/> + </policy> + + <policy context="default"> + <deny send_destination="org.bluez"/> + </policy> + +</busconfig> diff --git a/source/n/bluez-utils/bluez-utils.SlackBuild b/source/n/bluez-utils/bluez-utils.SlackBuild new file mode 100755 index 000000000..7f8b95746 --- /dev/null +++ b/source/n/bluez-utils/bluez-utils.SlackBuild @@ -0,0 +1,188 @@ +#!/bin/sh +# +# SlackBuild for bluez-utils +# http://www.bluez.org +# By SukkoPera <enjoy.the.silence@iol.it> +# Thanks a lot to CAT for his Slackware package cration +# guide (http://www.slacky.it/misto/tutorial/spunleashed.txt) +# +# Check out +# - http://www.sukkopera.tk +# - http://www.slacky.it +# - http://www.nyft.org +# +# Notes: +# - Many files and the whole PIN management system have been stolen from the +# Debian package. Thanks. +# +# Rewritten for Slackware 2007-05 <pjv> + +NAME=bluez-utils +VERSION=${VERSION:-3.36} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-7} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$NAME + +rm -rf $PKG +mkdir -p $TMP $PKG +mkdir -p $PKG/etc/rc.d \ + $PKG/etc/bluetooth/passkeys \ + $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth +# Is there any reason for a non-root user to be able to see these? +chmod 700 $PKG/etc/bluetooth/passkeys +cd $TMP +rm -rf $NAME-$VERSION +tar xvf $CWD/${NAME}-${VERSION}.tar.bz2 || exit 1 +cd $NAME-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --localstatedir=/var \ + --enable-tools\ + --enable-bccmd \ + --enable-hid2hci \ + --enable-dfutool \ + --enable-hidd \ + --enable-pand \ + --enable-dund \ + --enable-cups \ + --enable-manpages \ + --enable-configfiles \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +mkdir -p $PKG/lib/udev +cp -a scripts/bluetooth_serial $PKG/lib/udev/bluetooth_serial || exit 1 +chmod 755 $PKG/lib/udev/bluetooth_serial + +mkdir -p $PKG/lib/udev/rules.d +cp -a scripts/bluetooth.rules $PKG/lib/udev/rules.d/60-bluetooth.rules || exit 1 +chmod 644 $PKG/lib/udev/rules.d/60-bluetooth.rules + +# This appears to be gone/obsolete: +#if [ ! -e $PKG/etc/bluetooth/transfer.service ]; then +# cat transfer/transfer.service > $PKG/etc/bluetooth/transfer.service +#fi +#if [ ! -e $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer -a -e transfer/bluetoothd-service-transfer ]; then +# cat transfer/bluetoothd-service-transfer > $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer +# chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer +#fi + +# Install Debian's add-passkey program: +DEBDEST=/usr/lib${LIBDIRSUFFIX}/bluetooth +gcc $(pkg-config --libs --cflags dbus-1) -DDBUS_API_SUBJECT_TO_CHANGE \ + $CWD/add-passkey.c -o $PKG/$DEBDEST/add-passkey || exit 1 +cp $CWD/register-passkeys $PKG/$DEBDEST +if [ "$ARCH" = "x86_64" ]; then + sed -i "s,/usr/lib/,/usr/lib${LIBDIRSUFFIX}/,g" $PKG/$DEBDEST/register-passkeys +fi +chmod a+x $PKG/$DEBDEST/* + +# Default PIN (wow, does this seem insecure!) +#echo "1234" > $PKG/etc/bluetooth/passkeys/default +touch $PKG/etc/bluetooth/passkeys/default + +mkdir -p $PKG/usr/doc/$NAME-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING* INSTALL NEWS README $CWD/README.SLACKWARE \ + $PKG/usr/doc/$NAME-$VERSION +( cd $PKG/etc/bluetooth + ln -sf /usr/doc/$NAME-$VERSION/README.SLACKWARE . +) + +# Arrange init scripts and config files: +CONF=/etc/rc.d/rc.bluetooth.conf +mkdir -p $PKG/etc/rc.d +cp $CWD/rc.bluetooth $PKG/etc/rc.d/rc.bluetooth +if [ "$ARCH" = "x86_64" ]; then + sed -i "s,/usr/lib/,/usr/lib${LIBDIRSUFFIX}/,g" $PKG/etc/rc.d/rc.bluetooth +fi +cp -a $CWD/rc.bluetooth.conf $PKG/etc/rc.d/rc.bluetooth.conf +sed -i "s:\(HIDD_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 +sed -i "s:\(HID2HCI_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 + +mkdir -p $PKG/etc/bluetooth +cp -a audio/audio.conf $PKG/etc/bluetooth +cp -a audio/asound.conf $PKG/etc/bluetooth +cp -a input/input.conf $PKG/etc/bluetooth +cp -a hcid/hcid.conf $PKG/etc/bluetooth +cp -a network/network.conf $PKG/etc/bluetooth +cp -a rfcomm/rfcomm.conf $PKG/etc/bluetooth +chmod 644 $PKG/etc/bluetooth/*.conf + +# Do not overwrite configuration +# Well, let the dbus file be overwritten, as it is not usually user-edited. +( cd $PKG + for file in \ + etc/bluetooth/audio.conf \ + etc/asound.conf \ + etc/bluetooth/asound.conf \ + etc/bluetooth/input.conf \ + etc/bluetooth/hcid.conf \ + etc/bluetooth/network.conf \ + etc/bluetooth/rfcomm.conf \ + etc/bluetooth/passkeys/default \ + etc/rc.d/rc.bluetooth \ + etc/rc.d/rc.bluetooth.conf ; do + mv ${file} ${file}.new + done +) + +# Replace the bluetooth.conf file with one from BlueZ4 that works with the newest dbus: +cat $CWD/bluetooth.conf > $PKG/etc/dbus-1/system.d/bluetooth.conf + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-utils/doinst.sh b/source/n/bluez-utils/doinst.sh new file mode 100644 index 000000000..e738d14bd --- /dev/null +++ b/source/n/bluez-utils/doinst.sh @@ -0,0 +1,30 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +if [ ! -e etc/rc.d/rc.bluetooth -o ! -x etc/rc.d/rc.bluetooth ]; then + chmod 644 etc/rc.d/rc.bluetooth.new +else + chmod 755 etc/rc.d/rc.bluetooth.new +fi +config etc/rc.d/rc.bluetooth.new +config etc/rc.d/rc.bluetooth.conf.new +config etc/bluetooth/asound.conf.new +config etc/bluetooth/audio.conf.new +config etc/bluetooth/hcid.conf.new +config etc/bluetooth/input.conf.new +config etc/bluetooth/network.conf.new +config etc/bluetooth/rfcomm.conf.new +config etc/bluetooth/passkeys/default.new + +if [ ! -e etc/asound.conf ]; then + ( cd etc ; ln -sf bluetooth/asound.conf . ) +fi diff --git a/source/n/bluez-utils/rc.bluetooth b/source/n/bluez-utils/rc.bluetooth new file mode 100644 index 000000000..cf891dcf9 --- /dev/null +++ b/source/n/bluez-utils/rc.bluetooth @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Start/stop the Bluetooth daemons +# +# This version has been modified by SukkoPera, taking inspiration from then +# Debian init script, to add support for register-passkeys. Modified by +# Patrick Volkerding to add "restart" support, and cleaned up a tiny bit. + +set -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DESC="Bluetooth subsystem" + +# The register-passkeys script was originally written by Debian: +REGISTER_PASSKEYS=/usr/lib/bluetooth/register-passkeys + +HCID_NAME=hcid +HIDD_NAME=hidd +HID2HCI_NAME=hid2hci +RFCOMM_NAME=rfcomm +PAND_NAME=pand +DUND_NAME=dund + +HCID_EXEC="`which $HCID_NAME || true`" +HIDD_EXEC="`which $HIDD_NAME || true`" +HID2HCI_EXEC="`which $HID2HCI_NAME || true`" +RFCOMM_EXEC="`which $RFCOMM_NAME || true`" +PAND_EXEC="`which $PAND_NAME || true`" +DUND_EXEC="`which $DUND_NAME || true`" + +HCID_CONFIG="/etc/bluetooth/hcid.conf" +RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" + +# Source rc.bluetooth.conf +. /etc/rc.d/rc.bluetooth.conf + +bluetooth_start() { + echo -n "Starting $DESC: " + if [ -x "$HIDD_EXEC" ] ; then + if $HIDD_ENABLE && [ -x "$HIDD_EXEC" -a -n "$HIDD_OPTIONS" ] ; then + $HIDD_EXEC $HIDD_OPTIONS || true + echo -n " $HIDD_NAME" + fi + else + echo "BlueZ does not appear to be installed!" + exit + fi + # Separate sdp daemon is depreciated, now internal function. + if $SDPD_ENABLE ; then + $HCID_EXEC -s -f $HCID_CONFIG + echo -n " $HCID_NAME sdp" + else + $HCID_EXEC -f $HCID_CONFIG + echo -n " $HCID_NAME" + fi + if $HID2HCI_ENABLE && [ -x "$HID2HCI_EXEC" ] ; then + $HID2HCI_EXEC --tohci > /dev/null 2>&1 || true + echo -n " $HID2HCI_NAME" + fi + if $RFCOMM_ENABLE && [ -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ] ; then + $RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true + echo -n " $RFCOMM_NAME" + fi + if $DUND_ENABLE && [ -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ] ; then + $DUND_EXEC $DUND_OPTIONS + echo -n " $DUND_NAME" + fi + if $PAND_ENABLE && [ -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ] ; then + $PAND_EXEC $PAND_OPTIONS + echo -n " $PAND_NAME" + fi + if [ -x $REGISTER_PASSKEYS ]; then + $REGISTER_PASSKEYS + echo -n " passkeys" + fi + echo "." +} + +bluetooth_stop() { + echo -n "Stopping $DESC: " + killall $PAND_NAME > /dev/null 2>&1 || true + echo -n " $PAND_NAME" + killall $DUND_NAME > /dev/null 2>&1 || true + echo -n " $DUND_NAME" + if [ -x "$RFCOMM_EXEC" ] ; then + $RFCOMM_EXEC release all > /dev/null 2>&1 || true + echo -n " $RFCOMM_NAME" + fi + killall $HIDD_NAME > /dev/null 2>&1 || true + echo -n " $HIDD_NAME" + killall $HCID_NAME > /dev/null 2>&1 || true + echo -n " $HCID_NAME" + echo "." +} + +case "$1" in + start) + bluetooth_start + ;; + stop) + bluetooth_stop + ;; + restart) + bluetooth_stop + sleep 1 + bluetooth_start + ;; + *) + echo "Usage: $0 start|stop|restart" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/source/n/bluez-utils/rc.bluetooth.conf b/source/n/bluez-utils/rc.bluetooth.conf new file mode 100644 index 000000000..09df405fb --- /dev/null +++ b/source/n/bluez-utils/rc.bluetooth.conf @@ -0,0 +1,33 @@ +# /etc/rc.d/rc.bluetooth.conf +# +# This file contains the configuration for the Bluetooth subsystem, BlueZ. + +# The lines below allow you to configure which BlueZ daemons will be started, +# along with any daemon-specific options. + +# Allowed values for each (unless otherwise noted) are "true" and "false" + +# ============================================================================= + +# The SDP daemon allows clients to detect supported Bluetooth services +SDPD_ENABLE=true + +# The HID daemon supports Bluetooth Human Interface Devices +HIDD_ENABLE=false +HIDD_OPTIONS="--server" + +# This switches your Bluetooth device into HCI mode, use this if your input +# device does not support Bluetooth HID +HID2HCI_ENABLE=false + +# The RFCOMM daemon is used to simulate serial connections over Bluetooth +RFCOMM_ENABLE=true + +# The DUN daemon is used for Dial Up Networking over Bluetooth +DUND_ENABLE=false +DUND_OPTIONS="--listen --persist --msdun call dun" + +# The PAN daemon is used to setup a Bluetooth network. +PAND_ENABLE=false +PAND_OPTIONS="--listen --role NAP" + diff --git a/source/n/bluez-utils/register-passkeys b/source/n/bluez-utils/register-passkeys new file mode 100644 index 000000000..f57042c3c --- /dev/null +++ b/source/n/bluez-utils/register-passkeys @@ -0,0 +1,19 @@ +#!/bin/bash +# register every passkey found in $PASSKEYS_DIR + +PASSKEYS_DIR="/etc/bluetooth/passkeys/" +PASSKEY_AGENT="/usr/lib/bluetooth/add-passkey" + +cd $PASSKEYS_DIR + +for f in $(ls -1 ${PASSKEYS_DIR}); do + if [ ! -r "$f" ]; then continue; fi + + # default passkey + if [ "$f" == "default" ]; then + cat "$f" | $PASSKEY_AGENT --default > /dev/null 2>&1 & + # specific passkey + elif echo "$f" | egrep -q '([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}'; then + cat "$f" | $PASSKEY_AGENT "$f" > /dev/null 2>&1 & + fi +done diff --git a/source/n/bluez-utils/slack-desc b/source/n/bluez-utils/slack-desc new file mode 100644 index 000000000..159f02466 --- /dev/null +++ b/source/n/bluez-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-utils: bluez-utils (Utilities for working with Bluetooth(TM)) +bluez-utils: +bluez-utils: The bluez-utils package contains utilities for supporting +bluez-utils: Bluetooth(TM) on Linux. +bluez-utils: +bluez-utils: For more info, visit: http://www.bluez.org +bluez-utils: +bluez-utils: +bluez-utils: +bluez-utils: +bluez-utils: diff --git a/source/n/bootp/bootp.SlackBuild b/source/n/bootp/bootp.SlackBuild new file mode 100755 index 000000000..2d12ab061 --- /dev/null +++ b/source/n/bootp/bootp.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-2.4.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bootp + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_bootp.tar.gz + +cd $TMP +rm -rf bootp-$VERSION +tar xvf $CWD/bootp_$VERSION.orig.tar.gz || exit 1 +cd bootp-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/bootp_2.4.3-15.diff.gz | patch -p1 --verbose || exit 1 + +mkdir -p $PKG/usr/doc/bootp-$VERSION +cp -a \ + Announce ConvOldTab.sh Installation Problems README ToDo bootptab.cmu bootptab.mcs \ + $PKG/usr/doc/bootp-$VERSION + +make $NUMJOBS || make || exit 1 + +strip --strip-unneeded bootpd bootpef bootpgw bootptest +for file in bootpd bootpef bootpgw bootptest ; do + cat $file > $PKG/usr/sbin/$file +done + +gzip -9c bootptab.5 > $PKG/usr/man/man5/bootptab.5.gz +for file in bootpd.8 bootpef.8 bootptest.8 ; do + gzip -9c $file > $PKG/usr/man/man8/$file.gz +done +( cd $PKG/usr/man/man8 + ln -sf bootpd.8.gz bootpgw.8.gz +) + +zcat $CWD/bootptab.gz > $PKG/etc/bootptab.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bootp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bootp/bootp_2.4.3-15.diff b/source/n/bootp/bootp_2.4.3-15.diff new file mode 100644 index 000000000..72fc60863 --- /dev/null +++ b/source/n/bootp/bootp_2.4.3-15.diff @@ -0,0 +1,2747 @@ +--- bootp-2.4.3.orig/Announce ++++ bootp-2.4.3/Announce +@@ -6,6 +6,8 @@ + + New features in version 2.4 include: + ++ Added static DHCP allocation capabilities. ++ Use: :dl=leasetime for DHCP leasetime handouts + Added a simple BOOTP gateway program: bootpgw + Allow host name anywhere IP address is expected. + Automatically lookup the IP address when the name of a +@@ -49,12 +51,19 @@ + SunOS 4.X (Solaris 1.X) + SunOS 5.X (Solaris 2.X) + System V/386 Rel. 4.0 ++ Linux 1.1.81 + + Systems on which others say this code works: + CDC EP/IX (1.4.3, 2.1.1) + DEC Ultrix (4.2, 4.3) +- Linux 1.1.81 + OSF/1 (DEC Alpha CPU) ++ HP 9000 ++ ++How to get the latest version: ++ ftp firewall.mc.com (anonymous) ++ cd /pub ++ binary ++ get bootp-2.4.2.tar.Z + + Please direct questions, comments, and bug reports to: + <bootp@andrew.cmu.edu> +--- bootp-2.4.3.orig/Changes ++++ bootp-2.4.3/Changes +@@ -14,12 +14,33 @@ + bad IP address caused "network unreachable" errors. + [Thanks to andrew@ntplx.net (Andrew Lindh) for the fix!] + ++--> bootpd-2.4.3 ++ ++11/19/95 joey@infodrom.north.de (Martin Schulze) ++ Fixed a problem that DHCP lease time is send in every request ++ independend of the existence of a dl tag. ++ Corrected some NEED()-calls with wrong arguments (only some text) ++ Added support for -v (version) in bootpd and bootpgw. ++ ++08/07/95 middelin@polyware.iaf.nl (Pauline Middelink) ++ Fixed problem while reporting duplicate hardware address in ++ readfile.c (kerry@maine.maine.edu) ++ Changed some code to allow the giaddr to pass through. Needed ++ when the client request is forwarded to us through a gateway. ++ (Broadcasting to the gateway will not reach the client) ++ ++01/26/95 Phil.Packer@bbc.co.uk (Phil.Packer) ++ Added dl tag for DHCP lease and rejigged Pauline's codes ++ at the end of bootpd.c to allow the setting of explicit leases. ++ Added "sco" Makefile target. ++ + --> bootp-2.4.2 + + 01/14/95 middelin@polyware.iaf.nl (Pauline Middelink) + Corrected support for the Linux networking code. + Fixed lots of warnings (gcc -Wall) + Added "linux" Makefile target. ++ Written code for DHCP static IP allocation. + + 01/02/95 Jukka Ukkonen <ukkonen@csc.fi> + Allow bootptab syntax: ha="0:0:c0:80:e8:a7" +--- bootp-2.4.3.orig/Makefile ++++ bootp-2.4.3/Makefile +@@ -9,10 +9,10 @@ + # OPTion DEFinitions: + # Remove the -DVEND_CMU if you don't wish to support the "CMU vendor format" + # in addition to the RFC1048 format. Leaving out DEBUG saves little. +-OPTDEFS= -DSYSLOG -DVEND_CMU -DDEBUG ++OPTDEFS= -DSYSLOG -DVEND_CMU -DDHCP -DDEBUG -g -O2 -Wall + + # Uncomment and edit this to choose the facility code used for syslog. +-# LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2" ++LOG_FACILITY= "-DLOG_BOOTP=LOG_DAEMON" + + # SYStem DEFinitions: + # Either uncomment some of the following, or do: +@@ -27,31 +27,35 @@ + # FILE DEFinitions: + # The next few lines may be uncommented and changed to alter the default + # filenames bootpd uses for its configuration and dump files. +-#CONFFILE= -DCONFIG_FILE=\"/usr/etc/bootptab\" +-#DUMPFILE= -DDUMPTAB_FILE=\"/usr/etc/bootpd.dump\" +-#FILEDEFS= $(CONFFILE) $(DUMPFILE) ++CONFFILE= -DCONFIG_FILE=\"/etc/bootptab\" ++DUMPFILE= -DDUMPTAB_FILE=\"/var/run/bootpd.dump\" ++FILEDEFS= $(CONFFILE) $(DUMPFILE) ++ ++GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h) + + # MORE DEFinitions (whatever you might want to add) + # One might define NDEBUG (to remove "assert()" checks). +-MOREDEFS= +- +-INSTALL=/usr/bin/install +-DESTDIR= +-BINDIR=/usr/etc +-MANDIR=/usr/local/man ++ifeq ($(GLIBC),0) ++MOREDEFS=-include /usr/include/linux/netdevice.h ++endif ++ ++INSTALL=install ++DESTDIR=${BASEDIR} ++BINDIR=/usr/sbin ++MANDIR=/usr/share/man + + CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS) + PROGS= bootpd bootpef bootpgw bootptest + TESTS= trylook trygetif trygetea + +-all: $(PROGS) $(TESTS) ++all: $(PROGS) # $(TESTS) + + system: install + + install: $(PROGS) + -for f in $(PROGS) ;\ + do \ +- $(INSTALL) -c -s $$f $(DESTDIR)$(BINDIR) ;\ ++ $(INSTALL) -c -o root -g root -m 0755 $$f $(DESTDIR)$(BINDIR) ;\ + done + + MAN5= bootptab.5 +@@ -59,12 +63,13 @@ + install.man: $(MAN5) $(MAN8) + -for f in $(MAN5) ;\ + do \ +- $(INSTALL) -c -m 644 $$f $(DESTDIR)$(MANDIR)/man5 ;\ ++ $(INSTALL) -c -o root -g root -m 0644 $$f $(DESTDIR)$(MANDIR)/man5 ;\ + done + -for f in $(MAN8) ;\ + do \ +- $(INSTALL) -c -m 644 $$f $(DESTDIR)$(MANDIR)/man8 ;\ ++ $(INSTALL) -c -o root -g root -m 0644 $$f $(DESTDIR)$(MANDIR)/man8 ;\ + done ++ (cd $(DESTDIR)$(MANDIR)/man8 && ln -s bootpd.8 bootpgw.8) + + clean: + -rm -f core *.o +@@ -99,10 +104,6 @@ + irix: + $(MAKE) SYSDEFS= SYSLIBS= + +-# Linux 1.1.80+ on [34]86 +-linux: +- $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer" +- + # SunOS 4.X + sunos4: + $(MAKE) SYSDEFS="-DSUNOS -DETC_ETHERS" \ +--- bootp-2.4.3.orig/README ++++ bootp-2.4.3/README +@@ -60,7 +60,7 @@ + Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon + reboot. The following is a sample /etc/inetd.conf entry: + # BOOTP server +- bootps dgram udp wait root /usr/etc/bootpd bootpd -i ++ bootps dgram udp wait root /usr/sbin/bootpd bootpd -i + + Care and feeding: + If you change the interface cards on your host or add new hosts you will +--- bootp-2.4.3.orig/ToDo ++++ bootp-2.4.3/ToDo +@@ -49,13 +49,3 @@ + #endif + + ---------------------------------------------------------------------- +-DHCP Support: +- +-There is a set of patches from Jeanette Pauline Middelink +-<middelin@calvin.polyware.iaf.nl> to add DHCP support. +- +-Those patches will be integrated into the BOOTP release stream +-very soon, but if you can't wait, you can get them from: +-nimbus.anu.edu.au:/pub/tridge/samba/contributed/DHCP.patch +- +----------------------------------------------------------------------- +--- bootp-2.4.3.orig/bootp.h ++++ bootp-2.4.3/bootp.h +@@ -31,25 +31,25 @@ + * + */ + +-#include "bptypes.h" /* for int32, u_int32 */ ++#include <sys/types.h> + + #define BP_CHADDR_LEN 16 + #define BP_SNAME_LEN 64 + #define BP_FILE_LEN 128 + #define BP_VEND_LEN 64 +-#define BP_MINPKTSZ 300 /* to check sizeof(struct bootp) */ ++#define BP_MINPKTSZ sizeof(struct bootp) + + struct bootp { + unsigned char bp_op; /* packet opcode type */ + unsigned char bp_htype; /* hardware addr type */ + unsigned char bp_hlen; /* hardware addr length */ + unsigned char bp_hops; /* gateway hops */ +- unsigned int32 bp_xid; /* transaction ID */ ++ u_int32_t bp_xid; /* transaction ID */ + unsigned short bp_secs; /* seconds since boot began */ + unsigned short bp_flags; /* RFC1532 broadcast, etc. */ + struct in_addr bp_ciaddr; /* client IP address */ + struct in_addr bp_yiaddr; /* 'your' IP address */ +- struct in_addr bp_siaddr; /* server IP address */ ++ struct in_addr bp_siaddr; /* (tftp) server IP address */ + struct in_addr bp_giaddr; /* gateway IP address */ + unsigned char bp_chaddr[BP_CHADDR_LEN]; /* client hardware address */ + char bp_sname[BP_SNAME_LEN]; /* server host name */ +@@ -121,9 +121,17 @@ + #define TAG_NIS_DOMAIN ((unsigned char) 40) + #define TAG_NIS_SERVER ((unsigned char) 41) + #define TAG_NTP_SERVER ((unsigned char) 42) ++#ifdef DHCP + /* DHCP maximum message size. */ ++#define TAG_DHCP_IPLEASE ((unsigned char) 51) ++#define TAG_DHCP_MSG ((unsigned char) 53) ++#define TAG_DHCP_SERVERID ((unsigned char) 54) ++#endif + #define TAG_MAX_MSGSZ ((unsigned char) 57) +- ++#ifdef DHCP ++#define TAG_DHCP_IPRENEW ((unsigned char) 58) /* PeP hic facet */ ++#define TAG_DHCP_IPREBIND ((unsigned char) 59) ++#endif + /* XXX - Add new tags here */ + + +@@ -133,13 +141,13 @@ + + struct cmu_vend { + char v_magic[4]; /* magic number */ +- unsigned int32 v_flags; /* flags/opcodes, etc. */ ++ u_int32_t v_flags; /* flags/opcodes, etc. */ + struct in_addr v_smask; /* Subnet mask */ + struct in_addr v_dgate; /* Default gateway */ + struct in_addr v_dns1, v_dns2; /* Domain name servers */ + struct in_addr v_ins1, v_ins2; /* IEN-116 name servers */ + struct in_addr v_ts1, v_ts2; /* Time servers */ +- int32 v_unused[6]; /* currently unused */ ++ int32_t v_unused[6]; /* currently unused */ + }; + + +--- bootp-2.4.3.orig/bootpd.8 ++++ bootp-2.4.3/bootpd.8 +@@ -2,20 +2,23 @@ + .\" + .\" $Header: $ + .\" +-.TH BOOTPD 8 "November 06, 1993" "Carnegie Mellon University" ++.\" Mon Nov 12 19:23:27 1995 Martin Schulze <joey@finlandia.infodrom.north.de> ++.\" minor changes, dumpfile is in /tmp, made it linux man(7) conform ++.TH BOOTPD 8 "12 November 1995" "Version 2.4.3" "Carnegie Mellon University" + .SH NAME + bootpd, bootpgw \- Internet Boot Protocol server/gateway + .SH SYNOPSIS + .B bootpd ++.RB [ " \-v " ] + [ + .B \-i + .B \-s + .B \-t +-timeout ++.I timeout + .B \-d +-level ++.I level + .B \-c +-chdir\-path ++.I chdir\-path + ] + [ + .I bootptab +@@ -24,72 +27,74 @@ + ] ] + .br + .B bootpgw ++.RB [ " \-v " ] + [ + .B \-i + .B \-s + .B \-t +-timeout ++.I timeout + .B \-d +-level +-] server ++.IR level " ] " server + .SH DESCRIPTION +-.I Bootpd ++.B Bootpd + implements an Internet Bootstrap Protocol (BOOTP) server as defined in +-RFC951, RFC1532, and RFC1533. +-.I Bootpgw ++RFC951, RFC1532, and RFC1533. This server also provides some extension ++to support the static part of Dynamic Host Configuration Protocol (DHCP) ++as specified in RFC1533. DHCP is used by Windows NT and 95. ++.B Bootpgw + implements a simple BOOTP gateway which can be used to forward + requests and responses between clients on one subnet and a + BOOTP server (i.e. +-.IR bootpd ) ++.BR bootpd ) + on another subnet. While either +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + will forward BOOTREPLY packets, only +-.I bootpgw ++.B bootpgw + will forward BOOTREQUEST packets. + .PP + One host on each network segment is normally configured to run either +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + from +-.I inetd ++.B inetd + by including one of the following lines in the file + .IR /etc/inetd.conf : + .IP +-bootps dgram udp wait root /etc/bootpd bootpd bootptab ++bootps dgram udp wait root /usr/sbin/bootpd bootpd bootptab + .br +-bootps dgram udp wait root /etc/bootpgw bootpgw server ++bootps dgram udp wait root /usr/sbin/bootpgw bootpgw server + .PP + This mode of operation is referred to as "inetd mode" and causes +-.I bootpd ++.B bootpd + (or +-.IR bootpgw ) ++.BR bootpgw ) + to be started only when a boot request arrives. If it does not + receive another packet within fifteen minutes of the last one + it received, it will exit to conserve system resources. The + .B \-t +-option controls this timeout (see OPTIONS). ++option controls this timeout (see OPTIONS below). + .PP + It is also possible to run +-.I bootpd ++.B bootpd + (or +-.IR bootpgw ) ++.BR bootpgw ) + in "standalone mode" (without +-.IR inetd ) ++.BR inetd ) + by simply invoking it from a shell like any other regular command. + Standalone mode is particularly useful when +-.I bootpd ++.B bootpd + is used with a large configuration database, where the start up + delay might otherwise prevent timely response to client requests. + (Automatic start up in standalone mode can be done by invoking +-.I bootpd ++.B bootpd + from within + .IR /etc/rc.local , + for example.) + Standalone mode is less useful for +-.I bootgw ++.B bootgw + which + has very little start up delay because + it does not read a configuration file. +@@ -108,9 +113,9 @@ + Specifies the + .I timeout + value (in minutes) that a +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + process will wait for a BOOTP packet before exiting. + If no packets are recieved for + .I timeout +@@ -124,69 +129,76 @@ + variable that controls the amount of debugging messages generated. + For example, -d4 or -d 4 will set the debugging level to 4. + For compatibility with older versions of +-.IR bootpd , ++.BR bootpd , + omitting the numeric parameter (i.e. just -d) will + simply increment the debug level by one. + .TP + .BI \-c \ chdir\-path + Sets the current directory used by +-.I bootpd ++.B bootpd + while checking the existence and size of client boot files. This is + useful when client boot files are specified as relative pathnames, and +-.I bootpd ++.B bootpd + needs to use the same current directory as the TFTP server +-(typically /tftpboot). This option is not recoginzed by +-.IR bootpgw . ++(typically ++.IR /tftpboot ). ++This option is not recoginzed by ++.BR bootpgw . + .TP + .B \-i + Force inetd mode. This option is obsolete, but remains for + compatibility with older versions of +-.IR bootpd . ++.BR bootpd . + .TP + .B \-s + Force standalone mode. This option is obsolete, but remains for + compatibility with older versions of +-.IR bootpd . ++.BR bootpd . ++.TP ++.B \-v ++Print version and exit. + .TP + .I bootptab + Specifies the name of the configuration file from which + .I bootpd + loads its database of known clients and client options +-.RI ( bootpd +-only). ++.RB ( bootpd ++only). Default is ++.IR /etc/bootptab . + .TP + .I dumpfile + Specifies the name of the file that +-.I bootpd ++.B bootpd + will dump its internal database into when it receives a +-SIGUSR1 signal +-.RI ( bootpd ++.B SIGUSR1 ++signal ++.RB ( bootpd + only). This option is only recognized if +-.I bootpd ++.B bootpd + was compiled with the -DDEBUG flag. + .TP + .I server + Specifies the name of a BOOTP server to which +-.I bootpgw ++.B bootpgw + will forward all BOOTREQUEST packets it receives +-.RI ( bootpgw ++.RB ( bootpgw + only). + .SH OPERATION + .PP + Both +-.I bootpd ++.B bootpd + and +-.I bootpgw ++.B bootpgw + operate similarly in that both listen for any packets sent to the +-.I bootps ++.B bootps + port, and both simply forward any BOOTREPLY packets. + They differ in their handling of BOOTREQUEST packets. + .PP + When +-.I bootpgw ++.B bootpgw + is started, it determines the address of a BOOTP server + whose name is provided as a command line parameter. When +-.I bootpgw ++.B bootpgw + receives a BOOTREQUEST packet, it sets the "gateway address" + and "hop count" fields in the packet and forwards the packet + to the BOOTP server at the address determined earlier. +@@ -194,41 +206,43 @@ + the client has been waiting for at least three seconds. + .PP + When +-.I bootpd ++.B bootpd + is started it reads a configuration file, (normally + .IR /etc/bootptab ) + that initializes the internal database of known clients and client + options. This internal database is reloaded + from the configuration file when +-.I bootpd ++.B bootpd + receives a hangup signal (SIGHUP) or when it discovers that the +-configuration file has changed. ++configuration file has changed. Note that any changes to the configuration ++file should be atomic to avoid race conditions. + .PP + When +-.I bootpd ++.B bootpd + receives a BOOTREQUEST packet, it + .\" checks the modification time of the + .\" configuration file and reloads the database if necessary. Then it + looks for a database entry matching the client request. + If the client is known, +-.I bootpd ++.B bootpd + composes a BOOTREPLY packet using the database entry found above, + and sends the reply to the client (possibly using a gateway). + If the client is unknown, the request is discarded + (with a notice if debug > 0). + .PP + If +-.I bootpd +-is compiled with the -DDEBUG option, receipt of a SIGUSR1 signal causes +-it to dump its internal database to the file +-.I /etc/bootpd.dump ++.B bootpd ++is compiled with the -DDEBUG option, receipt of a ++.B SIGUSR1 ++signal causes it to dump its internal database to the file ++.I /tmp/bootpd.dump + or the dumpfile specified as a command line parameter. + .PP + During initialization, both programs + determine the UDP port numbers to be used by calling +-.I getservbyname ++.BR getservbyname (3) + (which nomally uses +-.IR /etc/services). ++.IR /etc/services ). + Two service names (and port numbers) are used: + .IP + bootps \- BOOTP Server listening port +@@ -240,21 +254,21 @@ + .I getservbyname + then the values default to boopts=67 and bootpc=68. + .SH FILES +-.TP 20 +-/etc/bootptab ++.TP ++.I /etc/bootptab + Database file read by +-.IR bootpd . ++.BR bootpd . + .TP +-/etc/bootpd.dump ++.I /tmp/bootpd.dump + Debugging dump file created by +-.IR bootpd . ++.BR bootpd . + .TP +-/etc/services ++.I /etc/services + Internet service numbers. + .TP +-/tftpboot ++.I /tftpboot + Current directory typically used by the TFTP server and +-.IR bootpd . ++.BR bootpd . + + .SH BUGS + Individual host entries must not exceed 1024 characters. +@@ -268,7 +282,7 @@ + Bill Croft at Stanford University in January 1986. + .PP + The current version of +-.I bootpd ++.B bootpd + is primarily the work of David Kovar, + Drew D. Perkins, and Walter L. Wimer, + at Carnegie Mellon University. +@@ -286,12 +300,20 @@ + .br + Jim McKim <mckim@lerc.nasa.gov> + .br ++Pauline Middelink <middelin@calvin.polyware.iaf.nl> ++.br ++Martin Schulze <joey@infodrom.north.de> ++.br + Gordon W. Ross <gwr@mc.com> + .br + Jason Zions <jazz@hal.com> + .SH "SEE ALSO" + .LP +-bootptab(5), inetd(8), tftpd(8) ++.BR bootptab (5), ++.BR services (5), ++.BR inetd (8), ++.BR inetd.conf (5), ++.BR tftpd (8). + .LP + DARPA Internet Request For Comments: + .TP 10 +--- bootp-2.4.3.orig/bootpd.c ++++ bootp-2.4.3/bootpd.c +@@ -46,6 +46,7 @@ + #include <sys/time.h> + #include <sys/stat.h> + #include <sys/utsname.h> ++#include <sys/select.h> + + #include <net/if.h> + #include <netinet/in.h> +@@ -76,6 +77,23 @@ + # define bzero(p,l) memset(p,0,l) + # define bcmp(a,b,c) memcmp(a,b,c) + #endif ++#ifdef __linux__ ++/* Use sigaction to make signal last... */ ++inline void (*signal(int sig,void (*handler)(int)))(int) { ++#if !defined(__GLIBC__) ++ struct sigaction so,sa = {NULL,0,SA_NOMASK|SA_RESTART,NULL}; ++#else /* __GLIBC__ */ ++ struct sigaction so,sa; ++ so.sa_handler = NULL; ++ so.sa_flags = sa.sa_flags = SA_NOMASK|SA_RESTART; ++ sigemptyset(&so.sa_mask); ++ sigemptyset(&sa.sa_mask); ++#endif /* __GLIBC__ */ ++ sa.sa_handler = handler; ++ if (sigaction(sig,&sa,&so)<0) return NULL; ++ return so.sa_handler; ++} ++#endif + + #include "bootp.h" + #include "hash.h" +@@ -92,7 +110,7 @@ + #define CONFIG_FILE "/etc/bootptab" + #endif + #ifndef DUMPTAB_FILE +-#define DUMPTAB_FILE "/tmp/bootpd.dump" ++#define DUMPTAB_FILE "/var/run/bootpd.dump" + #endif + + +@@ -110,16 +128,26 @@ + extern void dumptab P((char *)); + + PRIVATE void catcher P((int)); +-PRIVATE int chk_access P((char *, int32 *)); ++PRIVATE int chk_access P((char *, int32_t *)); + #ifdef VEND_CMU + PRIVATE void dovend_cmu P((struct bootp *, struct host *)); + #endif +-PRIVATE void dovend_rfc1048 P((struct bootp *, struct host *, int32)); ++PRIVATE int dovend_rfc1048 P((struct bootp *, struct host *, int32_t)); + PRIVATE void handle_reply P((void)); + PRIVATE void handle_request P((void)); +-PRIVATE void sendreply P((int forward, int32 dest_override)); ++PRIVATE void sendreply P((int forward, int32_t dest_override)); + PRIVATE void usage P((void)); + ++#ifdef DHCP ++PRIVATE int dhcp_discover P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_request P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_decline P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_release P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_offer P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_ack P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_lease P((struct bootp *, struct host *, byte **)); ++#endif ++ + #undef P + + /* +@@ -159,7 +187,6 @@ + char *chdir_path; + struct in_addr my_ip_addr; + +-struct utsname my_uname; + char *hostname; + + /* Flags set by signal catcher. */ +@@ -180,7 +207,7 @@ + * main server loop is started. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -189,9 +216,16 @@ + struct bootp *bp; + struct servent *servp; + struct hostent *hep; ++ struct utsname my_uname; + char *stmp; ++#if !defined(__GLIBC__) + int n, ba_len, ra_len; +- int nfound, readfds; ++#else /* __GLIBC__ */ ++ int n; ++ socklen_t ra_len, ba_len; ++#endif /* __GLIBC__ */ ++ int nfound; ++ fd_set readfds; + int standalone; + #ifdef SA_NOCLDSTOP /* Have POSIX sigaction(2). */ + struct sigaction sa; +@@ -343,7 +377,7 @@ + "%s: invalid timeout specification\n", progname); + break; + } +- actualtimeout.tv_sec = (int32) (60 * n); ++ actualtimeout.tv_sec = (int32_t) (60 * n); + /* + * If the actual timeout is zero, pass a NULL pointer + * to select so it blocks indefinitely, otherwise, +@@ -352,6 +386,14 @@ + timeout = (n > 0) ? &actualtimeout : NULL; + break; + ++ case 'v': ++#ifdef DHCP ++ printf("bootpd+dhcp %s.%d\n", VERSION, PATCHLEVEL); ++#else ++ printf("bootpd %s.%d\n", VERSION, PATCHLEVEL); ++#endif ++ exit (0); ++ + default: + fprintf(stderr, "%s: unknown switch: -%c\n", + progname, argv[0][1]); +@@ -380,6 +422,11 @@ + exit(1); + } + bcopy(hep->h_addr, (char *)&my_ip_addr, sizeof(my_ip_addr)); ++ hostname = strdup(hep->h_name); ++ if (!hostname) { ++ report(LOG_ERR, "strdup failed"); ++ exit(1); ++ } + + if (standalone) { + /* +@@ -477,6 +524,17 @@ + bootpc_port = (u_short) IPPORT_BOOTPC; + } + ++#ifdef DHCP ++ /* ++ * Maybe we have to broadcast, so enable it. ++ */ ++ n = 1; ++ if (setsockopt(s,SOL_SOCKET,SO_BROADCAST,&n,sizeof(n))<0) { ++ report(LOG_ERR, "setsockopt: %s\n", get_errmsg()); ++ exit(1); ++ } ++#endif ++ + /* + * Set up signals to read or dump the table. + */ +@@ -510,11 +568,12 @@ + for (;;) { + struct timeval tv; + +- readfds = 1 << s; ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); + if (timeout) + tv = *timeout; + +- nfound = select(s + 1, (fd_set *)&readfds, NULL, NULL, ++ nfound = select(s + 1, &readfds, NULL, NULL, + (timeout) ? &tv : NULL); + if (nfound < 0) { + if (errno != EINTR) { +@@ -534,7 +593,7 @@ + } + continue; + } +- if (!(readfds & (1 << s))) { ++ if (!FD_ISSET(s, &readfds)) { + if (debug > 1) + report(LOG_INFO, "exiting after %ld minutes of inactivity", + actualtimeout.tv_sec / 60); +@@ -569,6 +628,8 @@ + break; + } + } ++ ++ return 0; + } + + +@@ -625,13 +686,15 @@ + struct bootp *bp = (struct bootp *) pktbuf; + struct host *hp = NULL; + struct host dummyhost; +- int32 bootsize = 0; ++ struct hostent *hep; ++ int32_t bootsize = 0; + unsigned hlen, hashcode; +- int32 dest; ++ int32_t dest; + char realpath[1024]; + char *clntpath; + char *homedir, *bootfile; + int n; ++ int lpos; + + /* XXX - SLIP init: Set bp_ciaddr = recv_addr here? */ + +@@ -641,7 +704,8 @@ + * If the server name field is null, throw in our name. + */ + if (strlen(bp->bp_sname)) { +- if (strcmp(bp->bp_sname, hostname)) { ++ hep = gethostbyname(bp->bp_sname); ++ if (!hep || strcmp(hep->h_name, hostname)) { + if (debug) + report(LOG_INFO, "\ + ignoring request for server %s from client at %s address %s", +@@ -654,6 +718,16 @@ + strcpy(bp->bp_sname, hostname); + } + ++ /* cevans - security as reported on Bugtraq! */ ++ if (bp->bp_htype >= hwinfocnt) { ++ if (debug) ++ report(LOG_INFO, ++ "Request with unknown network type %u", ++ bp->bp_htype); ++ return; ++ } ++ ++ + /* Convert the request into a reply. */ + bp->bp_op = BOOTREPLY; + if (bp->bp_ciaddr.s_addr == 0) { +@@ -668,7 +742,7 @@ + } + hlen = haddrlength(bp->bp_htype); + if (hlen != bp->bp_hlen) { +- report(LOG_NOTICE, "bad addr len from from %s address %s", ++ report(LOG_NOTICE, "bad addr len from %s address %s", + netname(bp->bp_htype), + haddrtoa(bp->bp_chaddr, hlen)); + } +@@ -701,7 +775,6 @@ + haddrtoa(bp->bp_chaddr, bp->bp_hlen)); + return; /* not found */ + } +- (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr; + + } else { + +@@ -724,6 +797,7 @@ + return; + } + } ++ (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr; + + if (debug) { + report(LOG_INFO, "found %s (%s)", inet_ntoa(hp->iaddr), +@@ -735,7 +809,7 @@ + * with a timestamp lower than the threshold. + */ + if (hp->flags.min_wait) { +- u_int32 t = (u_int32) ntohs(bp->bp_secs); ++ u_int32_t t = (u_int32_t) ntohs(bp->bp_secs); + if (t < hp->min_wait) { + if (debug > 1) + report(LOG_INFO, +@@ -759,11 +833,9 @@ + /* Run a program, passing the client name as a parameter. */ + if (hp->flags.exec_file) { + char tst[100]; +- /* XXX - Check string lengths? -gwr */ +- strcpy (tst, hp->exec_file->string); +- strcat (tst, " "); +- strcat (tst, hp->hostname->string); +- strcat (tst, " &"); ++ snprintf(tst, sizeof(tst), "%s %s &", ++ hp->exec_file->string, ++ hp->hostname->string); + if (debug) + report(LOG_INFO, "executing %s", tst); + system(tst); /* Hope this finishes soon... */ +@@ -829,13 +901,20 @@ + * The "real" path is as seen by the BOOTP daemon on this + * machine, while the client path is relative to the TFTP + * daemon chroot directory (i.e. /tftpboot). ++ * ++ * The bootfile might not be properly zero terminated. We ++ * need to play safe - AC + */ + if (hp->flags.tftpdir) { ++ lpos=strlen(hp->tftpdir->string); ++ if(lpos>=sizeof(realpath)-1) ++ return; + strcpy(realpath, hp->tftpdir->string); +- clntpath = &realpath[strlen(realpath)]; ++ clntpath = &realpath[lpos]; + } else { + realpath[0] = '\0'; + clntpath = realpath; ++ lpos=0; + } + + /* +@@ -876,12 +955,18 @@ + if (homedir) { + if (homedir[0] != '/') + strcat(clntpath, "/"); ++ lpos+=strlen(homedir); ++ if(lpos>=sizeof(realpath)) ++ return; + strcat(clntpath, homedir); + homedir = NULL; + } + if (bootfile) { + if (bootfile[0] != '/') + strcat(clntpath, "/"); ++ lpos+=strlen(bootfile); ++ if(lpos>=sizeof(realpath)) ++ return; + strcat(clntpath, bootfile); + bootfile = NULL; + } +@@ -890,8 +975,15 @@ + * First try to find the file with a ".host" suffix + */ + n = strlen(clntpath); +- strcat(clntpath, "."); +- strcat(clntpath, hp->hostname->string); ++ ++ /* ++ * Don't test if it wont fit. ++ */ ++ if(n+1+strlen(hp->hostname->string)<sizeof(realpath)) ++ { ++ strcat(clntpath, "."); ++ strcat(clntpath, hp->hostname->string); ++ } + if (chk_access(realpath, &bootsize) < 0) { + clntpath[n] = 0; /* Try it without the suffix */ + if (chk_access(realpath, &bootsize) < 0) { +@@ -961,7 +1053,8 @@ + */ + if (!bcmp(bp->bp_vend, vm_rfc1048, 4)) { + /* RFC1048 conformant bootp client */ +- dovend_rfc1048(bp, hp, bootsize); ++ if (!dovend_rfc1048(bp, hp, bootsize)) ++ return; + if (debug > 1) { + report(LOG_INFO, "sending reply (with RFC1048 options)"); + } +@@ -1009,7 +1102,7 @@ + PRIVATE void + sendreply(forward, dst_override) + int forward; +- int32 dst_override; ++ int32_t dst_override; + { + struct bootp *bp = (struct bootp *) pktbuf; + struct in_addr dst; +@@ -1018,12 +1111,6 @@ + int len, haf; + + /* +- * XXX - Should honor bp_flags "broadcast" bit here. +- * Temporary workaround: use the :ra=ADDR: option to +- * set the reply address to the broadcast address. +- */ +- +- /* + * If the destination address was specified explicitly + * (i.e. the broadcast address for HP compatiblity) + * then send the response to that address. Otherwise, +@@ -1048,6 +1135,23 @@ + report(LOG_INFO, "sending reply to gateway %s", + inet_ntoa(dst)); + } ++ } else if (ntohs(bp->bp_flags) & 0x8000) { ++ struct ifreq *ifr; ++ ifr = getif(s, &bp->bp_yiaddr); ++ if (ifr) { ++ struct sockaddr_in *bip; ++ struct ifreq myreq; ++ strcpy( myreq.ifr_name, ifr->ifr_name ); ++ if (ioctl(s, SIOCGIFBRDADDR, &myreq) < 0) { ++ report(LOG_ERR, "ioctl SIOCGIFBRDADDR"); ++ dst.s_addr = INADDR_BROADCAST; ++ } else { ++ bip = (struct sockaddr_in *)&myreq.ifr_broadaddr; ++ dst = bip->sin_addr; ++ } ++ } else { ++ dst.s_addr = INADDR_BROADCAST; ++ } + } else { + dst = bp->bp_yiaddr; + ha = bp->bp_chaddr; +@@ -1125,12 +1229,12 @@ + PRIVATE int + chk_access(path, filesize) + char *path; +- int32 *filesize; ++ int32_t *filesize; + { + struct stat st; + + if ((stat(path, &st) == 0) && (st.st_mode & (S_IREAD >> 6))) { +- *filesize = (int32) st.st_size; ++ *filesize = (int32_t) st.st_size; + return 0; + } else { + return -1; +@@ -1220,16 +1324,20 @@ + if (bytesleft < (LEN)) { \ + report(LOG_NOTICE, noroom, \ + hp->hostname->string, MSG); \ +- return; \ ++ return 0; \ + } while (0) +-PRIVATE void ++PRIVATE int + dovend_rfc1048(bp, hp, bootsize) + struct bootp *bp; + struct host *hp; +- int32 bootsize; ++ int32_t bootsize; + { + int bytesleft, len; + byte *vp; ++#ifdef DHCP ++ int dhcp = 0; ++ int isme = TRUE; /* DHCP uses this for not-mine-requests */ ++#endif + + static char noroom[] = "%s: No room for \"%s\" option"; + +@@ -1280,7 +1388,25 @@ + case TAG_SUBNET_MASK: + /* XXX - Should preserve this if given... */ + break; +- } /* swtich */ ++#ifdef DHCP ++ case TAG_DHCP_MSG: ++ dhcp = *p; ++ break; ++ case TAG_DHCP_SERVERID: ++ { ++ struct in_addr tmp_addr; ++ isme = (len == 4) && ( ++ memcpy( ++ &tmp_addr, p, ++ sizeof(tmp_addr) ++ ), ++ my_ip_addr.s_addr == ++ tmp_addr.s_addr ++ ); ++ } ++ break; ++#endif ++ } /* switch */ + p += len; + } + +@@ -1347,16 +1473,44 @@ + vp += len; + *vp++ = TAG_END; + bytesleft -= len + 3; +- return; /* no more options here. */ ++ return 1; /* no more options here. */ + } ++ ++#ifdef DHCP + /* +- * The remaining options are inserted by the following +- * function (which is shared with bootpef.c). +- * Keep back one byte for the TAG_END. ++ * Check if this is a DHCP request. + */ +- len = dovend_rfc1497(hp, vp, bytesleft - 1); +- vp += len; +- bytesleft -= len; ++ if (dhcp!=0) { ++ if (!isme) ++ return 0; /* Not mine, discard! */ ++ ++ switch (dhcp) { ++ case 1 : len = dhcp_discover(bp,hp,vp,bytesleft); break; ++ case 3 : len = dhcp_request(bp,hp,vp,bytesleft); break; ++ case 4 : len = dhcp_decline(bp,hp,vp,bytesleft); break; ++ case 7 : len = dhcp_release(bp,hp,vp,bytesleft); break; ++ default : report(LOG_NOTICE,"Unknown DHCP request (%d)",dhcp); ++ return 0; ++ } ++ /* Is there a DHCP reply at all? */ ++ if (len==0) ++ return 0; ++ vp += len; ++ bytesleft -= len; ++ } ++ else { ++#endif ++ /* ++ * The remaining options are inserted by the following ++ * function (which is shared with bootpef.c). ++ * Keep back one byte for the TAG_END. ++ */ ++ len = dovend_rfc1497(hp, vp, bytesleft); ++ vp += len; ++ bytesleft -= len; ++#ifdef DHCP ++ } ++#endif + + /* There should be at least one byte left. */ + NEED(1, "(end)"); +@@ -1364,12 +1518,19 @@ + bytesleft--; + + /* Log message done by caller. */ ++ ++ /* Remove unnecessary bits. */ ++ pktlen -= bytesleft; ++ bytesleft = 64 - (vp - bp->bp_vend); + if (bytesleft > 0) { + /* + * Zero out any remaining part of the vendor area. + */ + bzero(vp, bytesleft); ++ pktlen += bytesleft; + } ++ ++ return 1; /* sent reply */ + } /* dovend_rfc1048 */ + #undef NEED + +@@ -1390,6 +1551,173 @@ + + /* get_errmsg() - now in report.c */ + ++ ++#ifdef DHCP ++ ++/* ++ * PeP hic facet ++ * Stuff the packet with the Lease info, We need to do this on the Offer and ++ * the ack so separated out here ++ */ ++PRIVATE ++int dhcp_lease(bp, hp, vp) ++ struct bootp *bp; ++ struct host *hp; ++ byte **vp; ++{ ++ *(*vp)++ = TAG_DHCP_IPRENEW; /* DHCP Renewal time 50% of lease */ ++ *(*vp)++ = 4; /* Length */ ++ insert_u_long(htonl(hp->dhcp_lease/2),vp); ++ ++ *(*vp)++ = TAG_DHCP_IPREBIND; /* DHCP Rebinding time 85% of lease */ ++ *(*vp)++ = 4; ++ insert_u_long(htonl(hp->dhcp_lease*7/8),vp); ++ ++ *(*vp)++ = TAG_DHCP_IPLEASE; /* IP address lease time */ ++ *(*vp)++ = 4; /* Length */ ++ insert_u_long(htonl(hp->dhcp_lease),vp); /* PeP hic facet, lets see if this works */ ++ ++ return(19); ++} ++ ++ ++/* ++ * Formulate an DHCP_DISCOVER reply ++ */ ++PRIVATE ++int dhcp_discover(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if(debug) ++ report(LOG_INFO, "Received: DHCPDISCOVER"); ++ return(dhcp_offer(bp,hp,vp,bytesleft)); ++} ++ ++/* ++ * formulate an DHCP_RELEASE reply ++ */ ++PRIVATE ++int dhcp_release(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if (debug) ++ report(LOG_INFO, "Received: DHCPRELEASE (discarded)"); ++ return 0; ++} ++ ++PRIVATE ++int dhcp_offer(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ int len=0; ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPOFFER"); ++ ++ bp->bp_secs = bp->bp_hops = 0; ++ bp->bp_ciaddr.s_addr = 0; ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCP */ ++ *vp++ = 1; /* length */ ++ *vp++ = 2; /* DHCPOFFER */ ++ len += 3; ++ ++ if (hp->dhcp_lease) ++ len += dhcp_lease(bp,hp,&vp); ++ ++ *vp++ = TAG_DHCP_SERVERID; ++ *vp++ = 4; ++ insert_u_long(my_ip_addr.s_addr,&vp); ++ len += 6; ++ ++ return len + dovend_rfc1497(hp, vp, bytesleft - len); ++} ++ ++/* ++ * Formulate an DHCP_REQUEST reply ++ */ ++PRIVATE ++int dhcp_request(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ bp->bp_secs = bp->bp_hops = 0; ++ ++ if(debug) ++ report(LOG_INFO,"Received: DHCPREQUEST"); ++ /* ++ * Make absolutely sure that if the client requests an address, ++ * it is its own address, and also make sure the hardware ++ * addresses match perfectly. We want to minimize spoofing! ++ */ ++ if ((bp->bp_ciaddr.s_addr && bp->bp_ciaddr.s_addr!=bp->bp_yiaddr.s_addr) || ++ bp->bp_htype != hp->htype || ++ bcmp(bp->bp_chaddr, hp->haddr, haddrlength(hp->htype))) { ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPNAK"); ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCPNAK */ ++ *vp++ = 1; ++ *vp++ = 6; ++ return 3; ++ } ++ else ++ return(dhcp_ack(bp,hp,vp,bytesleft)); ++} ++ ++PRIVATE ++int dhcp_ack(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ int len=0; ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPACK"); ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCPACK */ ++ *vp++ = 1; ++ *vp++ = 5; ++ len += 3; ++ ++ if (hp->dhcp_lease) ++ len += dhcp_lease(bp,hp,&vp); ++ ++ *vp++ = TAG_DHCP_SERVERID; /* Server id */ ++ *vp++ = 4; ++ insert_u_long(my_ip_addr.s_addr,&vp); ++ len += 6; ++ ++ return len + dovend_rfc1497(hp, vp, bytesleft - len); ++} ++ ++/* ++ * formulate an DHCP_DECLINE reply ++ */ ++PRIVATE ++int dhcp_decline(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if (debug) ++ report(LOG_INFO, "Received: DHCPDECLINE (ignored)"); ++ return 0; ++} ++#endif ++ + /* + * Local Variables: + * tab-width: 4 +--- bootp-2.4.3.orig/bootpd.h ++++ bootp-2.4.3/bootpd.h +@@ -25,6 +25,7 @@ + * bootpd.h -- common header file for all the modules of the bootpd program. + */ + ++#include <sys/types.h> + #include "bptypes.h" + #include "hash.h" + #include "hwaddr.h" +@@ -126,6 +127,9 @@ + exec_file :1, + msg_size :1, + min_wait :1, ++#ifdef DHCP ++ dhcp_lease :1, /* PeP hic facet */ ++#endif + /* XXX - Add new tags here */ + vm_cookie :1; + }; +@@ -180,10 +184,13 @@ + htype, /* RFC826 says this should be 16-bits but + RFC951 only allocates 1 byte. . . */ + haddr[MAXHADDRLEN]; +- int32 time_offset; +- unsigned int32 bootsize, ++ int32_t time_offset; ++ u_int32_t bootsize, + msg_size, + min_wait; ++#ifdef DHCP ++ u_int32_t dhcp_lease; /* PeP hic facet */ ++#endif + struct in_addr bootserver, + iaddr, + swap_server, +--- bootp-2.4.3.orig/bootpef.8 ++++ bootp-2.4.3/bootpef.8 +@@ -5,10 +5,13 @@ + .SH SYNOPSIS + .LP + .B bootpef +-.RI [ "-c chdir" ] +-.RI [ "-d debug-level" ] +-.RI [ "-f config-file" ] +-.RI [ client-name " [...]]" ++.RB [ " \-c" ++.IR chdir " ]" ++.RB [ " \-d" ++.IR debug-level " ]" ++.RB [ "-f" ++.IR config-file " ]" ++.RI "[ " client-name " [...]]" + .SH DESCRIPTION + .B bootpef + builds the +@@ -28,7 +31,8 @@ + extension file names are specified as relative pathnames, and + .I bootpef + needs to use the same current directory as the TFTP server +-(typically /tftpboot). ++(typically ++.IR /tftpboot ). + .TP + .BI \-d \ debug\-level + Sets the +@@ -40,7 +44,8 @@ + Set the name of the config file that specifies the option + data to be sent to each client. + .SH "SEE ALSO" +-bootpd(8), tftpd(8) ++.BR bootpd (8), ++.BR tftpd (8) + .SH REFERENCES + .TP + RFC951 +--- bootp-2.4.3.orig/bootpef.c ++++ bootp-2.4.3/bootpef.c +@@ -133,7 +133,7 @@ + * Initialization such as command-line processing is done and then the + * main server loop is started. + */ +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -269,6 +269,8 @@ + mktagfile(hp); + hp = (struct host *) hash_NextEntry(nmhashtable); + } ++ ++ return 0; + } + + +--- bootp-2.4.3.orig/bootpgw.c ++++ bootp-2.4.3/bootpgw.c +@@ -38,6 +38,7 @@ + #include <sys/time.h> + #include <sys/stat.h> + #include <sys/utsname.h> ++#include <sys/select.h> + + #include <net/if.h> + #include <netinet/in.h> +@@ -137,7 +138,7 @@ + int pktlen; + char *progname; + char *servername; +-int32 server_ipa; /* Real server IP address, network order. */ ++int32_t server_ipa; /* Real server IP address, network order. */ + + struct in_addr my_ip_addr; + +@@ -153,7 +154,7 @@ + * main server loop is started. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -163,8 +164,14 @@ + struct servent *servp; + struct hostent *hep; + char *stmp; ++#if !defined(__GLIBC__) + int n, ba_len, ra_len; +- int nfound, readfds; ++#else /* __GLIBC__ */ ++ int n; ++ socklen_t ra_len, ba_len; ++#endif /* __GLIBC__ */ ++ int nfound; ++ fd_set readfds; + int standalone; + + progname = strrchr(argv[0], '/'); +@@ -305,7 +312,7 @@ + "%s: invalid timeout specification\n", progname); + break; + } +- actualtimeout.tv_sec = (int32) (60 * n); ++ actualtimeout.tv_sec = (int32_t) (60 * n); + /* + * If the actual timeout is zero, pass a NULL pointer + * to select so it blocks indefinitely, otherwise, +@@ -314,6 +321,10 @@ + timeout = (n > 0) ? &actualtimeout : NULL; + break; + ++ case 'v': ++ printf("bootpgw %s.%d\n", VERSION, PATCHLEVEL); ++ exit (0); ++ + case 'w': /* wait time */ + if (argv[0][2]) { + stmp = &(argv[0][2]); +@@ -450,11 +461,12 @@ + for (;;) { + struct timeval tv; + +- readfds = 1 << s; ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); + if (timeout) + tv = *timeout; + +- nfound = select(s + 1, (fd_set *)&readfds, NULL, NULL, ++ nfound = select(s + 1, &readfds, NULL, NULL, + (timeout) ? &tv : NULL); + if (nfound < 0) { + if (errno != EINTR) { +@@ -462,7 +474,7 @@ + } + continue; + } +- if (!(readfds & (1 << s))) { ++ if (!FD_ISSET(s, &readfds)) { + report(LOG_INFO, "exiting after %ld minutes of inactivity", + actualtimeout.tv_sec / 60); + exit(0); +@@ -494,6 +506,8 @@ + break; + } + } ++ ++ return 0; + } + + +--- bootp-2.4.3.orig/bootptab.5 ++++ bootp-2.4.3/bootptab.5 +@@ -2,7 +2,9 @@ + .\" + .\" $Header: $ + .\" +-.TH BOOTPTAB 5 "October 31, 1991" "Carnegie Mellon University" ++.\" Mon Nov 12 19:23:27 1995 Martin Schulze <joey@finlandia.infodrom.north.de> ++.\" minor changes, made it linux man(7) conform ++.TH BOOTPTAB 5 "12 November 1995" "Version 2.4.3" "Carnegie Mellon University" + .UC 6 + + .SH NAME +@@ -11,28 +13,28 @@ + The + .I bootptab + file is the configuration database file for +-.IR bootpd , ++.BR bootpd , + the Internet Bootstrap Protocol server. + It's format is similar to that of +-.IR termcap (5) ++.BR termcap (5) + in which two-character case-sensitive tag symbols are used to + represent host parameters. These parameter declarations are separated by + colons (:), with a general format of: + .PP +-.I " hostname:tg=value. . . :tg=value. . . :tg=value. . . ." ++.I " hostname:tg=value... :tg=value... :tg=value. ..." + .PP + where + .I hostname + is the actual name of a bootp client (or a "dummy entry"), and +-.I tg ++.B tg + is a two-character tag symbol. Dummy entries have an invalid hostname + (one with a "." as the first character) and are used to provide + default values used by other entries via the +-.B tc=.dummy-entry ++.BI tc= .dummy-entry + mechanism. Most tags must be followed by an equals-sign + and a value as above. Some may also appear in a boolean form with no + value (i.e. +-.RI : tg :). ++.RB : tg :). + The currently recognized tags are: + .PP + .br +@@ -44,12 +46,16 @@ + .br + df Merit dump file + .br ++ dl DHCP lease time in seconds ++.br + dn Domain name + .br + ds Domain name server address list + .br + ef Extension file + .br ++ ex York ex option (huh?) ++.br + gw Gateway address list + .br + ha Host hardware address +@@ -68,6 +74,8 @@ + .br + lp LPR server address list + .br ++ ms Message size ++.br + ns IEN-116 name server address list + .br + nt NTP (time) Server (RFC 1129) +@@ -100,12 +108,12 @@ + + .PP + There is also a generic tag, +-.RI T n , ++.BI T n , + where + .I n + is an RFC1084 vendor field tag number. Thus it is possible to immediately + take advantage of future extensions to RFC1084 without being forced to modify +-.I bootpd ++.B bootpd + first. Generic data may be represented as either a stream of hexadecimal + numbers or as a quoted string of ASCII characters. The length of the generic + data is automatically determined and inserted into the proper field(s) of the +@@ -136,12 +144,13 @@ + and may use decimal, octal, or hexadecimal numbers + (octal numbers begin with 0, hexadecimal numbers begin with '0x' or '0X'). + Any IP addresses may alternatively be specified as a hostname, causing +-.I bootpd +-to lookup the IP address for that host name using gethostbyname(3). ++.B bootpd ++to lookup the IP address for that host name using ++.BR gethostbyname(3). + If the + .B ip + tag is not specified, +-.I bootpd ++.B bootpd + will determine the IP address using the entry name as the host name. + (Dummy entries use an invalid host name to avoid automatic IP lookup.) + .PP +@@ -184,8 +193,9 @@ + below). + If the hardware address is not specified and the type is specified + as either "ethernet" or "ieee802", then +-.I bootpd +-will try to determine the hardware address using ether_hton(3). ++.B bootpd ++will try to determine the hardware address using ++.BR ether_hton (3). + .PP + The hostname, home directory, and bootfile are ASCII strings which may be + optionally surrounded by double quotes ("). The client's request and the +@@ -205,34 +215,39 @@ + option is specified as well, its value is prepended to the + boot file copied into the reply packet. + The existence of the boot file is checked only if the +-.BR bs =auto ++.BI bs= auto + option is used (to determine the boot file size). + A reply may be sent whether or not the boot file exists. + .PP + Some newer versions of +-.I tftpd ++.BR tftpd (8) + provide a security feature to change their root directory using + the +-.IR chroot (2) ++.BR chroot (2) + system call. + The + .B td + tag may be used to inform +-.I bootpd ++.B bootpd + of this special root directory used by +-.IR tftpd . ++.BR tftpd . + (One may alternatively use the +-.I bootpd +-"-c chdir" option.) ++.B bootpd ++.B -c ++.I chdir ++option.) + The + .B hd + tag is actually relative to the root directory specified by the + .B td + tag. + For example, if the real absolute path to your BOOTP client bootfile is +-/tftpboot/bootfiles/bootimage, and +-.IR tftpd +-uses /tftpboot as its "secure" directory, then specify the following in ++.IR /tftpboot/bootfiles/bootimage , ++and ++.B tftpd ++uses ++.I /tftpboot ++as its "secure" directory, then specify the following in + .IR bootptab : + .PP + .br +@@ -247,9 +262,9 @@ + .B sa + tag may be used to specify the IP address of the particular TFTP server + you wish the client to use. In the absence of this tag, +-.I bootpd ++.B bootpd + will tell the client to perform TFTP to the same machine +-.I bootpd ++.B bootpd + is running on. + .PP + The time offset +@@ -292,8 +307,8 @@ + tag is strictly a boolean tag; it does not take the usual equals-sign and + value. It's presence indicates that the hostname should be sent to RFC1084 + clients. +-.I Bootpd +-attempts to send the entire hostname as it is specified in the configuration ++.B Bootpd ++attempts to send the entire hostname (including domain) as it is specified in the configuration + file; if this will not fit into the reply packet, the name is shortened to + just the host field (up to the first period, if present) and then tried. + In no case is an arbitrarily-truncated hostname sent (if nothing reasonable +@@ -308,9 +323,9 @@ + never sends bootp requests. This feature is similar to the + .B tc + feature of +-.IR termcap (5) ++.BR termcap (5) + for similar terminals. Note that +-.I bootpd ++.B bootpd + allows the + .B tc + tag symbol to appear anywhere in the host entry, unlike +@@ -332,7 +347,7 @@ + which removes the effect of + .I tag + as in +-.IR termcap (5). ++.BR termcap (5). + For example, to completely undo an IEN-116 name server specification, use + ":ns@:" at an appropriate place in the configuration entry. After removal + with +@@ -386,10 +401,12 @@ + + .fi + .SH FILES +-/etc/bootptab ++.TP ++.I /etc/bootptab ++The definition file + + .SH "SEE ALSO" +-.br +-bootpd(8), tftpd(8), ++.BR bootpd (8), ++.BR tftpd (8), + .br + DARPA Internet Request For Comments RFC951, RFC1048, RFC1084, Assigned Numbers +--- bootp-2.4.3.orig/bootptab.cmu ++++ bootp-2.4.3/bootptab.cmu +@@ -1,4 +1,4 @@ +-# /etc/bootptab: database for bootp server (/etc/bootpd) ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + # (I've hacked on this but can't test it... -gwr) + + # Blank lines and lines beginning with '#' are ignored. +@@ -33,6 +33,8 @@ + # to -- time offset (seconds) + # ts -- time servers + # vm -- vendor magic number ++# ys -- NIS server ++# yd -- NIS domain + # Tn -- generic option tag n + # + # Be careful about including backslashes where they're needed. Weird (bad) +--- bootp-2.4.3.orig/bootptab.mcs ++++ bootp-2.4.3/bootptab.mcs +@@ -1,4 +1,4 @@ +-# /etc/bootptab: database for bootp server (/etc/bootpd) ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + # Last update: gwr, Sun Dec 12 19:00:00 EDT 1993 + # Blank lines and lines beginning with '#' are ignored. + # +@@ -32,6 +32,8 @@ + # to -- time offset (seconds) + # ts -- time servers + # vm -- vendor magic number ++# ys -- NIS server ++# yd -- NIS domain + # Tn -- generic option tag n + # + # Be careful about including backslashes where they're needed. Weird (bad) +--- bootp-2.4.3.orig/bootptest.c ++++ bootp-2.4.3/bootptest.c +@@ -41,6 +41,7 @@ + #include <sys/time.h> + #include <sys/stat.h> + #include <sys/utsname.h> ++#include <sys/select.h> + + #include <net/if.h> + #include <netinet/in.h> +@@ -50,6 +51,9 @@ + #include <unistd.h> + #endif + ++#ifndef NO_UNISTD ++#include <unistd.h> ++#endif + #include <stdlib.h> + #include <signal.h> + #include <stdio.h> +@@ -68,6 +72,9 @@ + + static void send_request(); + ++extern int getether(); ++static void send_request(); ++ + #define LOG_ERR 1 + #define BUFLEN 1024 + #define WAITSECS 1 +@@ -125,7 +132,7 @@ + * the receiver loop is started. Die when interrupted. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -137,12 +144,17 @@ + char *servername = NULL; + char *vendor_file = NULL; + char *bp_file = NULL; +- int32 server_addr; /* inet addr, network order */ ++ int32_t server_addr; /* inet addr, network order */ + int s; /* Socket file descriptor */ ++#if !defined(__GLIBC__) + int n, fromlen, recvcnt; ++#else /* __GLIBC__ */ ++ int n, recvcnt; ++ socklen_t fromlen; ++#endif /* __GLIBC__ */ + int use_hwa = 0; +- int32 vend_magic; +- int32 xid; ++ int32_t vend_magic; ++ int32_t xid; + + progname = strrchr(argv[0], '/'); + if (progname) +@@ -304,8 +316,8 @@ + bp = (struct bootp *) sndbuf; + bzero(bp, sizeof(*bp)); + bp->bp_op = BOOTREQUEST; +- xid = (int32) getpid(); +- bp->bp_xid = (u_int32) htonl(xid); ++ xid = (int32_t) getpid(); ++ bp->bp_xid = (u_int32_t) htonl(xid); + if (bp_file) + strncpy(bp->bp_file, bp_file, BP_FILE_LEN); + +@@ -384,12 +396,13 @@ + send_request(s); + while (1) { + struct timeval tv; +- int readfds; ++ fd_set readfds; + + tv.tv_sec = WAITSECS; + tv.tv_usec = 0L; +- readfds = (1 << s); +- n = select(s + 1, (fd_set *) & readfds, NULL, NULL, &tv); ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); ++ n = select(s + 1, &readfds, NULL, NULL, &tv); + if (n < 0) { + perror("select"); + break; +@@ -436,7 +449,7 @@ + */ + } + fprintf(stderr, "no response from %s\n", servername); +- exit(1); ++ return 1; + } + + static void +--- bootp-2.4.3.orig/bptypes.h ++++ bootp-2.4.3/bptypes.h +@@ -4,15 +4,6 @@ + #define BPTYPES_H + + /* +- * 32 bit integers are different types on various architectures +- */ +- +-#ifndef int32 +-#define int32 long +-#endif +-typedef unsigned int32 u_int32; +- +-/* + * Nice typedefs. . . + */ + +--- bootp-2.4.3.orig/dovend.c ++++ bootp-2.4.3/dovend.c +@@ -57,11 +57,11 @@ + int bytesleft = len; + byte *vp = buf; + +- static char noroom[] = "%s: No room for \"%s\" option"; ++ static char noroom[] = "%s: No room for \"%s\" option (%d bytes remaining, %d needed)"; + #define NEED(LEN, MSG) do \ + if (bytesleft < (LEN)) { \ + report(LOG_NOTICE, noroom, \ +- hp->hostname->string, MSG); \ ++ hp->hostname->string, MSG, bytesleft, LEN); \ + return (vp - buf); \ + } while (0) + +@@ -159,7 +159,7 @@ + * TAG_NIS_DOMAIN and length. + */ + len = strlen(hp->nis_domain->string); +- NEED((len + 2), "dn"); ++ NEED((len + 2), "yd"); + *vp++ = TAG_NIS_DOMAIN; + *vp++ = (byte) (len & 0xFF); + bcopy(hp->nis_domain->string, vp, len); +@@ -185,13 +185,17 @@ + hp->time_server, + &vp, &bytesleft)) + NEED(8, "ts"); ++#ifdef DEBUG ++ if (debug) ++ report(LOG_INFO, "dovend.c(dovend_rfc1497): bytesleft after ts: %d", bytesleft); ++#endif + } + /* NTP (time) Server (RFC 1129) */ + if (hp->flags.ntp_server) { + if (insert_ip(TAG_NTP_SERVER, + hp->ntp_server, + &vp, &bytesleft)) +- NEED(8, "ts"); ++ NEED(8, "nt"); + } + /* + * I wonder: If the hostname were "promoted" into the BOOTP +@@ -384,7 +388,7 @@ + + void + insert_u_long(value, dest) +- u_int32 value; ++ u_int32_t value; + byte **dest; + { + byte *temp; +--- bootp-2.4.3.orig/dovend.h ++++ bootp-2.4.3/dovend.h +@@ -1,5 +1,7 @@ + /* dovend.h */ + ++#include <sys/types.h> ++ + #ifdef __STDC__ + #define P(args) args + #else +@@ -8,6 +10,6 @@ + + extern int dovend_rfc1497 P((struct host *hp, u_char *buf, int len)); + extern int insert_ip P((int, struct in_addr_list *, u_char **, int *)); +-extern void insert_u_long P((u_int32, u_char **)); ++extern void insert_u_long P((u_int32_t, u_char **)); + + #undef P +--- bootp-2.4.3.orig/dumptab.c ++++ bootp-2.4.3/dumptab.c +@@ -10,6 +10,8 @@ + #include <stdlib.h> + #include <syslog.h> + #include <time.h> ++#include <sys/stat.h> ++#include <fcntl.h> + + #ifndef USE_BFUNCS + #include <memory.h> +@@ -56,7 +58,7 @@ + dumptab(filename) + char *filename; + { +- int n; ++ int n, fd; + struct host *hp; + FILE *fp; + long t; +@@ -103,7 +105,8 @@ + /* + * Open bootpd.dump file. + */ +- if ((fp = fopen(filename, "w")) == NULL) { ++ fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600); ++ if (fd < 0 || (fp = fdopen(fd, "w")) == NULL) { + report(LOG_ERR, "error opening \"%s\": %s", + filename, get_errmsg()); + exit(1); +@@ -150,7 +153,7 @@ + if (hp->flags.bootsize_auto) { + fprintf(fp, "auto:"); + } else { +- fprintf(fp, "%d:", hp->bootsize); ++ fprintf(fp, "%lu:", (unsigned long) hp->bootsize); + } + } + if (hp->flags.cookie_server) { +@@ -218,10 +221,10 @@ + fprintf(fp, ":"); + } + if (hp->flags.msg_size) { +- fprintf(fp, "\\\n\t:ms=%d:", hp->msg_size); ++ fprintf(fp, "\\\n\t:ms=%lu:", (unsigned long) hp->msg_size); + } + if (hp->flags.min_wait) { +- fprintf(fp, "\\\n\t:mw=%d:", hp->min_wait); ++ fprintf(fp, "\\\n\t:mw=%lu:", (unsigned long) hp->min_wait); + } + if (hp->flags.name_server) { + fprintf(fp, "\\\n\t:ns="); +@@ -260,7 +263,7 @@ + /* NetBSD: domainname (see above) */ + /* NetBSD: dumpfile (see above) */ + if (hp->flags.time_offset) { +- fprintf(fp, "\\\n\t:to=%ld:", hp->time_offset); ++ fprintf(fp, "\\\n\t:to=%ld:", (long) hp->time_offset); + } + if (hp->flags.time_server) { + fprintf(fp, "\\\n\t:ts="); +--- bootp-2.4.3.orig/getether.c ++++ bootp-2.4.3/getether.c +@@ -329,7 +329,9 @@ + #include <memory.h> + #include <sys/ioctl.h> + #include <net/if.h> /* struct ifreq */ ++#if !defined(__GLIBC__) + #include <sys/socketio.h> /* Needed for IOCTL defs */ ++#endif + + int + getether(ifname, eap) +--- bootp-2.4.3.orig/hwaddr.c ++++ bootp-2.4.3/hwaddr.c +@@ -48,7 +48,6 @@ + #define ATF_INUSE 0 + #endif + +-#include "bptypes.h" + #include "hwaddr.h" + #include "report.h" + +--- bootp-2.4.3.orig/lookup.c ++++ bootp-2.4.3/lookup.c +@@ -12,9 +12,13 @@ + #include <netinet/in.h> + + #ifdef ETC_ETHERS ++#ifdef __GLIBC__ ++#include <netinet/ether.h> ++#else + #include <netinet/if_ether.h> + extern int ether_hostton(); + #endif ++#endif + + #include <netdb.h> + #include <syslog.h> +@@ -72,7 +76,7 @@ + int + lookup_ipa(hostname, result) + char *hostname; +- u_int32 *result; ++ u_int32_t *result; + { + struct hostent *hp; + hp = gethostbyname(hostname); +@@ -93,10 +97,10 @@ + */ + int + lookup_netmask(addr, result) +- u_int32 addr; /* both in network order */ +- u_int32 *result; ++ u_int32_t addr; /* both in network order */ ++ u_int32_t *result; + { +- int32 m, a; ++ int32_t m, a; + + a = ntohl(addr); + m = 0; +--- bootp-2.4.3.orig/lookup.h ++++ bootp-2.4.3/lookup.h +@@ -1,6 +1,6 @@ + /* lookup.h */ + +-#include "bptypes.h" /* for int32, u_int32 */ ++#include <sys/types.h> + + #ifdef __STDC__ + #define P(args) args +@@ -9,7 +9,7 @@ + #endif + + extern u_char *lookup_hwa P((char *hostname, int htype)); +-extern int lookup_ipa P((char *hostname, u_int32 *addr)); +-extern int lookup_netmask P((u_int32 addr, u_int32 *mask)); ++extern int lookup_ipa P((char *hostname, u_int32_t *addr)); ++extern int lookup_netmask P((u_int32_t addr, u_int32_t *mask)); + + #undef P +--- bootp-2.4.3.orig/print-bootp.c ++++ bootp-2.4.3/print-bootp.c +@@ -120,7 +120,7 @@ + printf(" hops:%d", bp->bp_hops); + + if (bp->bp_xid) +- printf(" xid:%d", ntohl(bp->bp_xid)); ++ printf(" xid:%lu", (unsigned long) ntohl(bp->bp_xid)); + + if (bp->bp_secs) + printf(" secs:%d", ntohs(bp->bp_secs)); +@@ -172,9 +172,9 @@ + + TCHECK(bp->bp_vend[0], vdlen); + printf(" vend"); +- if (!bcmp(bp->bp_vend, vm_rfc1048, sizeof(u_int32))) ++ if (!bcmp(bp->bp_vend, vm_rfc1048, sizeof(u_int32_t))) + rfc1048_print(bp->bp_vend, vdlen); +- else if (!bcmp(bp->bp_vend, vm_cmu, sizeof(u_int32))) ++ else if (!bcmp(bp->bp_vend, vm_cmu, sizeof(u_int32_t))) + cmu_print(bp->bp_vend, vdlen); + else + other_print(bp->bp_vend, vdlen); +@@ -194,7 +194,7 @@ + * a: ASCII + * b: byte (8-bit) + * i: inet address +- * l: int32 ++ * l: int32_t + * s: short (16-bit) + */ + char * +@@ -268,7 +268,14 @@ + "iXW-FS", /* 48: X Window System Font Servers */ + "iXW-DM", /* 49: X Window System Display Managers */ + +- /* DHCP extensions (RFC-1533, sect. 9) */ ++#ifdef DHCP ++ /* DHCP extensions (RFC-1533, sect. 9) PeP hic facet */ ++ "iDHCPreq", /* 50: DHCP requested IP address */ ++ "lDHCPlease", /* 51: DHCP lease time */ ++ "bDHCPooptol", /* 52: DHCP option overload */ ++ "bDHCPtype", /* 53: DHCP message type */ ++ "iDHCPSid", /* 54: DHCP server ID */ ++#endif + #endif + }; + #define KNOWN_OPTIONS (sizeof(rfc1048_opts) / sizeof(rfc1048_opts[0])) +@@ -281,7 +288,7 @@ + u_char tag; + u_char *ep; + register int len; +- u_int32 ul; ++ u_int32_t ul; + u_short us; + struct in_addr ia; + char *optstr; +@@ -289,7 +296,7 @@ + printf("-rfc1395"); + + /* Step over magic cookie */ +- bp += sizeof(int32); ++ bp += sizeof(int32_t); + /* Setup end pointer */ + ep = bp + length; + while (bp < ep) { +@@ -310,7 +317,7 @@ + len = *bp++; + if (bp + len > ep) { + /* truncated option */ +- printf(" |(%d>%d)", len, ep - bp); ++ printf(" |(%d>%ld)", len, (long) (ep - bp)); + return; + } + /* Print the option value(s). */ +@@ -336,7 +343,7 @@ + case 'l': /* Long words */ + while (len >= 4) { + bcopy((char *) bp, (char *) &ul, 4); +- printf("%d", ntohl(ul)); ++ printf("%lu", (unsigned long) ntohl(ul)); + bp += 4; + len -= 4; + if (len) printf(","); +--- bootp-2.4.3.orig/readfile.c ++++ bootp-2.4.3/readfile.c +@@ -33,7 +33,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/file.h> +-#include <sys/time.h> ++#include <time.h> + #include <netinet/in.h> + + #include <stdlib.h> +@@ -113,6 +113,11 @@ + #define SYM_EXEC_FILE 33 /* YORK_EX_OPTION */ + #define SYM_MSG_SIZE 34 + #define SYM_MIN_WAIT 35 ++#ifdef DHCP ++#define SYM_DHCP_LEASE 36 /* RFC 1533 PeP hic facet */ ++#define SYM_DHCP_IPRENEW 37 ++#define SYM_DHCP_IPREBIND 38 ++#endif + /* XXX - Add new tags here */ + + #define OP_ADDITION 1 /* Operations on tags */ +@@ -144,7 +149,7 @@ + + PRIVATE int nhosts; /* Number of hosts (/w hw or IP address) */ + PRIVATE int nentries; /* Total number of entries */ +-PRIVATE int32 modtime = 0; /* Last modification time of bootptab */ ++PRIVATE int32_t modtime = 0; /* Last modification time of bootptab */ + PRIVATE char *current_hostname; /* Name of the current entry. */ + PRIVATE char current_tagname[8]; + +@@ -161,6 +166,9 @@ + {"df", SYM_DUMP_FILE}, + {"dn", SYM_DOMAIN_NAME}, + {"ds", SYM_DOMAIN_SERVER}, ++#ifdef DHCP ++ {"dl", SYM_DHCP_LEASE}, /* PeP hic facet */ ++#endif + {"ef", SYM_EXTEN_FILE}, + {"ex", SYM_EXEC_FILE}, /* YORK_EX_OPTION */ + {"gw", SYM_GATEWAY}, +@@ -255,7 +263,7 @@ + get_shared_string P((char **)); + PRIVATE char * + get_string P((char **, char *, u_int *)); +-PRIVATE u_int32 ++PRIVATE u_int32_t + get_u_long P((char **)); + PRIVATE boolean + goodname P((char *)); +@@ -274,7 +282,7 @@ + PRIVATE byte * + prs_haddr P((char **, u_int)); + PRIVATE int +- prs_inetaddr P((char **, u_int32 *)); ++ prs_inetaddr P((char **, u_int32_t *)); + PRIVATE void + read_entry P((FILE *, char *, u_int *)); + PRIVATE char * +@@ -410,7 +418,7 @@ + */ + if (goodname(hp->hostname->string)) { + char *hn = hp->hostname->string; +- u_int32 value; ++ u_int32_t value; + if (hp->flags.iaddr == 0) { + if (lookup_ipa(hn, &value)) { + report(LOG_ERR, "can not get IP addr for %s", hn); +@@ -792,8 +800,8 @@ + char tmpstr[MAXSTRINGLEN]; + byte *tmphaddr; + struct symbolmap *symbolptr; +- u_int32 value; +- int32 timeoff; ++ u_int32_t value; ++ int32_t timeoff; + int i, numsymbols; + unsigned len; + int optype; /* Indicates boolean, addition, or deletion */ +@@ -1125,7 +1133,16 @@ + PARSE_UINT(min_wait); + break; + +- /* XXX - Add new tags here */ ++#ifdef DHCP ++ /* PeP hic facet. */ ++ case SYM_DHCP_LEASE: ++ PARSE_UINT(dhcp_lease); ++ break; ++ ++ /* XXX - Add new DHCP tags here */ ++#endif ++ ++ /* XXX - Add new tags here */ + + default: + return E_UNKNOWN_SYMBOL; +@@ -1506,6 +1523,9 @@ + DUP_COPY(min_wait); + + /* XXX - Add new tags here */ ++#ifdef DHCP ++ DUP_COPY(dhcp_lease); /* PeP hic facet */ ++#endif + + DUP_LINK(generic); + +@@ -1623,7 +1643,7 @@ + if (!**src) { /* Quit if nothing more */ + break; + } +- if (prs_inetaddr(src, &(address1->s_addr)) < 0) { ++ if (prs_inetaddr(src, (u_int32_t *) &(address1->s_addr)) < 0) { + break; + } + address1++; /* Point to next address slot */ +@@ -1666,11 +1686,11 @@ + PRIVATE int + prs_inetaddr(src, result) + char **src; +- u_int32 *result; ++ u_int32_t *result; + { + char tmpstr[MAXSTRINGLEN]; +- register u_int32 value; +- u_int32 parts[4], *pp; ++ register u_int32_t value; ++ u_int32_t parts[4], *pp; + int n; + char *s, *t; + +@@ -1850,11 +1870,11 @@ + * point to the first illegal character. + */ + +-PRIVATE u_int32 ++PRIVATE u_int32_t + get_u_long(src) + char **src; + { +- register u_int32 value, base; ++ register u_int32_t value, base; + char c; + + /* +--- bootp-2.4.3.orig/report.c ++++ bootp-2.4.3/report.c +@@ -10,6 +10,8 @@ + + #include <stdio.h> + #include <syslog.h> ++#include <string.h> ++#include <errno.h> + + #include "report.h" + +@@ -101,7 +103,7 @@ + #endif + { + va_list ap; +- static char buf[128]; ++ static char buf[256]; + + if ((priority < 0) || (priority >= numlevels)) { + priority = numlevels - 1; +@@ -111,7 +113,7 @@ + #else + va_start(ap); + #endif +- vsprintf(buf, fmt, ap); ++ vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + + /* +@@ -135,9 +137,6 @@ + char * + get_errmsg() + { +- extern int errno; +- extern char *strerror(); +- + return strerror(errno); + } + +--- bootp-2.4.3.orig/tzone.c ++++ bootp-2.4.3/tzone.c +@@ -13,13 +13,13 @@ + # include <sys/time.h> + # include <syslog.h> + #endif /* SVR4 */ ++#include <sys/types.h> + +-#include "bptypes.h" + #include "report.h" + #include "tzone.h" + + /* This is what other modules use. */ +-int32 secondswest; ++int32_t secondswest; + + /* + * Get our timezone offset so we can give it to clients if the +--- bootp-2.4.3.orig/tzone.h ++++ bootp-2.4.3/tzone.h +@@ -1,3 +1,3 @@ + /* tzone.h */ +-extern int32 secondswest; ++extern int32_t secondswest; + extern void tzone_init(); +--- bootp-2.4.3.orig/debian/substvars ++++ bootp-2.4.3/debian/substvars +@@ -0,0 +1 @@ ++shlibs:Depends=libc6 (>= 2.3.5-1) +--- bootp-2.4.3.orig/debian/README.Debian ++++ bootp-2.4.3/debian/README.Debian +@@ -0,0 +1,8 @@ ++bootp for Debian ++---------------- ++ ++bootp is no longer maintained actively upstream. It is recommended for you to ++use the dhcp package if at all possible. ++ ++Herbert <herbert@debian.org> ++$Id: README.Debian,v 1.1 1999/02/06 07:11:19 herbert Exp $ +--- bootp-2.4.3.orig/debian/bootpgw.8 ++++ bootp-2.4.3/debian/bootpgw.8 +@@ -0,0 +1 @@ ++.so man8/bootpd.8 +--- bootp-2.4.3.orig/debian/control ++++ bootp-2.4.3/debian/control +@@ -0,0 +1,18 @@ ++Source: bootp ++Section: net ++Priority: extra ++Maintainer: Anibal Monsalve Salazar <anibal@debian.org> ++Standards-Version: 3.6.2 ++Build-Depends: debhelper (>= 4) ++ ++Package: bootp ++Architecture: any ++Depends: ${shlibs:Depends}, netbase ++Description: server for the bootp protocol with DHCP support ++ This is a server for the bootp protocol; which allows network administrator ++ to setup networking information for clients via an /etc/bootptab on a server ++ so that the clients can automatically get their networking information. While ++ this server includes rudimentary DHCP support as well, we suggest using the ++ dhcp package if you need DHCP support, as it is much more complete. ++ . ++ Homepage: ftp://ftp.ntplx.net/pub/networking/bootp/ +--- bootp-2.4.3.orig/debian/bootptab ++++ bootp-2.4.3/debian/bootptab +@@ -0,0 +1,40 @@ ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) ++ ++# Blank lines and lines beginning with '#' are ignored. ++# ++# Legend: (see bootptab.5) ++# first field -- hostname (not indented) ++# bf -- bootfile ++# bs -- bootfile size in 512-octet blocks ++# cs -- cookie servers ++# df -- dump file name ++# dn -- domain name ++# ds -- domain name servers ++# ef -- extension file ++# gw -- gateways ++# ha -- hardware address ++# hd -- home directory for bootfiles ++# hn -- host name set for client ++# ht -- hardware type ++# im -- impress servers ++# ip -- host IP address ++# lg -- log servers ++# lp -- LPR servers ++# ns -- IEN-116 name servers ++# ra -- reply address ++# rl -- resource location protocol servers ++# rp -- root path ++# sa -- boot server address ++# sm -- subnet mask ++# sw -- swap server ++# tc -- template host (points to similar host entry) ++# td -- TFTP directory ++# to -- time offset (seconds) ++# ts -- time servers ++# vm -- vendor magic number ++# Tn -- generic option tag n ++# ++# Be careful about including backslashes where they're needed. Weird (bad) ++# things can happen when a backslash is omitted where one is intended. ++# Also, note that generic option data must be either a string or a ++# sequence of bytes where each byte is a two-digit hex value. +--- bootp-2.4.3.orig/debian/rules ++++ bootp-2.4.3/debian/rules +@@ -0,0 +1,59 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Copyright (C) 2004-2005 Anibal Monsalve Salazar <anibal@debian.org> ++ ++# Uncomment this to turn on verbose mode. ++export DH_VERBOSE=1 ++export DH_COMPAT=4 ++ ++build: ++ dh_testdir ++ ++ $(MAKE) SYSDEFS=-DETC_ETHERS ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ -$(MAKE) clean ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/tmp. ++ $(MAKE) BASEDIR=`pwd`/debian/bootp install ++ cp debian/bootptab debian/bootp/etc ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++ dh_installmanpages ++ dh_installchangelogs Changes ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- bootp-2.4.3.orig/debian/changelog ++++ bootp-2.4.3/debian/changelog +@@ -0,0 +1,112 @@ ++bootp (2.4.3-15) unstable; urgency=low ++ ++ * Fixed "it says it does DHCPOFFER, but doesn't", closes: #282915. ++ Patch thanks to Petr Olivka <petr.olivka@vsb.cz>. ++ * Set DH_COMPAT to 4. ++ * Added watch file. ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Sat, 18 Feb 2006 09:12:21 +1100 ++ ++bootp (2.4.3-14) unstable; urgency=low ++ ++ * Set Standards-Version to 3.6.2 and added homepage to description. ++ * Fixed lintian warning "maintainer-script-needs-depends-on-netbase ++ {postinst,prerm,postrm}". ++ * Fixed lintian warning "package-uses-deprecated-debhelper-compat- ++ version 1". ++ * Fixed lintian error "duplicate-conffile /etc/bootptab". ++ * Fixed linda error "DH_COMPAT is greater than the major version ++ of debhelper depended on". ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Thu, 24 Nov 2005 18:58:37 +1100 ++ ++bootp (2.4.3-13) unstable; urgency=low ++ ++ * New maintainer's email address. ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Sun, 06 Feb 2005 21:56:46 +1100 ++ ++bootp (2.4.3-12) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Anibal Monsalve Salazar <A.Monsalve.Salazar@IEEE.org> Thu, 20 May 2004 08:57:34 +1000 ++ ++bootp (2.4.3-11) unstable; urgency=low ++ ++ * Removed build-stamp/install-stamp. ++ * Included errnor.h/string.h in report.c (closes: #219123). ++ * Use fd_set instead int for select. ++ * Removed reference to netstd. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 5 Nov 2003 19:52:40 +1100 ++ ++bootp (2.4.3-10) unstable; urgency=low ++ ++ * Ensure that vendor area is at least 64 bytes long (closes: #189256). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 16 Apr 2003 20:23:53 +1000 ++ ++bootp (2.4.3-9) unstable; urgency=low ++ ++ * Documented ms tag in manual page. ++ * Eliminated baroque padding in response packets (closes: #184300). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 28 Mar 2003 19:26:06 +1100 ++ ++bootp (2.4.3-8) unstable; urgency=low ++ ++ * Added note about modifying configuration files (closes: #136057). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 7 Apr 2002 18:12:41 +1000 ++ ++bootp (2.4.3-7) unstable; urgency=low ++ ++ * Compile with ETC_ETHERS (closes: #112223). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 16 Sep 2001 15:47:28 +1000 ++ ++bootp (2.4.3-6) unstable; urgency=low ++ ++ * Make directed broadcasts if possible (closes: #108691). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 30 Aug 2001 21:15:43 +1000 ++ ++bootp (2.4.3-5) unstable; urgency=low ++ ++ * Fixed typo in bootpd (closes: #83618). ++ * Added build-time dependencies (closes: #70171). ++ * Compile with -g and without -fomit-frame-pointer -pipe. Omitting the ++ frame pointer makes the code 10% larger. ++ * Fixed the unaligned access properly. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 27 Apr 2001 22:35:58 +1000 ++ ++bootp (2.4.3-4) unstable; urgency=low ++ ++ * Fixed unaligned trap on Alpha (David Huggins-Daines, closes #64552). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 24 May 2000 11:41:50 +1000 ++ ++bootp (2.4.3-3) frozen unstable; urgency=low ++ ++ * Use int32_t/u_int32_t instead of locally defined int32/u_int32 which ++ always turns out to be long. This is needed for bootpd to work on 64 bit ++ platforms like the Alpha. ++ * Made compliant with policy 3.1.1. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 22 Apr 2000 19:41:18 +1000 ++ ++bootp (2.4.3-2) unstable; urgency=low ++ ++ * Better hostname comparison (fixes #37543). ++ * Dump file is now in /var/run. ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 7 Sep 1999 23:19:34 +1000 ++ ++bootp (2.4.3-1) unstable; urgency=low ++ ++ * Split from netstd. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 15 Mar 1999 12:18:40 +1100 ++ +--- bootp-2.4.3.orig/debian/copyright ++++ bootp-2.4.3/debian/copyright +@@ -0,0 +1,34 @@ ++This package was split from netstd by Herbert Xu herbert@debian.org on ++Sat, 6 Feb 1999 18:07:27 +1100. ++ ++It is maintained by Anibal Monsalve Salazar <anibal@debian.org>. ++ ++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on ++Wed, 20 Jul 1994 17:23:21 +0200. ++ ++It was downloaded from ftp://ftp.ntplx.net/pub/networking/bootp/. ++ ++Copyright: ++ ++/************************************************************************ ++ Copyright 1988, 1991 by Carnegie Mellon University ++ ++ All Rights Reserved ++ ++Permission to use, copy, modify, and distribute this software and its ++documentation for any purpose and without fee is hereby granted, provided ++that the above copyright notice appear in all copies and that both that ++copyright notice and this permission notice appear in supporting ++documentation, and that the name of Carnegie Mellon University not be used ++in advertising or publicity pertaining to distribution of the software ++without specific, written prior permission. ++ ++CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS ++SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. ++IN NO EVENT SHALL CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL ++DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++SOFTWARE. ++************************************************************************/ ++ +--- bootp-2.4.3.orig/debian/watch ++++ bootp-2.4.3/debian/watch +@@ -0,0 +1,2 @@ ++version=2 ++ftp://ftp.ntplx.net/pub/networking/bootp/bootp-([0-9.]+).tar.gz +--- bootp-2.4.3.orig/debian/dirs ++++ bootp-2.4.3/debian/dirs +@@ -0,0 +1,2 @@ ++etc ++usr/sbin +--- bootp-2.4.3.orig/debian/docs ++++ bootp-2.4.3/debian/docs +@@ -0,0 +1,5 @@ ++Announce ++Announce.old ++Problems ++README ++ToDo +--- bootp-2.4.3.orig/debian/examples ++++ bootp-2.4.3/debian/examples +@@ -0,0 +1,2 @@ ++bootptab.cmu ++bootptab.mcs +--- bootp-2.4.3.orig/debian/postinst ++++ bootp-2.4.3/debian/postinst +@@ -0,0 +1,6 @@ ++#!/bin/sh -e ++# $Id: postinst,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++update-inetd --group BOOT --add "#bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120" ++ ++#DEBHELPER# +--- bootp-2.4.3.orig/debian/postrm ++++ bootp-2.4.3/debian/postrm +@@ -0,0 +1,8 @@ ++#!/bin/sh -e ++# $Id: postrm,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++if [ "$1" = remove -o "$1" = purge ]; then ++ update-inetd --remove "bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120" ++fi ++ ++#DEBHELPER# +--- bootp-2.4.3.orig/debian/prerm ++++ bootp-2.4.3/debian/prerm +@@ -0,0 +1,6 @@ ++#!/bin/sh -e ++# $Id: prerm,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++update-inetd --disable bootp ++ ++#DEBHELPER# diff --git a/source/n/bootp/bootptab b/source/n/bootp/bootptab new file mode 100644 index 000000000..3c309939e --- /dev/null +++ b/source/n/bootp/bootptab @@ -0,0 +1,40 @@ +# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + +# Blank lines and lines beginning with '#' are ignored. +# +# Legend: (see bootptab.5) +# first field -- hostname (not indented) +# bf -- bootfile +# bs -- bootfile size in 512-octet blocks +# cs -- cookie servers +# df -- dump file name +# dn -- domain name +# ds -- domain name servers +# ef -- extension file +# gw -- gateways +# ha -- hardware address +# hd -- home directory for bootfiles +# hn -- host name set for client +# ht -- hardware type +# im -- impress servers +# ip -- host IP address +# lg -- log servers +# lp -- LPR servers +# ns -- IEN-116 name servers +# ra -- reply address +# rl -- resource location protocol servers +# rp -- root path +# sa -- boot server address +# sm -- subnet mask +# sw -- swap server +# tc -- template host (points to similar host entry) +# td -- TFTP directory +# to -- time offset (seconds) +# ts -- time servers +# vm -- vendor magic number +# Tn -- generic option tag n +# +# Be careful about including backslashes where they're needed. Weird (bad) +# things can happen when a backslash is omitted where one is intended. +# Also, note that generic option data must be either a string or a +# sequence of bytes where each byte is a two-digit hex value. diff --git a/source/n/bootp/slack-desc b/source/n/bootp/slack-desc new file mode 100644 index 000000000..bc837a349 --- /dev/null +++ b/source/n/bootp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bootp: bootp (BOOTP server) +bootp: +bootp: This is an enhanced version of the CMU BOOTP server which was derived +bootp: from the original BOOTP server created by Bill Croft at Stanford. +bootp: BOOTP allows a network administrator to setup networking information +bootp: for clients via an /etc/bootptab on a server so that the clients can +bootp: automatically get their networking information. +bootp: +bootp: +bootp: +bootp: diff --git a/source/n/bridge-utils/bridge-utils.SlackBuild b/source/n/bridge-utils/bridge-utils.SlackBuild new file mode 100755 index 000000000..0772a887a --- /dev/null +++ b/source/n/bridge-utils/bridge-utils.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bridge-utils + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bridge-utils-$VERSION +tar xzf $CWD/bridge-utils-$VERSION.tar.gz || exit 1 +cd bridge-utils-$VERSION || exit 1 + +zcat $CWD/bridge-utils.isbridge.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This is bad form, but what can you do... +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/sbin +mv $PKG/usr/sbin/brctl $PKG/sbin/brctl +( cd $PKG/usr/sbin ; ln -sf ../../sbin/brctl brctl ) +strip --strip-unneeded $PKG/sbin/brctl +rmdir $PKG/usr/sbin + +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libbridge.a + +gzip -9 $PKG/usr/man/man8/*.8 + +mkdir -p $PKG/usr/doc/bridge-utils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog README THANKS TODO \ + doc \ + $PKG/usr/doc/bridge-utils-$VERSION +( cd $PKG/usr/doc/bridge-utils-$VERSION/doc + rm -f Makefile Makefile.in RPM-GPG-KEY brctl.8 +) + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bridge-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bridge-utils/bridge-utils.isbridge.diff b/source/n/bridge-utils/bridge-utils.isbridge.diff new file mode 100644 index 000000000..b40e48796 --- /dev/null +++ b/source/n/bridge-utils/bridge-utils.isbridge.diff @@ -0,0 +1,12 @@ +--- ./libbridge/libbridge_init.c.orig 2008-01-08 17:20:35.000000000 +0100 ++++ ./libbridge/libbridge_init.c 2008-10-23 06:59:58.000000000 +0200 +@@ -49,6 +49,9 @@ + char path[SYSFS_PATH_MAX]; + struct stat st; + ++ if(entry->d_name[0] == '.') ++ return 0; ++ + snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name); + return stat(path, &st) == 0 && S_ISDIR(st.st_mode); + } diff --git a/source/n/bridge-utils/slack-desc b/source/n/bridge-utils/slack-desc new file mode 100644 index 000000000..266b6ce77 --- /dev/null +++ b/source/n/bridge-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bridge-utils: bridge-utils (network Ethernet bridging utilities) +bridge-utils: +bridge-utils: This package contains utilities for configuring Linux Ethernet +bridge-utils: bridges. The Linux Ethernet bridge can be used for connecting +bridge-utils: multiple Ethernet devices together. The connecting is fully +bridge-utils: transparent. Hosts connected to one Ethernet device see hosts +bridge-utils: connected through a bridge to the other Ethernet devices directly. +bridge-utils: +bridge-utils: bridge-utils was written by Stephen Hemminger and Lennert Buytenhek. +bridge-utils: +bridge-utils: diff --git a/source/n/bsd-finger/bsd-finger-0.17.diff b/source/n/bsd-finger/bsd-finger-0.17.diff new file mode 100644 index 000000000..c9eff6e66 --- /dev/null +++ b/source/n/bsd-finger/bsd-finger-0.17.diff @@ -0,0 +1,20 @@ +--- ./finger/finger.h.orig Sun Feb 25 17:18:59 2001 ++++ ./finger/finger.h Sun Feb 25 17:19:12 2001 +@@ -39,6 +39,7 @@ + + #include <pwd.h> + #include <utmp.h> ++#include <time.h> + + /* + * All unique persons are linked in a list headed by "head" and linkd +--- ./fingerd/fingerd.c.orig Sun Feb 25 17:21:14 2001 ++++ ./fingerd/fingerd.c Sun Feb 25 17:21:29 2001 +@@ -55,6 +55,7 @@ + #include <netinet/in.h> + #include <sys/utsname.h> + #include <sys/wait.h> ++#include <sys/socket.h> + + #include "pathnames.h" + #include "../version.h" diff --git a/source/n/bsd-finger/bsd-finger.SlackBuild b/source/n/bsd-finger/bsd-finger.SlackBuild new file mode 100755 index 000000000..214470278 --- /dev/null +++ b/source/n/bsd-finger/bsd-finger.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bsd-finger + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/bsd-finger-$VERSION.tar.gz || exit 1 +cd bsd-finger-$VERSION || exit 1 +chown -R root:root . +zcat $CWD/bsd-finger-0.17.diff.gz | patch -p1 || exit +./configure --prefix=/usr +make || exit 1 +cd finger +strip finger +mkdir -p $PKG/usr/bin +cat finger > $PKG/usr/bin/finger +chmod 755 $PKG/usr/bin/finger +mkdir -p $PKG/usr/man/man{1,8} +cat finger.1 | gzip -9c > $PKG/usr/man/man1/finger.1.gz +cd ../fingerd +strip fingerd +mkdir -p $PKG/usr/sbin +cat fingerd > $PKG/usr/sbin/in.fingerd +chmod 755 $PKG/usr/sbin/in.fingerd +cat fingerd.8 | gzip -9c > $PKG/usr/man/man8/in.fingerd.8.gz +cd .. + +mkdir -p $PKG/usr/doc/bsd-finger-$VERSION +cp -a README $PKG/usr/doc/bsd-finger-$VERSION +chown root:root $PKG/usr/doc/bsd-finger-$VERSION/* +chmod 644 $PKG/usr/doc/bsd-finger-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bsd-finger-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bsd-finger/slack-desc b/source/n/bsd-finger/slack-desc new file mode 100644 index 000000000..d3b9ea63a --- /dev/null +++ b/source/n/bsd-finger/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bsd-finger: bsd-finger (user information lookup program) +bsd-finger: +bsd-finger: The finger displays information about the system users. Finger +bsd-finger: displays the user's login name, real name, terminal name and write +bsd-finger: status (as a ``*'' after the terminal name if write permission is +bsd-finger: denied), idle time, login time, office location and office phone +bsd-finger: number. +bsd-finger: +bsd-finger: As fingerd leaks semi-private information about your machine's +bsd-finger: usernames and other data, fingerd should be used with caution. +bsd-finger: Allow machines on a need-to-know basis. + diff --git a/source/n/crda/crda.SlackBuild b/source/n/crda/crda.SlackBuild new file mode 100755 index 000000000..b055ab520 --- /dev/null +++ b/source/n/crda/crda.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2009 Robby Workman, Northport, AL, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + + +VERSION=${VERSION:-1.0.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +REGDBVERS=git_20090222 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-crda + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# First, we need to install the wireless regulatory bin +cd $TMP +tar xvf $CWD/wireless-regdb-$REGDBVERS.tar.bz2 || exit 1 +cd wireless-regdb-$REGDBVERS || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# If this isn't installed on the system, crda will not build: +mkdir -p /usr/lib/crda +cat regulatory.bin > /usr/lib/crda/regulatory.bin + +mkdir -p $PKG/usr/lib/crda $PKG/usr/man/man5 $PKG/usr/doc/crda-$VERSION/regdb +cat regulatory.bin > $PKG/usr/lib/crda/regulatory.bin +gzip -9c regulatory.bin.5 > $PKG/usr/man/man5/regulatory.bin.5.gz +cp -a LICENSE README db.txt $PKG/usr/doc/crda-$VERSION/regdb + +# Now we'll do crda itself +cd $TMP +rm -rf crda-$VERSION +tar xvf $CWD/crda-$VERSION.tar.?z* || exit 1 +cd crda-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +make CFLAGS="$SLKCFLAGS" MANDIR=/usr/man || exit 1 +make install MANDIR=/usr/man DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Manpages are already compressed + +mkdir -p $PKG/usr/doc/crda-$VERSION +cp -a \ + LICENSE README \ + $PKG/usr/doc/crda-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/crda-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/crda/get_regdb.sh b/source/n/crda/get_regdb.sh new file mode 100644 index 000000000..05a2e93bc --- /dev/null +++ b/source/n/crda/get_regdb.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +_DATE="$(date +%Y%m%d)" + +rm -rf wireless-regdb-git_${_DATE} wireless-regdb-git_${_DATE}.tar.bz2 + +git clone \ + git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git \ + wireless-regdb-git_${_DATE} + +chown -R root:root wireless-regdb-${_DATE} +tar cjf wireless-regdb-git_${_DATE}.tar.bz2 wireless-regdb-git_${_DATE} +rm -rf wireless-regdb-git_${_DATE} + diff --git a/source/n/crda/slack-desc b/source/n/crda/slack-desc new file mode 100644 index 000000000..d6c211275 --- /dev/null +++ b/source/n/crda/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +crda: crda (Central Regulatory Domain Agent) +crda: +crda: This is the Central Regulatory Domain Agent for Linux. +crda: It serves one purpose: tell the Linux kernel what to enforce. +crda: In essence, it is a udev helper for communication between +crda: the kernel and userspace. +crda: +crda: You only need to run this manually for debugging purposes. +crda: +crda: http://wireless.kernel.org/download/crda/ +crda: diff --git a/source/n/curl/cacert.pem b/source/n/curl/cacert.pem new file mode 100644 index 000000000..2feb1e8a2 --- /dev/null +++ b/source/n/curl/cacert.pem @@ -0,0 +1,3154 @@ +## +## cacert.pem-foo -- Bundle of CA Root Certificates +## +## Converted at: Thu Mar 26 21:23:06 2009 UTC +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## '/mozilla/security/nss/lib/ckfw/builtins/certdata.txt' +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1994-2000 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.51 $ $Date: 2009/01/15 22:35:15 $ + +Verisign/RSA Secure Server CA +============================= +-----BEGIN CERTIFICATE----- +MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +IDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVow +XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQL +EyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA +A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1Xp +sSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJ +VCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw4jrg7HFG +mhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2 +qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA== +-----END CERTIFICATE----- + +GTE CyberTrust Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAw +WhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9u +MRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH +6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswk +wB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEP +I2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG4 +1tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY +-----END CERTIFICATE----- + +GTE CyberTrust Global Root +========================== +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG +A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz +MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL +Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 +IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u +sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql +HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID +AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW +M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF +NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +Thawte Personal Basic CA +======================== +-----BEGIN CERTIFICATE----- +MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMY +VGhhd3RlIFBlcnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0 +aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpB +MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhh +d3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x +ITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZcGVyc29u +YWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+C +FeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJ +l+A1OFdKwPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY +0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAt4plrsD16 +iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7c8a914phXAPjLSeoF+CEhULcXpvG +t7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN +92NWod8isQ== +-----END CERTIFICATE----- + +Thawte Personal Premium CA +========================== +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMa +VGhhd3RlIFBlcnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1p +dW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQG +EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT +EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz +aW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3DQEJARYb +cGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ +Ztn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ +8/JE2dWIEt12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicR +FTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB +AGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIHb4Vnjt4rueIXsDqg8A6iAJrf8xQV +brvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+W +jS9Q2wfD6h+rM+D1KzGJ +-----END CERTIFICATE----- + +Thawte Personal Freemail CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMb +VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVl +bWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNV +BAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE +ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJ +ARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC +gYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6W +ZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgk +CGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF +AAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjPMPuoSpaKH2JCI4wXD/S6ZJwXrEcp +352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK +/qarigd1iwzdUYRr5PjRzneigQ== +-----END CERTIFICATE----- + +Thawte Server CA +================ +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE +AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j +b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u +c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG +A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 +ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl +/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 +1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J +GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ +GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +Thawte Premium Server CA +======================== +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE +AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl +ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT +AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU +VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ +cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 +aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh +Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ +qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm +SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf +8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t +UCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +ABAecom (sub., Am. Bankers Assn.) Root CA +========================================= +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAwgYkxCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3RvbjEXMBUGA1UEChMOQUJBLkVD +T00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWlu +QGRpZ3NpZ3RydXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYD +VQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5F +Q09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1p +bkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVD +BwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1j +Vv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNf +WiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtx +A6k4ShZsiSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94 +Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQgwDQYJKoZI +hvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0kqS8Kfv2kRLD4VAe9G52dyntQJHsR +W0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJh +koHWG9YA8A6eKHegTYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm +/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/ +O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q= +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 1 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy +MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE +NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i +o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq +kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 +RbyhkwS7hp86W0N6w4pl +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 3 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy +MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD +VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS +xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi +up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 +mPnHfxsb1gYgAlihw6ID +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 2 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBS +b290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4 +NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLGJrbn +pT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZ +PdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGA +vqPYUrBEzUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5y +P4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn7pTKBBMFYgZw +I7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAojeyP2n714Z5 +VEkxlTMr89EJFEliYIalsBHiUMIdBlc+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2 +vAd5ZWRzfdd5ynvVWlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX +8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q +gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2kYtdo+o56T9II +2pPc8JIRetDccpMMc5NihWjQ9A== +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 4 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBS +b290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2 +MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANx18IzA +dZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva +3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9 +kVySVGkl5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP +17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCvbK4iNC7Va26D +unm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtTYOXeFhKFoR +ZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT +4EOvkTvRyyzYdFQ6HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV +6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q +10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK +1GSYsyapMMj9puyrliGtf8J4tg== +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTla +MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg +MSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw +0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7 +NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf +7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnx +giJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0A +NACY89FxlA== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAy +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6 +Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/ +S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIobK/o5wXTX +XtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUY +YAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2 +lw0Xd8rY +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA +TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah +WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf +Tqj/ZA1k +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd +k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq +WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM +XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC +lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx +nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC +wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA +ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK +1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk +LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO +FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 +lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT +1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD +Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4 +xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDH +qGKB3FtKqsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGIL4LcY/oCRaxF +WdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0ycyfYaT5DdPauxYma51N86Xv2S/PB +ZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRPT8qAkbYp +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +ValiCert Class 1 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy +MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi +GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm +DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG +lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX +icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP +Orf1LXLI +-----END CERTIFICATE----- + +ValiCert Class 2 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC +CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf +ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ +SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV +UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 +W9ViH0Pd +-----END CERTIFICATE----- + +RSA Root Certificate 1 +====================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td +3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H +BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs +3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF +V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r +on+jjBXu +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E +bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ +rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+ +Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB +FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N +y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 +ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h +a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc +D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y +azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug +b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ +BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y +aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6 +tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7 +C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS +0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs +Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0 +JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf +0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU +sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx +JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j +GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Secure Server CA +============================ +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg +cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl +ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG +A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi +eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p +dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ +aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 +gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw +ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw +CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l +dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw +NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow +HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA +BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN +Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 +n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +Entrust.net Secure Personal CA +============================== +-----BEGIN CERTIFICATE----- +MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8v +Q1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1 +c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJV +UzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRf +Q0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5 +OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdv +kHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGp +OZ5V+Pux5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTm +T173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkwggEVMIHkoIHh +oIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3 +dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBs +aWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50 +cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg +KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNVHRAEJDAigA8x +OTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU +xPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1Ud +EwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K +8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6h +URzzwy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYG +JqibGapEPHayXOw= +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC +AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER +gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B +AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS +o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z +2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX +OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Equifax Secure Global eBusiness CA +================================== +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx +HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds +b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV +PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN +qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn +hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs +MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN +I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY +NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 1 +============================= +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB +LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE +ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz +IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ +1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a +IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk +MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW +Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF +AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 +lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ +KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 2 +============================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE +ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y +MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT +DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn +2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 +BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx +JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e +uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 +jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia +78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm +V+GRMOrN +-----END CERTIFICATE----- + +Visa International Global Root 2 +================================ +-----BEGIN CERTIFICATE----- +MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMxDTALBgNVBAoT +BFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIw +EAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYD +VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZp +Y2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW +73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1 +t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm7Igbthkn +GziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhl +V7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYE +FJ59SzS/ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0G +CSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdpNSYx/scuhMKZ +YdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQkIqUs38oW26sTTMs7WXcFsziza6k +PWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOe +yti12HvOdUVmB/RtLdh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8 +ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G +-----END CERTIFICATE----- + +beTRUSTed Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJXVzESMBAGA1UE +ChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBDQXMxGjAYBgNVBAMTEWJlVFJV +U1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMC +V1cxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYD +VQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0 +c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgz +eubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCg +c0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNn +mrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5 +c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8w +ggFZBgNVHSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFS +ZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFu +Y2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv +ZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJl +IGZvdW5kIGF0IGJlVFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t +L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0 +L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQxCzAJBgNVBAYT +AldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3e +KjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR ++csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/b +ow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ +1gMe1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWu +GVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpGEK5BV2Vs +PyMQPyEQWbfkQN0mDCP2qq4= +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Verisign Time Stamping Authority CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZl +cmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWdu +IFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UE +ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV +BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSww +KgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhj +zCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6o +v8uQjI11S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEA +MEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl +cmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC52ZXJpc2lnbi5jb20v +cGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRw +Oi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2 +DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea +w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU58dzq6wf7iWb +wBbtt8pb8BQ= +-----END CERTIFICATE----- + +Thawte Time Stamping CA +======================= +-----BEGIN CERTIFICATE----- +MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG +A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg +Q0EwHhcNOTcwMTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd +MBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBp +bmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+o +J9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9 +nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCo +uqoEiYbC9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCe +d/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJSdM= +-----END CERTIFICATE----- + +Entrust.net Global Secure Server CA +=================================== +-----BEGIN CERTIFICATE----- +MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGluY29ycC4gYnkgcmVmLiAobGlt +aXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE +AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0w +MDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0G +A1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh +Yi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRy +dXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3 +DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55l +xyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439P +mrkDQYC2dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEB +BAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0VudHJ1c3QubmV0 +MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0 +cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMT +MUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV +BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD +VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr +47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w +AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbv +H9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3 +a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw== +-----END CERTIFICATE----- + +Entrust.net Global Secure Personal CA +===================================== +-----BEGIN CERTIFICATE----- +MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcx +NjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQl +hK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKkl +Wb1m9fkn5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNV +HR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3 +d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUw +IwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5l +dCBDbGllbnQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAM +BgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQF +AAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xK +p9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQ +Gof4T4HHdguEOnKdzmVml64mXg== +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8 +hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkG +IBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93 +f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQI +fHNlIAqhBC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNj +MGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+XxIwHwYDVR0j +BBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA +A4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u +0FIy2VkyvNp5ctZ7CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf +WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX +n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoWH1iCC+GWaQVL +juyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8 +TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWsi4SVqBax +7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17n +OirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2w +TPDaRrbqJS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rS +AG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxmlJ85per5n0/xQ +pCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFhEVsVS6kkUfykXPcXnbDS+gfpj1bk +GoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuW +CpTehTacyH+BCQJJKg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex +MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7 ++z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI +5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcC +tQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ +68W/ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3 +p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5O8t1wswv +ziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD062KRffaJ00psUjf5BHklka9 +bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4o +GKQWDzH9OmwjkyB24f0HhdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2 +uBOLZ8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg= +-----END CERTIFICATE----- + +beTRUSTed Root CA-Baltimore Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Et +QmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ ++2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8Co +Cd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9fHBOB1Bir +lNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNe +DsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOC +Ah4wggIaMA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJ +KIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNlIG9mIHRoaXMg +Q2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVudCBhbmQgYWNjZXB0YW5jZSBvZiB0 +aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwg +dGhlIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0 +eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl +LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDBB +BggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2lu +ZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR +3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6s +vfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyX +EHu67RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfq +jjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5dUX2xZ/2j +vTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py05yc493EG931t3GzUwWJBtDL +SoDByFOQtTwxiBdQn8nEDovYqAJjDQ== +-----END CERTIFICATE----- + +beTRUSTed Root CA - Entrust Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Eg +LSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1ow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0c +S12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE7 +0mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkbhepxKYhB +MvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1i +JAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOC +AwUwggMBMIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYB +BQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNyZWF0 +ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9u +IFByYWN0aWNlIFN0YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj +aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0 +cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUFBwIBFjZodHRw +czovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZI +AYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEb +MBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAt +IEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0 +MTEwODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44 +iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNVHRMEBTAD +AQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAKrgX +zh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevd +kObRVlTa4y0MnxEylCIBevZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/ +T220Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2kXgCl +zMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYhxKlkqu9FNtEaZnz4 +6TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w== +-----END CERTIFICATE----- + +beTRUSTed Root CA - RSA Implementation +====================================== +-----BEGIN CERTIFICATE----- +MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBiMRIwEAYDVQQK +EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMmYmVUUlVT +VGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEy +MTEwNzI1WjBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB +czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRuj +brWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTu +lh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xs +N+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQh +hlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMB +AAGjggIYMIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAAD +CSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNf +c2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIBOhqCATZSZWxpYW5jZSBvbiBvciB1 +c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2Nl +cHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv +bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS +ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNU +ZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9p +bmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAd +BgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTB +mMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05 +pmuKmET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqN +Wz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNMm2+fG8oe +qqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8ymmFei74pnykkiFY5LKjSq5YD +WtRIn7lAhAuYaPsBQ9Yb4gmxlxw= +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +RSA Security 1024 v3 +==================== +-----BEGIN CERTIFICATE----- +MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAy +MjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV +3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4m +mdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1Blq +FikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAf +BgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUM +X96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBD +leMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNu +mU4/iXgDmMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +UTN-USER First-Network Applications +=================================== +-----BEGIN CERTIFICATE----- +MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp +BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5 +WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T +YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB +cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug +mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj +DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu +Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi +P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE +j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w +HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j +cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G +CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y +IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK +RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp +xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq +DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE +-----END CERTIFICATE----- + +America Online Root Certification Authority 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG +v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z +DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh +sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP +8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z +o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf +GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF +VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft +3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g +Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +America Online Root Certification Authority 2 +============================================= +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en +fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 +f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO +qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN +RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 +gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn +6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid +FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 +Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj +B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op +aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY +T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p ++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg +JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy +zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO +ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh +1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf +GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff +Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP +cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 2 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAyIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLs +qh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5N +u6hLVxa8/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBAIRS+yjf +/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ2 +9ELw+HkuCkhcq8xRT3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac +ASZ4smZHcFFk +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 3 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAzIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN +2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+7 +7uMMfTDWw1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBABY9xs3B +u4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm +5gZOngylerpuw3yCGdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS +CdS7kjXvD9s0 +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +IPS Chained CAs root +==================== +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEy +MjcwMDUzNThaMIIBHDELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJ +QmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwu +MSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMTMwMQYDVQQLEypJ +UFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBD +QSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBz +QG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQgvJhPUOtopKdJ +C7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCBhYEFcYGdtJUZqV92NC5jNzVXjrQf +Qj8VXOF6wV8TGDIxya2+o8eDZh65nAQTy2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQID +AQABo4IEQzCCBD8wHQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC +AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQGEwJFUzESMBAGA1UE +CBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBw +dWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4g +IEItNjA5Mjk0NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNV +HQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF +BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGC +NwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1Ud +EgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZp +Y2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8v +d3d3Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYtaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5l +cy9pcHMyMDAyL3JlbmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz +LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYoaHR0cDovL3d3dy5p +cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCgLoYsaHR0cDovL3d3d2JhY2suaXBzLmVz +L2lwczIwMDIvaXBzMjAwMkNBQy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hAK+/b +lkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3JagvPsd4+cSACczAsDAK1M9 +2GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjMWb2f2/YHogF/JsRj9SVCXmK9 +-----END CERTIFICATE----- + +IPS CLASE1 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5BlmvXSHU0lq4 +oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBSYmL9Yzt9fuzuOOpi9GyocY3h6YvJ +P8a1zZRCb92CRTzo3wno7wpVqVZHYUxJZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBTrsxl588GlHKzcuh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb +adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTEuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UxLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1urxUq2 +ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTGKbqz3Bzosq/SLmJbGqmO +DszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9UkE6tsSU= +-----END CERTIFICATE----- + +IPS CLASE3 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49NzjaY2uQARIwo +2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY8jjsbJ0gA8DvqqPGZARRLXgNo9Ko +OtYkTOmWehisEyMiG3zoMRGzXwmqMHBxRiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBS4k/8uy9wsjqLnev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj +mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTMuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UzLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc4gYt +fibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1/7/5p6/ksc7C0YBCJwUE +NPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkOE7LFRVA= +-----END CERTIFICATE----- + +IPS CLASEA1 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMy +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2mdd81u4D/u6zJf +X5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4WwdByOgF9H5fahGRpEiqLJpxq339fWU +oTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUZyaW56G/2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47 +3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTEuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINmyq0e +B81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV7Oi+xNtff6j5YzHIa5bi +KcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N41lUH5Y85UN4HI3LmvSAUS7SG +-----END CERTIFICATE----- + +IPS CLASEA3 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUw +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uGBiJ2MwwSbUhW +YdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHUVqLyjRGZ/fZ98cfEXgIqmuJKtROK +AP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUHp9XUEe2YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8 +2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTMuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB/MjD +81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF8bpqxmdRSmlPa/59Cy9S +KcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/RU4s4OjNtckUFQzjB4ObJnXv +-----END CERTIFICATE----- + +IPS Servidores root +=================== +-----BEGIN CERTIFICATE----- +MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJD +RUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYG +A1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3 +DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1owgaMx +CzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcG +A1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQD +Ew5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3PqHILVik +gDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU3c0jt4BT18g3RXIGJBK6E2Eh +im51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzhPvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +ACzzw3lYJN7GO9HgQmm47mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2 +/iU94aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58GNCr+Lh3B0Zx +8coLY1xq+XKU1QFPoNtC +-----END CERTIFICATE----- + +IPS Timestamping root +===================== +-----BEGIN CERTIFICATE----- +MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1 +MTIyNzAxMTAxOFowggEeMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQH +EwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu +bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxNDAyBgNVBAsT +K0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQ +UyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEW +D2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLjuVqWajOY2ycJi +oGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4Efdo/BdApWgnMjvEp+ZCccWZ73b/ +K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0Gm +qaMCAwEAAaOCBIAwggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC +AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkGA1UEBhMCRVMxEjAQ +BgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu +ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5J +LkYuICBCLTYwOTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB +/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG +CCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK +KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVz +MBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5n +IENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC +BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFodHRwOi8vd3d3 +Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMEUGCWCGSAGG+EIBAwQ4FjZo +dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJ +YIZIAYb4QgEHBDUWM2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu +Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lU +aW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAzhjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMy +MDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMv +aXBzMjAwMi9pcHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUH +MAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEAZbrBzAAalZHK6Ww6vzoe +FAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWhasl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWT +s/zif/WN87GphV+I3pGW7hdbrqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU= +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 1 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw +NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88 +7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9 +EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl +0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645 +2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa +HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT +iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9 +28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV +yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR +vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P +qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z +IRlXvVWa +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +TDC Internet Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE +ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx +NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu +ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j +xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL +znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc +5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 +otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI +AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM +VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM +MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC +AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe +UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G +CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m +gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ +2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb +O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU +Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l +-----END CERTIFICATE----- + +TDC OCES Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE +ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5 +MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH +nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0 +zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV +iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde +dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO +3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB +5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k +ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm +cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp +Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x +LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM +MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm +aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy +MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647 ++RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6 +NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4 +A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc +A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9 +AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1 +AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw== +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Email Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0 +BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05 +OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx +FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx +ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz +dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx +B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8 +om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG +TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl +yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE +AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV +HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll +bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH +AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne +xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+ +5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV +NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ +w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +UTN USERFirst Object Root CA +============================ +-----BEGIN CERTIFICATE----- +MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb +BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz +NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx +HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy +dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR +loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ +w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu +lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7 +RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL +BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8 +ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly +c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw +DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw +NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO +PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE +qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG +hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g= +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Qualified (Class QA) Root +================================= +-----BEGIN CERTIFICATE----- +MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn +eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0 +bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0 +LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0 +dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP +aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV +CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e +8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb +m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ +0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM +0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2 +YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh +biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p +a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz +YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg +YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg +ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov +L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr +Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0 +aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg +YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0 +IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3 +DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN +wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg +W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc +R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR +5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +NetLock Business (Class B) Root +=============================== +-----BEGIN CERTIFICATE----- +MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg +VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD +VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv +bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg +VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S +o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr +1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ +RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh +dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 +ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv +c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg +YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh +c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz +Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA +bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl +IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 +YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj +cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM +43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR +stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI +-----END CERTIFICATE----- + +NetLock Express (Class C) Root +============================== +-----BEGIN CERTIFICATE----- +MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD +KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ +BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j +ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z +W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 +euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw +DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN +RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn +YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB +IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i +aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 +ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs +ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo +dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y +emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k +IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ +UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg +YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 +xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW +gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Ltd. +============= +-----BEGIN CERTIFICATE----- +MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT +BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsT +EUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEhMB8GCSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0OFoX +DTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJc3JhZWwxDjAMBgNVBAcT +BUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVw +LjEpMCcGA1UEAxMgRnJlZSBTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0B +CQEWEmFkbWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7YRgACOe +yEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufMOlDIOmKdw6OsWXuO7lUaHEe+ +o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRMGOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2 +IhULpNYILzUCAwEAAaOCAjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1Ud +DgQWBBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+MtUNjIExtpid +jShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWls +YXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw +JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS +YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0Y29tLm9yZzAdBgNV +HRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZIAYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIB +DQQiFiBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0 +cDovL2NlcnQuc3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6Ly9j +ZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9y +Zy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0BAQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhB +OlP1ct8nV0t2hPdopP7rPwl+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6w +NnQt8M2YI3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjnfg== +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Firmaprofesional Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT +GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp +Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA +ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL +MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT +OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 +ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V +j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH +lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf +3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 +NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww +KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG +AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD +ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq +u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf +wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm +7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG +VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= +-----END CERTIFICATE----- + +Wells Fargo Root CA +=================== +-----BEGIN CERTIFICATE----- +MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl +bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv +MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX +x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 +E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 +OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j +sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj +YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF +BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD +ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv +m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R +OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx +x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 +tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP +MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 +acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx +MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg +U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB +TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC +aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX +yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i +Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ +8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 +W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME +BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 +sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE +q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy +B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY +nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Platinum CA - G2 +========================== +-----BEGIN CERTIFICATE----- +MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw +HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM +U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu +669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF +eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne +WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo +j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6 +8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T +aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy +domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D ++m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV +CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv +zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW +IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1 +Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3 +NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4 +U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8 +KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl +9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B +aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs +OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY +Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci +IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +DigiNotar Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG +EwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEgMB4G +CSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwHhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgx +OTIxWjBfMQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90 +YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B8cp86Yxq +7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXYtsMW2YiwsYcdcNqGtA8U +i3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIlHgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8 +ZkqQfioLBQftFl9VkHXYRskbg+IIvvEjzJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEq +bYRAhU52mXyC8/O3AlnUJgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4 +iHomGgVMktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXva5pk +XuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57pK6kwe6AYHw4YC+Vb +qdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMipuih2TkGl/VujQKQjBR7P4DNG5y6 +xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovTyD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHc +BmfFlHqabWJMfczgZICynkeOowIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC +jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXyfJ9oHbtdzno5 +wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBoY6pFITlIYXg23PFDk9Qlx/KA +ZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHoM/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedT +FLJgQT2EkTFoPSdE2+Xe9PpjRchMPpj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKf +yvBovWsdst+Nbwed2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoA +ZbwH/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQlnQ7KN+ZQ +/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jEO1hZibCMjFCz2IbLaKPE +CudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU9jQZjHkJNsphFyUXC4KYcwx3dMPVDceo +EkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +MD5 Collisions Forged Rogue CA 25c3 +=================================== +-----BEGIN CERTIFICATE----- +MIIEMjCCA5ugAwIBAgIBQjANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTA0MDczMTAwMDAwMVoXDTA0MDkwMjAwMDAwMVowPDE6MDgGA1UEAxMxTUQ1 +IENvbGxpc2lvbnMgSW5jLiAoaHR0cDovL3d3dy5waHJlZWRvbS5vcmcvbWQ1KTCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAuqZZySwo1iqw+O2fRqSkN+4OGWhZ0bMDmVHWFppeN2sV4A5L9YRk ++KPbQW811ZsVH9vEOFJwgZdej6C193458DKsHq1E0rP6SMPOkZvs9Jx84Vr1yDdrmoPe58oglzFC +cxWRaPSIr/koKMXpD3OwF0sTTJl10ETmfghsGvJPG0ECAwEAAaOCAiQwggIgMAsGA1UdDwQEAwIB +xjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSnBGAfq3JDCMV/CJBVVhzWzuY46zAfBgNVHSME +GDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDCCAb4GCWCGSAGG+EIBDQSCAa8WggGrMwAAACdeOeCJ +YQ9Oo8VFCza7AdFTqsMIj2/4Tz6Hh0QR3GDg35JV+bhzG1STxZ/QRsRgtjVizbmvHKhpGslbPJY3 +wO1n77v+wIucUC8pvYMino4I+qwTcKJYf2JiihH3ifbftmdZcxb7YxaKtJE4zi71tr5MpJRJ5GUR +CkIVycEw4mnVRX2lJru5YexiZPA54ee8aNhQUZ4dYNPRo6cK+AMgoXABF5E2TwJwMYaD3fcP2Acd +EbMTBKXc8K5QsSgOY2kqDIJvj0cz32yiBpLxT0W+2TA2oyuM1neuNWN/Tkyak0g22Z8CAwEAAaOB +vTCBujAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0OBBYEFM2mg/qlYDf3ljcXKd5BePGHiVXnMDsGA1Ud +HwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuZ2VvdHJ1c3QuY29tL2NybHMvZ2xvYmFsY2ExLmNybDAf +BgNVHSMEGDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB +BQUHAwIwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQCnIQKN0Q6igHcl/UNgFY/s75BH +1IRCFSYRHM3CPBApqbbfq1d1kdrlK7OQRRwwY1Y/itlQ+u1YbMBlrGZX3hzGdjv1AA6ORc5/TJDs +K8bNs7SPYtD+t8UmckTt9phbrsvRlfXaCL5oRrF1yOwdjx56lPGqU3iiRa5U6tGedMh2Zw== +-----END CERTIFICATE----- diff --git a/source/n/curl/curl.SlackBuild b/source/n/curl/curl.SlackBuild new file mode 100755 index 000000000..5775024a6 --- /dev/null +++ b/source/n/curl/curl.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=7.19.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-curl + +# Uncomment to build a no-SSL version: +#SSLOPT=--without-ssl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf curl-$VERSION +tar xvf $CWD/curl-$VERSION.tar.bz2 || exit 1 +cd curl-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-ca-bundle=/usr/share/curl/ca-bundle.crt \ + $SSLOPT + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/share/curl +cp -a $CWD/cacert.pem.bz2 $PKG/usr/share/curl +( cd $PKG/usr/share/curl + bzip2 -d cacert.pem.bz2 + mv cacert.pem ca-bundle.crt + chown root:root ca-bundle.crt + chmod 644 ca-bundle.crt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libcurl.a + +mkdir -p $PKG/usr/doc/curl-$VERSION +cp -a \ + CHANGES COPYING README UPGRADE \ + $PKG/usr/doc/curl-$VERSION +( cd docs + rm -rf Makefile* curl-config.1 curl-config.html curl.1 curl.html libcurl + cp -a \ + BUGS CONTRIBUTE FAQ FEATURES INSTALL INTERNALS MANUAL README.win32 RESOURCES THANKS TODO examples \ + $PKG/usr/doc/curl-$VERSION ) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/curl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/curl/slack-desc b/source/n/curl/slack-desc new file mode 100644 index 000000000..0fe5c532c --- /dev/null +++ b/source/n/curl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +curl: curl (command line URL data transfer tool) +curl: +curl: Curl is a command line tool for transferring data specified with URL +curl: syntax. The command is designed to work without user interaction or +curl: any kind of interactivity. Curl offers a busload of useful tricks +curl: like proxy support, user authentication, ftp upload, HTTP post, SSL +curl: (https:) connections, cookies, file transfer resume and more. +curl: +curl: libcurl is a library that Curl uses to do its job. It is readily +curl: available to be used by your software, too. +curl: diff --git a/source/n/cyrus-sasl/cyrus-sasl.SlackBuild b/source/n/cyrus-sasl/cyrus-sasl.SlackBuild new file mode 100755 index 000000000..c4aebb481 --- /dev/null +++ b/source/n/cyrus-sasl/cyrus-sasl.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.1.23 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cyrus-sasl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf cyrus-sasl-$VERSION +tar xvf $CWD/cyrus-sasl-$VERSION.tar.?z* +cd cyrus-sasl-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-plugindir=/usr/lib${LIBDIRSUFFIX}/sasl2 \ + --with-configdir=/etc/sasl2 \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-login \ + --disable-anon \ + --without-ldap \ + --with-saslauthd \ + --with-gdbm \ + --with-dblib=gdbm +# How stupid that I need to specify 'sasldir' again for 'make' or else you get +# the warning "Plugins are being installed into /usr/lib/sasl2, but the library +# will look for them in /usr/lib64/sasl2" and advised to create a symlink... +make sasldir=/usr/lib${LIBDIRSUFFIX}/sasl2 +make sasldir=/usr/lib${LIBDIRSUFFIX}/sasl2 install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/var/state/saslauthd +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.saslauthd.gz > $PKG/etc/rc.d/rc.saslauthd.new +# Fix sloppy man page installation: +rm -r $PKG/usr/man/cat8 +cat saslauthd/saslauthd.mdoc > $PKG/usr/man/man8/saslauthd.8 +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/cyrus-sasl-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README.andrew \ + doc \ + $PKG/usr/doc/cyrus-sasl-$VERSION +find $PKG/usr/doc/cyrus-sasl-$VERSION -type f -exec chmod 644 {} \; +rm -f $PKG/usr/doc/cyrus-sasl-$VERSION/doc/*Makefile* +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/cyrus-sasl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/cyrus-sasl/doinst.sh b/source/n/cyrus-sasl/doinst.sh new file mode 100644 index 000000000..a2c1b471f --- /dev/null +++ b/source/n/cyrus-sasl/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.saslauthd.new diff --git a/source/n/cyrus-sasl/rc.saslauthd b/source/n/cyrus-sasl/rc.saslauthd new file mode 100644 index 000000000..8b69a710c --- /dev/null +++ b/source/n/cyrus-sasl/rc.saslauthd @@ -0,0 +1,45 @@ +#!/bin/sh +# rc.saslauthd: start/stop/restart saslauthd +# +# saslauthd is a daemon process that handles plaintext authentication +# requests on behalf of the SASL library. The CMU Cyrus SASL library +# is a general purpose authentication library for sever and client +# applications. It is mostly used to authenticate to mail servers. +# +# saslauthd should be started from the system boot scripts when going +# to multi-user mode. When running against a protected authentication +# database (e.g. the shadow mechanism), it must be run as the superuser. +# + +saslauthd_start() { + # If saslauthd is not running, start it: + if [ ! -r /var/state/saslauthd/saslauthd.pid ]; then + # Use shadow authentication by default on Slackware: + echo "Starting SASL authentication daemon: /usr/sbin/saslauthd -a shadow" + /usr/sbin/saslauthd -a shadow + fi +} + +saslauthd_stop() { + kill `cat /var/state/saslauthd/saslauthd.pid 2> /dev/null` 2> /dev/null + sleep 1 +} + +saslauthd_restart() { + saslauthd_stop + saslauthd_start +} + +case "$1" in +'start') + saslauthd_start + ;; +'stop') + saslauthd_stop + ;; +'restart') + saslauthd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/cyrus-sasl/slack-desc b/source/n/cyrus-sasl/slack-desc new file mode 100644 index 000000000..f437c6a67 --- /dev/null +++ b/source/n/cyrus-sasl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cyrus-sasl: cyrus-sasl (Simple Authentication and Security Layer) +cyrus-sasl: +cyrus-sasl: This is the Cyrus SASL library. Cyrus SASL is used by mail programs +cyrus-sasl: on the client or server side to provide authentication and +cyrus-sasl: authorization services. See RFC 2222 for more information. +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: diff --git a/source/n/dhcp/dhcp.SlackBuild b/source/n/dhcp/dhcp.SlackBuild new file mode 100755 index 000000000..10c211ce2 --- /dev/null +++ b/source/n/dhcp/dhcp.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=3.1.2p1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcp + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dhcp-$VERSION +tar xvf $CWD/dhcp-$VERSION.tar.gz || exit 1 +cd dhcp-$VERSION || exit 1 + +./configure +make DEBUG="$SLKCFLAGS" || exit 1 +make DEBUG="$SLKCFLAGS" install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/var/state/dhcp +rm -f $PKG/var/state/dhcp/dhcpd.leases +touch $PKG/var/state/dhcp/dhcpd.leases.new + +rm -rf $PKG/usr/local + +mkdir -p $PKG/usr/doc/dhcp-$VERSION +cp -a \ + LICENSE README RELNOTES \ + $PKG/usr/doc/dhcp-$VERSION +mkdir -p $PKG/usr/doc/dhcp-$VERSION/examples +cp -a client/dhclient.conf server/dhcpd.conf \ + $PKG/usr/doc/dhcp-$VERSION/examples +chown -R root:root $PKG/usr/doc/dhcp-$VERSION + +cat << EOF > $PKG/etc/dhcpd.conf.new +# dhcpd.conf +# +# Configuration file for ISC dhcpd (see 'man dhcpd.conf') +# +EOF + +cat << EOF > $PKG/etc/dhclient.conf.new +# dhclient.conf +# +# Configuration file for ISC dhclient (see 'man dhclient.conf') +# +EOF + +cat client/scripts/linux > $PKG/sbin/dhclient-script +chmod 700 $PKG/sbin/dhclient-script + +gzip -9 $PKG/usr/man/man?/* +find $PKG/usr/man -type f -exec chmod 644 {} \; + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/dhcpd.conf.new +config etc/dhclient.conf.new +config var/state/dhcp/dhcpd.leases.new +rm -f var/state/dhcp/dhcpd.leases.new +EOF + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcp-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/dhcp-$VERSION + rm -rf $PKG +fi diff --git a/source/n/dhcp/slack-desc b/source/n/dhcp/slack-desc new file mode 100644 index 000000000..f586e4e1b --- /dev/null +++ b/source/n/dhcp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcp: dhcp (DHCP server and client utilities) +dhcp: +dhcp: This package provides the ISC's DHCP utilities, including both a +dhcp: server and client. The DHCP protocol allows a host to contact a +dhcp: central server which maintains a list of IP addresses which may be +dhcp: assigned on one or more subnets. A DHCP client may request an +dhcp: address from this pool, and then use it temporarily for communication +dhcp: on the network. The DHCP protocol also provides a mechanism whereby +dhcp: a client can learn important details about the network to which it is +dhcp: attached, such as the location of a default router or name server. +dhcp: diff --git a/source/n/dhcpcd/COPYRIGHT b/source/n/dhcpcd/COPYRIGHT new file mode 100644 index 000000000..07d9e683b --- /dev/null +++ b/source/n/dhcpcd/COPYRIGHT @@ -0,0 +1,26 @@ +/* + * dhcpcd - DHCP client daemon + * Copyright 2006-2008 Roy Marples <roy@marples.name> + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ diff --git a/source/n/dhcpcd/dhcpcd.SlackBuild b/source/n/dhcpcd/dhcpcd.SlackBuild new file mode 100755 index 000000000..409118746 --- /dev/null +++ b/source/n/dhcpcd/dhcpcd.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-3.2.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcpcd + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dhcpcd-$VERSION +tar xvf $CWD/dhcpcd-$VERSION.tar.bz2 || exit 1 +cd dhcpcd-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This changes the default locations where *.pid and other files are +# written - instead of various locations, use /etc/dhcpc +# The latter directory was long traditional, and (more importantly) +# you can't be sure that /var is mounted yet when dhcpcd is invoked. +zcat $CWD/patches/config.h.diff.gz | patch -p1 || exit 1 + +# Fixup the sample dhcpcd.sh script to reflect our changes +zcat $CWD/patches/dhcpcd.sh.diff.gz | patch -p1 || exit 1 + +# Fix a typo in the manpage +zcat $CWD/patches/dhcpcd.8.in.diff.gz | patch -p1 || exit 1 + +# Disable zeroconf support +# I'm not sure if this is necessary, to be honest. If we do this though, +# I think we'll want to edit the man page to remove references to it. +#sed -i 's%#define ENABLE_IPV4LL%#undef ENABLE_IPV4LL%' config.h + +# Fix segfaulting on x86_64. Apparently i?86 is more forgiving +#zcat $CWD/dhcpcd.vararg.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ + make INFODIR=/etc/dhcpc || exit 1 + +# We'll install this manually, as the only thing "make install" actually +# installs is the executable and the man page, and the man page goes to +# the wrong place :-) +mkdir -p $PKG/sbin +cp -a dhcpcd $PKG/sbin + +mkdir -p $PKG/usr/man/man8 +gzip -9c dhcpcd.8 > $PKG/usr/man/man8/dhcpcd.8.gz + +# This script (or its equivalent) has been installed non-executable for +# several dhcpcd releases leading me to believe this is intentional on the +# part of the developers. Indeed, the script is called a "sample" in the +# included comments, and there's been at least one security issue related +# to its use in the past, so it's probably a safer bet to not install it so +# that it works "out of the box". However, making it non-executable is not +# the best solution for this as it leads to error messages in the system +# logs which I hear about from time to time. Instead, we'll make it +# executable, but will give it a suffix of -sample so that dhcpcd won't +# attempt to run it unless the admin specifically configure it to do so. +# As far as I can tell it does nothing more than add some extra verbosity +# to the logs anyway, and rc.inet1 already does that. There's really no +# need that I can see to enable the script. +mkdir -p $PKG/etc/dhcpc +cp -a dhcpcd.sh $PKG/etc/dhcpc/dhcpcd.sh-sample +chmod 755 $PKG/etc/dhcpc/dhcpcd.sh-sample + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/dhcpcd-$VERSION +cp -a README $PKG/usr/doc/dhcpcd-$VERSION +zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/dhcpcd-$VERSION/COPYRIGHT + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcpcd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dhcpcd/dhcpcd.vararg.diff b/source/n/dhcpcd/dhcpcd.vararg.diff new file mode 100644 index 000000000..b3ac81ca5 --- /dev/null +++ b/source/n/dhcpcd/dhcpcd.vararg.diff @@ -0,0 +1,30 @@ +--- dhcpcd-2.0.8.orig/src/logger.c 2008-11-07 00:10:23.000000000 +0000 ++++ dhcpcd-2.0.8/src/logger.c 2008-11-07 00:13:46.000000000 +0000 +@@ -46,21 +46,25 @@ + { + va_list p; + va_list p2; ++ va_list p3; + FILE *f = stderr; + + va_start(p, fmt); + va_copy(p2, p); ++ va_copy(p3, p); + /* The default to send debug to stderr is just WAY too much console noise, IMHO */ + if(!Daemonized && strcmp(syslog_level_msg[level],"Info")) { + f = stdout; + /* fprintf(f, "%s, ", syslog_level_msg[level]); */ + vfprintf(f, fmt, p); + fputc('\n', f); +- vsyslog(level, fmt, p); ++ vsyslog(level, fmt, p2); + } + if ( level <= LogLevel ) +- vsyslog(level, fmt, p2); ++ vsyslog(level, fmt, p3); + va_end(p); ++ va_end(p2); ++ va_end(p3); + } + + // vim: set ts=4 : diff --git a/source/n/dhcpcd/patches/config.h.diff b/source/n/dhcpcd/patches/config.h.diff new file mode 100644 index 000000000..7bdefb600 --- /dev/null +++ b/source/n/dhcpcd/patches/config.h.diff @@ -0,0 +1,17 @@ +diff -Nur dhcpcd-3.2.3.orig/config.h dhcpcd-3.2.3/config.h +--- dhcpcd-3.2.3.orig/config.h 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/config.h 2009-03-06 14:55:01.998436374 -0600 +@@ -71,10 +71,10 @@ + + #define OPENNTPFILE ETCDIR "/ntpd.conf" + +-#define DEFAULT_SCRIPT ETCDIR "/" PACKAGE ".sh" ++#define DEFAULT_SCRIPT INFODIR "/" PACKAGE ".sh" + +-#define STATEDIR "/var" +-#define PIDFILE STATEDIR "/run/" PACKAGE "-%s.pid" ++#define STATEDIR INFODIR ++#define PIDFILE INFODIR "/" PACKAGE "-%s.pid" + + #ifndef INFODIR + # define INFODIR "/var/lib/dhcpcd" diff --git a/source/n/dhcpcd/patches/dhcpcd.8.in.diff b/source/n/dhcpcd/patches/dhcpcd.8.in.diff new file mode 100644 index 000000000..7486c769a --- /dev/null +++ b/source/n/dhcpcd/patches/dhcpcd.8.in.diff @@ -0,0 +1,12 @@ +diff -Nur dhcpcd-3.2.3.orig/dhcpcd.8.in dhcpcd-3.2.3/dhcpcd.8.in +--- dhcpcd-3.2.3.orig/dhcpcd.8.in 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/dhcpcd.8.in 2009-03-06 19:36:02.207109931 -0600 +@@ -117,7 +117,7 @@ + up, down or new depending on the state of + .Nm . + .Nm +-ignores the exist code of the script. ++ignores the exit code of the script. + .Ss Fine tuning + You can fine tune the behaviour of + .Nm diff --git a/source/n/dhcpcd/patches/dhcpcd.sh.diff b/source/n/dhcpcd/patches/dhcpcd.sh.diff new file mode 100644 index 000000000..290665a98 --- /dev/null +++ b/source/n/dhcpcd/patches/dhcpcd.sh.diff @@ -0,0 +1,17 @@ +--- a/dhcpcd.sh 2009-03-06 19:22:41.247171672 -0600 ++++ b/dhcpcd.sh 2009-03-06 19:24:19.186014526 -0600 +@@ -1,10 +1,10 @@ + #!/bin/sh + # +-# This is a sample /etc/dhcpcd.sh script. +-# /etc/dhcpcd.sh script is executed by dhcpcd daemon ++# This is a sample /etc/dhcpc/dhcpcd.sh script. ++# /etc/dhcpc/dhcpcd.sh script is executed by dhcpcd daemon + # any time it configures or shuts down interface. +-# The following parameters are passed to dhcpcd.exe script: +-# $1 = HostInfoFilePath, e.g "/var/lib/dhcpcd/dhcpcd-eth0.info" ++# The following parameters are passed to the dhcpcd.sh script: ++# $1 = HostInfoFilePath, e.g "/etc/dhcpc/dhcpcd-eth0.info" + # $2 = "up" if interface has been configured with the same + # IP address as before reboot; + # $2 = "down" if interface has been shut down; diff --git a/source/n/dhcpcd/slack-desc b/source/n/dhcpcd/slack-desc new file mode 100644 index 000000000..04859d7cb --- /dev/null +++ b/source/n/dhcpcd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcpcd: dhcpcd (DHCP client daemon) +dhcpcd: +dhcpcd: The DHCP client program dhcpcd is used to connect to a network by +dhcpcd: contacting a DHCP server. dhcpcd gets an IP address and other +dhcpcd: information from a corresponding DHCP server, configures the network +dhcpcd: interface automatically, and tries to renew the lease time according +dhcpcd: to RFC2131 or RFC1541 depending on the command line option. +dhcpcd: +dhcpcd: +dhcpcd: +dhcpcd: diff --git a/source/n/dirmngr/dirmngr.SlackBuild b/source/n/dirmngr/dirmngr.SlackBuild new file mode 100755 index 000000000..d893aeb3d --- /dev/null +++ b/source/n/dirmngr/dirmngr.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=dirmngr +VERSION=1.0.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-static=no \ + --enable-shared=yes \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dirmngr/slack-desc b/source/n/dirmngr/slack-desc new file mode 100644 index 000000000..f0473c7be --- /dev/null +++ b/source/n/dirmngr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dirmngr: CRL (Certificate Revocation Lists Manager) +dirmngr: +dirmngr: Dirmngr is a server for managing and downloading certificate +dirmngr: revocation lists (CRLs) for X.509 certificates and for downloading +dirmngr: the certificates themselves. Dirmngr also handles OCSP requests as +dirmngr: an alternative to CRLs. Dirmngr is either invoked internally by +dirmngr: gpgsm (from gnupg 2.x) or when running as a system daemon through +dirmngr: the dirmngr-client tool. +dirmngr: +dirmngr: +dirmngr: diff --git a/source/n/dnsmasq/dnsmasq.SlackBuild b/source/n/dnsmasq/dnsmasq.SlackBuild new file mode 100755 index 000000000..170cfab47 --- /dev/null +++ b/source/n/dnsmasq/dnsmasq.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=2.49 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dnsmasq + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dnsmasq-$VERSION +tar xvf $CWD/dnsmasq-$VERSION.tar.bz2 || exit 1 +cd dnsmasq-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/dnsmasq.leasedir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +make $NUMJOBS all-i18n PREFIX=/usr MANDIR=/usr/man || exit 1 +make install-i18n PREFIX=/usr DESTDIR=$PKG MANDIR=/usr/man || exit 1 +chmod 0755 $PKG/usr/sbin/dnsmasq + +mkdir -p $PKG/etc/dnsmasq.d + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/var/state/dnsmasq + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/etc +cat dnsmasq.conf.example > $PKG/etc/dnsmasq.conf.new +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.dnsmasq.gz > $PKG/etc/rc.d/rc.dnsmasq.new + +mkdir -p $PKG/usr/doc/dnsmasq-$VERSION +cp -a \ + CHANGELOG COPYING FAQ doc.html setup.html \ + $PKG/usr/doc/dnsmasq-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dnsmasq-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dnsmasq/dnsmasq.leasedir.diff b/source/n/dnsmasq/dnsmasq.leasedir.diff new file mode 100644 index 000000000..d0a4dafd7 --- /dev/null +++ b/source/n/dnsmasq/dnsmasq.leasedir.diff @@ -0,0 +1,22 @@ +--- ./src/config.h.orig 2009-02-05 06:14:24.000000000 -0600 ++++ ./src/config.h 2009-02-19 17:51:07.000000000 -0600 +@@ -45,7 +45,7 @@ + # elif defined(__sun__) || defined (__sun) + # define LEASEFILE "/var/cache/dnsmasq.leases" + # else +-# define LEASEFILE "/var/lib/misc/dnsmasq.leases" ++# define LEASEFILE "/var/state/dnsmasq/dnsmasq.leases" + # endif + #endif + +--- ./dnsmasq.conf.example.orig 2009-01-03 14:28:51.000000000 -0600 ++++ ./dnsmasq.conf.example 2009-02-19 17:50:29.000000000 -0600 +@@ -381,7 +381,7 @@ + # The DHCP server needs somewhere on disk to keep its lease database. + # This defaults to a sane location, but if you want to change it, use + # the line below. +-#dhcp-leasefile=/var/lib/misc/dnsmasq.leases ++#dhcp-leasefile=/var/state/dnsmasq/dnsmasq.leases + + # Set the DHCP server to authoritative mode. In this mode it will barge in + # and take over the lease for any client which broadcasts on the network, diff --git a/source/n/dnsmasq/doinst.sh b/source/n/dnsmasq/doinst.sh new file mode 100644 index 000000000..5a1ca426a --- /dev/null +++ b/source/n/dnsmasq/doinst.sh @@ -0,0 +1,16 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/dnsmasq.conf.new +config etc/rc.d/rc.dnsmasq.new + +# This should be mostly useless... +rm -f etc/rc.d/rc.dnsmasq.new diff --git a/source/n/dnsmasq/rc.dnsmasq b/source/n/dnsmasq/rc.dnsmasq new file mode 100644 index 000000000..ce584cbd2 --- /dev/null +++ b/source/n/dnsmasq/rc.dnsmasq @@ -0,0 +1,36 @@ +#!/bin/sh +# Start/stop/restart dnsmasq (a small DNS/DHCP server): + +# Start dnsmasq: +dnsmasq_start() { + if [ -x /usr/sbin/dnsmasq ]; then + echo "Starting dnsmasq: /usr/sbin/dnsmasq" + /usr/sbin/dnsmasq + fi +} + +# Stop dnsmasq: +dnsmasq_stop() { + killall dnsmasq +} + +# Restart dnsmasq: +dnsmasq_restart() { + dnsmasq_stop + sleep 1 + dnsmasq_start +} + +case "$1" in +'start') + dnsmasq_start + ;; +'stop') + dnsmasq_stop + ;; +'restart') + dnsmasq_restart + ;; +*) + echo "usage rc.dnsmasq: start|stop|restart" +esac diff --git a/source/n/dnsmasq/slack-desc b/source/n/dnsmasq/slack-desc new file mode 100644 index 000000000..0a0c5770f --- /dev/null +++ b/source/n/dnsmasq/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dnsmasq: dnsmasq (small DNS and DHCP server) +dnsmasq: +dnsmasq: Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP +dnsmasq: server. It is designed to provide DNS (and optionally DHCP) to a +dnsmasq: small network, and can serve the names of local machines which are not +dnsmasq: in the global DNS. +dnsmasq: +dnsmasq: Dnsmasq was written by Simon Kelley. +dnsmasq: +dnsmasq: +dnsmasq: diff --git a/source/n/elm/config.sh b/source/n/elm/config.sh new file mode 100644 index 000000000..52bca7a95 --- /dev/null +++ b/source/n/elm/config.sh @@ -0,0 +1,285 @@ +#!/bin/sh +# config.sh +# This file was produced by running the Configure script. + +Log='$Log' +Header='$Header' +contains='grep' +cppstdin='/usr/bin/cpp' +cppminus='' +d_getopt='define' +d_memcpy='define' +d_mkdir='define' +d_rename='define' +d_symlink='define' +d_whoami='undef' +n='-n' +c='' +orderlib='false' +ranlib=':' +package='elm2.5' +pager='builtin+' +prefshell='/bin/bash' +startsh='#!/bin/sh' +d_eunice='undef' +define='define' +eunicefix=':' +build_dir='/tmp/elm2.5.8' +source_dir='/tmp/elm2.5.8' +loclist=' +cat +chgrp +chmod +cp +echo +expr +grep +ln +ls +mv +rm +sed +sleep +touch +tr +' +expr='/usr/bin/expr' +sed='/bin/sed' +echo='/bin/echo' +cat='/bin/cat' +rm='/bin/rm' +mv='/bin/mv' +cp='/bin/cp' +tail='' +tr='/usr/bin/tr' +mkdir='' +sort='' +uniq='' +grep='/bin/grep' +trylist=' +Mcc +compress +cpp +date +emacs +execmail +ispell +line +lint +lp +lpr +mips +more +nroff +pack +pg +pr +rmail +sendmail +shar +smail +submit +tar +tbl +test +troff +uname +uuname +vi +' +test='test' +inews='' +ispell='/usr/bin/ispell' +egrep='' +more='/bin/more' +pg='pg' +Mcc='Mcc' +vi='/usr/bin/vi' +mailx='' +mail='' +cpp='/usr/bin/cpp' +perl='' +emacs='/usr/bin/emacs' +ls='/bin/ls' +rmail='rmail' +sendmail='/usr/sbin/sendmail' +shar='/usr/bin/shar' +smail='smail' +submit='' +tbl='/usr/bin/tbl' +troff='/usr/bin/troff' +nroff='/usr/bin/nroff' +uname='/bin/uname' +uuname='uuname' +line='line' +chgrp='/bin/chgrp' +chmod='/bin/chmod' +lint='lint' +sleep='/bin/sleep' +pr='/usr/bin/pr' +tar='/bin/tar' +ln='/bin/ln' +lpr='/usr/bin/lpr' +lp='/usr/bin/lp' +touch='/bin/touch' +make='' +date='/bin/date' +csh='' +pmake='' +mips='false' +col='' +pack='pack' +bld='' +compress='compress' +execmail='' +libswanted='intl nls' +bin='/usr/bin' +installbin='/tmp/package-elm/usr/bin' +c_date='Thu Aug 18 09:29:11 EDT 2005' +d_ascii='undef' +d_broke_ctype='undef' +d_broke_fflush='undef' +d_calendar='define' +calendar='calendar' +d_chown_neg1='define' +d_content='define' +d_crypt='define' +cryptlib='/usr/lib/libcrypt.a' +d_cuserid='define' +d_disphost='undef' +d_domname='define' +d_usegetdom='undef' +d_errlst='undef' +d_flock='undef' +d_dotlock='define' +d_fcntlock='define' +lock_dir='/var/spool/uucp' +has_flock='undef' +has_fcntl='define' +d_fsync='undef' +d_ftruncate='define' +d_gethname='define' +d_douname='undef' +d_host_comp='undef' +ign_hname='n' +d_index='define' +d_internet='define' +d_ispell='define' +ispell_path='/usr/bin/ispell' +ispell_options='-x' +d_locale='define' +d_nl_types='define' +d_msgcat='define' +d_usenls='undef' +d_mboxedit='undef' +d_mime='define' +defcharset='iso-8859-1' +defdispcharset='iso-8859-1' +d_mmdf='undef' +d_newauto='define' +d_noaddfrom='define' +d_usedomain='undef' +d_noxheader='undef' +d_pidcheck='define' +d_ptem='undef' +d_putenv='define' +d_remlock='undef' +maxattempts='6' +d_setegid='define' +d_setgid='define' +d_savegrpmboxid='define' +mailermode='755' +d_sigvec='undef' +d_sigvectr='undef' +d_sigset='undef' +d_sighold='undef' +d_sigprocmask='define' +d_sigblock='undef' +d_sigaction='define' +d_statuschg='define' +d_strcspn='define' +d_strspn='define' +d_strpbrk='define' +d_strerror='define' +d_strftime='define' +d_strings='undef' +d_pwdinsys='undef' +strings='/usr/include/string.h' +includepath='' +d_strstr='define' +d_strtok='define' +d_subshell='define' +d_tempnam='define' +tempnamo='' +tempnamc='' +d_termio='undef' +d_termios='define' +d_useembed='define' +d_utimbuf='define' +d_vfork='define' +defbatsub='no subject (file transmission)' +defeditor='/usr/bin/vi' +editoropts='' +hostname='greasy' +phostname='' +mydomain='.example.net' +autohostname='define' +i_memory='define' +i_stdarg='define' +i_stdlib='define' +i_time='define' +i_systime='define' +d_systimekernel='undef' +i_unistd='define' +i_utime='define' +i_sysutime='undef' +lib='/var/lib/elm' +installlib='/tmp/package-elm/var/lib/elm' +libc='/usr/lib/libc.a' +linepr='/usr/bin/lpr' +maildir='/var/spool/mail' +mailer='/usr/sbin/sendmail' +mailgrp='mail' +mansrc='/tmp/package-elm/usr/man/man1' +catmansrc='none' +manext='.1' +manext_choice='.1' +catmanext='' +catmanext_choice='' +packed='' +manroff='' +manroffopts='' +suffix='' +packer='' +models='none' +split='' +small='' +medium='' +large='' +huge='' +optimize='-O' +ccflags='' +cppflags='' +ldflags='' +cc='cc' +libs='' +nametype='bsd' +d_passnames='define' +d_berknames='define' +d_usgnames='undef' +passcat='cat /etc/passwd' +rmttape='unknown-remote-tape-unit' +roff='/usr/bin/troff' +roffopts='' +sigtype='void' +spitshell='cat' +shsharp='true' +sharpbang='#!' +termlib='-lncurses' +tmpdir='/tmp' +tzname_handling='TM_ZONE' +xencf='' +xenlf='' +d_xenix='undef' +d_bsd='undef' +CONFIG=true diff --git a/source/n/elm/elm.SlackBuild b/source/n/elm/elm.SlackBuild new file mode 100755 index 000000000..8aabca000 --- /dev/null +++ b/source/n/elm/elm.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.5.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-elm + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf elm$VERSION +tar xvf $CWD/elm$VERSION.tar.bz2 || exit 1 +cd elm$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cat $CWD/config.sh | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#" > config.sh +mkdir -p $PKG/var/lib/elm \ + $PKG/usr/bin \ + $PKG/usr/man/man1 \ + $PKG/usr/doc/elm-$VERSION +sh ./Make.defs.SH +find . -depth -name 'Makefile.SH' -exec sh ./{} \; + +make || exit 1 +make install || exit 1 + +( cd $PKG/usr/bin ; rm -rf frm ) +( cd $PKG/usr/bin ; ln -sf nfrm frm ) +( cd $PKG/usr/bin ; rm -rf newmail ) +( cd $PKG/usr/bin ; ln -sf wnewmail newmail ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man/man1 ; mkdir tmp ; cp *.? tmp ; rm *.? ; mv tmp/* . ; rmdir tmp ) +gzip -9 $PKG/usr/man/man?/*.? + +cp -a \ + NOTICE Overview README doc/*.guid* doc/Elm.cover \ + $PKG/usr/doc/elm-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/elm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/elm/slack-desc b/source/n/elm/slack-desc new file mode 100644 index 000000000..042e7bd67 --- /dev/null +++ b/source/n/elm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +elm: elm (Menu-driven user mail program) +elm: +elm: Elm is an interactive screen-oriented mailer program originally +elm: written by Dave Taylor, and continued by the Elm Development Group. +elm: +elm: +elm: +elm: +elm: +elm: +elm: diff --git a/source/n/epic4/epic4.SlackBuild b/source/n/epic4/epic4.SlackBuild new file mode 100755 index 000000000..0143b6eb2 --- /dev/null +++ b/source/n/epic4/epic4.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.8 +HELPFILE=20070509 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-epic4 + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf epic4-$VERSION +tar xvf $CWD/epic4-$VERSION.tar.bz2 || exit 1 +cd epic4-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install IP=$PKG || exit 1 + +( cd $PKG/usr/share/epic + tar xvf $CWD/epic4-help-${HELPFILE}.tar.bz2 || exit 1 + chown -R root:root . +) || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/epic4-$VERSION +cp -a \ + BUG_FORM COPYRIGHT INSTALL KNOWNBUGS README* UPDATES VOTES doc \ + $PKG/usr/doc/epic4-$VERSION +rm -f $PKG/usr/doc/epic4-$VERSION/doc/*.1 + +gzip -9 $PKG/usr/man/man?/*.? + +# These extra directories are fixed in this release, but it +# doesn't hurt to leave this code just in case... +( cd $PKG && find . -name CVS -type d -exec rm -rf {} \; ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/epic4-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/epic4/slack-desc b/source/n/epic4/slack-desc new file mode 100644 index 000000000..c17b4b549 --- /dev/null +++ b/source/n/epic4/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +epic4: epic4 (Internet Relay Chat client) +epic4: +epic4: EPIC is the (E)nhanced (P)rogrammable (I)RC-II (C)lient. +epic4: +epic4: The EPIC home page is: http://www.epicsol.org/ +epic4: The EPIC main ftp site is: ftp://ftp.epicsol.org/ +epic4: The EPIC IRC channel is: #epic on EFNet +epic4: +epic4: +epic4: +epic4: diff --git a/source/n/ethtool/ethtool.SlackBuild b/source/n/ethtool/ethtool.SlackBuild new file mode 100755 index 000000000..e485e8d31 --- /dev/null +++ b/source/n/ethtool/ethtool.SlackBuild @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ethtool + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ethtool-$VERSION +tar xzf $CWD/ethtool-$VERSION.tar.gz || exit 1 +cd ethtool-$VERSION || exit 1 +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +make install DESTDIR=$PKG +strip $PKG/usr/sbin/ethtool +gzip -9 $PKG/usr/man/man8/ethtool.8 +mkdir -p $PKG/usr/doc/ethtool-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/ethtool-$VERSION +chmod 644 $PKG/usr/doc/ethtool-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ethtool-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ethtool/slack-desc b/source/n/ethtool/slack-desc new file mode 100644 index 000000000..92a7c7dac --- /dev/null +++ b/source/n/ethtool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ethtool: ethtool (a tool for examining and tuning a network interface) +ethtool: +ethtool: ethtool is a small utility for examining and tuning your Ethernet +ethtool: based network interface. For more details, see "man ethtool". +ethtool: +ethtool: ethtool was written by David Miller, with help from Jakub Jelinek, +ethtool: Jeff Garzik, Tim Hockin, Eli Kupermann, Chris Leech, Scott Feldman, +ethtool: and Andi Kleen. +ethtool: +ethtool: +ethtool: diff --git a/source/n/fetchmail/fetchmail.SlackBuild b/source/n/fetchmail/fetchmail.SlackBuild new file mode 100755 index 000000000..11145cc9e --- /dev/null +++ b/source/n/fetchmail/fetchmail.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=6.3.11 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-fetchmail + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fetchmail-$VERSION +tar xvf $CWD/fetchmail-$VERSION.tar.bz2 || exit 1 +cd fetchmail-$VERSION || exit 1 + +# this is the sloppiest source tarball ever +# [NOTE: *was*... the new maintainers are much better] +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --enable-nls \ + --with-ssl \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man/man1 + rm fetchmailconf.1 + gzip -9 * + ln -sf fetchmail.1.gz fetchmailconf.1.gz +) + +mkdir -p $PKG/usr/doc/fetchmail-$VERSION +cp -a \ + ABOUT-NLS COPYING* FAQ FEATURES INSTALL NEWS NOTES README* TODO \ + *.html contrib *.lsm \ + $PKG/usr/doc/fetchmail-$VERSION + +rm -rf $PKG/usr/doc/fetchmail-$VERSION/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/contrib/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/fetchmail-man.html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/fetchmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/fetchmail/slack-desc b/source/n/fetchmail/slack-desc new file mode 100644 index 000000000..7be0c1e4b --- /dev/null +++ b/source/n/fetchmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fetchmail: fetchmail (mail retrieval and forwarding utility) +fetchmail: +fetchmail: fetchmail is a mail retrieval and forwarding utility. It fetches +fetchmail: mail from a POP, IMAP, or ETRN-capable remote mailserver and forwards +fetchmail: it to your local (client) machine's delivery system. You can then +fetchmail: handle the retrieved mail using normal mail user agents such as elm, +fetchmail: pine, or mutt. The fetchmail utility can be run in a daemon mode to +fetchmail: repeatedly poll one or more systems at a specified interval. +fetchmail: +fetchmail: fetchmail is probably not secure. +fetchmail: diff --git a/source/n/getmail/getmail.SlackBuild b/source/n/getmail/getmail.SlackBuild new file mode 100755 index 000000000..14885943a --- /dev/null +++ b/source/n/getmail/getmail.SlackBuild @@ -0,0 +1,56 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=4.11.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-getmail +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf getmail-$VERSION +tar xvf $CWD/getmail-$VERSION.tar.gz || exit 1 +chown -R root:root getmail-$VERSION +cd getmail-$VERSION +python setup.py build +python setup.py install --root=$PKG + +( cd $PKG/usr/share + mv man .. + mv doc .. + cd .. + rmdir share +) + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/getmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/getmail/slack-desc b/source/n/getmail/slack-desc new file mode 100644 index 000000000..6c91db1cc --- /dev/null +++ b/source/n/getmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +getmail: getmail (POP3 mail retriever) +getmail: +getmail: getmail is a POP3 mail retriever, with support for both ordinary and +getmail: domain (or multidrop) POP3 mailboxes. It is written in Python, and +getmail: licensed under the GNU General Public License version 2. +getmail: +getmail: getmail was written by Charles Cazabon. +getmail: +getmail: +getmail: +getmail: diff --git a/source/n/gnupg/gnupg.SlackBuild b/source/n/gnupg/gnupg.SlackBuild new file mode 100755 index 000000000..9fab5b935 --- /dev/null +++ b/source/n/gnupg/gnupg.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.4.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.bz2 || exit 1 +cd gnupg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +gzip -9 $PKG/usr/man/*/* + +mkdir -p $PKG/usr/doc/gnupg-$VERSION +cp -a \ + ABOUT-NLS AUTHORS BUGS COPYING INSTALL NEWS PROJECTS README THANKS TODO VERSION \ + $PKG/usr/doc/gnupg-$VERSION +( cd $PKG/usr/doc/gnupg-$VERSION + ln -sf /usr/share/gnupg/FAQ . + ln -sf /usr/share/gnupg/faq.html . ) + +# Add slack-desc files: +mkdir -p $PKG/install +cat $CWD/slack-desc.gnupg > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnupg-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/gnupg-$VERSION + rm -rf $PKG +fi diff --git a/source/n/gnupg/slack-desc.gnupg b/source/n/gnupg/slack-desc.gnupg new file mode 100644 index 000000000..496005e9b --- /dev/null +++ b/source/n/gnupg/slack-desc.gnupg @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg: gnupg (The GNU Privacy Guard) +gnupg: +gnupg: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg: be used to encrypt data and to create digital signatures. It includes +gnupg: an advanced key management facility and is compliant with the proposed +gnupg: OpenPGP Internet standard as described in RFC2440. +gnupg: +gnupg: +gnupg: +gnupg: +gnupg: diff --git a/source/n/gnupg2/gnupg2.SlackBuild b/source/n/gnupg2/gnupg2.SlackBuild new file mode 100755 index 000000000..3f3b4ccf0 --- /dev/null +++ b/source/n/gnupg2/gnupg2.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PKGNAME=gnupg2 +VERSION=2.0.12 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.bz2 || exit 1 +cd gnupg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gnupg2-$VERSION \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/gnupg2-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO VERSION \ + $PKG/usr/doc/gnupg2-$VERSION +# Build html docs +( cd doc + make gnupg.html + mv gnupg.html $PKG/usr/doc/gnupg2-$VERSION/html +) +# Fix some filenames in the html directory +( cd $PKG/usr/doc/gnupg2-$VERSION/html +mv how_002dto_002dspecify_002da_002duser_002did.html howto_specify_user_id.html +mv GnuPG_002d1-and-GnuPG_002d2.html GnuPG_1-and-GnuPG_2.html +mv gpg_002dpreset_002dpassphrase.html gpg_preset_passphrase.html +mv gpgsm_002dgencert_002esh.html gpgsm_gencert_sh.html +mv Invoking-gpg_002dpreset_002dpassphrase.html Invoking-gpg_preset_passphrase.html +mv Invoking-gpg_002dconnect_002dagent.html Invoking-gpg_connect_agent.html +mv gpg_002dconnect_002dagent.html gpg_connect_agent.html +mv Agent-GET_005fCONFIRMATION.html Agent-GET_CONFIRMATION.html +mv option-_002d_002denable_002dssh_002dsupport.html option-enable_ssh_support.html +mv option-_002d_002doptions.html option-options.html +mv Invoking-GPG_002dAGENT.html Invoking-GPG_AGENT.html +mv gpg_002dzip.html gpg_zip.html +mv option-_002d_002dp12_002dcharset.html option-p12_charset.html +mv option-_002d_002dallow_002dmark_002dtrusted.html option-allow_mark_trusted.html +mv Controlling-gpg_002dconnect_002dagent.html Controlling-gpg_connect_agent.html +mv Agent-GET_005fPASSPHRASE.html Agent-GET_PASSPHRASE.html +mv option-_002d_002dhomedir.html option-homedir.html +mv PKCS_002315-Card.html PKCS-15-Card.html +) +# Move html doc to the proper location +mv $PKG/usr/doc/gnupg2-$VERSION/faq.html $PKG/usr/doc/gnupg2-$VERSION/html/ + + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gnupg2/slack-desc b/source/n/gnupg2/slack-desc new file mode 100644 index 000000000..c64d7fb67 --- /dev/null +++ b/source/n/gnupg2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg2: GnuPG2 (The GNU Privacy Guard version 2.x) +gnupg2: +gnupg2: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg2: be used to encrypt data and to create digital signatures. It includes +gnupg2: an advanced key management facility and is compliant with the proposed +gnupg2: OpenPGP Internet standard as described in RFC2440 and the S/MIME +gnupg2: standard as described by several RFCs. +gnupg2: +gnupg2: GnuPG 2.0 is the stable version of GnuPG integrating support for +gnupg2: OpenPGP and S/MIME. It does not conflict with an installed 1.4.x +gnupg2: OpenPGP-only version. diff --git a/source/n/gnutls/gnutls.SlackBuild b/source/n/gnutls/gnutls.SlackBuild new file mode 100755 index 000000000..0aea48b1c --- /dev/null +++ b/source/n/gnutls/gnutls.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PRGNAM=gnutls +VERSION=2.6.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf $PRGNAM-$VERSION +if [ -r $CWD/$PRGNAM-$VERSION.tar.gz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.bz2 ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.xz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.lzma ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi + + +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 *.info* +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n -p $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gnutls/slack-desc b/source/n/gnutls/slack-desc new file mode 100644 index 000000000..49fdb9f0c --- /dev/null +++ b/source/n/gnutls/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnutls: gnutls (GNU TLS library) +gnutls: +gnutls: This is a TLS (Transport Layer Security) 1.0 and SSL (Secure Sockets +gnutls: Layer) 3.0 implementation. In brief, GnuTLS can be described as a +gnutls: library which offers an API to access secure communication protocols. +gnutls: These protocols provide privacy over insecure lines, and were designed +gnutls: to prevent eavesdropping, tampering, or message forgery. +gnutls: +gnutls: Homepage: http://www.gnu.org/software/gnutls/ +gnutls: +gnutls: diff --git a/source/n/gpa/doinst.sh b/source/n/gpa/doinst.sh new file mode 100644 index 000000000..1b722006a --- /dev/null +++ b/source/n/gpa/doinst.sh @@ -0,0 +1,13 @@ +# [note after changing relative paths to absolute ones] +# +# Sorry, but things like this can't be done from the +# installer, or must be deferred until after everything +# is installed (i.e. scripted in /var/log/setup) + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database &> /dev/null +fi + +if [ -x /usr/bin/gtk-update-icon-cache ]; then + /gtk-update-icon-cache -f -t /usr/share/icons/hicolor &> /dev/null +fi diff --git a/source/n/gpa/gpa.SlackBuild b/source/n/gpa/gpa.SlackBuild new file mode 100755 index 000000000..e0e67e40e --- /dev/null +++ b/source/n/gpa/gpa.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2006-2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PRGNAM=gpa +VERSION=0.7.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL NEWS README* THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gpa/slack-desc b/source/n/gpa/slack-desc new file mode 100644 index 000000000..4ebd987ed --- /dev/null +++ b/source/n/gpa/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gpa: gpa (GNU Privacy Assistant) +gpa: +gpa: GPA is a graphical frontend for the GNU Privacy Guard (GnuPG, +gpa: http://www.gnupg.org). GPA can be used to encrypt, decrypt, and +gpa: sign files, to verify signatures and to manage the private and +gpa: public keys. +gpa: +gpa: +gpa: +gpa: +gpa: diff --git a/source/n/gpgme/gpgme.SlackBuild b/source/n/gpgme/gpgme.SlackBuild new file mode 100755 index 000000000..55afc5d74 --- /dev/null +++ b/source/n/gpgme/gpgme.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PRGNAM=gpgme +VERSION=1.1.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --docdir=/usr/doc/gpgme-$VERSION \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gpgme/slack-desc b/source/n/gpgme/slack-desc new file mode 100644 index 000000000..3436b08c9 --- /dev/null +++ b/source/n/gpgme/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gpgme: gpgme (GnuPG Made Easy) +gpgme: +gpgme: GPGME (GnuPG Made Easy) is a C language library that allows to add +gpgme: support for cryptography to a program. It is designed to make access +gpgme: to public key crypto engines like GnuPG or GpgSM easier for +gpgme: applications. GPGME provides a high-level crypto API for encryption, +gpgme: decryption, signing, signature verification and key management. +gpgme: +gpgme: GPGME uses GnuPG and GpgSM as its backends to support OpenPGP and the +gpgme: Cryptographic Message Syntax (CMS). +gpgme: diff --git a/source/n/htdig/doinst.sh b/source/n/htdig/doinst.sh new file mode 100644 index 000000000..1f730e076 --- /dev/null +++ b/source/n/htdig/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/htdig/htdig.conf.new + diff --git a/source/n/htdig/htdig-3.2.0b6.diff b/source/n/htdig/htdig-3.2.0b6.diff new file mode 100644 index 000000000..72e195ee9 --- /dev/null +++ b/source/n/htdig/htdig-3.2.0b6.diff @@ -0,0 +1,333 @@ +--- ./db/os_rw.c.orig 2004-01-12 06:48:24.000000000 -0600 ++++ ./db/os_rw.c 2007-04-07 17:29:44.000000000 -0500 +@@ -5,6 +5,14 @@ + * Sleepycat Software. All rights reserved. + */ + ++ ++#define _XOPEN_SOURCE 500 ++#include <sys/types.h> ++#include <unistd.h> ++#ifndef u_long ++typedef __u_long u_long; ++#endif ++ + #include "db_config.h" + + #ifndef lint +--- ./db/hash.c.orig 2004-06-11 11:44:35.000000000 -0500 ++++ ./db/hash.c 2007-04-07 17:29:44.000000000 -0500 +@@ -250,6 +250,11 @@ + hashp->h_hash = hcp->hdr->dbmeta.version < 5 + ? CDB___ham_func4 : CDB___ham_func5; + ++ /* Make sure we always have a valid hashp->h_hash function. */ ++ if (hashp->h_hash == NULL) ++ hashp->h_hash = hcp->hdr->dbmeta.version < 5 ++ ? CDB___ham_func4 : CDB___ham_func5; ++ + err2: /* Release the meta data page */ + if ((t_ret = CDB___ham_release_meta(dbc)) != 0 && ret == 0) + ret = t_ret; +--- ./htdig/Server.cc.orig 2004-05-28 08:15:16.000000000 -0500 ++++ ./htdig/Server.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -341,6 +341,8 @@ + { + String fullpatt = "^[^:]*://[^/]*("; + fullpatt << pattern << ')'; ++ if (pattern.length() == 0) ++ fullpatt = ""; + _disallow.set(fullpatt, config->Boolean("case_sensitive")); + } + } +--- ./htfuzzy/Regexp.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Regexp.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -73,16 +73,16 @@ + int wordCount = 0; + int maximumWords = config.Value("regex_max_words", 25); + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) +- { +- if (regexMatch.match(*key, 0, 0) != 0) +- { +- words.Add(new String(*key)); +- wordCount++; +- } +- } + if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) ++ { ++ if (regexMatch.match(*key, 0, 0) != 0) ++ { ++ words.Add(new String(*key)); ++ wordCount++; ++ } ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/Substring.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Substring.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -73,16 +73,16 @@ + int wordCount = 0; + int maximumWords = config.Value("substring_max_words", 25); + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) +- { +- if (match.FindFirst((char*)*key) >= 0) +- { +- words.Add(new String(*key)); +- wordCount++; +- } +- } + if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) ++ { ++ if (match.FindFirst((char*)*key) >= 0) ++ { ++ words.Add(new String(*key)); ++ wordCount++; ++ } ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/htfuzzy.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/htfuzzy.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -153,8 +153,9 @@ + String word, fuzzyKey; + int count = 0; + +- words->Start_Get(); +- while ((key = (String *) words->Get_Next())) ++ if (words) ++ words->Start_Get(); ++ while (words && (key = (String *) words->Get_Next())) + { + word = *key; + wordAlgorithms.Start_Get(); +@@ -185,8 +186,11 @@ + fuzzy->writeDB(); + } + worddb.Close(); +- words->Destroy(); +- delete words; ++ if (words) ++ { ++ words->Destroy(); ++ delete words; ++ } + if (fuzzy) + delete fuzzy; + } +--- ./htfuzzy/Prefix.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Prefix.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -99,9 +99,10 @@ + WordReference *word_ref; + String last_word; + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (word_ref = (WordReference *) wordList->Get_Next() )) +- { ++ if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (word_ref = (WordReference *) wordList->Get_Next() )) ++ { + s = word_ref->Key().GetWord(); + + // If we're somehow past the original word, we're done +@@ -115,8 +116,7 @@ + last_word = s; + words.Add(new String(s)); + wordCount++; +- } +- if (wordList) { ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/Fuzzy.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Fuzzy.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -61,7 +61,11 @@ + delete index; + index = 0; + } +- delete dict; ++ if (dict) ++ { ++ delete dict; ++ dict = 0; ++ } + } + + +@@ -154,8 +158,9 @@ + + int count = 0; + +- dict->Start_Get(); +- while ((fuzzyKey = dict->Get_Next())) ++ if (dict) ++ dict->Start_Get(); ++ while (dict && (fuzzyKey = dict->Get_Next())) + { + s = (String *) dict->Find(fuzzyKey); + index->Put(fuzzyKey, *s); +--- ./htsearch/Display.cc.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/Display.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -54,6 +54,7 @@ + + #include <math.h> + #include <float.h> ++#include <values.h> + + #if !defined(DBL_MAX) + # if defined (MAXDOUBLE) +--- ./htsearch/htsearch.cc.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/htsearch.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -211,8 +211,7 @@ + } + if (access((char*)configFile, R_OK) < 0) + { +- reportError(form("Unable to read configuration file '%s'", +- configFile.get())); ++ reportError("Unable to read configuration file"); + } + config->Read(configFile); + +--- ./htsearch/qtest.cc.orig 2004-05-28 08:15:25.000000000 -0500 ++++ ./htsearch/qtest.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -132,8 +132,7 @@ + + if (access((char*)configFile, R_OK) < 0) + { +- reportError(form("Unable to find configuration file '%s'", +- configFile.get())); ++ reportError("Unable to find configuration file"); + } + + config->Read(configFile); +--- ./htsearch/Collection.h.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/Collection.h 2007-04-07 17:29:45.000000000 -0500 +@@ -36,9 +36,9 @@ + const char *docExcerpt); + ~Collection(); + +- void Collection::Open(); ++ void Open(); + +- void Collection::Close(); ++ void Close(); + + char *getWordFile() { return wordFile.get(); } + DocumentRef *getDocumentRef(int id); +--- ./htword/WordDBPage.cc.orig 2004-05-28 08:15:26.000000000 -0500 ++++ ./htword/WordDBPage.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -82,7 +82,7 @@ + if(debuglevel>2)printf("TOTAL SIZE: %6d %8f\n",size,size/8.0); + // argh! compare failed somthing went wrong + // display the compress/decompress sequence and fail +- if(cmp || size>8*1024*1000000000) ++ if(cmp || size>8*1024) + { + if(size>8*1024) + { +--- ./installdir/rundig.orig 2007-04-07 17:29:45.000000000 -0500 ++++ ./installdir/rundig 2007-04-07 17:29:45.000000000 -0500 +@@ -14,6 +14,7 @@ + + # To help debug problems, try running rundig -vvv + # This will add lots of debugging output to all of the programs ++incremental=0 + stats= opts= alt= + while [ "$#" -gt 0 ] + do +@@ -24,6 +25,7 @@ + conffile="$1" + opts="$opts -c $conffile" + ;; ++ +i) incremental=1;; + *) opts="$opts $1" ;; # e.g. -v + esac + shift +@@ -53,7 +55,13 @@ + TMPDIR=$DBDIR + export TMPDIR + +-$BINDIR/htdig -i $opts $stats $alt ++if [ $incremental -ne 0 ] ++then ++ $BINDIR/htdig $opts $stats $alt ++else ++ $BINDIR/htdig -i $opts $stats $alt ++fi ++ + $BINDIR/htpurge $opts $alt + case "$alt" in + -a) +--- ./installdir/htdig.conf.orig 2004-02-08 04:19:33.000000000 -0600 ++++ ./installdir/htdig.conf 2007-04-07 17:29:44.000000000 -0500 +@@ -18,6 +18,18 @@ + database_dir: @DATABASE_DIR@ + + # ++# Define common_dir, which is used in several of the examples. ++# ++common_dir: /var/www/html/htdig ++ ++# ++# Disable the translation of the ISO Latin 1 SGML entities from the ++# documents into upper end 8-bit characters in the database, ++# and then back to the Latin 1 SGML entities in htsearch results. ++# ++translate_latin1: false ++ ++# + # This specifies the URL where the robot (htdig) will start. You can specify + # multiple URLs here. Just separate them by some whitespace. + # The example here will cause the ht://Dig homepage and related pages to be +@@ -25,7 +37,7 @@ + # You could also index all the URLs in a file like so: + # start_url: `${common_dir}/start.url` + # +-start_url: http://www.htdig.org/ ++start_url: http://localhost + + # + # This attribute limits the scope of the indexing process. The default is to +@@ -76,7 +88,7 @@ + # The string htdig will send in every request to identify the robot. Change + # this to your email address. + # +-maintainer: unconfigured@htdig.searchengine.maintainer ++maintainer: root@localhost + + # + # The excerpts that are displayed in long results rely on stored information +--- ./installdir/rundig.1.in.orig 2004-03-12 02:11:06.000000000 -0600 ++++ ./installdir/rundig.1.in 2007-04-07 17:29:46.000000000 -0500 +@@ -23,6 +23,9 @@ + .TP + .B \-c configfile + Use alternate config file. ++.TP ++.B \+i ++Use incremental digging instead non-incremental + .SH "SEE ALSO" + Please refer to the HTML pages (in the htdig-doc package) + .B /usr/share/doc/htdig-doc/html/index.html +--- ./configure.orig 2004-06-14 03:25:31.000000000 -0500 ++++ ./configure 2007-04-07 17:29:44.000000000 -0500 +@@ -28034,7 +28034,7 @@ + APACHE_REQUEST=`echo 1.3.1 | sed -e 's/\.//g'` + APACHE_REQUEST_MAJOR=`expr $APACHE_REQUEST : '\(..\)'` + APACHE_REQUEST_MINOR=`expr $APACHE_REQUEST : '..\(.*\)'` +- if test "$APACHE_MAJOR" -lt "$APACHE_REQUEST_MAJOR" -o "$APACHE_MINOR" -lt "$APACHE_REQUEST_MINOR" ; then ++ if test "$APACHE_MAJOR" -eq "APACHE_REQUEST_MAJOR" -a "$APACHE_MINOR" -lt "$APACHE_REQUEST_MINOR" -o "$APACHE_MAJOR" -lt "$APACHE_REQUEST_MAJOR" ; then + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: apache version is $APACHE_READABLE_VERSION" >&5 diff --git a/source/n/htdig/htdig.SlackBuild b/source/n/htdig/htdig.SlackBuild new file mode 100755 index 000000000..1451b4c29 --- /dev/null +++ b/source/n/htdig/htdig.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=htdig +VERSION=${VERSION:-3.2.0b6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Get htdig-beta working again with new gcc/glibc/kernel: +zcat $CWD/htdig-3.2.0b6.diff.gz | patch -p1 --verbose || exit 1 + +# Fix "common dir" location and add "synonym_dictionary" entry: +zcat $CWD/htdig.conf.diff.gz | patch -p1 --verbose || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib/htdig \ + --with-apache=/usr/sbin/httpd \ + --with-cgi-bin-dir=/var/www/cgi-bin \ + --with-config-dir=/etc/htdig \ + --with-common-dir=/var/www/htdocs/htdig \ + --with-database-dir=/var/lib/htdig \ + --with-default-config-file=/etc/htdig/htdig.conf \ + --with-image-dir=/var/www/htdocs/htdig \ + --with-search-dir=/var/www/htdocs/htdig \ + --with-ssl \ + --with-zlib=/usr \ + --mandir=/usr/man \ + --enable-bigfile \ + --enable-shared \ + --disable-static \ + --enable-tests \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/htdig/htdig.conf $PKG/etc/htdig/htdig.conf.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS CHANGES COPYING LICENSE README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/htdig/htdig.conf.diff b/source/n/htdig/htdig.conf.diff new file mode 100644 index 000000000..a80c707b8 --- /dev/null +++ b/source/n/htdig/htdig.conf.diff @@ -0,0 +1,16 @@ +--- ./installdir/htdig.conf.orig 2007-04-23 17:06:21.000000000 -0500 ++++ ./installdir/htdig.conf 2007-04-23 17:08:46.000000000 -0500 +@@ -20,7 +20,12 @@ + # + # Define common_dir, which is used in several of the examples. + # +-common_dir: /var/www/html/htdig ++common_dir: /var/www/htdocs/htdig ++ ++# ++# Define synonyms dictionary. ++# ++synonym_dictionary: /var/www/htdocs/htdig/synonyms + + # + # Disable the translation of the ISO Latin 1 SGML entities from the diff --git a/source/n/htdig/slack-desc b/source/n/htdig/slack-desc new file mode 100644 index 000000000..7436cf167 --- /dev/null +++ b/source/n/htdig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +htdig: htdig (web indexing and searching system) +htdig: +htdig: The ht://Dig system is a complete web indexing and searching system +htdig: for a small domain or intranet. This system is not indended to +htdig: replace the need for outside Internet search engines such as Google, +htdig: but rather to cover the search needs for a single company, campus, or +htdig: even a particular sub section of a web site. +htdig: +htdig: +htdig: +htdig: diff --git a/source/n/httpd/README b/source/n/httpd/README new file mode 100644 index 000000000..796bb29a9 --- /dev/null +++ b/source/n/httpd/README @@ -0,0 +1,34 @@ +WARNING + +This script builds a package that conflicts with apache1. Before +attempting to install this package, you should uninstall any of +these packages that you find on your system: + +apache +mod_ssl +php + +Really though, the only points of overlap are in /usr/sbin, so if you +leave your old packages in place apache2 will still work, but the +apache1 httpd will have been overwritten (along with other files) + +Apache is the most popular web server in the known universe; over half +the servers on the Internet are running Apache or one of its variants. + +By default, we build apache2 with the traditional "apache prefork" multi +processing module (MPM). This is somewhat safer for the use of mod_php, +but can still carry some security risks (all your php scripts run as the +user configured to run apache2). + +For enhanced multi-threaded performance, use "apache worker", but using +mod_php with "worker" is considered dangerous. PHP Core is multi-thread +safe, but many PHP extensions are *NOT*. To build apache2 with the +worker MPM, change the option to: --with-mpm=worker + +Please note that this script does not build apache2 with SuEXEC support. +The Apache group feels SuEXEC should not be part of a default install. +If you need this functionality, please read the following documentation +and make the necessary changes to the ./configure options in the script. + + http://httpd.apache.org/docs/2.0/suexec.html + diff --git a/source/n/httpd/config.layout.diff b/source/n/httpd/config.layout.diff new file mode 100644 index 000000000..c302515fe --- /dev/null +++ b/source/n/httpd/config.layout.diff @@ -0,0 +1,30 @@ +--- ./config.layout.orig 2004-11-21 12:50:36.000000000 -0600 ++++ ./config.layout 2007-05-23 13:35:20.000000000 -0500 +@@ -322,3 +322,27 @@ + installbuilddir: ${prefix}/etc/apache2/build + errordir: ${datadir}/error + </Layout> ++ ++# FHS layout ++<Layout Slackware-FHS> ++ prefix: /usr ++ exec_prefix: ${prefix} ++ bindir: ${prefix}/bin ++ sbindir: ${prefix}/sbin ++ libdir: ${prefix}/lib/httpd ++ libexecdir: ${prefix}/lib/httpd/modules ++ installbuilddir: ${prefix}/lib/httpd/build ++ mandir: ${prefix}/man ++ sysconfdir: /etc/httpd ++ datadir: /srv/httpd ++ iconsdir: ${datadir}/icons ++ htdocsdir: ${datadir}/htdocs ++ manualdir: ${htdocsdir}/manual ++ cgidir: ${datadir}/cgi-bin ++ errordir: ${datadir}/error ++ includedir: ${prefix}/include/httpd ++ localstatedir: /var ++ runtimedir: ${localstatedir}/run/httpd ++ logfiledir: ${localstatedir}/log/httpd ++ proxycachedir: ${localstatedir}/cache/httpd ++</Layout> diff --git a/source/n/httpd/doinst.sh b/source/n/httpd/doinst.sh new file mode 100644 index 000000000..49e5400d8 --- /dev/null +++ b/source/n/httpd/doinst.sh @@ -0,0 +1,52 @@ +#!/bin/sh +if [ ! -e var/log/httpd ]; then + mkdir -p var/log/httpd + chmod 755 var/log/httpd +fi + +# Don't wipe out an existing document root: +if [ ! -L srv/www -a -d srv/www ]; then + mv srv/www srv/www.bak.$$ +fi +if [ ! -L srv/httpd -a -d srv/httpd ]; then + mv srv/httpd srv/httpd.bak.$$ +fi + +# Once again, our intent is not to wipe out anyone's +# site, but building in Apache's docs tree is not as +# good an idea as picking a unique DocumentRoot. +# +# Still, we will do what we can here to mitigate +# possible site damage: +if [ -r var/www/htdocs/index.html ]; then + if [ ! -r "var/log/packages/httpd-*upgraded*" ]; then + if [ var/www/htdocs/index.html -nt var/log/packages/httpd-*-? ]; then + cp -a var/www/htdocs/index.html var/www/htdocs/index.html.bak.$$ + fi + fi +fi + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +# Keep same perms on rc.httpd.new: +if [ -e etc/rc.d/rc.httpd ]; then + cp -a etc/rc.d/rc.httpd etc/rc.d/rc.httpd.new.incoming + cat etc/rc.d/rc.httpd.new > etc/rc.d/rc.httpd.new.incoming + mv etc/rc.d/rc.httpd.new.incoming etc/rc.d/rc.httpd.new +fi +config etc/rc.d/rc.httpd.new +config etc/httpd/httpd.conf.new +config etc/logrotate.d/httpd.new +for conf_file in etc/httpd/extra/*.new; do + config $conf_file +done +config var/www/htdocs/index.html.new diff --git a/source/n/httpd/httpd.SlackBuild b/source/n/httpd/httpd.SlackBuild new file mode 100755 index 000000000..2cdce1d87 --- /dev/null +++ b/source/n/httpd/httpd.SlackBuild @@ -0,0 +1,204 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# This script was written using the one from slackbuilds.org as a reference, +# so thanks to Adis Nezirovic ( adis _at_ linux.org.ba ) for the original work. + + +PKGNAM=httpd +VERSION=${VERSION:-2.2.13} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# "prefork" is the default, safe, mpm type. If you *are not* using PHP, and you +# like to live on the bleeding edge, you may wish to change the --with-mpm option +# to "worker", which is the new way of doing things, but is multithreaded and +# many scripts (especially PHP ones) are not multithread safe. +# +# I'd leave this option the way is it on any production box that's keeping up +# with HTTP requests. No reason to chance it, IMHO. + +zcat $CWD/config.layout.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch --verbose -p1 || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-layout=Slackware-FHS \ + --with-mpm=prefork \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --enable-mods-shared=all \ + --enable-so \ + --enable-pie \ + --enable-cgi \ + --with-pcre \ + --enable-ssl \ + --enable-rewrite \ + --enable-vhost-alias \ + --enable-proxy \ + --enable-proxy-http \ + --enable-proxy-ftp \ + --enable-proxy-balancer \ + --enable-cache \ + --enable-mem-cache \ + --enable-file-cache \ + --enable-disk-cache \ + --disable-speling \ + --enable-dav \ + --enable-ldap \ + --enable-authnz-ldap \ + --enable-authn-anon \ + --enable-authn-alias \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rmdir $PKG/usr/bin + +# Tweak default apache configuration +( cd $PKG + zcat $CWD/httpd.nossldefault.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch -p1 --verbose || exit 1 + zcat $CWD/httpd.runasapache.diff.gz | patch -p1 --verbose || exit 1 + rm -f $PKG/etc/httpd/httpd.conf~ +) || exit 1 +# Change config files to .new: +( cd $PKG/etc/httpd + mv httpd.conf httpd.conf.new + for file in extra/*; do + mv $file "${file}.new" + done +) + +cat << EOF >> $PKG/etc/httpd/httpd.conf.new + +# Uncomment the following line to enable PHP: +# +#Include /etc/httpd/mod_php.conf + +# Uncomment the following lines to enable svn support: +# +#LoadModule dav_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_dav_svn.so +#LoadModule authz_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_authz_svn.so + +EOF + +rmdir $PKG/var/log/httpd + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.httpd > $PKG/etc/rc.d/rc.httpd.new + +mkdir -p $PKG/etc/logrotate.d +cat $CWD/logrotate.httpd > $PKG/etc/logrotate.d/httpd.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/ +cp -a \ + ABOUT_APACHE Apache.dsw BuildBin.dsp CHANGES INSTALL InstallBin.dsp LAYOUT LICENSE NOTICE NWGNUmakefile README* ROADMAP VERSIONING \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# Other distributions also strip the manual down to just English. +# If this isn't your language of choice, mea culpa. +( cd $PKG/srv/httpd/htdocs/manual + for file in $(find . -type f -name "*.html") ; do + if [ -f ${file}.en ]; then + cp ${file}.en ${file} + rm -f ${file}.* + fi + done +) + +# On Slackware, the traditional location for the Apache document root has always +# been "/var/www/htdocs/". We can avoid an unpleasant surprise for people by +# leaving things where they've always been, and comply with the FHS by providing +# symlinks allowing access through the FHS-approved pathnames. KDE, for example, +# will look for htdig's htsearch here: /var/www/cgi-bin/htsearch +mv $PKG/srv/httpd $PKG/var/www +( cd $PKG/srv + ln -sf /var/www . + ln -sf /var/www httpd +) + +# OK, it's just not generally good form to put your web site in /var/www/htdocs, +# but people do it every day. Like all new .new files, this won't save them this +# time, but if they don't learn their lesson now then it will the next time: +mv $PKG/var/www/htdocs/index.html $PKG/var/www/htdocs/index.html.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/httpd/httpd.nossldefault.diff b/source/n/httpd/httpd.nossldefault.diff new file mode 100644 index 000000000..bcf891f85 --- /dev/null +++ b/source/n/httpd/httpd.nossldefault.diff @@ -0,0 +1,11 @@ +--- ./etc/httpd/httpd.conf.orig 2007-05-17 23:40:15.000000000 -0500 ++++ ./etc/httpd/httpd.conf 2007-05-18 15:55:38.000000000 -0500 +@@ -88,7 +88,7 @@ + LoadModule proxy_http_module lib/httpd/modules/mod_proxy_http.so + LoadModule proxy_ajp_module lib/httpd/modules/mod_proxy_ajp.so + LoadModule proxy_balancer_module lib/httpd/modules/mod_proxy_balancer.so +-LoadModule ssl_module lib/httpd/modules/mod_ssl.so ++#LoadModule ssl_module lib/httpd/modules/mod_ssl.so + LoadModule mime_module lib/httpd/modules/mod_mime.so + LoadModule dav_module lib/httpd/modules/mod_dav.so + LoadModule status_module lib/httpd/modules/mod_status.so diff --git a/source/n/httpd/httpd.runasapache.diff b/source/n/httpd/httpd.runasapache.diff new file mode 100644 index 000000000..c1954ec33 --- /dev/null +++ b/source/n/httpd/httpd.runasapache.diff @@ -0,0 +1,13 @@ +--- ./etc/httpd/httpd.conf.orig 2008-02-14 15:24:21.000000000 -0600 ++++ ./etc/httpd/httpd.conf 2008-02-14 15:34:58.000000000 -0600 +@@ -125,8 +125,8 @@ + # It is usually good practice to create a dedicated user and group for + # running httpd, as with most system services. + # +-User daemon +-Group daemon ++User apache ++Group apache + + </IfModule> + </IfModule> diff --git a/source/n/httpd/logrotate.httpd b/source/n/httpd/logrotate.httpd new file mode 100644 index 000000000..30cee8a23 --- /dev/null +++ b/source/n/httpd/logrotate.httpd @@ -0,0 +1,11 @@ +/var/log/httpd/*_log { + rotate 10 + notifempty + size=5M + compress + delaycompress + sharedscripts + postrotate + /etc/rc.d/rc.httpd restart + endscript +} diff --git a/source/n/httpd/rc.httpd b/source/n/httpd/rc.httpd new file mode 100644 index 000000000..064f6ea44 --- /dev/null +++ b/source/n/httpd/rc.httpd @@ -0,0 +1,35 @@ +#!/bin/sh +# +# /etc/rc.d/rc.httpd +# +# Start/stop/restart/graceful[ly restart]/graceful[ly]-stop +# the Apache (httpd) web server. +# +# To make Apache start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.httpd +# +# For information on these options, "man apachectl". + +case "$1" in + 'start') + /usr/sbin/apachectl -k start + ;; + 'stop') + /usr/sbin/apachectl -k stop + killall httpd + rm -f /var/run/httpd/*.pid + ;; + 'restart') + /usr/sbin/apachectl -k restart + ;; + 'graceful') + /usr/sbin/apachectl -k graceful + ;; + 'graceful-stop') + /usr/sbin/apachectl -k graceful-stop + ;; + *) + echo "Usage: $0 {start|stop|restart|graceful|graceful-stop}" + ;; +esac + diff --git a/source/n/httpd/slack-desc b/source/n/httpd/slack-desc new file mode 100644 index 000000000..38d240b6b --- /dev/null +++ b/source/n/httpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +httpd: httpd (The Apache HTTP Server) +httpd: +httpd: Apache is an HTTP server designed as a plug-in replacement for the +httpd: NCSA HTTP server. It fixes numerous bugs in the NCSA server and +httpd: includes many frequently requested new features, and has an API which +httpd: allows it to be extended to meet users' needs more easily. +httpd: +httpd: Apache is the most popular web server in the known universe; over +httpd: half of the servers on the Internet are running Apache or one of +httpd: its variants. +httpd: diff --git a/source/n/icmpinfo/icmpinfo-1.11.diff b/source/n/icmpinfo/icmpinfo-1.11.diff new file mode 100644 index 000000000..0ecc05ade --- /dev/null +++ b/source/n/icmpinfo/icmpinfo-1.11.diff @@ -0,0 +1,210 @@ +--- ./Makefile.orig 1995-08-17 05:44:54.000000000 -0500 ++++ ./Makefile 2007-04-29 15:11:50.000000000 -0500 +@@ -22,7 +22,7 @@ + + LDFLAGS= $(CFLAGS) + +-OBJECTS= recvping.o print.o err.o icmpinfo.o ++OBJECTS= recvping.o print.o err.o icmpinfo.o pid.o + TARGET = icmpinfo + + $(TARGET): $(OBJECTS) +--- ./icmpinfo.c.orig 1995-08-17 05:29:30.000000000 -0500 ++++ ./icmpinfo.c 2007-04-29 15:11:50.000000000 -0500 +@@ -60,7 +60,7 @@ + * This program has to run SUID to ROOT to access the ICMP socket. + */ + +-char usage[] = "Usage: icmpinfo [-v[v[v]]] [-s] [-n] [-p] [-l]\n -v : more and more info\n -s : show local interface address\n -n : no name query (dot ip only)\n -p : no port -> service name query\n -l : fork + syslog output\nv1.11 - 8/1995 - dl"; ++char usage[] = "Usage: icmpinfo [-v[v[v]]] [-s] [-n] [-p] [-l] [-k]\n -v : more and more info\n -s : show local interface address\n -n : no name query (dot ip only)\n -p : no port -> service name query\n -l : fork + syslog output\n -k : kill background process\nv1.11 - 8/1995 - dl"; + char *pname; + + int main(argc, argv) +@@ -99,6 +99,10 @@ + case 's': + showsrcip++; + break; ++ case 'k': ++ pid_kill(); ++ exit(0); ++ break; + case 'h': + default : + err_quit(usage); +@@ -128,6 +132,7 @@ + openlog("icmpinfo",0,LOG_DAEMON); + syslog(LOG_NOTICE,"started, PID=%d.",getpid()); + setsid(); ++ pid_file(); + close(0); + close(1); + close(2); +--- ./icmpinfo.man.orig 1995-08-17 05:25:11.000000000 -0500 ++++ ./icmpinfo.man 2007-04-29 15:12:35.000000000 -0500 +@@ -6,7 +6,7 @@ + .SH SYNOPSIS + + .B icmpinfo +-[\-v[v[v]]] [\-n] [\-p] [\-s] [\-l] ++[\-v[v[v]]] [\-n] [\-p] [\-s] [\-l] [\-k] + + .SH DESCRIPTION + .BR Icmpinfo +@@ -60,6 +60,13 @@ + .I "\-l" + Forks and use the syslog(3) facility to record events (recomended use). + (root only option). ++ ++.TP ++.I "\-k" ++Kills the background process started with the ++.I "\-l" ++option. ++ + .SH WARNINGS + The packet decoding is planned for ICMP Unreachable outputs and might + not be significant for all other Icmp types. Output can be shorter +--- ./linux_ip_icmp.h.orig 1994-05-11 07:08:29.000000000 -0500 ++++ ./linux_ip_icmp.h 2007-04-29 15:11:50.000000000 -0500 +@@ -3,6 +3,8 @@ + #ifndef _netinet_ip_icmp_h + #define _netinet_ip_icmp_h + ++#include <netinet/ip.h> ++ + struct icmp { + u_char icmp_type; /* type of message, see below */ + u_char icmp_code; /* type sub code */ +@@ -22,6 +24,7 @@ + #define icmp_seq icmp_hun.ih_idseq.icd_seq + #define icmp_void icmp_hun.ih_void + ++#if 0 + struct ip { + u_char ip_hl:4, /* header length */ + ip_v:4; /* version */ +@@ -36,6 +39,7 @@ + u_short ip_sum; /* checksum */ + struct in_addr ip_src,ip_dst; /* source and dest address */ + }; ++#endif + + + union { +--- ./pid.c.orig 2007-04-29 15:11:50.000000000 -0500 ++++ ./pid.c 2007-04-29 15:11:50.000000000 -0500 +@@ -0,0 +1,52 @@ ++#include <stdio.h> ++#include <signal.h> ++ ++#define PIDFILE "/var/run/icmpinfo.pid" ++ ++extern char *pname; ++ ++void sig_handler(int); ++void pid_file(void); ++void pid_kill(void); ++ ++void pid_file(void) ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(PIDFILE, "w")) != (FILE *)NULL) { ++ fprintf(fp, "%d\n", getpid()); ++ fclose(fp); ++ } ++ else ++ { ++ fprintf(stderr, "\n%s: Could not write PID file `%s', terminating.\n", ++ pname, PIDFILE); ++ exit(1); ++ } ++ signal(SIGHUP, sig_handler); ++ signal(SIGINT, sig_handler); ++ signal(SIGTERM, sig_handler); ++} ++ ++void sig_handler(int sig) ++{ ++ unlink(PIDFILE); ++ exit(0); ++} ++ ++void pid_kill(void) ++{ ++ FILE *fp; ++ int pid; ++ ++ if ((fp = fopen(PIDFILE, "r")) != (FILE *)NULL) ++ { ++ if (fscanf(fp, "%d", &pid) == 1) ++ { ++ kill(pid, SIGHUP); ++ sleep(1); ++ } ++ fclose(fp); ++ } ++} ++ +--- ./print.c.orig 1995-08-25 08:37:53.000000000 -0500 ++++ ./print.c 2007-04-29 15:11:50.000000000 -0500 +@@ -14,6 +14,7 @@ + * program to be run without having intermingled output (or statistics!). + */ + ++#include <string.h> + #include "defs.h" + + #ifndef ANSI_OFFSETOF +@@ -119,6 +120,29 @@ + inet_ntoa(icp->icmp_ip.ip_dst), + hostent?hostent->h_name:NULL); + tp = (struct tcphdr *)((char *)&(icp->icmp_dun)+sizeof(struct ip)) ; ++#if defined(__GLIBC__) && (__GLIBC__ >= 2) ++ if (cc>=offsetof(struct icmp,icmp_dun)+sizeof(struct ip)+offsetof(struct tcphdr,seq)+sizeof(tp->seq)) ++ { ++ if (noportquery) { ++ sprintf(prbuf+strlen(prbuf)," sp=%d dp=%d seq=0x%8.8x", ++ ntohs(tp->source),ntohs(tp->dest), ++ ntohl(tp->seq)); ++ } else { ++ if ((servent=getservbyport(ntohs(tp->source),NULL))) ++ sprintf(prbuf+strlen(prbuf)," sp=%d [%s]", ++ ntohs(tp->source),servent->s_name); ++ else ++ sprintf(prbuf+strlen(prbuf)," sp=%d",tp->source); ++ if ((servent=getservbyport(ntohs(tp->dest),NULL))) ++ sprintf(prbuf+strlen(prbuf)," dp=%d [%s] seq=0x%8.8x", ++ ntohs(tp->dest),servent->s_name, ++ ntohl(tp->seq)); ++ else ++ sprintf(prbuf+strlen(prbuf)," dp=%d seq=0x%8.8x", ++ ntohs(tp->dest),ntohl(tp->seq)); ++ } ++ } ++#else + if (cc>=offsetof(struct icmp,icmp_dun)+sizeof(struct ip)+offsetof(struct tcphdr,th_seq)+sizeof(tp->th_seq)) + { + if (noportquery) { +@@ -140,6 +164,7 @@ + ntohs(tp->th_dport),ntohl(tp->th_seq)); + } + } ++#endif + } + } + sprintf(prbuf+strlen(prbuf)," sz=%d(+%d)",cc,iphdrlen); +--- ./recvping.c.orig 1994-01-07 05:04:04.000000000 -0600 ++++ ./recvping.c 2007-04-29 15:11:50.000000000 -0500 +@@ -9,7 +9,11 @@ + int recv_ping() + { + register int n; ++#if !defined(__GLIBC__) + int fromlen; ++#else /* __GLIBC__ */ ++ socklen_t fromlen; ++#endif /* __GLIBC__ */ + struct sockaddr_in from; + + for ( ; ; ) { diff --git a/source/n/icmpinfo/icmpinfo.SlackBuild b/source/n/icmpinfo/icmpinfo.SlackBuild new file mode 100755 index 000000000..685bc7ad6 --- /dev/null +++ b/source/n/icmpinfo/icmpinfo.SlackBuild @@ -0,0 +1,71 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-icmpinfo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/icmpinfo-$VERSION.tar.gz || exit 1 +cd icmpinfo-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/icmpinfo-1.11.diff.gz | patch -p1 --backup || exit + +make $NUMJOBS || make || exit 1 + +strip --strip-unneeded icmpinfo +mkdir -p $PKG/usr/sbin +cat icmpinfo > $PKG/usr/sbin/icmpinfo +chmod 755 $PKG/usr/sbin/icmpinfo + +mkdir -p $PKG/usr/man/man1 +gzip -9c icmpinfo.man > $PKG/usr/man/man1/icmpinfo.1.gz + +mkdir -p $PKG/usr/doc/icmpinfo-$VERSION +cp -a \ + CHANGES README TODO \ + $PKG/usr/doc/icmpinfo-$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/icmpinfo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/icmpinfo/slack-desc b/source/n/icmpinfo/slack-desc new file mode 100644 index 000000000..9148a482f --- /dev/null +++ b/source/n/icmpinfo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +icmpinfo: icmpinfo (ICMP monitoring utility) +icmpinfo: +icmpinfo: Icmpinfo is a tool for looking at the ICMP messages received on the +icmpinfo: running host. It can be used to detect and record attack attempts, as +icmpinfo: well as help diagnose network problems. +icmpinfo: +icmpinfo: icmpinfo was written by Laurent Demailly. +icmpinfo: +icmpinfo: +icmpinfo: +icmpinfo: diff --git a/source/n/inetd/inetd-OpenBSD-1.79.diff b/source/n/inetd/inetd-OpenBSD-1.79.diff new file mode 100644 index 000000000..e1550beb3 --- /dev/null +++ b/source/n/inetd/inetd-OpenBSD-1.79.diff @@ -0,0 +1,890 @@ +--- ./inetd.c.orig Tue Jan 30 20:00:10 2001 ++++ ./inetd.c Tue Feb 6 17:17:14 2001 +@@ -1,3 +1,4 @@ ++/* $Slackware: inetd.c 1.79s 2001/02/06 13:18:00 volkerdi Exp $ */ + /* $OpenBSD: inetd.c,v 1.79 2001/01/30 08:30:57 deraadt Exp $ */ + /* $NetBSD: inetd.c,v 1.11 1996/02/22 11:14:41 mycroft Exp $ */ + /* +@@ -40,8 +41,9 @@ + #endif /* not lint */ + + #ifndef lint +-/*static char sccsid[] = "from: @(#)inetd.c 5.30 (Berkeley) 6/3/91";*/ ++static char sccsid[] = "from: @(#)inetd.c 5.30 (Berkeley) 6/3/91"; + static char rcsid[] = "$OpenBSD: inetd.c,v 1.79 2001/01/30 08:30:57 deraadt Exp $"; ++static char xtraid[] = "$Slackware: inetd.c 1.79s 2001/02/06 13:18:00 volkerdi Exp $"; + #endif /* not lint */ + + /* +@@ -163,7 +165,7 @@ + #include <stdlib.h> + #include <unistd.h> + #include <string.h> +-#include <login_cap.h> ++/* #include <login_cap.h> */ + #include <rpc/rpc.h> + #include <rpc/pmap_clnt.h> + #include <rpcsvc/nfs_prot.h> +@@ -176,17 +178,20 @@ + #define SIGBLOCK (sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM)) + + void config __P((int)); +-void doconfig __P((void)); +-void reap __P((int)); +-void doreap __P((void)); ++/* void doconfig __P((void)); */ ++/* void reap __P((int)); */ ++/* void doreap __P((void)); */ ++void reapchild __P ((int)); + void retry __P((int)); +-void doretry __P((void)); ++/* void doretry __P((void)); */ + void goaway __P((int)); + +-int debug = 0; ++static int debug = 0; ++static int global_queuelen = 128; + int nsock, maxsock; +-fd_set *allsockp; +-int allsockn; ++/* fd_set *allsockp; */ ++fd_set allsock; ++/* int allsockn; */ + int toomany = TOOMANY; + int options; + int timingout; +@@ -230,13 +235,13 @@ + struct sockaddr_in se_un_ctrladdr_in; + struct sockaddr_in6 se_un_ctrladdr_in6; + struct sockaddr_un se_un_ctrladdr_un; +- struct sockaddr_storage se_un_ctrladdr_storage; ++ /* struct sockaddr_storage se_un_ctrladdr_storage; */ + } se_un; /* bound address */ + #define se_ctrladdr se_un.se_un_ctrladdr + #define se_ctrladdr_in se_un.se_un_ctrladdr_in + #define se_ctrladdr_in6 se_un.se_un_ctrladdr_in6 + #define se_ctrladdr_un se_un.se_un_ctrladdr_un +-#define se_ctrladdr_storage se_un.se_un_ctrladdr_storage ++/* #define se_ctrladdr_storage se_un.se_un_ctrladdr_storage */ + int se_ctrladdr_size; + int se_max; /* max # of instances of this service */ + int se_count; /* number started since se_time */ +@@ -282,12 +287,12 @@ + { "chargen", SOCK_STREAM, 1, 0, chargen_stream }, + { "chargen", SOCK_DGRAM, 0, 0, chargen_dg }, + +- { 0 } ++ { NULL, 0, 0, 0, NULL } + }; + +-sig_atomic_t wantretry; +-sig_atomic_t wantconfig; +-sig_atomic_t wantreap; ++/* sig_atomic_t wantretry; */ ++/* sig_atomic_t wantconfig; */ ++/* sig_atomic_t wantreap; */ + + #define NUMINT (sizeof(intab) / sizeof(struct inent)) + char *CONFIG = _PATH_INETDCONF; +@@ -297,6 +302,8 @@ + + void logpid __P((void)); + ++/* This function is unused in the Linux port */ ++#ifdef OpenBSD + void + fd_grow(fd_set **fdsp, int *bytes, int fd) + { +@@ -316,24 +323,26 @@ + *bytes = newbytes; + } + } ++#endif + + int + main(argc, argv, envp) + int argc; + char *argv[], *envp[]; + { +- extern char *optarg; +- extern int optind; ++ /* extern char *optarg; */ ++ /* extern int optind; */ + register struct servtab *sep; + register struct passwd *pwd; + register struct group *grp = NULL; + register int tmpint; + struct sigaction sa, sapipe; + int ch, dofork; ++ int nodaemon = 0; + pid_t pid; + char buf[50]; +- fd_set *readablep = NULL; +- int readablen = 0; ++ /* fd_set *readablep = NULL; */ ++ /* int readablen = 0; */ + + Argv = argv; + if (envp == 0 || *envp == 0) +@@ -356,7 +365,7 @@ + int val; + + val = strtoul(optarg, &p, 0); +- if (val >= 1 && *p == NULL) { ++ if (val >= 1 && *p == (char) NULL) { + toomany = val; + break; + } +@@ -385,10 +394,13 @@ + exit(1); + } + +- if (debug == 0) { +- daemon(0, 0); +- if (uid == 0) +- (void) setlogin(""); ++ if (nodaemon == 0) ++ daemon (0, 0); ++ else if (debug == 0) { ++ /* daemon(0, 0); */ ++ /* if (uid == 0) */ ++ /* (void) setlogin(""); */ ++ setsid (); + } + + if (uid == 0) { +@@ -418,10 +430,12 @@ + sigaddset(&sa.sa_mask, SIGHUP); + sa.sa_handler = retry; + sigaction(SIGALRM, &sa, NULL); +- doconfig(); ++ /* doconfig(); */ ++ config (SIGHUP); + sa.sa_handler = config; + sigaction(SIGHUP, &sa, NULL); +- sa.sa_handler = reap; ++ /* sa.sa_handler = reap; */ ++ sa.sa_handler = reapchild; + sigaction(SIGCHLD, &sa, NULL); + sa.sa_handler = goaway; + sigaction(SIGTERM, &sa, NULL); +@@ -443,6 +457,7 @@ + + for (;;) { + int n, ctrl = -1; ++ fd_set readable; + + if (nsock == 0) { + (void) sigblock(SIGBLOCK); +@@ -451,6 +466,8 @@ + (void) sigsetmask(0L); + } + ++ /* Well, this all looks like cruft to me ;^) */ ++#ifdef OpenBSD + if (readablen != allsockn) { + if (readablep) + free(readablep); +@@ -478,8 +495,10 @@ + wantreap = 0; + continue; + } ++#endif + +- if ((n = select(maxsock + 1, readablep, NULL, NULL, NULL)) <= 0) { ++ readable = allsock; ++ if ((n = select(maxsock + 1, &readable, NULL, NULL, NULL)) <= 0) { + if (n < 0 && errno != EINTR) { + syslog(LOG_WARNING, "select: %m"); + sleep(1); +@@ -487,7 +506,7 @@ + continue; + } + for (sep = servtab; n && sep; sep = sep->se_next) +- if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, readablep)) { ++ if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, &readable)) { + n--; + if (debug) + fprintf(stderr, "someone wants %s\n", sep->se_service); +@@ -556,7 +575,7 @@ + if (!sep->se_wait && + sep->se_socktype == SOCK_STREAM) + close(ctrl); +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + (void) close(sep->se_fd); + sep->se_fd = -1; + sep->se_count = 0; +@@ -581,7 +600,7 @@ + } + if (pid && sep->se_wait) { + sep->se_wait = pid; +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + } + sigsetmask(0L); +@@ -595,7 +614,7 @@ + sep->se_user); + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); +- exit(1); ++ _exit(1); + } + if (setsid() <0) + syslog(LOG_ERR, "%s: setsid: %m", +@@ -607,27 +626,33 @@ + sep->se_group); + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); +- exit(1); ++ _exit(1); + } + if (uid != 0) { + /* a user running private inetd */ + if (uid != pwd->pw_uid) +- exit(1); +- } else { +- tmpint = LOGIN_SETALL & +- ~(LOGIN_SETGROUP|LOGIN_SETLOGIN); +- if (pwd->pw_uid) +- tmpint |= LOGIN_SETGROUP|LOGIN_SETLOGIN; ++ _exit(1); ++ } else if (pwd->pw_uid) { ++ /* tmpint = LOGIN_SETALL & */ ++ /* ~(LOGIN_SETGROUP|LOGIN_SETLOGIN); */ ++ /* if (pwd->pw_uid) */ ++ /* tmpint |= LOGIN_SETGROUP|LOGIN_SETLOGIN; */ + if (sep->se_group) { + pwd->pw_gid = grp->gr_gid; +- tmpint |= LOGIN_SETGROUP; ++ /* tmpint |= LOGIN_SETGROUP; */ + } +- if (setusercontext(0, pwd, pwd->pw_uid, +- tmpint) < 0) +- syslog(LOG_ERR, +- "%s/%s: setusercontext: %m", +- sep->se_service, +- sep->se_proto); ++ setgid ((gid_t) pwd->pw_gid); ++ initgroups (pwd->pw_name, pwd->pw_gid); ++ setuid ((uid_t) pwd->pw_uid); ++ /* if (setusercontext(0, pwd, pwd->pw_uid, */ ++ /* tmpint) < 0) */ ++ /* syslog(LOG_ERR, */ ++ /* "%s/%s: setusercontext: %m", */ ++ /* sep->se_service, */ ++ /* sep->se_proto); */ ++ } else if (sep->se_group) { ++ setgid (grp->gr_gid); ++ setgroups (1, &grp->gr_gid); + } + if (debug) + fprintf(stderr, "%d execl %s\n", +@@ -636,6 +661,9 @@ + close(ctrl); + dup2(0, 1); + dup2(0, 2); ++ if (rlim_ofile.rlim_cur != rlim_ofile_cur) ++ if (setrlimit (RLIMIT_NOFILE, &rlim_ofile) < 0) ++ syslog (LOG_ERR, "setrlimit: %m"); + closelog(); + for (tmpint = rlim_ofile_cur-1; --tmpint > 2; ) + (void)close(tmpint); +@@ -644,7 +672,7 @@ + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); + syslog(LOG_ERR, "execv %s: %m", sep->se_server); +- exit(1); ++ _exit(1); + } + } + if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) +@@ -654,13 +682,14 @@ + } + + int +-dg_badinput(sa) +- struct sockaddr *sa; ++dg_badinput(sin) ++ struct sockaddr_in *sin; + { + struct in_addr in; + #ifdef INET6 + struct in6_addr *in6; + #endif ++#ifdef OpenBSD + u_int16_t port; + int i; + +@@ -703,28 +732,40 @@ + + if (port < IPPORT_RESERVED || port == NFS_PORT) + goto bad; ++#endif + ++ if (ntohs (sin->sin_port) < IPPORT_RESERVED) ++ return (1); ++ if (sin->sin_addr.s_addr == htonl (INADDR_BROADCAST)) ++ return (1); ++ /* XXX compare against broadcast addresses in SIOCGIFCONF list? */ + return (0); + ++#ifdef OpenBSD + bad: + return (1); ++#endif + } + ++#ifdef OpenBSD + void + reap(int sig) + { + wantreap = 1; + } ++#endif + + void +-doreap(void) ++reapchild(int sig) + { + pid_t pid; + int save_errno = errno, status; + register struct servtab *sep; + ++#ifdef OpenBSD + if (debug) + fprintf(stderr, "reaping asked for\n"); ++#endif + + for (;;) { + pid = wait3(&status, WNOHANG, NULL); +@@ -743,8 +784,8 @@ + "%s: exit signal 0x%x", + sep->se_server, WTERMSIG(status)); + sep->se_wait = 1; +- fd_grow(&allsockp, &allsockn, sep->se_fd); +- FD_SET(sep->se_fd, allsockp); ++ /* fd_grow(&allsockp, &allsockn, sep->se_fd); */ ++ FD_SET(sep->se_fd, &allsock); + nsock++; + if (debug) + fprintf(stderr, "restored %s, fd %d\n", +@@ -766,14 +807,16 @@ + struct servtab *enter __P((struct servtab *)); + int matchconf __P((struct servtab *, struct servtab *)); + ++#ifdef OpenBSD + void + config(int sig) + { + wantconfig = 1; + } ++#endif + + void +-doconfig(void) ++config(int sig) + { + register struct servtab *sep, *cp, **sepp; + int omask; +@@ -887,7 +930,7 @@ + if (port != sep->se_ctrladdr_in.sin_port) { + sep->se_ctrladdr_in.sin_port = port; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -942,7 +985,7 @@ + if (port != sep->se_ctrladdr_in6.sin6_port) { + sep->se_ctrladdr_in6.sin6_port = port; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -979,7 +1022,7 @@ + } + *sepp = sep->se_next; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -995,14 +1038,16 @@ + (void) sigsetmask(omask); + } + ++#ifdef OpenBSD + void + retry(int sig) + { + wantretry = 1; + } ++#endif + + void +-doretry(void) ++retry(int sig) + { + register struct servtab *sep; + +@@ -1046,7 +1091,7 @@ + (void)close(sep->se_fd); + } + (void)unlink(_PATH_INETDPID); +- _exit(0); ++ exit(0); + } + + int bump_nofile __P((void)); +@@ -1102,9 +1147,9 @@ + } else + r = bind(sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size); + if (r < 0) { +- syslog(LOG_ERR, "%s/%s: bind: %m", +- sep->se_service, sep->se_proto); +- (void) close(sep->se_fd); ++ syslog(LOG_ERR, "%s/%s (%d): bind: %m", ++ sep->se_service, sep->se_proto, sep->se_ctrladdr.sa_family); ++ close(sep->se_fd); + sep->se_fd = -1; + if (!timingout) { + timingout = 1; +@@ -1113,10 +1158,10 @@ + return; + } + if (sep->se_socktype == SOCK_STREAM) +- listen(sep->se_fd, 10); ++ listen(sep->se_fd, global_queuelen); + +- fd_grow(&allsockp, &allsockn, sep->se_fd); +- FD_SET(sep->se_fd, allsockp); ++ /* fd_grow(&allsockp, &allsockn, sep->se_fd); */ ++ FD_SET(sep->se_fd, &allsock); + nsock++; + if (sep->se_fd > maxsock) { + maxsock = sep->se_fd; +@@ -1230,10 +1275,12 @@ + &new->se_ctrladdr_in6.sin6_addr, + sizeof(new->se_ctrladdr_in6.sin6_addr)) != 0) + return (0); ++#ifdef OpenBSD + if (old->se_family == AF_INET6 && new->se_family == AF_INET6 && + old->se_ctrladdr_in6.sin6_scope_id != + new->se_ctrladdr_in6.sin6_scope_id) + return (0); ++#endif + + return (1); + } +@@ -1241,7 +1288,7 @@ + FILE *fconfig = NULL; + char line[1024]; + char *defhost; +-char *skip __P((char **, int)); ++char *skip __P((char **)); + char *nextline __P((FILE *)); + char *newstr __P((char *)); + struct servtab *dupconfig __P((struct servtab *)); +@@ -1277,7 +1324,7 @@ + { + register struct servtab *sep; + int argc; +- char *cp, *arg, *s; ++ char *cp, *arg; + char *hostdelim; + struct servtab *nsep; + struct servtab *psep; +@@ -1288,19 +1335,19 @@ + exit(1); + } + +- memset(sep, 0, sizeof *sep); ++ /* memset(sep, 0, sizeof *sep); */ + more: +- freeconfig(sep); ++ /* freeconfig(sep); */ + + while ((cp = nextline(fconfig)) && *cp == '#') + ; + if (cp == NULL) { +- free(sep); ++ /* free(sep); */ + return (NULL); + } + + memset((char *)sep, 0, sizeof *sep); +- arg = skip(&cp, 0); ++ arg = skip(&cp); + if (arg == NULL) { + /* A blank line. */ + goto more; +@@ -1310,10 +1357,12 @@ + hostdelim = strrchr(arg, ':'); + if (hostdelim) { + *hostdelim = '\0'; ++#ifdef OpenBSD + if (arg[0] == '[' && hostdelim > arg && hostdelim[-1] == ']') { + hostdelim[-1] = '\0'; + sep->se_hostaddr = newstr(arg + 1); + } else ++#endif + sep->se_hostaddr = newstr(arg); + arg = hostdelim + 1; + /* +@@ -1321,10 +1370,10 @@ + * default host for the following lines. + */ + if (*arg == '\0') { +- arg = skip(&cp, 0); ++ arg = skip(&cp); + if (cp == NULL) { + free(defhost); +- defhost = newstr(sep->se_hostaddr); ++ defhost = sep->se_hostaddr; + goto more; + } + } +@@ -1332,8 +1381,11 @@ + sep->se_hostaddr = newstr(defhost); + + sep->se_service = newstr(arg); ++#ifdef OpenBSD + if ((arg = skip(&cp, 1)) == NULL) + goto more; ++#endif ++ arg = skip (&cp); + + if (strcmp(arg, "stream") == 0) + sep->se_socktype = SOCK_STREAM; +@@ -1348,10 +1400,12 @@ + else + sep->se_socktype = -1; + ++#ifdef OpenBSD + if ((arg = skip(&cp, 1)) == NULL) + goto more; ++#endif + +- sep->se_proto = newstr(arg); ++ sep->se_proto = newstr(skip (&cp)); + + if (strcmp(sep->se_proto, "unix") == 0) { + sep->se_family = AF_UNIX; +@@ -1389,10 +1443,11 @@ + goto badafterall; + } + } +- arg = skip(&cp, 1); ++ arg = skip(&cp); + if (arg == NULL) + goto more; + ++#ifdef OpenBSD + s = strchr(arg, '.'); + if (s) { + char *p; +@@ -1406,11 +1461,20 @@ + } + } else + sep->se_max = toomany; ++#endif + ++ { ++ char *s = strchr (arg, '.'); ++ if (s) { ++ *s++ = '\0'; ++ sep->se_max = atoi (s); ++ } else ++ sep->se_max = toomany; ++ } + sep->se_wait = strcmp(arg, "wait") == 0; +- if ((arg = skip(&cp, 1)) == NULL) +- goto more; +- sep->se_user = newstr(arg); ++ /* if ((arg = skip(&cp, 1)) == NULL) */ ++ /* goto more; */ ++ sep->se_user = newstr(skip (&cp)); + arg = strchr(sep->se_user, '.'); + if (arg == NULL) + arg = strchr(sep->se_user, ':'); +@@ -1418,12 +1482,12 @@ + *arg++ = '\0'; + sep->se_group = newstr(arg); + } +- if ((arg = skip(&cp, 1)) == NULL) +- goto more; ++ /* if ((arg = skip(&cp, 1)) == NULL) */ ++ /* goto more; */ + +- sep->se_server = newstr(arg); ++ sep->se_server = newstr(skip (&cp)); + if (strcmp(sep->se_server, "internal") == 0) { +- struct biltin *bi; ++ register struct biltin *bi; + + for (bi = biltins; bi->bi_service; bi++) + if (bi->bi_socktype == sep->se_socktype && +@@ -1439,7 +1503,7 @@ + } else + sep->se_bi = NULL; + argc = 0; +- for (arg = skip(&cp, 0); cp; arg = skip(&cp, 0)) { ++ for (arg = skip(&cp); cp; arg = skip(&cp)) { + if (argc < MAXARGV) + sep->se_argv[argc++] = newstr(arg); + } +@@ -1468,7 +1532,9 @@ + nsep = sep; + while (nsep != NULL) { + nsep->se_checked = 1; +- switch (nsep->se_family) { ++ /* switch (nsep->se_family) { */ ++ if (nsep->se_family == AF_INET) { ++#ifdef OpenBSD + case AF_INET: + case AF_INET6: + { +@@ -1488,7 +1554,13 @@ + goto skip; + } + close(s); ++#endif ++ if (!strcmp (nsep->se_hostaddr, "*")) ++ nsep->se_ctrladdr_in.sin_addr.s_addr = INADDR_ANY; ++ else if (!inet_aton (nsep->se_hostaddr, &nsep->se_ctrladdr_in.sin_addr)) { ++ struct hostent *hp; + ++#ifdef OpenBSD + memset(&hints, 0, sizeof(hints)); + hints.ai_family = nsep->se_family; + hints.ai_socktype = nsep->se_socktype; +@@ -1517,7 +1589,22 @@ + res->ai_addr, res->ai_addrlen); + continue; + } ++#endif ++ hp = gethostbyname (nsep->se_hostaddr); ++ if (hp == 0) { ++ syslog (LOG_ERR, "%s: unknown host", nsep->se_hostaddr); ++ nsep->se_checked = 0; ++ goto skip; ++ } else if (hp->h_addrtype != AF_INET) { ++ syslog (LOG_ERR, ++ "%s: address isn't an Internet " ++ "address", nsep->se_hostaddr); ++ nsep->se_checked = 0; ++ goto skip; ++ } else { ++ int i = 1; + ++#ifdef OpenBSD + psep = dupconfig(nsep); + psep->se_hostaddr = newstr(nsep->se_hostaddr); + psep->se_checked = 1; +@@ -1535,7 +1622,26 @@ + freeaddrinfo(res0); + break; + } ++#endif ++ memmove (&nsep->se_ctrladdr_in.sin_addr, ++ hp->h_addr_list[0], sizeof (struct in_addr)); ++ while (hp->h_addr_list[i] != NULL) { ++ psep = dupconfig (nsep); ++ psep->se_hostaddr = newstr (nsep->se_hostaddr); ++ psep->se_checked = 1; ++ memmove (&psep->se_ctrladdr_in.sin_addr, ++ hp->h_addr_list[i], sizeof (struct in_addr)); ++ psep->se_ctrladdr_size = sizeof (psep->se_ctrladdr_in); ++ i++; ++ /* Prepend to list, don't want to look up its */ ++ /* hostname again. */ ++ psep->se_next = sep; ++ sep = psep; ++ } ++ } ++ } + } ++/* XXX BUG?: is this skip: label supposed to remain? */ + skip: + nsep = nsep->se_next; + } +@@ -1593,17 +1699,17 @@ + } + + char * +-skip(cpp, report) ++skip(cpp) + char **cpp; +- int report; ++ /* int report; */ + { +- char *cp = *cpp; ++ register char *cp = *cpp; + char *start; + +-erp: ++/* erp: */ + if (*cpp == NULL) { +- if (report) +- syslog(LOG_ERR, "syntax error in inetd config file"); ++ /* if (report) */ ++ /* syslog(LOG_ERR, "syntax error in inetd config file"); */ + return (NULL); + } + +@@ -1619,16 +1725,18 @@ + if ((cp = nextline(fconfig))) + goto again; + *cpp = NULL; +- goto erp; ++ /* goto erp; */ ++ return (NULL); + } + start = cp; + while (*cp && *cp != ' ' && *cp != '\t') + cp++; + if (*cp != '\0') + *cp++ = '\0'; +- if ((*cpp = cp) == NULL) +- goto erp; ++ /* if ((*cpp = cp) == NULL) */ ++ /* goto erp; */ + ++ *cpp = cp; + return (start); + } + +@@ -1796,15 +1904,16 @@ + { + char buffer[BUFSIZE]; + int i, size; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + +- size = sizeof(ss); +- if ((i = recvfrom(s, buffer, sizeof(buffer), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if ((i = recvfrom(s, buffer, sizeof(buffer), 0, &sa, + &size)) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; +- (void) sendto(s, buffer, i, 0, (struct sockaddr *)&ss, size); ++ (void) sendto(s, buffer, i, 0, &sa, sizeof(sa)); + } + + /* ARGSUSED */ +@@ -1890,7 +1999,8 @@ + int s; + struct servtab *sep; + { +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + static char *rs; + int len, size; + char text[LINESIZ+2]; +@@ -1900,11 +2010,11 @@ + rs = ring; + } + +- size = sizeof(ss); +- if (recvfrom(s, text, sizeof(text), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if (recvfrom(s, text, sizeof(text), 0, &sa, + &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; + + if ((len = endring - rs) >= LINESIZ) +@@ -1917,7 +2027,7 @@ + rs = ring; + text[LINESIZ] = '\r'; + text[LINESIZ + 1] = '\n'; +- (void) sendto(s, text, sizeof(text), 0, (struct sockaddr *)&ss, size); ++ (void) sendto(s, text, sizeof(text), 0, &sa, sizeof(sa)); + } + + /* +@@ -1959,18 +2069,23 @@ + struct servtab *sep; + { + u_int result; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; ++ struct sockaddr_in *sin; + int size; + +- size = sizeof(ss); ++ size = sizeof(sa); + if (recvfrom(s, (char *)&result, sizeof(result), 0, +- (struct sockaddr *)&ss, &size) < 0) ++ &sa, &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ /* if (dg_badinput((struct sockaddr *)&ss)) */ ++ sin = (struct sockaddr_in *) &sa; ++ if (sin->sin_addr.s_addr == htonl (INADDR_BROADCAST) || ++ ntohs (sin->sin_port) < IPPORT_RESERVED / 2) + return; + result = machtime(); + (void) sendto(s, (char *) &result, sizeof(result), 0, +- (struct sockaddr *)&ss, size); ++ &sa, sizeof(sa)); + } + + /* ARGSUSED */ +@@ -1996,20 +2111,21 @@ + { + char buffer[256]; + time_t time(), clock; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + int size; + + clock = time((time_t *) 0); + +- size = sizeof(ss); +- if (recvfrom(s, buffer, sizeof(buffer), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if (recvfrom(s, buffer, sizeof(buffer), 0, &sa, + &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; + (void) sprintf(buffer, "%.24s\r\n", ctime(&clock)); +- (void) sendto(s, buffer, strlen(buffer), 0, (struct sockaddr *)&ss, +- size); ++ (void) sendto(s, buffer, strlen(buffer), 0, &sa, ++ sizeof(sa)); + } + + /* +--- ./Makefile.orig Thu Mar 30 17:00:49 2000 ++++ ./Makefile Tue Feb 6 17:18:05 2001 +@@ -1,7 +1,6 @@ +-# $OpenBSD: Makefile,v 1.3 2000/03/31 01:00:49 deraadt Exp $ ++CC = gcc ++CFLAGS = -O2 ++LDFLAGS = -s + +-PROG= inetd +-MAN= inetd.8 +-MLINKS= inetd.8 inetd.conf.5 +- +-.include <bsd.prog.mk> ++all: ++ $(CC) $(CFLAGS) $(LDFLAGS) -o inetd inetd.c diff --git a/source/n/inetd/inetd.SlackBuild b/source/n/inetd/inetd.SlackBuild new file mode 100755 index 000000000..8a86a3509 --- /dev/null +++ b/source/n/inetd/inetd.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.79s +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-8} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-inetd + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_inetd.tar.gz + +echo "+====================+" +echo "| inetd-OpenBSD-1.79 |" +echo "+====================+" +cd $TMP +rm -rf inetd +tar xvf $CWD/inetd-OpenBSD-1.79.tar.gz || exit 1 +cd inetd +zcat $CWD/inetd-OpenBSD-1.79.diff.gz | patch -p1 --backup --suffix=.orig --verbose -E +zcat $CWD/inetd.loopingdos.diff.gz | patch -p1 --backup --suffix=.orig --verbose -E + +# GCC 4 fix (thanks Fred Emmott) +sed -i 's#(type)\([a-z]\)=(type)\([a-z]\)#\1=(type)\2#g' inetd.c + +make || exit 1 + +strip inetd +cat inetd > $PKG/usr/sbin/inetd +cat inetd.8 | gzip -9c > $PKG/usr/man/man8/inetd.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/inetd-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/inetd + rm -rf $PKG +fi diff --git a/source/n/inetd/inetd.loopingdos.diff b/source/n/inetd/inetd.loopingdos.diff new file mode 100644 index 000000000..5bfcc53ff --- /dev/null +++ b/source/n/inetd/inetd.loopingdos.diff @@ -0,0 +1,54 @@ +--- ./inetd.c.orig 2003-09-06 15:08:41.000000000 -0700 ++++ ./inetd.c 2003-09-06 16:26:24.000000000 -0700 +@@ -171,7 +171,8 @@ + #include <rpcsvc/nfs_prot.h> + #include "pathnames.h" + +-#define TOOMANY 256 /* don't start more than TOOMANY */ ++#define TOOMANY 0 /* don't start more than TOOMANY */ ++ /* zero disables this stupid "feature" */ + #define CNT_INTVL 60 /* servers in CNT_INTVL sec. */ + #define RETRYTIME (60*10) /* retry after bind or server fail */ + +@@ -365,7 +366,7 @@ + int val; + + val = strtoul(optarg, &p, 0); +- if (val >= 1 && *p == (char) NULL) { ++ if (val >= 0 && *p == (char) NULL) { + toomany = val; + break; + } +@@ -546,7 +547,7 @@ + if (dofork) { + if (sep->se_count++ == 0) + (void)gettimeofday(&sep->se_time, NULL); +- else if (sep->se_count >= sep->se_max) { ++ else if (toomany > 0 && sep->se_count >= sep->se_max) { + struct timeval now; + + (void)gettimeofday(&now, NULL); +--- ./inetd.8.orig 2003-09-06 16:26:50.000000000 -0700 ++++ ./inetd.8 2003-09-06 16:30:27.000000000 -0700 +@@ -68,7 +68,8 @@ + Turns on debugging. + .It Fl R Ar rate + Specify the maximum number of times a service can be invoked +-in one minute; the default is 256. ++in one minute; the default is unlimited. A rate of 0 allows an ++unlimited number of invocations. + .El + .Pp + Upon execution, +@@ -249,9 +250,8 @@ + spawned from + .Nm inetd + within an interval of 60 seconds. +-When omitted, +-.Dq max +-defaults to 256. ++The default is unlimited (setting a limit may actually make it easier for ++an attacker to create a denial-of-service, and is not recommended). + .Pp + Stream servers are usually marked as + .Dq nowait diff --git a/source/n/inetd/slack-desc b/source/n/inetd/slack-desc new file mode 100644 index 000000000..7f5c15c53 --- /dev/null +++ b/source/n/inetd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +inetd: inetd (Internet super-server) +inetd: +inetd: This is a program to listen for connections on certain Internet +inetd: sockets and invokes a program to service the request. Essentially, +inetd: inetd allows running one daemon to invoke several others, reducing +inetd: load on the system. Many of the network services are run through +inetd: inetd, so you'll probably need it. +inetd: +inetd: This version of inetd was ported from OpenBSD. +inetd: +inetd: diff --git a/source/n/iproute2/doinst.sh b/source/n/iproute2/doinst.sh new file mode 100644 index 000000000..01b82a28e --- /dev/null +++ b/source/n/iproute2/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/iproute2/ematch_map.new +config etc/iproute2/rt_dsfield.new +config etc/iproute2/rt_protos.new +config etc/iproute2/rt_realms.new +config etc/iproute2/rt_scopes.new +config etc/iproute2/rt_tables.new + diff --git a/source/n/iproute2/iproute2.SlackBuild b/source/n/iproute2/iproute2.SlackBuild new file mode 100755 index 000000000..2a97fd43d --- /dev/null +++ b/source/n/iproute2/iproute2.SlackBuild @@ -0,0 +1,130 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Build this against 2.6.x kernel source and headers... + +VERSION=2.6.29-1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iproute2 + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf iproute2-$VERSION +tar xvf $CWD/iproute2-$VERSION.tar.bz2 || exit 1 +cd iproute2-$VERSION + +# Fix up path to bdb +zcat $CWD/iproute2.dbpath.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Fix up iptables lib path +zcat $CWD/iproute2.iptablespath.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + sed -i -e "s#/lib/tc#/lib${LIBDIRSUFFIX}/tc#" $(grep -lr '/lib/tc' *) || exit 1 + sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" include/iptables.h || exit 1 + sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" tc/m_ipt.c || exit 1 +fi + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export CFLAGS="$SLKCFLAGS" +make $NUMJOBS DOCDIR=doc/iproute2-$VERSION MANDIR=man/ || exit 1 + +# This doesn't embed any $TMP or $PKG paths in anything +# Have a look at what the Makefile does for why :) +mkdir -p $PKG/usr +make install DOCDIR=doc/iproute2-$VERSION MANDIR=man/ DESTDIR=$PKG/usr/ \ + || exit 1 + +# This stuff has always been installed under /sbin rather than +# /usr/sbin, as the latter could possibly be network-mounted, and +# these utilities may be needed to set up that network, so move +# them appropriately, but leave symlinks in /usr/sbin so that +# any scripts using absolute paths will work either way: +mkdir $PKG/sbin +mv $PKG/usr/sbin/* $PKG/sbin +( cd $PKG/usr/sbin + for file in ../../sbin/* ; do + ln -sf $file . + done +) + +mv $PKG/usr/etc $PKG +# Don't clobber existing config files +for file in $PKG/etc/iproute2/* ; do + mv $file ${file}.new +done + +# Remove junk: +[ -d $PKG/usr/usr ] && rm -r $PKG/usr/usr + +mkdir -p $PKG/var/lib/arpd + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/iproute2-$VERSION +cp -a COPYING RE* \ + $PKG/usr/doc/iproute2-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iproute2-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/n/iproute2/iproute2.dbpath.diff b/source/n/iproute2/iproute2.dbpath.diff new file mode 100644 index 000000000..b6ad2b0f9 --- /dev/null +++ b/source/n/iproute2/iproute2.dbpath.diff @@ -0,0 +1,12 @@ +diff -Nur orig/Makefile new/Makefile +--- orig/Makefile 2008-07-25 15:46:07.000000000 -0500 ++++ new/Makefile 2008-10-03 20:32:41.237630954 -0500 +@@ -5,7 +5,7 @@ + MANDIR=/share/man + + # Path to db_185.h include +-DBM_INCLUDE:=/usr/include ++DBM_INCLUDE:=/usr/include/db44 + + DEFINES= -DRESOLVE_HOSTNAMES -DDESTDIR=\"$(DESTDIR)\" + diff --git a/source/n/iproute2/iproute2.iptablespath.diff b/source/n/iproute2/iproute2.iptablespath.diff new file mode 100644 index 000000000..89f61b65d --- /dev/null +++ b/source/n/iproute2/iproute2.iptablespath.diff @@ -0,0 +1,12 @@ +diff -Nur orig/include/iptables.h new/include/iptables.h +--- orig/include/iptables.h 2008-07-25 15:46:07.000000000 -0500 ++++ new/include/iptables.h 2008-10-03 20:35:56.731284537 -0500 +@@ -5,7 +5,7 @@ + #include "libiptc/libiptc.h" + + #ifndef IPT_LIB_DIR +-#define IPT_LIB_DIR "/usr/local/lib/iptables" ++#define IPT_LIB_DIR "/usr/lib/iptables" + #endif + + #ifndef IPPROTO_SCTP diff --git a/source/n/iproute2/slack-desc b/source/n/iproute2/slack-desc new file mode 100644 index 000000000..7f6b1d614 --- /dev/null +++ b/source/n/iproute2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iproute2: iproute2 (IP routing utilities) +iproute2: +iproute2: These are tools used to administer many advanced IP routing features +iproute2: in the kernel. See Configure.help in the kernel documentation +iproute2: (search for iproute2) for more information on which kernel options +iproute2: these tools are used with. +iproute2: +iproute2: These utilities were written by Alexey Kuznetsov. The current +iproute2: maintainer of iproute2 is Stephen Hemminger. +iproute2: +iproute2: diff --git a/source/n/iptables/iptables.SlackBuild b/source/n/iptables/iptables.SlackBuild new file mode 100755 index 000000000..fcf80a1ab --- /dev/null +++ b/source/n/iptables/iptables.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.4.3.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iptables + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf iptables-$VERSION +tar xvf $CWD/iptables-$VERSION.tar.bz2 || exit 1 +cd iptables-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/iptables-$VERSION \ + --enable-devel \ + --enable-libipq \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/iptables-$VERSION +cp -a \ + COPYING* INCOMPATIBILITIES INSTALL \ + $PKG/usr/doc/iptables-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iptables-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iptables/slack-desc b/source/n/iptables/slack-desc new file mode 100644 index 000000000..55423f5f4 --- /dev/null +++ b/source/n/iptables/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iptables: iptables (IP packet filter administration) +iptables: +iptables: iptables is a packet filter administration tool. +iptables: +iptables: Iptables can be used to build internet firewalls based on stateless +iptables: and stateful packet filtering, use NAT and masquerading for sharing +iptables: internet access if you don't have enough public IP addresses, use NAT +iptables: to implement transparent proxies, aid the tc and iproute2 systems +iptables: used to build sophisticated QoS and policy routers, do further packet +iptables: manipulation (mangling) like altering the TOS/DSCP/ECN bits of the IP +iptables: header, and much more. See: http://www.netfilter.org diff --git a/source/n/iptraf/iptraf.SlackBuild b/source/n/iptraf/iptraf.SlackBuild new file mode 100755 index 000000000..a4bb452b9 --- /dev/null +++ b/source/n/iptraf/iptraf.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-3.0.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iptraf + +cd $TMP +rm -rf $PKG +rm -rf iptraf-$VERSION +tar xvf $CWD/iptraf-$VERSION.tar.gz || exit 1 +cd iptraf-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/iptraf_3.0.0-6.diff.gz | patch -p1 || exit 1 +zcat $CWD/iptraf.paths.diff.gz | patch -p1 || exit 1 +cd src + +make -j2 || exit 1 + +mkdir -p $PKG/usr/sbin +cp iptraf rawtime rvnamed $PKG/usr/sbin +chmod 755 $PKG/usr/sbin/* + +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/var/cache/iptraf +mkdir -p $PKG//var/run/iptraf +mkdir -p $PKG/var/log/iptraf + +mkdir -p $PKG/usr/doc/iptraf-$VERSION +cp -a \ + CHANGES Documentation FAQ INSTALL LICENSE README* RELEASE-NOTES \ + $PKG/usr/doc/iptraf-$VERSION + +mkdir -p $PKG/usr/man/man8 +mv $PKG/usr/doc/iptraf-$VERSION/Documentation/iptraf.8 $PKG/usr/man/man8 +if [ -r $PKG/usr/doc/iptraf-$VERSION/Documentation/rawtime.8 ]; then + mv $PKG/usr/doc/iptraf-$VERSION/Documentation/rawtime.8 $PKG/usr/man/man8 +fi +mv $PKG/usr/doc/iptraf-$VERSION/Documentation/rvnamed.8 $PKG/usr/man/man8 +gzip -9 $PKG/usr/man/man8/* + +# crud removal +( cd $PKG/usr/doc/iptraf-$VERSION/Documentation + rm -rf manual.aux manual.dvi *.log manual.rtf manual.sgml manual.template .xvpics .log +) + +rm -f $PKG/usr/doc/iptraf-$VERSION/Documentation/manual.template.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iptraf-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iptraf/iptraf.paths.diff b/source/n/iptraf/iptraf.paths.diff new file mode 100644 index 000000000..4251b46d5 --- /dev/null +++ b/source/n/iptraf/iptraf.paths.diff @@ -0,0 +1,17 @@ +--- ./src/Makefile.orig 2003-03-14 13:39:46.000000000 -0800 ++++ ./src/Makefile 2003-03-14 13:41:15.000000000 -0800 +@@ -68,12 +68,12 @@ + # installation target directory. The iptraf and rvnamed programs get + # stored here. iptraf also exec's rvnamed from this directory. + +-TARGET = /usr/local/bin ++TARGET = /usr/sbin + + # The IPTraf working directory; if you change this. Starting with this + # version, this definition overrides dirs.h. + +-WORKDIR = /var/local/iptraf ++WORKDIR = /var/cache/iptraf + + # The IPTraf log file directory. IPTraf log files are placed here. + # This definition overrides dirs.h diff --git a/source/n/iptraf/iptraf_3.0.0-6.diff b/source/n/iptraf/iptraf_3.0.0-6.diff new file mode 100644 index 000000000..c524e0deb --- /dev/null +++ b/source/n/iptraf/iptraf_3.0.0-6.diff @@ -0,0 +1,1499 @@ +--- iptraf-3.0.0.orig/Documentation/iptraf.8 ++++ iptraf-3.0.0/Documentation/iptraf.8 +@@ -2,22 +2,22 @@ + .SH NAME + iptraf \- Interactive Colorful IP LAN Monitor + .SH SYNOPSIS +-.BR iptraf " { [ " -f " ] [ " -q " ] [ { " -i ++.BR iptraf " { [ " \-f " ] [ " \-q " ] [ " \-u " ] [ { " \-i + .IR iface " | " +-.BR -g " | " -d ++.BR \-g " | " \-d + .IR iface " | " +-.BR -s ++.BR \-s + .IR iface " | " +-.BR -z ++.BR \-z + .IR iface " | " +-.BR -l ++.BR \-l + .IR iface " } [ " +-.BR -t ++.BR \-t + .IR timeout " ] [ " +-.BR -B " [ " +-.BR -L ++.BR \-B " [ " ++.BR \-L + .IR logfile " ] ] ] | [ " +-.BR -h " ] }" ++.BR \-h " ] }" + .br + .SH DESCRIPTION + .B iptraf +@@ -30,38 +30,38 @@ + .SH OPTIONS + These options can also be supplied to the command: + .TP +-.BI "-i " iface ++.BI "\-i " iface + immediately start the IP traffic monitor on the specified interface, or +-all interfaces if "-i all" is specified ++all interfaces if "\-i all" is specified + .TP +-.B "-g" ++.B "\-g" + immediately start the general interface statistics + .TP +-.BI "-d " iface ++.BI "\-d " iface + allows you to immediately start the detailed on the indicated interface (iface) + .TP +-.BI "-s " iface ++.BI "\-s " iface + allows you to immediately monitor TCP and UDP traffic on the specified interface (iface) + .TP +-.BI "-z " iface ++.BI "\-z " iface + shows packet counts by size on the specified interface + .TP +-.BI "-l " iface ++.BI "\-l " iface + start the LAN station monitor on the specified interface, or all LAN +-interfaces if "-l all" is specified ++interfaces if "\-l all" is specified + .TP +-.BI "-t " timeout ++.BI "\-t " timeout + tells IPTraf to run the specified facility for only + .I timeout + minutes. This option is used only with one of the above parameters. + .TP +-.B "-B" ++.B "\-B" + redirect standard output to /dev/null, closes standard input, and forks + the program into the background. Can be used only with one of the + facility invocation parameters above. Send the backgrounded process a + USR2 signal to terminate. + .TP +-.B "-L logfile" ++.B "\-L logfile" + allows you to specify an alternate log file name. The default log file + name is based on either the interface selected (detailed interface + statistics, TCP/UDP service statistics, packet size breakdown), or the +@@ -69,15 +69,19 @@ + path is not specified, the log file is placed in + .B /var/log/iptraf + .TP +-.B "-f" ++.B "\-f" + clears all locks and counters, causing this instance of IPTraf to think + it's the first one running. This should only be used to recover from + an abnormal termination or system crash. + .TP +-.BI "-q" ++.B "\-u" ++allow use of unsupported interfaces as ethernet devices. This is needed if ++you changed the name of an interface (ex: ip link set eth0 name foo0) ++.TP ++.BI "\-q" + no longer needed, maintained only for compatibility. + .TP +-.B "-h" ++.B "\-h" + shows a command summary + .SH SIGNALS + +@@ -86,7 +90,7 @@ + + .SH FILES + /var/log/iptraf/*.log - log file +- /var/local/iptraf/* - important IPTraf data files ++ /var/lib/iptraf/* - important IPTraf data files + + .SH SEE ALSO + Documentation/* - complete documentation written by the author +@@ -96,6 +100,6 @@ + Gerard Paul Java (riker@mozcom.com) + + .SH MANUAL AUTHOR +-Frederic Peters (fpeters@debian.org), using iptraf --help ++Frederic Peters (fpeters@debian.org), using iptraf \-h + General manual page modifications by Gerard Paul Java (riker@mozcom.com) + +--- iptraf-3.0.0.orig/Documentation/rvnamed.8 ++++ iptraf-3.0.0/Documentation/rvnamed.8 +@@ -11,7 +11,7 @@ + This program is only used by iptraf and, therefore, is useless alone. + + .SH FILES +- /var/local/iptraf/rvnamed.log - log file ++ /var/log/iptraf/rvnamed.log - log file + + .SH SEE ALSO + README.rvnamed - documentation from the author +--- iptraf-3.0.0.orig/src/ifstats.c ++++ iptraf-3.0.0/src/ifstats.c +@@ -32,7 +32,7 @@ + #include <arpa/inet.h> + #include <net/if_arp.h> + #include <linux/if_packet.h> +-#include <net/if.h> ++#include <linux/if.h> + #include <netinet/ip.h> + #include <netinet/tcp.h> + #include <netinet/udp.h> +@@ -129,7 +129,7 @@ + { + FILE *fd; + char buf[161]; +- char ifname[10]; ++ char ifname[18]; + struct iflist *itmp = NULL; + struct iflist *tail = NULL; + unsigned int index = 0; +@@ -433,7 +433,7 @@ + FILE *logfile = NULL; + + int br; +- char ifname[10]; ++ char ifname[18]; + + int ch; + +@@ -760,7 +760,7 @@ + char *tpacket; + unsigned int iphlen; + +- char ifname[10]; ++ char ifname[18]; + struct sockaddr_ll fromaddr; + unsigned short linktype; + +--- iptraf-3.0.0.orig/src/iptraf.c ++++ iptraf-3.0.0/src/iptraf.c +@@ -30,6 +30,7 @@ + #include <panel.h> + #include <signal.h> + #include <string.h> ++#include <locale.h> + #include <time.h> + #include <sys/types.h> + #include <sys/stat.h> +@@ -410,7 +411,7 @@ + { + printf("\nSyntax:\n"); + printf +- (" iptraf [ -f ] [ { -i iface | -g | -d iface | -s iface | -z iface |\n"); ++ (" iptraf [ -f ] [ -u ] [ { -i iface | -g | -d iface | -s iface | -z iface |\n"); + printf + (" -l iface } [ -t timeout ] [ -B ] [ -L logfile ] [-I interval] ] \n\n"); + printf +@@ -445,6 +446,8 @@ + ("-f - clear all locks and counters. Use with great caution.\n"); + printf + (" Normally used to recover from an abnormal termination.\n\n"); ++ printf ++ ("-u - allow use of unsupported interfaces as ethernet devices.\n"); + printf("IPTraf %s Copyright (c) Gerard Paul Java 1997-2004\n", + VERSION); + } +@@ -499,6 +502,8 @@ + } + #endif + ++ setlocale(LC_ALL, ""); ++ + strcpy(current_logfile, ""); + strcpy(graphing_logfile, ""); + strcpy(graphing_filter, ""); +@@ -616,6 +621,18 @@ + freopen("/dev/null", "r", stdin); + freopen("/dev/null", "w", stderr); + #endif ++ ++ /* Check whether LOCKDIR exists (/var/run is on a tmpfs in Ubuntu) */ ++ if(access(LOCKDIR,F_OK) != 0) { ++ if(mkdir(LOCKDIR, 0700) == -1) { ++ fprintf(stderr, "Cannot create %s: %s", LOCKDIR, strerror(errno)); ++ exit(1); ++ } ++ if(chown(LOCKDIR, 0, 0) == -1) { ++ fprintf(stderr, "Cannot change owner of %s: %s", LOCKDIR, strerror(errno)); ++ exit(1); ++ } ++ } + + initscr(); + +--- iptraf-3.0.0.orig/src/itrafmon.c ++++ iptraf-3.0.0/src/itrafmon.c +@@ -604,7 +604,7 @@ + int curwin = 0; + + int readlen; +- char ifname[10]; ++ char ifname[18]; + + unsigned long long total_pkts = 0; + +--- iptraf-3.0.0.orig/src/othptab.c ++++ iptraf-3.0.0/src/othptab.c +@@ -16,14 +16,28 @@ + + ***/ + ++/* ARP protocol opcodes. */ ++#define ARPOP_REQUEST 1 /* ARP request. */ ++#define ARPOP_REPLY 2 /* ARP reply. */ ++#define ARPOP_RREQUEST 3 /* RARP request. */ ++#define ARPOP_RREPLY 4 /* RARP reply. */ ++#define ARPOP_InREQUEST 8 /* InARP request. */ ++#define ARPOP_InREPLY 9 /* InARP reply. */ ++#define ARPOP_NAK 10 /* (ATM)ARP NAK. */ ++ ++ + #include <asm/types.h> ++#include "options.h" ++#include "tcptable.h" ++/*#include <linux/socket.h>*/ ++#include <linux/if.h> + #include <linux/if_ether.h> + #include <linux/if_tr.h> + #include <linux/if_fddi.h> ++#include <linux/if_arp.h> ++#include <netdb.h> + #include <winops.h> + #include "arphdr.h" +-#include "options.h" +-#include "tcptable.h" + #include "othptab.h" + #include "deskman.h" + #include "attrs.h" +--- iptraf-3.0.0.orig/src/ifstats.h ++++ iptraf-3.0.0/src/ifstats.h +@@ -6,7 +6,7 @@ + ***/ + + struct iflist { +- char ifname[8]; ++ char ifname[18]; + unsigned int encap; + unsigned long long iptotal; + unsigned long badtotal; +--- iptraf-3.0.0.orig/src/othptab.h ++++ iptraf-3.0.0/src/othptab.h +@@ -9,14 +9,12 @@ + #include <malloc.h> + #include <string.h> + #include <sys/types.h> +-#include <sys/socket.h> +-#include <netinet/in.h> ++#include <linux/socket.h> + #include <arpa/inet.h> + #include <netinet/ip_icmp.h> + #include <netinet/udp.h> + #include <curses.h> + #include <panel.h> +-#include <netdb.h> + #include <linux/if_ether.h> + #include "servname.h" + #include "addproto.h" +@@ -42,7 +40,7 @@ + int s_fstat; + int d_fstat; + unsigned int protocol; +- char iface[8]; ++ char iface[18]; + unsigned int pkt_length; + + union { +--- iptraf-3.0.0.orig/src/tcptable.h ++++ iptraf-3.0.0/src/tcptable.h +@@ -12,19 +12,17 @@ + #include <fcntl.h> + #include <curses.h> + #include <panel.h> +-#include <netdb.h> + #include <time.h> + #include <sys/types.h> +-#include <sys/socket.h> +-#include <netinet/in.h> +-#include <arpa/inet.h> +-#include <net/if_arp.h> + #include <asm/types.h> ++#include <linux/socket.h> ++#include <sys/socket.h> ++#include <linux/net.h> ++#include <linux/if.h> + #include <linux/if_packet.h> + #include <linux/if_ether.h> + #include <linux/if_fddi.h> + #include <linux/if_tr.h> +-#include <net/if.h> + #include <netinet/ip.h> + #include <netinet/udp.h> + #include "servname.h" +@@ -64,7 +62,7 @@ + unsigned long finack; + int partial; + int finsent; +- char ifname[8]; ++ char ifname[18]; + unsigned int index; + int reused; + int timedout; +--- iptraf-3.0.0.orig/src/Makefile ++++ iptraf-3.0.0/src/Makefile +@@ -31,11 +31,12 @@ + # options to be passed to the compiler. I don't believe they need to be + # modified (except for -m486 on non-Intel x86 platforms). + +-CFLAGS = -Wall #-O2 #-m486 ++CFLAGS = -Wall -g #-O2 #-m486 + DIRS = -DWORKDIR=\"$(WORKDIR)\" \ + -DLOGDIR=\"$(LOGDIR)\" -DEXECDIR=\"$(TARGET)\" + LDOPTS = #-static + ++ + # you may want to change this to point to your ncurses include directory + # if the ncurses include files are not in the default location. + +@@ -139,13 +140,11 @@ + + cleano: + rm -f *.o *~ +- strip iptraf +- strip rvnamed + + # installation rule + + install: +- @./install.sh $(TARGET) $(WORKDIR) $(LOGDIR) $(LOCKDIR) ++ @./install.sh $(TARGET) $(WORKDIR) $(LOGDIR) $(LOCKDIR) $(DESTDIR) + + # Upgrade rule + # +@@ -170,7 +169,6 @@ + /bin/cp -pR ../Documentation $(BINDIR) + mkdir $(BINDIR)/src + /bin/cp -p $(BINS) Makefile install.sh version $(BINDIR)/src +- strip $(BINDIR)/src/iptraf $(BINDIR)/src/rvnamed $(BINDIR)/src/rawtime + + #$(BINDIR)/src/updatefilters + +--- iptraf-3.0.0.orig/src/promisc.c ++++ iptraf-3.0.0/src/promisc.c +@@ -32,7 +32,7 @@ + #include <stdlib.h> + #include <string.h> + #include <netinet/in.h> +-#include <net/if.h> ++#include <linux/if.h> + #include <linux/if_ether.h> + #include "ifstats.h" + #include "ifaces.h" +@@ -49,7 +49,7 @@ + { + FILE *fd; + int ifd; +- char buf[8]; ++ char buf[18]; + struct promisc_states *ptmp; + struct promisc_states *tail = NULL; + struct ifreq ifr; +@@ -81,6 +81,7 @@ + */ + + if ((strncmp(buf, "eth", 3) == 0) || ++ (strncmp(buf, "ath", 3) == 0) || + (strncmp(buf, "fddi", 4) == 0) || + (strncmp(buf, "tr", 2) == 0) || + (strncmp(ptmp->params.ifname, "wvlan", 4) == 0) || +--- iptraf-3.0.0.orig/src/hostmon.c ++++ iptraf-3.0.0/src/hostmon.c +@@ -711,7 +711,7 @@ + int is_ip; + int ch; + +- char ifname[10]; ++ char ifname[18]; + + struct timeval tv; + unsigned long starttime; +--- iptraf-3.0.0.orig/src/serv.c ++++ iptraf-3.0.0/src/serv.c +@@ -739,7 +739,7 @@ + unsigned short linktype; + int br; + +- char iface[8]; ++ char iface[18]; + unsigned int idx = 1; + + unsigned int sport = 0; +--- iptraf-3.0.0.orig/src/packet.c ++++ iptraf-3.0.0/src/packet.c +@@ -31,13 +31,12 @@ + #include <netinet/tcp.h> + #include <sys/time.h> + #include <net/if_arp.h> +-#include <net/if.h> ++#include <linux/if.h> + #include <sys/ioctl.h> + #include <linux/if_packet.h> + #include <linux/if_ether.h> + #include <linux/if_fddi.h> + #include <linux/if_tr.h> +-#include <linux/isdn.h> + #include <linux/sockios.h> + #include <msgboxes.h> + #include "deskman.h" +@@ -79,6 +78,8 @@ + case ARPHRD_ETHER: + if (strncmp(ifname, "eth", 3) == 0) + result = LINK_ETHERNET; ++ else if (strncmp(ifname, "ath", 3) == 0) ++ result = LINK_ETHERNET; + else if (strncmp(ifname, "plip", 4) == 0) + result = LINK_PLIP; + else if (strncmp(ifname, "fddi", 4) == 0) /* For some Ethernet- */ +@@ -101,6 +102,8 @@ + result = LINK_ETHERNET; + else if (strncmp(ifname, "tun", 3) == 0) + result = LINK_ETHERNET; ++ else if (strncmp(ifname, "ra", 2) == 0) ++ result = LINK_ETHERNET; + else if (strncmp(ifname, "vlan", 3) == 0) + result = LINK_VLAN; + else if (strncmp(ifname, "brg", 3) == 0) +--- iptraf-3.0.0.orig/src/rvnamed.c ++++ iptraf-3.0.0/src/rvnamed.c +@@ -219,6 +219,9 @@ + signal(SIGCHLD, childreap); + + logfile = fopen(RVNDLOGFILE, "a"); ++ if ( logfile == NULL ) { /* unable to open file -> /dev/null */ ++ logfile = fopen("/dev/null", "a"); ++ } + + if (logfile == NULL) + logfile = fopen("/dev/null", "a"); +--- iptraf-3.0.0.orig/src/rvnamed.h ++++ iptraf-3.0.0/src/rvnamed.h +@@ -1,9 +1,9 @@ + #include <netinet/in.h> + #include <arpa/inet.h> + +-#define CHILDSOCKNAME "/dev/rvndcldcomsk" +-#define PARENTSOCKNAME "/dev/rvndpntcomsk" +-#define IPTSOCKNAME "/dev/rvndiptcomsk" ++#define CHILDSOCKNAME "/var/run/rvndcldcomsk" ++#define PARENTSOCKNAME "/var/run/rvndpntcomsk" ++#define IPTSOCKNAME "/var/run/rvndiptcomsk" + + #define SOCKET_PREFIX "isock" + +--- iptraf-3.0.0.orig/src/ifaces.c ++++ iptraf-3.0.0/src/ifaces.c +@@ -24,7 +24,7 @@ + #include <sys/ioctl.h> + #include <sys/socket.h> + #include <netinet/in.h> +-#include <net/if.h> ++#include <linux/if.h> + #include <fcntl.h> + #include <string.h> + #include <linux/if_packet.h> +@@ -32,14 +32,15 @@ + #include "error.h" + + extern int accept_unsupported_interfaces; +-#define NUM_SUPPORTED_IFACES 26 ++#define NUM_SUPPORTED_IFACES 28 + + extern int daemonized; + + char ifaces[][6] = + { "lo", "eth", "sl", "ppp", "ippp", "plip", "fddi", "isdn", "dvb", + "pvc", "hdlc", "ipsec", "sbni", "tr", "wvlan", "wlan", "sm2", "sm3", +- "pent", "lec", "brg", "tun", "tap", "cipcb", "tunl", "vlan" ++ "pent", "lec", "brg", "tun", "tap", "cipcb", "tunl", "vlan", "ath", ++ "ra" + }; + + char *ltrim(char *buf) +@@ -102,7 +103,7 @@ + int iface_supported(char *iface) + { + int i; +- ++ + if (accept_unsupported_interfaces) + return 1; + +--- iptraf-3.0.0.orig/src/isdntab.h ++++ iptraf-3.0.0/src/isdntab.h +@@ -1,3 +1,87 @@ ++/* copied from Linux ISDN subsystem for inclusion in iptraf */ ++ ++/* Linux ISDN subsystem, main header ++ * ++ * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) ++ * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg ++ * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) ++ * Copyright 2000-2002 by Kai Germaschewski (kai@germaschewski.name) ++ * ++ * This software may be used and distributed according to the terms ++ * of the GNU General Public License, incorporated herein by reference. ++ * ++ */ ++ ++/* Packet encapsulations for net-interfaces */ ++#define ISDN_NET_ENCAP_ETHER 0 ++#define ISDN_NET_ENCAP_RAWIP 1 ++#define ISDN_NET_ENCAP_IPTYP 2 ++#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */ ++#define ISDN_NET_ENCAP_SYNCPPP 4 ++#define ISDN_NET_ENCAP_UIHDLC 5 ++#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */ ++#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt*/ ++#define ISDN_NET_ENCAP_NR 8 ++ ++/* New ioctl-codes */ ++#define IIOCNETAIF _IO('I',1) ++#define IIOCNETDIF _IO('I',2) ++#define IIOCNETSCF _IO('I',3) ++#define IIOCNETGCF _IO('I',4) ++#define IIOCNETANM _IO('I',5) ++#define IIOCNETDNM _IO('I',6) ++#define IIOCNETGNM _IO('I',7) ++#define IIOCGETSET _IO('I',8) /* no longer supported */ ++#define IIOCSETSET _IO('I',9) /* no longer supported */ ++#define IIOCSETVER _IO('I',10) ++#define IIOCNETHUP _IO('I',11) ++#define IIOCSETGST _IO('I',12) ++#define IIOCSETBRJ _IO('I',13) ++#define IIOCSIGPRF _IO('I',14) ++#define IIOCGETPRF _IO('I',15) ++#define IIOCSETPRF _IO('I',16) ++#define IIOCGETMAP _IO('I',17) ++#define IIOCSETMAP _IO('I',18) ++#define IIOCNETASL _IO('I',19) ++#define IIOCNETDIL _IO('I',20) ++#define IIOCGETCPS _IO('I',21) ++#define IIOCGETDVR _IO('I',22) ++ ++ ++typedef struct { ++ char name[10]; /* Name of interface */ ++ char master[10]; /* Name of Master for Bundling */ ++ char slave[10]; /* Name of Slave for Bundling */ ++ char eaz[256]; /* EAZ/MSN */ ++ char drvid[25]; /* DriverId for Bindings */ ++ int onhtime; /* Hangup-Timeout */ ++ int charge; /* Charge-Units */ ++ int l2_proto; /* Layer-2 protocol */ ++ int l3_proto; /* Layer-3 protocol */ ++ int p_encap; /* Encapsulation */ ++ int exclusive; /* Channel, if bound exclusive */ ++ int dialmax; /* Dial Retry-Counter */ ++ int slavedelay; /* Delay until slave starts up */ ++ int cbdelay; /* Delay before Callback */ ++ int chargehup; /* Flag: Charge-Hangup */ ++ int ihup; /* Flag: Hangup-Timeout on incoming line */ ++ int secure; /* Flag: Secure */ ++ int callback; /* Flag: Callback */ ++ int cbhup; /* Flag: Reject Call before Callback */ ++ int pppbind; /* ippp device for bindings */ ++ int chargeint; /* Use fixed charge interval length */ ++ int triggercps; /* BogoCPS needed for triggering slave */ ++ int dialtimeout; /* Dial-Timeout */ ++ int dialwait; /* Time to wait after failed dial */ ++ int dialmode; /* Flag: off / on / auto */ ++} isdn_net_ioctl_cfg; ++ ++ ++ ++ ++/* end of copied part */ ++ ++ + struct isdntabent { + char ifname[10]; + unsigned int encap; +--- iptraf-3.0.0.orig/src/isdntab.c ++++ iptraf-3.0.0/src/isdntab.c +@@ -20,7 +20,6 @@ + #include <stdlib.h> + #include <string.h> + #include <sys/ioctl.h> +-#include <linux/isdn.h> + #include "isdntab.h" + + +--- iptraf-3.0.0.orig/src/pktsize.c ++++ iptraf-3.0.0/src/pktsize.c +@@ -25,7 +25,7 @@ + #include <sys/time.h> + #include <sys/ioctl.h> + #include <sys/socket.h> +-#include <net/if.h> ++#include <linux/if.h> + #include <netinet/in.h> + #include <linux/if_ether.h> + #include <linux/if_packet.h> +--- iptraf-3.0.0.orig/src/promisc.h ++++ iptraf-3.0.0/src/promisc.h +@@ -9,7 +9,7 @@ + */ + + struct promisc_params { +- char ifname[8]; ++ char ifname[18]; + int saved_state; + int state_valid; + }; +--- iptraf-3.0.0.orig/src/install.sh ++++ iptraf-3.0.0/src/install.sh +@@ -18,37 +18,38 @@ + WORKDIR=$2 + LOGDIR=$3 + LOCKDIR=$4 ++DESTDIR=$5 + + echo + echo "*** Installing executable programs and preparing work directories" + echo + echo ">>> Installing iptraf in $TARGET" +-$INSTALL -m 0700 -o root -g root -s iptraf $TARGET ++$INSTALL -m 0700 -o root -g root iptraf $DESTDIR/$TARGET + echo ">>> Installing rvnamed in $TARGET" +-$INSTALL -m 0700 -o root -g root -s rvnamed $TARGET ++$INSTALL -m 0700 -o root -g root rvnamed $DESTDIR/$TARGET + +-if [ ! -d $WORKDIR ]; then ++if [ ! -d $DESTDIR/$WORKDIR ]; then + echo ">>> Creating IPTraf work directory $WORKDIR" + else + echo ">>> IPTraf work directory $WORKDIR already exists" +- rm -f $WORKDIR/othfilter.dat ++ rm -f $DESTDIR/$WORKDIR/othfilter.dat + fi + +-$INSTALL -m 0700 -o root -g root -d $WORKDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$WORKDIR + +-if [ ! -d $LOGDIR ]; then ++if [ ! -d $DESTDIR/$LOGDIR ]; then + echo ">>> Creating IPTraf log directory $LOGDIR" + else + echo ">>> IPTraf log directory $LOGDIR already exists" + fi +-$INSTALL -m 0700 -o root -g root -d $LOGDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$LOGDIR + +-if [ ! -d $LOCKDIR ]; then ++if [ ! -d $DESTDIR/$LOCKDIR ]; then + echo ">>> Creating IPTraf lockfile directory $LOCKDIR" + else + echo ">>> IPTraf lockfile directory $LOCKDIR already exists" + fi +-$INSTALL -m 0700 -o root -g root -d $LOCKDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$LOCKDIR + echo + echo + echo "*** iptraf, and rvnamed executables are in $TARGET" +@@ -56,25 +57,27 @@ + + ################# Filter clearing for 3.0 ########################## + +-if [ ! -f $WORKDIR/version ]; then ++if [ ! -f $DESTDIR/$WORKDIR/version ]; then + echo ">>> Clearing old filter list" +- if [ -f $WORKDIR/tcpfilters.dat ]; then +- mv -f $WORKDIR/tcpfilters.dat $WORKDIR/tcpfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/tcpfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/tcpfilters.dat $DESTDIR/$WORKDIR/tcpfilters.dat~ + fi + +- if [ -f $WORKDIR/udpfilters.dat ]; then +- mv -f $WORKDIR/udpfilters.dat $WORKDIR/udpfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/udpfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/udpfilters.dat $DESTDIR/$WORKDIR/udpfilters.dat~ + fi + +- if [ -f $WORKDIR/othipfilters.dat ]; then +- mv -f $WORKDIR/othipfilters.dat $WORKDIR/othipfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/othipfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/othipfilters.dat $DESTDIR/$WORKDIR/othipfilters.dat~ + fi + +- rm -f $WORKDIR/savedfilters.dat ++ rm -f $DESTDIR/$WORKDIR/savedfilters.dat + fi + #################################################################### + +-cat version > $WORKDIR/version ++cat version > $DESTDIR/$WORKDIR/version ++ ++exit 0 + + echo + echo +--- iptraf-3.0.0.orig/src/tr.c ++++ iptraf-3.0.0/src/tr.c +@@ -7,7 +7,7 @@ + */ + + #include <asm/types.h> +-#include <linux/if_tr.h> ++#include <netinet/if_tr.h> + #include <netinet/in.h> + + unsigned int get_tr_ip_offset(unsigned char *pkt) +--- iptraf-3.0.0.orig/debian/manpages ++++ iptraf-3.0.0/debian/manpages +@@ -0,0 +1,2 @@ ++Documentation/iptraf.8 ++Documentation/rvnamed.8 +--- iptraf-3.0.0.orig/debian/dirs ++++ iptraf-3.0.0/debian/dirs +@@ -0,0 +1,7 @@ ++etc/logrotate.d ++usr/sbin ++usr/lib/iptraf ++usr/share/doc-base/ ++var/lib/iptraf/ ++var/run/iptraf/ ++ +--- iptraf-3.0.0.orig/debian/README.debian ++++ iptraf-3.0.0/debian/README.debian +@@ -0,0 +1,16 @@ ++iptraf for Debian ++----------------- ++ ++Since 2.1.1, old config files (versions below 1.4.0) won't be updated to the ++new format. Binary config files are a pain; let's suffer :( (old tools don't ++compile anymore) ++ ++IPTraf does _not_ work with IPv6. you've been warned. ++ ++IPTraf for Debian supports wvlan and lec interfaces that upstream doesn't ++support by lack of thorough testing. This support is here since users ++requested it but no tests have been done ! ++ ++-- ++Frederic Peters <fpeters@debian.org>, Wed, 19 Dec 2001 10:27:54 +0100 ++ +--- iptraf-3.0.0.orig/debian/changelog ++++ iptraf-3.0.0/debian/changelog +@@ -0,0 +1,424 @@ ++iptraf (3.0.0-6) unstable; urgency=low ++ ++ * src/ifaces.c: added support for raX interfaces (closes: #281315) ++ * debian/menu: updated to new menu policy (froms Apps/Net to Applications / ++ Network / Monitoring) ++ * src/iptraf.c: added call to setlocale() (closes: #328186, #327147) (that ++ I couldn't reproduce anyway) ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 29 Sep 2007 12:42:56 +0200 ++ ++iptraf (3.0.0-5) unstable; urgency=low ++ ++ * src/Makefile, src/install.sh: always use -g, and don't strip binaries ++ (closes: #437229) ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 15 Aug 2007 15:36:49 +0200 ++ ++iptraf (3.0.0-4) unstable; urgency=low ++ ++ * src/ifaces.c: incremented NUM_SUPPORTED_IFACES so that ath devices are ++ recognised correctly. (closes: #413212) ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 3 Mar 2007 13:35:58 +0100 ++ ++iptraf (3.0.0-3) unstable; urgency=low ++ ++ * Sync with Ubuntu fixes (by Oliver Grawert and Michael Vogt) ++ * added fix for /var/run detection (since it is a tmpfs by default on ++ Ubuntu) [and fixed ubuntu fix] ++ * added support for ath devices ++ * fixed FTBFS by changing linux/if_tr.h to netinet/if_tr.h ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 15 Oct 2006 13:34:14 +0200 ++ ++iptraf (3.0.0-2) unstable; urgency=low ++ ++ * src/ifaces.c: remove duplicated patch, it had been applied upstream and I ++ missed it. (closes: #379539) ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 24 Jul 2006 11:02:29 +0200 ++ ++iptraf (3.0.0-1) unstable; urgency=low ++ ++ * New upstream release. (closes: #370577) ++ * Oops, I missed it, thansk for the bug report. ++ * Updated patches to work against this version. ++ * Supports vlan interfaces (closes: #168202, #226577) ++ * Supports bridged interfaces (closes: #215535) ++ * debian/copyright: updated copyright & license information. ++ * debian/rules: partly updated to newer debhelper helpers. ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 6 Jun 2006 07:36:49 +0200 ++ ++iptraf (2.7.0-8) unstable; urgency=low ++ ++ * src/*.[ch]: shaked up headers so it compiles with current libc and linux ++ headers (closes: #323319) ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 16 Aug 2005 10:24:50 +0200 ++ ++iptraf (2.7.0-7) unstable; urgency=low ++ ++ * Documentation/iptraf.8: use \- to denote the dash signs before options. ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 26 Feb 2005 10:37:01 +0100 ++ ++iptraf (2.7.0-6) unstable; urgency=low ++ ++ * Creates rvnamed sockets in /var/run/ (closes: #272958) ++ * debian/menu: quote needs and section. ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 23 Sep 2004 10:05:55 +0200 ++ ++iptraf (2.7.0-5) unstable; urgency=low ++ ++ * Include bits from <linux/isdn.h> to get iptraf working without inclusion ++ of this kernel header (closes: #219757) ++ * Do not test for TERM if running daemonized (closes: #222525) ++ * Document -u in the manpage (closes: #147447, #199888) ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 11 Dec 2003 13:45:00 +0100 ++ ++iptraf (2.7.0-4) unstable; urgency=low ++ ++ * debian/menu: fixed su-to-root in menu item (closes: #188078) ++ * debian/control: removed note about Linux kernel >= 2.2 ++ * debian/control: updated policy to 3.6.1.0, no changes needed. ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 30 Aug 2003 23:16:41 +0200 ++ ++iptraf (2.7.0-3) unstable; urgency=low ++ ++ * Added support for vlan interfaces. (patch by Ard van Breemen) ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 11 Nov 2002 17:52:22 +0100 ++ ++iptraf (2.7.0-2) unstable; urgency=low ++ ++ * debian/iptraf-manual: there is no longer a plain text manual. ++ (closes: #149648) ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 11 Jun 2002 11:40:45 +0200 ++ ++iptraf (2.7.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream fixes detailed interface statitistics screen. (closes: #146851) ++ * Upstream has support for renamed interfaces. (closes: #128175) ++ but no documentation for it (doesn't close: 147447...) ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 22 May 2002 09:31:32 +0200 ++ ++iptraf (2.6.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream added percentage broadcast packet. (closes: #119915) ++ * Upstream applied my patch for renamed interfaces. (closes: #128175) ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 1 May 2002 11:46:31 +0200 ++ ++iptraf (2.5.0-4) unstable; urgency=low ++ ++ * debian/logrotate: s/USR/USR1/ (closes: #131106) ++ * No longer hangs with resolver daemon (closes: #83522) ++ * debian/postrm: remove /var/run/iptraf on purge (closes: #129907) ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 27 Jan 2002 13:51:48 +0100 ++ ++iptraf (2.5.0-3) unstable; urgency=low ++ ++ * debian/postinst: fixed spelling mistake itpraf -> iptraf. Caused old ++ script to rotate logs not to be renamed. (closes: #129744) ++ ++ -- Frederic Peters <fpeters@debian.org> Fri, 18 Jan 2002 12:33:38 +0100 ++ ++iptraf (2.5.0-2) unstable; urgency=low ++ ++ * debian/menu: use su-to-root to launch iptraf from menu. (closes: #128144) ++ * debian/doc: removed README.Documentation since it talks about installing ++ documentation and this is already done by the package. (closes: #126932) ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 7 Jan 2002 21:31:09 +0100 ++ ++iptraf (2.5.0-1) unstable; urgency=low ++ ++ * New upstream release. (closes: #125726) ++ * Upstream source tarball no longer contains compiled binaries. ++ (closes: #122677) ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 19 Dec 2001 10:10:07 +0100 ++ ++iptraf (2.4.0-4) unstable; urgency=low ++ ++ * debian/logrotate: don't fail if iptraf is not running. (closes: #122692) ++ * debian/copyright: corrected licences -> licenses ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 6 Dec 2001 19:17:39 +0100 ++ ++iptraf (2.4.0-3) unstable; urgency=low ++ ++ * debian/logrotate: added USR1 signal sending after logrotate rotated the ++ logfiles. (notification by Sebastian Henschel <shensche@defcom.de>) ++ * debian/changelog: removed emacs cruft from the end of the file. ++ * src/Makefile: removed -g from gcc flags. ++ * debian/rules, src/Makefile: added support for DEB_BUILD_OPTIONS ++ * debian/control: updated Standard-Versions to 3.5.6.0 ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 27 Nov 2001 13:36:37 +0100 ++ ++iptraf (2.4.0-2) unstable; urgency=low ++ ++ * Fixed logfile directory location in rvnamed manpage (Closes: #99455) ++ * Added support for lec interfaces. ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 2 Jul 2001 11:34:39 +0200 ++ ++iptraf (2.4.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream includes /etc/ethers patch. ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 11 Apr 2001 11:19:26 +0200 ++ ++iptraf (2.3.1-2) unstable; urgency=low ++ ++ * Patched so it can use /etc/ethers like tcpdump (Closes: #32134) ++ * debian/postinst: as a consequence it no longer creates ethernet.desc ++ from an existing /etc/ethers ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 19 Dec 2000 20:35:25 +0100 ++ ++iptraf (2.3.1-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 9 Dec 2000 16:42:35 +0100 ++ ++iptraf (2.2.2-3) unstable; urgency=high ++ ++ * applied patch to support wvlan interfaces (patch by eichin@thok.org) ++ (closes: #70875) ++ * fixed rvnamed so it doesn't segfault (and makes iptraf locking up) ++ when /var/log/iptraf doesn't exist. (closes: #71487) ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 27 Nov 2000 18:21:21 +0100 ++ ++iptraf (2.2.2-2) unstable; urgency=high ++ ++ * debian/rules: rename old /etc/cron.daily/iptraf to /e/c.d/iptraf.obsolete ++ since we now use logrotate (and dpkg won't remove it automatically) ++ (closes: #72998) ++ * debian/logrotate: added notifempty statemente ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 16 Oct 2000 22:37:54 +0200 ++ ++iptraf (2.2.2-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 24 Aug 2000 19:22:07 +0200 ++ ++iptraf (2.1.1-5) unstable; urgency=low ++ ++ * create log directory in postinst since it will only be removed by purge ++ (ie not remove) (closes: #58961) ++ ++ -- Frederic Peters <fpeters@debian.org> Wed, 1 Mar 2000 15:08:34 +0100 ++ ++iptraf (2.1.1-4) frozen unstable; urgency=high ++ ++ * recompiled against libncurses5 ++ * debian/control: fixed Build-Depends line (libncurses4-dev has been ++ replaced by libncurses-dev)/ (closes: #56376) ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 29 Jan 2000 01:50:53 +0100 ++ ++iptraf (2.1.1-3) frozen unstable; urgency=low ++ ++ * debian/postinst: iptraf wouldn't install because of /var/state/iptraf ++ no longer existing. (closes: #56147) ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 25 Jan 2000 23:14:25 +0100 ++ ++iptraf (2.1.1-2) unstable; urgency=low ++ ++ * /var/lib/iptraf was not created ++ ++ -- Frederic Peters <fpeters@debian.org> Tue, 21 Dec 1999 17:10:40 +0100 ++ ++iptraf (2.1.1-1) unstable; urgency=high ++ ++ * Maintainer upload :) ++ * Closes: #52341 and #52837 (rvnamed not working) ++ * Closes: #52548 (/usr/doc/iptraf not existing) ++ * Closes: #51801 (make building in live fs) ++ ++ -- Frederic Peters <fpeters@debian.org> Fri, 17 Dec 1999 17:45:57 +0100 ++ ++iptraf (2.1.1-0.2) unstable; urgency=low ++ ++ * Another NMU requested by Frederic. ++ * debian/postinst: Fixed move from /var/lib/iptraf to /var/state/iptraf ++ to work in all cases (closes: #51712). ++ * debian/postinst: Commented out the config file conversion tools. ++ I can't get them to compile anymore :( ++ ++ -- Torsten Landschoff <torsten@debian.org> Sat, 4 Dec 1999 12:04:51 +0100 ++ ++iptraf (2.1.1-0.1) unstable; urgency=low ++ ++ * Debian QA Upload as requested by Frederic. ++ * New upstream release (closes: #50804). ++ * New features: ++ - New filter for non-IP packages (closes: #44420). ++ - Ctrl-L does redraw the screen now (closes: #43848). ++ * debian/control: Added Build-Depends, updated Standards-Version. ++ * debian/rules: Updated to adjust for changes in upstream source: ++ * Removed the old configfile conversion tools. I don't think they ++ are worth the effort. ++ ++ -- Torsten Landschoff <torsten@debian.org> Tue, 23 Nov 1999 17:49:23 +0100 ++ ++iptraf (2.0.2-5) unstable; urgency=low ++ ++ * Added 'missingok' to logrotate.d/iptraf . (bug#44794) ++ ++ -- Frederic Peters <fpeters@debian.org> Fri, 10 Sep 1999 20:14:56 +0200 ++ ++iptraf (2.0.2-4) unstable; urgency=low ++ ++ * Updated debian/rules to build with newer debhelper ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 9 Sep 1999 18:32:00 +0200 ++ ++iptraf (2.0.2-3) unstable; urgency=low ++ ++ * Moved to logrotate (it should now be compliant with policy 3.0.1) ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 5 Sep 1999 19:56:59 +0200 ++ ++iptraf (2.0.2-2) unstable; urgency=low ++ ++ * Fixed postinst removal of /etc/iptraf.cfg (Bug#43625) ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 29 Aug 1999 02:32:41 +0200 ++ ++iptraf (2.0.2-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 29 Jul 1999 22:48:35 +0200 ++ ++iptraf (1.4.2-2) unstable; urgency=low ++ ++ * debian/rules : fixed a few errors (Fixes Bug#32265) ++ * debian/postinst : improved handling of converting format from ++ older releases ++ * Converting /etc/ethers (from tcpdump) to iptraf's ethernet.desc ++ (Fixes Bug#32134) ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 30 Jan 1999 17:52:27 +0100 ++ ++iptraf (1.4.2-1) unstable; urgency=low ++ ++ * New upstream release (Fixes Bug#31805) ++ * Switched to debhelper ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 18 Jan 1999 16:47:38 +0100 ++ ++iptraf (1.4.1-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 4 Jan 1999 19:59:53 +0100 ++ ++iptraf (1.3.0-5) frozen unstable; urgency=low ++ ++ * Fixed a typo in postrm (Bug#30559) ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 13 Dec 1998 18:45:31 +0100 ++ ++iptraf (1.3.0-4.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * make 3.77-2 apparently doesn't like `*.h' as target ++ ++ -- Paul Slootman <paul@debian.org> Mon, 12 Oct 1998 20:41:28 +0200 ++ ++iptraf (1.3.0-4) unstable; urgency=low ++ ++ * (Re) Added daily maintenance of log file. ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 5 Oct 1998 21:40:04 +0200 ++ ++iptraf (1.3.0-3) unstable; urgency=low ++ ++ * New versions aren't just for Alpha people :) ++ ++ -- Frederic Peters <fpeters@debian.org> Thu, 24 Sep 1998 23:04:33 +0200 ++ ++iptraf (1.3.0-2.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * fixed creation of /var/log/iptraf (should be $DESTDIR/var/log/iptraf) ++ ++ -- Paul Slootman <paul@debian.org> Thu, 24 Sep 1998 00:31:19 +0200 ++ ++iptraf (1.3.0-2) unstable; urgency=low ++ ++ * Made it upgrade right from both 1.1 and 1.2 releases. ++ * Version 1.3.0 brings a warning message at startup when IP Masquerading is enabled in the kernel. This can be boring so I add a new switch (-q). ++ ++ -- Frederic Peters <fpeters@debian.org> Mon, 21 Sep 1998 08:11:33 +0200 ++ ++iptraf (1.3.0-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters <fpeters@debian.org> Sun, 20 Sep 1998 22:57:54 +0200 ++ ++iptraf (1.2.0-2) unstable; urgency=low ++ ++ * Added PLIP to included interfaces (fixes #26376) ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 19 Sep 1998 11:08:24 +0200 ++ ++iptraf (1.2.0-1) unstable; urgency=low ++ ++ * New maintainer. ++ * New upstream release. ++ * Moved configuration files from /var/lib/iptraf/ to /etc/iptraf/. ++ * Moved log files from /var/lib/iptraf/ to /var/log/. ++ * Removed '-m486' flag in Makefile (fixes #20989). ++ * Created man pages. ++ * Added doc-base support. ++ ++ -- Frederic Peters <fpeters@debian.org> Sat, 27 Jun 1998 15:30:28 +0200 ++ ++iptraf (1.1.0-3) unstable; urgency=low ++ ++ * New maintainer. ++ * Many new improvements to package design. ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Mon, 6 Apr 1998 18:16:04 -0400 ++ ++iptraf (1.1.0-2) unstable; urgency=low ++ ++ * path to rvnamed was wrong and thus rvnamed was not loaded when needed. ++ * Clean up *.rej files. Sigh. ++ ++ -- Christoph Lameter <chris@waterf.org> Sat, 28 Feb 1998 09:13:59 -0800 ++ ++iptraf (1.1.0-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Christoph Lameter <chris@waterf.org> Sat, 28 Feb 1998 07:53:14 -0800 ++ ++iptraf (1.0-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Christoph Lameter <chris@waterf.org> Sat, 3 Jan 1998 21:59:02 -0800 ++ +--- iptraf-3.0.0.orig/debian/control ++++ iptraf-3.0.0/debian/control +@@ -0,0 +1,15 @@ ++Source: iptraf ++Section: net ++Priority: optional ++Maintainer: Frederic Peters <fpeters@debian.org> ++Build-Depends: debhelper (>= 5.0.0-1), libncurses-dev ++Standards-Version: 3.7.2.0 ++ ++Package: iptraf ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: Interactive Colorful IP LAN Monitor ++ IPTraf is an ncurses-based IP LAN monitor that generates ++ various network statistics including TCP info, UDP counts, ++ ICMP and OSPF information, Ethernet load info, node stats, ++ IP checksum errors, and others. +--- iptraf-3.0.0.orig/debian/copyright ++++ iptraf-3.0.0/debian/copyright +@@ -0,0 +1,29 @@ ++This package is maintained by Frederic Peters <fpeters@debian.org>. ++ ++It was downloaded from: ++ ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz ++ ++ ++Copyright (c) Gerard Paul Java 1997-2005 ++ ++IPTraf is open-source software, distributed under the terms of the GNU ++General Public License, Version 2, or (at your option) any later version. ++ ++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., 51 ++Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++ ++On Debian GNU/Linux systems, the complete text of the GNU General Public ++License can be found in `/usr/share/common-licenses/GPL'. ++ +--- iptraf-3.0.0.orig/debian/docs ++++ iptraf-3.0.0/debian/docs +@@ -0,0 +1,8 @@ ++README ++README.interfaces ++README.platforms ++README.rvnamed ++README.contact ++FAQ ++RELEASE-NOTES ++ +--- iptraf-3.0.0.orig/debian/postinst ++++ iptraf-3.0.0/debian/postinst +@@ -0,0 +1,66 @@ ++#!/bin/sh ++ ++set -e ++ ++case "$1" in ++ configure) ++ if [ -e /etc/iptraf.cfg ] ++ then ++ # old, incompatible, binary config file - I won't miss you :) ++ rm -f /etc/iptraf.cfg ++ fi ++ ++ if command -v install-docs >/dev/null 2>&1; then ++ install-docs -i /usr/share/doc-base/iptraf ++ fi ++ ++ if [ ! -d /var/lib/iptraf ]; then ++ mkdir /var/lib/iptraf ++ fi ++ ++ if [ -e /var/state/iptraf ]; then ++ find /var/state/iptraf -mindepth 1 -maxdepth 1 \ ++ -exec mv \{\} /var/lib/iptraf/ \; ++ rmdir /var/state/iptraf || true ++ fi ++ ++ # log files may have sensitive data ++ test -d /var/log/iptraf || mkdir /var/log/iptraf ++ chmod 0700 /var/log/iptraf ++ ++ # renaming old logfile rotator since it is marked as conffile and dpkg won't ++ # remove it (reported as Bug#72998 by Josip Rodin <joy@cibalia.gkvk.hr> ++ test -e /etc/cron.daily/iptraf && \ ++ mv /etc/cron.daily/iptraf /etc/cron.daily/iptraf.obsolete ++ ++ # filters changed in 3.0, move them away (copied from in src/install.sh) ++ WORKDIR=/var/lib/iptraf/ ++ if [ -z "$2" ] || dpkg --compare-versions "$2" lt 3.0.0-1 ; then ++ if [ -f $WORKDIR/tcpfilters.dat ]; then ++ mv -f $WORKDIR/tcpfilters.dat $WORKDIR/tcpfilters.dat~ ++ fi ++ ++ if [ -f $WORKDIR/udpfilters.dat ]; then ++ mv -f $WORKDIR/udpfilters.dat $WORKDIR/udpfilters.dat~ ++ fi ++ ++ if [ -f $WORKDIR/othipfilters.dat ]; then ++ mv -f $WORKDIR/othipfilters.dat $WORKDIR/othipfilters.dat~ ++ fi ++ ++ rm -f $WORKDIR/savedfilters.dat ++ fi ++ ;; ++ ++ abort-upgrade|abort-remove|abort-deconfigure) ++ ;; ++ ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 1 ++ ;; ++esac ++ ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/menu ++++ iptraf-3.0.0/debian/menu +@@ -0,0 +1,4 @@ ++?package(iptraf):needs="text" \ ++ section="Applications/Network/Monitoring" \ ++ title="IPTraf" hints="Monitoring" \ ++ command="/usr/bin/su-to-root -c /usr/sbin/iptraf" +--- iptraf-3.0.0.orig/debian/iptraf-manual ++++ iptraf-3.0.0/debian/iptraf-manual +@@ -0,0 +1,11 @@ ++Document: iptraf ++Title: IPTraf User's Manual ++Author: Gerard Paul Java ++Abstract: This document is the User's Manual for IPTraf 2.7.0. ++ Documented here are the features of the program and instructions on its use. ++Section: Apps/Net ++ ++Format: HTML ++Index: /usr/share/doc/iptraf/html/manual.html ++Files: /usr/share/doc/iptraf/html/manual.html ++ +--- iptraf-3.0.0.orig/debian/rules ++++ iptraf-3.0.0/debian/rules +@@ -0,0 +1,78 @@ ++#!/usr/bin/make -f ++# Made with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++makeopts := \ ++ WORKDIR=/var/lib/iptraf \ ++ LOGDIR=/var/log/iptraf \ ++ TARGET=/usr/sbin \ ++ DESTDIR=$(shell pwd)/debian/iptraf ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ cd src; make $(makeopts) ++ ++ cp Documentation/README README.Documentation ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ rm -f README.Documentation ++ ++ # Add here commands to clean up after the build process. ++ -cd src; make clean ++ dh_clean ++ ++# Build architecture-independent files here. ++binary-indep: build ++ ++# Build architecture-dependent files here. ++binary-arch: build ++# dh_testversion ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # commands to install the files into debian/iptraf ++ cp debian/iptraf-manual debian/iptraf/usr/share/doc-base/iptraf ++ ++ cd src; $(MAKE) install $(makeopts) ++ ++ dh_installdocs ++ dh_installmenu ++ dh_installlogrotate ++ dh_installman -A ++ dh_installchangelogs CHANGES ++ ++ mkdir debian/iptraf/usr/share/doc/iptraf/html ++ mkdir debian/iptraf/usr/share/doc/iptraf/html/stylesheet-images/ ++ cp Documentation/*.html debian/iptraf/usr/share/doc/iptraf/html/ ++ cp Documentation/stylesheet-images/*.gif debian/iptraf/usr/share/doc/iptraf/html/stylesheet-images/ ++ dh_strip ++ dh_compress ++ dh_fixperms ++ chmod 0750 debian/iptraf/var/log/iptraf ++ ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary ++ +--- iptraf-3.0.0.orig/debian/postrm ++++ iptraf-3.0.0/debian/postrm +@@ -0,0 +1,18 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ $1 = purge ]; then ++ if [ -e /etc/iptraf.cfg ]; then ++ rm --force /etc/iptraf.cfg ++ fi ++ if [ -d /var/log/iptraf ]; then ++ rm -rf /var/log/iptraf ++ fi ++ if [ -d /var/lib/iptraf ]; then ++ rm -rf /var/lib/iptraf ++ fi ++fi ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/prerm ++++ iptraf-3.0.0/debian/prerm +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++if command -v install-docs >/dev/null 2>&1; then ++ install-docs -r iptraf ++fi ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/compat ++++ iptraf-3.0.0/debian/compat +@@ -0,0 +1 @@ ++5 +--- iptraf-3.0.0.orig/debian/iptraf.logrotate ++++ iptraf-3.0.0/debian/iptraf.logrotate +@@ -0,0 +1,12 @@ ++ ++/var/log/iptraf/*.log { ++ rotate 7 ++ daily ++ compress ++ missingok ++ notifempty ++ postrotate ++ /usr/bin/killall -USR1 iptraf 2> /dev/null || : ++ endscript ++} ++ diff --git a/source/n/iptraf/slack-desc b/source/n/iptraf/slack-desc new file mode 100644 index 000000000..ef2319f9a --- /dev/null +++ b/source/n/iptraf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iptraf: iptraf (console-based network monitoring program) +iptraf: +iptraf: IPTraf is a console-based network monitoring program for Linux that +iptraf: displays information about IP traffic such as: +iptraf: +iptraf: Current TCP connections, types of IP packets, packet and byte +iptraf: counts, TCP/UDP counts by ports, packet counts by packet sizes, +iptraf: packet and byte counts by IP address, interface activity, flag +iptraf: statuses on TCP packets, and other LAN station statistics. +iptraf: +iptraf: iptraf was written by Gerard Paul Java. diff --git a/source/n/iputils/iputils.SlackBuild b/source/n/iputils/iputils.SlackBuild new file mode 100755 index 000000000..a5e3691a7 --- /dev/null +++ b/source/n/iputils/iputils.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=s20070202 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iputils + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf iputils-$VERSION +tar xvf $CWD/iputils-$VERSION.tar.bz2 || exit 1 +cd iputils-$VERSION || exit 1 +# Modern compiler... +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 +( cd doc ; make man || exit 1 ) || exit 1 + +strip arping clockdiff ping ping6 rarpd rdisc tracepath tracepath6 traceroute6 +mkdir -p $PKG/sbin +cat arping > $PKG/sbin/arping +chmod 755 $PKG/sbin/arping +mkdir -p $PKG/usr/sbin +cat clockdiff > $PKG/usr/sbin/clockdiff +chmod 755 $PKG/usr/sbin/clockdiff +mkdir -p $PKG/bin +cat ping > $PKG/bin/ping +cat ping6 > $PKG/bin/ping6 +chmod 4711 $PKG/bin/ping $PKG/bin/ping6 +cat rarpd > $PKG/usr/sbin/rarpd +cat rdisc > $PKG/usr/sbin/rdisc +chmod 755 $PKG/usr/sbin/rarpd $PKG/usr/sbin/rdisc +mkdir -p $PKG/usr/bin +cat tracepath > $PKG/usr/bin/tracepath +cat tracepath6 > $PKG/usr/bin/tracepath6 +cat traceroute6 > $PKG/usr/bin/traceroute6 +chmod 755 $PKG/usr/bin/tracepath* +chmod 4711 $PKG/usr/bin/traceroute6 + +mkdir -p $PKG/usr/man/man8 +( cd doc + for file in arping clockdiff ping rarpd rdisc tracepath traceroute6 ; do + cat $file.8 | gzip -9c > $PKG/usr/man/man8/$file.8.gz + done + cd $PKG/usr/man/man8 + ln -sf ping.8.gz ping6.8.gz + ln -sf tracepath.8.gz tracepath6.8.gz +) + +mkdir -p $PKG/usr/doc/iputils-$VERSION +cp -a \ + RELNOTES \ + $PKG/usr/doc/iputils-$VERSION +chmod 644 $PKG/usr/doc/iputils-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/iputils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iputils/slack-desc b/source/n/iputils/slack-desc new file mode 100644 index 000000000..c2d11a413 --- /dev/null +++ b/source/n/iputils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iputils: iputils (a collection of common network tools) +iputils: +iputils: The iputils package contains network tools found on nearly all *NIX +iputils: systems, along with an extra or two. Some of the utilities found +iputils: here include arping, clockdiff, ping, ping6, rarpd, rdisc, tracepath, +iputils: tracepath6, and traceroute6. +iputils: +iputils: iputils is maintained by YOSHIFUJI Hideaki. +iputils: +iputils: +iputils: diff --git a/source/n/ipw2100-fw/ipw2100-fw.SlackBuild b/source/n/ipw2100-fw/ipw2100-fw.SlackBuild new file mode 100755 index 000000000..6ef7bfb6e --- /dev/null +++ b/source/n/ipw2100-fw/ipw2100-fw.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=ipw2100-fw +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +mkdir ${PKGNAM}-${VERSION} +cd ${PKGNAM}-$VERSION +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware +cp -a * $PKG/lib/firmware + +# This file is in danger of being copied over if we don't give it a +# better name: +mv $PKG/lib/firmware/LICENSE $PKG/lib/firmware/LICENSE.ipw2100-fw-${VERSION} + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a LICENSE $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ipw2100-fw: ipw2100-fw (Intel ipw2100 wireless firmware) +ipw2100-fw: +ipw2100-fw: This firmware is used by the ipw2100 kernel module for the Intel +ipw2100-fw: PRO/Wireless 2100 Network Connection mini PCI adapter. +ipw2100-fw: Your use of this firmware is governed by this Intel license: +ipw2100-fw: /usr/doc/${PKGNAM}-${VERSION}/LICENSE +ipw2100-fw: +ipw2100-fw: Visit Intel's Linux wireless website at this address: +ipw2100-fw: http://intellinuxwireless.org/ +ipw2100-fw: +ipw2100-fw: +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ipw2200-fw/ipw2200-fw.SlackBuild b/source/n/ipw2200-fw/ipw2200-fw.SlackBuild new file mode 100755 index 000000000..9aac28a68 --- /dev/null +++ b/source/n/ipw2200-fw/ipw2200-fw.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=ipw2200-fw +VERSION=${VERSION:-3.0} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware +cp -a * $PKG/lib/firmware + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a LICENSE* $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ipw2200-fw: ipw2200-fw (Intel ipw2200 wireless firmware) +ipw2200-fw: +ipw2200-fw: This firmware is used by the ipw2200 kernel module for the Intel +ipw2200-fw: PRO/Wireless 2915ABG Network Connection and Intel PRO/Wireless 2200BG +ipw2200-fw: Network Connection mini PCI adapters. +ipw2200-fw: Your use of this firmware is governed by this Intel license: +ipw2200-fw: /usr/doc/${PKGNAM}-${VERSION}/LICENSE +ipw2200-fw: +ipw2200-fw: Visit Intel's Linux wireless website at this address: +ipw2200-fw: http://intellinuxwireless.org/ +ipw2200-fw: +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/irssi/doinst.sh b/source/n/irssi/doinst.sh new file mode 100644 index 000000000..197eddcef --- /dev/null +++ b/source/n/irssi/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/irssi.conf.new diff --git a/source/n/irssi/irsi-0.8.14.manpage_fix.diff b/source/n/irssi/irsi-0.8.14.manpage_fix.diff new file mode 100644 index 000000000..2219652df --- /dev/null +++ b/source/n/irssi/irsi-0.8.14.manpage_fix.diff @@ -0,0 +1,16 @@ +Author: Gerfried Fuchs <rhonda@debian.at> vim:ft=diff: +Description: Fix the hyphens in the synopsis + +Index: irssi-0.8.14/docs/irssi.1 +=================================================================== +--- irssi-0.8.14.orig/docs/irssi.1 ++++ irssi-0.8.14/docs/irssi.1 +@@ -3,7 +3,7 @@ + Irssi \- a modular IRC client for UNIX + .SH SYNOPSIS + .B irssi +-[-dv!?] [-c server] [-p port] [-n nickname] [-w password] [-h hostname] ++[\-dv!?] [\-c server] [\-p port] [\-n nickname] [\-w password] [\-h hostname] + .SH DESCRIPTION + .B Irssi + is a modular Internet Relay Chat client. It is highly extensible and diff --git a/source/n/irssi/irssi.SlackBuild b/source/n/irssi/irssi.SlackBuild new file mode 100755 index 000000000..828ab8748 --- /dev/null +++ b/source/n/irssi/irssi.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-irssi + +VERSION=0.8.14 +DIRCD=0.8.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf irssi-$VERSION +tar xvf $CWD/irssi-$VERSION.tar.bz2 || exit 1 +cd irssi-$DIRCD + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 -o -perm 2777 -o -perm 2775 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix an error in the manual page +zcat $CWD/irsi-0.8.14.manpage_fix.diff.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --docdir=/usr/doc/irssi-$VERSION \ + --enable-ipv6 \ + --with-textui \ + --with-proxy \ + --with-perl-lib=vendor \ + --build=$ARCH-slackware-linux + +make \ + docdir=/usr/doc/irssi-$VERSION \ + $NUMJOBS || make || exit 1 +make install \ + docdir=/usr/doc/irssi-$VERSION \ + DESTDIR=$PKG || exit 1 + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mv $PKG/etc/irssi.conf $PKG/etc/irssi.conf.new + +find $PKG -name perllocal.pod | xargs rm -f +eval $(perl '-V:archlib') ; rmdir -p $PKG/$archlib + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cp -a \ + AUTHORS COPYING INSTALL NEWS README TODO \ + $PKG/usr/doc/irssi-$VERSION +( cd $PKG/usr/doc/irssi-$VERSION ; ln -sf /usr/share/irssi/help . ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/irssi-$VERSION-$ARCH-$BUILD.txz diff --git a/source/n/irssi/slack-desc b/source/n/irssi/slack-desc new file mode 100644 index 000000000..2a0578921 --- /dev/null +++ b/source/n/irssi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +irssi: irssi (Internet Relay Chat client) +irssi: +irssi: Irssi is an Internet Relay Chat client. Designed to be both secure +irssi: and expandable, irssi is easily customized using modules and scripts. +irssi: +irssi: For more information, visit: http://irssi.org +irssi: +irssi: irssi was written by Timo Sirainen. +irssi: +irssi: +irssi: diff --git a/source/n/iw/iw.SlackBuild b/source/n/iw/iw.SlackBuild new file mode 100755 index 000000000..66a4aa7b1 --- /dev/null +++ b/source/n/iw/iw.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008 Robert Simpson, Ventura, California, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + + +PRGNAM=iw +VERSION=${VERSION:-0.9.14} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make CFLAGS="$SLKCFLAGS" +make install \ + BINDIR=/usr/sbin \ + MANDIR=/usr/man \ + DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iw/iw.info b/source/n/iw/iw.info new file mode 100644 index 000000000..11c147463 --- /dev/null +++ b/source/n/iw/iw.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw" +DOWNLOAD="http://wireless.kernel.org/download/iw/iw-0.9.11.tar.bz2" diff --git a/source/n/iw/slack-desc b/source/n/iw/slack-desc new file mode 100644 index 000000000..ca62f79fb --- /dev/null +++ b/source/n/iw/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------------| +iw: iw (tool for configuring Linux wireless devices) +iw: +iw: This package contains the `iw' tool which allows you to configure and +iw: show information about wireless networking. The tool is currently used +iw: for drivers based on the mac80211 stack, but work is under way to make +iw: it useful for other wireless drivers as well. +iw: +iw: Homepage: http://wireless.kernel.org/en/users/Documentation/iw +iw: +iw: +iw: diff --git a/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild b/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild new file mode 100755 index 000000000..87da1472c --- /dev/null +++ b/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=iwlwifi-3945-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-3945-ucode/slack-desc b/source/n/iwlwifi-3945-ucode/slack-desc new file mode 100644 index 000000000..1b1b061bd --- /dev/null +++ b/source/n/iwlwifi-3945-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-3945-ucode: iwlwifi-3945-ucode (Intel 3945 wireless microcode) +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: The microcode provided in this package is required for the Intel +iwlwifi-3945-ucode: PRO/Wireless 3945ABG/BG Network Connection Adapter driver for Linux +iwlwifi-3945-ucode: (iwlwifi-3945) to operate. +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-3945-ucode: http://intellinuxwireless.org/ +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: diff --git a/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild b/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild new file mode 100755 index 000000000..1f72acf22 --- /dev/null +++ b/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=iwlwifi-4965-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-4965-ucode/slack-desc b/source/n/iwlwifi-4965-ucode/slack-desc new file mode 100644 index 000000000..6b84a7d68 --- /dev/null +++ b/source/n/iwlwifi-4965-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-4965-ucode: iwlwifi-4965-ucode (Intel 4965 wireless microcode) +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: The microcode provided in this package is required for the Intel +iwlwifi-4965-ucode: PRO/Wireless 4965ABG/BG Network Connection Adapter driver for Linux +iwlwifi-4965-ucode: (iwlwifi-4965) to operate. +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-4965-ucode: http://intellinuxwireless.org/ +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: diff --git a/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild b/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild new file mode 100755 index 000000000..fcd0a5716 --- /dev/null +++ b/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=iwlwifi-5000-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-5000-ucode/slack-desc b/source/n/iwlwifi-5000-ucode/slack-desc new file mode 100644 index 000000000..2b817fcc8 --- /dev/null +++ b/source/n/iwlwifi-5000-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-5000-ucode: iwlwifi-5000-ucode (Intel 5000 wireless microcode) +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: The microcode provided in this package is required for the Intel +iwlwifi-5000-ucode: PRO/Wireless 5000ABG/BG Network Connection Adapter driver for Linux +iwlwifi-5000-ucode: (iwlagn) to operate. +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-5000-ucode: http://intellinuxwireless.org/ +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: diff --git a/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild b/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild new file mode 100755 index 000000000..5c74817a3 --- /dev/null +++ b/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=iwlwifi-5150-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-5150-ucode/slack-desc b/source/n/iwlwifi-5150-ucode/slack-desc new file mode 100644 index 000000000..31c2222e7 --- /dev/null +++ b/source/n/iwlwifi-5150-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-5150-ucode: iwlwifi-5150-ucode (Intel 5150 wireless microcode) +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: The microcode provided in this package is required for the Intel +iwlwifi-5150-ucode: PRO/Wireless 5150AGN Network Connection Adapter driver for Linux +iwlwifi-5150-ucode: (iwlagn) to operate. +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-5150-ucode: http://intellinuxwireless.org/ +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: diff --git a/source/n/lftp/doinst.sh b/source/n/lftp/doinst.sh new file mode 100644 index 000000000..04edfdff4 --- /dev/null +++ b/source/n/lftp/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/lftp.conf.new diff --git a/source/n/lftp/lftp.SlackBuild b/source/n/lftp/lftp.SlackBuild new file mode 100755 index 000000000..82b42993b --- /dev/null +++ b/source/n/lftp/lftp.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.7.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lftp + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf lftp-$VERSION +tar xvf $CWD/lftp-$VERSION.tar.?z* || exit 1 +cd lftp-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/lftp-$VERSION \ + --with-openssl \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/etc/lftp.conf $PKG/etc/lftp.conf.new + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/lftp-$VERSION +cp -a \ + ABOUT-NLS BUGS COPYING* ChangeLog FAQ FEATURES INSTALL MIRRORS NEWS \ + README* THANKS TODO lftp.lsm \ + $PKG/usr/doc/lftp-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/lftp/slack-desc b/source/n/lftp/slack-desc new file mode 100644 index 000000000..5d6a0c2c4 --- /dev/null +++ b/source/n/lftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lftp: lftp (command line file transfer program) +lftp: +lftp: lftp is a program that allows sophisticated ftp and http connections +lftp: to other hosts. lftp can handle many file access methods including +lftp: ftp, ftps, http, https, hftp, fish and file. Every operation in lftp +lftp: is reliable, that is any non-fatal error is ignored and the operation +lftp: is retried. lftp has shell-like command syntax. lftp has a built in +lftp: mirror feature which can download or upload a whole directory tree. +lftp: To learn about many more features of lftp, see 'man lftp'. +lftp: +lftp: diff --git a/source/n/libassuan/libassuan.SlackBuild b/source/n/libassuan/libassuan.SlackBuild new file mode 100755 index 000000000..32cf41723 --- /dev/null +++ b/source/n/libassuan/libassuan.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2006-2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=libassuan +VERSION=1.0.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/info/*.info +rm -rf $PKG/usr/info/dir + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libassuan/slack-desc b/source/n/libassuan/slack-desc new file mode 100644 index 000000000..59be53b1f --- /dev/null +++ b/source/n/libassuan/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libassuan: libassuan (Interprocess Communication Library for GPG) +libassuan: +libassuan: This is the IPC library used by GnuPG 2.x, GPGME and a few other +libassuan: packages. +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: diff --git a/source/n/libgcrypt/libgcrypt.SlackBuild b/source/n/libgcrypt/libgcrypt.SlackBuild new file mode 100755 index 000000000..bb4723948 --- /dev/null +++ b/source/n/libgcrypt/libgcrypt.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PRGNAM=libgcrypt +VERSION=${VERSION:-1.4.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/libgcrypt-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS BUGS COPYING* ChangeLog INSTALL NEWS \ + README README.SVN THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libgcrypt/slack-desc b/source/n/libgcrypt/slack-desc new file mode 100644 index 000000000..365fab642 --- /dev/null +++ b/source/n/libgcrypt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgcrypt: libgcrypt (General purpose crypto library) +libgcrypt: +libgcrypt: Libgcrypt is a general purpose crypto library based on the code +libgcrypt: used in GnuPG. +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: diff --git a/source/n/libgpg-error/libgpg-error.SlackBuild b/source/n/libgpg-error/libgpg-error.SlackBuild new file mode 100755 index 000000000..62f1df43b --- /dev/null +++ b/source/n/libgpg-error/libgpg-error.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2006, 2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=libgpg-error +VERSION=1.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README THANKS VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libgpg-error/slack-desc b/source/n/libgpg-error/slack-desc new file mode 100644 index 000000000..1d0969cd8 --- /dev/null +++ b/source/n/libgpg-error/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgpg-error: libgpg-error (GnuPG Error Definitions Library) +libgpg-error: +libgpg-error: This is a library that defines common error values for all GnuPG +libgpg-error: components. Among these are GPG, GPGSM, GPGME, GPG-Agent, +libgpg-error: libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon, and more. +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: diff --git a/source/n/libksba/libksba.SlackBuild b/source/n/libksba/libksba.SlackBuild new file mode 100755 index 000000000..0b42f53f8 --- /dev/null +++ b/source/n/libksba/libksba.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2006,2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=libksba +VERSION=1.0.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libksba/slack-desc b/source/n/libksba/slack-desc new file mode 100644 index 000000000..aef06478d --- /dev/null +++ b/source/n/libksba/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libksba: libksba (X.509 & CMS library for S/MIME and TLS) +libksba: +libksba: KSBA (pronounced Kasbah) is a library to make X.509 certificates as +libksba: well as the CMS easily accessible by other applications. +libksba: Both specifications are building blocks of S/MIME and TLS. +libksba: +libksba: +libksba: +libksba: +libksba: +libksba: diff --git a/source/n/links/links.SlackBuild b/source/n/links/links.SlackBuild new file mode 100755 index 000000000..fd55faea5 --- /dev/null +++ b/source/n/links/links.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + +VERSION=2.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-links + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf links-$VERSION +tar xvf $CWD/links-$VERSION.tar.?z* || exit 1 +cd links-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We are configuring this without X as there are MANY browser choices for +# X already. If you need a browser for X, either use something else or +# recompile. :-) +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-javascript \ + --enable-graphics \ + --without-x \ + --without-sdl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat links > $PKG/usr/bin/links +chmod 0755 $PKG/usr/bin/links + +mkdir -p $PKG/usr/man/man1 +cat links.1 | gzip -9c > $PKG/usr/man/man1/links.1.gz + +mkdir -p $PKG/usr/doc/links-$VERSION +cp -a \ + AUTHORS BUGS COPYING* INSTALL NEWS README* SITES TODO doc/links_cal mailcap.pl \ + $PKG/usr/doc/links-$VERSION +find $PKG/usr/doc/links-$VERSION -type f -exec chmod 644 {} \; +find $PKG/usr/doc/links-$VERSION -type d -exec chmod 755 {} \; +chmod 0755 $PKG/usr/doc/links-$VERSION/mailcap.pl + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/links-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/links/slack-desc b/source/n/links/slack-desc new file mode 100644 index 000000000..0d6b14bbd --- /dev/null +++ b/source/n/links/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +links: links (WWW browser for the console) +links: +links: Links is a console mode WWW browser, supporting colors, correct table +links: rendering, background downloading, frames, Javascript, and a menu +links: driven configuration interface. The default is text output, but +links: graphical output (using -g) is also supported using the Linux +links: framebuffer console or SVGAlib. +links: +links: links was written by Mikulas Patocka. +links: +links: diff --git a/source/n/lynx/lynx.SlackBuild b/source/n/lynx/lynx.SlackBuild new file mode 100755 index 000000000..109c89621 --- /dev/null +++ b/source/n/lynx/lynx.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +SRCVER=2.8.6rel.5 +PKGVER=2.8.6rel.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lynx + +rm -rf $PKG +mkdir -p $PKG +# Add libdir to package: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/lynx + +cd $TMP +rm -rf lynx2-8-6 +tar xvf $CWD/lynx${SRCVER}.tar.bz2 || exit 1 +cd lynx2-8-6 +# Fix /usr/local paths: +zcat $CWD/lynx.path.diff.gz | sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" | patch -p1 --verbose || exit 1 +# Apply recolorizing patch: +zcat $CWD/lynx.cfg.diff.gz | patch -p1 --verbose --backup || exit 1 + +## Apply official patches: +#zcat $CWD/2.8.5rel.4.patch.gz | patch -p1 --verbose || exit +#zcat $CWD/2.8.5rel.5.patch.gz | patch -p1 --verbose || exit + +find . -name "*~" | xargs rm +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX}/lynx \ + --datadir=/usr/share/lynx \ + --enable-default-colors \ + --with-screen=ncursesw \ + --enable-widec \ + --enable-gzip-help \ + --with-zlib \ + --enable-read-eta \ + --enable-scrollbar \ + --with-ssl \ + --enable-color-style \ + --enable-prettysrc \ + --enable-source-cache \ + --enable-nsl-fork \ + --enable-nls \ + --enable-persistent-cookies \ + --enable-vertrace \ + --disable-full-paths \ + --enable-addrlist-page \ + --enable-charset-choice \ + --enable-cjk \ + --enable-htmlized-cfg \ + --enable-justify-elts \ + --enable-locale-charset \ + --enable-externs \ + --enable-cgi-links \ + --enable-change-exec \ + --enable-exec-links \ + --enable-exec-scripts \ + --enable-internal-links \ + --with-bzlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-help DESTDIR=$PKG || exit 1 +make install-doc DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Correct $DESTDIR brokenness: +( cd $PKG/usr/share/lynx/lynx_help + rm -f COPYHEADER COPYING + ln -sf ../lynx_doc/COPYHEADER . + ln -sf ../lynx_doc/COPYING . +) +# Add documentation symlinks: +( mkdir -p $PKG/usr/doc/lynx-$PKGVER + cd $PKG/usr/doc/lynx-$PKGVER + ln -sf /usr/share/lynx/lynx_doc . + ln -sf /usr/share/lynx/lynx_help . +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lynx-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/n/lynx/lynx.cfg.diff b/source/n/lynx/lynx.cfg.diff new file mode 100644 index 000000000..4a52fcc5b --- /dev/null +++ b/source/n/lynx/lynx.cfg.diff @@ -0,0 +1,22 @@ +--- ./lynx.cfg.orig Tue Feb 26 23:18:35 2002 ++++ ./lynx.cfg Tue Feb 26 23:24:09 2002 +@@ -2841,8 +2841,18 @@ + #COLOR:4:magenta:white + #COLOR:5:blue:white + #COLOR:6:red:white +-COLOR:6:brightred:black ++#COLOR:6:brightred:black + #COLOR:7:magenta:cyan ++COLOR:0:black:white ++COLOR:1:blue:white ++COLOR:2:yellow:blue ++COLOR:3:green:white ++COLOR:4:magenta:white ++COLOR:5:blue:white ++# This makes links a *lot* more visible. The default settings are like ++# "let's torture the color-blind" :^) ++COLOR:6:brightred:black ++COLOR:7:magenta:cyan + + + .h2 ASSUMED_COLOR diff --git a/source/n/lynx/lynx.path.diff b/source/n/lynx/lynx.path.diff new file mode 100644 index 000000000..1ee216edf --- /dev/null +++ b/source/n/lynx/lynx.path.diff @@ -0,0 +1,38 @@ +--- ./userdefs.h.orig Tue Feb 26 22:32:08 2002 ++++ ./userdefs.h Tue Feb 26 22:39:53 2002 +@@ -277,7 +277,7 @@ + #ifdef DOSPATH + #define LYNX_CFG_FILE "./lynx.cfg" + #else +-#define LYNX_CFG_FILE "/usr/local/lib/lynx.cfg" ++#define LYNX_CFG_FILE "/etc/lynx.cfg" + #endif /* DOSPATH */ + #endif /* LYNX_CFG_FILE */ + #endif /* HAVE_CONFIG_H */ +@@ -289,7 +289,7 @@ + * Mappings in these global and personal files override any SUFFIX + * definitions in lynx.cfg and built-in defaults from src/HTInit.c. + */ +-#define GLOBAL_EXTENSION_MAP "/usr/local/lib/mosaic/mime.types" ++#define GLOBAL_EXTENSION_MAP "/usr/lib/lynx/mime.types" + #define PERSONAL_EXTENSION_MAP ".mime.types" + + /************************** +@@ -299,7 +299,7 @@ + * Mappings in these global and personal files override any VIEWER + * definitions in lynx.cfg and built-in defaults from src/HTInit.c. + */ +-#define GLOBAL_MAILCAP "/usr/local/lib/mosaic/mailcap" ++#define GLOBAL_MAILCAP "/usr/lib/lynx/mailcap" + #define PERSONAL_MAILCAP ".mailcap" + + /************************** +@@ -434,7 +434,7 @@ + * -lss command line switch will override these definitions. + */ + #ifndef LYNX_LSS_FILE +-#define LYNX_LSS_FILE "/usr/local/lib/lynx.lss" ++#define LYNX_LSS_FILE "/usr/lib/lynx/lynx.lss" + #endif /* LYNX_LSS_FILE */ + + #endif /* VMS OR UNIX */ diff --git a/source/n/lynx/slack-desc b/source/n/lynx/slack-desc new file mode 100644 index 000000000..c9209d298 --- /dev/null +++ b/source/n/lynx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lynx: Lynx (text mode browser) +lynx: +lynx: Lynx is a distributed hypertext browser with full World Wide Web +lynx: capabilities. Lynx can be used to access information on the World +lynx: Wide Web, or to build information systems intended primarily for local +lynx: access. For example, Lynx has been used to build several Campus Wide +lynx: Information Systems (CWIS). +lynx: +lynx: Lynx's authors include Lou Montulli, Garrett Blythe, Craig Lavender, +lynx: Michael Grobe, and Charles Rezac. +lynx: diff --git a/source/n/mailx/doinst.sh b/source/n/mailx/doinst.sh new file mode 100644 index 000000000..62c288b48 --- /dev/null +++ b/source/n/mailx/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nail.rc.new +# Make symlinks: diff --git a/source/n/mailx/mailx.SlackBuild b/source/n/mailx/mailx.SlackBuild new file mode 100755 index 000000000..256d5ebc2 --- /dev/null +++ b/source/n/mailx/mailx.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=12.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mailx +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mailx-$VERSION +tar xvf $CWD/mailx-$VERSION.tar.bz2 || exit 1 +cd mailx-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +make install DESTDIR=$PKG \ + CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +# We put symlinks in /bin since some things still expect '/bin/mail' or '/bin/Mail': +mkdir -p $PKG/bin +( cd $PKG/bin + ln -sf /usr/bin/mailx Mail + ln -sf /usr/bin/mailx mail + ln -sf /usr/bin/mailx nail +) +# Likewise, we make some compat symlinks in /usr/bin: +( cd $PKG/usr/bin + ln -sf mailx Mail + ln -sf mailx mail + ln -sf mailx nail +) +mv $PKG/etc/nail.rc $PKG/etc/nail.rc.new +strip $PKG/usr/bin/mailx + +gzip -9 $PKG/usr/man/man1/* +# Manpage links: +( cd $PKG/usr/man/man1 + ln -sf mailx.1.gz mail.1.gz + ln -sf mailx.1.gz nail.1.gz + ln -sf mailx.1.gz Mail.1.gz +) + +mkdir -p $PKG/usr/doc/mailx-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL README TODO \ + $PKG/usr/doc/mailx-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mailx-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mailx/slack-desc b/source/n/mailx/slack-desc new file mode 100644 index 000000000..d02c6f03f --- /dev/null +++ b/source/n/mailx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mailx: mailx (a simple mail client) +mailx: +mailx: Mailx is derived from Berkeley Mail and is intended provide the +mailx: functionality of the POSIX mailx command with additional support +mailx: for MIME, IMAP, POP3, SMTP, and S/MIME. It provides enhanced +mailx: features for interactive use, such as caching and disconnected +mailx: operation for IMAP, message threading, scoring, and filtering. +mailx: It is also usable as a mail batch language, both for sending +mailx: and receiving mail. +mailx: +mailx: The maintainer and primary developer of mailx is Gunnar Ritter. diff --git a/source/n/mcabber/mcabber.SlackBuild b/source/n/mcabber/mcabber.SlackBuild new file mode 100755 index 000000000..f23c3bef4 --- /dev/null +++ b/source/n/mcabber/mcabber.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=mcabber +VERSION=${VERSION:-0.9.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog NEWS README* TODO mcabberrc.example \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mcabber/slack-desc b/source/n/mcabber/slack-desc new file mode 100644 index 000000000..e8cfe6653 --- /dev/null +++ b/source/n/mcabber/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mcabber: mcabber (Jabber console client) +mcabber: +mcabber: mcabber is a small Jabber console client for Linux, maintained by +mcabber: Mikael Berthe. Mcabber includes features such as SSL support, +mcabber: multi-user chat (MUC), history logging, commands completion, and +mcabber: external actions triggers. +mcabber: +mcabber: mcabber project home is: http://www.lilotux.net/~mikael/mcabber/ +mcabber: +mcabber: +mcabber: diff --git a/source/n/metamail/metamail.SlackBuild b/source/n/metamail/metamail.SlackBuild new file mode 100755 index 000000000..e158283b3 --- /dev/null +++ b/source/n/metamail/metamail.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-metamail + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf metamail-$VERSION +xz -dc $CWD/metamail-$VERSION.tar.xz | tar xvf - || exit 1 +cd metamail-$VERSION + +xz -dc $CWD/metamail_2.7-52.diff.xz | patch -p1 || exit 1 +xz -dc $CWD/metamail.automake.diff.xz | patch -p1 || exit 1 + +chmod 755 configure + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +( cd bin + cat showexternal | perl -pi -e 's|sensible-pager|more|' > se + chmod 755 se ; mv se showexternal + cat sun-message | perl -pi -e 's|sensible-pager|more|' > sm + chmod 755 sm ; mv sm sun-message +) +( cd src/metamail + cat mailto.c | perl -pi -e 's|sensible-pager|more|' > m.c + mv m.c mailto.c +) + +make $NUMJOBS || make || exit 1 + +( cd bin + cat mailto-hebrew | perl -pi -e 's|/usr/lib/X11/fonts/misc|/usr/share/metamail/fonts|' > mh + chmod 755 mh ; mv mh mailto-hebrew +) + +make install DESTDIR=$PKG || exit 1 + +( cd fonts + make + mkdir -p $PKG/usr/share/metamail/fonts + for file in *.pcf ; do + cat $file > $PKG/usr/share/metamail/fonts/$file + done + cat fonts.alias > $PKG/usr/share/metamail/fonts/fonts.alias + cat fonts.dir > $PKG/usr/share/metamail/fonts/fonts.dir +) + +( cd man + mkdir -p $PKG/usr/man/man{1,5} + for file in *.1 ; do + cat $file | gzip -9c > $PKG/usr/man/man1/$file.gz + done + #for file in *.4 ; do + # cat $file | gzip -9c > $PKG/usr/man/man4/$file.gz + #done + for file in *.5 ; do + cat $file | gzip -9c > $PKG/usr/man/man5/$file.gz + done +) + +# These are obsolete, broken, and/or undocumented. +# Complain to volkerdi@slackware.com if you miss any of them... +for file in \ + mailserver rcvAppSingle richtoatk sndAppSingle sun-audio-file sun-message \ + sun-to-mime sun2mime rcvAppleSingle sndAppleSingle sun-message.csh ; do + rm -f $PKG/usr/bin/$file $PKG/usr/man/man?/$file.* +done + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/metamail-$VERSION +cp -a \ + COPYING CREDITS INSTALL README \ + $PKG/usr/doc/metamail-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/metamail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/metamail/metamail.automake.diff b/source/n/metamail/metamail.automake.diff new file mode 100644 index 000000000..0767481da --- /dev/null +++ b/source/n/metamail/metamail.automake.diff @@ -0,0 +1,3192 @@ +diff -u -r --new-file metamail-2.7.orig/config/config.guess metamail-2.7/config/config.guess +--- metamail-2.7.orig/config/config.guess 1969-12-31 18:00:00.000000000 -0600 ++++ metamail-2.7/config/config.guess 2008-10-07 12:09:27.000000000 -0500 +@@ -0,0 +1,1526 @@ ++#! /bin/sh ++# Attempt to guess a canonical system name. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. ++ ++timestamp='2008-01-08' ++ ++# 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 ++# 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., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# 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. ++ ++ ++# Originally written by Per Bothner <per@bothner.com>. ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# This script attempts to guess a canonical system name similar to ++# config.sub. If it succeeds, it prints the system name on stdout, and ++# exits with 0. Otherwise, it exits with 1. ++# ++# The plan is that this can be called by configure scripts if you ++# don't specify an explicit build system type. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 ++fi ++ ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' ++ ++# This is needed to find uname on a Pyramid OSx when run in the BSD universe. ++# (ghazi@noc.rutgers.edu 1994-08-24) ++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then ++ PATH=$PATH:/.attbin ; export PATH ++fi ++ ++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown ++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ ++# Note: order is significant - the case branches are not exclusive. ++ ++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ alpha:OSF1:*:*) ++ case $UNAME_RELEASE in ++ *4.0) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ ;; ++ *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 ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "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/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix ++ exit ;; ++ 21064:Windows_NT:50:3) ++ echo alpha-dec-winnt3.5 ++ exit ;; ++ Amiga*:UNIX_System_V:4.0:*) ++ echo m68k-unknown-sysv4 ++ exit ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; ++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) ++ echo arm-acorn-riscix${UNAME_RELEASE} ++ exit ;; ++ arm:riscos:*:*|arm:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit ;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) ++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. ++ if test "`(/bin/universe) 2>/dev/null`" = att ; then ++ echo pyramid-pyramid-sysv3 ++ else ++ echo pyramid-pyramid-bsd ++ fi ++ exit ;; ++ NILE*:*:*:dcosx) ++ echo pyramid-pyramid-svr4 ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ 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 ;; ++ esac ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) ++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:6*:*) ++ # According to config.sub, this is the proper way to canonicalize ++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but ++ # it's likely to be more like Solaris than SunOS4. ++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:*:*) ++ case "`/usr/bin/arch -k`" in ++ Series*|S4*) ++ UNAME_RELEASE=`uname -v` ++ ;; ++ esac ++ # Japanese Language versions have a version number like `4.1.3-JL'. ++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ++ exit ;; ++ sun3*:SunOS:*:*) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ exit ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit ;; ++ aushp:SunOS:*:*) ++ echo sparc-auspex-sunos${UNAME_RELEASE} ++ exit ;; ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; ++ powerpc:machten:*:*) ++ echo powerpc-apple-machten${UNAME_RELEASE} ++ exit ;; ++ RISC*:Mach:*:*) ++ echo mips-dec-mach_bsd4.3 ++ exit ;; ++ RISC*:ULTRIX:*:*) ++ echo mips-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ VAX*:ULTRIX*:*:*) ++ echo vax-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit ;; ++ mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif ++ #if defined (host_mips) && defined (MIPSEB) ++ #if defined (SYSTYPE_SYSV) ++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_SVR4) ++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) ++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); ++ #endif ++ #endif ++ exit (-1); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo mips-mips-riscos${UNAME_RELEASE} ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:Power_UNIX:*:*) ++ echo powerpc-harris-powerunix ++ exit ;; ++ m88k:CX/UX:7*:*) ++ echo m88k-harris-cxux7 ++ exit ;; ++ m88k:*:4*:R4*) ++ echo m88k-motorola-sysv4 ++ exit ;; ++ m88k:*:3*:R3*) ++ echo m88k-motorola-sysv3 ++ exit ;; ++ AViiON:dgux:*:*) ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then ++ echo m88k-dg-dgux${UNAME_RELEASE} ++ else ++ echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} ++ fi ++ exit ;; ++ M88*:DolphinOS:*:*) # DolphinOS (SVR3) ++ echo m88k-dolphin-sysv3 ++ exit ;; ++ M88*:*:R3*:*) ++ # Delta 88k system running SVR3 ++ echo m88k-motorola-sysv3 ++ exit ;; ++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) ++ echo m88k-tektronix-sysv3 ++ exit ;; ++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) ++ echo m68k-tektronix-bsd ++ exit ;; ++ *:IRIX*:*:*) ++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ++ exit ;; ++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) ++ echo i386-ibm-aix ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:2:3) ++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <sys/systemcfg.h> ++ ++ main() ++ { ++ if (!__power_pc()) ++ exit(1); ++ puts("powerpc-ibm-aix3.2.5"); ++ exit(0); ++ } ++EOF ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi ++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then ++ echo rs6000-ibm-aix3.2.4 ++ else ++ echo rs6000-ibm-aix3.2 ++ fi ++ exit ;; ++ *:AIX:*:[456]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then ++ IBM_ARCH=rs6000 ++ else ++ IBM_ARCH=powerpc ++ fi ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${IBM_ARCH}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:*:*) ++ echo rs6000-ibm-aix ++ exit ;; ++ ibmrt:4.4BSD:*|romp-ibm:BSD:*) ++ echo romp-ibm-bsd4.4 ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and ++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ++ exit ;; # report: romp-ibm BSD 4.3 ++ *:BOSX:*:*) ++ echo rs6000-bull-bosx ++ exit ;; ++ DPX/2?00:B.O.S.:*:*) ++ echo m68k-bull-sysv3 ++ exit ;; ++ 9000/[34]??:4.3bsd:1.*:*) ++ echo m68k-hp-bsd ++ exit ;; ++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) ++ echo m68k-hp-bsd4.4 ++ exit ;; ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ case "${UNAME_MACHINE}" in ++ 9000/31? ) HP_ARCH=m68000 ;; ++ 9000/[34]?? ) HP_ARCH=m68k ;; ++ 9000/[678][0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; ++ esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi ++ echo ${HP_ARCH}-hp-hpux${HPUX_REV} ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; ++ 3050*:HI-UX:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <unistd.h> ++ int ++ main () ++ { ++ long cpu = sysconf (_SC_CPU_VERSION); ++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns ++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct ++ results, however. */ ++ if (CPU_IS_PA_RISC (cpu)) ++ { ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; ++ default: puts ("hppa-hitachi-hiuxwe2"); break; ++ } ++ } ++ else if (CPU_IS_HP_MC68K (cpu)) ++ puts ("m68k-hitachi-hiuxwe2"); ++ else puts ("unknown-hitachi-hiuxwe2"); ++ exit (0); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo unknown-hitachi-hiuxwe2 ++ exit ;; ++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) ++ echo hppa1.1-hp-bsd ++ exit ;; ++ 9000/8??:4.3bsd:*:*) ++ echo hppa1.0-hp-bsd ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit ;; ++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) ++ echo hppa1.1-hp-osf ++ exit ;; ++ hp8??:OSF1:*:*) ++ echo hppa1.0-hp-osf ++ exit ;; ++ i*86:OSF1:*:*) ++ if [ -x /usr/sbin/sysversion ] ; then ++ echo ${UNAME_MACHINE}-unknown-osf1mk ++ else ++ echo ${UNAME_MACHINE}-unknown-osf1 ++ fi ++ exit ;; ++ parisc*:Lites*:*:*) ++ echo hppa1.1-hp-lites ++ exit ;; ++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) ++ echo c1-convex-bsd ++ exit ;; ++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ++ echo c34-convex-bsd ++ exit ;; ++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ++ echo c38-convex-bsd ++ exit ;; ++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ++ echo c4-convex-bsd ++ exit ;; ++ CRAY*Y-MP:*:*:*) ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*[A-Z]90:*:*:*) ++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ ++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*TS:*:*:*) ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 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 ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) ++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ++ exit ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:FreeBSD:*:*) ++ case ${UNAME_MACHINE} in ++ pc98) ++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; ++ i*:CYGWIN*:*) ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit ;; ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ *:Interix*:[3456]*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T | authenticamd) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i586-pc-interix ++ exit ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; ++ p*:CYGWIN*:*) ++ echo powerpcle-unknown-cygwin ++ exit ;; ++ prep*:SunOS:5.*:*) ++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *: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 ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips ++ #undef mipsel ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mipsel ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu ++ exit ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ # The BFD linker knows what the default object file format is, so ++ # first see if it will tell us. cd to the root directory to prevent ++ # problems with other programs or directories called `ld' in the path. ++ # Set LC_ALL=C to ensure ld outputs messages in English. ++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ ++ | sed -ne '/supported targets:/!d ++ s/[ ][ ]*/ /g ++ s/.*supported targets: *// ++ s/ .*// ++ p'` ++ case "$ld_supported_targets" in ++ elf32-i386) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ ;; ++ a.out-i386-linux) ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ exit ;; ++ coff-i386) ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ exit ;; ++ "") ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or ++ # one that does not give us useful --help. ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ exit ;; ++ esac ++ # Determine whether the default compiler is a.out or elf ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <features.h> ++ #ifdef __ELF__ ++ # ifdef __GLIBC__ ++ # if __GLIBC__ >= 2 ++ LIBC=gnu ++ # else ++ LIBC=gnulibc1 ++ # endif ++ # else ++ LIBC=gnulibc1 ++ # endif ++ #else ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ++ LIBC=gnu ++ #else ++ LIBC=gnuaout ++ #endif ++ #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^LIBC/{ ++ s: ::g ++ p ++ }'`" ++ test x"${LIBC}" != x && { ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ++ } ++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ++ ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. ++ echo i386-sequent-sysv4 ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` ++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} ++ fi ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) ++ if test -f /usr/options/cb.name; then ++ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` ++ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL ++ elif /bin/uname -X 2>/dev/null >/dev/null ; then ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ ++ && UNAME_MACHINE=i586 ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL ++ else ++ echo ${UNAME_MACHINE}-pc-sysv32 ++ fi ++ exit ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i386. ++ echo i386-pc-msdosdjgpp ++ exit ;; ++ Intel:Mach:3*:*) ++ echo i386-pc-mach3 ++ exit ;; ++ paragon:*:*:*) ++ echo i860-intel-osf1 ++ exit ;; ++ i860:*:4.*:*) # i860-SVR4 ++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then ++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 ++ else # Add other i860-SVR4 vendors below as they are discovered. ++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 ++ fi ++ exit ;; ++ mini*:CTIX:SYS*5:*) ++ # "miniframe" ++ echo m68010-convergent-sysv ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 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` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) ++ echo m68k-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ mc68030:UNIX_System_V:4.*:*) ++ echo m68k-atari-sysv4 ++ exit ;; ++ TSUNAMI:LynxOS:2.*:*) ++ echo sparc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ rs6000:LynxOS:2.*:*) ++ echo rs6000-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ SM[BE]S:UNIX_SV:*:*) ++ echo mips-dde-sysv${UNAME_RELEASE} ++ exit ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ RM*:SINIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ *:SINIX-*:*:*) ++ if uname -p 2>/dev/null >/dev/null ; then ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ echo ${UNAME_MACHINE}-sni-sysv4 ++ else ++ echo ns32k-sni-sysv ++ fi ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; ++ *:UNIX_System_V:4*:FTX*) ++ # From Gerald Hewes <hewes@openmarket.com>. ++ # How about differentiating between stratus architectures? -djm ++ echo hppa1.1-stratus-sysv4 ++ exit ;; ++ *:*:*:FTX*) ++ # From seanf@swdc.stratus.com. ++ echo i860-stratus-sysv4 ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; ++ mc68*:A/UX:*:*) ++ echo m68k-apple-aux${UNAME_RELEASE} ++ exit ;; ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) ++ if [ -d /usr/nec ]; then ++ echo mips-nec-sysv${UNAME_RELEASE} ++ else ++ echo mips-unknown-sysv${UNAME_RELEASE} ++ fi ++ exit ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ unknown) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit ;; ++ NSE-?:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++esac ++ ++#echo '(No uname command or uname output not recognized.)' 1>&2 ++#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 ++ ++eval $set_cc_for_build ++cat >$dummy.c <<EOF ++#ifdef _SEQUENT_ ++# include <sys/types.h> ++# include <sys/utsname.h> ++#endif ++main () ++{ ++#if defined (sony) ++#if defined (MIPSEB) ++ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, ++ I don't know.... */ ++ printf ("mips-sony-bsd\n"); exit (0); ++#else ++#include <sys/param.h> ++ printf ("m68k-sony-newsos%s\n", ++#ifdef NEWSOS4 ++ "4" ++#else ++ "" ++#endif ++ ); exit (0); ++#endif ++#endif ++ ++#if defined (__arm) && defined (__acorn) && defined (__unix) ++ printf ("arm-acorn-riscix\n"); exit (0); ++#endif ++ ++#if defined (hp300) && !defined (hpux) ++ printf ("m68k-hp-bsd\n"); exit (0); ++#endif ++ ++#if defined (NeXT) ++#if !defined (__ARCHITECTURE__) ++#define __ARCHITECTURE__ "m68k" ++#endif ++ int version; ++ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; ++ if (version < 4) ++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ else ++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); ++ exit (0); ++#endif ++ ++#if defined (MULTIMAX) || defined (n16) ++#if defined (UMAXV) ++ printf ("ns32k-encore-sysv\n"); exit (0); ++#else ++#if defined (CMU) ++ printf ("ns32k-encore-mach\n"); exit (0); ++#else ++ printf ("ns32k-encore-bsd\n"); exit (0); ++#endif ++#endif ++#endif ++ ++#if defined (__386BSD__) ++ printf ("i386-pc-bsd\n"); exit (0); ++#endif ++ ++#if defined (sequent) ++#if defined (i386) ++ printf ("i386-sequent-dynix\n"); exit (0); ++#endif ++#if defined (ns32000) ++ printf ("ns32k-sequent-dynix\n"); exit (0); ++#endif ++#endif ++ ++#if defined (_SEQUENT_) ++ struct utsname un; ++ ++ uname(&un); ++ ++ if (strncmp(un.version, "V2", 2) == 0) { ++ printf ("i386-sequent-ptx2\n"); exit (0); ++ } ++ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ ++ printf ("i386-sequent-ptx1\n"); exit (0); ++ } ++ printf ("i386-sequent-ptx\n"); exit (0); ++ ++#endif ++ ++#if defined (vax) ++# if !defined (ultrix) ++# include <sys/param.h> ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif ++#endif ++ ++#if defined (alliant) && defined (i860) ++ printf ("i860-alliant-bsd\n"); exit (0); ++#endif ++ ++ exit (1); ++} ++EOF ++ ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ ++# Apollos put the system type in the environment. ++ ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } ++ ++# Convex versions that predate uname can use getsysinfo(1) ++ ++if [ -x /usr/convex/getsysinfo ] ++then ++ case `getsysinfo -f cpu_type` in ++ c1*) ++ echo c1-convex-bsd ++ exit ;; ++ c2*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ c34*) ++ echo c34-convex-bsd ++ exit ;; ++ c38*) ++ echo c38-convex-bsd ++ exit ;; ++ c4*) ++ echo c4-convex-bsd ++ exit ;; ++ esac ++fi ++ ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++and ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF ++ ++exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +diff -u -r --new-file metamail-2.7.orig/config/config.sub metamail-2.7/config/config.sub +--- metamail-2.7.orig/config/config.sub 1969-12-31 18:00:00.000000000 -0600 ++++ metamail-2.7/config/config.sub 2008-10-07 12:09:27.000000000 -0500 +@@ -0,0 +1,1658 @@ ++#! /bin/sh ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. ++ ++timestamp='2008-01-16' ++ ++# This file is (in principle) common to ALL GNU software. ++# The presence of a machine in this file suggests that SOME GNU software ++# can handle that machine. It does not imply ALL GNU software can. ++# ++# 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 ++# 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., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# 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. ++ ++ ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# Configuration subroutine to validate and canonicalize a configuration type. ++# Supply the specified configuration type as an argument. ++# If it is invalid, we print an error message on stderr and exit with code 1. ++# Otherwise, we print the canonical config type on stdout and succeed. ++ ++# This file is supposed to be the same for all GNU packages ++# and recognize all the CPU types, system types and aliases ++# that are meaningful with *any* GNU software. ++# Each package is responsible for reporting which valid configurations ++# it does not support. The user should be able to distinguish ++# a failure to support a valid configuration from a meaningless ++# configuration. ++ ++# The goal of this file is to map all the various variations of a given ++# machine specification into a single specification in the form: ++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM ++# or in some cases, the newer four-part form: ++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM ++# It is wrong to echo any other type of specification. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; ++esac ++ ++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). ++# 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* | linux-dietlibc | linux-newlib* | 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/'` ++ ;; ++ *) ++ basic_machine=`echo $1 | sed 's/-[^-]*$//'` ++ if [ $basic_machine != $1 ] ++ then os=`echo $1 | sed 's/.*-/-/'` ++ else os=; fi ++ ;; ++esac ++ ++### Let's recognize common machines as not being operating systems so ++### that things like config.sub decstation-3100 work. We also ++### recognize some manufacturers as not being operating systems, so we ++### can provide default operating systems below. ++case $os in ++ -sun*os*) ++ # Prevent following clause from handling this invalid input. ++ ;; ++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ ++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ ++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ ++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ ++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ++ -apple | -axis | -knuth | -cray) ++ os= ++ basic_machine=$1 ++ ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; ++ -hiux*) ++ os=-hiuxwe2 ++ ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5) ++ os=-sco3.2v5 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco4) ++ os=-sco3.2v4 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2.[4-9]*) ++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2v[4-9]*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco*) ++ os=-sco3.2v2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -udk*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -isc) ++ os=-isc2.2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -clix*) ++ basic_machine=clipper-intergraph ++ ;; ++ -isc*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -lynx*) ++ os=-lynxos ++ ;; ++ -ptx*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ ;; ++ -windowsnt*) ++ os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ ;; ++ -psos*) ++ os=-psos ++ ;; ++ -mint | -mint[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++esac ++ ++# Decode aliases for certain CPU-COMPANY combinations. ++case $basic_machine in ++ # Recognize the basic CPU types without company name. ++ # Some are omitted here because they have special meanings below. ++ 1750a | 580 \ ++ | 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 | avr32 \ ++ | bfin \ ++ | c4x | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | fido | fr30 | frv \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore | mep \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64vr | mips64vrel \ ++ | mips64orion | mips64orionel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | mt \ ++ | msp430 \ ++ | nios | nios2 \ ++ | ns16k | ns32k \ ++ | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | pyramid \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ ++ | tahoe | thumb | tic4x | tic80 | tron \ ++ | v850 | v850e \ ++ | we32k \ ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k) ++ basic_machine=$basic_machine-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ++ ;; ++ ms1) ++ basic_machine=mt-unknown ++ ;; ++ ++ # We use `pc' rather than `unknown' ++ # because (1) that's what they normally are, and ++ # (2) the word "unknown" tends to confuse beginning users. ++ i*86 | x86_64) ++ basic_machine=$basic_machine-pc ++ ;; ++ # Object if more than one company name word. ++ *-*-*) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++ # Recognize the basic CPU types with company name. ++ 580-* \ ++ | a29k-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* | avr32-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | m32c-* | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ ++ | msp430-* \ ++ | nios-* | nios2-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | pyramid-* \ ++ | romp-* | rs6000-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ ++ | v850-* | v850e-* | vax-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa*-* \ ++ | ymp-* \ ++ | z8k-*) ++ ;; ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=$basic_machine-unknown ++ ;; ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 386bsd) ++ basic_machine=i386-unknown ++ os=-bsd ++ ;; ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ basic_machine=m68000-att ++ ;; ++ 3b*) ++ basic_machine=we32k-att ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; ++ alliant | fx80) ++ basic_machine=fx80-alliant ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ os=-bsd ++ ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ os=-sysv ++ ;; ++ amiga | amiga-*) ++ basic_machine=m68k-unknown ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ os=-sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ os=-sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ os=-bsd ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ os=-aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ os=-dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ os=-linux ++ ;; ++ blackfin-*) ++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ os=-bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ os=-bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ os=-bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ os=-bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ os=-bsd ++ ;; ++ cray | j90) ++ basic_machine=j90-cray ++ os=-unicos ++ ;; ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp ++ ;; ++ cr16) ++ basic_machine=cr16-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 ++ ;; ++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ basic_machine=m68k-motorola ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ os=-sysv3 ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; ++ dpx20 | dpx20-*) ++ basic_machine=rs6000-bull ++ os=-bosx ++ ;; ++ dpx2* | dpx2*-bull) ++ basic_machine=m68k-bull ++ os=-sysv3 ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ os=-ebmon ++ ;; ++ elxsi) ++ basic_machine=elxsi-elxsi ++ os=-bsd ++ ;; ++ encore | umax | mmax) ++ basic_machine=ns32k-encore ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; ++ fx2800) ++ basic_machine=i860-alliant ++ ;; ++ genix) ++ basic_machine=ns32k-ns ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ os=-sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; ++ h3050r* | hiux*) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ os=-hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ os=-xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ os=-hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ os=-sysv3 ++ ;; ++ hp300-*) ++ basic_machine=m68k-hp ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ os=-bsd ++ ;; ++ hp300hpux) ++ basic_machine=m68k-hp ++ os=-hpux ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ basic_machine=m68000-hp ++ ;; ++ hp9k3[2-9][0-9]) ++ basic_machine=m68k-hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hppa-next) ++ os=-nextstep3 ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ os=-osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ os=-proelf ++ ;; ++ i370-ibm* | ibm*) ++ basic_machine=i370-ibm ++ ;; ++# I'm not sure what "Sysv32" means. Should this be sysv3.2? ++ i*86v32) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv32 ++ ;; ++ i*86v4*) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv4 ++ ;; ++ i*86v) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv ++ ;; ++ i*86sol2) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-solaris2 ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ os=-mach ++ ;; ++ i386-vsta | vsta) ++ basic_machine=i386-unknown ++ os=-vsta ++ ;; ++ iris | iris4d) ++ basic_machine=mips-sgi ++ case $os in ++ -irix*) ++ ;; ++ *) ++ os=-irix4 ++ ;; ++ esac ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ os=-sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ os=-linux ++ ;; ++ m68knommu-*) ++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ m88k-omron*) ++ basic_machine=m88k-omron ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ os=-sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ os=-sysv ++ ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ os=-mingw32ce ++ ;; ++ miniframe) ++ basic_machine=m68000-convergent ++ ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mips3*-*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ++ ;; ++ mips3*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ os=-mvs ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ os=-sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-unknown ++ os=-netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ os=-linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ os=-newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ os=-newsos ++ ;; ++ news-3600 | risc-news) ++ basic_machine=mips-sony ++ os=-newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; ++ next | m*-next ) ++ basic_machine=m68k-next ++ case $os in ++ -nextstep* ) ++ ;; ++ -ns2*) ++ os=-nextstep2 ++ ;; ++ *) ++ os=-nextstep3 ++ ;; ++ esac ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ os=-cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ os=-cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ os=-nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ os=-mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; ++ np1) ++ basic_machine=np1-gould ++ ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; ++ op50n-* | op60c-*) ++ basic_machine=hppa1.1-oki ++ os=-proelf ++ ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; ++ pa-hitachi) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ os=-osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ os=-linux ++ ;; ++ parisc-*) ++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ pbd) ++ basic_machine=sparc-tti ++ ;; ++ pbb) ++ basic_machine=m68k-tti ++ ;; ++ pc532 | pc532-*) ++ basic_machine=ns32k-pc532 ++ ;; ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium | p5 | k5 | k6 | nexgen | viac3) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) ++ basic_machine=i686-pc ++ ;; ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) ++ basic_machine=i786-pc ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium4-*) ++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pn) ++ basic_machine=pn-gould ++ ;; ++ power) basic_machine=power-ibm ++ ;; ++ ppc) basic_machine=powerpc-unknown ++ ;; ++ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppcle | powerpclittle | ppc-le | powerpc-little) ++ basic_machine=powerpcle-unknown ++ ;; ++ ppcle-* | powerpclittle-*) ++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ps2) ++ basic_machine=i386-ibm ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rdos) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ rm[46]00) ++ basic_machine=mips-siemens ++ ;; ++ rtpc | rtpc-*) ++ basic_machine=romp-ibm ++ ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ ;; ++ sh) ++ basic_machine=sh-hitachi ++ os=-hms ++ ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ os=-sysv2 ++ ;; ++ spur) ++ basic_machine=spur-unknown ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ os=-sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ os=-sunos4 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ os=-sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ os=-sunos4 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ os=-sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ os=-sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ os=-solaris2 ++ ;; ++ sun3 | sun3-*) ++ basic_machine=m68k-sun ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ os=-dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ os=-unicos ++ ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; ++ tile*) ++ basic_machine=tile-unknown ++ os=-linux-gnu ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; ++ tower | tower-32) ++ basic_machine=m68k-ncr ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ os=-sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ os=-sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ os=-vms ++ ;; ++ vpp*|vx|vx-*) ++ basic_machine=f301-fujitsu ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ os=-vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ os=-vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ os=-vxworks ++ ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; ++ xps | xps100) ++ basic_machine=xps100-honeywell ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; ++ none) ++ basic_machine=none-none ++ os=-none ++ ;; ++ ++# Here we handle the default manufacturer of certain CPU types. It is in ++# some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ basic_machine=hppa1.1-winbond ++ ;; ++ op50n) ++ basic_machine=hppa1.1-oki ++ ;; ++ op60c) ++ basic_machine=hppa1.1-oki ++ ;; ++ romp) ++ basic_machine=romp-ibm ++ ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; ++ rs6000) ++ basic_machine=rs6000-ibm ++ ;; ++ vax) ++ basic_machine=vax-dec ++ ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; ++ pdp11) ++ basic_machine=pdp11-dec ++ ;; ++ we32k) ++ basic_machine=we32k-att ++ ;; ++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ basic_machine=sparc-sun ++ ;; ++ cydra) ++ basic_machine=cydra-cydrome ++ ;; ++ orion) ++ basic_machine=orion-highlevel ++ ;; ++ orion105) ++ basic_machine=clipper-highlevel ++ ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; ++ *) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we canonicalize certain aliases for manufacturers. ++case $basic_machine in ++ *-digital*) ++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++ ;; ++ *-commodore*) ++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ ;; ++ *) ++ ;; ++esac ++ ++# Decode manufacturer-specific aliases for certain operating systems. ++ ++if [ x"$os" != x"" ] ++then ++case $os in ++ # First match some system type aliases ++ # that might get confused with valid system types. ++ # -solaris* is a basic system type, with this one exception. ++ -solaris1 | -solaris1.*) ++ os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ ;; ++ -solaris) ++ os=-solaris2 ++ ;; ++ -svr4*) ++ os=-sysv4 ++ ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; ++ -gnu/linux*) ++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ++ ;; ++ # First accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST END IN A *, to match a version number. ++ # -sysv* is not here because it comes later, after sysvr4. ++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* \ ++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ ++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -openbsd* | -solidbsd* \ ++ | -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* | -linux-newlib* | -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* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ # Remember, each alternative MUST END IN *, to match a version number. ++ ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; ++ -linux*) ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` ++ ;; ++ -sunos5*) ++ os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ ;; ++ -sunos6*) ++ os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; ++ -osfrose*) ++ os=-osfrose ++ ;; ++ -osf*) ++ os=-osf ++ ;; ++ -utek*) ++ os=-bsd ++ ;; ++ -dynix*) ++ os=-bsd ++ ;; ++ -acis*) ++ os=-aos ++ ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; ++ -386bsd) ++ os=-bsd ++ ;; ++ -ctix* | -uts*) ++ os=-sysv ++ ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; ++ -ns2 ) ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk ++ ;; ++ # Preserve the version number of sinix5. ++ -sinix5.*) ++ os=`echo $os | sed -e 's|sinix|sysv|'` ++ ;; ++ -sinix*) ++ os=-sysv4 ++ ;; ++ -tpf*) ++ os=-tpf ++ ;; ++ -triton*) ++ os=-sysv3 ++ ;; ++ -oss*) ++ os=-sysv3 ++ ;; ++ -svr4) ++ os=-sysv4 ++ ;; ++ -svr3) ++ os=-sysv3 ++ ;; ++ -sysvr4) ++ os=-sysv4 ++ ;; ++ # This must come after -sysvr4. ++ -sysv*) ++ ;; ++ -ose*) ++ os=-ose ++ ;; ++ -es1800*) ++ os=-ose ++ ;; ++ -xenix) ++ os=-xenix ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; ++ -zvmoe) ++ os=-zvmoe ++ ;; ++ -none) ++ ;; ++ *) ++ # Get rid of the `-' at the beginning of $os. ++ os=`echo $os | sed 's/[^-]*-//'` ++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++else ++ ++# Here we handle the default operating systems that come with various machines. ++# The value should be what the vendor currently ships out the door with their ++# machine or put another way, the most popular os provided with the machine. ++ ++# Note that if you're going to try to match "-MANUFACTURER" here (say, ++# "-sun"), then you have to tell the case statement up towards the top ++# that MANUFACTURER isn't an operating system. Otherwise, code above ++# will signal an error saying that MANUFACTURER isn't an operating ++# system, and we'll never get to this point. ++ ++case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; ++ *-acorn) ++ os=-riscix1.2 ++ ;; ++ arm*-rebel) ++ os=-linux ++ ;; ++ arm*-semi) ++ os=-aout ++ ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) ++ os=-none ++ ;; ++ *-dec | vax-*) ++ os=-ultrix4.2 ++ ;; ++ m68*-apollo) ++ os=-domain ++ ;; ++ i386-sun) ++ os=-sunos4.0.2 ++ ;; ++ m68000-sun) ++ os=-sunos3 ++ # This also exists in the configure program, but was not the ++ # default. ++ # os=-sunos4 ++ ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mep-*) ++ os=-elf ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; ++ or32-*) ++ os=-coff ++ ;; ++ *-tti) # must be before sparc entry or we get the wrong os. ++ os=-sysv3 ++ ;; ++ sparc-* | *-sun) ++ os=-sunos4.1.1 ++ ;; ++ *-be) ++ os=-beos ++ ;; ++ *-haiku) ++ os=-haiku ++ ;; ++ *-ibm) ++ os=-aix ++ ;; ++ *-knuth) ++ os=-mmixware ++ ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; ++ *-hp) ++ os=-hpux ++ ;; ++ *-hitachi) ++ os=-hiux ++ ;; ++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) ++ os=-sysv ++ ;; ++ *-cbm) ++ os=-amigaos ++ ;; ++ *-dg) ++ os=-dgux ++ ;; ++ *-dolphin) ++ os=-sysv3 ++ ;; ++ m68k-ccur) ++ os=-rtu ++ ;; ++ m88k-omron*) ++ os=-luna ++ ;; ++ *-next ) ++ os=-nextstep ++ ;; ++ *-sequent) ++ os=-ptx ++ ;; ++ *-crds) ++ os=-unos ++ ;; ++ *-ns) ++ os=-genix ++ ;; ++ i370-*) ++ os=-mvs ++ ;; ++ *-next) ++ os=-nextstep3 ++ ;; ++ *-gould) ++ os=-sysv ++ ;; ++ *-highlevel) ++ os=-bsd ++ ;; ++ *-encore) ++ os=-bsd ++ ;; ++ *-sgi) ++ os=-irix ++ ;; ++ *-siemens) ++ os=-sysv4 ++ ;; ++ *-masscomp) ++ os=-rtu ++ ;; ++ f30[01]-fujitsu | f700-fujitsu) ++ os=-uxpv ++ ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; ++ *) ++ os=-none ++ ;; ++esac ++fi ++ ++# Here we handle the case where we know the os, and the CPU type, but not the ++# manufacturer. We pick the logical manufacturer. ++vendor=unknown ++case $basic_machine in ++ *-unknown) ++ case $os in ++ -riscix*) ++ vendor=acorn ++ ;; ++ -sunos*) ++ vendor=sun ++ ;; ++ -aix*) ++ vendor=ibm ++ ;; ++ -beos*) ++ vendor=be ++ ;; ++ -hpux*) ++ vendor=hp ++ ;; ++ -mpeix*) ++ vendor=hp ++ ;; ++ -hiux*) ++ vendor=hitachi ++ ;; ++ -unos*) ++ vendor=crds ++ ;; ++ -dgux*) ++ vendor=dg ++ ;; ++ -luna*) ++ vendor=omron ++ ;; ++ -genix*) ++ vendor=ns ++ ;; ++ -mvs* | -opened*) ++ vendor=ibm ++ ;; ++ -os400*) ++ vendor=ibm ++ ;; ++ -ptx*) ++ vendor=sequent ++ ;; ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) ++ vendor=wrs ++ ;; ++ -aux*) ++ vendor=apple ++ ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; ++ -vos*) ++ vendor=stratus ++ ;; ++ esac ++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ++ ;; ++esac ++ ++echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: diff --git a/source/n/metamail/metamail_2.7-52.diff b/source/n/metamail/metamail_2.7-52.diff new file mode 100644 index 000000000..1217f4289 --- /dev/null +++ b/source/n/metamail/metamail_2.7-52.diff @@ -0,0 +1,43013 @@ +--- metamail-2.7.orig/bin/showaudio ++++ metamail-2.7/bin/showaudio +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,200 +11,309 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-# First, figure out which machine to play it on! +-set thishost=`hostname` +- +-# Note that there are some special lines in here that only work at Bellcore, +-# Specifically involving phone playback from the machine "greenbush". +-# Everything should work fine at other sites, though +-set AUDIOBINDIR=/u/andrew/phone-sau/bin +-set AUDIOPHONEHOST=greenbush +-set AUDIOPHONEHOSTLONG=greenbush.bellcore.com +-set AUDIOLOGMAIL=andrew@thumper.bellcore.com +-set ORG="Bellcore" +-set STDINPUT=0 +-if ("$1" == "-p") then +- set AUDIOPHONE=$2 +- shift +- shift +-endif +-if ("$1" == "-s") then +- set AUDIOSPEAKERFORCE = 1 +- shift +-endif +-if ($?AUDIOPHONE || $?AUDIOPHONEFORCE) then +- goto playphone +-endif +-if (! -d $AUDIOBINDIR) then +- set AUDIOSPEAKERFORCE=1 +-endif +- +-if ("$1" == "-") then +- set STDINPUT=1 +- shift +-endif +-if ($#argv < 1) then +- set STDINPUT=1 +-endif +- +-if (! $STDINPUT && ! $?AUDIOSPEAKERFORCE && ! $?AUDIOPHONEFORCE) then +- if ($?MM_NOTTTY) then +- if ($MM_NOTTTY == 1) then +- setenv MM_NOTTTY 0 +- xterm -e showaudio $* +- exit 0 +- endif +- endif +-choosehardware: +- echo This program can display audio on the speakers of some workstations, +- echo "or (at some sites) it can call you on the telephone. Please choose one:" +- echo "" +- echo "1 -- Use the computer's speaker" +- echo "2 -- Call me on the telephone" +- echo "" +- echo -n "Which do you prefer (1 or 2)? " +- set ans=$< +- if ($ans == 2) then +- echo "OK, we'll use the telephone..." +- set AUDIOPHONEFORCE=1 +- echo "In the future, you can avoid this question by setting the environment variable" +- echo "AUDIOPHONEFORCE to 1" +- goto playphone +- else if ($ans == 1) then +- echo "OK, Attempting to play the audio using your computer's speaker.." +- set AUDIOSPEAKERFORCE=1 +- echo "In the future, you can avoid this question by setting the environment variable" +- echo "AUDIOSPEAKERFORCE to 1" +- else +- echo "That is NOT one of your choices." +- goto choosehardware +- endif +-endif +- +-set audiohost=$thishost +-if ($?DISPLAY) then +- set audiohost=`echo $DISPLAY | sed -e 's/:.*//'` +- if ($audiohost == "unix") set audiohost=$thishost +- if ($audiohost == "") set audiohost=$thishost +-endif +-if ($?AUDIOHOST) then +- set audiohost=$AUDIOHOST +-endif +- +-if ($audiohost != $thishost) then +- echo Sending audio to $audiohost... +- if ($?MMS_AUDIO) then +- if ($STDINPUT) then +- cat | mms -host $audiohost "show audio/basic" - +- else +- cat $* | mms -host $audiohost "show audio/basic" - +- endif +- exit 0 +- endif +- +-# The next two lines are very inefficient, but not everyone has their path right for an rsh +- pushd ~ >& /dev/null +- set thisprog=`which showaudio` +- popd >& /dev/null +- if ($STDINPUT) then +- cat | rsh $audiohost $thisprog -s - +- else +- cat $* | rsh $audiohost $thisprog -s - +- endif +- exit 0 +-endif +- +-if (-f /usr/sbin/sfplay) then +- if ($#argv >= 1) then +- exec /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $* +- else +- cat > ${METAMAIL_TMPDIR}/audio.$$ +- /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end ${METAMAIL_TMPDIR}/audio.$$ +- rm ${METAMAIL_TMPDIR}/audio.$$ +- exit 0 +- endif +-else if (-d /usr/sony) then +- set dev=/dev/sb0 +-else if (-e /usr/bin/audioplay) then +-# Solaris 2.0 +- /usr/bin/audioconvert -i raw,voice -f sun $* | /usr/bin/audioplay +- exit $status +-else if (-e /bin/audioplay) then +-# Solaris 2.0 +- /bin/audioconvert -i raw,voice -f sun $* | /bin/audioplay +- exit $status +-else +- set dev=/dev/audio +-endif +- +-if (-w $dev) then +-echo Playing audio on $thishost using $dev, one moment please... +-if ($#argv >= 1) then +- cat $* > $dev ++# Brought into line with metamail 2.7 beta release Csh version ++# Added sox support ++# Dave Shield February 1994 ++ ++thishost=`hostname` ++ ++AUDIOBINDIR=/u/andrew/phone-sau/bin ++AUDIOPHONEHOST=greenbush ++AUDIOPHONEHOSTLONG=greenbush.bellcore.com ++AUDIOLOGMAIL=greenbush.bellcore.com ++ORG=Bellcore ++STDINPUT=0 ++ ++if test -x /usr/bin/remsh ++then ++ # Probably a System V based system ++ # "rsh" is likely to be "restricted shell" ++ RSH=remsh + else +- cat > $dev +-endif +-exit 0 +-endif ++ RSH=rsh ++fi ++# SOX=/usr/remote/bin9/sox ++ ++if test "$1" = "-p" ++then ++ AUDIOPHONE=$2 ++ shift ++ shift ++fi ++ ++if test "$1" = "-s" ++then ++ AUDIOSPEAKERFORCE=1 ++ shift ++fi ++ ++playphone=0 ++if test ! -z "${AUDIOPHONE:-}" -o ! -z "${AUDIOPHONEFORCE:-}" ++then ++ playphone=1 ++fi ++ ++if test $playphone -eq 0 ++then ++ if test ! -d "$AUDIOBINDIR" ++ then ++ AUDIOSPEAKERFORCE=1 ++ fi ++ ++ if test "$1" = "-" ++ then ++ STDINPUT=1 ++ shift ++ fi ++ if test $# -eq 0 ++ then ++ STDINPUT=1 ++ fi ++ ++ if test $STDINPUT -eq 0 -a -z "${AUDIOSPEAKERFORCE:-}" -a -z "${AUDIOPHONEFORCE:-}" ++ then ++ if test ! -z "${MM_NOTTTY:-}" ++ then ++ if test $MM_NOTTTY -eq 1 ++ then ++ MM_NOTTTY=0; export MM_NOTTTY ++ xterm -e showaudio $* ++ exit 0 ++ fi ++ fi ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo This program can display audio on the speakers of some workstations, ++ echo "or (at some sites) it can call you on the telephone. Please choose one:" ++ echo "" ++ echo "1 -- Use the computer's speaker" ++ echo "2 -- Call me on the telephone" ++ echo "" ++ echo -n "Which do you prefer (1 or 2)? [1] " ++ read ans ++ if test "$ans" -eq 2 ++ then ++ echo "OK, we'll use the telephone..." ++ AUDIOPHONEFORCE=1 ++ echo "In the future, you can avoid this question by setting the environment variable" ++ echo "AUDIOPHONEFORCE to 1" ++ playphone=1 ++ looping=0 ++ elif test "$ans" -eq 1 ++ then ++ echo "OK, Attempting to play the audio using your computer's speaker.." ++ AUDIOSPEAKERFORCE=1 ++ echo "In the future, you can avoid this question by setting the environment variable" ++ echo "AUDIOSPEAKERFORCE to 1" ++ looping=0 ++ else ++ echo "That is NOT one of your choices." ++ fi ++ done ++ fi ++fi ++ ++if test $playphone -eq 0 ++then ++ audiohost=$thishost ++ if test ! -z "${DISPLAY:-}" ++ then ++ audiohost=`echo $DISPLAY | sed -e 's/:.*//'` ++ if test "$audiohost" = unix -o "$audiohost" = localhost ++ then ++ audiohost=$thishost ++ fi ++ if test -z "$audiohost" ++ then ++ audiohost=$thishost ++ fi ++ fi ++ if test ! -z "${AUDIOHOST:-}" ++ then ++ audiohost=$AUDIOHOST ++ fi ++ ++ if test ! "$audiohost" = "$thishost" ++ then ++ echo Sending audio to $audiohost... ++ if test ! -z "${MMS_AUDIO}" ++ then ++ if test $STDINPUT -eq 1 ++ then ++ cat | mms -host $audiohost "show audio/basic" ++ else ++ cat $* | mms -host $audiohost "show audio/basic" ++ fi ++ exit 0 ++ fi ++ thisprog=`(cd; which showaudio)` ++ if test $STDINPUT -eq 1 ++ then ++ cat | $RSH $audiohost $thisprog -s ++ else ++ cat $* | $RSH $audiohost $thisprog -s ++ fi ++ exit 0 ++ fi ++ ++ ++ if test -f /usr/sbin/sfplay ++ then ++ if test $# -ne 0 ++ then ++ exec /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $* ++ else ++ fname=$(mktemp /tmp/audio.XXXXXX) ++ cat > $fname ++ /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $fname ++ rm $fname ++ exit 0 ++ fi ++ elif test -f /usr/bin/audioplay ++ then ++ # Solaris 2.0 ++ /usr/bin/audioconvert -i raw,voice -f sun $* | /usr/bin/audioplay ++ exit $? ++ elif test -f /bin/audioplay ++ then ++ # Solaris 2.0 ++ /bin/audioconvert -i raw,voice -f sun $* | /bin/audioplay ++ exit $? ++ elif test -d /usr/sony ++ then ++ dev=/dev/sb0 ++ else ++ dev=/dev/audio ++ fi + +-playphone: +-if (-d $AUDIOBINDIR) then +- set thisprog=`which showaudio` +- if (! $?AUDIOPHONE) then +- if ($?MM_NOTTTY) then +- if ($MM_NOTTTY == 1) then +- setenv MM_NOTTTY 0 +- xterm -e $thisprog $* +- exit 0 +- endif +- endif +- echo This message contains audio, which can be sent to your telephone. +- echo Please enter the telephone number at which you would like to hear this +- echo -n "audio message as you would dial it from INSIDE ${ORG}: " +- set AUDIOPHONE=$< +- endif +- if ($thishost == $AUDIOPHONEHOST || $thishost == $AUDIOPHONEHOSTLONG) then +- echo Calling Phone number $AUDIOPHONE +- echo "You MUST SAY HELLO when you answer the phone, or you will not hear the message." +- mail -s "showaudio: `whoami` called $AUDIOPHONE" $AUDIOLOGMAIL < /dev/null +- if ($STDINPUT) then +- cat $AUDIOBINDIR/../GREET.au $* - | $AUDIOBINDIR/play -\# $AUDIOPHONE - +- else +- cat $AUDIOBINDIR/../GREET.au $* | $AUDIOBINDIR/play -\# $AUDIOPHONE - +- endif +- echo All done +- exit 0 ++ if test -w $dev ++ then ++ echo Playing audio on $thishost using $dev, one moment please... ++ if test $# -ne 0 ++ then ++ if test ! -z "${SOX:-}" ++ then ++ for ii in $* ++ do ++# ++# The "approved magic" to translate arbitary sounds ++# to AU format is as follows: ++# ++# $SOX -t auto $ii -c 1 -t aiff - | \ ++# $SOX -t aiff - -U -b -t au -c 1 -r 8000 $dev ++# ++# But the following "direct" translation also seems to work ++ $SOX -t auto $ii -c 1 -t au -c 1 -r 8000 $dev ++ done ++ else ++ cat $* > $dev ++ fi ++ else ++ if test ! -z "${SOX:-}" ++ then ++ fname=$(mktemp /tmp/audio.XXXXXX) ++ cat > $fname ++# ++# See also above ++# ++ $SOX -t auto $fname -c 1 -t au -c 1 -r 8000 $dev ++ rm $fname ++ else ++ cat > $dev ++ fi ++ fi ++ exit 0 ++ fi ++fi ++ ++if test -d "$AUDIOBINDIR" ++then ++ thisprog=`which showaudio` ++ if test -z "${AUDIOPHONE:-}" ++ then ++ if test ! -z "${MM_NOTTTY:-}" ++ then ++ if test $MM_NOTTTY -eq 1 ++ then ++ MM_NOTTTY=0; export MM_NOTTTY ++ xterm -e $thisprog $* ++ exit 0 ++ fi ++ fi ++ echo This message contains audio, which can be sent to your telephone. ++ echo Please enter the telephone number at which you would like to hear this ++ echo -n "audio message as you would dial it from inside ${ORG}: " ++ read AUDIOPHONE ++ fi ++ ++ if test "$thishost" == "$AUDIOPHONEHOST" \ ++ -o "$thishost" == "$AUDIOPHONEHOSTLONG" ++ then ++ echo Calling Phone number $AUDIOPHONE ++ echo "You MUST SAY HELLO when you answer the phone, or you will not hear the message." ++ mail -s "showaudio: `whoami` called $AUDIOPHONE" $AUDIOLOGMAIL < /dev/null ++ if test $STDINPUT -eq 1 ++ then ++ cat $AUDIOBINDIR/../GREET.au $* - | $AUDIOBINDIR/play -\# $AUDIOPHONE - ++ else ++ cat $AUDIOBINDIR/../GREET.au $* | $AUDIOBINDIR/play -\# $AUDIOPHONE - ++ fi ++ echo All done ++ exit 0 + else +- echo Trying to rsh to $AUDIOPHONEHOST to send audio via telephone +- cat $* | rsh $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - +- exit 0 +- endif +-endif ++ echo Trying to rsh to $AUDIOPHONEHOST to send audio via telephone ++ if test $STDINPUT -eq 1 ++ then ++ cat $* - | $RSH $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - ++ else ++ cat $* | $RSH $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - ++ fi ++ exit 0 ++ fi ++fi + echo "" +-echo This message contains an audio mesage, which can not currently be +-echo played on this type of workstation. If you log into an appropriate +-echo "machine (currently a SPARCstations or Sony News workstation)" +-echo and read this message there, you should be able to hear the audio +-echo message. ++echo "This message contains an audio mesage, which can not currently be" ++echo "played on this type of workstation. If you log into an appropriate" ++echo "machine (currently a SPARCstation or Sony News workstation)" ++echo "and read this message there, you should be able to hear the audio" ++echo "message." + echo "" +-if (! $?MM_NOTTTY) set MM_NOTTTY=0 +-if ($MM_NOTTTY == 1) then +- set fname=/tmp/mm.aud.$$ ++ ++if test -z "${MM_NOTTY:-}" ++then ++ MM_NOTTY=0 ++fi ++if test $MM_NOTTY -eq 1 ++then ++ fname=$(mktemp /tmp/metamail.XXXXXX) + else +- echo -n "Do you want to write the audio out to a file [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) exit 0 +- echo -n "File name:" +- set fname=$< +-endif +-cp $1 $fname +-if ($status == 0) echo Wrote raw audio file: $fname ++ echo -n "Do you want to write the audio out to a file [y] ? " ++ read ANS ++ case "$ANS" in ++ [Nn]*) exit 0 ;; ++ esac ++ ++ echo -n "File name:" ++ read fname ++fi ++cp "$1" "$fname" ++if test $? -eq 0 ++then ++ echo Wrote raw audio file: "$fname" ++fi + exit 0 +- +--- metamail-2.7.orig/bin/showpicture ++++ metamail-2.7/bin/showpicture +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,84 +11,111 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-if (! $?X_VIEWER) then +-set X_VIEWER="xloadimage -view -quiet -geometry +1+1" +-# set X_VIEWER="xv -geometry +1+1" +-endif +-if ($1 == "-viewer" && $#argv > 1) then +- set X_VIEWER = "$2" +- shift +- shift +-endif +- +-if (! $?MM_NOTTTY) then +- set MM_NOTTTY=0 +-endif +-if (! $?DISPLAY) then +- echo "" +- echo This message contains a picture, which can currently only be +- echo viewed when running X11. If you read this message while running +- echo X11, and have your DISPLAY variable set, you will then +- echo be able to see the picture properly. +- echo "" +- if ($MM_NOTTTY) then +- set fname=${METAMAIL_TMPDIR}/sp.$$ +- echo "The picture is being automatically stored in the file $fname" +- echo "If you do not want this file, please delete it." +- else +- echo -n "Do you want to write the picture out to a file [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) exit 0 +- while ( 1 == 1) +- echo -n "File name:" +- set fname=$< +- if (! -f $fname) then +- break +- else +- echo "$fname already exists. Try again" +- endif +- end +- endif +- cp $1 $fname +- if ($status == 0) echo Wrote file $fname +- exit 0 +-endif +- +-if ($#argv == 0) then +- set SQUIRREL=${METAMAIL_TMPDIR}/sp.$$ +- cat > $SQUIRREL +-else +- set SQUIRREL="$*" +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-echo NOTE: TO MAKE THE PICTURE WINDOW GO AWAY, JUST TYPE 'q' IN IT. +-if ($#argv == 0) then +- echo "==> TO SAVE THIS IMAGE, COPY THE FILE $SQUIRREL BEFORE EXITING" +- echo "" +- $X_VIEWER $SQUIRREL +- rm $SQUIRREL ++if test -z "${X_VIEWER:-}" ++then ++ X_VIEWER="xloadimage -view -quiet" ++# X_VIEWER="xv" ++fi ++ ++if test "$1" = "-viewer" -a ! -z "$2" ++then ++ X_VIEWER=$2 ++ shift ++ shift ++fi ++ ++if test -z "${MM_NOTTY:-}" ++then ++ MM_NOTTY=0 ++fi ++if test -z "${DISPLAY:-}" ++then ++ echo "" ++ echo This message contains a picture, which can currently only be ++ echo viewed when running X11. If you read this message while running ++ echo X11, you will be able to see the picture properly. ++ if test $MM_NOTTY -eq 1 ++ then ++ fname=$(mktemp /tmp/metamail.XXXXXX) ++ echo "The picture is being automatically stored in the file $fname" ++ echo "If you do not want this file, please delete it." ++ else ++ echo -n "Do you want to write the picture out to a file [y] ? " ++ read ANS ++ case "$ANS" in ++ [Nn]*) exit 0;; ++ *) looping=1 ++ while test $looping -eq 1 ++ do ++ echo -n "File name: " ++ read fname ++ if test -f "$fname" ++ then ++ echo "$fname already exists. Try again" ++ else ++ looping=0 ++ fi ++ done ;; ++ esac ++ fi ++ cp "$1" "$fname" ++ if test $? -eq 0 ++ then ++ echo Wrote file "$fname" ++ fi ++ exit 0 ++fi ++ ++if test -z "$1" ++then ++ SQUIRREL=$(mktemp /tmp/metamail.XXXXXX) ++ cat > $SQUIRREL + else ++ SQUIRREL="$*" ++fi + +-foreach i ($*) +- echo "==> TO SAVE THIS IMAGE, COPY THE FILE $i BEFORE EXITING" +- echo "" +- set dir=$i:h +- if ($dir != $i) then +- # Make the ln sure to work +- cd $dir +- endif +- ln $i $$.PRESS-q-TO-EXIT +- if (! $status) then +- sh -c "$X_VIEWER $$.PRESS-q-TO-EXIT" +- rm $$.PRESS-q-TO-EXIT +- else +- sh -c "$X_VIEWER $i" +- endif +-end +-endif ++ ++echo NOTE: TO MAKE THE PICTURE WINDOW GO AWAY, JUST TYPE 'q' IN IT. ++if test -z "$1" ++then ++ echo "==> TO SAVE THIS IMAGE, COPY THE FILE $SQUIRREL BEFORE EXITING" ++ echo ++ $X_VIEWER $SQUIRREL ++ rm $SQUIRREL ++else ++ for i in $SQUIRREL ++ do ++ echo "==> TO SAVE THIS IMAGE, COPY THE FILE $i BEFORE EXITING" ++ echo ++ dir=$(dirname $i) ++ base=$(basename $i) ++ if test ! "$base" = "$i" ++ then ++ cd $dir ++ fi ++ if ln $i $$.PRESS-q-TO-EXIT > /dev/null 2>&1 ++ then ++ $X_VIEWER $$.PRESS-q-TO-EXIT ++ rm $$.PRESS-q-TO-EXIT ++ else ++ $X_VIEWER $i ++ fi ++ done ++fi +--- metamail-2.7.orig/bin/metasend ++++ metamail-2.7/bin/metasend +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,487 +11,591 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-set hname = `hostname` +-set idctr=0 +-set MustDelete=0 +-set batchmode=0 +-set multipart = 1 +-if ($?SPLITSIZE) then +- set splitsize=$SPLITSIZE ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++hname=`hostname` ++idctr=0 ++MustDelete=0 ++batchmode=0 ++multipart=1 ++if test ! -z "${SPLITSIZE:-}" ++then ++ splitsize=$SPLITSIZE + else +- set splitsize = 100000 +-endif +-set outputfile = "" +-set multipartsubtype = "mixed" +-set cdescrip = "An object packed by metasend" +-set isentity=0 +-set newid=`date | tr " :" "__"` +-set cid="<${newid}_$idctr@${hname}>" +-@ idctr++ +- +-while ($#argv > 0) +- switch ("$1") +- case "-S": +- shift +- if ($#argv == 0) then +- echo "-S requires a following argument, the SPLIT threshhold" +- exit -1 +- endif +- set splitsize=$1 +- shift +- breaksw +- case "-b": +- # Batch mode -- ALL args must be on command line +- set batchmode = 1 +- shift +- breaksw +- case "-c": +- shift +- if ($#argv == 0) then +- echo "-c requires a following argument, the CC address" +- exit -1 +- endif +- set cc="$1" +- shift +- breaksw +- case "-i": +- shift +- if ($#argv == 0) then +- echo "-i requires a following argument, the Content-ID value" +- exit -1 +- endif +- set cid=$1 +- shift +- breaksw +- case "-I": +- shift +- if ($#argv == 0) then +- echo "-I requires a following argument, the multipart Content-ID value" +- exit -1 +- endif +- set multicid=$1 +- shift +- breaksw +- case "-s": +- shift +- if ($#argv == 0) then +- echo "-s requires a following argument, the SUBJECT" +- exit -1 +- endif +- set subject="$1" +- shift +- breaksw +- case "-t": +- shift +- if ($#argv == 0) then +- echo "-t requires a following argument, the TO address" +- exit -1 +- endif +- set to="$1" +- shift +- breaksw +- case "-F": +- shift +- if ($#argv == 0) then +- echo "-F requires a following argument, the FROM address" +- exit -1 +- endif +- set from="$1" +- shift +- breaksw +- case "-P": +- shift +- if ($#argv == 0) then +- echo "-P requires a following argument, the preamble file name" +- exit -1 +- endif +- set preamblefile="$1" +- shift +- breaksw +- case "-e": +- shift +- if ($#argv == 0) then +- echo "-e requires a following argument, the ENCODING value" +- exit -1 +- endif +- set encode=$1 +- if ($encode == "base64") then +- set encodingprog = "mimencode -b" +- else if ($encode == "x-uue") then +- set encodingprog = "uuencode mail-body" +- else if ($encode == "7bit") then +- set encodingprog = cat +- else +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- endif +- shift +- breaksw +- case "-f": +- shift +- if ($#argv == 0) then +- echo "-f requires a following argument, the DATA FILE" +- exit -1 +- endif +- set datafile=$1 +- if (! -e $datafile) then +- echo The file $datafile does not exist. +- exit -1 +- endif +- shift +- breaksw +- case "-m": +- shift +- if ($#argv == 0) then +- echo "-m requires a following argument, the MIME CONTENT-TYPE" +- exit -1 +- endif +-# set ctyperaw = $1 +-# set ctype=`echo $ctyperaw | tr \" \'` +- set ctype = "$1" +- if (`echo $ctype | grep /` == "") then +- echo "Invalid content-type specified" +- exit -1 +- endif +- shift +- breaksw +- case "-o": +- shift +- if ($#argv == 0) then +- echo "-o requires a following argument, the output file name" +- exit -1 +- endif +- set outputfile="$1" +- shift +- breaksw +- case "-/": +- shift +- if ($#argv == 0) then +- echo "-/ requires a following argument, the multipart subtype" +- exit -1 +- endif +- set multipartsubtype="$1" +- shift +- breaksw +- case "-D": +- shift +- if ($#argv == 0) then +- echo "-D requires a following argument, the Content-Description value" +- exit -1 +- endif +- set cdescrip="$1" +- shift +- breaksw +- case "-E": +- set isentity=1 +- shift +- breaksw +- case "-z": +- set MustDelete=1 +- shift +- breaksw +- case "-n": +- if ($isentity) then +- if (! $?encode) then +- set encode=7bit +- set encodingprog=cat +- endif +- if (! $?ctype) then +- set ctype=bogus +- # Never used +- endif +- if ( ! $?datafile) then +- echo One part is incomplete -- each part needs at least -f and -E +- exit -1 +- endif +- else +- if ( ! $?ctype || ! $?datafile) then +- echo One part is incomplete -- each part needs at least -f and -m +- exit -1 +- endif +- endif +- if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- else +- set encode = base64 +- set encodingprog = "mimencode -b" +- endif +- endif +- set ctype${multipart} = "$ctype" +- set datafile${multipart} = $datafile +- set encode${multipart} = $encode +- set cdescrip${multipart} = "$cdescrip" +- set cid${multipart} = "$cid" +- set isentity${multipart} = $isentity +- set encodingprog${multipart} = "$encodingprog" +- unset ctype +- unset datafile +- unset encode +- unset encodingprog +- set newid=`date | tr " :" "__"` +- set cid="<${newid}_$idctr@${hname}>" +- @ idctr++ +- set cdescrip = "An object packed by metasend" +- set isentity=0 +- @ multipart++ +- shift +- breaksw +- default: +- echo UNRECOGNIZED METASEND OPTION: $1 +- exit -1 +- endsw +-end +-if ($batchmode == 0) then +- if (! $?to) then +- echo -n "To: " +- set to = $< +- endif +- if (! $?subject) then +- echo -n "Subject: " +- set subject = $< +- endif +- if (! $?cc) then +- echo -n "CC: " +- set cc = $< +- endif +-anotherpart: +- if (! $?ctype) then +- echo -n "Content-type: " +-# set ctyperaw = $< +-# set ctype=`echo $ctyperaw | tr \" \'` +- set ctype = "$<" +- endif +- if (`echo $ctype | grep /` == "") then +- echo "Invalid content-type specified" +- unset ctype +- goto anotherpart +- endif +-# if ($ctype != $ctyperaw) echo Double quotes not allowed, using $ctype +- if (! $?datafile) then +- getfile: +- echo -n "Name of file containing $ctype data: " +- set datafile = $< +- if (! -e $datafile) then +- echo The file $datafile does not exist. +- goto getfile +- endif +- endif +- if (! $?encode) then +- retry: +- echo "Do you want to encode this data for sending through the mail?" +- echo " 1 -- No, it is already in 7 bit ASCII" +- echo " 2 -- Yes, encode in base64 (most efficient)" +- echo " 3 -- Yes, encode in quoted-printable (less efficient, more readable)" +- echo " 4 -- Yes, encode it using uuencode (not standard, being phased out)" +- set encode=$< +- switch ("$encode") +- case 1: +- set encodingprog = cat +- set encode = 7bit +- breaksw +- case 2: +- set encodingprog = "mimencode -b" +- set encode = base64 +- breaksw +- case 3: +- set encodingprog = "mimencode -q" +- set encode = quoted-printable +- breaksw +- case 4: +- set encodingprog = "uuencode $datafile" +- set encode = x-uue +- breaksw +- default: +- echo Unrecognized answer, please try again. +- goto retry +- endsw +- endif +- echo -n "Do you want to include another file too (y/n) [n] ? " +- set ans=$< +- if ("$ans" =~ y*) then +- set ctype${multipart} = "$ctype" +- set datafile${multipart} = $datafile +- set encode${multipart} = $encode +- set encodingprog${multipart} = "$encodingprog" +- set cdescrip${multipart} = "$cdescrip" +- set cid${multipart} = "$cid" +- set isentity${multipart} = $isentity +- set cdescrip = "An object packed by metasend" +- set isentity=0 +- unset ctype +- unset datafile +- unset encode +- unset encodingprog +- set newid=`date | tr " :" "__"` +- set cid="<${newid}_$idctr@${hname}>" +- @ idctr++ +- @ multipart++ +- goto anotherpart +- endif ++ splitsize=100000 ++fi ++ ++ouputfile= ++multipartsubtype=mixed ++cdescrip= # -Immi ++attachfilename= # -Immi ++isentity=0 ++newid=`date | tr " :" "__"` ++cid="<${newid}_$idctr@${hname}>" ++idctr=`expr $idctr + 1` ++ ++while test ! -z "$*" ++do ++ case $1 in ++ -S) shift ++ if test -z "$*" ++ then ++ echo "-S requires a following argument, the SPLIT threshhold" ++ exit 1 ++ fi ++ splitsize=$1 ++ shift ;; ++ ++ -b) batchmode=1 ++ shift ;; ++ ++ -c) shift ++ if test -z "$*" ++ then ++ echo "-c requires a following argument, the CC address" ++ exit 1 ++ fi ++ cc=$1 ++ shift ;; ++ ++ -i) shift ++ if test -z "$*" ++ then ++ echo "-i requires a following argument, the Content-ID value" ++ exit 1 ++ fi ++ cid=$1 ++ shift ;; ++ ++ -I) shift ++ if test -z "$*" ++ then ++ echo "-I requires a following argument, the multipart Content-ID value" ++ exit 1 ++ fi ++ multicid=$1 ++ shift ;; ++ ++ -s) shift ++ if test -z "$*" ++ then ++ echo "-s requires a following argument, the SUBJECT" ++ exit 1 ++ fi ++ subject=$1 ++ shift ;; ++ ++ -t) shift ++ if test -z "$*" ++ then ++ echo "-t requires a following argument, the TO address" ++ exit 1 ++ fi ++ to=$1 ++ shift ;; ++ ++ -F) shift ++ if test -z "$*" ++ then ++ echo "-F requires a following argument, the FROM address" ++ exit 1 ++ fi ++ from=$1 ++ shift ;; ++ ++ -P) shift ++ if test -z "$*" ++ then ++ echo "-P requires a following argument, the preamble file name" ++ exit 1 ++ fi ++ preamblefile=$1 ++ shift ;; ++ ++ -e) shift ++ if test -z "$*" ++ then ++ echo "-e requires a following argument, the ENCODING value" ++ exit 1 ++ fi ++ encode=$1 ++ case "$encode" in ++ "base64") encodingprog="mimencode -b";; ++ "x-uue") encodingprog="uuencode \$datafile";; ++ "7bit") encodingprog=cat;; ++ "8bit") encodingprog=cat;; ++ *) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ esac ++ shift ;; ++ ++ -f) shift ++ if test -z "$*" ++ then ++ echo "-f requires a following argument, the DATA FILE" ++ exit 1 ++ fi ++ datafile=$1 ++ if test ! -r "$datafile" ++ then ++ echo The file "$datafile" does not exist ++ exit 1 ++ fi ++ shift ;; ++ ++ -m) shift ++ if test -z "$*" ++ then ++ echo "-m requires a following argument, the MIME CONTENT-TYPE" ++ exit 1 ++ fi ++ ctype=$1 ++ if test "`echo $ctype | grep /`" = "" ++ then ++ echo Invalid content-type specified ++ exit 1 ++ fi ++ shift ;; ++ ++ -o) shift ++ if test -z "$*" ++ then ++ echo "-o requires a following argument, the output file name" ++ exit 1 ++ fi ++ outputfile=$1 ++ shift ;; ++ ++ -/) shift ++ if test -z "$*" ++ then ++ echo "-/ requires a following argument, the multipart subtype" ++ exit 1 ++ fi ++ multipartsubtype=$1 ++ shift ;; ++ ++ -D) shift ++ if test -z "$*" ++ then ++ echo "-D requires a following argument, the Content-Description value" ++ exit 1 ++ fi ++ cdescrip=$1 ++ shift ;; ++ ++# begin immi ++ -A) shift ++ if test -z "$*" ++ then ++ echo "-A requires a following argument, the attachment file name" ++ exit 1 ++ fi ++ attachfilename=$1 ++ shift ;; ++#end immi ++ ++ -E) isentity=1 ++ shift ;; ++ ++ -z) MustDelete=1 ++ shift ;; ++ ++ -n) if test $isentity -ne 0 ++ then ++ if test -z "${encode:-}" ++ then ++ encode=7bit ++ encodingprog=cat ++ fi ++ if test -z "${ctype:-}" ++ then ++ ctype=bogus ++ # Never used ++ fi ++ if test -z "${datafile:-}" ++ then ++ echo One part is incomplete -- each part needs at least -f and -E ++ exit 1 ++ fi ++ else ++ if test -z "${ctype:-}" || test -z "${datafile:-}" ++ then ++ echo One part is incomplete -- each part needs at least -f and -m ++ exit 1 ++ fi ++ fi ++ if test -z "${encode:-}" ++ then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++ fi ++ eval ctype${multipart}=\"$ctype\" ++ eval datafile${multipart}=$datafile ++ eval encode${multipart}=$encode ++ eval cdescrip${multipart}=\"$cdescrip\" ++ eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++ eval cid${multipart}=\"$cid\" ++ eval isentity${multipart}=$isentity ++ eval encodingprog${multipart}=\"\$encodingprog\" ++ ++ ctype= ++ datafile= ++ encode= ++ encodingprog= ++ newid=`date | tr " :" "__"` ++ cid="<${newid}_$idctr@${hname}>" ++ idctr=`expr $idctr + 1` ++ cdescrip= # -Immi ++ attachfilename= # -Immi ++ isentity=0 ++ multipart=`expr $multipart + 1` ++ shift ;; ++ ++ *) echo UNRECOGNIZED METASEND OPTION: "$1" ++ exit 1 ;; ++ esac ++done ++ ++if test $batchmode -eq 0 ++then ++ if test -z "${to:-}" ++ then ++ echo -n "To: " ++ read to ++ fi ++ if test -z "${subject:-}" ++ then ++ echo -n "Subject: " ++ read subject ++ fi ++ if test -z "${cc:-}" ++ then ++ echo -n "CC: " ++ read cc ++ fi ++ ++ anotherpart=1 ++ while test $anotherpart -eq 1 ++ do ++ looping=1 ++ while test $looping -ne 0 ++ do ++ if test -z "${ctype:-}" ++ then ++ echo -n "Content-type: " ++ read ctype ++ fi ++ if test "`echo $ctype | grep /`" = "" ++ then ++ echo Invalid content-type specified ++ ctype= ++ else ++ looping=0 ++ fi ++ done ++ if test -z "${datafile:-}" ++ then ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo -n "Name of file containing $ctype data: " ++ read datafile ++ if test -r "$datafile" ++ then ++ looping=0 ++ else ++ echo "The file $datafile does not exist." ++ fi ++ done ++ fi ++ ++ if test -z "${encode:-}" ++ then ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo "Do you want to encode this data for sending through the mail?" ++ echo " 1 -- No, it is already in 7 bit ASCII" ++ echo " 2 -- Yes, encode in base64 (most efficient)" ++ echo " 3 -- Yes, encode in quoted-printable (less efficient, more readable)" ++ echo " 4 -- Yes, encode it using uuencode (not standard, being phased out)" ++ echo " 5 -- No, it is 8 bit extended ASCII" ++ read encode ++ looping=0 ++ case "$encode" in ++ 1) encodingprog=cat ++ encode=7bit ;; ++ 2) encodingprog="mimencode -b" ++ encode=base64 ;; ++ 3) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ 4) encodingprog="uuencode $datafile" ++ encode=x-uue ;; ++ 5) encodingprog=cat ++ encode=8bit ;; ++ *) echo Unrecognized answer, please try again. ++ looping=1 ;; ++ esac ++ done ++ fi ++ ++ echo -n "Do you want to include another file too (y/n) [n] ? " ++ read ans ++ case $ans in ++ [Yy]*) ++ eval ctype${multipart}=\"$ctype\" ++ eval datafile${multipart}=$datafile ++ eval encode${multipart}=$encode ++ eval encodingprog${multipart}=\"\$encodingprog\" ++ eval cdescrip${multipart}=\"$cdescrip\" ++ eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++ eval cid${multipart}=\"$cid\" ++ eval isentity${multipart}=$isentity ++ cdescrip= # -Immi ++ attachfilename= # -Immi ++ isentity=0 ++ ctype= ++ datafile= ++ encode= ++ encodingprog= ++ newid=`date | tr " :" "__"` ++ cid="<${newid}_$idctr@${hname}>" ++ idctr=`expr $idctr + 1` ++ multipart=`expr $multipart + 1` ++ ;; ++ *) ++ anotherpart=0;; ++ esac ++ done ++ + else +- if ($outputfile == "") then +- if (! $?to || ! $?subject || ! $?ctype || ! $?datafile) then +- echo metasend: in batch mode, if output is not directed to a file,-t, -s, -f, and -m are all required +- exit -1 +- endif +- else +- if (! $?datafile) then +- echo metasend: in batch mode, -f is required. +- endif +- if ($isentity) then +- if (! $?ctype) then +- set ctype=bogus +- # will not be used anyway really +- endif +- endif +- if (! $?ctype ) then +- echo metasend: in batch mode, with output directed to a file, -E or -m is required +- exit -1 +- endif +- endif +- if (! -e $datafile) then +- echo metasend: The file $datafile does not exist +- exit -1 +- endif +-# if (! $?cc) set cc="" +-# if ($ctype != $ctyperaw) echo Double quotes not allowed, using $ctype +- if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- else +- set encodingprog = "mimencode -b" +- set encode = base64 +- endif +- else if ($encode == "base64") then +- set encodingprog = "mimencode -b" +- else if ($encode == "x-uue") then +- set encodingprog = "uuencode mail-body" +- else if ($encode == "7bit") then +- set encodingprog = cat +- else +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- endif +-endif +- +-if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encode = "quoted-printable" +- set encodingprog = "mimencode -q" +- else +- set encode = base64 +- set encodingprog = "mimencode -b" +- endif +-endif +-set ctype${multipart} = "$ctype" +-set datafile${multipart} = $datafile +-set encode${multipart} = $encode +-set cdescrip${multipart} = "$cdescrip" +-set cid${multipart} = "$cid" +-set isentity${multipart} = $isentity +-set encodingprog${multipart} = "$encodingprog" ++ if test -z "${outputfile:-}" ++ then ++ if test -z "${to:-}" \ ++ -o -z "${subject:-}" \ ++ -o -z "${ctype:-}" \ ++ -o -z "${datafile:-}" ++ then ++ echo "metasend: in batch mode, if output is not directed to a file, -t, -s, -f, and -m are all required" ++ exit 1 ++ fi ++ else ++ if test -z "${datafile:-}" ++ then ++ echo "metasend: in batch mode, -f is required." ++ exit 1 ++ fi ++ if test $isentity -ne 0 ++ then ++ if test -z "${ctype:-}" ++ then ++ ctype=bogus ++ # will not be used anyway ++ fi ++ fi ++ if test -z "${ctype:-}" ++ then ++ echo "metasend: in batch mode, with output directed to a file, -E or -m is required." ++ exit 1 ++ fi ++ fi ++ ++ ++ if test ! -r "$datafile" ++ then ++ echo "metasend: The file $datafile does not exist" ++ exit 1 ++ fi ++ ++# if test -z "${cc:-}" ++# then ++# cc='' ++# fi ++ ++ if test -z "${encode:-}" ++ then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++ else ++ case "$encode" in ++ base64) encodingprog="mimencode -b" ;; ++ x-uue) encodingprog="uuencode $datafile" ;; ++ 7bit) encodingprog=cat ;; ++ 8bit) encodingprog=cat ;; ++ *) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ esac ++ fi ++fi ++ ++if test -z "${encode:-}" ++then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++fi ++ ++eval ctype${multipart}=\"$ctype\" ++eval datafile${multipart}=$datafile ++eval encode${multipart}=$encode ++eval cdescrip${multipart}=\"$cdescrip\" ++eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++eval cid${multipart}=\"$cid\" ++eval isentity${multipart}=$isentity ++eval encodingprog${multipart}=\"\$encodingprog\" + +-set fname = ${METAMAIL_TMPDIR}/metasend.$$ ++fname=`tempfile -p metamail -m 600` + echo "MIME-Version: 1.0" > $fname +-if ($?to) then +- echo "To: " "$to" >> $fname +-endif +-if ($?subject) then +- echo "Subject: " "$subject" >> $fname +-endif +-if ($?cc) then +- echo "CC: " "$cc" >> $fname +-endif +-if ($?from) then +- echo "From: " "$from" >> $fname +-endif +-if ($multipart > 1) then +- set boundary = ${hname}.$$.`date | tr " " .` +- set newid=`date | tr " :" "__"` +- if ($?multicid) then +- echo "Content-ID: $multicid" >> $fname +- else +- echo "Content-ID: <${newid}_$idctr@${hname}>" >> $fname +- @ idctr++ +- endif +- echo "Content-type: multipart/$multipartsubtype;" >> $fname +- echo " boundary="\"$boundary\" >> $fname +- echo "" >> $fname +- if ($?preamblefile) then +- cat $preamblefile >> $fname +- else +- echo "This is a multimedia message in MIME format. If you are reading this" >> $fname +- echo "prefix, your mail reader does not understand MIME. You may wish" >> $fname +- echo "to look into upgrading to a newer version of your mail reader." >> $fname +- endif +- set i=1 +- set junkfile=${METAMAIL_TMPDIR}/mmjunk.$$ +- while ($multipart >= $i) ++ ++if test ! -z "${to:-}" ++then echo "To: $to" >> $fname ++fi ++if test ! -z "${subject:-}" ++then echo "Subject: $subject" >> $fname ++fi ++if test ! -z "${cc:-}" ++then echo "CC: $cc" >> $fname ++fi ++if test ! -z "${from:-}" ++then echo "From: $from" >> $fname ++fi ++ ++if test $multipart -gt 1 ++then ++ boundary=${hname}.$$.`date | tr " " .` ++ newid=`date | tr " :" "__"` ++ if test ! -z "${multicid:-}" ++ then ++ echo "Content-ID: $multicid" >> $fname ++ else ++ echo "Content-ID: ${newid}_$idctr@${hname}" >> $fname ++ idctr=`expr $idctr + 1` ++ fi ++ echo "Content-type: multipart/$multipartsubtype;" >> $fname ++ echo " boundary="\"$boundary\" >> $fname ++ echo "" >> $fname ++ if test ! -z "${preamblefile:-}" ++ then ++ cat $preamblefile >> $fname ++ else ++ echo "This is a multimedia message in MIME format. If you are reading this" >> $fname ++ echo "prefix, your mail reader does not understand MIME. You may wish" >> $fname ++ echo "to look into upgrading to a newer version of your mail reader." >> $fname ++ fi ++ ++ i=1 ++ while test $multipart -ge $i ++ do ++ echo "" >> $fname ++ echo --$boundary >> $fname ++ eval isentity=\$isentity$i ++ ++ if test $isentity -eq 0 ++ then ++ eval echo "Content-ID: \$cid$i" >> $fname ++ eval echo "Content-type: \$ctype$i" >> $fname ++#begin immi ++ eval cdescrip=\$cdescrip$i ++ if test ! -z "$cdescrip" ++ then ++ echo "Content-Description: $cdescrip" >> $fname ++ fi ++ eval attachfilename=\$attachfilename$i ++ if test ! -z "$attachfilename" ++ then ++ echo "Content-Disposition: attachment; filename=\"$attachfilename\"" >> $fname ++ fi ++#end immi ++ eval echo "Content-Transfer-Encoding: \$encode$i" >> $fname ++ echo "" >> $fname ++ fi ++ eval \$encodingprog$i \< \"\$datafile$i\" \>\> $fname ++ i=`expr $i + 1` ++ done ++ echo "" >> $fname ++ echo --${boundary}-- >> $fname + echo "" >> $fname +- echo --$boundary >> $fname +- echo set isentity=\$isentity$i > $junkfile +- source $junkfile +- if (! $isentity) then +- echo -n "Content-ID: " >> $fname +- echo echo \$cid$i \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-type: ">>$fname +- echo echo \$ctype$i \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-Description: ">>$fname +- echo echo \"\$cdescrip$i \" \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-Transfer-Encoding: " >>$fname +- echo echo \$encode$i \>\> $fname > $junkfile +- source $junkfile +- echo "" >> $fname +- endif +- echo \$encodingprog$i \< \$datafile$i \>\> $fname > $junkfile +- source $junkfile +- @ i++ +- end +- rm $junkfile +- echo "" >> $fname +- echo --${boundary}-- >> $fname +- echo "" >> $fname +-else +- if (! $isentity) then +- echo "Content-ID: $cid" >> $fname +- echo "Content-type: " $ctype >> $fname +- echo "Content-Description: " $cdescrip >> $fname +- echo "Content-Transfer-Encoding: " $encode >> $fname +- endif +- echo "" >> $fname +- $encodingprog < $datafile >> $fname +- # Ensure last line has trailing carriage return +- echo "" >> $fname +-endif +-if ($outputfile == "") then +- if ($batchmode == 0) echo -n "Delivering mail, please wait... " +- splitmail -s $splitsize -d $fname +- if (! $status) then +- if ($batchmode == 0) echo "Mail delivery apparently succeeded." +- rm $fname +- else if ($MustDelete == 1) then +- echo Mail delivery failed +- rm $fname +- exit -1 +- else +- echo Mail delivery failed, draft mail is in $fname +- exit -1 +- endif + else +- mv $fname $outputfile +- if ($status) exit -1 +-endif ++ if test $isentity -eq 0 ++ then ++ echo "Content-ID: $cid" >> $fname ++ echo "Content-type: $ctype" >> $fname ++#begin immi ++ if test ! -z "$cdescrip" ++ then ++ echo "Content-Description: $cdescrip" >> $fname ++ fi ++ if test ! -z "$attachfilename" ++ then ++ echo "Content-Disposition: attachment; filename=\"$attachfilename\"" >> $fname ++ fi ++#end immi ++ echo "Content-Transfer-Encoding: $encode" >> $fname ++ fi ++ echo "" >> $fname ++ $encodingprog < "$datafile" >> $fname ++ # Ensure last line has trailing carriage return ++ echo "" >> $fname ++fi ++ ++if test -z "${outputfile:-}" ++then ++ if test $batchmode = 0 ++ then ++ echo -n "Delivering mail, please wait... " ++ fi ++ splitmail -s "$splitsize" -d $fname ++ ++ if test $? -eq 0 ++ then ++ if test $batchmode = 0 ++ then ++ echo "Mail delivery apparently succeeded." ++ fi ++ rm $fname ++ elif test "$MustDelete" -eq 1 ++ then ++ echo Mail delivery failed ++ rm $fname ++ exit -1 ++ else ++ echo "Mail delivery failed, draft mail is in $fname" ++ exit -1 ++ fi ++else ++ mv $fname "$outputfile" ++ if test $? -ne 0 ++ then ++ exit -1 ++ fi ++fi + exit 0 + ++ +--- metamail-2.7.orig/bin/showpartial ++++ metamail-2.7/bin/showpartial +@@ -1,92 +1,156 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +- +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-set TREEROOT=${METAMAIL_TMPDIR}/m-prts-`whoami` +-if ($#argv < 3 || $#argv > 4) then +- echo "Usage: showpartial file id partnum totalnum" +- exit -1 +-endif +-set file=$1 ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++if [ -z "$METAMAIL_TMPDIR" ] ++then ++ METAMAIL_TMPDIR=/tmp ++fi ++ ++ ++ ++if test -z "$3" -o ! -z "$5" ++then ++ echo "Usage: showpartial file id partnum totalnum" ++ exit 1 ++fi ++ ++file=$1 ++ + # This next line is because message-id can contain weird chars +-set id=`echo $2 | tr -d \!\$\&\*\(\)\|\'\"\;\/\<\>\\` +-@ partnum = $3 +-if ($#argv == 3 || $4 == "") then +- set totalnum=-1 ++id=$(echo "$2" | tr -d \!\$\&\*\(\)\|\'\"\;\/\<\>\\\\ ) ++ ++partnum=$3 ++ ++if test -z "$4" ++then ++ totalnum=-1 ++else ++ totalnum=$4 ++fi ++ ++if [ -n "$HOME" ] ; then ++# If we have a home directory, create a temporary dir and ++# store the name there unless the file already exists ++# and the directory it points to is valid directory ++ [ -e "$HOME/.metamail_treeroot" ] && TREEROOT=`cat $HOME/.metamail_treeroot` ++ [ -e "$TREEROOT" ] && [ ! -d "$TREEROOT" ] && rm -f "$TREEROOT" ++ if [ ! -e "$HOME/.metamail_treeroot" ] || [ ! -e "$TREEROOT" ]; then ++ TREEROOT=`mktemp -d -t msg-parts.XXXXXX` || { echo "$0: Cannot create temporary dir!" >&2 ; exit 1; } ++ echo $TREEROOT >$HOME/.metamail_treeroot ++ fi + else +- @ totalnum = $4 +-endif ++ TREEROOT=$METAMAIL_TMPDIR/msg-parts-`whoami` ++ # Sanity check: is this a directory? ++ [ -e "$TREEROOT" ] && [ ! -d "$TREEROOT" ] && rm -f "$TREEROOT" ++ # Sanity check, does it belong to us? ++ if [ -d "$TREEROOT" ] ; then ++ treeuid=`stat -c %u "$TREEROOT"` ++ if [ "$treeuid" -ne "`id -u`" ]; then ++ echo "$0: Tried to use $TREEROOT but it does not belong to us! Aborting." >&2 ++ exit 1 ++ fi ++ else ++ mkdir -p "$TREEROOT" || { echo "$0: Cannot create dir $TREEROOT!" >&2 ; exit 1; } ++ fi ++ ++fi ++if test ! -d "${TREEROOT}/$id" ++then ++ mkdir "${TREEROOT}/$id" ++ if test $? -ne 0 ++ then ++ echo mkdir "${TREEROOT}/$id" failed ++ exit 1 ++ fi ++fi + +-if (! -d $TREEROOT) then +- mkdir $TREEROOT +- if ($status) then +- echo mkdir $TREEROOT failed +- exit -1 +- endif +-endif +-if (! -d ${TREEROOT}/$id) then +- mkdir ${TREEROOT}/$id +- if ($status) then +- echo mkdir ${TREEROOT}/$id failed +- exit -1 +- endif +-endif +-cp $file ${TREEROOT}/$id/$partnum +-if ($status) then +- echo cp $file ${TREEROOT}/$id/$partnum failed +- exit -1 +-endif +-if ($totalnum == -1) then +- if (-e ${TREEROOT}/$id/CT) then +- set totalnum=`cat ${TREEROOT}/$id/CT` +- else +- set totalnum=-1 #GROSS HACK +- endif ++cp $file "${TREEROOT}/$id/$partnum" ++if test $? -ne 0 ++then ++ echo cp $file "${TREEROOT}/$id/$partnum" failed ++ exit 1 ++fi ++ ++if test $totalnum -eq -1 ++then ++ if test -r "${TREEROOT}/$id/CT" ++ then ++ totalnum=`cat "${TREEROOT}/$id/CT"` ++ else ++ totalnum=-1 ++ fi + else +- echo $totalnum >! ${TREEROOT}/$id/CT +-endif ++ echo $totalnum > "${TREEROOT}/$id/CT" ++fi ++ + # Slightly bogus here -- the shell messes up the newlines in the headers +-# If you put $MM_HEADERS in quotes, it doesn't help. + # if ($partnum == 1) then +-# echo $MM_HEADERS > ${TREEROOT}/$id/HDRS ++# echo $MM_HEADERS > "${TREEROOT}/$id/HDRS" + # endif +-set found=0 +-set ix=1 +-set list="" +-set limit=$totalnum +-if ($limit == -1) set limit=25 +-while ($ix <= $limit) +- if (-e ${TREEROOT}/$id/$ix) then +- set list="$list $ix" +- @ found ++ +- endif +- @ ix ++ +-end +-if ($found == $totalnum) then +- cd ${TREEROOT}/$id +- cat $list > ${TREEROOT}/$id/FULL +-# cat ${TREEROOT}/$id/HDRS $list > ${TREEROOT}/$id/FULL +- rm $list +- echo All parts of this ${totalnum}-part message have now been read. +- metamail -d ${TREEROOT}/$id/FULL +- echo WARNING: To save space, the full file is now being deleted. +- echo You will have to read all $totalnum parts again to see the full message again. +- rm ${TREEROOT}/$id/FULL +- rm ${TREEROOT}/$id/CT +-# rm ${TREEROOT}/$id/HDRS +- cd +- rmdir ${TREEROOT}/$id +- rmdir ${TREEROOT} >& /dev/null ++found=0 ++ix=1 ++list= ++limit=$totalnum ++if test "$limit" -eq -1 ++then ++ limit=25 ++fi ++ ++while test "$ix" -le "$limit" ++do ++ if test -f "${TREEROOT}/$id/$ix" ++ then ++ list="$list $ix" ++ found=$(($found + 1)) ++ fi ++ ix=`expr $ix + 1` ++done ++ ++if test $found = "$totalnum" ++then ++ cd "${TREEROOT}/$id" ++ cat $list > "${TREEROOT}/$id/FULL" ++ rm $list ++ echo All parts of this "${totalnum}"-part message have now been read. ++ metamail -d < "${TREEROOT}/$id/FULL" ++ echo WARNING: To save space, the full file is now being deleted. ++ echo You will have to read all "$totalnum" parts again to see the full message again. ++ rm "${TREEROOT}/$id/FULL" ++ rm "${TREEROOT}/$id/CT" ++ cd ${METAMAIL_TMPDIR} ++ rmdir "${TREEROOT}/$id" ++ rmdir ${TREEROOT} > /dev/null 2>&1 ++ [ -e "$HOME/.metamail_treeroot" ] && > "$HOME/.metamail_treeroot" + else +- if (${totalnum} == -1) then +- echo So far you have only read $found of the several parts of this message. +- else +- echo So far you have only read $found of the $totalnum parts of this message. +- endif +- echo When you have read them all, then you will see the message in full. +-endif +- ++ if test "$totalnum" -eq -1 ++ then ++ echo So far you have only read $found of the several parts of this message. ++ else ++ echo So far you have only read $found of the "$totalnum" parts of this message. ++ fi ++ echo When you have read them all, then you will see the message in full. ++fi +--- metamail-2.7.orig/bin/audiosend ++++ metamail-2.7/bin/audiosend +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,97 +11,114 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + + # This is to make metamail/showaudio do playback on the speaker, not the phone. +-setenv AUDIOSPEAKERFORCE 1 ++AUDIOSPEAKERFORCE=1 ; export AUDIOSPEAKERFORCE ++ ++if test -d /usr/sony ++then ++ dev=/dev/sb0 ++else ++ dev=/dev/audio ++fi + +-if (-d /usr/sony) then +- set dev=/dev/sb0 ++if test -f /usr/sbin/sendmail ++then ++ MAILCOMMAND=/usr/sbin/sendmail + else +- set dev=/dev/audio +-endif ++ MAILCOMMAND=mail ++fi + +-if ( $#argv == 1 ) then +- set to = $1 ++if test ! -z "${1:-}" ++then ++ to=$1 + else + echo -n "To: " +- set to = $< +-endif ++ read to ++fi + echo -n "Subject: " +-set subject = $< ++read subject + echo -n "CC: " +-set cc = $< ++read cc + +-record: +-echo -n "Press RETURN when you are ready to start recording: " +-set foo = $< +- +-set fname = ${METAMAIL_TMPDIR}/audio-out.$$ +-set fnameraw = ${METAMAIL_TMPDIR}/audio-raw.$$ +- +-echo "To: " "$to" > $fname +-echo "Subject: " "$subject" >> $fname +-echo "CC: " "$cc" >> $fname +-echo "MIME-Version: 1.0" >> $fname +-echo "Content-Type: audio/basic" >> $fname +-echo "Content-Transfer-Encoding: base64" >> $fname +-echo "" >> $fname +-# THIS IS UNBELIEVABLY GRUBBY +-onintr cleanup +-if (! $?RECORD_AUDIO) then +- (/bin/cat < $dev > $fnameraw) & +-else +- ($RECORD_AUDIO > $fnameraw) & +-endif +-jobs -l > ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set foo=`/bin/cat ${METAMAIL_TMPDIR}/AUDCAT.$$` +-/bin/rm ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set PID=$foo[2] +-echo -n "press RETURN when you are done recording: " +-set foo=$< +-echo One moment please... +-/bin/sleep 1 +-echo -n Killing recording job... +-/bin/kill -9 $PID >& /dev/null +-mimencode -b < $fnameraw >> $fname +-/bin/rm $fnameraw +-echo "" >> $fname +- +-whatnext: +-echo "" +-echo "What do you want to do?" +-echo "" +-echo "1 -- Send mail" +-echo "2 -- Listen to recorded message" +-echo "3 -- Replace with a new recording" +-echo "4 -- Quit" +-set which = $< +- switch ("$which") +- case 1: +- echo -n "Sending mail, please wait... " +- /usr/lib/sendmail $to $cc < $fname +- if (! $status) then +- echo "Done." +- rm $fname +- exit +- else +- echo Mail delivery failed, draft mail is in $fname +- endif +- breaksw +- case 2: +- metamail -d $fname +- breaksw +- case 3: +- goto record +- case 4: +- exit +- endsw +-goto whatnext +-exit 0 +-cleanup: +-kill -9 $PID >& /dev/null ++record=1 ++ ++while true ++do ++ if test $record -eq 1 ++ then ++ echo -n "Press RETURN when you are ready to start recording: " ++ read foo ++ ++ fname=`tempfile -p metamail -m 600` ++ fnameraw=`tempfile -p metamail -m 600` ++ ++ echo "To: $to" > $fname ++ echo "Subject: $subject" >> $fname ++ echo "CC: $cc" >> $fname ++ echo "MIME-Version: 1.0" >> $fname ++ echo "Content-Type: audio/basic" >> $fname ++ echo "Content-Transfer-Encoding: base64" >> $fname ++ echo "" >> $fname ++ ++ trap "kill -9 $! > /dev/null 2>&1" HUP INT TERM ++ ++ if test -z "RECORD_AUDIO" ++ then ++ (cat < $dev > $fnameraw) & ++ else ++ ($RECORD_AUDIO > $fnameraw) & ++ fi ++ echo -n "press RETURN when you are done recording: " ++ read foo ++ echo One moment please... ++ sleep 1 ++ echo -n Killing recording job... ++ kill -9 $! > /dev/null 2>&1 ++ mimencode -b < $fnameraw >> $fname ++ rm $fnameraw ++ echo "" >> $fname ++ fi ++ record=0 ++ ++ echo "" ++ echo "What do you want to do?" ++ echo "" ++ echo "1 -- Send mail" ++ echo "2 -- Listen to recorded message" ++ echo "3 -- Replace with a new recording" ++ echo "4 -- Quit" ++ read which ++ case $which in ++ 1) echo -n "Sending mail, please wait... " ++ $MAILCOMMAND $to $cc < $fname ++ ++ if test $? -eq 0 ++ then ++ echo Done. ++ rm $fname ++ exit 0 ++ else ++ echo Mail delivery failed, draft is in $fname ++ fi ;; ++ 2) metamail -d $fname ;; ++ 3) record=1 ;; ++ 4) exit 0 ;; ++ esac ++done +--- metamail-2.7.orig/bin/patch-metamail ++++ metamail-2.7/bin/patch-metamail +@@ -1,20 +1,58 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +-set HOSTNAME=thumper.bellcore.com +-set DIRNAME=pub/nsb +-set PREFIX="mm.patch." +- +-if ($#argv < 2 || $#argv > 5) then +- echo Usage: patch-metamail source-tree-root patch-number [hostname [dirname [prefix]]] +- exit -1 +-endif +- +-set TREEROOT=$1 +-set PATCHNUMBER=$2 +-if ($#argv > 2) set HOSTNAME=$3 +-if ($#argv > 3) set DIRNAME=$4 +-if ($#argv > 4) set PREFIX=$5 ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell ++# by Bob Glickstein, Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. (Z-Code) ++# ++# Permission to use, copy, modify, and distribute this material for ++# any purpose and without fee is hereby granted, provided that the ++# above copyright notice and this permission notice appear in all ++# copies, and that the name of Z-Code not be used in advertising or ++# publicity pertaining to this material without the specific, prior ++# written permission of an authorized representative of Z-Code. ++# Z-CODE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF ++# THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", WITHOUT ANY ++# EXPRESS OR IMPLIED WARRANTIES. ++ ++HOSTNAME=thumper.bellcore.com ++DIRNAME=pub/nsb ++PREFIX=mm.patch. ++ ++if test -z "$2" -o ! -z "$6" ++then ++ echo "Usage: patch-metamail source-tree-root patch-number [hostname [dirname [prefix]]]" ++ exit 1 ++fi ++ ++TREEROOT=$1 ++PATCHNUMBER=$2 ++ ++if test ! -z "$3" ++then ++ HOSTNAME=$3 ++fi ++ ++if test ! -z "$4" ++then ++ DIRNAME=$4 ++fi ++ ++if test ! -z "$5" ++then ++ PREFIX=$5 ++fi + + echo WARNING: This program, if allowed to do so, will attempt to + echo install a PATCH file for your metamail sources which are rooted +@@ -22,15 +60,16 @@ + echo "" + echo It will use a patch file that it retrieves via anonymous ftp + echo from the host $HOSTNAME, in the directory $DIRNAME, +-echo with filenames starting with ${PREFIX}. ++echo with filenames starting with $PREFIX. + echo "" +-echo -n "Do you want to install the patch in directory $TREEROOT [y/n] ? " +-set ans=$< +-if ($ans == "y" || $ans == "Y") then +- cd $TREEROOT +- set ident=`whoami`@`hostname` +- echo Using anonymous ftp with password $ident +- ftp -n <<! ++echo -n "Do you want to install the patch in directory $TREEROOT (y/n)? [n] " ++read ans ++ ++case "$ans" in ++ [Yy]*) cd $TREEROOT ++ ident=`whoami`@`hostname` ++ echo Using anonymous ftp with password $ident ++ ftp -n <<! + open $HOSTNAME + user anonymous $ident + cd $DIRNAME +@@ -38,8 +77,6 @@ + get ${PREFIX}${PATCHNUMBER} + quit + ! +- patch -p < ${PREFIX}${PATCHNUMBER} +-else +- echo Patch not installed +-endif +- ++ patch -p < ${PREFIX}${PATCHNUMBER} ;; ++ *) echo Patch not installed ++esac +--- metamail-2.7.orig/bin/showexternal ++++ metamail-2.7/bin/showexternal +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,142 +11,174 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-onintr cleanup +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +-if (! $?FTP) then +- set FTP=ftp +-endif +- +-if ($#argv <3) then +- echo "Usage: showexternal body-file access-type name [site [directory [mode [server]]]]" +- exit -1 +-endif +-set bodyfile=$1 +-set atype=`echo $2 | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` +-set name=$3 +-if ($#argv > 3) then +- set site=$4 +-else +- set site="" +-endif +-if ($#argv > 4) then +- set dir=$5 +-else +- set dir="" +-endif +-if ($#argv > 5) then +- set mode=$6 +-else +- set mode="" +-endif +-if ($#argv > 6) then +- set server=$7 ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++if test -f /usr/sbin/sendmail ++then ++ MAILCOMMAND=/usr/sbin/sendmail + else +- set server="" +-endif ++ MAILCOMMAND=/bin/mail ++fi + +-if ("$server" == "" && $atype == "mail-server") then +-# Backward compatibility with some broken stuff +- set server=${name}@${site} +- echo WARNING -- old style mailserver syntax, using server $server +-endif +- +-set ctype="`grep -i content-type: $bodyfile | sed -e 's/............: //'`" +-if ("$ctype" == "") set ctype="text/plain" +-set cenc=`grep -i content-transfer-encoding: $bodyfile | sed -e 's/.........................: //'` +-set username="" +-set pass="" +-set TMPDIR=${METAMAIL_TMPDIR}/XXXternal.$$ ++if test "$#" -lt 3 ++then ++ echo "Usage: showexternal body-file access-type name [site [directory [mode]]]" ++ exit 1 ++fi ++ ++if [ -z "$METAMAIL_TMPDIR" ] ++then ++ METAMAIL_TMPDIR=/tmp ++fi ++ ++# Check argument integrity. Don't trust mail headers ++if echo "$1$2$3$4$5$6$7" | grep -q '[[:space:]]' ++then ++ echo "Illegal white space in arguments -- possibly a mail bomb?!" ++ echo "Command was:" ++ echo \'$0\' \'$1\' \'$2\' \'$3\' \'$4\' \'$5\' \'$6\' \'$7\' ++ exit 2 ++fi ++ ++bodyfile=$1 ++atype=$(echo "$2" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) ++name=$3 ++ ++site=$4 ++ ++dir=$5 ++ ++mode=$6 ++ ++server=$7 ++ ++if test -z "$server" -a $atype = "mail-server" ++then ++ server=${name}@${site} ++ echo WARNING -- old style mailserver syntax, using server "$server" ++fi ++ ++ctype=$(grep -i content-type: "$bodyfile" | sed -e 's/............: //') ++if test -z "$ctype" ++then ctype="text/plain" ++fi ++cenc=$(grep -i content-transfer-encoding: "$bodyfile" | sed -e 's/.........................: //') ++username= ++pass= ++TMPDIR=$METAMAIL_TMPDIR/XXXternal.$$ ++trap 'cd $METAMAIL_TMPDIR ; rmdir "$TMPDIR" >/dev/null 2>&1' 1 2 3 15 + mkdir $TMPDIR +-pushd $TMPDIR +-set NEWNAME="mm.ext.$$" +-set NEEDSCONFIRMATION=1 +-switch ("$atype") +- case anon-ftp: +- echo "This mail message contains a POINTER (reference) to data that is " +- echo not included in the message itself. Rather, the data can be retrieved +- echo automatically using anonymous FTP to a site on the network. +- breaksw +- case ftp: +- echo "This mail message contains a POINTER (reference) to data that is " +- echo not included in the message itself. Rather, the data can be retrieved +- echo automatically using the FTP protocol to a site on the network. +- breaksw +- case mail-server: +- cat > ${METAMAIL_TMPDIR}/ext.junk.$$ <<! +-This mail message contains a POINTER (reference) to data that is +-not included in the message itself. Rather, the data can be retrieved +-by sending a special mail message to a mail server on the network. +-However, doing this automatically is slightly dangerous, because someone +-might be using this mechanism to cause YOU to send obnoxious mail. +-For that reason, the mail message that WOULD be sent is being shown to you +-first for your approval. ++PUSHED_DIR=`pwd` ++cd $TMPDIR ++NEWNAME="mm.ext.$$" ++NEEDSCONFIRMATION=1 ++ ++case $atype in ++ anon-ftp) ++ echo "This mail message contains a POINTER (reference) to data that is " ++ echo not included in the message itself. Rather, the data can be retrieved ++ echo automatically using anonymous FTP to a site on the network. ;; ++ ++ ftp) ++ echo "This mail message contains a POINTER (reference) to data that is " ++ echo not included in the message itself. Rather, the data can be retrieved ++ echo automatically using the FTP protocol to a site on the network. ;; ++ ++ mail-server) ++ TMPF=$(mktemp /tmp/ext.junk.XXXXXX) ++ cat > $TMPF <<! ++This mail message contains a POINTER (reference) to data that is not ++included in the message itself. Rather, the data can be retrieved by ++sending a special mail message to a mail server on the network. ++However, doing this automatically is slightly dangerous, because ++someone might be using this mechanism to cause YOU to send obnoxious ++mail. For that reason, the mail message that WOULD be sent is being ++shown to you first for your approval. + + This is the message that will be sent if you choose to go ahead and +-retreive the external data: ++retrieve the external data: + + Subject: Automated Mail Server Request +-To: ${server} ++To: $server + + ! +- sed -e 1,/^\$/d < $bodyfile >> ${METAMAIL_TMPDIR}/ext.junk.$$ +- more ${METAMAIL_TMPDIR}/ext.junk.$$ +- rm ${METAMAIL_TMPDIR}/ext.junk.$$ +- breaksw +- default: +- # IGNORE ALL THE OTHERS -- AUTOMATIC FOR LOCAL-FILE, AFS. +- set NEEDSCONFIRMATION=0 +-endsw ++ sed -e 1,/^\$/d < "$bodyfile" >> $TMPF ++ sensible-pager $TMPF ++ rm $TMPF ;; ++ ++ *) ++ NEEDSCONFIRMATION=0 ;; ++esac + +-if ($NEEDSCONFIRMATION) then ++if test $NEEDSCONFIRMATION -ne 0 ++then + echo "" +- echo -n "Do you want to proceed with retrieving the external data [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) then +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit 0 +- endif +-endif +- +-switch ("$atype") +- case anon-ftp: +- set username=anonymous +- set pass=`whoami`@`hostname` +- # DROP THROUGH +- case ftp: +- if ("$site" == "") then +- echo -n "Site for ftp access: " +- set site=$< +- endif +- if ("$username" == "") then +- echo -n "User name at site ${site}: " +- set username=$< +- endif +- if ("$pass" == "") then +- echo -n "Password for user $username at site ${site}: " +- stty -echo +- set pass=$< +- stty echo +- echo "" +- endif +- if ("$dir" == "") then +- set DIRCMD="" +- else +- set DIRCMD="cd $dir" +- endif +- if ("$mode" == "") then +- set MODECMD="" +- else +- set MODECMD="type $mode" +- endif +- echo OBTAINING MESSAGE BODY USING FTP +- echo SITE: $site USER $username +- $FTP -n <<! ++ echo -n "Do you want to proceed with retrieving the external data? [y] " ++ read ANS ++ case "$ANS" in ++ [Nn]*) cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR; ++ exit 0 ;; ++ esac ++fi ++ ++case "$atype" in ++ anon-ftp | ftp) ++ case "$atype" in ++ anon-ftp ) ++ username=anonymous ++ pass=`whoami`@`hostname` ++ ;; ++ esac ++ ++ if test -z "$site" ++ then ++ echo -n "Site for ftp access: " ++ read site ++ fi ++ if test -z "$username" ++ then ++ echo -n "User name at site ${site}: " ++ read username ++ fi ++ if test -z "$pass" ++ then ++ echo -n "Password for user $username at site ${site}: " ++ stty -echo ++ read pass ++ stty echo ++ echo "" ++ fi ++ if test -z "$dir" ++ then ++ DIRCMD="" ++ else ++ DIRCMD="cd $dir" ++ fi ++ if test -z "$mode" ++ then ++ MODECMD="" ++ else ++ MODECMD="type $mode" ++ fi ++ echo OBTAINING MESSAGE BODY USING FTP ++ echo SITE: "$site" USER: "$username" ++ ${FTP:-ftp} -n <<! + open $site + user $username $pass + $DIRCMD +@@ -156,91 +186,92 @@ + get $name $NEWNAME + quit + ! +- if (! -e $NEWNAME) then +- echo FTP failed. +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +- endif +- breaksw +- case afs: +- case local-file: +- if (! -e $name) then +- echo local file not found +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +- endif +- set NEWNAME=$name +- echo GETTING BODY FROM FILE NAMED: $NEWNAME +- breaksw +- case mail-server: # A very special case +- if ("$bodyfile" == "") then +- echo mail-server access-type requires a body file +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +- endif +- echo Subject: Automated Mail Server Request > $NEWNAME +- echo To: ${server} >> $NEWNAME +- echo "" >> $NEWNAME +- sed -e 1,/^\$/d < $bodyfile >> $NEWNAME +- echo "" >> $NEWNAME +- /usr/lib/sendmail -t < $NEWNAME +- if ($status) then +- echo sendmail failed +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +- endif +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- echo Your $ctype data has been requested from a mail server. +- exit 0 +- default: +- echo UNRECOGNIZED ACCESS-TYPE +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +-endsw +-if ($cenc == base64) then +- mimencode -u -b < $NEWNAME > OUT +- mv OUT $NEWNAME +-else if ($cenc == quoted-printable) then +- mimencode -u -q < $NEWNAME > OUT +- mv OUT $NEWNAME +-endif +- +-popd +-if ($atype == "local-file") then +- metamail -p -b -c "$ctype" $NEWNAME +-else +- metamail -p -b -c "$ctype" $TMPDIR/$NEWNAME +-endif ++ if test ! -r "$NEWNAME" ++ then ++ echo FTP failed. ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ ;; ++ ++ afs|local-file) ++ if test ! -r "$name" ++ then ++ echo local file not found ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ NEWNAME=$name ++ echo GETTING BODY FROM FILE NAMED: "$NEWNAME" ;; ++ ++ mail-server) ++ if test -z "$bodyfile" ++ then ++ echo mail-server access-type requires a body file ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ echo Subject: Automated Mail Server Request > "$NEWNAME" ++ echo To: "$server" >> "$NEWNAME" ++ echo >> "$NEWNAME" ++ sed -e 1,/^\$/d < "$bodyfile" >> "$NEWNAME" ++ $MAILCOMMAND -t < "$NEWNAME" ++ if test $? -ne 0 ++ then ++ echo sendmail failed ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ echo Your "$ctype" data has been requested from a mail server. ++ exit 0 ;; ++ *) ++ echo UNRECOGNIZED ACCESS-TYPE ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ;; ++esac ++ ++if test "$cenc" = base64 ++then ++ mimencode -u -b < "$NEWNAME" > OUT ++ mv OUT "$NEWNAME" ++elif test "$cenc" = quoted-printable ++then ++ mimencode -u -q < "$NEWNAME" > OUT ++ mv OUT "$NEWNAME" ++fi ++ ++cd $PUSHED_DIR ++case "$atype" in ++ local-file ) metamail -b -p -c "$ctype" "$NEWNAME" ;; ++ * ) metamail -b -p -c "$ctype" "$TMPDIR/$NEWNAME" ;; ++esac + +-if ($status) then ++if test $? -ne 0 ++then + echo metamail failed +- cd ${METAMAIL_TMPDIR} ++ cd $METAMAIL_TMPDIR + rm -rf $TMPDIR +- exit -1 +-endif ++ exit 1 ++fi + +-if ($NEWNAME != $name) then ++if test ! "$NEWNAME" = "$name" ++then + echo "" +- echo The data just displayed is stored in the file $TMPDIR/$NEWNAME ++ echo The data just displayed is stored in the file "$TMPDIR/$NEWNAME" + echo "Do you want to delete it?" +- rm -i $TMPDIR/$NEWNAME +-endif ++ rm -i "$TMPDIR/$NEWNAME" ++fi + +-if (! -e ${TMPDIR}/${NEWNAME}) then +- cd ${METAMAIL_TMPDIR} +- rmdir $TMPDIR +-endif +-exit 0 +- +-cleanup: +-cd ${METAMAIL_TMPDIR} +-if (-e $TMPDIR) then +- rmdir $TMPDIR +-endif +-exit -1 ++if test ! -r "${TMPDIR}/${NEWNAME}" ++then ++ cd / ++ cd $METAMAIL_TMPDIR ++ rmdir $TMPDIR ++fi +--- metamail-2.7.orig/bin/audiocompose ++++ metamail-2.7/bin/audiocompose +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,64 +11,71 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + + # This is to make metamail/showaudio do playback on the speaker, not the phone. +-setenv AUDIOSPEAKERFORCE 1 ++AUDIOSPEAKERFORCE=1; export AUDIOSPEAKERFORCE + +-if (-d /usr/sony) then +- set dev=/dev/sb0 ++if test -d /usr/sony ++then ++ dev=/dev/sb0 + else +- set dev=/dev/audio +-endif ++ dev=/dev/audio ++fi + +-set audiofile=$1 +-if (-e $audiofile && ! -z $audiofile) goto whatnext ++audiofile=$1 + +-record: +-echo -n "Press RETURN when you are ready to start recording: " +-set foo = $< +- +-# THIS IS UNBELIEVABLY GRUBBY +-onintr cleanup +-if (! $?RECORD_AUDIO) then +- (/bin/cat < $dev > $audiofile) & ++if test -f "$audiofile" -a -s "$audiofile" ++then ++ whatnext=1 + else +- ($RECORD_AUDIO > $audiofile) & +-endif +-jobs -l > ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set foo=`/bin/cat ${METAMAIL_TMPDIR}/AUDCAT.$$` +-/bin/rm ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set PID=$foo[2] +-echo -n "press RETURN when you are done recording: " +-set foo=$< +-echo One moment please... +-/bin/sleep 1 +-echo -n Killing recording job... +-/bin/kill -9 $PID >& /dev/null +- +-whatnext: +-echo "" +-echo "What do you want to do?" +-echo "" +-echo "1 -- Listen to recorded message" +-echo "2 -- Replace with a new recording" +-echo "3 -- All Done, Quit" +-set which = $< +- switch ("$which") +- case 1: +- cat $audiofile > $dev +- breaksw +- case 2: +- goto record +- case 3: +- exit +- endsw +-goto whatnext +-exit 0 +-cleanup: +-kill -9 $PID >& /dev/null ++ whatnext=0 ++fi ++ ++while true ++do ++ if test $whatnext -eq 1 ++ then ++ echo "" ++ echo "What do you want to do?" ++ echo "" ++ echo "1 -- Listen to recorded message" ++ echo "2 -- Replace with a new recording" ++ echo "3 -- All Done, Quit" ++ read which ++ case $which in ++ 1) cat "$audiofile" > $dev ;; ++ 2) whatnext=0 ;; ++ 3) exit 0 ;; ++ esac ++ fi ++ echo -n "Press RETURN when you are ready to start recording: " ++ read foo ++ ++ trap "kill -9 $! > /dev/null 2>&1" 1 2 15 ++ if test -z "$RECORD_AUDIO" ++ then ++ (cat < $dev > "$audiofile") & ++ else ++ ($RECORD_AUDIO > "$audiofile") & ++ fi ++ echo -n "press RETURN when you are done recording: " ++ read foo ++ echo One moment please... ++ /bin/sleep 1 ++ echo -n Killing recording job... ++ /bin/kill -9 $! > /dev/null 2>&1 ++ whatnext=1 ++done +--- metamail-2.7.orig/bin/rcvAppleSingle ++++ metamail-2.7/bin/rcvAppleSingle +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/sh -e + # + # Very simple shellscript to support recieving Macintosh files + # and store them in a UNIX filesystem used by the CAP AUFS program. +--- metamail-2.7.orig/bin/sun-to-mime ++++ metamail-2.7/bin/sun-to-mime +@@ -1,14 +1,20 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +-# Provide VERY minimal support for mail generated by Sun's Openwindows mailtool. +-# Basically, this lets you see the text part, but not much else... ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-set TMPFILE=${METAMAIL_TMPDIR}/suntomime.$$ ++TMPFILE=`tempfile -p metamail -m 600` + echo "Content-type: multipart/mixed; boundary=--------" > $TMPFILE + echo "" >> $TMPFILE + sed -e 's/X-Sun-Data-Type:/Content-type:/' >> $TMPFILE < $1 +--- metamail-2.7.orig/bin/getfilename ++++ metamail-2.7/bin/getfilename +@@ -1,16 +1,36 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + + echo -n "Enter the name of a file in '$1' format: " +-set fnam=$< +-if ("" == "$fnam") then +- echo Aborted +- exit -1 +-endif +-if (! -r $fnam) then +- echo No such file +- exit -1 +-endif +-cp $fnam $2 +-exit 0 ++read fnam ++if test ! -r "$fnam" ++then ++ echo No such file ++ exit 1 ++fi ++ ++cp "$fnam" "$2" +--- metamail-2.7.orig/bin/extcompose ++++ metamail-2.7/bin/extcompose +@@ -1,103 +1,126 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +- +-if ($#argv < 1) then +- echo "Usage: extcompose output-file-name" ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++if [ $# -lt 1 ] ++then ++ echo "Usage: $0 output-file-name" 1>&2 + exit 1 +-endif +-set OUTFNAME=$1 ++fi ++OUTFNAME=$1 ++ ++choosing=yes ++while [ $choosing = yes ] ++do ++ echo "" ++ echo "Where is the external data that you want this mail message to reference?" ++ echo " 1 -- In a local file" ++ echo " 2 -- In an AFS file" ++ echo " 3 -- In an anonymous FTP directory on the Internet" ++ echo " 4 -- In an Internet FTP directory that requires a valid login" ++ echo " 5 -- Under the control of a mail server that will send the data on request" ++ echo "" ++ echo -n "Please enter a number from 1 to 5: \c" ++ read ans ++ case "$ans" in ++ 1) accesstype=local-file ;; ++ 2) accesstype=afs ;; ++ 3) accesstype=anon-ftp ;; ++ 4) accesstype=ftp ;; ++ 5) accesstype=mail-server ;; ++ * ) echo "That is NOT one of your choices." 1>&2; continue ;; ++ esac ++ ++ case "$accesstype" in ++ ftp | anon-ftp ) ++ echo -n "Enter the full Internet domain name of the FTP site: " ++ read site ++ echo -n "Enter the name of the directory containing the file (RETURN for top-level): " ++ read directory ++ echo -n "Enter the name of the file itself: " ++ read name ++ echo -n "Enter the transfer mode (type 'image' for binary data, RETURN otherwise): " ++ read mode ++ if [ -n "$mode" ] ++ then mode=ascii ++ fi ++ echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"\; > "$OUTFNAME" ++ echo -n " site="\"$site\" >> "$OUTFNAME" ++ if [ -n "$directory" ] ++ then echo -n "; directory="\"$directory\">> "$OUTFNAME" ++ fi ++ echo -n "; mode="\"$mode\">> "$OUTFNAME" ++ echo "">> "$OUTFNAME" ++ choosing=no ++ ;; + +-chooseaccesstype: +-echo "" +-echo "Where is the external data that you want this mail message to reference?" +-echo " 1 -- In a local file" +-echo " 2 -- In an AFS file" +-echo " 3 -- In an anonymous FTP directory on the Internet" +-echo " 4 -- In an Internet FTP directory that requires a valid login" +-echo " 5 -- Under the control of a mail server that will send the data on request" +-echo "" +-echo -n "Please enter a number from 1 to 5: " +-set ans=$< +-if ($ans == 1) then +- set accesstype=local-file +-else if ($ans == 2) then +- set accesstype=afs +-else if ($ans == 3) then +- set accesstype=anon-ftp +-else if ($ans == 4) then +- set accesstype=ftp +-else if ($ans == 5) then +- set accesstype=mail-server +-else +- echo "That is NOT one of your choices." +- goto chooseaccesstype +-endif +-if ($accesstype == "ftp" || $accesstype == "anon-ftp") then +- echo -n "Enter the full Internet domain name of the FTP site: " +- set site=$< +- echo -n "Enter the name of the directory containing the file (RETURN for top-level): " +- set directory=$< +- echo -n "Enter the name of the file itself: " +- set name = $< +- echo -n "Enter the transfer mode (type 'image' for binary data, RETURN otherwise): " +- set mode = $< +- if ($mode == "") set mode=ascii +- echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"\; > $OUTFNAME +- echo -n " site="\"$site\" >> $OUTFNAME +- if ($directory != "") echo -n "; directory="\"$directory\">> $OUTFNAME +- if ($mode != "") echo -n "; mode="\"$mode\">> $OUTFNAME +- echo "">> $OUTFNAME +-else if ($accesstype == "local-file" || $accesstype == "afs") then +-fname: +- echo -n "Enter the full path name for the file: " +- set name = $< +- if (! -e $name) then +- echo "The file $name does not seem to exist." +- goto fname +- endif +- echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"> $OUTFNAME +-else if ($accesstype == "mail-server") then +- echo -n "Enter the full email address for the mailserver: " +- set server=$< +- echo "Content-type: message/external-body; access-type=$accesstype; server="\"$server\"> $OUTFNAME +-else +- echo accesstype $accesstype not yet implemented +- goto chooseaccesstype +-endif ++ local-file | afs ) ++ name= ++ while [ -z "$name" ] ++ do ++ echo -n "Enter the full path name for the file: " ++ read name ++ if [ ! -f "$name" ] ++ then ++ echo "The file $name does not seem to exist." ++ name= ++ fi ++ done ++ echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"> "$OUTFNAME" ++ choosing=no ++ ;; ++ ++ mail-server ) ++ echo -n "Enter the full email address for the mailserver: " ++ read server ++ echo "Content-type: message/external-body; access-type=$accesstype; server="\"$server\"> "$OUTFNAME" ++ choosing=no ++ ;; ++ ++ * ) ++ echo accesstype "$accesstype" not yet implemented ++ ;; ++ esac ++done + + echo -n "Please enter the MIME content-type for the externally referenced data: " +-set ctype = $< +-getcenc: +-echo "Is this data already encoded for email transport?" +-echo " 1 -- No, it is not encoded" +-echo " 2 -- Yes, it is encoded in base64" +-echo " 3 -- Yes, it is encoded in quoted-printable" +-echo " 4 -- Yes, it is encoded using uuencode" +-set encode=$< +-switch ("$encode") +- case 1: +- set cenc="" +- breaksw +- case 2: +- set cenc="base64" +- breaksw +- case 3: +- set cenc="quoted-printable" +- breaksw +- case 4: +- set cenc="x-uue" +- breaksw +- default: +- echo "That is not one of your choices." +- goto getcenc +-endsw +-echo "" >> $OUTFNAME +-echo "Content-type: " $ctype >> $OUTFNAME +-if ($cenc != "") echo "Content-transfer-encoding: " $cenc >> $OUTFNAME +-echo "" >> $OUTFNAME +-if ($accesstype == "mail-server") then ++read ctype ++ ++choosing=yes ++while [ $choosing = yes ] ++do ++ echo "Is this data already encoded for email transport?" ++ echo " 1 -- No, it is not encoded" ++ echo " 2 -- Yes, it is encoded in base64" ++ echo " 3 -- Yes, it is encoded in quoted-printable" ++ echo " 4 -- Yes, it is encoded using uuencode" ++ read encode ++ case "$encode" in ++ 1 ) cenc="" choosing=no ;; ++ 2 ) cenc="base64" choosing=no ;; ++ 3 ) cenc="quoted-printable" choosing=no ;; ++ 4 ) cenc="x-uue" choosing=no ;; ++ * ) echo "That is not one of your choices." ;; ++ esac ++done ++ ++echo >> "$OUTFNAME" ++echo "Content-type: " "$ctype" >> "$OUTFNAME" ++if [ -n "$cenc" ] ++then echo "Content-transfer-encoding: " "$cenc" >> "$OUTFNAME" ++fi ++echo >> "$OUTFNAME" ++if [ "$accesstype" = "mail-server" ] ++then + echo "Please enter all the data to be sent to the mailserver in the message body, " + echo "ending with ^D or your usual end-of-data character:" +- cat >> $OUTFNAME +-endif ++ cat >> "$OUTFNAME" ++fi +--- metamail-2.7.orig/bin/mailserver ++++ metamail-2.7/bin/mailserver +@@ -1,4 +1,4 @@ +-#!/bin/csh -fb ++#!/bin/csh -efb + # (The "-fb" might need to be changed to "-f" on some systems) + # + # Mailserver -- a simple MIME mailserver script. +@@ -18,17 +18,15 @@ + set LOCALADDR=mail-server + set ROOTDIR=/usr/spool/ftp + set MAINTAINER=postmaster +-set METAMAILDIR=/usr/local/bin + set LOGADDR=andrew@thumper.bellcore.com + # If LOGADDR is the empty string, no logging is done. + # + # The real program begins here. + +-setenv PATH ${METAMAILDIR}:${PATH} + rehash + set FromName="" + set Subject="" +-set TmpFile=/tmp/ms.$$ ++set TmpFile=`tempfile -p metamail -m 600` + set FOORAW=$< + while ("$FOORAW" != "") + set FOO=(` echo "$FOORAW" | tr "[" "x"`) +@@ -68,7 +66,7 @@ + probably run in some circumstance other than mail delivery. + -------------------- + ! +- cat $TmpFile - | /usr/lib/sendmail $MAINTAINER ++ cat $TmpFile - | /usr/sbin/sendmail $MAINTAINER + # Takes the rest of the message from standard input + rm $TmpFile + exit 0 +@@ -86,7 +84,7 @@ + + The file you requested, if it exists, will not be sent to you. + ! +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif +@@ -107,7 +105,7 @@ + -------------------------------- + ! + ls -R >> $TmpFile +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif +@@ -135,13 +133,13 @@ + metasend -b -t "$FromName" -f "$Subject" -m "$ct" -s "Re: $Subject" + + ! +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif + + if ("$LOGADDR" != "") then +- /usr/lib/sendmail -t <<! ++ /usr/sbin/sendmail -t <<! + From: ${LOCALADDR}@`hostname` + To: $LOGADDR + Subject: Autosend delivery report +--- metamail-2.7.orig/bin/sndAppleSingle ++++ metamail-2.7/bin/sndAppleSingle +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/sh -e + # + # Very simple shellscript to support sending Macintosh files + # which are stored in a UNIX filesystem by the CAP AUFS program. +--- metamail-2.7.orig/bin/sun2mime ++++ metamail-2.7/bin/sun2mime +@@ -1,4 +1,4 @@ +-#!/bin/sh -f ++#!/bin/sh -e + # + # This is sun2mime. It makes a bold attempt to transform a Sun mailtool message into + # MIME format. +@@ -6,12 +6,9 @@ + # This program is for use with sun-message which takes an arg to figure out how + # (or if) the message is encoded. + # +-if [ x$METAMAIL_TMPDIR = x ]; then +- METAMAIL_TMPDIR=/tmp +-fi +-TMPFILE=${METAMAIL_TMPDIR}/suntomime.$$ ++TMPFILE=`tempfile -p metamail -m 600` + +-/bin/nawk ' ++nawk ' + BEGIN { printf("Content-type: multipart/mixed; boundary=--------\n\n") + RS=""; FS="\n"; mode="HEADER" } + mode == "HEADER" { +@@ -36,8 +33,8 @@ + print + } + END { printf("----------\n") } +-' $1 > $TMPFILE ++' "$1" > $TMPFILE + + metamail -z $TMPFILE +-rm -f $TMPFILE +- ++rm $TMPFILE ++exit 0 +--- metamail-2.7.orig/bin/sun-audio-file ++++ metamail-2.7/bin/sun-audio-file +@@ -1,12 +1,20 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-cd ${METAMAIL_TMPDIR} +-uudecode < $1 +-audiotool audio-file +-rm -f audio-file $1 ++audio-file=`tempfile -p metamail -m 600` ++uudecode -o $audio-file "$1" ++audiotool $audio-file ++rm $audio-file "$1" +--- metamail-2.7.orig/bin/uudepipe ++++ metamail-2.7/bin/uudepipe +@@ -0,0 +1,13 @@ ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++uudecode -o /dev/stdout -- ${1+"$1"} +--- metamail-2.7.orig/bin/uuenpipe ++++ metamail-2.7/bin/uuenpipe +@@ -0,0 +1,13 @@ ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++uuencode -- ${1+"$1"} "$(basename "${1-UUPIPEOUT}")" +--- metamail-2.7.orig/bin/sun-message ++++ metamail-2.7/bin/sun-message +@@ -0,0 +1,56 @@ ++#!/bin/sh -e ++# ++# This is sun-message. ++# It looks at $2 to figure out how to decode $1, ++# then gives the user a short menu of choices: ++# display, save or quit. ++ ++if [ "$2" = "uuencode" ] ++then ++ fn=`tempfile -p metamail -m 600` ++ uudecode -o $fn "$1" ++ ++ echo "The following file was uudecoded:" ++ echo ++ ++ defans=1 ++ while : ++ do ++ ls -l $fn ++ ++ echo ++ echo "Please choose one:" ++ echo ++ echo "1 -- Display it as ASCII text" ++ echo "2 -- Save it as a file" ++ echo "3 -- Quit this menu" ++ echo ++ echo -n "Which do you prefer (1 - 3)? [$defans] " ++ ++ read ans ++ if test -z "${ans:-}" ++ then ++ ans=$defans ++ fi ++ ++ case $ans in ++ 1) sensible-pager $fn ;; ++ 2) echo -n "Save as: $HOME/" ++ read nfn ++ if test ! -z "${nfn:-}" ++ then ++ cp $fn "$HOME/$nfn" ++ else ++ echo Not Saved. ++ fi ++ ;; ++ 3) rm "$1" $fn ++ exit 0 ++ ;; ++ *) echo Invalid choice. ;; ++ esac ++ defans=3 ++ done ++else ++ sensible-pager "$1" ++fi +--- metamail-2.7.orig/bin/shownonascii ++++ metamail-2.7/bin/shownonascii +@@ -0,0 +1,104 @@ ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++MYFONTDIR=/usr/lib/X11/fonts/misc ++ ++CHARSET=$1 ++shift ++ ++if test "$1" = "-e" ++then ++ shift ++ CMD="$*" ++ RIGHTTERMCMD="$*" ++else ++ CMD="more $* /dev/null" ++ RIGHTTERMCMD="more $*" ++fi ++ ++if test ! -z "${MM_CHARSET:-}" ++then ++ if test "$MM_CHARSET" = "$CHARSET" ++ then ++ $RIGHTTERMCMD ++ exit 0 ++ fi ++fi ++for f in "${MM_AUXCHARSETS:-}" ++do ++ if test "$f" = "$CHARSET" ++ then ++ $RIGHTTERMCMD ++ exit 0 ++ fi ++done ++ ++if test ! -d "$MYFONTDIR" ++then ++ echo This message contains non-ASCII text, but the $CHARSET font ++ echo has not yet been installed on this machine. What follows ++ echo "may be partially unreadable, but the English (ASCII) parts" ++ echo "should still be readable." ++ cat $* ++ exit 0 ++fi ++ ++if test -z "${DISPLAY:-}" ++then ++ echo This message contains non-ASCII text, which can only be displayed ++ echo properly if you are running X11. What follows ++ echo "may be partially unreadable, but the English (ASCII) parts" ++ echo "should still be readable." ++ cat $* ++ exit 0 ++fi ++ ++# ++# Do we have a font server? ++# ++if xset q | grep -q tcp/localhost:7100 ++then ++ echo Your font path appears to be correctly set. ++else ++ if xset q | grep -q $MYFONTDIR ++ then ++ echo Your font path appears to be correctly set. ++ else ++ echo Adding $MYFONTDIR to your font path. ++ xset +fp "$MYFONTDIR" ++ fi ++fi ++ ++echo Running xterm to display text in $CHARSET, please wait... ++ ++# Bogus -- need to unsetenv MM_NOTTTY, but can't in Bourne shell. --bobg. ++MM_NOTTTY='' ++XCHARSET=\*`echo $CHARSET | sed -e s/iso-/iso/` ++xterm -fn $XCHARSET -e $CMD +--- metamail-2.7.orig/bin/Makefile.am ++++ metamail-2.7/bin/Makefile.am +@@ -0,0 +1,9 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++bin_SCRIPTS = audiocompose audiosend extcompose getfilename \ ++ mailserver mailto-hebrew metasend mimeit \ ++ patch-metamail rcvAppleSingle showaudio showexternal \ ++ shownonascii showpartial showpicture sndAppleSingle \ ++ sun-audio-file sun-message sun-message.csh \ ++ sun-to-mime sun2mime uudepipe uuenpipe ++ +--- metamail-2.7.orig/bin/Makefile.in ++++ metamail-2.7/bin/Makefile.in +@@ -0,0 +1,217 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++bin_SCRIPTS = audiocompose audiosend extcompose getfilename mailserver mailto-hebrew metasend mimeit patch-metamail rcvAppleSingle showaudio showexternal shownonascii showpartial showpicture sndAppleSingle sun-audio-file sun-message sun-message.csh sun-to-mime sun2mime uudepipe uuenpipe ++ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++SCRIPTS = $(bin_SCRIPTS) ++ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign bin/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++install-binSCRIPTS: $(bin_SCRIPTS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_SCRIPTS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ ++ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ else if test -f $(srcdir)/$$p; then \ ++ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ ++ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ else :; fi; fi; \ ++ done ++ ++uninstall-binSCRIPTS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_SCRIPTS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ done ++tags: TAGS ++TAGS: ++ ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = bin ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign bin/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binSCRIPTS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binSCRIPTS ++uninstall: uninstall-am ++all-am: Makefile $(SCRIPTS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: uninstall-binSCRIPTS install-binSCRIPTS tags distdir info-am \ ++info dvi-am dvi check check-am installcheck-am installcheck \ ++install-exec-am install-exec install-data-am install-data install-am \ ++install uninstall-am uninstall all-redirect all-am all installdirs \ ++mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/bin/mimeit ++++ metamail-2.7/bin/mimeit +@@ -0,0 +1,27 @@ ++#!/bin/sh -e ++# mimeit - mail base64-encoded stdin ++# with content-type $1 ++# to recipient $2 ++# with subject $3 ++# All other arguments are passed on to splitmail ++ ++if [ $# -lt 3 ]; then ++ echo "Usage: $0 <content-type> <recipient> <subject> [splitmail-options]" >&2 ++ exit 1 ++fi ++ ++ct="$1" ++to="$2" ++sub="$3" ++ ++shift ++shift ++shift ++ ++( echo Mime-Version: 1.0 ; \ ++ echo Content-type: "$ct" ; \ ++ echo To: "$to" ; \ ++ echo Subject: "$sub" ; \ ++ echo Content-Transfer-Encoding: base64 ; ++ echo "" ; \ ++ mimencode -b ) | splitmail -d $* +--- metamail-2.7.orig/bin/mailto-hebrew ++++ metamail-2.7/bin/mailto-hebrew +@@ -0,0 +1,76 @@ ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell ++# by Bob Glickstein, Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. (Z-Code) ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++MYFONTDIR=/usr/lib/X11/fonts/misc ++ ++if test ! -z "${MM_CHARSET:-}" ++then ++ if test "$MM_CHARSET" = iso-8859-8 ++ then ++ mailto $* ++ exit 0 ++ fi ++fi ++ ++if test ! -d "$MYFONTDIR" ++then ++ echo The Hebrew font has not been installed properly on this machine. ++ exit 1 ++fi ++ ++if test -z "${DISPLAY:-}" ++then ++ echo Hebrew mail may only be composed under X11 or on a Hebrew terminal. ++ exit 1 ++fi ++ ++# ++# Do we have a font server? ++# ++FSGREP=`xset q | grep "tcp/localhost:7100"` ++if test ! -z "${FSGREP:-}" ++then ++ FPGREP=`xset q | grep $MYFONTDIR` ++ if test -z "${FPGREP:-}" ++ then ++ echo Adding $MYFONTDIR to your font path. ++ xset +fp "$MYFONTDIR" ++ else ++ echo Your font path appears to be correctly set. ++ fi ++else ++ echo Your font path appears to be correctly set. ++fi ++ ++echo Running xterm to compose mail in iso-8859-8, please wait... ++ ++MM_CHARSET=iso-8859-8; export MM_CHARSET ++xterm -fn \*iso-8859-8 -e mailto $* +--- metamail-2.7.orig/fonts/Makefile ++++ metamail-2.7/fonts/Makefile +@@ -10,7 +10,9 @@ + #FONTSUFFIX=fb + #DIRBUILDER=bldfamily + +-all: shownonascii heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} mailto-hebrew ++RM=rm ++ ++all: heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} + + heb6x13.${FONTSUFFIX}: heb6x13.bdf + # convertfont -o heb6x13 heb6x13.bdf +@@ -36,4 +38,4 @@ + chmod +x mailto-hebrew + + clean: +- rm -f heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} shownonascii mailto-hebrew fonts.dir ++ $(RM) -f heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} shownonascii mailto-hebrew fonts.dir +--- metamail-2.7.orig/fonts/Xshownonascii ++++ metamail-2.7/fonts/Xshownonascii +@@ -1,7 +1,7 @@ + #!/bin/csh -fb + # (The "-fb" might need to be changed to "-f" on some systems) + # +-set MYFONTDIR=/u/nsb/lib/fonts ++set MYFONTDIR=/usr/lib/X11/fonts/misc + + set CHARSET="$1" + shift +--- metamail-2.7.orig/fonts/Xmailto-hebrew ++++ metamail-2.7/fonts/Xmailto-hebrew +@@ -1,7 +1,7 @@ + #!/bin/csh -fb + # (The "-fb" might need to be changed to "-f" on some systems) + # +-set MYFONTDIR=/u/nsb/lib/fonts ++set MYFONTDIR=/usr/lib/X11/fonts/misc + + if ($?MM_CHARSET) then + if ($MM_CHARSET == iso-8859-8) then +--- metamail-2.7.orig/man/metasend.1 ++++ metamail-2.7/man/metasend.1 +@@ -12,7 +12,7 @@ + + With no arguments, the program will ask the user for the To, Subject, and CC fields. It will then ask for the name of a MIME content-type. Next, it will ask the user for the name of an existing file containing that type of data. After this, it will ask what encoding type, if any, should be applied to this data. Finally, it will ask if the user wants to include information from an additional file, in which case the last three questions will be repeated for the next file. + +-Alternately, all of this information can be provided on the comand line, using the following options: ++Alternately, all of this information can be provided on the command line, using the following options: + + -b -- specifies Batch (non-interactive) Mode. Will exit with an error message if all additional needed information is not provided on the command line. + -c cc -- specifies the CC address +--- metamail-2.7.orig/man/mailto.1 ++++ metamail-2.7/man/mailto.1 +@@ -1,6 +1,6 @@ + .TH MAILTO 1 "Release 1" "Bellcore Prototype" + .SH NAME +-mailto - Simple mutlimedia mail sending program ++mailto - Simple multimedia mail sending program + .SH SYNOPSIS + .ta 8n + \fBmailto\fP [-a] [-c] [-s] [recipient name(s)] +@@ -74,9 +74,9 @@ + + Basically, mailto can include the following things in mail: + +-1. Simple formatted text, using the MIME type "text/richtext". This allows you to add emphasis to your message using underlining, bold text, italic (diaplsyed as reverse video), centering, and the like. ++1. Simple formatted text, using the MIME type "text/richtext". This allows you to add emphasis to your message using underlining, bold text, italic (displayed as reverse video), centering, and the like. + +-2. Non-text data. Metamail can include pictures, sounds, and other non-textual data in the middle of any mail message. The mailcap configuration mechanism can even make this process reasonably user-friendly, but a knowledgable user can include non-textual data even in the absence of a proper mailcap entry. ++2. Non-text data. Metamail can include pictures, sounds, and other non-textual data in the middle of any mail message. The mailcap configuration mechanism can even make this process reasonably user-friendly, but a knowledgeable user can include non-textual data even in the absence of a proper mailcap entry. + + 3. Text including non-ASCII characters, such as Hebrew or Russian. Currently, mailto directly supports only the ISO-8859-* family of character sets, which means that it does not meet the needs of Asian users, in particular. However, languages that can not be expressed in the ISO-8859 family can still be included in the same way non-text data can be included. + +@@ -230,7 +230,7 @@ + dot -- controls whether or not a period alone on a line + should be interpreted as terminating your mail + ignore -- controls whether or not interrupts are ignored +- verbose -- controls the verbosity of output from /usr/lib/sendmail ++ verbose -- controls the verbosity of output from /usr/sbin/sendmail + quiet -- controls the verbosity of output from the mailto program. + keepblind -- controls whether or not a 'blind' copy of the mail is kept. + commasonly -- controls whether or not a space character +@@ -275,7 +275,7 @@ + + .I + Altered editing behavior: +-The ~e and ~v commands, which are used to edit the message being composed, will behave differently in mailto if the mail includes non-text portions. In such cases, each part will be edited separately, in sequence, which makes it impossble for the user to accidentally mess up the inter-part boundaries. Moreover, if the mailcap entry for a given data type includes an "edit" field, the user will be given the choice of editing with the program named there or editing with his usual (text) editor. In most cases, this will be a choice between using a structured editor or editing the raw data stream. ++The ~e and ~v commands, which are used to edit the message being composed, will behave differently in mailto if the mail includes non-text portions. In such cases, each part will be edited separately, in sequence, which makes it impossible for the user to accidentally mess up the inter-part boundaries. Moreover, if the mailcap entry for a given data type includes an "edit" field, the user will be given the choice of editing with the program named there or editing with his usual (text) editor. In most cases, this will be a choice between using a structured editor or editing the raw data stream. + + .I + Altered behavior for large messages: +@@ -283,7 +283,7 @@ + + .I + New -r command-line option +-The -r comand-line option is not found in standard Berkeley mail. ++The -r command line option is not found in standard Berkeley mail. + + .SH SUMMARY OF OPTIONS + -a <charset> -- specifies an alternate character set in use. This had better be the one your terminal is actually using. Currently it must be in the iso-8859 character set family. +--- metamail-2.7.orig/man/metamail.1 ++++ metamail-2.7/man/metamail.1 +@@ -38,6 +38,9 @@ + .B \-e + This option tells metamail to "eat" leading newlines in message bodies. This is particularly useful for MH-format mail. + .TP 8 ++.B \-E <contentencoding> ++This option tells metamail to use the specified content transfer encoding rather than the one in the headers, if any. ++.TP 8 + .B \-f <address> + This option specifies the name of the sender of the message. Otherwise, this is determined from the header, if possible. This information will be placed in the environment to make it available to any interpreters called by metamail. + .TP 8 +@@ -63,7 +66,7 @@ + This option specifies that it is OK to run as root. By default, metamail refuses to run if the real or effective user id is root. You can get the same effect using the MM_RUNASROOT environment variable. + .TP 8 + .B \-R +-This option specifies that the /usr/ucb/reset should be executed to reset the terminal state, before any other I/O activity. ++This option specifies that the /usr/bin/reset should be executed to reset the terminal state, before any other I/O activity. + .TP 8 + .B \-s <subject> + This option specifies the subject of the mail message. By default, this information is obtained from the headers. This information will be placed in the environment to make it available to any interpreters called by metamail. +@@ -105,11 +108,13 @@ + + The default search path is equivalent to + +-$HOME/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++.na ++$HOME/.mailcap:\:/usr/local/etc/mailcap:\:/usr/etc/mailcap:\:/etc/mailcap:\:/etc/mail/mailcap:\:/usr/public/lib/mailcap ++.ad + + It can be overridden by setting the MAILCAPS environment variable. Note: Metamail does not actually interpret environment variables such as $HOME or the "~" syntax in this path search. + +-The format of mailcap files is explained in the manual entry for mailcap(4). ++The format of mailcap files is explained in the manual entry for mailcap(5). + + .SH NON-ASCII HEADER FIELDS + Metamail has rudimentary built-in support for the emerging Internet standards for non-ASCII data in mail headers. What this means is that such data will be recognized, decoded, and sent to the terminal. This behavior may be more or less reasonable, depending on the character set in the header data and the capability of the user's terminal, but it will rarely be any worse than showing such data in its encoded form. +@@ -199,7 +204,7 @@ + .SH FILES + $HOME/.mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap -- default path for mailcap files. + .SH SEE ALSO +-audiocompose(1), audiosend(1), ezview(1), getfilename(1), mailto-hebrew(1), mailto(1), metasend(1), mmencode(1), richtext(1), showaudio(1), showexternal(1), shownonascii(1), showpartial(1), showpicture(1), mailcap(4) ++audiocompose(1), audiosend(1), ezview(1), getfilename(1), mailto-hebrew(1), mailto(1), metasend(1), mimencode(1), richtext(1), showaudio(1), showexternal(1), shownonascii(1), showpartial(1), showpicture(1), mailcap(5) + .SH BUGS + In a multipart/alternative body or body parts, some headers in the embedded part that should be displayed may not be displayed. This will rarely be a problem. Also, in a multipart/alternative, anything of type "multipart" or "message" is considered to be a recognized part, regardless of the recognizability of its contents. This might be a problem, only further experience will tell. + +--- metamail-2.7.orig/man/mmencode.1 ++++ metamail-2.7/man/mmencode.1 +@@ -1,8 +1,6 @@ + .TH MIMENCODE 1 "Release 1" "Bellcore Prototype" + .SH NAME + mimencode - Translate to and from mail-oriented encoding formats +- +-(Same program also installed as "mmencode".) + .SH SYNOPSIS + .ta 8n + \fBmimencode\fP [-u] [-b] [-q] [-p] [file name] [-o outputfile] +@@ -37,8 +35,6 @@ + for mail and news use. The reason is simple: uuencode doesn't work very well in a number of circumstances and ways. In particular, uuencode uses characters that don't translate well across all mail gateways (particularly ASCII <-> EBCDIC gateways). Also, uuencode is not standard -- there are several variants floating around, encoding and decoding things in different and incompatible ways, with no "standard" on which to base an implementation. Finally, uuencode does not generally work well in a pipe, although some variants have been modified to do so. Mimencode implements the encodings which were defined for MIME as uuencode replacements, and should be considerably more robust for email use. + .SH SEE ALSO + metamail(1), mailto(1) +-.SH BUGS +-This program was originally distributed as "mmencode". That name turns out to conflict with a program of the same name that is part of the Slate software from BBN, but totally changing the name to mimencode would create other problems (notably with portability to systems where the left half of file names is limited to 8 characters). Currently, it is being distributed with links under BOTH names. The programs in the distribution that call the program all call it as "mimencode", so the "mmencode" version may be deleted at sites where it causes a problem. (The source files are still named "mmencode" rather than "mimencode".) + .SH COPYRIGHT + Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + +--- metamail-2.7.orig/man/richtext.1 ++++ metamail-2.7/man/richtext.1 +@@ -6,6 +6,8 @@ + \fBrichtext\fP [ + .B \-c + ] [ ++.B \-e ++] [ + .B \-f + ] [ + .B \-m +@@ -53,6 +55,12 @@ + to just correct the raw richtext and write the corrected version to its + standard output, without performing any formatting. + .TP 8 ++.B \-e ++This option directs ++.I richtext ++to interpret the input as MIME type text/enriched rather than text/richtext. ++The text/enriched format is defined in RFC 1896. ++.TP 8 + .B \-f + This option directs + .I richtext +--- metamail-2.7.orig/man/splitmail.1 ++++ metamail-2.7/man/splitmail.1 +@@ -8,23 +8,24 @@ + .SH DESCRIPTION + The + .I splitmail +-program will take an email message and break it up into smaller pieces using the "message/partial" type defined by MIME, the proposed Internet standard for multimedia mail formats. ++program will take an email message and break it up into smaller pieces using the "message/partial" type defined by MIME(1), the proposed Internet standard for multimedia mail formats. + + By default it will take the message either from standard input or the named file, and will produce a set of partial message files with names like "/tmp/split.1" for the first part, and so on. The prefix "/tmp/split." can be overridden using the "-p" option. + +-If the -d option is specified, the mail will actually be delivered. If -v is specified, the verbose flag will be passed to sendmail. ++If the -d option is specified, the mail will actually be delivered. If -v is specified, the verbose flag will be passed to \fBsendmail\fR(8). + +-The -i option can be used to make splitmail generate the pieces with similar (but not identical) message-id fields, in a format which allows them to be easily correlated with one another and which end with the suffix provided on the command line after -i. ++The -i option can be used to make \fBsplitmail\fR generate the pieces with similar (but not identical) message-id fields, in a format which allows them to be easily correlated with one another and which end with the suffix provided on the command line after -i. + +-The default chunk size for spliting messages is 250000 at most sites, though this is also a compile-time option. This can be overriden with the -s switch, or with the environment variable SPLITSIZE. ++The default chunk size for splitting messages is 250000 at most sites, though this is also a compile-time option. This can be overridden with the -s switch, or with the environment variable SPLITSIZE. + + Messages smaller than the chunk size will not be turned into partial messages, but will be written to a single file or delivered as a single message. + .SH ENVIRONMENT + SPLITSIZE overrides the default chunk size. Setting SPLITSIZE to, say, 4000000 will effectively ensure that your messages are unlikely ever to be split, but it may cause them to be rejected by some mail transport software. + .SH SEE ALSO +-mailto(1), metamail(1) ++.PP ++\fBmailto\fR(1), \fBmetamail\fR(1), \fBMIME\fR(1), \fBmunpack\fR(1) + .SH BUGS +-If the size of the input is just on the fencepost, and if it is coming from a file rather than standard input, splitmail will sometimes estimate the number of parts wrong and will have to write out an extra part. This is harmless but annoying. It is especially annoying if the estimate was 2 but the real number was 1. ++If the size of the input is just on the fencepost, and if it is coming from a file rather than standard input, \fBsplitmail\fR will sometimes estimate the number of parts wrong and will have to write out an extra part. This is harmless but annoying. It is especially annoying if the estimate was 2 but the real number was 1. + .SH COPYRIGHT + Copyright (c) 1992 Bell Communications Research, Inc. (Bellcore) + +--- metamail-2.7.orig/man/patch-metamail.1 ++++ metamail-2.7/man/patch-metamail.1 +@@ -8,7 +8,7 @@ + .SH DESCRIPTION + The + .I patch-metamail +-program will attempt to retreive a patch file for the metamail distribution, using anonymous ftp to a trusted server, and then install that patch in your local copy of the distribution. ++program will attempt to retrieve a patch file for the metamail distribution, using anonymous ftp to a trusted server, and then install that patch in your local copy of the distribution. + + The first two arguments, which are required, are the root directory of your local copy of the metamail source directory, and the patch number. The former is site-dependent, the latter is patch-dependent. + +--- metamail-2.7.orig/man/mailcap.4 ++++ metamail-2.7/man/mailcap.4 +@@ -20,13 +20,9 @@ + + can be used to indicate that the output of the 'cat' command may be voluminous, requiring either a scrolling window, a pager, or some other appropriate coping mechanism. + +-The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by RFC 822. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). ++The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by informational RFC 1524. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). + +-The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % ch +- +- +- +-aracter. (In fact, the backslash can be used to quote any character, including itself.) ++The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % character. (In fact, the backslash can be used to quote any character, including itself.) + + If no "%s" appears in the command field, then instead of placing the message body in a temporary file, metamail will pass the body to the command on the standard input. This is helpful in saving /tmp file space, but can be problematic for window-oriented applications under some window systems such as MGR. + +--- metamail-2.7.orig/man/uuenpipe.1 ++++ metamail-2.7/man/uuenpipe.1 +@@ -0,0 +1,44 @@ ++.TH UUENPIPE 1 "1998 March 2nd" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++uuenpipe \- uuencode a file ++.SH SYNOPSIS ++.B uuenpipe ++.RI [ filename ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B uuenpipe ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B uuenpipe ++uuencodes ++.I filename ++(or the standard input if ++.I filename ++were not supplied) and prints the result to the standard output. ++When ++.I filename ++is supplied, ++.B uuenpipe ++acts as if the following command were invoked. ++.IP ++.NF ++uuencode ++.I filename ++.I filename ++.FI ++.LP ++Otherwise, it would act according to the behaviour of the next ++command. ++.IP ++.NF ++uuencode ++.I UUPIPEOUT ++.FI ++.LP ++.SH AUTHOR ++.B uuenpipe ++is part of mm package. Manual page added by Herbert Xu. +--- metamail-2.7.orig/man/uudepipe.1 ++++ metamail-2.7/man/uudepipe.1 +@@ -0,0 +1,24 @@ ++.TH UUDEPIPE 1 "1998 March 2nd" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++uudepipe \- uudecode a file ++.SH SYNOPSIS ++.B uudepipe ++.RI [ filename ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B uudepipe ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B uudepipe ++uudecodes ++.I filename ++(or the standard input if ++.I filename ++were not supplied) and prints the result to the standard output. ++.SH AUTHOR ++.B uudepipe ++is part of mm package. Manual page added by Herbert Xu. +--- metamail-2.7.orig/man/mailcap.5 ++++ metamail-2.7/man/mailcap.5 +@@ -0,0 +1,69 @@ ++.TH MAILCAP 5 "Release 2" "Bellcore Prototype" ++.SH NAME ++mailcap - metamail capabilities file ++.SH DESCRIPTION ++The ++.I mailcap ++file is read by the ++.I metamail ++program to determine how to display non-text at the local site. ++ ++The syntax of a mailcap file is quite simple, at least compared to termcap files. Any line that starts with "#" is a comment. Blank lines are ignored. Otherwise, each line defines a single mailcap entry for a single content type. Long lines may be continued by ending them with a backslash character, \\. ++ ++Each individual mailcap entry consists of a content-type specification, a command to execute, and (possibly) a set of optional "flag" values. For example, a very simple mailcap entry (which is actually a built-in default behavior for metamail) would look like this: ++ ++text/plain; cat %s ++ ++The optional flags can be used to specify additional information about the mail-handling command. For example: ++ ++text/plain; cat %s; copiousoutput ++ ++can be used to indicate that the output of the 'cat' command may be voluminous, requiring either a scrolling window, a pager, or some other appropriate coping mechanism. ++ ++The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by informational RFC 1524. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). ++ ++The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % character. (In fact, the backslash can be used to quote any character, including itself.) ++ ++If no "%s" appears in the command field, then instead of placing the message body in a temporary file, metamail will pass the body to the command on the standard input. This is helpful in saving /tmp file space, but can be problematic for window-oriented applications under some window systems such as MGR. ++ ++Two special codes can appear in the viewing command for objects of type multipart (any subtype). These are "%n" and "%F". %n will be replaced by the number of parts within the multipart object. %F will be replaced by a series of arguments, two for each part, giving first the content-type and then the name of the temporary file where the decoded part has been stored. In addition, for each file created by %F, a second file is created, with the same name followed by "H", which contains the header information for that body part. This will not be needed by most multipart handlers, but it is there if you ever need it. ++ ++The "notes=xxx" field is an uninterpreted string that is used to specify the name of the person who installed this entry in the mailcap file. (The "xxx" may be replaced by any text string.) ++ ++The "test=xxx" field is a command that is executed to determine whether or not the mailcap line actually applies. That is, if the content-type field matches the content-type on the message, but a "test=" field is present, then the test must succeed before the mailcap line is considered to "match" the message being viewed. The command may be any UNIX command, using the same syntax and the same %-escapes as for the viewing command, as described above. A command is considered to succeed if it exits with a zero exit status, and to fail otherwise. ++ ++The "print=xxx" field is a command that is executed to print the data instead of display it interactively. This behavior is usually a consequence of invoking metamail with the "-h" switch. ++ ++The "textualnewlines" field can be used in the rather obscure case where metamail's default rules for treating newlines in base64-encoded data are unsatisfactory. By default, metamail will translate CRLF to the local newline character in decoded base64 output if the content-type is "text" (any subtype), but will not do so otherwise. A mailcap entry with a field of "textualnewlines=1" will force such translation for the specified content-type, while "textualnewlines=0" will guarantee that the translation does not take place even for textual content-types. ++ ++The "compose" field may be used to specify a program that can be used to compose a new body or body part in the given format. Its intended use is to support mail composing agents that support the composition of multiple types of mail using external composing agents. As with the view-command, the compose command will be executed after replacing certain escape sequences starting with "%". In particular, %s should be replaced by the name of a file to which the composed data is to be written by the specified composing program, thus allowing th3e calling program (e.g. metamail) to tell the called program where to store the composed data. If %s does not appear, then the composed data will be assumed to be written by the composing programs to standard output. The result of the composing program may be data that is NOT yet suitable for mail transport -- that is, a Content-Transfer-Encoding may still need to be applied to the data. ++ ++The "composetyped" field is similar to the "compose" field, but is to be used when the composing program needs to specify the Content-type header field to be applied to the composed data. The "compose" field is simpler, and is preferred for use with existing (non-mail-oriented) programs for composing data in a given format. The "composetyped" field is necessary when the Content-type information must include auxilliary parameters, and the composition program must then know enough about mail formats to produce output that includes the mail type information, and to apply any necessary Content-Transfer-Encoding. Conceptually, "compose" specifies a program that simply outputs the specified type of data in its raw form, while "composetyped" specifies a program that outputs the data as a MIME object, with all necessary Content-* headers already in place. ++ ++.TP 8 ++.B needsterminal ++If this flag is given, the named interpreter needs to interact with the user on a terminal. In some environments (e.g. a window-oriented mail reader under X11) this will require the creation of a new terminal emulation window, while in most environments it will not. If the mailcap entry specifies "needsterminal" and metamail is not running on a terminal (as determined by isatty(3), the -x option, and the MM_NOTTTY environment variable) then metamail will try to run the command in a new terminal emulation window. Currently, metamail knows how to create new windows under the X11, SunTools, and WM window systems. ++.TP 8 ++.B copiousoutput ++This flag should be given whenever the interpreter is capable of producing more than a few lines of output on stdout, and does no interaction with the user. If the mailcap entry specifies copiousoutput, and pagination has been requested via the "-p" command, then the output of the command being executed will be piped through a pagination program ("more" by default, but this can be overridden with the METAMAIL_PAGER environment variable). ++.SH BUILT-IN CONTENT-TYPE SUPPORT ++The metamail program has built-in support for a few key content-types. In particular, it supports the text type, the multipart and multipart/alternative type, and the message/rfc822 types. This support is incomplete for many subtypes -- for example, it only supports US-ASCII text in general. This kind of built-in support can be OVERRIDDEN by an entry in any mailcap file on the user's search path. Metamail also has rudimentary built-in support for types that are totally unrecognized -- i.e. for which no mailcap entry or built-in handler exists. For such unrecognized types, metamail will write a file with a "clean" copy of the data -- i.e. a copy in which all mail headers have been removed, and in which any 7-bit transport encoding has been decoded. ++.SH FILES ++$HOME/.mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap -- default path for mailcap files. ++.SH SEE ALSO ++metamail(1) ++.SH COPYRIGHT ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++.SH AUTHOR ++Nathaniel S. Borenstein +--- metamail-2.7.orig/metamail/splitmail.c ++++ metamail-2.7/metamail/splitmail.c +@@ -41,8 +41,8 @@ + #define VERBOSEDELIVERYCMD VerboseDeliveryCmd + #else + extern char *getenv(); +-#define NORMALDELIVERYCMD "/usr/lib/sendmail -t -oi" +-#define VERBOSEDELIVERYCMD "/usr/lib/sendmail -t -v -oi" ++#define NORMALDELIVERYCMD "/usr/sbin/sendmail -t -oi" ++#define VERBOSEDELIVERYCMD "/usr/sbin/sendmail -t -v -oi" + #endif + + usageexit() { +@@ -194,7 +194,7 @@ + s = endofheader(from); /* would be index(from, '\n'), + but need to check for continuation lines */ + *s = '\0'; +- if (ShareThisHeader(from, SubjectBuf, &OrigID)) { ++ if (ShareThisHeader(from, SubjectBuf, sizeof (SubjectBuf), &OrigID)) { + strcat(SharedHeaders, from); + strcat(SharedHeaders, "\n"); + } +@@ -339,9 +339,10 @@ + NULL + }; + +-ShareThisHeader(s, SubjectBuf, OrigID) ++ShareThisHeader(s, SubjectBuf, size, OrigID) + char *s; + char *SubjectBuf; ++size_t size; + char **OrigID; + { + int i; +@@ -361,7 +362,8 @@ + } + if (!ULstrcmp(s, "subject")) { + *colon = ':'; +- strcpy(SubjectBuf, ++colon); ++ strncpy(SubjectBuf, ++colon, size); ++ SubjectBuf[size - 1] = '\0'; + return(0); + } + if (!ULstrcmp(s, "content-type")) { +--- metamail-2.7.orig/metamail/dlist.c ++++ metamail-2.7/metamail/dlist.c +@@ -0,0 +1,176 @@ ++#include "common.h" ++#include "dlist.h" ++ ++/* null structure to easy initializing to NULL */ ++const DList DListNULL = { NULL, NULL }; ++ ++/* create a new dlist node containing data */ ++DListEntry* ++dlist_new(void* data) { ++ DListEntry* new = XMALLOC( DListEntry, 1 ); ++ ++ new->next = NULL; ++ new->prev = NULL; ++ new->data = data; ++ ++ return new; ++} ++ ++/* concatenate two lists */ ++void ++dlist_cat(DList* list1, DList* list2){ ++ list1->tail->next = list2->head; ++ list2->head->prev = list1->tail; ++ list1->tail = list2->tail; ++} ++ ++/* to shorten things a bit in some cases */ ++DListEntry* ++dlist_insertnew(DList* list, void* data, DListEntry* pos) { ++ DListEntry* new = dlist_new( data ); ++ return dlist_insert( list, new, pos ); ++} ++ ++/* can be used to insert an entry at a specific position in a dlist. ++ use with caution on empty list, cause it might fail then. */ ++DListEntry* ++dlist_insert(DList* list, DListEntry* new, DListEntry* pos) { ++ ++ if ( pos ) { // if pos not null, insert ++ new->next = pos->next; ++ pos->next = new; ++ new->prev = pos; ++ } else if( ! list->head && ! list->tail ) { // otherwise treat as empty ++ new->next = NULL; // list ++ new->prev = NULL; ++ list->head = new; ++ } else ++ return NULL; // not an empty list -> error ++ ++ if ( new->next ) // set tail when tail ++ new->next->prev = new; ++ else ++ list->tail = new; ++ ++ return new; ++} ++ ++/* can only be used to append to the end of a list */ ++DListEntry* ++dlist_append(DList* list, DListEntry* new) { ++ if ( list->tail ) { // if list tail exists, then link with it ++ new->next = list->tail->next; ++ list->tail->next = new; ++ } else { ++ new->next = NULL; ++ list->head = new; ++ } ++ ++ new->prev = list->tail; ++ ++ if ( new->next ) // if next is defined, then set its prev value correctly ++ new->next->prev = new; ++ else ++ list->tail = new; ++ ++ return new; ++} ++ ++ ++ ++DListEntry* ++dlist_insert_sort (DList* list, DListEntry* new, dlist_comp cmp) { ++ ++} ++ ++/* retrieves the head of a list */ ++DListEntry* ++dlist_head(DList* list) { ++ DListEntry *help = list->tail; ++ DListEntry *old = NULL; ++ ++ while( help ) { ++ old = help; ++ help = help->prev; ++ } ++ ++ return old; ++} ++ ++/* retrieves the tail of a list */ ++DListEntry* ++dlist_tail(DList* list) { ++ DListEntry *help = list->head; ++ DListEntry *old = NULL; ++ ++ while( help ) { ++ old = help; ++ help = help->next; ++ } ++ ++ return old; ++} ++ ++/* returns the length of the list */ ++size_t ++dlist_length(DList* list){ ++ DListEntry *help = list->head; ++ size_t n; ++ ++ for (n = 0; help; ++n) ++ help = help->next; ++ ++ return n; ++} ++ ++/* removes an entry from the list, and returns it so that it might ++ be destroyed properly */ ++DListEntry* ++dlist_remove(DList* list, DListEntry* entry) { ++ if (entry) { ++ if (entry != list->head) { // when not head ++ if (entry->prev) // and a previous entry exists ++ entry->prev->next = entry->next; // tell the previous our next entry ++ } else ++ list->head = entry->next; // otherwise next entry is head ++ ++ if (entry != list->tail) { // when not tail ++ if (entry->next) // and next entry exists ++ entry->next->prev = entry->prev; // tell the next entry our previous ++ } else ++ list->tail = entry->prev; // otherwise previous is tail ++ } ++ ++ return entry; ++} ++ ++/* checks a list to be ok (debugging) verifies head, tail and prints list */ ++dlist_check( DList* list ) { ++ // should be implemented ++} ++ ++ ++DListEntry* ++dlist_search(DList* list, void* data, dlist_comp cmp) ++{ ++ DListEntry *help = list->head; ++ ++ if (list) { ++ while ( help ) { ++ if ( cmp( data, help->data ) == 0 ) ++ return help; ++ else ++ help = help->next; ++ } ++ } ++ ++ return NULL; ++} ++ ++ ++int ++dlist_strcmp(void* data1, void* data2) ++{ ++ return strcmp( (char*) data1, (char*) data2 ); ++} ++ +--- metamail-2.7.orig/metamail/dlist.h ++++ metamail-2.7/metamail/dlist.h +@@ -0,0 +1,43 @@ ++#ifndef COMMON_LIST_H ++#define COMMON_LIST_H 1 ++ ++#include <metamail/common.h> ++ ++BEGIN_C_DECLS ++ ++typedef int (*dlist_comp) (void*, void*); ++ ++typedef struct dlistentry { ++ struct dlistentry *next; ++ struct dlistentry *prev; ++ void *data; ++} DListEntry; ++ ++typedef struct dlist { ++ DListEntry *head; ++ DListEntry *tail; ++} DList; ++ ++extern const DList DListNULL; ++ ++extern DListEntry *dlist_new (void* data); ++extern void dlist_cat (DList* list1, DList* list2); ++extern DListEntry *dlist_insert_new (DList* list, void* data, ++ DListEntry* pos); ++extern DListEntry *dlist_insert (DList* list, DListEntry* new, ++ DListEntry* pos); ++extern DListEntry *dlist_insert_sort (DList* list, DListEntry* new, ++ dlist_comp cmp); ++extern DListEntry *dlist_append (DList* list, DListEntry* new); ++extern DListEntry *dlist_head (DList* list); ++extern DListEntry *dlist_tail (DList* list); ++extern size_t dlist_length (DList* list); ++extern DListEntry *dlist_remove (DList* list, DListEntry* entry); ++ ++extern DListEntry *dlist_search (DList* list, void* data, dlist_comp cmp); ++ ++extern int dlist_strcmp (void* data1, void* data2); ++ ++END_C_DECLS ++ ++#endif /* !COMMON_LIST_H */ +--- metamail-2.7.orig/metamail/common-h.in ++++ metamail-2.7/metamail/common-h.in +@@ -0,0 +1,162 @@ ++## common-h.in -- Process this file with configure to produce common.h ++## Copyright (C) 2000 Gary V. Vaughan ++## ++## addition and changes that were made are Copyright (C) 2000 Michael Moerz ++## ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2, or (at your option) ++## any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++#if TIME_WITH_SYS_TIME ++# include <sys/time.h> ++# include <time.h> ++#else ++# if HAVE_SYS_TIME_H ++# include <sys/time.h> ++# else ++# include <time.h> ++# endif ++#endif ++ ++#ifndef PARAMS ++# if __STDC__ ++# ifndef NOPROTOS ++# define PARAMS(args) args ++# endif ++# endif ++# ifndef PARAMS ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# define EXIT_FAILURE 1 ++#endif ++ ++#ifdef __cplusplus ++# define BEGIN_C_DECLS extern "C" { ++# define END_C_DECLS } ++#else ++# define BEGIN_C_DECLS ++# define END_C_DECLS ++#endif ++ ++#ifdef __GNUC__ ++# ifndef const ++# define const __const ++# endif ++# ifndef signed ++# define signed __signed ++# endif ++# ifndef volatile ++# define volatile __volatile ++# endif ++#else ++# ifdef __STDC__ ++# undef signed ++# define signed ++# undef volatile ++# define volatile ++# endif ++#endif ++ ++#ifdef __STDC__ ++# define STR(x) #x ++# define CONC(x, y) x##y ++ typedef void* sic_ptr; ++#else ++# define STR(x) "x" ++# define CONC(x, y) x/**/y ++ typedef char* sic_ptr; ++#endif ++ ++ ++#define XCALLOC(type, num) ((type *) xcalloc ((num), sizeof(type))) ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XREALLOC(type, p, num) ((type *) xrealloc ((p), (num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((sic_ptr) stale); stale = 0; } \ ++ } while (0) ++ ++ ++BEGIN_C_DECLS ++ ++extern void *xcalloc (size_t num, size_t size); ++extern void *xmalloc (size_t num); ++extern void *xrealloc (void *p, size_t num); ++extern char *xstrdup (const char *string); ++extern char *xstrerror (int errnum); ++ ++END_C_DECLS ++ ++#if WITH_DMALLOC ++# include <dmalloc.h> ++#endif ++ ++//metamail specific stuff below (this are the additions from Michael Moerz) ++ ++#define RESET_PROGRAM "/usr/bin/reset" ++ ++//#define NO_RLIMITS 1 ++#define sigtype void ++ ++/* This constant should define the ASCII code for newlines on systems where ++ the newline convention is other than CRLF. On UNIX, it is ^J, ASCII 10. ++ Here we define it as '\n' which should be right on MOST systems... */ ++#define NEWLINE_CHAR '\n' ++ ++/* The following defines the default size at which long ++ messages will be split into multiple messages of type ++ "message/partial" by the mailto and splitmail commands, ++ at least. */ ++#ifndef DEFAULT_SPLIT_SIZE ++#define DEFAULT_SPLIT_SIZE 250000 ++#endif ++ ++#define PATH_SEPARATOR ':' ++#ifndef STDPATH ++#define STDPATH "/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++#endif ++ ++/* The following can be set to a directory or colon-separated list of ++ directories that will be prepended to the user's search path before ++ executing any mailcap-derived commands. ++ ++ It should be set to NULL if there are no directories to prepend. ++*/ ++ ++#define AUXPATH NULL ++ ++ ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++ ++BEGIN_C_DECLS ++ ++extern char **environ, *gets(); ++ ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++ ++extern FILE *popen(); ++ ++END_C_DECLS ++ ++//#ifndef NO_RLIMITS ++//#include <sys/resource.h> ++//#endif ++ ++ ++ +--- metamail-2.7.orig/metamail/xmalloc.c ++++ metamail-2.7/metamail/xmalloc.c +@@ -0,0 +1,38 @@ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include "common.h" ++#include "error.h" ++ ++void * ++xmalloc (size_t num) ++{ ++ void *new = malloc (num); ++ if (!new) ++ metamail_fatal ("Memory exhausted"); ++ return new; ++} ++ ++void * ++xrealloc (void *p, size_t num) ++{ ++ void *new; ++ ++ if (!p) ++ return xmalloc (num); ++ ++ new = realloc (p, num); ++ if (!new) ++ metamail_fatal ("Memory exhausted"); ++ ++ return new; ++} ++ ++void * ++xcalloc (size_t num, size_t size) ++{ ++ void *new = xmalloc (num * size); // is implemented by malloc, cause calloc ++ bzero (new, num * size); // is not available in some older C libs ++ return new; ++} +--- metamail-2.7.orig/metamail/error.c ++++ metamail-2.7/metamail/error.c +@@ -0,0 +1,82 @@ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "common.h" ++#include "error.h" ++ ++#include <libgen.h> /* basename(3) */ ++const char *program_name = NULL; ++ ++static void error PARAMS((int exit_status, const char *mode, ++ const char *message, va_list ap)); ++ ++void ++set_program_name (path) ++ const char *path; ++{ ++ METAMAIL_ASSERT (!program_name); ++ program_name = (char*) xstrdup ( (char*) basename (path)); ++} ++ ++static void ++error (exit_status, mode, message, ap) ++ int exit_status; ++ const char *mode; ++ const char *message; ++ va_list ap; ++{ ++ fprintf (stderr, "%s: %s: ", program_name, mode); ++ vfprintf (stderr, message, ap); ++ fprintf (stderr, ".\n"); ++ ++ if (exit_status >= 0) ++ exit (exit_status); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_warning (const char *message, ...) ++#else ++metamail_warning (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (-1, "warning", message, ap); ++ va_end (ap); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_error (const char *message, ...) ++#else ++metamail_error (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (-1, "ERROR", message, ap); ++ va_end (ap); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_fatal (const char *message, ...) ++#else ++metamail_fatal (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (EXIT_FAILURE, "FATAL", message, ap); ++ va_end (ap); ++} ++ ++ +--- metamail-2.7.orig/metamail/error.h ++++ metamail-2.7/metamail/error.h +@@ -0,0 +1,17 @@ ++#ifndef COMMON_ERROR_H ++#define COMMON_ERROR_H 1 ++ ++#include <metamail/common.h> ++ ++BEGIN_C_DECLS ++ ++extern const char *program_name; ++extern void set_program_name PARAMS((const char *argv0)); ++ ++extern void metamail_warning PARAMS((const char *message, ...)); ++extern void metamail_error PARAMS((const char *message, ...)); ++extern void metamail_fatal PARAMS((const char *message, ...)); ++ ++END_C_DECLS ++ ++#endif /* !COMMON_ERROR_H */ +--- metamail-2.7.orig/metamail/xstrerror.c ++++ metamail-2.7/metamail/xstrerror.c +@@ -0,0 +1,32 @@ ++/* xstrerror.c -- strerror wrapper with bound checking ++ Fri Jun 16 18:30:00 1995 Pat Rankin <rankin@eql.caltech.edu> ++ This code is in the public domain. ++*/ ++ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include "common.h" ++ ++extern char *strerror (); ++ ++/* If strerror returns NULL, we'll format the number into a static buffer. */ ++#define ERRSTR_FMT "undocumented error #%d" ++static char xstrerror_buf[sizeof ERRSTR_FMT + 20]; ++ ++/* Like strerror, but result is never a null pointer. */ ++char * ++xstrerror (int errnum) ++{ ++ char *errstr = strerror (errnum); ++ ++ /* If `errnum' is out of range, result might be NULL. We'll fix that. */ ++ if (!errstr) ++ { ++ sprintf (xstrerror_buf, ERRSTR_FMT, errnum); ++ errstr = xstrerror_buf; ++ } ++ ++ return errstr; ++} +--- metamail-2.7.orig/metamail/stamp-common ++++ metamail-2.7/metamail/stamp-common +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/metamail/common.h ++++ metamail-2.7/metamail/common.h +@@ -0,0 +1,203 @@ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and common.h.in ++ * on host: diziet ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include <stdio.h> ++#include <ctype.h> // ??? ok here ++#include <sys/types.h> ++#include <sys/stat.h> // ??? ok here ++ ++// ??? following ok here without check? ++#include <pwd.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <signal.h> ++ ++#include <termio.h> ++#include <fcntl.h> ++#include <sys/utsname.h> ++ ++#include <linux/limits.h> ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <errno.h> ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++#include <string.h> ++ ++#include <stdarg.h> ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++ ++#include <assert.h> ++#define METAMAIL_ASSERT assert ++ ++ ++#if TIME_WITH_SYS_TIME ++# include <sys/time.h> ++# include <time.h> ++#else ++# if HAVE_SYS_TIME_H ++# include <sys/time.h> ++# else ++# include <time.h> ++# endif ++#endif ++ ++#ifndef PARAMS ++# if __STDC__ ++# ifndef NOPROTOS ++# define PARAMS(args) args ++# endif ++# endif ++# ifndef PARAMS ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# define EXIT_FAILURE 1 ++#endif ++ ++#ifdef __cplusplus ++# define BEGIN_C_DECLS extern "C" { ++# define END_C_DECLS } ++#else ++# define BEGIN_C_DECLS ++# define END_C_DECLS ++#endif ++ ++#ifdef __GNUC__ ++# ifndef const ++# define const __const ++# endif ++# ifndef signed ++# define signed __signed ++# endif ++# ifndef volatile ++# define volatile __volatile ++# endif ++#else ++# ifdef __STDC__ ++# undef signed ++# define signed ++# undef volatile ++# define volatile ++# endif ++#endif ++ ++#ifdef __STDC__ ++# define STR(x) #x ++# define CONC(x, y) x##y ++ typedef void* sic_ptr; ++#else ++# define STR(x) "x" ++# define CONC(x, y) x/**/y ++ typedef char* sic_ptr; ++#endif ++ ++ ++#define XCALLOC(type, num) ((type *) xcalloc ((num), sizeof(type))) ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XREALLOC(type, p, num) ((type *) xrealloc ((p), (num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((sic_ptr) stale); stale = 0; } \ ++ } while (0) ++ ++ ++BEGIN_C_DECLS ++ ++extern void *xcalloc (size_t num, size_t size); ++extern void *xmalloc (size_t num); ++extern void *xrealloc (void *p, size_t num); ++extern char *xstrdup (const char *string); ++extern char *xstrerror (int errnum); ++ ++END_C_DECLS ++ ++#if WITH_DMALLOC ++# include <dmalloc.h> ++#endif ++ ++//metamail specific stuff below (this are the additions from Michael Moerz) ++ ++#define RESET_PROGRAM "/usr/bin/reset" ++ ++//#define NO_RLIMITS 1 ++#define sigtype void ++ ++/* This constant should define the ASCII code for newlines on systems where ++ the newline convention is other than CRLF. On UNIX, it is ^J, ASCII 10. ++ Here we define it as '\n' which should be right on MOST systems... */ ++#define NEWLINE_CHAR '\n' ++ ++/* The following defines the default size at which long ++ messages will be split into multiple messages of type ++ "message/partial" by the mailto and splitmail commands, ++ at least. */ ++#ifndef DEFAULT_SPLIT_SIZE ++#define DEFAULT_SPLIT_SIZE 250000 ++#endif ++ ++#define PATH_SEPARATOR ':' ++#ifndef STDPATH ++#define STDPATH "/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++#endif ++ ++/* The following can be set to a directory or colon-separated list of ++ directories that will be prepended to the user's search path before ++ executing any mailcap-derived commands. ++ ++ It should be set to NULL if there are no directories to prepend. ++*/ ++ ++#define AUXPATH NULL ++ ++ ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++ ++BEGIN_C_DECLS ++ ++extern char **environ, *gets(); ++ ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++ ++extern FILE *popen(); ++ ++END_C_DECLS ++ ++//#ifndef NO_RLIMITS ++//#include <sys/resource.h> ++//#endif ++ ++ ++ ++#define LPRCOMMAND "lp" ++#define LPRTEMPLATE "lp %s" ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++ ++ ++#endif /* !METAMAIL_COMMON_H */ +--- metamail-2.7.orig/metamail/Makefile.am ++++ metamail-2.7/metamail/Makefile.am +@@ -0,0 +1,27 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++pkginclude_HEADERS = common.h error.h ++ ++lib_LTLIBRARIES = libmetamail.la ++ ++libmetamail_la_SOURCES = error.c dlist.c xmalloc.c xstrerror.c \ ++ xstrdup.c ++ ++common.h: stamp-common ++ @: ++stamp-common: $(srcdir)/common-h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIGHEADERS= CONFIG_OTHER=metamail/common.h \ ++ $(SHELL) ./config.status ++ echo timestamp > $@ ++ ++dist-hook: ++ rm -f $(distdir)/common.h ++ ++ ++ ++ ++ ++ +--- metamail-2.7.orig/metamail/Makefile.in ++++ metamail-2.7/metamail/Makefile.in +@@ -0,0 +1,426 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++pkginclude_HEADERS = common.h error.h ++ ++lib_LTLIBRARIES = libmetamail.la ++ ++libmetamail_la_SOURCES = error.c dlist.c xmalloc.c xstrerror.c xstrdup.c ++ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = config.h ++CONFIG_CLEAN_FILES = ++LTLIBRARIES = $(lib_LTLIBRARIES) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I. ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++libmetamail_la_LDFLAGS = ++libmetamail_la_LIBADD = ++libmetamail_la_OBJECTS = error.lo dlist.lo xmalloc.lo xstrerror.lo \ ++xstrdup.lo ++CFLAGS = @CFLAGS@ ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++HEADERS = $(pkginclude_HEADERS) ++ ++DIST_COMMON = ./stamp-h.in Makefile.am Makefile.in config.h.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/dlist.P .deps/error.P .deps/xmalloc.P .deps/xstrdup.P \ ++.deps/xstrerror.P ++SOURCES = $(libmetamail_la_SOURCES) ++OBJECTS = $(libmetamail_la_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign metamail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++config.h: stamp-h ++ @if test ! -f $@; then \ ++ rm -f stamp-h; \ ++ $(MAKE) stamp-h; \ ++ else :; fi ++stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIG_HEADERS=metamail/config.h \ ++ $(SHELL) ./config.status ++ @echo timestamp > stamp-h 2> /dev/null ++$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in ++ @if test ! -f $@; then \ ++ rm -f $(srcdir)/stamp-h.in; \ ++ $(MAKE) $(srcdir)/stamp-h.in; \ ++ else :; fi ++$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOHEADER) ++ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null ++ ++mostlyclean-hdr: ++ ++clean-hdr: ++ ++distclean-hdr: ++ -rm -f config.h ++ ++maintainer-clean-hdr: ++ ++mostlyclean-libLTLIBRARIES: ++ ++clean-libLTLIBRARIES: ++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) ++ ++distclean-libLTLIBRARIES: ++ ++maintainer-clean-libLTLIBRARIES: ++ ++install-libLTLIBRARIES: $(lib_LTLIBRARIES) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(libdir) ++ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ ++ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ ++ else :; fi; \ ++ done ++ ++uninstall-libLTLIBRARIES: ++ @$(NORMAL_UNINSTALL) ++ list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++libmetamail.la: $(libmetamail_la_OBJECTS) $(libmetamail_la_DEPENDENCIES) ++ $(LINK) -rpath $(libdir) $(libmetamail_la_LDFLAGS) $(libmetamail_la_OBJECTS) $(libmetamail_la_LIBADD) $(LIBS) ++ ++install-pkgincludeHEADERS: $(pkginclude_HEADERS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(pkgincludedir) ++ @list='$(pkginclude_HEADERS)'; for p in $$list; do \ ++ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ ++ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p"; \ ++ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p; \ ++ done ++ ++uninstall-pkgincludeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ list='$(pkginclude_HEADERS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(pkgincludedir)/$$p; \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = metamail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign metamail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++all-recursive-am: config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-recursive ++ ++install-exec-am: install-libLTLIBRARIES ++install-exec: install-exec-am ++ ++install-data-am: install-pkgincludeHEADERS ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS ++uninstall: uninstall-am ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(pkgincludedir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \ ++ mostlyclean-compile mostlyclean-libtool \ ++ mostlyclean-tags mostlyclean-depend mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-hdr clean-libLTLIBRARIES clean-compile clean-libtool \ ++ clean-tags clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-hdr distclean-libLTLIBRARIES distclean-compile \ ++ distclean-libtool distclean-tags distclean-depend \ ++ distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-hdr \ ++ maintainer-clean-libLTLIBRARIES \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ ++mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ ++clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ ++uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ ++distclean-compile clean-compile maintainer-clean-compile \ ++mostlyclean-libtool distclean-libtool clean-libtool \ ++maintainer-clean-libtool uninstall-pkgincludeHEADERS \ ++install-pkgincludeHEADERS tags mostlyclean-tags distclean-tags \ ++clean-tags maintainer-clean-tags distdir mostlyclean-depend \ ++distclean-depend clean-depend maintainer-clean-depend info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ ++install-exec-am install-exec install-data-am install-data install-am \ ++install uninstall-am uninstall all-redirect all-am all installdirs \ ++mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++common.h: stamp-common ++ @: ++stamp-common: $(srcdir)/common-h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIGHEADERS= CONFIG_OTHER=metamail/common.h \ ++ $(SHELL) ./config.status ++ echo timestamp > $@ ++ ++dist-hook: ++ rm -f $(distdir)/common.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: +--- metamail-2.7.orig/metamail/libcommon.la ++++ metamail-2.7/metamail/libcommon.la +@@ -0,0 +1,28 @@ ++# libcommon.la - a libtool library file ++# Generated by ltmain.sh - GNU libtool 1.3.5 (1.385.2.206 2000/05/27 11:12:27) ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='' ++ ++# Names of this library. ++library_names='libcommon.so.0.0.0 libcommon.so.0 libcommon.so' ++ ++# The name of the static archive. ++old_library='libcommon.a' ++ ++# Libraries that this one depends upon. ++dependency_libs='' ++ ++# Version information for libcommon. ++current=0 ++age=0 ++revision=0 ++ ++# Is this an already installed library? ++installed=no ++ ++# Directory that this library needs to be installed in: ++libdir='/usr/lib' +--- metamail-2.7.orig/metamail/config.h.in ++++ metamail-2.7/metamail/config.h.in +@@ -0,0 +1,119 @@ ++/* metamail/config.h.in. Generated automatically from configure.in by autoheader 2.13. */ ++ ++/* Define to empty if the keyword does not work. */ ++#undef const ++ ++/* Define to `unsigned' if <sys/types.h> doesn't define. */ ++#undef size_t ++ ++/* Define if you have the ANSI C header files. */ ++#undef STDC_HEADERS ++ ++/* Define if you can safely include both <sys/time.h> and <time.h>. */ ++#undef TIME_WITH_SYS_TIME ++ ++/* Define if you have the basename function. */ ++#undef HAVE_BASENAME ++ ++/* Define if you have the bcmp function. */ ++#undef HAVE_BCMP ++ ++/* Define if you have the bcopy function. */ ++#undef HAVE_BCOPY ++ ++/* Define if you have the bzero function. */ ++#undef HAVE_BZERO ++ ++/* Define if you have the calloc function. */ ++#undef HAVE_CALLOC ++ ++/* Define if you have the index function. */ ++#undef HAVE_INDEX ++ ++/* Define if you have the initstate function. */ ++#undef HAVE_INITSTATE ++ ++/* Define if you have the kill function. */ ++#undef HAVE_KILL ++ ++/* Define if you have the killpg function. */ ++#undef HAVE_KILLPG ++ ++/* Define if you have the memcmp function. */ ++#undef HAVE_MEMCMP ++ ++/* Define if you have the memcpy function. */ ++#undef HAVE_MEMCPY ++ ++/* Define if you have the memset function. */ ++#undef HAVE_MEMSET ++ ++/* Define if you have the putenv function. */ ++#undef HAVE_PUTENV ++ ++/* Define if you have the rand function. */ ++#undef HAVE_RAND ++ ++/* Define if you have the random function. */ ++#undef HAVE_RANDOM ++ ++/* Define if you have the rindex function. */ ++#undef HAVE_RINDEX ++ ++/* Define if you have the srand function. */ ++#undef HAVE_SRAND ++ ++/* Define if you have the strchr function. */ ++#undef HAVE_STRCHR ++ ++/* Define if you have the strerror function. */ ++#undef HAVE_STRERROR ++ ++/* Define if you have the strrchr function. */ ++#undef HAVE_STRRCHR ++ ++/* Define if you have the vfprintf function. */ ++#undef HAVE_VFPRINTF ++ ++/* Define if you have the <assert.h> header file. */ ++#undef HAVE_ASSERT_H ++ ++/* Define if you have the <dlfcn.h> header file. */ ++#undef HAVE_DLFCN_H ++ ++/* Define if you have the <errno.h> header file. */ ++#undef HAVE_ERRNO_H ++ ++/* Define if you have the <signal.h> header file. */ ++#undef HAVE_SIGNAL_H ++ ++/* Define if you have the <stdarg.h> header file. */ ++#undef HAVE_STDARG_H ++ ++/* Define if you have the <stdlib.h> header file. */ ++#undef HAVE_STDLIB_H ++ ++/* Define if you have the <string.h> header file. */ ++#undef HAVE_STRING_H ++ ++/* Define if you have the <strings.h> header file. */ ++#undef HAVE_STRINGS_H ++ ++/* Define if you have the <sys/time.h> header file. */ ++#undef HAVE_SYS_TIME_H ++ ++/* Define if you have the <time.h> header file. */ ++#undef HAVE_TIME_H ++ ++/* Define if you have the <unistd.h> header file. */ ++#undef HAVE_UNISTD_H ++ ++/* Define if you have the <varargs.h> header file. */ ++#undef HAVE_VARARGS_H ++ ++/* Name of package */ ++#undef PACKAGE ++ ++/* Version number of package */ ++#undef VERSION ++ +--- metamail-2.7.orig/metamail/stamp-h.in ++++ metamail-2.7/metamail/stamp-h.in +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/metamail/patchlevel.h ++++ metamail-2.7/metamail/patchlevel.h +@@ -0,0 +1,19 @@ ++/* This is the metamail distribution, version number as given below. ++ ++Version history: ++ ++ Version 1.X was Bellcore-internal and pre-MIME. ++ Version 2.0 was the first MIME-compliant release, also Bellcore-internal. ++ Version 2.1 was the first public release, January 1992. ++ Version 2.2 was the second public release, April 1992. Major changes included: ++ -- Ports to UNIX variants & MS-DOS. ++ -- The new "mailto" program ++ -- Innumerable smaller fixes & enhancements ++ Version 2.3 was the June, 1992 release, with many more patches and ++ enhancements, including a Commodore Amiga port. ++ Version 2.4 was the December, 1992 release, including many bug fixes and a vastly expanded (and now separately packaged) contrib directory. ++ Version 2.5 was the June, 1993 release, with mostly just bug fixes from 2.4. ++ Version 2.6 was the July, 1993 release, with important bug fixes from 2.5. ++ Version 2.7 was the February, 1994 release, mostly bug fixes. ++*/ ++#define MM_VERSTRING "2.7" +--- metamail-2.7.orig/metamail/xstrdup.c ++++ metamail-2.7/metamail/xstrdup.c +@@ -0,0 +1,35 @@ ++/* xstrdup.c -- strdup implementation with out of memory reporting ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#ifndef WITH_DMALLOC ++ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include "common.h" ++ ++char * ++xstrdup (string) ++ const char *string; ++{ ++ return string ? strcpy (xmalloc (strlen (string) + 1), string) : NULL; ++} ++ ++#endif /* !WITH_DMALLOC */ ++ +--- metamail-2.7.orig/src/metamail/codes.c ++++ metamail-2.7/src/metamail/codes.c +@@ -0,0 +1,432 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++#include <metamail/common.h> ++ ++extern char *index(); ++static char basis_64[] = ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ++ ++static char index_64[128] = { ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63, ++ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1,-1,-1,-1, ++ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14, ++ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1, ++ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40, ++ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1 ++}; ++ ++#define char64(c) (((c) < 0 || (c) > 127) ? -1 : index_64[(c)]) ++ ++/* ++char64(c) ++char c; ++{ ++ char *s = (char *) index(basis_64, c); ++ if (s) return(s-basis_64); ++ return(-1); ++} ++*/ ++ ++/* the following gets a character, but fakes it properly into two chars if there's a newline character */ ++static int InNewline=0; ++ ++int nextcharin(infile, PortableNewlines) ++FILE *infile; ++int PortableNewlines; ++{ ++ int c; ++ ++#ifndef NEWLINE_CHAR ++ return(getc(infile)); ++#else ++ if (!PortableNewlines) return(getc(infile)); ++ if (InNewline) { ++ InNewline = 0; ++ return(10); /* LF */ ++ } ++ c = getc(infile); ++ if (c == NEWLINE_CHAR) { ++ InNewline = 1; ++ return(13); /* CR */ ++ } ++ return(c); ++#endif ++} ++ ++to64(infile, outfile, PortableNewlines) ++FILE *infile, *outfile; ++int PortableNewlines; ++{ ++ int c1, c2, c3, ct=0; ++ InNewline = 0; /* always reset it */ ++ while ((c1 = nextcharin(infile, PortableNewlines)) != EOF) { ++ c2 = nextcharin(infile, PortableNewlines); ++ if (c2 == EOF) { ++ output64chunk(c1, 0, 0, 2, outfile); ++ } else { ++ c3 = nextcharin(infile, PortableNewlines); ++ if (c3 == EOF) { ++ output64chunk(c1, c2, 0, 1, outfile); ++ } else { ++ output64chunk(c1, c2, c3, 0, outfile); ++ } ++ } ++ ct += 4; ++ if (ct > 71) { ++ putc('\n', outfile); ++ ct = 0; ++ } ++ } ++ if (ct) putc('\n', outfile); ++ fflush(outfile); ++} ++ ++output64chunk(c1, c2, c3, pads, outfile) ++FILE *outfile; ++{ ++ putc(basis_64[c1>>2], outfile); ++ putc(basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)], outfile); ++ if (pads == 2) { ++ putc('=', outfile); ++ putc('=', outfile); ++ } else if (pads) { ++ putc(basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)], outfile); ++ putc('=', outfile); ++ } else { ++ putc(basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)], outfile); ++ putc(basis_64[c3 & 0x3F], outfile); ++ } ++} ++ ++PendingBoundary(s, Boundaries, BoundaryCt) ++char *s; ++char **Boundaries; ++int *BoundaryCt; ++{ ++ int i, len; ++ ++ if (s[0] != '-' || s[1] != '-') return(0); ++ ++ ++ for (i=0; i < *BoundaryCt; ++i) { ++ len = strlen(Boundaries[i]); ++ if (!strncmp(s, Boundaries[i], len)) { ++ if (s[len] == '-' && s[len+1] == '-') *BoundaryCt = i; ++ return(1); ++ } ++ } ++ return(0); ++} ++ ++/* If we're in portable newline mode, we have to convert CRLF to the ++ local newline convention on output */ ++ ++static int CRpending = 0; ++ ++#ifdef NEWLINE_CHAR ++almostputc(c, outfile, PortableNewlines) ++int c; ++FILE *outfile; ++int PortableNewlines; ++{ ++ if (CRpending) { ++ if (c == 10) { ++ putc(NEWLINE_CHAR, outfile); ++ CRpending = 0; ++ } else { ++ putc(13, outfile); ++ if (c != 13) { ++ putc(c, outfile); ++ CRpending = 0; ++ } ++ } ++ } else { ++ if (PortableNewlines && c == 13) { ++ CRpending = 1; ++ } else { ++ putc(c, outfile); ++ } ++ } ++} ++#else ++almostputc(c, outfile, PortableNewlines) ++int c; ++FILE *outfile; ++int PortableNewlines; ++{ ++ putc(c, outfile); ++} ++#endif ++ ++from64(infile, outfile, boundaries, boundaryct, PortableNewlines) ++FILE *infile, *outfile; ++char **boundaries; ++int *boundaryct; ++int PortableNewlines; ++{ ++ int c1, c2, c3, c4; ++ int newline = 1, DataDone = 0; ++ ++ /* always reinitialize */ ++ CRpending = 0; ++ while ((c1 = getc(infile)) != EOF) { ++ if (isspace(c1)) { ++ if (c1 == '\n') { ++ newline = 1; ++ } else { ++ newline = 0; ++ } ++ continue; ++ } ++ if (newline && boundaries && c1 == '-') { ++ char Buf[200]; ++ /* a dash is NOT base 64, so all bets are off if NOT a boundary */ ++ ungetc(c1, infile); ++ fgets(Buf, sizeof(Buf), infile); ++ if (boundaries ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, boundaries, boundaryct)) { ++ return; ++ } ++ fprintf(stderr, "Ignoring unrecognized boundary line: %s\n", Buf); ++ continue; ++ } ++ if (DataDone) continue; ++ newline = 0; ++ do { ++ c2 = getc(infile); ++ } while (c2 != EOF && isspace(c2)); ++ do { ++ c3 = getc(infile); ++ } while (c3 != EOF && isspace(c3)); ++ do { ++ c4 = getc(infile); ++ } while (c4 != EOF && isspace(c4)); ++ if (c2 == EOF || c3 == EOF || c4 == EOF) { ++ fprintf(stderr, "Warning: base64 decoder saw premature EOF!\n"); ++ return; ++ } ++ if (c1 == '=' || c2 == '=') { ++ DataDone=1; ++ continue; ++ } ++ c1 = char64(c1); ++ c2 = char64(c2); ++ almostputc(((c1<<2) | ((c2&0x30)>>4)), outfile, PortableNewlines); ++ if (c3 == '=') { ++ DataDone = 1; ++ } else { ++ c3 = char64(c3); ++ almostputc((((c2&0XF) << 4) | ((c3&0x3C) >> 2)), outfile, PortableNewlines); ++ if (c4 == '=') { ++ DataDone = 1; ++ } else { ++ c4 = char64(c4); ++ almostputc((((c3&0x03) <<6) | c4), outfile, PortableNewlines); ++ } ++ } ++ } ++ if (CRpending) putc(13, outfile); /* Don't drop a lone trailing char 13 */ ++} ++ ++static char basis_hex[] = "0123456789ABCDEF"; ++static char index_hex[128] = { ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1, -1,-1,-1,-1, ++ -1,10,11,12, 13,14,15,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,10,11,12, 13,14,15,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1 ++}; ++ ++/* The following version generated complaints on Solaris. */ ++/* #define hexchar(c) (((c) < 0 || (c) > 127) ? -1 : index_hex[(c)]) */ ++/* Since we're no longer ever calling it with anything signed, this should work: */ ++#define hexchar(c) (((c) > 127) ? -1 : index_hex[(c)]) ++ ++/* ++hexchar(c) ++char c; ++{ ++ char *s; ++ if (islower(c)) c = toupper(c); ++ s = (char *) index(basis_hex, c); ++ if (s) return(s-basis_hex); ++ return(-1); ++} ++*/ ++ ++toqp(infile, outfile) ++FILE *infile, *outfile; ++{ ++ int c, ct=0, prevc=255; ++ while ((c = getc(infile)) != EOF) { ++ if ((c < 32 && (c != '\n' && c != '\t')) ++ || (c == '=') ++ || (c >= 127) ++ /* Following line is to avoid single periods alone on lines, ++ which messes up some dumb smtp implementations, sigh... */ ++ || (ct == 0 && c == '.')) { ++ putc('=', outfile); ++ putc(basis_hex[c>>4], outfile); ++ putc(basis_hex[c&0xF], outfile); ++ ct += 3; ++ prevc = 'A'; /* close enough */ ++ } else if (c == '\n') { ++ if (prevc == ' ' || prevc == '\t') { ++ putc('=', outfile); /* soft & hard lines */ ++ putc(c, outfile); ++ } ++ putc(c, outfile); ++ ct = 0; ++ prevc = c; ++ } else { ++ if (c == 'F' && prevc == '\n') { ++ /* HORRIBLE but clever hack suggested by MTR for sendmail-avoidance */ ++ c = getc(infile); ++ if (c == 'r') { ++ c = getc(infile); ++ if (c == 'o') { ++ c = getc(infile); ++ if (c == 'm') { ++ c = getc(infile); ++ if (c == ' ') { ++ /* This is the case we are looking for */ ++ fputs("=46rom", outfile); ++ ct += 6; ++ } else { ++ fputs("From", outfile); ++ ct += 4; ++ } ++ } else { ++ fputs("Fro", outfile); ++ ct += 3; ++ } ++ } else { ++ fputs("Fr", outfile); ++ ct += 2; ++ } ++ } else { ++ putc('F', outfile); ++ ++ct; ++ } ++ ungetc(c, infile); ++ prevc = 'x'; /* close enough -- printable */ ++ } else { /* END horrible hack */ ++ putc(c, outfile); ++ ++ct; ++ prevc = c; ++ } ++ } ++ if (ct > 72) { ++ putc('=', outfile); ++ putc('\n', outfile); ++ ct = 0; ++ prevc = '\n'; ++ } ++ } ++ if (ct) { ++ putc('=', outfile); ++ putc('\n', outfile); ++ } ++} ++ ++fromqp(infile, outfile, boundaries, boundaryct) ++FILE *infile, *outfile; ++char **boundaries; ++int *boundaryct; ++{ ++ unsigned int c1, c2; ++ int sawnewline = 1, neednewline = 0; ++ /* The neednewline hack is necessary because the newline leading into ++ a multipart boundary is part of the boundary, not the data */ ++ ++ while ((c1 = getc(infile)) != EOF) { ++ if (sawnewline && boundaries && (c1 == '-')) { ++ char Buf[200]; ++ unsigned char *s; ++ ++ ungetc(c1, infile); ++ fgets(Buf, sizeof(Buf), infile); ++ if (boundaries ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, boundaries, boundaryct)) { ++ return; ++ } ++ /* Not a boundary, now we must treat THIS line as q-p, sigh */ ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++ for (s=(unsigned char *) Buf; *s; ++s) { ++ if (*s == '=') { ++ if (!*++s) break; ++ if (*s == '\n') { ++ /* ignore it */ ++ sawnewline = 1; ++ } else { ++ c1 = hexchar(*s); ++ if (!*++s) break; ++ c2 = hexchar(*s); ++ putc(c1<<4 | c2, outfile); ++ } ++ } else { ++#ifdef MSDOS ++ if (*s == '\n') ++ putc('\r', outfile); /* insert CR for binary-mode write */ ++#endif ++ putc(*s, outfile); ++ } ++ } ++ } else { ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++ if (c1 == '=') { ++ sawnewline = 0; ++ c1 = getc(infile); ++ if (c1 == '\n') { ++ /* ignore it */ ++ sawnewline = 1; ++ } else { ++ c2 = getc(infile); ++ c1 = hexchar(c1); ++ c2 = hexchar(c2); ++ putc(c1<<4 | c2, outfile); ++ if (c2 == '\n') sawnewline = 1; ++ } ++ } else { ++ if (c1 == '\n') { ++ sawnewline = 1; ++ neednewline = 1; ++ } else { ++ sawnewline = 0; ++ putc(c1, outfile); ++ } ++ } ++ } ++ } ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++} +--- metamail-2.7.orig/src/metamail/dlistold.c ++++ metamail-2.7/src/metamail/dlistold.c +@@ -0,0 +1,120 @@ ++// Copyright: Michael Moerz 2000 ++// ++// 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 with ++// the Debian GNU/Linux distribution in file /usr/share/doc/common-licenses/GPL ++// if not, write to the Free Software Foundation, Inc., 59 Temple Place, ++// Suite 330, Boston, MA 02111-1307 USA ++ ++ ++#include <stdlib.h> ++#include "dlist.h" ++ ++/* create a new dlist node containing data */ ++DList* ++dlist_new(void* data) { ++ DList* new = malloc( sizeof(DList) * 1 ); ++ ++ new->next = NULL; ++ new->prev = NULL; ++ new->data = data; ++ ++ return new; ++} ++ ++/* concatenate two lists */ ++void ++dlist_cat(DList* tail_l1, DList* head_l2){ ++ tail_l1->next = head_l2; ++ head_l2->prev = tail_l1; ++} ++ ++/* to shorten things a bit in some cases */ ++DList* ++dlist_insertnew(DList** tail, void* data) { ++ DList* new = dlist_new( data ); ++ return dlist_insert( tail, new ); ++} ++ ++/* can also be used to append to a list */ ++DList* ++dlist_insert(DList** tail, DList* new) { ++ if ( (*tail) ) { ++ new->next = (*tail)->next; ++ (*tail)->next = new; ++ new->prev = (*tail); ++ } ++ ++ if ( new->next ) // if next is defined, then set its prev value correctly ++ new->next->prev = new; ++ else ++ (*tail) = new; ++ ++ return new; ++} ++ ++/* retrieves the head of a list */ ++DList* ++dlist_head(DList* head){ ++ DList* old; ++ ++ while( head ) { ++ old = head; ++ head = head->prev; ++ } ++ ++ return old; ++} ++ ++/* retrieves the tail of a list */ ++DList* ++dlist_tail(DList* head){ ++ DList* old; ++ ++ while( head ) { ++ old = head; ++ head = head->next; ++ } ++ ++ return old; ++} ++ ++/* returns the length of the list */ ++size_t ++dlist_length(DList* head){ ++ size_t n; ++ ++ for (n = 0; head; ++n) ++ head = head->next; ++ ++ return n; ++} ++ ++/* removes an entry from the list, and returns it so that it might ++ be destroyed properly */ ++DList* ++dlist_remove(DList** head, DList** tail, DList* entry) { ++ if (entry != (*head)) { // when not head ++ if (entry->prev) // and a previous entry exists ++ entry->prev->next = entry->next; // tell the previous our next entry ++ } else ++ (*head) = entry->next; // otherwise next entry is head ++ ++ if (entry != (*tail)) { // when not tail ++ if (entry->next) // and next entry exists ++ entry->next->prev = entry->prev; // tell the next entry our previous one ++ } else ++ (*tail) = entry->prev; // otherwise previous is tail ++ ++ return entry; ++} ++ +--- metamail-2.7.orig/src/metamail/metamail.c ++++ metamail-2.7/src/metamail/metamail.c +@@ -0,0 +1,2223 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include <metamail/common.h> ++#include <metamail/patchlevel.h> ++#include <metamail/dlist.h> ++ ++#include "metamail.h" ++#include "metamail_default.h" ++#include "environment.h" /* for initializing global variables to default or ++ environment variables and for manipulating ++ environment variables */ ++#include "mailcap.h" /* mailcap file(s) parsing functions */ ++ ++ ++char fileToDelete[NAME_MAX]; ++ ++char *FindParam(); ++ ++FILE *InputFP = NULL; ++ ++/* mike extensions */ ++int nDebug = 0; ++/* exts end */ ++ ++int MightAskBeforeExecuting = 1, ++ DefinitelyNotTty = 0, ++ MustNotBeTty = 0, ++ MaybePageOutput = 0, ++ MustPageOutput = 0, ++ EatLeadingNewlines = 0, ++ PrintSomeHeaders = 1, ++ DoInBackground = 0, ++ Quiet = 0, ++ TransparentMode = 0, ++ DeleteSourceFileWhenDone = 0, ++ Is822Format = 1, ++ DoDebug = 0, ++ CParamsAlloced = 0, ++ CParamsUsed = 0, ++ YankMode = 0, ++ UsingStandardInput = 0, ++ PrintingMode = 0, ++ JustWriteFiles = 0, ++ ProcessingErrors = 0; ++ ++int RunAsRootOK = 0; ++ ++char *ContentType = NULL, ++ *ContentEncoding = NULL, ++ *MailerName = "unknown", ++ *MailSubject = "Mail message", ++ *MailFrom = "unknown sender", ++ *MailSummary = "non-text mail message", ++ *mailheaders = NULL, ++ **CParams = NULL, ++ **CParamValues = NULL, ++ *JunkParameter = NULL; ++ ++int EncodingCode = ENCODING_NONE; ++ ++struct part { ++ char *ctype; ++ char *fname; ++ struct part *next; ++}; ++ ++struct NoAskItem *FirstNoAskItem = NULL, ++ *FirstQuietItem = NULL; ++ ++void PrintHeader(); ++void ConsumeRestOfPart(); ++void ParseContentParameters(); ++ ++sigtype cleanup(); ++ ++char *Cleanse(s) /* no leading or trailing space, all lower case */ ++char *s; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = ++ tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (tmp > news && *--tmp && isspace((unsigned char) *tmp)) *tmp = 0; ++ return(news); ++} ++ ++char *UnquoteString(s) ++char *s; ++{ ++ char *ans, *t; ++ ++ if (*s != '"') return(s); ++ ans = XMALLOC(char, 1+strlen(s)); //malloc(1+strlen(s)); ++ ++s; ++ t = ans; ++ while (*s) { ++ if (*s == '\\') { ++ *t++ = *++s; ++ } else if (*s == '"') { ++ break; ++ } else { ++ *t++ = *s; ++ } ++ ++s; ++ } ++ *t = 0; ++ return(ans); ++} ++ ++sigtype ++cleanup(signum) ++int signum; ++{ ++ RestoreTtyState(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++char **Boundaries = NULL; ++int BoundaryCt = 0, BoundaryAlloc = 0; ++struct nextfile { ++ char *filename; ++ struct nextfile *next; ++} *FileQueue=NULL, *LastInQueue = NULL; ++ ++void ++ResetGlobals() { ++ CParamsAlloced = 0; ++ CParamsUsed = 0; ++ ++ ContentType = NULL; ++ ContentEncoding = NULL; ++ MailSubject = "Mail message"; ++ MailFrom = "unknown sender"; ++ MailSummary = "non-text mail message"; ++ initMailHeadersFromEnvironment(); ++ CParams = NULL; ++ CParamValues = NULL; ++ JunkParameter = NULL; ++} ++ ++ ++/** initializes signalhandlers to cleanup function */ ++void ++initSignalHandlers() { ++ signal(SIGINT, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++/** the main function for metamail */ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int retcode = 0; ++ ++ initSignalHandlers; ++ addToPath(AUXPATH); /* add additional dirs to PATH */ ++ fileToDelete[0] = 0; ++ ++ ProcessArguments(argc, argv); /* calls ExitWithError on error */ ++ ++ if (MaybePageOutput) { ++ /* Want to send stderr to pager too, sigh... */ ++ fflush(stderr); ++ close(2); ++ dup2(1, 2); ++ } ++ ++ retcode = HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ RmTmpFileName(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ ++ while (FileQueue) { ++ InputFP = fopen(FileQueue->filename, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", ++ FileQueue->filename); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, FileQueue->filename); ++ } ++ ResetGlobals(); ++ retcode |= HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ RmTmpFileName(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ FileQueue = FileQueue->next; ++ } ++ if (MustPageOutput) PauseForUser(); ++ if (DoDebug) fprintf(stderr, "end of metamail\n"); ++ CleanupTmpFiles(); ++ exit(ProcessingErrors? -1 : retcode); ++} ++ ++void ++QueueNextFile(fname) ++char *fname; ++{ ++ struct nextfile *tmp = XMALLOC( struct nextfile, 1); ++ tmp->filename = fname; ++ tmp->next = NULL; ++ if (FileQueue) { ++ LastInQueue->next = tmp; ++ LastInQueue = tmp; ++ } else { ++ FileQueue = tmp; ++ LastInQueue = tmp; ++ } ++} ++ ++HandleMessage(SquirrelFile, nestingdepth) ++char *SquirrelFile; ++/* SquirrelFile, if non-NULL, is a place to save a recognized body instead of executing it. */ ++int nestingdepth; ++{ ++ char *boundary; ++ int FileWriteOnly = JustWriteFiles; ++ ++ if (FileWriteOnly) { ++ if (!lc2strncmp(ContentType, "message/", 8) ++ || !lc2strncmp(ContentType, "multipart/", 10)) { ++ FileWriteOnly = 0; /* only leaf data */ ++ } ++ } ++ if (Is822Format) { ++ if (Read822Prefix(SquirrelFile?0:1, nestingdepth)) { ++ return -1; ++ } ++ } else /* this property is not recursive for multipart or message */ ++ Is822Format = 1; ++ ++ PrepareMessage(); ++ if (!FileWriteOnly && !ProcessMailcapFiles(SquirrelFile)) return(0); ++ ++ if (!lc2strcmp(ContentType, "message") ++ || !lc2strcmp(ContentType, "message/rfc822")) { ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ ContentType = NULL; /* reset default */ ++ ContentEncoding = NULL; /* reset default */ ++ return(HandleMessage(NULL, nestingdepth+1)); /* simple recursion */ ++ } ++ ++ boundary = FindParam("boundary"); ++ if (!boundary) boundary =JunkParameter; /* backward compatibility hack */ ++ if (!lc2strncmp(ContentType, "multipart", 9)) { ++ if (!boundary) { ++ fprintf(stderr, "Warning: No boundary for multipart data, treating as unrecognized format.\n"); ++ } else { ++ char *LineBuf, NewSquirrelFile[TMPNAME_MAX]; ++ char *subtype = NULL; ++ int currct, result, IsAlternative, WroteSquirrelFile, boundarylen; ++ ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ subtype = index(ContentType, '/'); ++ if (subtype) { ++ ++subtype; ++ subtype = Cleanse(subtype); ++ } else subtype = "mixed"; ++ ++ if (!MaybePageOutput && !DoInBackground) ++ DoInBackground = strcmp(subtype, "parallel") ? 0 : 1; ++ ++ IsAlternative = strcmp(subtype, "alternative") ? 0 : 1; ++ if (IsAlternative) { ++ MkTmpFileName(NewSquirrelFile); ++ WroteSquirrelFile = 0; ++ } ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) ++ Boundaries = XREALLOC(char *, Boundaries, BoundaryAlloc); ++ else ++ Boundaries = XMALLOC(char *, BoundaryAlloc); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ if (DoDebug) printf("Handling multipart as built-in here. Boundary: %s\n", boundary); ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ currct = BoundaryCt; ++ while(currct == BoundaryCt) { ++ if (!strcmp(subtype, "digest")) { ++ ContentType = "message/rfc822"; ++ } else { ++ ContentType = NULL; /* reset default */ ++ } ++ ContentEncoding = NULL; /* reset default */ ++ if (IsAlternative) { ++ result = HandleMessage(NewSquirrelFile, nestingdepth+1); ++ } else{ ++ result = HandleMessage(NULL, nestingdepth+1); ++ } ++ if (result) { ++ /* Need to consume the rest of the part */ ++ ConsumeRestOfPart(NULL); ++ } else { ++ ++WroteSquirrelFile; ++ } ++ } ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ if (IsAlternative) { ++ if (WroteSquirrelFile) { ++ int retcode; ++ char Cmd[TMPNAME_MAX + 15]; ++ sprintf(Cmd, "%s %s", METAMAIL, NewSquirrelFile); ++ fflush(stdout); fflush(stderr); ++ retcode = system(Cmd); ++ RmTmpFileName(NewSquirrelFile); ++ return(retcode); ++ } else { ++ printf("Cannot handle any part of multipart/alternative message\n"); ++ } ++ } ++ return(0); ++ } ++ } /* End of multipart handling */ ++ if (!FileWriteOnly && !TryBuiltIns(SquirrelFile)) return(0); ++ if (!SquirrelFile) { /* Very last resort -- unrecognized types */ ++ char Fname[NAME_MAX], *suggestedname, SugBuf[NAME_MAX]; ++ FILE *fp; ++ int ans = 0, octetstream, ecode=0; ++ int JustMadeTheFile=0; ++ ++ Fname[0] = 0; ++ ++ suggestedname = FindParam("name"); ++ if (!suggestedname) { ++ MkTmpFileName(SugBuf); ++ suggestedname = SugBuf; ++ JustMadeTheFile=1; ++ } ++ if (strlen(suggestedname) > NAME_MAX - 50) ++ suggestedname[NAME_MAX - 50] = '\0'; ++ if (suggestedname[0] == '"') ++ suggestedname=UnquoteString(suggestedname); ++ ++ octetstream = ! lc2strcmp(ContentType, "application/octet-stream"); ++ if (MightAskBeforeExecuting && !DefinitelyNotTty && !MustNotBeTty) { ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("This message contains raw digital data, which can either be viewed as text\nor written to a file.\n"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,\nwhich can either be viewed as text or written to a file.\n", ContentType); ++ } ++ while (!ans) { ++ if (FileWriteOnly) { ++ ans = 2; ++ } else { ++ printf("\nWhat do you want to do with the %s data?\n1 -- See it as text\n2 -- Write it to a file\n3 -- Just skip it\n4 -- Give another content type\n\n", octetstream ? "raw" : ContentType); ++ fgets(Fname, sizeof(Fname), stdin); ++ ans = atoi(Fname); ++ } ++ switch(ans) { ++ case 1: ++ TranslateInputToOutput(InputFP, stdout, EncodingCode, "text"); ++ return(0); ++ case 2: ++ { ++ int needname = 1; ++ while (needname) { ++ needname = 0; ++ printf("Please enter the name of a file to which the data should be written\n(Default: %s) > ", suggestedname); ++ fflush(stdout); ++ fgets(Fname, sizeof(Fname), stdin); ++ Fname[strlen(Fname) - 1] = '\0'; /* bogus newline */ ++ if (!Fname[0]) ++ strcpy(Fname, suggestedname); ++ ++ if (Fname[0] == '~' && Fname[1] == '/') { ++ char Fname2[NAME_MAX]; ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (!p) { ++ strcpy( Fname, suggestedname ); ++ printf("Cannot figure out what ~ means, using temporary file %s instead\n", Fname); ++ } else { ++ strcpy(Fname2, p->pw_dir); ++ strcat(Fname2, "/"); ++ strcat(Fname2, Fname + 2); ++ strcpy(Fname, Fname2); ++ } ++ } ++ ++ if ( strcmp( Fname, suggestedname ) ) ++ RmTmpFileName( suggestedname ); ++ else /* remove from tmp list (should persist) */ ++ DelTmpFileName( suggestedname ); ++ ++ ++ if (DoDebug) fprintf(stderr, "pre access"); ++ ++ if (!JustMadeTheFile && access(Fname, F_OK) == 0) { ++ char *s, AnsBuf[50]; ++ int overwriteans = -1; ++ do { ++ printf("File %s exists. Do you want to overwrite it (y/n) ?\n", Fname); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) { ++ overwriteans = 0; ++ } else { ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') { ++ overwriteans = 1; ++ } else if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ overwriteans=0; ++ } ++ } ++ if (overwriteans == -1) printf("Please answer yes or no.\n"); ++ } while (overwriteans == -1); ++ if (overwriteans == 0) needname = 1; ++ } ++ } ++ } ++ break; ++ case 3: ++ ConsumeRestOfPart(NULL); ++ return(0); ++ break; ++ case 4: ++ { ++ char *savedContentType = ContentType; ++ ContentType = malloc(64); ++ printf("Please enter new content type> "); ++ fflush(stdout); ++ fgets(ContentType, 64, stdin); ++ ContentType[strlen(ContentType) - 1] = '\0'; /* bogus newline */ ++ if (!ProcessMailcapFiles(SquirrelFile)) { ++ free(savedContentType); ++ return(0); ++ } ++ printf("\nNo matching mailcap entry found.\n"); ++ free(ContentType); ++ ContentType = savedContentType; ++ ans = 0; ++ break; ++ } ++ default: ++ ans = 0; ++ break; ++ } ++ } ++ } else { ++ int ct = 0; ++ char *slash = rindex(suggestedname, '/'); ++ if (slash) { ++ ++slash; ++ } else { ++ slash = suggestedname; ++ } ++ do { ++ if (ct) { ++ sprintf(Fname, "%s/%d-%s", tmproot, ct, slash); ++ } else { ++ sprintf(Fname, "%s/%s", tmproot, slash); ++ } ++ ++ct; ++ } while (access(Fname, F_OK) == 0); ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("\nThis message contains raw digital data,"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,", ContentType); ++ } ++ printf("\nwhich is being decoded and written to the file named \"%s\".\nIf you do not want this data, you probably should delete that file.\n", Fname); ++ } ++ if (Fname[0] == 0 || Fname[0] == '\n') { ++ ConsumeRestOfPart(NULL); ++ } else { ++ fp = fopen(Fname, WRITE_BINARY); ++ if (!fp) ExitWithError("Cannot open temporary file"); ++ TranslateInputToOutput(InputFP, fp, EncodingCode, ContentType); ++ ecode = fclose(fp); ++ if (ecode) { ++ printf("Could not write file %s\n", Fname); ++ } else { ++ printf("Wrote file %s\n", Fname); ++ } ++ } ++ if (!DefinitelyNotTty && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ return(ecode); ++ } ++ return(-1); /* Unrecognized, really */ ++} ++ ++ProcessArguments(argc, argv) ++int argc; ++char **argv; ++{ ++ int i; ++ char *SourceFileName = NULL; ++ ++ initVarsFromEnvironment(); /* init global vars from environment */ ++ ++ for (i=1; i<argc; ++i) { ++ if (argv[i][0] == '-') { ++ switch (argv[i][1]) { ++ case '\0': ++ /* Not really necessary, but.... */ ++ SourceFileName = NULL; ++ UsingStandardInput = 1; ++ break; ++ case 'b': ++ Is822Format = 0; ++ break; ++ case 'B': ++ DoInBackground = 1; ++ break; ++ case 'c': ++ if (++i >= argc) usage(); ++ ContentType = XMALLOC(char, 1+strlen(argv[i])); ++ strcpy(ContentType,argv[i]); ++ /* strip leading white space */ ++ while (*ContentType && isspace((unsigned char) *ContentType)) ++ContentType; ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ break; ++ case 'd': ++ MightAskBeforeExecuting = 0; ++ break; ++ case 'e': ++ EatLeadingNewlines = 1; ++ break; ++ case 'E': ++ if (++i >= argc) usage(); ++ ContentEncoding = argv[i]; ++ break; ++ case 'f': ++ if (++i >= argc) usage(); ++ MailFrom = argv[i]; ++ break; ++ case 'h': ++ { ++ FILE *tmpfp; ++ PrintingMode = 1; ++ MightAskBeforeExecuting = 0; ++ //#ifdef AMIGA ++ // freopen("prt:", "w", stdout); ++ //#else ++ /* Want to make all of stdout go to printer, and this ++ is easier than changing every output statement, ++ at least on UNIX... */ ++ tmpfp = popen(LPRCOMMAND, "w"); ++ if (!tmpfp) { ++ ExitWithError("Cannot execute lpr command"); ++ } ++ fflush(stdout); ++ close(1); ++ dup2(fileno(tmpfp), 1); ++ //#endif ++ break; ++ } ++ case 'm': ++ if (++i >= argc) usage(); ++ MailerName = argv[i]; ++ break; ++ case 'p': ++ MaybePageOutput = 1; ++ break; ++ case 'P': ++ MaybePageOutput = 1; ++ MustPageOutput = 1; ++ break; ++ case 'r': ++ RunAsRootOK = 1; ++ break; ++ case 'R': ++#ifdef RESET_PROGRAM ++ system(RESET_PROGRAM); ++ if (DoDebug) printf("Executed reset\n"); ++#else ++ fprintf(stderr, "metamail warning: -R flag not supported on this system\n"); ++#endif ++ break; ++ case 's': ++ if (++i >= argc) usage(); ++ MailSubject = argv[i]; ++ break; ++ case 'T': ++ TransparentMode = 0; ++ break; ++ case 'w': ++ JustWriteFiles = 1; ++ break; ++ case 'q': ++ Quiet = 1; ++ PrintSomeHeaders = 0; ++ break; ++ case 'x': ++ DefinitelyNotTty = 1; ++ MustNotBeTty = 1; ++ break; ++ case 'y': ++ YankMode = 1; ++ break; ++ case 'z': ++ DeleteSourceFileWhenDone = 1; ++ break; ++ default: ++ usage(); ++ } ++ } else { ++ if (SourceFileName) { ++ QueueNextFile(argv[i]); ++ } else { ++ SourceFileName = argv[i]; ++ } ++ } ++ } ++ if (TransparentMode) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (MaybePageOutput && DoInBackground) { ++ MustNotBeTty = 1; ++ /*fprintf(stderr, "metamail: -B is incompatible with -p, -P, and MM_USEPAGER\n"); ++ usage(); */ ++ } ++ if (!Is822Format && !ContentType) { ++ fprintf(stderr, "metamail: -b requires -c.\n"); ++ usage(); ++ } ++ if (DeleteSourceFileWhenDone && !SourceFileName) { ++ fprintf(stderr, "metamail: -z requires -f.\n"); ++ usage(); ++ } ++ if (!RunAsRootOK && (getuid() == 0 || geteuid() == 0)) { ++ fprintf(stderr, "You can not run MetaMail as root unless you use -r or set MM_RUNASROOT.\n"); ++ usage(); ++ } ++ if (SourceFileName) { ++ InputFP = fopen(SourceFileName, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", SourceFileName); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, SourceFileName); ++ } ++ } else { /* input on stdin */ ++ UsingStandardInput = 1; ++ if (MustNotBeTty) { ++ InputFP = stdin; ++/* MaybePageOutput = 1; */ /* This messed up safe-tcl -- nsb 9/21/93 */ ++ MightAskBeforeExecuting = 0; ++ } else { ++ int newfd = dup(0); ++ FILE *newfp; ++ if (newfd > 0) { ++ InputFP = fdopen(newfd, "r"); ++ if (InputFP ++ && ((newfp = fopen("/dev/tty", "r")) != NULL) ++ && !dup2(fileno(newfp), 0)) { ++ DefinitelyNotTty = 0; ++ } else { ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++ } ++ } ++ } ++ } ++ if (DefinitelyNotTty && MaybePageOutput) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (DefinitelyNotTty) { ++ MaybePageOutput = 0; /* Disable pager if I/O has been redirected */ ++ } ++ return(0); ++} ++ ++usage() { ++ fprintf(stderr, "Usage: metamail [-b] [-B] [-d] [-e] [-h] [-r] [-R] [-p] [-P] [-x] [-y] [-z] [-c content-type] [-E content-transfer-encoding] [-f from-name] [-m mailername] [-s subject] [message-file-name]\n"); ++ ExitWithError(NULL); ++} ++ ++RunInNewWindow(argv, argc, SourceFileNamePtr) ++char **argv, **SourceFileNamePtr; ++int argc; ++{ ++ char *FullCmd, TmpName[TMPNAME_MAX]; ++ int i, createdfile=0; ++ if (!*SourceFileNamePtr) { ++ char *LineBuf; ++ FILE *fptmp; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ /* Create it, ugh. Also needs to affect later command. */ ++ MkTmpFileName(TmpName); ++ DelTmpFileName(TmpName); ++ DeleteSourceFileWhenDone = 1; ++ fptmp = fopen(TmpName, WRITE_BINARY); ++ if (!fptmp) ExitWithError("Can't open temporary file\n"); ++ while (fgets(LineBuf, LINE_BUF_SIZE, stdin)) { ++ fputs(LineBuf, fptmp); ++ } ++ XFREE(LineBuf); ++ fclose(fptmp); ++ *SourceFileNamePtr = TmpName; ++ createdfile = 1; ++ } ++ FullCmd = XMALLOC(char, CMDSIZE); ++ if (TransparentMode) { ++ /* In transparent mode, we want to produce stdout that is what we get in, and do EVERYTHING externally in a terminal window. This is to make the truly brain-dead mailers like mailtool happy. I am NOT happy about having to do this. */ ++ /* So, first we copy everything to stdout */ ++ sprintf(FullCmd, CATTEMPLATE, *SourceFileNamePtr); ++ system(FullCmd); /* Cheesy way to do it */ ++ fflush(stdout); fflush(stderr); ++ } ++ /* Then we run ourselves in a terminal window */ ++ MailSummary = "Metamail"; /* for window label */ ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, METAMAIL); ++ strcat(FullCmd, " -P "); ++ if (TransparentMode) strcat(FullCmd, "-T "); ++ for (i=1; i<argc; ++i) { ++ if (strncmp(argv[i], "-x", 2) ++ && strncmp(argv[i], "-B", 2) ++ && strncmp(argv[i], "-d", 2)) { ++ strcat(FullCmd, "\""); ++ strcat(FullCmd, argv[i]); ++ strcat(FullCmd, "\" "); ++ } ++ } ++ if (createdfile) { ++ strcat(FullCmd, "-z "); ++ strcat(FullCmd, *SourceFileNamePtr); ++ } ++ if (!MightAskBeforeExecuting) { ++ strcat(FullCmd, " -d "); ++ /* The special hack for -d is HORRIBLE, but xterm screws up with the -d option in the middle of the command line! */ ++ } ++ if (DoInBackground) strcat(FullCmd, " &"); ++ DefinitelyNotTty = 0; ++ SetUpEnvironment(); ++ if (DoDebug) fprintf(stderr, "Executing %s\n", FullCmd); ++ fflush(stdout); fflush(stderr); ++ exit(system(FullCmd)); ++} ++ ++ ++static char *ThingsToSkip[] = { ++ "csh ", ++ "sh ", ++ "ksh ", ++ NULL ++}; ++ ++char *ShortCommand(progname) ++char *progname; ++{ ++ int i; ++ char *s, *oldprogname; ++ static char FullProgName[500]; ++ ++eatmore: ++ while (*progname && (*progname == '(' || isspace((unsigned char) *progname))) { ++ ++progname; ++ } ++ oldprogname = progname; ++ for (i = 0; oldprogname == progname && ThingsToSkip[i]; ++i) { ++ if (!strncmp(progname, ThingsToSkip[i], strlen(ThingsToSkip[i]))) { ++ progname += strlen(ThingsToSkip[i]); ++ } ++ } ++ if (*progname == '-') { ++ ++progname; ++ while (*progname && !isspace((unsigned char) *progname)) ++progname; ++ } ++ if (progname != oldprogname) goto eatmore; ++ strcpy(FullProgName, progname); ++ s = index(FullProgName, ' '); ++ if (s) *s = 0; ++ s = rindex(FullProgName, '/'); ++ if (s) { ++ return(s+1); ++ } else { ++ return(FullProgName); ++ } ++} ++ ++TryMailcapEntry(mc, SquirrelFile) ++struct MailcapEntry mc; ++char *SquirrelFile; ++{ ++ StripTrailingSpace(mc.contenttype); ++ if (DoDebug) fprintf(stderr, "Trying mailcap entry for '%s'.\n", mc.contenttype); ++ if (PrintingMode && !mc.printcommand) return(-1); ++ if (CtypeMatch(ContentType, mc.contenttype) && PassesTest(&mc)) { ++ if (SquirrelFile) { ++ return(SaveSquirrelFile(SquirrelFile)); ++ } else { ++ char TmpFileName[TMPNAME_MAX]; ++ MkTmpFileName(TmpFileName); ++ return(ExecuteMailcapEntry(mc, TmpFileName, ContentType)); ++ } ++ } ++ if (mc.needtofree) { ++ XFREE(mc.contenttype); ++ XFREE(mc.command); ++ } ++ return(-1); ++} ++ ++SaveSquirrelFile(SquirrelFile) ++char *SquirrelFile; ++{ ++ int j; ++ FILE *outfp; ++ ++ if (DoDebug) printf("saving to file %s\n", SquirrelFile); ++ ++ outfp = fopen(SquirrelFile, WRITE_BINARY); ++ if (!outfp) { ++ fprintf(stderr, "Cannot open %s to squirrel away a portion of a multipart/alternative\n", SquirrelFile); ++ return(-1); ++ } ++ fprintf(outfp, "Content-type: %s", ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ fprintf(outfp, " ; "); ++ fprintf(outfp, "%s", CParams[j]); ++ fprintf(outfp, " = "); ++ fprintf(outfp, "%s", CParamValues[j]); ++ } ++ fprintf(outfp, "\n\n"); ++ TranslateInputToOutput(InputFP, outfp, EncodingCode, ContentType); ++ if (fclose(outfp)) { ++ ExitWithError("fclose failed"); ++ } ++ return(0); ++} ++ ++ExecuteMailcapEntry(mc, TmpFileName, ThisContentType) ++char *TmpFileName, *ThisContentType; ++struct MailcapEntry mc; ++{ ++ int resultcode=0, DidExecute, UsedTmpFileName; ++ struct part *PartsWritten=NULL; ++ char *s, *cmd; ++ ++ cmd = XMALLOC(char, CMDSIZE); ++ if (PrintingMode && !mc.printcommand) return(-1); ++ BuildCommand(cmd, PrintingMode ? mc.printcommand : mc.command, TmpFileName, &UsedTmpFileName, &PartsWritten); ++ if (DoDebug) fprintf(stderr, "Match! Built command %s.\n", cmd); ++ if (mc.copiousoutput && MaybePageOutput) { ++ strcat(cmd, " | "); ++ s = getenv("METAMAIL_PAGER"); ++ if (s && strncmp(s, "metamail", 8)) { ++ /* If METAMAIL_PAGER is set to "metamail" we override it */ ++ strcat(cmd, s); ++ if (!strncmp(s, "less", 4) && strncmp(s+5, "-r", 2)) { ++ fprintf(stderr, "Warning: 'less' without '-r' behaves badly for some mail types,\n\tnotably richtext.\n"); ++ } ++ } else { ++ strcat(cmd, "more"); ++ } ++ } ++ if (!DefinitelyNotTty) { ++ SaveTtyState(); ++ } ++ if (!NeedToAskBeforeExecuting(ThisContentType) ++ || OKToRun(ThisContentType, cmd, mc.label)) { ++ char *FullCmd; ++ int ReallyNotTty; ++ //#ifndef NO_RLIMITS ++ /* Limit size of core dumps */ ++ //struct rlimit rlp; ++ ++ //rlp.rlim_cur = 0; ++ //rlp.rlim_max = 0; ++ //setrlimit(RLIMIT_CORE, &rlp); ++ //#endif ++ FullCmd = XMALLOC(char, CMDSIZE); ++ ReallyNotTty = DefinitelyNotTty; ++ if (mc.needsterminal ++ && DefinitelyNotTty) { ++ int j; ++ sprintf(cmd, " %s -P -b -c '%s", METAMAIL, ThisContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(cmd, " ; "); ++ strcatquoting(cmd, CParams[j]); ++ strcat(cmd, " = "); ++ strcatquoting(cmd, CParamValues[j]); ++ } ++ strcat(cmd, "' "); ++ strcat(cmd, TmpFileName); ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, cmd); ++ DefinitelyNotTty = 0; /* For recursive call */ ++ } else { ++ strcpy(FullCmd, cmd); ++ } ++ DidExecute = 0; ++ if (UsedTmpFileName || PartsWritten) { ++ int isempty; ++ if (PartsWritten) { ++ isempty = 0; ++ } else { ++ isempty = WriteTmpFile(TmpFileName, ThisContentType); ++ } ++ if (!isempty || strncmp(ThisContentType, "text", 4)) { ++ if (DoInBackground && !PartsWritten && !mc.needsterminal) { ++ char TmpCmd[CMDSIZE]; ++ sprintf(TmpCmd, "(%s; rm %s) &", FullCmd, TmpFileName); ++ DefinitelyNotTty = 1; /* in background */ ++ SetUpEnvironment(); ++ resultcode = ExecuteCommand(TmpCmd, 1); ++ DelTmpFileName(TmpFileName); /* an rm ... was already added ++ to the executing cmd */ ++ ++DidExecute; ++ } else { ++ SetUpEnvironment(); ++ resultcode = ExecuteCommand(FullCmd, 1); ++ RmTmpFileName(TmpFileName); ++ ++DidExecute; ++ } ++ } else { /* empty text part, hack to not say "more" */ ++ RmTmpFileName(TmpFileName); ++ } ++ } else { ++ FILE *tmpfp; ++ SetUpEnvironment(); ++ (void) ExecuteCommand(FullCmd, 0); ++ tmpfp = popen(FullCmd, WRITE_BINARY); ++ TranslateInputToOutput(InputFP, tmpfp, EncodingCode, ThisContentType); ++ resultcode = tmpfp ? pclose(tmpfp) : -1; ++ ++DidExecute; ++ } ++ DefinitelyNotTty = ReallyNotTty; ++ if (!DefinitelyNotTty && DidExecute) { ++ RestoreTtyState(); ++ if (mc.copiousoutput && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ } ++ if (!resultcode) { ++ XFREE(FullCmd); ++ } else { ++ fprintf(stderr, "Command failed: %s\n", FullCmd); ++ if (MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ ++ProcessingErrors; ++ } ++ } else { ++ /* user does not want to execute command */ ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ if (DoDebug) fprintf(stderr, "Not executing command.\n"); ++ if (!PartsWritten) ConsumeRestOfPart(NULL); ++ } ++ if (PartsWritten) { ++ struct part *tp; ++ char HeadFile[NAME_MAX]; ++ ++ while (PartsWritten) { ++ tp=PartsWritten->next; ++ XFREE(PartsWritten->ctype); ++ strcpy(HeadFile, PartsWritten->fname); ++ strcat(HeadFile, "H"); ++ RmTmpFileName(HeadFile); ++ RmTmpFileName(PartsWritten->fname); ++ XFREE(PartsWritten->fname); ++ XFREE(PartsWritten); ++ PartsWritten=tp; ++ } ++ } ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ XFREE(cmd); ++ return(0); ++} ++ ++PassesTest(mc) ++struct MailcapEntry *mc; ++{ ++ int result; ++ char *cmd, TmpFileName[TMPNAME_MAX]; ++ ++ if (!mc->testcommand) return(1); ++ MkTmpFileName(TmpFileName); ++ cmd = XMALLOC(char, CMDSIZE); ++ BuildCommand(cmd, mc->testcommand, TmpFileName, NULL, NULL); ++ if (DoDebug) printf("Executing test command: %s\n", cmd); ++ result = system(cmd); ++ XFREE(cmd); ++ return(!result); ++} ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = XMALLOC(char, strlen(s)*2+1); /* absolute max, if all % signs */ ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = 0; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = 0; ++ return(NULL); ++} ++ ++GetMailcapEntry(fp, mc) ++FILE *fp; ++struct MailcapEntry *mc; ++{ ++ int rawentryalloc = 2000, len; ++ char *rawentry, *s, *t, *LineBuf; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ rawentry = XMALLOC(char, 1 + rawentryalloc); ++ *rawentry = 0; ++ while (fgets(LineBuf, LINE_BUF_SIZE, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (len == 0) continue; ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = 0; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += 2000; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = 0; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ XFREE(rawentry); ++ return(0); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "metamail: Ignoring invalid mailcap entry: %s\n", rawentry); ++ XFREE(rawentry); ++ return(0); ++ } ++ *s++ = 0; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->needtofree = 1; ++ mc->testcommand = NULL; ++ mc->label = NULL; ++ mc->printcommand = NULL; ++ mc->contenttype = XMALLOC(char, 1+strlen(rawentry)); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ if (!t) { ++ XFREE(rawentry); ++ return(1); ++ } ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = 0; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = 0; ++ if (*arg) { ++ arg = Cleanse(arg); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = eq; ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = eq; ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = eq; /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "print")) { ++ mc->printcommand = eq; ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++ if (*arg && DoDebug) fprintf(stderr, "metamail: Ignoring mailcap flag: %s\n", arg); ++ } ++ } ++ s = t; ++ } ++ XFREE(rawentry); ++ return(1); ++} ++ ++ExitWithError(txt) ++char *txt; ++{ ++ if (txt) fprintf(stderr, "metamail: %s\n", txt); ++ exit(-1); ++} ++ ++char * ++FreshHeaderCopy(s) ++char *s; ++{ ++ char *t, *newcopy; ++ int len; ++ ++ while (s && *s && isspace((unsigned char) *s) && *s != '\n') ++s; ++ t = index(s, '\n'); ++ while (t && (*(t+1) == ' ' || *(t+1) == '\t')) { ++ t = index(t+1, '\n'); ++ } ++ len = t ? (t-s+1) : (strlen(s)+1); ++ newcopy = XMALLOC(char, len+3); /* two extra bytes for a bizarre bug caused ++ by the fact that FindParam calls ++ FreshHeaderCopy and sometimes tacks on ++ "--". ++ */ ++ strncpy(newcopy, s, len); ++ newcopy[len] = 0; ++ return(newcopy); ++} ++ ++Read822Prefix(PrintHeads, nestingdepth) ++int PrintHeads, nestingdepth; ++{ ++ int SawNewline = 1, bytes = 0, alloced = 1000, HasEncodedChars=0; ++ int c, oldbytes; ++ char *s, *t, *tmp; ++ ++ if (!PrintSomeHeaders) PrintHeads = 0; ++ mailheaders = XMALLOC(char, alloced+1); ++ strcpy(mailheaders, "MM_HEADERS=\n"); ++ bytes = 12; ++yankagain: ++ t = mailheaders + bytes; ++ oldbytes = bytes-1; /* a hack for YankMode */ ++ while ((c = getc(InputFP)) != EOF) { ++ if (++bytes >= alloced) { ++ alloced += 1000; ++ mailheaders = realloc(mailheaders, alloced); ++ t = mailheaders + bytes - 1; ++ } ++ if (c == '\n') { ++ if (SawNewline) break; ++ SawNewline = 1; ++ } else SawNewline = 0; ++ *t++ = c; ++ } ++ *t = 0; ++ --bytes; ++ if (c == EOF) { ++ if (nestingdepth) { ++ fprintf(stderr, "metamail: Incomplete multipart message -- unexpected EOF\n"); ++/* exit(ProcessingErrors); */ ++ } else { ++ if (YankMode) { ++/* ExitWithError("Could not extract a MIME message from the body\n"); */ ++ fprintf(stderr, "metamail: Could not extract a MIME message from the body\n"); ++ } else { ++ fprintf(stderr, "metamail: Could not find end of mail headers.\n"); ++/* ExitWithError("Could not find end of mail headers"); */ ++ } ++ } ++ BoundaryCt=0; ++ return -1; ++ } ++ for (s=mailheaders+oldbytes; *s; ++s) { ++ if (*s == '\n' && (*(s+1) != ' ') && (*(s+1) != '\t')) { ++ if (!ContentType && !lc2strncmp(s, "\ncontent-type:", 14)) { ++ char *dum; ++ ContentType = FreshHeaderCopy(s+14); ++ /* Eliminate white space embedded in content-type */ ++ while (1) { ++ dum = index(ContentType, '/'); ++ if (!dum) break; ++ if (isspace(*(dum-1))) { ++ for (--dum; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else if (isspace(*++dum)) { ++ for ( ; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else { ++ break; ++ } ++ } ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!ContentEncoding && !lc2strncmp(s, "\ncontent-transfer-encoding:", 27)) { ++ ContentEncoding = FreshHeaderCopy(s+27); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!lc2strncmp(s, "\nsubject:", 9)) { ++ if (PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+9); ++ } else if (!lc2strncmp(s, "\nfrom:", 6)) { ++ if (PrintHeads) maybephead(s+1); ++ MailFrom = FreshHeaderCopy(s+6); ++ } else if (!lc2strncmp(s, "\ncontent-description:", 4)) { ++ if(PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+21); ++ } else { ++ /* Print any with encoded variables */ ++ char *dum = s; ++ while (dum) { ++ dum = index(dum, '?'); ++ if (dum && *++dum == '=') break; ++ } ++ if (dum) { ++ char *nl = s+1; ++ while (nl) { ++ nl = index(nl, '\n'); ++ if (nl && !isspace((unsigned char) *++nl)) break; ++ } ++ if (nl && nl > dum) ++HasEncodedChars; ++ } ++ if (HasEncodedChars) { ++ phead(s+1); ++ } else if (PrintHeads) { ++ maybephead(s+1); ++ } ++ } ++ } ++ } ++ /* Ugly, but effective */ ++ if (YankMode && !ContentType) { ++ goto yankagain; ++ } ++ if (PrintHeads) printf("\n"); ++ if (!ContentType) { ++ ContentType = "text/plain"; ++ CParamsUsed=0; ++ } ++ for (tmp=ContentType; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ return 0; ++} ++ ++PrepareMessage() { ++ int c; ++ ++ EncodingCode = ENCODING_NONE; ++ if (ContentEncoding) { ++ /* strip leading white space */ ++ while (*ContentEncoding && isspace((unsigned char) *ContentEncoding)) ++ContentEncoding; ++ StripTrailingSpace(ContentEncoding); ++ if (!lc2strcmp(ContentEncoding, "base64")) { ++ EncodingCode = ENCODING_BASE64; ++ } else if (!lc2strcmp(ContentEncoding, "quoted-printable")) { ++ EncodingCode = ENCODING_QUOTEDPRINTABLE; ++ } else if (!lc2strncmp (ContentEncoding, "x-uue", 5)) { ++ fprintf (stderr, "WARNING: Using nonstandard %s encoding, trying uuencode algorithm.\n", ContentEncoding); ++ EncodingCode = ENCODING_UUENCODE; ++ } else { ++ if (lc2strcmp(ContentEncoding, "none") ++ && !lc2strcmp(ContentEncoding, "8bit") ++ && !lc2strcmp(ContentEncoding, "7bit")) { ++ fprintf(stderr, "Ignoring unrecognized Content-Transfer-Encoding value: %s\n", ContentEncoding); ++ } ++ } ++ } ++ if (EatLeadingNewlines) { ++ while ((c = getc(InputFP)) != EOF) { ++ if (c != '\n') { ++ ungetc(c, InputFP); ++ break; ++ } ++ } ++ } ++ SetUpEnvironment(); ++} ++ ++SetUpEnvironment() { ++ int i, j, environsize; ++ char **newenviron, *mailervar, *summaryvar, *ctypevar, *s; ++ static char ttyenv[15], debugenv[15], *noaskenv, pagerenv[15], *quietenv, rootenv[25]; ++ ++ /* Hack to make the code look similar for unix & dos */ ++#define putenv(var) newenviron[i++] = var; ++ for (environsize=0; environ[environsize]; ++environsize) { ++ ; ++ } ++ newenviron = XMALLOC(char *, 17+environsize); ++ mailervar = XMALLOC(char, 13+strlen(MailerName)); ++ sprintf(mailervar, "MM_MAILER=%s", MailerName); ++ summaryvar = XMALLOC(char, 26 + strlen(MailFrom) + strlen(MailSubject)); ++ sprintf(summaryvar, "MM_SUMMARY=%s (from %s)", MailSubject, MailFrom); ++ MailSummary = summaryvar+11; ++ EliminateNastyChars(MailSummary); ++ i = 0; ++ if (ContentType) { ++ int ctypelen = 22+strlen(ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ ctypelen += 6 + strlen(CParams[j]) + strlen(CParamValues[j]); ++ } ++ ctypevar = XMALLOC(char, ctypelen); ++ for (s=ContentType; *s; ++s) { ++ if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ } ++ while (isspace((unsigned char) *--s)) *s = 0; ++ sprintf(ctypevar, "MM_CONTENTTYPE=%s", ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(ctypevar, " ; "); ++ strcat(ctypevar, CParams[j]); ++ strcat(ctypevar, " = "); ++ strcat(ctypevar, CParamValues[j]); ++ } ++ putenv(ctypevar); ++ } ++ putenv(mailheaders ? mailheaders : "MM_HEADERS=unknown"); ++ putenv(mailervar); ++ putenv(summaryvar); ++ sprintf(ttyenv, "MM_NOTTTY=%d", DefinitelyNotTty); ++ putenv(ttyenv); ++ sprintf(debugenv, "MM_DEBUG=%d", DoDebug); ++ putenv(debugenv); ++ s = getenv("MM_QUIET"); ++ if (!s) s = QuietDefault; ++ quietenv = XMALLOC(char, 15 + strlen(s)); ++ if (Quiet) { ++ strcpy(quietenv, "MM_QUIET=1"); ++ } else { ++ sprintf(quietenv, "MM_QUIET=%s", s); ++ } ++ putenv(quietenv); ++ s = getenv("MM_NOASK"); ++ if (!s) s = NoAskDefault; ++ noaskenv = XMALLOC(char, 15 + strlen(s)); ++ if (MightAskBeforeExecuting) { ++ sprintf(noaskenv, "MM_NOASK=%s", s); ++ } else { ++ strcpy(noaskenv, "MM_NOASK=1"); ++ } ++ putenv(noaskenv); ++ s = getenv("MM_RUNASROOT"); ++ if (!s) s = "0"; ++ sprintf(rootenv, "MM_RUNASROOT=%s", s); ++ putenv(rootenv); ++ sprintf(pagerenv, "MM_USEPAGER=%d", MaybePageOutput); ++ putenv(pagerenv); ++ for (j=0; j<environsize; ++j) { ++ if (strncmp(environ[j], "MM_", 3) || !strncmp(environ[j], "MM_CHARSET", 10)) { ++ putenv(environ[j]); ++ } ++ } ++ newenviron[i] = NULL; ++ environ = newenviron; ++ if (DoDebug) { ++ printf("Here is the environment:\n\n"); ++ system("printenv"); ++ } ++} ++ ++ ++OKToRun(ctype, progname, label) ++char *ctype, *progname, *label; ++{ ++ char AnsBuf[100], *s; ++ ++ if (DoInBackground) return(1); ++ if (DefinitelyNotTty || MustNotBeTty) return(1); ++ while (1) { ++ printf("\n"); ++ if (label) { ++ printf("This message contains %s.\nDo you want to view it using the '%s' command (y/n) [y] ? ", label, ShortCommand(progname)); ++ } else { ++ printf("This message contains '%s'-format data.\nDo you want to view it using the '%s' command (y/n) [y] ? ", ctype, ShortCommand(progname)); ++ } ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) return(0); /* EOF */ ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') return(1); ++ if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ return(0); ++ } ++ printf("Please answer yes or no.\n"); ++ } ++} ++ ++EliminateNastyChars(s) ++char *s; ++{ ++ if (s) for( ; *s ;++s) { ++ if (isalnum((unsigned char) *s)) continue; ++ if (index(" ,.;:/?\\|[]{}()*&^%#@-_=+~<>\"", *s)) continue; ++ if (*s == '\'' || *s == '`') { ++ *s = '"'; ++ } else { ++ *s = ' '; ++ } ++ } ++} ++ ++StripTrailingSpace(s) ++char *s; ++{ ++ char *t = s+strlen(s) -1; ++ while (isspace((unsigned char) *t) && (t >= s)) *t-- = 0; ++} ++ ++static char *KeyHeads=NULL; ++static char **KeyHeadList; ++static int KeyKeep = 0; ++ ++void setKeyHeads() ++{ ++ char *s; ++ int numkeys = 0; ++ ++ if ((KeyHeads = getenv("KEYHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ } else if ((KeyHeads = getenv("KEYIGNHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ KeyKeep = 1; ++ } else { ++ static char khtmp[] = "to:cc:subject:from:content-description:date"; ++ KeyHeads = khtmp; ++ } ++ for (s=KeyHeads; *s; ++s) if (*s == ':') ++numkeys; ++ numkeys += 2; ++ KeyHeadList = XMALLOC(char *, numkeys); ++ numkeys = 0; ++ KeyHeadList[0] = KeyHeads; ++ for(s=KeyHeads; *s; ++s) { ++ if (*s == ':') { ++ *s = '\0'; ++ KeyHeadList[++numkeys] = s+1; ++ } ++ } ++ KeyHeadList[++numkeys] = NULL; ++} ++ ++/* find the first colon in a header line which appears before any spaces or control characters */ ++char * ++findcolon(hdr) ++char *hdr; ++{ ++ while (*hdr && !isspace(*hdr) && !iscntrl(*hdr)) ++ if (*hdr == ':') return hdr; ++ else hdr++; ++ return 0; ++} ++ ++/* check the header given to see if it matches any in the KeyHeadList */ ++maybephead(hdr) ++char *hdr; ++{ ++ char *s; ++ int numkeys=0; ++ ++ if (!KeyHeads) setKeyHeads(); ++ ++ s = findcolon(hdr); ++ if (s) { ++ int len = s - hdr; ++ for (numkeys=0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(hdr, KeyHeadList[numkeys], len)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ return; ++ } ++ if (!strncmp(hdr, "From ", 5) || !strncmp(hdr, ">From ", 6)) { ++ for (numkeys = 0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(">from", KeyHeadList[numkeys], 5)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ } ++} ++ ++/* This next routine prints out a mail header, and needs to deal with the new extended charset headers. */ ++phead(s) ++char *s; ++{ ++ char *t = s; ++ ++ while (1) { ++ t = index(t, '\n'); ++ if (!t) break; ++ if (!isspace((unsigned char) *(t+1))) { ++ *t = 0; ++ break; ++ } else ++t; ++ } ++ PrintHeader(s, 1); ++ printf("\n"); ++ if (t) *t = '\n'; ++} ++ ++static char PrevCharset[100] = "us-ascii"; ++ ++/* This is the part that actually handles the charset issues */ ++void PrintHeader(s, ShowLeadingWhitespace) ++char *s; ++int ShowLeadingWhitespace; ++{ ++ char *charset, *encoding, *txt, *txtend, TmpFile[TMPNAME_MAX]; ++ int ecode = ENCODING_NONE, CorrectedCharset = 0; ++ FILE *fp; ++ ++ while (*s && (*s != '=')) { ++ if (isspace((unsigned char) *s)) { ++ if (ShowLeadingWhitespace) { ++ putchar(' '); ++ } ++ } else { ++ putchar(*s); ++ if (!CorrectedCharset) { ++ CorrectedCharset = 1; ++ strcpy(PrevCharset, "us-ascii"); ++ } ++ } ++ if (!ShowLeadingWhitespace) { ++ /* Only at most one leading space is ignored */ ++ ShowLeadingWhitespace = 1; ++ } ++ ++s; ++ } ++ if (!*s) return; ++ if (*(s+1) != '?') { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ charset = s+2; ++ encoding = index(charset, '?'); ++ if (!encoding) { ++ putchar('='); ++ PrintHeader(++s,1); ++ return; ++ } ++ txt = index(encoding+1, '?'); ++ if (!txt) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ txtend = txt; ++ do { ++ txtend = index(txtend+1, '?'); ++ } while(txtend && (*(txtend+1) != '=')); ++ if (!txtend) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ } ++ /* Proper parse! Ready to dissect... */ ++ *encoding = 0; ++ *txt = 0; ++ *txtend = 0; ++ if ((*(encoding+1) == 'q') || (*(encoding+1) == 'Q')) { ++ ecode = ENCODING_QUOTEDPRINTABLE; ++ } else if ((*(encoding+1) == 'b') || (*(encoding+1) == 'B')) { ++ ecode = ENCODING_BASE64; ++ } else { ++ fprintf(stderr, "Bad encoding value in non-ASCII header string: %s\n", encoding+1); ++ } ++ if (lc2strcmp(charset, PrevCharset)) { ++ char *s2, *charsetinuse; ++ ++ strncpy(PrevCharset, charset, sizeof(PrevCharset)); ++ PrevCharset[sizeof(PrevCharset) - 1] = '\0'; ++ for (s2=PrevCharset; *s2; ++s2) { ++ if (isupper((unsigned char) *s2)) *s2 = tolower((unsigned char) *s2); ++ } ++ charsetinuse = getenv("MM_CHARSET"); ++ if (!charsetinuse || lc2strcmp(charsetinuse, PrevCharset)) { ++ printf("[** %s charset **] ", charset); ++ } ++ } ++ if (ecode == ENCODING_NONE) { ++ printf("%s", txt+1); ++ } else { ++ /* What follows is REALLY bogus, but all my encoding stuff is pipe-oriented right now... */ ++ MkTmpFileName(TmpFile); ++ fp = fopen(TmpFile, WRITE_BINARY); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ char *t; ++ for (t=txt+1; *t; ++t) { ++ if (*t == '_') { ++ putc(' ', fp); ++ } else if (*t == '\n') { ++ putc(' ', fp); ++ } else { ++ putc(*t, fp); ++ } ++ } ++ fclose(fp); ++ fp = fopen(TmpFile, "r"); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ TranslateInputToOutput(fp, stdout, ecode, "text"); ++ fclose(fp); ++ } ++ RmTmpFileName(TmpFile); ++ } ++ } ++ *encoding = '?'; ++ *txt = '?'; ++ *txtend = '?'; ++ PrintHeader(txtend + 2, 0); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName, UsedTmpFileName, PartsWritten) ++char *Buf, *controlstring, *TmpFileName; ++int *UsedTmpFileName; ++struct part **PartsWritten; ++{ ++ char *from, *to, *s, *p, *tmp; ++ int prefixed = 0, UsedBigFile=0, UsedLittleFiles=0, numparts=0; ++ struct part *firstpart=NULL, *thispart=NULL, *tmppart=NULL; ++ ++ if (UsedTmpFileName) *UsedTmpFileName = 0; ++ if (PartsWritten) *PartsWritten = NULL; ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 'n': ++ case 'F': ++ if (!PartsWritten) { ++ fprintf(stderr, "metamail: Bad mailcap \"test\" clause: %s\n", controlstring); ++ ExitWithError("%%n and %%F may not be used in \"test\" clauses. Execution terminated."); ++ } ++ if (UsedBigFile) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (!UsedLittleFiles) { ++ /* Set up parts */ ++ char *LineBuf, *boundary, TmpFileNameBuf[TMPNAME_MAX]; ++ char *oldct, *oldce, *newct; ++ int currct, boundarylen, newctlen, j; ++ int oldcparmsused, oldcparamsalloced; ++ char **oldcparams, **oldcparamvalues; ++ FILE *headfp; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ boundary = FindParam("boundary"); ++ if (!boundary) { ++ fprintf(stderr, "Bad message format: This multipart message has no boundary parameter,\n"); ++ fprintf(stderr, "but the mailcap entry for %s uses %%F or %%n.\n\n", ContentType); ++ ExitWithError("A change to the mailcap file might make this message viewable."); ++ } ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = XREALLOC(char *, Boundaries, ++ BoundaryAlloc); ++ } else { ++ Boundaries = XMALLOC(char *, BoundaryAlloc); ++ } ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ currct = BoundaryCt; ++ oldct=ContentType; ++ oldce=ContentEncoding; ++ oldcparmsused = CParamsUsed; ++ oldcparamsalloced = CParamsAlloced; ++ oldcparams = CParams; ++ oldcparamvalues = CParamValues; ++ CParams = NULL; ++ CParamValues = NULL; ++ CParamsUsed = 0; ++ CParamsAlloced = 0; ++ while(currct == BoundaryCt) { ++ tmppart = XMALLOC(struct part, 1); ++ if (firstpart) { ++ thispart->next = tmppart; ++ thispart = tmppart; ++ } else { ++ firstpart = thispart = tmppart; ++ } ++ tmppart->next = NULL; ++ ContentType=NULL; ++ ContentEncoding=NULL; ++ Read822Prefix(0,0); ++ PrepareMessage(); ++ newctlen=5+strlen(ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ newctlen += 11+strlen(CParams[j]) + strlen(CParamValues[j]); ++ } ++ newct= XMALLOC(char, newctlen); ++ strcpy(newct, "'"); ++ strcat(newct, ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(newct, "; "); ++ strcat(newct, CParams[j]); ++ if (CParamValues[j][0] == '\"') { ++ strcat(newct, " = "); ++ strcat(newct, CParamValues[j]); ++ } else { ++ strcat(newct, " = \""); ++ strcat(newct, CParamValues[j]); ++ strcat(newct, "\""); ++ } ++ } ++ strcat(newct, "'"); ++ thispart->ctype = newct; ++ MkTmpFileName(TmpFileNameBuf); ++ thispart->fname = XMALLOC(char, ++ 1+strlen(TmpFileNameBuf)); ++ strcpy(thispart->fname, TmpFileNameBuf); ++ WriteTmpFile(thispart->fname, thispart->ctype); ++ strcat(TmpFileNameBuf, "H"); ++ headfp = fopen(TmpFileNameBuf, "w"); ++ if (headfp) { ++ fputs(mailheaders+12, headfp); ++ /* The +12 gets rid of MM_HEADERS=\n */ ++ fclose(headfp); ++ } ++ ++numparts; ++ } ++ ContentType=oldct; ++ ContentEncoding=oldce; ++ CParamsUsed = oldcparmsused; ++ CParamsAlloced = oldcparamsalloced; ++ CParams = oldcparams; ++ CParamValues = oldcparamvalues; ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ *PartsWritten = firstpart; ++ UsedLittleFiles=1; ++ } ++ if (*from == 'n') { ++ char numbuf[10]; ++ sprintf(numbuf, "%d", numparts); ++ strcpy(to, numbuf); ++ to += strlen(numbuf); ++ } else { /* %F */ ++ for (tmppart = firstpart; tmppart != NULL; tmppart = tmppart->next) { ++ sprintf(to, "%s %s ", tmppart->ctype, tmppart->fname); ++ to += (strlen(tmppart->ctype) + strlen(tmppart->fname) + 2); ++ } ++ } ++ break; ++ case 's': ++ if (UsedLittleFiles) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ if (UsedTmpFileName) ++(*UsedTmpFileName); ++ } ++ UsedBigFile = 1; ++ break; ++ case '{': ++ s = index(from, '}'); ++ if (!s) { ++ fprintf(stderr, "Ignoring ill-formed parameter reference in mailcap file: %s\n", from); ++ break; ++ } ++ ++from; ++ *s = 0; ++ /* put in lower case */ ++ for (tmp=from; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ p = FindParam(from); ++ if (p && p[0] == '"') { ++ p=UnquoteString(p); ++ } ++ if (!p) p = ""; ++ *to++ = '\''; ++ strcpynoquotes(to, p); ++ to += strlen(p); ++ *to++ = '\''; ++ *s = '}'; /* restore */ ++ from = s; ++ break; ++ case 't': ++ /* type/subtype */ ++ strcpynoquotes(to, ContentType); ++ to += strlen(ContentType); ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = 0; ++} ++ ++strcpynoquotes(t,f) ++char *t, *f; ++{ ++ static char *badchars="|<>%*?\"`'"; ++ ++ while (*f) { ++ if (index(badchars, *f)) *t++ = ' '; else *t++ = *f; ++ ++f; ++ } ++} ++ ++WriteTmpFile(fname, ctype) ++char *fname; ++char *ctype; ++{ ++ FILE *fpout; ++ int retval = 0; ++ ++ fpout = fopen(fname, WRITE_BINARY); ++ if (!fpout) { ++ perror("WriteTmpFile"); ++ metamail_fatal("Can't create temporary file: ", fname); ++ } ++ TranslateInputToOutput(InputFP, fpout, EncodingCode, ctype); ++ if (ftell(fpout) == 0) retval = 1; ++ if (fclose(fpout)) ExitWithError("Can't write temporary file"); ++ return(retval); ++} ++ ++ ++TranslateInputToOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int InMultipart = BoundaryCt > 0 ? 1 : 0; ++ ++ switch(Ecode) { ++ case ENCODING_BASE64: ++ from64(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENCODING_QUOTEDPRINTABLE: ++ fromqp(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt); ++ break; ++ case ENCODING_UUENCODE: ++ fromuue(InputFP, OutputFP, InMultipart ? Boundaries: NULL, &BoundaryCt); ++ break; ++ default: ++ ConsumeRestOfPart(OutputFP); ++ } ++ if (UsingStandardInput && feof(InputFP) && !freopen("/dev/tty", "r", stdin)) { ++ fprintf(stderr, "Warning: Cannot freopen /dev/tty to stdin"); ++ } else InputFP = stdin; ++} ++ ++CreateNewWindowPrefix(Prefix) ++char *Prefix; ++{ ++ char *override = getenv("TERMINAL_CMD"); ++ if (override) { ++ strcpy(Prefix, override); ++ } else if (getenv("DISPLAY")) { ++ /* X11 */ ++ strcpy(Prefix, "xterm -title '"); ++ strcat(Prefix, MailSummary); ++ strcat(Prefix, "' -e "); ++ } else if (getenv("WINDOW_PARENT")) { ++ /* SunView */ ++ strcpy(Prefix, "shelltool "); ++ } else if (getenv("WMHOST")) { ++ /* old Andrew WM */ ++ strcpy(Prefix, "h19 "); ++ } else { ++ /* last resort is to look for /dev/tty */ ++ if (!freopen("/dev/tty", "r", stdin)){ ++ ExitWithError("Don't know how to create a terminal window"); ++ } ++ InputFP = stdin; ++ fprintf(stderr, "Warning, reopened /dev/tty, could be strange.\n"); ++ Prefix[0] = 0; ++ } ++} ++ ++int HasSavedTtyState=0; ++ ++SaveTtyState() { ++ /* Bogus -- would like a good portable way to reset the terminal state here */ ++ ioctl(fileno(stdin), TCGETA, &MyTtyStateIn); ++ ioctl(fileno(stdout), TCGETA, &MyTtyStateOut); ++ ++ HasSavedTtyState = 1; ++ } ++ ++RestoreTtyState() { ++ if (HasSavedTtyState) { ++ ioctl(fileno(stdout), TCSETA, &MyTtyStateOut); ++ ioctl(fileno(stdin), TCSETA, &MyTtyStateIn); ++ } ++} ++ ++NeedToAskBeforeExecuting(type) ++char *type; ++{ ++ struct NoAskItem *nai; ++ if (!MightAskBeforeExecuting || DoInBackground) return(0); ++ for (nai = FirstNoAskItem; nai; nai = nai->next) { ++ if (CtypeMatch(type, nai->type)) return(0); ++ } ++ return(1); ++} ++ ++NeedToBeQuiet(cmd) ++char *cmd; ++{ ++ struct NoAskItem *nai; ++ for (nai = FirstQuietItem; nai; nai = nai->next) { ++ if (!lc2strcmp(nai->type, cmd)) return(1); ++ } ++ return(0); ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char pat2[200]; ++ ++ if (!lc2strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ if (index(pat, '/') == NULL) { ++ /* implicit wildcard */ ++ strcpy(pat2, pat); ++ strcat(pat2, "/*"); ++ pat = pat2; ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!lc2strncmp(ctype, pat, len)) ++ && ((ctype[len] == '/') || (ctype[len] == '\0'))){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++ExecuteCommand(cmd, really) ++char *cmd; ++int really; ++{ ++ int code; ++ if (!Quiet || DoDebug) { ++ if (!NeedToBeQuiet(ShortCommand(cmd))) { ++ printf("---Executing: %s\n", DoDebug ? cmd : ShortCommand(cmd)); ++ } else if (EatLeadingNewlines) { ++ printf("\n"); ++ } ++ fflush(stdout); ++ } ++ if (really) { ++ fflush(stdout); fflush(stderr); ++ code = system(cmd); ++ if (DoDebug) printf("Command exit status: %d\n", code); ++ return(code); ++ } ++ return(0); ++} ++ ++void ++ConsumeRestOfPart(outfp) ++FILE *outfp; ++{ ++ char *Buf; ++ int c; ++ ++ if (BoundaryCt <= 0) { ++ while ((c=getc(InputFP)) != EOF) { ++ if (outfp) putc(c, outfp); ++ } ++ return; ++ } ++ Buf = XMALLOC(char, LINE_BUF_SIZE); ++ while (fgets(Buf, LINE_BUF_SIZE, InputFP)) { ++ if ((BoundaryCt > 0) ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, Boundaries, &BoundaryCt)) { ++ break; ++ } ++ if (outfp) fputs(Buf, outfp); ++ } ++ XFREE(Buf); ++} ++ ++char *paramend(s) ++char *s; ++{ ++ int inquotes=0; ++ while (*s) { ++ if (inquotes) { ++ if (*s == '"') { ++ inquotes = 0; ++ } else if (*s == '\\') { ++ ++s; /* skip a char */ ++ } ++ } else if (*s == ';') { ++ return(s); ++ } else if (*s == '"') { ++ inquotes = 1; ++ } ++ ++s; ++ } ++ return(NULL); ++} ++ ++void ++ParseContentParameters(ct) ++char *ct; ++{ ++ char *s, *t, *eq; ++ ++ CParamsUsed = 0; ++ s = index(ct, ';'); ++ if (!s) return; ++ *s++ = 0; ++ do { ++ t = paramend(s); ++ if (t) *t++ = 0; ++ eq = index(s, '='); ++ if (!eq) { ++ fprintf(stderr, "Ignoring unparsable content-type parameter: '%s'\n", s); ++ JunkParameter=Cleanse(s); ++ } else { ++ if (CParamsUsed >= CParamsAlloced) { ++ CParamsAlloced += 10; ++ if (CParams) { ++ CParams = XREALLOC(char *, CParams, 1+CParamsAlloced); ++ CParamValues = XREALLOC(char *, CParamValues, ++ 1+CParamsAlloced); ++ } else { ++ CParams = XMALLOC(char*, 1+CParamsAlloced); ++ CParamValues = XMALLOC(char *, 1+CParamsAlloced); ++ } ++ } ++ *eq++ = 0; ++ s = Cleanse(s); ++ CParams[CParamsUsed] = s; ++ /* strip leading white space */ ++ while (*eq && isspace((unsigned char) *eq)) ++eq; ++ /* strip trailing white space */ ++ StripTrailingSpace(eq); ++ CParamValues[CParamsUsed++] = eq; ++ if (DoDebug) printf("NEW PARAMETER: %s VALUE: %s\n", s, eq); ++ } ++ s = t; ++ } while (t); ++} ++ ++char *FindParam(s) ++char *s; ++{ ++ int i; ++ for (i=0; i<CParamsUsed; ++i) { ++ if (!strcmp(s, CParams[i])) { ++ return(CParamValues[i]); ++ } ++ } ++ return(NULL); ++} ++ ++strcatquoting(s1, s2) ++char *s1; ++char *s2; ++{ ++ strcat(s1, s2); ++#ifdef NOTDEF ++ while (*s1) ++s1; ++ while (*s2) { ++ if (*s2 == '\"' || *s2 == '\\') *s1++ = '\\'; ++ *s1++ = *s2++; ++ } ++ *s1 = '\0'; ++#endif ++} ++ ++PauseForUser() { ++ if (DefinitelyNotTty || MustNotBeTty) return; ++ ++ fflush(stdout); ++ SaveTtyState(); ++ if (StartRawStdin() != -1) { ++ printf("--Press any key to go on.--"); ++ } else { ++ printf("Press RETURN to go on.\n"); ++ } ++ fflush(stdout); ++ getchar(); ++ RestoreTtyState(); ++ printf("\n"); ++} ++ ++StartRawStdin() { ++ struct termio orterm, fterm; ++ ioctl(0, TCGETA, &orterm); /* get current (i.e. cooked) termio */ ++ fterm = orterm; /* get termio to modify */ ++ ++ fterm.c_lflag &= ~ICANON; /* clear ICANON giving raw mode */ ++ fterm.c_cc[VMIN] = 1; /* set MIN char count to 1 */ ++ fterm.c_cc[VTIME] = 0; /* set NO time limit */ ++ return ioctl(0, TCSETAW, &fterm); /* modify termio for raw mode */ ++} ++ ++ ++int IsDirectory(fname) ++char *fname; ++{ ++ struct stat stbuf; ++ if (stat(fname, &stbuf)) { ++ return(-1); ++ } ++ return (((stbuf.st_mode & S_IFMT) == S_IFDIR) ? 1 : 0); ++} ++ +--- metamail-2.7.orig/src/metamail/dlistold.h ++++ metamail-2.7/src/metamail/dlistold.h +@@ -0,0 +1,36 @@ ++// Copyright: Michael Moerz 2000 ++// ++// 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 with ++// the Debian GNU/Linux distribution in file /usr/share/doc/common-licenses/GPL ++// if not, write to the Free Software Foundation, Inc., 59 Temple Place, ++// Suite 330, Boston, MA 02111-1307 USA ++ ++#ifndef DRF_LIST_H ++#define DRF_LIST_H 1 ++ ++typedef struct dlist { ++ struct dlist* next; ++ struct dlist* prev; ++ void* data; ++} DList; ++ ++extern DList* dlist_new (void* data); ++extern void dlist_cat (DList* tail_l1, DList* head_l2); ++extern DList* dlist_insertnew (DList** tail, void* data); ++extern DList* dlist_insert (DList** tail, DList* new); ++extern DList* dlist_head (DList* head); ++extern DList* dlist_tail (DList* head); ++extern size_t dlist_length (DList* head); ++extern DList* dlist_remove (DList** head, DList** tail, DList* entry); ++ ++#endif /* !DRF_LIST_H */ +--- metamail-2.7.orig/src/metamail/mimencode.c ++++ metamail-2.7/src/metamail/mimencode.c +@@ -0,0 +1,95 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++#include <metamail/common.h> ++ ++//#ifdef MSDOS ++//#include <fcntl.h> ++//#endif ++ ++#define BASE64 1 ++#define QP 2 /* quoted-printable */ ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int encode = 1, which = BASE64, i, portablenewlines = 0; ++ FILE *fp = stdin; ++ FILE *fpo = stdout; ++ ++ for (i=1; i<argc; ++i) { ++ if (argv[i][0] == '-') { ++ switch (argv[i][1]) { ++ case 'o': ++ if (++i >= argc) { ++ fprintf(stderr, "mimencode: -o requires a file name.\n"); ++ exit(-1); ++ } ++ fpo = fopen(argv[i], "w"); ++ if (!fpo) { ++ perror(argv[i]); ++ exit(-1); ++ } ++ break; ++ case 'u': ++ encode = 0; ++ break; ++ case 'q': ++ which = QP; ++ break; ++ case 'p': ++ portablenewlines = 1; ++ break; ++ case 'b': ++ which = BASE64; ++ break; ++ default: ++ fprintf(stderr, ++ "Usage: %s [-u] [-q] [-b] [-p] [-o outputfile] [file name]\n", *argv); ++ exit(-1); ++ } ++ } else { ++ //#ifdef MSDOS ++ // if (encode) ++ // fp = fopen(argv[i], "rb"); ++ // else ++ // { ++ // fp = fopen(argv[i], "rt"); ++ // setmode(fileno(fpo), O_BINARY); ++ // } /* else */ ++ //#else ++ fp = fopen(argv[i], "r"); ++ //#endif /* MSDOS */ ++ if (!fp) { ++ perror(argv[i]); ++ exit(-1); ++ } ++ } ++ } ++ //#ifdef MSDOS ++ //if (fp == stdin) setmode(fileno(fp), O_BINARY); ++ //#endif /* MSDOS */ ++ if (which == BASE64) { ++ if (encode) { ++ to64(fp, fpo, portablenewlines); ++ } else { ++ from64(fp,fpo, (char **) NULL, (int *) 0, portablenewlines); ++ } ++ } else { ++ if (encode) toqp(fp, fpo); else fromqp(fp, fpo, NULL, 0); ++ } ++ return(0); ++} ++ +--- metamail-2.7.orig/src/metamail/tmpfile.c ++++ metamail-2.7/src/metamail/tmpfile.c +@@ -0,0 +1,120 @@ ++#include <metamail/common.h> ++#include <metamail/dlist.h> /* double linked list management */ ++ ++#include "tmpfile.h" ++#include "metamail.h" ++ ++DList TmpNameList = { NULL, NULL }; ++ ++void ++MkTmpFileName(name) ++ char *name; ++{ ++ int tmpfd = 0; ++ ++ if (DoDebug) ++ fprintf(stderr, "MkTmpFileName:\n"); ++ ++ if (!name) { ++ if (DoDebug) ++ fprintf(stderr, "name is null\nMkTmpFileName END\n"); ++ return; ++ } ++ ++ strcpy(name, tmproot); ++ strcat(name, "/MXXXXXX"); ++ ++ if ((tmpfd = mkstemp(name)) > 0) { ++ if (close(tmpfd) == -1) { ++ metamail_warning( "couldn't close tmpfile: ", xstrerror( errno ) ); ++ name[0] = 0; ++ return; ++ } ++ if (DoDebug) ++ fprintf(stderr, "name = \"%s\"\n", name); ++ AddTmpFileName( name ); ++ if (DoDebug) ++ fprintf( stderr, "MkTmpFileName END\n", name); ++ } else { ++ metamail_warning( "couldn't optain tmpfile: ", xstrerror( errno ) ); ++ return; ++ } ++} ++ ++void ++AddTmpFileName(name) ++ char *name; ++{ ++ char *tmpname = NULL; ++ if ( name ) { ++ tmpname = XMALLOC( char, strlen(name) + 1 ); ++ ++ strcpy( tmpname, name ); ++ dlist_insertnew( &TmpNameList, (void*) tmpname, TmpNameList.tail ); ++ if (DoDebug) ++ fprintf( stderr, "AddTmpFileName: %s\n", name ); ++ } ++} ++ ++void ++DelTmpFileName(name) ++ char *name; ++{ ++ DListEntry *help = NULL; ++ ++ if ( (help = dlist_remove( &TmpNameList, dlist_search( &TmpNameList, name, ++ dlist_strcmp ) ) ) ) { ++ XFREE( help->data ); ++ XFREE( help ); ++ } else ++ fprintf(stderr, "tried to remove non tmplist file %s\n", name); ++} ++ ++void ++RmTmpFileName(name) ++ char *name; ++{ ++ DListEntry* help = NULL; ++ ++ if (DoDebug) ++ fprintf( stderr, "RmTmpFileName:\n" ); ++ ++ if( (help = dlist_remove( &TmpNameList, ++ dlist_search( &TmpNameList, name, ++ dlist_strcmp ) ) ) ) { ++ if (DoDebug) fprintf( stderr, "filename: %s\n", name ); ++ if (!access( name, R_OK ) ) { ++ if(unlink( name ) == -1) ++ metamail_error( stderr, "error unlinking: ", xstrerror( errno ) ); ++ } ++ XFREE( help->data ); ++ XFREE( help ); ++ } ++} ++ ++void ++CleanupTmpFiles( void ) ++{ ++ DListEntry* help = NULL; ++ ++ if (DoDebug) ++ fprintf( stderr, "CleanupTmpFiles:\n" ); ++ ++ while ( TmpNameList.head ) { ++ if (DoDebug) fprintf(stderr, "tmpfile: %s %X\n", TmpNameList.head->data, ++ TmpNameList.head->next); ++ if (!access( (char*) TmpNameList.head->data, R_OK )) { ++ if (DoDebug) fprintf( stderr, "access file yes\n" ); ++ if (unlink( (char*) TmpNameList.head->data ) < 0) { ++ if (DoDebug) ++ metamail_error( stderr, "error unlinking: ", ++ (char*) TmpNameList.head->data ); ++ } ++ } ++ ++ help = dlist_remove( &TmpNameList, TmpNameList.head ); ++ if (DoDebug) fprintf( stderr, "%X\n", help ); ++ XFREE( help->data ); ++ XFREE( help ); ++ } ++} +--- metamail-2.7.orig/src/metamail/tmpfile.h ++++ metamail-2.7/src/metamail/tmpfile.h +@@ -0,0 +1,15 @@ ++#ifndef METAMAIL_TMPFILE_H ++#define METAMAIL_TMPFILE_H 1 ++ ++/* create and remove tmpfiles */ ++void MkTmpFileName( char* ); ++void RmTmpFileName( char* ); ++/* and cleanup after doing all kind of things */ ++void CleanupTmpFiles( void ); ++ ++/* register and unregister tmpfiles */ ++/* these functions should not be invoked directly (there are exceptions) */ ++void AddTmpFileName( char* ); ++void DelTmpFileName( char* ); ++ ++#endif /* METAMAIL_TMP_FILE_H */ +--- metamail-2.7.orig/src/metamail/metamail.old ++++ metamail-2.7/src/metamail/metamail.old +@@ -0,0 +1,2756 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include <stdio.h> ++#include <ctype.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include "../config.h" ++#include <patchlevel.h> ++#include "dlist.h" ++ ++#ifdef BORLAND ++#define F_OK 0 ++extern unsigned _stklen = 16384; ++extern char *mktemp(char *); ++#define WRITE_BINARY "w" ++#else /* BORLAND */ ++#ifdef MICROSOFT ++#include <malloc.h> ++#include <stdlib.h> ++#include <time.h> ++#include <signal.h> ++#define F_OK 0 ++#else ++#include <pwd.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <signal.h> ++#ifndef AMIGA ++#ifdef SYSV ++#include <termio.h> ++#include <unistd.h> ++#else /* SYSV */ ++#include <sgtty.h> ++#endif /* SYSV */ ++#endif /* AMIGA */ ++#endif /* MICROSOFT */ ++#endif /* BORLAND */ ++ ++#if defined(SYSV) && !defined(linux) ++#define LPRTEMPLATE "lp %s" ++#define LPRCOMMAND "lp" ++#else ++#define LPRTEMPLATE "lpr %s" ++#define LPRCOMMAND "lpr" ++#endif ++#ifdef MSDOS ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 128 ++#define MAX_FILE_NAME_SIZE 128 ++#define WRITE_BINARY "wb" ++#else /* MSDOS */ ++#ifdef AMIGA ++extern char *MkRmScript(); ++#ifndef F_OK ++#define F_OK (0) ++#endif ++#define CATCOMMAND "Type" ++#define CATTEMPLATE "Type %s" ++#define METAMAIL "metamail <*" ++#define TMPFILE_NAME_SIZE 50 ++#define MAX_FILE_NAME_SIZE 256 ++#define WRITE_BINARY "w" ++#else /* AMIGA */ ++extern char **environ, *gets(); ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++#define WRITE_BINARY "w" ++#endif /* AMIGA */ ++#endif /* MSDOS */ ++ ++#ifndef NO_RLIMITS ++#include <sys/resource.h> ++#endif ++ ++#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++#define LINE_BUF_SIZE 2000 ++#ifndef MICROSOFT ++extern char *malloc(); ++extern char *realloc(); ++#endif ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++char fileToDelete[MAX_FILE_NAME_SIZE]; ++ ++char *FindParam(); ++extern FILE *popen(); ++static char *nomem = "Out of memory!"; ++static char *mmversion = MM_VERSTRING; ++static char *NoAskDefault = "text,text/plain,text/richtext"; ++static char *QuietDefault = CATCOMMAND; ++static char *tmproot=""; ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ int needsterminal; ++ int copiousoutput; ++ int needtofree; ++ char *label; ++ char *printcommand; ++}; ++ ++FILE *InputFP = NULL; ++ ++int MightAskBeforeExecuting = 1, ++ DefinitelyNotTty = 0, ++ MustNotBeTty = 0, ++ MaybePageOutput = 0, ++ MustPageOutput = 0, ++ EatLeadingNewlines = 0, ++ PrintSomeHeaders = 1, ++ DoInBackground = 0, ++ Quiet = 0, ++ TransparentMode = 0, ++ DeleteSourceFileWhenDone = 0, ++ Is822Format = 1, ++ DoDebug = 0, ++ CParamsAlloced = 0, ++ CParamsUsed = 0, ++ YankMode = 0, ++ UsingStandardInput = 0, ++ PrintingMode = 0, ++ JustWriteFiles = 0, ++ ProcessingErrors = 0; ++ ++char *ContentType = NULL, ++ *ContentEncoding = NULL, ++ *MailerName = "unknown", ++ *MailSubject = "Mail message", ++ *MailFrom = "unknown sender", ++ *MailSummary = "non-text mail message", ++ *mailheaders = NULL, ++ **CParams = NULL, ++ **CParamValues = NULL, ++ *JunkParameter = NULL; ++ ++DList* TmpNameListTail; ++ ++#define ENCODING_NONE 0 ++#define ENCODING_BASE64 1 ++#define ENCODING_QUOTEDPRINTABLE 2 ++#define ENCODING_8BIT 3 ++#define ENCODING_UUENCODE -1 /* non-standard */ ++int EncodingCode = ENCODING_NONE; ++ ++struct part { ++ char *ctype; ++ char *fname; ++ struct part *next; ++}; ++ ++struct NoAskItem { ++ char *type; ++ struct NoAskItem *next; ++} *FirstNoAskItem = NULL, ++ *FirstQuietItem = NULL; ++ ++#ifdef MICROSOFT ++/* Need a function prototype for TryMailcapEntry because without it MSC ++ * passes a pointer to the structure rather than the structure itself. ++ */ ++TryMailcapEntry(struct MailcapEntry mc, char *SquirrelFile); ++#endif ++ ++void PrintHeader(); ++void ConsumeRestOfPart(); ++void ParseContentParameters(); ++ ++void CleanupTmpFiles(); ++ ++sigtype cleanup(); ++ ++char *Cleanse(s) /* no leading or trailing space, all lower case */ ++char *s; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (tmp > news && *--tmp && isspace((unsigned char) *tmp)) *tmp = 0; ++ return(news); ++} ++ ++char *UnquoteString(s) ++char *s; ++{ ++ char *ans, *t; ++ ++ if (*s != '"') return(s); ++ ans = malloc(1+strlen(s)); ++ if (!ans) ExitWithError(nomem); ++ ++s; ++ t = ans; ++ while (*s) { ++ if (*s == '\\') { ++ *t++ = *++s; ++ } else if (*s == '"') { ++ break; ++ } else { ++ *t++ = *s; ++ } ++ ++s; ++ } ++ *t = 0; ++ return(ans); ++} ++ ++sigtype ++cleanup(signum) ++int signum; ++{ ++ RestoreTtyState(); ++#if defined(MSDOS) || defined(AMIGA) ++ exit(signum); ++#else ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++#endif ++} ++ ++char **Boundaries = NULL; ++int BoundaryCt = 0, BoundaryAlloc = 0; ++struct nextfile { ++ char *filename; ++ struct nextfile *next; ++} *FileQueue=NULL, *LastInQueue = NULL; ++ ++void ++ResetGlobals() { ++ CParamsAlloced = 0; ++ CParamsUsed = 0; ++ ++ ContentType = NULL; ++ ContentEncoding = NULL; ++ MailSubject = "Mail message"; ++ MailFrom = "unknown sender"; ++ MailSummary = "non-text mail message"; ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = malloc(15+strlen(mailheaders)); ++ if (!s) ExitWithError(nomem); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ mailheaders = s; ++ } ++ CParams = NULL; ++ CParamValues = NULL; ++ JunkParameter = NULL; ++} ++ ++void modpath(auxpath) ++char *auxpath; ++{ ++ if (auxpath && *auxpath) { ++ static char *newpath = 0; ++ char *oldpath = newpath; ++ char *path = getenv("PATH"); ++ ++ if (!path) path = ""; /* give a default if no current path */ ++ newpath = malloc(7 + strlen(path) + strlen(auxpath)); ++ if (!newpath) ExitWithError(nomem); ++ sprintf(newpath, "PATH=%s:%s", auxpath, path); ++ putenv(newpath); ++ if (oldpath) free(oldpath); /* free up any old allocated PATH */ ++ } ++} ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int retcode; ++ ++ modpath(AUXPATH); ++#ifndef MSDOS ++ signal(SIGINT, cleanup); ++#ifndef AMIGA ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++#ifndef linux ++ signal(SIGEMT, cleanup); ++ signal(SIGBUS, cleanup); ++#endif ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#endif ++#endif ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++ tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) tmproot="/tmp"; ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = malloc(15+strlen(mailheaders)); ++ if (!s) ExitWithError(nomem); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ mailheaders = s; ++ } ++ fileToDelete[0] = 0; ++ ProcessArguments(argc, argv); /* calls ExitWithError on error */ ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (MaybePageOutput) { ++ /* Want to send stderr to pager too, sigh... */ ++ fflush(stderr); ++ close(2); ++ dup2(1, 2); ++ } ++#endif ++ retcode = HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ unlink(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ while (FileQueue) { ++ InputFP = fopen(FileQueue->filename, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", FileQueue->filename); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, FileQueue->filename); ++ } ++ ResetGlobals(); ++ retcode |= HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ unlink(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ FileQueue = FileQueue->next; ++ } ++ if (MustPageOutput) PauseForUser(); ++ CleanupTmpFiles(); ++ exit(ProcessingErrors? -1 : retcode); ++} ++ ++void ++QueueNextFile(fname) ++char *fname; ++{ ++ struct nextfile *tmp = (struct nextfile *) malloc(sizeof (struct nextfile)); ++ if (!tmp) ExitWithError(nomem); ++ tmp->filename = fname; ++ tmp->next = NULL; ++ if (FileQueue) { ++ LastInQueue->next = tmp; ++ LastInQueue = tmp; ++ } else { ++ FileQueue = tmp; ++ LastInQueue = tmp; ++ } ++} ++ ++HandleMessage(SquirrelFile, nestingdepth) ++char *SquirrelFile; ++/* SquirrelFile, if non-NULL, is a place to save a recognized body instead of executing it. */ ++int nestingdepth; ++{ ++ char *boundary; ++ int FileWriteOnly = JustWriteFiles; ++ ++ if (FileWriteOnly) { ++ if (!lc2strncmp(ContentType, "message/", 8) ++ || !lc2strncmp(ContentType, "multipart/", 10)) { ++ FileWriteOnly = 0; /* only leaf data */ ++ } ++ } ++ if (Is822Format) { ++ if (Read822Prefix(SquirrelFile?0:1, nestingdepth)) { ++ return -1; ++ } ++ } else Is822Format = 1; /* this property is not recursive for multipart or message */ ++ PrepareMessage(); ++ if (!FileWriteOnly && !ProcessMailcapFiles(SquirrelFile)) return(0); ++ if (!lc2strcmp(ContentType, "message") ++ || !lc2strcmp(ContentType, "message/rfc822")) { ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ ContentType = NULL; /* reset default */ ++ ContentEncoding = NULL; /* reset default */ ++ return(HandleMessage(NULL, nestingdepth+1)); /* simple recursion */ ++ } ++ boundary = FindParam("boundary"); ++ if (!boundary) boundary =JunkParameter; /* backward compatibility hack */ ++ if (!lc2strncmp(ContentType, "multipart", 9)) { ++ if (!boundary) { ++ fprintf(stderr, "Warning: No boundary for multipart data, treating as unrecognized format.\n"); ++ } else { ++ char *LineBuf, NewSquirrelFile[TMPFILE_NAME_SIZE]; ++ char *subtype = NULL; ++ int currct, result, IsAlternative, WroteSquirrelFile, boundarylen; ++ ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ subtype = index(ContentType, '/'); ++ if (subtype) { ++ ++subtype; ++ subtype = Cleanse(subtype); ++ } else subtype = "mixed"; ++#ifndef MSDOS ++ if (!MaybePageOutput && !DoInBackground) DoInBackground = strcmp(subtype, "parallel") ? 0 : 1; ++#endif ++ ++ IsAlternative = strcmp(subtype, "alternative") ? 0 : 1; ++ if (IsAlternative) { ++ MkTmpFileName(NewSquirrelFile); ++ WroteSquirrelFile = 0; ++ } ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = (char **) realloc(Boundaries, BoundaryAlloc*sizeof(char *)); ++ } else { ++ Boundaries = (char **) malloc(BoundaryAlloc*sizeof(char *)); ++ } ++ if (!Boundaries) ExitWithError(nomem); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ if (DoDebug) printf("Handling multipart as built-in here. Boundary: %s\n", boundary); ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ free(LineBuf); ++ currct = BoundaryCt; ++ while(currct == BoundaryCt) { ++ if (!strcmp(subtype, "digest")) { ++ ContentType = "message/rfc822"; ++ } else { ++ ContentType = NULL; /* reset default */ ++ } ++ ContentEncoding = NULL; /* reset default */ ++ if (IsAlternative) { ++ result = HandleMessage(NewSquirrelFile, nestingdepth+1); ++ } else{ ++ result = HandleMessage(NULL, nestingdepth+1); ++ } ++ if (result) { ++ /* Need to consume the rest of the part */ ++ ConsumeRestOfPart(NULL); ++ } else { ++ ++WroteSquirrelFile; ++ } ++ } ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ if (IsAlternative) { ++ if (WroteSquirrelFile) { ++ int retcode; ++ char Cmd[TMPFILE_NAME_SIZE + 15]; ++ sprintf(Cmd, "%s %s", METAMAIL, NewSquirrelFile); ++ fflush(stdout); fflush(stderr); ++ retcode = system(Cmd); ++#ifdef MSDOS ++ retcode = 0; ++#endif ++ unlink(NewSquirrelFile); ++ return(retcode); ++ } else { ++ printf("Cannot handle any part of multipart/alternative message\n"); ++ } ++ } ++ return(0); ++ } ++ } /* End of multipart handling */ ++ if (!FileWriteOnly && !TryBuiltIns(SquirrelFile)) return(0); ++ if (!SquirrelFile) { /* Very last resort -- unrecognized types */ ++ char Fname[MAX_FILE_NAME_SIZE], *suggestedname, SugBuf[MAX_FILE_NAME_SIZE]; ++ FILE *fp; ++ int ans = 0, octetstream, ecode=0; ++ suggestedname = FindParam("name"); ++ if (!suggestedname) { ++ MkTmpFileName(SugBuf); ++ suggestedname = SugBuf; ++ } else if (suggestedname[0] == '"') { ++ suggestedname=UnquoteString(suggestedname); ++ } ++ octetstream = ! lc2strcmp(ContentType, "application/octet-stream"); ++ if (MightAskBeforeExecuting ++ && !DefinitelyNotTty && !MustNotBeTty) { ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("This message contains raw digital data, which can either be viewed as text\nor written to a file.\n"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,\nwhich can either be viewed as text or written to a file.\n", ContentType); ++ } ++ while (!ans) { ++ if (FileWriteOnly) { ++ ans = 2; ++ } else { ++ printf("\nWhat do you want to do with the %s data?\n1 -- See it as text\n2 -- Write it to a file\n3 -- Just skip it\n\n", octetstream ? "raw" : ContentType); ++ fgets(Fname, sizeof(Fname), stdin); ++ ans = atoi(Fname); ++ } ++ switch(ans) { ++ case 1: ++ TranslateInputToOutput(InputFP, stdout, EncodingCode, "text"); ++ return(0); ++ case 2: ++ { ++ int needname = 1; ++ while (needname) { ++ needname = 0; ++ printf("Please enter the name of a file to which the data should be written\n(Default: %s) > ", suggestedname); ++ fflush(stdout); ++ fgets(Fname, sizeof(Fname), stdin); ++ Fname[strlen(Fname) - 1] = '\0'; /* bogus newline */ ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (!Fname[0]) strcpy(Fname, suggestedname); ++ if (Fname[0] == '~' && Fname[1] == '/') { ++ char Fname2[1000]; ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (!p) { ++ MkTmpFileName(Fname); ++ printf("Cannot figure out what ~ means, using temporary file %s instead\n", Fname); ++ } else { ++ strcpy(Fname2, p->pw_dir); ++ strcat(Fname2, "/"); ++ strcat(Fname2, Fname + 2); ++ strcpy(Fname, Fname2); ++ } ++ } ++#endif ++ if (access(Fname, F_OK) == 0) { ++ char *s, AnsBuf[50]; ++ int overwriteans = -1; ++ do { ++ printf("File %s exists. Do you want to overwrite it (y/n) ?\n", Fname); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) { ++ overwriteans = 0; ++ } else { ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') { ++ overwriteans = 1; ++ } else if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ overwriteans=0; ++ } ++ } ++ if (overwriteans == -1) printf("Please answer yes or no.\n"); ++ } while (overwriteans == -1); ++ if (overwriteans == 0) needname = 1; ++ } ++ } ++ } ++ break; ++ case 3: ++ ConsumeRestOfPart(NULL); ++ return(0); ++ break; ++ default: ++ ans = 0; ++ break; ++ } ++ } ++ } else { ++ int ct = 0; ++ char *slash = rindex(suggestedname, '/'); ++#ifdef AMIGA ++ if (slash == NULL) { ++ slash = rindex(suggestedname, ':'); ++ } ++#endif ++ if (slash) { ++ ++slash; ++ } else { ++ slash = suggestedname; ++ } ++ do { ++ if (ct) { ++#ifdef AMIGA ++ sprintf(Fname, "T:%d-%s", ct, slash); ++ } else { ++ sprintf(Fname, "T:%s", slash); ++#else ++ sprintf(Fname, "%s/%d-%s", tmproot, ct, slash); ++ } else { ++ sprintf(Fname, "%s/%s", tmproot, slash); ++#endif ++ } ++ ++ct; ++ } while (access(Fname, F_OK) == 0); ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("\nThis message contains raw digital data,"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,", ContentType); ++ } ++ printf("\nwhich is being decoded and written to the file named \"%s\".\nIf you do not want this data, you probably should delete that file.\n", Fname); ++ } ++ if (Fname[0] == 0 || Fname[0] == '\n') { ++ ConsumeRestOfPart(NULL); ++ } else { ++ fp = fopen(Fname, WRITE_BINARY); ++ if (!fp) ExitWithError("Cannot open temporary file"); ++ TranslateInputToOutput(InputFP, fp, EncodingCode, ContentType); ++ ecode = fclose(fp); ++ if (ecode) { ++ printf("Could not write file %s\n", Fname); ++ } else { ++ printf("Wrote file %s\n", Fname); ++ } ++ } ++ if (!DefinitelyNotTty && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ return(ecode); ++ } ++ return(-1); /* Unrecognized, really */ ++} ++ ++ProcessArguments(argc, argv) ++int argc; ++char **argv; ++{ ++ int i, RunAsRootOK = 0; ++ char *SourceFileName = NULL, *NoAskStr, *QuietStr; ++ ++ QuietStr = getenv("MM_QUIET"); ++ if (!QuietStr) { ++ QuietStr=QuietDefault; ++ } ++ if (!strcmp(QuietStr, "1")) { ++ Quiet = 1; ++ } else { ++ struct NoAskItem *qitem; ++ char *s, *tmp; ++ char *QuietCopy; ++ ++ Quiet = 0; ++ QuietCopy = malloc(1+strlen(QuietStr)); ++ if (!QuietCopy) ExitWithError(nomem); ++ strcpy(QuietCopy, QuietStr); ++ for (tmp=QuietCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(QuietCopy, ','); ++ if (s) *s++ = 0; ++ qitem = (struct NoAskItem *) malloc(sizeof (struct NoAskItem)); ++ if (!qitem) ExitWithError(nomem); ++ qitem->next = FirstQuietItem; ++ qitem->type = QuietCopy; ++ FirstQuietItem = qitem; ++ QuietCopy = s; ++ } while (QuietCopy); ++ } ++ if (getenv("MM_TRANSPARENT")) { ++ TransparentMode = atoi(getenv("MM_TRANSPARENT")); /* Will not propogate recursively */ ++ } ++ if (getenv("MM_RUNASROOT")) { ++ RunAsRootOK = atoi(getenv("MM_RUNASROOT")); ++ } ++ if (getenv("MM_YANKMODE")) { ++ YankMode = atoi(getenv("MM_YANKMODE")); /* Will not propogate recursively */ ++ } ++ if (getenv("MM_DEBUG")) { ++ DoDebug = atoi(getenv("MM_DEBUG")); ++ } ++ if (DoDebug) printf("Metamail Version %s, debugging turned on.\n", mmversion); ++ NoAskStr = getenv("MM_NOASK"); ++ if (!NoAskStr) NoAskStr = NoAskDefault; ++ if (!strcmp(NoAskStr, "1")) { ++ MightAskBeforeExecuting = 0; ++ } else { ++ struct NoAskItem *nai; ++ char *s, *tmp; ++ char *NoAskCopy; ++ ++ NoAskCopy = malloc(1+strlen(NoAskStr)); ++ if (!NoAskCopy) ExitWithError(nomem); ++ strcpy(NoAskCopy, NoAskStr); ++ for (tmp=NoAskCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(NoAskCopy, ','); ++ if (s) *s++ = 0; ++ nai = (struct NoAskItem *) malloc(sizeof (struct NoAskItem)); ++ if (!nai) ExitWithError(nomem); ++ nai->next = FirstNoAskItem; ++ nai->type = NoAskCopy; ++ FirstNoAskItem = nai; ++ NoAskCopy = s; ++ } while (NoAskCopy); ++ } ++ MailerName = getenv("MM_MAILER"); ++ if (!MailerName) MailerName = "unknown"; ++ if (getenv("MM_USEPAGER")) { ++ MaybePageOutput = atoi(getenv("MM_USEPAGER")); ++ } ++ if ((getenv("MM_NOTTTY") && ((atoi(getenv("MM_NOTTTY"))) != 0))) { ++ MustNotBeTty = 1; ++ } ++ if (MustNotBeTty ++ || !isatty(0) ++ || !isatty(1)) { ++ DefinitelyNotTty = 1; ++ } ++ for (i=1; i<argc; ++i) { ++ if (argv[i][0] == '-') { ++ switch (argv[i][1]) { ++ case '\0': ++ /* Not really necessary, but.... */ ++ SourceFileName = NULL; ++ UsingStandardInput = 1; ++ break; ++ case 'b': ++ Is822Format = 0; ++ break; ++ case 'B': ++#ifdef MSDOS ++ fprintf(stderr, "metamail warning: -B flag not supported on this system\n"); ++#else ++ DoInBackground = 1; ++#endif ++ break; ++ case 'c': ++ if (++i >= argc) usage(); ++ ContentType = malloc(1+strlen(argv[i])); ++ if (!ContentType) ExitWithError(nomem); ++ strcpy(ContentType,argv[i]); ++ /* strip leading white space */ ++ while (*ContentType && isspace((unsigned char) *ContentType)) ++ContentType; ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ break; ++ case 'd': ++ MightAskBeforeExecuting = 0; ++ break; ++ case 'e': ++ EatLeadingNewlines = 1; ++ break; ++ case 'E': ++ if (++i >= argc) usage(); ++ ContentEncoding = argv[i]; ++ break; ++ case 'f': ++ if (++i >= argc) usage(); ++ MailFrom = argv[i]; ++ break; ++ case 'h': ++ { ++ FILE *tmpfp; ++ PrintingMode = 1; ++ MightAskBeforeExecuting = 0; ++#ifdef AMIGA ++ freopen("prt:", "w", stdout); ++#else ++ /* Want to make all of stdout go to printer, and this ++ is easier than changing every output statement, ++ at least on UNIX... */ ++ tmpfp = popen(LPRCOMMAND, "w"); ++ if (!tmpfp) { ++ ExitWithError("Cannot execute lpr command"); ++ } ++ fflush(stdout); ++ close(1); ++ dup2(fileno(tmpfp), 1); ++#endif ++ break; ++ } ++ case 'm': ++ if (++i >= argc) usage(); ++ MailerName = argv[i]; ++ break; ++ case 'p': ++ MaybePageOutput = 1; ++ break; ++ case 'P': ++ MaybePageOutput = 1; ++ MustPageOutput = 1; ++ break; ++ case 'r': ++#ifdef MSDOS ++ fprintf(stderr, "metamail warning: -r flag not supported on this system\n"); ++#else ++ RunAsRootOK = 1; ++#endif ++ break; ++ case 'R': ++#ifdef RESET_PROGRAM ++ system(RESET_PROGRAM); ++ if (DoDebug) printf("Executed reset\n"); ++#else ++ fprintf(stderr, "metamail warning: -R flag not supported on this system\n"); ++#endif ++ break; ++ case 's': ++ if (++i >= argc) usage(); ++ MailSubject = argv[i]; ++ break; ++ case 'T': ++ TransparentMode = 0; ++ break; ++ case 'w': ++ JustWriteFiles = 1; ++ break; ++ case 'q': ++ Quiet = 1; ++ PrintSomeHeaders = 0; ++ break; ++ case 'x': ++ DefinitelyNotTty = 1; ++ MustNotBeTty = 1; ++ break; ++ case 'y': ++ YankMode = 1; ++ break; ++ case 'z': ++ DeleteSourceFileWhenDone = 1; ++ break; ++ default: ++ usage(); ++ } ++ } else { ++ if (SourceFileName) { ++ QueueNextFile(argv[i]); ++ } else { ++ SourceFileName = argv[i]; ++ } ++ } ++ } ++ if (TransparentMode) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (MaybePageOutput && DoInBackground) { ++ MustNotBeTty = 1; ++ /*fprintf(stderr, "metamail: -B is incompatible with -p, -P, and MM_USEPAGER\n"); ++ usage(); */ ++ } ++ if (!Is822Format && !ContentType) { ++ fprintf(stderr, "metamail: -b requires -c.\n"); ++ usage(); ++ } ++ if (DeleteSourceFileWhenDone && !SourceFileName) { ++ fprintf(stderr, "metamail: -z requires -f.\n"); ++ usage(); ++ } ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (!RunAsRootOK && (getuid() == 0 || geteuid() == 0)) { ++ fprintf(stderr, "You can not run MetaMail as root unless you use -r or set MM_RUNASROOT.\n"); ++ usage(); ++ } ++#endif ++ if (SourceFileName) { ++ InputFP = fopen(SourceFileName, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", SourceFileName); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, SourceFileName); ++ } ++ } else { /* input on stdin */ ++ UsingStandardInput = 1; ++ if (MustNotBeTty) { ++ InputFP = stdin; ++/* MaybePageOutput = 1; */ /* This messed up safe-tcl -- nsb 9/21/93 */ ++ MightAskBeforeExecuting = 0; ++ } else { ++#if defined(MSDOS) || defined(AMIGA) ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++#else ++ int newfd = dup(0); ++ FILE *newfp; ++ if (newfd > 0) { ++ InputFP = fdopen(newfd, "r"); ++ if (InputFP ++ && ((newfp = fopen("/dev/tty", "r")) != NULL) ++ && !dup2(fileno(newfp), 0)) { ++ DefinitelyNotTty = 0; ++ } else { ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++ } ++ } ++#endif ++ } ++ } ++ if (DefinitelyNotTty && MaybePageOutput) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (DefinitelyNotTty) { ++ MaybePageOutput = 0; /* Disable pager if I/O has been redirected */ ++ } ++ return(0); ++} ++ ++usage() { ++ fprintf(stderr, "Usage: metamail [-b] [-B] [-d] [-e] [-h] [-r] [-R] [-p] [-P] [-x] [-y] [-z] [-c content-type] [-E content-transfer-encoding] [-f from-name] [-m mailername] [-s subject] [message-file-name]\n"); ++ ExitWithError(NULL); ++} ++ ++RunInNewWindow(argv, argc, SourceFileNamePtr) ++char **argv, **SourceFileNamePtr; ++int argc; ++{ ++ char *FullCmd, TmpName[TMPFILE_NAME_SIZE]; ++ int i, createdfile=0; ++ if (!*SourceFileNamePtr) { ++ char *LineBuf; ++ FILE *fptmp; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ /* Create it, ugh. Also needs to affect later command. */ ++ MkTmpFileName(TmpName); ++ DeleteSourceFileWhenDone = 1; ++ fptmp = fopen(TmpName, WRITE_BINARY); ++ if (!fptmp) ExitWithError("Can't open temporary file\n"); ++ while (fgets(LineBuf, LINE_BUF_SIZE, stdin)) { ++ fputs(LineBuf, fptmp); ++ } ++ free(LineBuf); ++ fclose(fptmp); ++ *SourceFileNamePtr = TmpName; ++ createdfile = 1; ++ } ++ FullCmd = malloc(CMDSIZE); ++ if (!FullCmd) ExitWithError(nomem); ++ if (TransparentMode) { ++ /* In transparent mode, we want to produce stdout that is what we get in, and do EVERYTHING externally in a terminal window. This is to make the truly brain-dead mailers like mailtool happy. I am NOT happy about having to do this. */ ++ /* So, first we copy everything to stdout */ ++ sprintf(FullCmd, CATTEMPLATE, *SourceFileNamePtr); ++ system(FullCmd); /* Cheesy way to do it */ ++ fflush(stdout); fflush(stderr); ++ } ++ /* Then we run ourselves in a terminal window */ ++ MailSummary = "Metamail"; /* for window label */ ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, METAMAIL); ++ strcat(FullCmd, " -P "); ++ if (TransparentMode) strcat(FullCmd, "-T "); ++ for (i=1; i<argc; ++i) { ++ if (strncmp(argv[i], "-x", 2) ++ && strncmp(argv[i], "-B", 2) ++ && strncmp(argv[i], "-d", 2)) { ++ strcat(FullCmd, "\""); ++ strcat(FullCmd, argv[i]); ++ strcat(FullCmd, "\" "); ++ } ++ } ++ if (createdfile) { ++ strcat(FullCmd, "-z "); ++ strcat(FullCmd, *SourceFileNamePtr); ++ } ++ if (!MightAskBeforeExecuting) { ++ strcat(FullCmd, " -d "); ++ /* The special hack for -d is HORRIBLE, but xterm screws up with the -d option in the middle of the command line! */ ++ } ++ if (DoInBackground) strcat(FullCmd, " &"); ++ DefinitelyNotTty = 0; ++ SetUpEnvironment(); ++ if (DoDebug) fprintf(stderr, "Executing %s\n", FullCmd); ++ fflush(stdout); fflush(stderr); ++#ifdef MSDOS ++ system(FullCmd); ++ exit(0); /* system() returns random number under MS-DOS */ ++#else ++ exit(system(FullCmd)); ++#endif ++} ++ ++/* Only one or the other set up builtins gets used, ++ depending on whether or not we're in the middle of ++ a multipart/alternative body part */ ++struct MailcapEntry BuiltIns[] = { ++ {"text/*", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++struct MailcapEntry BuiltInsAlternative[] = { ++ {"text/plain", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++ProcessMailcapFiles(SquirrelFile) ++char *SquirrelFile; ++{ ++ char *s, *pathcopy = NULL; ++#ifdef MICROSOFT ++ /* For the Microsoft compiler, we use the library function _searchenv ++ * to find the mailcap file. It will search all the directories ++ * listed in the given environment variable (PATH in this case), then ++ * construct a path to the file if it finds it. ++ */ ++ /* BOGUS -- this only finds the FIRST mailcap file, we want ALL mailcap files */ ++ char path[128]; ++ ++ _searchenv("mailcap", "PATH", path); ++ if (path[0]) ++ if (!ProcessMailcapFile(path, SquirrelFile)) return(0); ++ return(-1); ++#else /* MICROSOFT */ ++#ifdef BORLAND ++ char *path = getenv("MAILCAPS"); ++ if (!path) ++ path = STDPATH; ++#else /* BORLAND */ ++#ifdef AMIGA ++ char *path = STDPATH; ++#else /* AMIGA */ ++ char *path = getenv("MAILCAPS"); ++ if (!path) { ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (p) path = malloc(5+strlen(p->pw_dir) + sizeof(STDPATH)); ++ if (!p || !path) ExitWithError(nomem); ++ strcpy(path, p->pw_dir); ++ strcat(path, STDPATH); ++ pathcopy = path; ++ } else ++#endif /* AMIGA */ ++#endif /* BORLAND */ ++ { ++ pathcopy = malloc(1+strlen(path)); ++ if (!pathcopy) ExitWithError(nomem); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = 0; ++ if (!ProcessMailcapFile(path, SquirrelFile)) return(0); ++ path = s; ++ } ++ if (pathcopy) free(pathcopy); ++ return(-1); ++#endif /* MICROSOFT */ ++} ++ ++TryBuiltIns(SquirrelFile) ++char *SquirrelFile; ++{ ++ int i; ++ /* Last resort -- for sites that didn't bother putting a "text" line in their mailcap files... */ ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in built-in content-type handling settings.\n", ContentType); ++ for (i=0; BuiltIns[i].contenttype; ++i) { ++ if (!TryMailcapEntry(SquirrelFile ? BuiltInsAlternative[i] : BuiltIns[i], SquirrelFile)) return(0); ++ } ++ return(-1); ++} ++ ++ProcessMailcapFile(file, SquirrelFile) ++char *file, *SquirrelFile; ++{ ++ struct MailcapEntry mc; ++ FILE *fp; ++ int res; ++ ++ res = IsDirectory(file); ++ if (res) { ++ if (res == 1) { ++ fprintf(stderr, "Mailcap path entry '%s' is a directory, should be a readable file.\n", file); ++ } else if (DoDebug) { ++ /* Quietly ignore non-existent mailcap files unless debugging */ ++ fprintf(stderr, "Mailcap path entry '%s' does not exist.\n", file); ++ } ++ return(-1); ++ } ++ fp = fopen(file, "r"); ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in mailcap file '%s'.\n", ContentType, file); ++ while (fp && !feof(fp)) { ++ mc.needtofree = 0; ++ if (GetMailcapEntry(fp, &mc)) { ++ if (!TryMailcapEntry(mc, SquirrelFile)) { ++ fclose(fp); ++ return(0); ++ } ++ } ++ } ++ if (fp) fclose(fp); ++ return(-1); ++} ++ ++static char *ThingsToSkip[] = { ++ "csh ", ++ "sh ", ++ "ksh ", ++ NULL ++}; ++ ++char *ShortCommand(progname) ++char *progname; ++{ ++ int i; ++ char *s, *oldprogname; ++ static char FullProgName[500]; ++ ++eatmore: ++ while (*progname && (*progname == '(' || isspace((unsigned char) *progname))) { ++ ++progname; ++ } ++ oldprogname = progname; ++ for (i = 0; oldprogname == progname && ThingsToSkip[i]; ++i) { ++ if (!strncmp(progname, ThingsToSkip[i], strlen(ThingsToSkip[i]))) { ++ progname += strlen(ThingsToSkip[i]); ++ } ++ } ++ if (*progname == '-') { ++ ++progname; ++ while (*progname && !isspace((unsigned char) *progname)) ++progname; ++ } ++ if (progname != oldprogname) goto eatmore; ++ strcpy(FullProgName, progname); ++ s = index(FullProgName, ' '); ++ if (s) *s = 0; ++ s = rindex(FullProgName, '/'); ++ if (s) { ++ return(s+1); ++ } else { ++ return(FullProgName); ++ } ++} ++ ++TryMailcapEntry(mc, SquirrelFile) ++struct MailcapEntry mc; ++char *SquirrelFile; ++{ ++ StripTrailingSpace(mc.contenttype); ++ if (DoDebug) fprintf(stderr, "Trying mailcap entry for '%s'.\n", mc.contenttype); ++ if (PrintingMode && !mc.printcommand) return(-1); ++ if (CtypeMatch(ContentType, mc.contenttype) && PassesTest(&mc)) { ++ if (SquirrelFile) { ++ return(SaveSquirrelFile(SquirrelFile)); ++ } else { ++ char TmpFileName[TMPFILE_NAME_SIZE]; ++ MkTmpFileName(TmpFileName); ++ return(ExecuteMailcapEntry(mc, TmpFileName, ContentType)); ++ } ++ } ++ if (mc.needtofree) { ++ free(mc.contenttype); ++ free(mc.command); ++ } ++ return(-1); ++} ++ ++SaveSquirrelFile(SquirrelFile) ++char *SquirrelFile; ++{ ++ int j; ++ FILE *outfp; ++ ++ if (DoDebug) printf("saving to file %s\n", SquirrelFile); ++ ++ outfp = fopen(SquirrelFile, WRITE_BINARY); ++ if (!outfp) { ++ fprintf(stderr, "Cannot open %s to squirrel away a portion of a multipart/alternative\n", SquirrelFile); ++ return(-1); ++ } ++ fprintf(outfp, "Content-type: %s", ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ fprintf(outfp, " ; "); ++ fprintf(outfp, CParams[j]); ++ fprintf(outfp, " = "); ++ fprintf(outfp, CParamValues[j]); ++ } ++ fprintf(outfp, "\n\n"); ++ TranslateInputToOutput(InputFP, outfp, EncodingCode, ContentType); ++ if (fclose(outfp)) { ++ ExitWithError("fclose failed"); ++ } ++ return(0); ++} ++ ++ExecuteMailcapEntry(mc, TmpFileName, ThisContentType) ++char *TmpFileName, *ThisContentType; ++struct MailcapEntry mc; ++{ ++ int resultcode=0, DidExecute, UsedTmpFileName; ++ struct part *PartsWritten=NULL; ++ char *s, *cmd; ++ ++ cmd = malloc(CMDSIZE); ++ if (!cmd) ExitWithError(nomem); ++ if (PrintingMode && !mc.printcommand) return(-1); ++ BuildCommand(cmd, PrintingMode ? mc.printcommand : mc.command, TmpFileName, &UsedTmpFileName, &PartsWritten); ++ if (DoDebug) fprintf(stderr, "Match! Built command %s.\n", cmd); ++ if (mc.copiousoutput && MaybePageOutput) { ++ strcat(cmd, " | "); ++ s = getenv("METAMAIL_PAGER"); ++ if (s && strncmp(s, "metamail", 8)) { ++ /* If METAMAIL_PAGER is set to "metamail" we override it */ ++ strcat(cmd, s); ++#ifndef AMIGA ++ if (!strncmp(s, "less", 4) && strncmp(s+5, "-r", 2)) { ++ fprintf(stderr, "Warning: 'less' without '-r' behaves badly for some mail types,\n\tnotably richtext.\n"); ++ } ++#endif ++ } else { ++ strcat(cmd, "more"); ++ } ++ } ++ if (!DefinitelyNotTty) { ++ SaveTtyState(); ++ } ++ if (!NeedToAskBeforeExecuting(ThisContentType) ++ || OKToRun(ThisContentType, cmd, mc.label)) { ++ char *FullCmd; ++ int ReallyNotTty; ++#ifndef NO_RLIMITS ++ /* Limit size of core dumps */ ++ struct rlimit rlp; ++ ++ rlp.rlim_cur = 0; ++ rlp.rlim_max = 0; ++ setrlimit(RLIMIT_CORE, &rlp); ++#endif ++ FullCmd = malloc(CMDSIZE); ++ if (!FullCmd) ExitWithError(nomem); ++ ReallyNotTty = DefinitelyNotTty; ++ if (mc.needsterminal ++ && DefinitelyNotTty) { ++ int j; ++ sprintf(cmd, " %s -P -b -c '%s", METAMAIL, ThisContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(cmd, " ; "); ++ strcatquoting(cmd, CParams[j]); ++ strcat(cmd, " = "); ++ strcatquoting(cmd, CParamValues[j]); ++ } ++ strcat(cmd, "' "); ++ strcat(cmd, TmpFileName); ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, cmd); ++ DefinitelyNotTty = 0; /* For recursive call */ ++ } else { ++ strcpy(FullCmd, cmd); ++ } ++ DidExecute = 0; ++ if (UsedTmpFileName || PartsWritten) { ++ int isempty; ++ if (PartsWritten) { ++ isempty = 0; ++ } else { ++ isempty = WriteTmpFile(TmpFileName, ThisContentType); ++ } ++ if (!isempty || strncmp(ThisContentType, "text", 4)) { ++ if (DoInBackground && !PartsWritten && !mc.needsterminal) { ++#ifdef AMIGA ++ char TmpCmd[80], TmpScriptName[40]; ++ sprintf(TmpCmd, "run execRmScript %s", ++ MkRmScript(FullCmd, TmpFileName, TmpScriptName)); ++#else ++ char TmpCmd[CMDSIZE]; ++ sprintf(TmpCmd, "(%s; rm %s) &", FullCmd, TmpFileName); ++#endif ++ DefinitelyNotTty = 1; /* in background */ ++ SetUpEnvironment(); ++ resultcode = ExecuteCommand(TmpCmd, 1); ++ ++DidExecute; ++ } else { ++ SetUpEnvironment(); ++ resultcode = ExecuteCommand(FullCmd, 1); ++ unlink(TmpFileName); ++ ++DidExecute; ++ } ++ } else { /* empty text part, hack to not say "more" */ ++ unlink(TmpFileName); ++ } ++ } else { ++ FILE *tmpfp; ++ SetUpEnvironment(); ++ (void) ExecuteCommand(FullCmd, 0); ++ tmpfp = popen(FullCmd, WRITE_BINARY); ++ TranslateInputToOutput(InputFP, tmpfp, EncodingCode, ThisContentType); ++ resultcode = tmpfp ? pclose(tmpfp) : -1; ++ ++DidExecute; ++ } ++ DefinitelyNotTty = ReallyNotTty; ++ if (!DefinitelyNotTty && DidExecute) { ++ RestoreTtyState(); ++ if (mc.copiousoutput && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ } ++ if (!resultcode) { ++ free(FullCmd); ++ } else { ++ fprintf(stderr, "Command failed: %s\n", FullCmd); ++ if (MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ ++ProcessingErrors; ++ } ++ } else { ++ /* user does not want to execute command */ ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ if (DoDebug) fprintf(stderr, "Not executing command.\n"); ++ if (!PartsWritten) ConsumeRestOfPart(NULL); ++ } ++ if (PartsWritten) { ++ struct part *tp; ++ char HeadFile[MAX_FILE_NAME_SIZE]; ++ ++ while (PartsWritten) { ++ tp=PartsWritten->next; ++ free(PartsWritten->ctype); ++ strcpy(HeadFile, PartsWritten->fname); ++ strcat(HeadFile, "H"); ++ unlink(HeadFile); ++ unlink(PartsWritten->fname); ++ free(PartsWritten->fname); ++ free(PartsWritten); ++ PartsWritten=tp; ++ } ++ } ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ free(cmd); ++ return(0); ++} ++ ++PassesTest(mc) ++struct MailcapEntry *mc; ++{ ++ int result; ++ char *cmd, TmpFileName[TMPFILE_NAME_SIZE]; ++ ++ if (!mc->testcommand) return(1); ++ MkTmpFileName(TmpFileName); ++ cmd = malloc(CMDSIZE); ++ if (!cmd) ExitWithError(nomem); ++ BuildCommand(cmd, mc->testcommand, TmpFileName, NULL, NULL); ++ if (DoDebug) printf("Executing test command: %s\n", cmd); ++ result = system(cmd); ++#ifdef MSDOS ++ result = 0; /* system doesn't return a valid exit code on MS-DOS */ ++ /* note that this makes the test feature useless... */ ++#endif ++ free(cmd); ++ return(!result); ++} ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = malloc(strlen(s)*2+1); /* absolute max, if all % signs */ ++ if (!s2) ExitWithError(nomem); ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = 0; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = 0; ++ return(NULL); ++} ++ ++GetMailcapEntry(fp, mc) ++FILE *fp; ++struct MailcapEntry *mc; ++{ ++ int rawentryalloc = 2000, len; ++ char *rawentry, *s, *t, *LineBuf; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ rawentry = malloc(1 + rawentryalloc); ++ if (!rawentry) ExitWithError(nomem); ++ *rawentry = 0; ++ while (fgets(LineBuf, LINE_BUF_SIZE, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (len == 0) continue; ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = 0; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += 2000; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ if (!rawentry) ExitWithError(nomem); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = 0; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ free(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ free(rawentry); ++ return(0); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "metamail: Ignoring invalid mailcap entry: %s\n", rawentry); ++ free(rawentry); ++ return(0); ++ } ++ *s++ = 0; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->needtofree = 1; ++ mc->testcommand = NULL; ++ mc->label = NULL; ++ mc->printcommand = NULL; ++ mc->contenttype = malloc(1+strlen(rawentry)); ++ if (!mc->contenttype) ExitWithError(nomem); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ if (!t) { ++ free(rawentry); ++ return(1); ++ } ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = 0; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = 0; ++ if (*arg) { ++ arg = Cleanse(arg); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = eq; ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = eq; ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = eq; /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "print")) { ++ mc->printcommand = eq; ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++ if (*arg && DoDebug) fprintf(stderr, "metamail: Ignoring mailcap flag: %s\n", arg); ++ } ++ } ++ s = t; ++ } ++ free(rawentry); ++ return(1); ++} ++ ++ExitWithError(txt) ++char *txt; ++{ ++ if (txt) fprintf(stderr, "metamail: %s\n", txt); ++ exit(-1); ++} ++ ++char * ++FreshHeaderCopy(s) ++char *s; ++{ ++ char *t, *newcopy; ++ int len; ++ ++ while (s && *s && isspace((unsigned char) *s) && *s != '\n') ++s; ++ t = index(s, '\n'); ++ while (t && (*(t+1) == ' ' || *(t+1) == '\t')) { ++ t = index(t+1, '\n'); ++ } ++ len = t ? (t-s+1) : (strlen(s)+1); ++ newcopy = malloc(len+3);/* two extra bytes for a bizarre bug caused by the fact that FindParam calls FreshHeaderCopy and sometimes tacks on "--". */ ++ if (!newcopy) ExitWithError(nomem); ++ strncpy(newcopy, s, len); ++ newcopy[len] = 0; ++ return(newcopy); ++} ++ ++Read822Prefix(PrintHeads, nestingdepth) ++int PrintHeads, nestingdepth; ++{ ++ int SawNewline = 1, bytes = 0, alloced = 1000, HasEncodedChars=0; ++ int c, oldbytes; ++ char *s, *t, *tmp; ++ ++ if (!PrintSomeHeaders) PrintHeads = 0; ++ mailheaders = malloc(alloced+1); ++ if (!mailheaders) ExitWithError(nomem); ++ strcpy(mailheaders, "MM_HEADERS=\n"); ++ bytes = 12; ++yankagain: ++ t = mailheaders + bytes; ++ oldbytes = bytes-1; /* a hack for YankMode */ ++ while ((c = getc(InputFP)) != EOF) { ++ if (++bytes >= alloced) { ++ alloced += 1000; ++ mailheaders = realloc(mailheaders, alloced); ++ if (!mailheaders) ExitWithError(nomem); ++ t = mailheaders + bytes - 1; ++ } ++ if (c == '\n') { ++ if (SawNewline) break; ++ SawNewline = 1; ++ } else SawNewline = 0; ++ *t++ = c; ++ } ++ *t = 0; ++ --bytes; ++ if (c == EOF) { ++ if (nestingdepth) { ++ fprintf(stderr, "metamail: Incomplete multipart message -- unexpected EOF\n"); ++/* exit(ProcessingErrors); */ ++ } else { ++ if (YankMode) { ++/* ExitWithError("Could not extract a MIME message from the body\n"); */ ++ fprintf(stderr, "metamail: Could not extract a MIME message from the body\n"); ++ } else { ++ fprintf(stderr, "metamail: Could not find end of mail headers.\n"); ++/* ExitWithError("Could not find end of mail headers"); */ ++ } ++ } ++ BoundaryCt=0; ++ return -1; ++ } ++ for (s=mailheaders+oldbytes; *s; ++s) { ++ if (*s == '\n' && (*(s+1) != ' ') && (*(s+1) != '\t')) { ++ if (!ContentType && !lc2strncmp(s, "\ncontent-type:", 14)) { ++ char *dum; ++ ContentType = FreshHeaderCopy(s+14); ++ /* Eliminate white space embedded in content-type */ ++ while (1) { ++ dum = index(ContentType, '/'); ++ if (!dum) break; ++ if (isspace(*(dum-1))) { ++ for (--dum; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else if (isspace(*++dum)) { ++ for ( ; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else { ++ break; ++ } ++ } ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!ContentEncoding && !lc2strncmp(s, "\ncontent-transfer-encoding:", 27)) { ++ ContentEncoding = FreshHeaderCopy(s+27); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!lc2strncmp(s, "\nsubject:", 9)) { ++ if (PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+9); ++ } else if (!lc2strncmp(s, "\nfrom:", 6)) { ++ if (PrintHeads) maybephead(s+1); ++ MailFrom = FreshHeaderCopy(s+6); ++ } else if (!lc2strncmp(s, "\ncontent-description:", 4)) { ++ if(PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+21); ++ } else { ++ /* Print any with encoded variables */ ++ char *dum = s; ++ while (dum) { ++ dum = index(dum, '?'); ++ if (dum && *++dum == '=') break; ++ } ++ if (dum) { ++ char *nl = s+1; ++ while (nl) { ++ nl = index(nl, '\n'); ++ if (nl && !isspace((unsigned char) *++nl)) break; ++ } ++ if (nl && nl > dum) ++HasEncodedChars; ++ } ++ if (HasEncodedChars) { ++ phead(s+1); ++ } else if (PrintHeads) { ++ maybephead(s+1); ++ } ++ } ++ } ++ } ++ /* Ugly, but effective */ ++ if (YankMode && !ContentType) { ++ goto yankagain; ++ } ++ if (PrintHeads) printf("\n"); ++ if (!ContentType) { ++ ContentType = "text/plain"; ++ CParamsUsed=0; ++ } ++ for (tmp=ContentType; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ return 0; ++} ++ ++PrepareMessage() { ++ int c; ++ ++ EncodingCode = ENCODING_NONE; ++ if (ContentEncoding) { ++ /* strip leading white space */ ++ while (*ContentEncoding && isspace((unsigned char) *ContentEncoding)) ++ContentEncoding; ++ StripTrailingSpace(ContentEncoding); ++ if (!lc2strcmp(ContentEncoding, "base64")) { ++ EncodingCode = ENCODING_BASE64; ++ } else if (!lc2strcmp(ContentEncoding, "quoted-printable")) { ++ EncodingCode = ENCODING_QUOTEDPRINTABLE; ++ } else if (!lc2strncmp (ContentEncoding, "x-uue", 5)) { ++ fprintf (stderr, "WARNING: Using nonstandard %s encoding, trying uuencode algorithm.\n", ContentEncoding); ++ EncodingCode = ENCODING_UUENCODE; ++ } else { ++ if (lc2strcmp(ContentEncoding, "none") ++ && !lc2strcmp(ContentEncoding, "8bit") ++ && !lc2strcmp(ContentEncoding, "7bit")) { ++ fprintf(stderr, "Ignoring unrecognized Content-Transfer-Encoding value: %s\n", ContentEncoding); ++ } ++ } ++ } ++ if (EatLeadingNewlines) { ++ while ((c = getc(InputFP)) != EOF) { ++ if (c != '\n') { ++ ungetc(c, InputFP); ++ break; ++ } ++ } ++ } ++ SetUpEnvironment(); ++} ++ ++SetUpEnvironment() { ++ int i, j, environsize; ++ char **newenviron, *mailervar, *summaryvar, *ctypevar, *s; ++ static char ttyenv[15], debugenv[15], *noaskenv, pagerenv[15], *quietenv, rootenv[25]; ++ ++#if !defined(AMIGA) && !defined(MSDOS) ++ /* Hack to make the code look similar for unix & dos */ ++#define putenv(var) newenviron[i++] = var; ++ for (environsize=0; environ[environsize]; ++environsize) { ++ ; ++ } ++ newenviron = (char **) malloc(sizeof(char *) * (17+environsize)); ++ if (!newenviron) ExitWithError(nomem); ++#endif ++ mailervar = malloc(13+strlen(MailerName)); ++ if (!mailervar) ExitWithError(nomem); ++ sprintf(mailervar, "MM_MAILER=%s", MailerName); ++ summaryvar = malloc(26 + strlen(MailFrom) + strlen(MailSubject)); ++ if (!summaryvar) ExitWithError(nomem); ++ sprintf(summaryvar, "MM_SUMMARY=%s (from %s)", MailSubject, MailFrom); ++ MailSummary = summaryvar+11; ++ EliminateNastyChars(MailSummary); ++ i = 0; ++ if (ContentType) { ++ int ctypelen = 22+strlen(ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ ctypelen += 6 + strlen(CParams[j]) + strlen(CParamValues[j]); ++ } ++ ctypevar = malloc(ctypelen); ++ if (!ctypevar) ExitWithError(nomem); ++ for (s=ContentType; *s; ++s) { ++ if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ } ++ while (isspace((unsigned char) *--s)) *s = 0; ++ sprintf(ctypevar, "MM_CONTENTTYPE=%s", ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(ctypevar, " ; "); ++ strcat(ctypevar, CParams[j]); ++ strcat(ctypevar, " = "); ++ strcat(ctypevar, CParamValues[j]); ++ } ++ putenv(ctypevar); ++ } ++ putenv(mailheaders ? mailheaders : "MM_HEADERS=unknown"); ++ putenv(mailervar); ++ putenv(summaryvar); ++ sprintf(ttyenv, "MM_NOTTTY=%d", DefinitelyNotTty); ++ putenv(ttyenv); ++ sprintf(debugenv, "MM_DEBUG=%d", DoDebug); ++ putenv(debugenv); ++ s = getenv("MM_QUIET"); ++ if (!s) s = QuietDefault; ++ quietenv = malloc(15 + strlen(s)); ++ if (!quietenv) ExitWithError(nomem); ++ if (Quiet) { ++ strcpy(quietenv, "MM_QUIET=1"); ++ } else { ++ sprintf(quietenv, "MM_QUIET=%s", s); ++ } ++ putenv(quietenv); ++ s = getenv("MM_NOASK"); ++ if (!s) s = NoAskDefault; ++ noaskenv = malloc(15 + strlen(s)); ++ if (!noaskenv) ExitWithError(nomem); ++ if (MightAskBeforeExecuting) { ++ sprintf(noaskenv, "MM_NOASK=%s", s); ++ } else { ++ strcpy(noaskenv, "MM_NOASK=1"); ++ } ++ putenv(noaskenv); ++ s = getenv("MM_RUNASROOT"); ++ if (!s) s = "0"; ++ sprintf(rootenv, "MM_RUNASROOT=%s", s); ++ putenv(rootenv); ++ sprintf(pagerenv, "MM_USEPAGER=%d", MaybePageOutput); ++ putenv(pagerenv); ++#if !defined(AMIGA) && !defined(MSDOS) ++ for (j=0; j<environsize; ++j) { ++ if (strncmp(environ[j], "MM_", 3) || !strncmp(environ[j], "MM_CHARSET", 10)) { ++ putenv(environ[j]); ++ } ++ } ++ newenviron[i] = NULL; ++ environ = newenviron; ++ if (DoDebug) { ++ printf("Here is the environment:\n\n"); ++ system("printenv"); ++ } ++#endif ++} ++ ++ ++#ifdef AMIGA ++int ++putenv(def) ++char *def; ++{ ++ char *cp; ++ char nameBuf[100]; ++ FILE *envFile; ++ ++ if ((cp = index(def, '=')) == NULL || def == cp) { ++ return(1); ++ } ++ ++ strcpy(nameBuf, "ENV:"); ++ strncat(nameBuf, def, cp - def); ++ nameBuf[(cp - def) + 4] = 0; ++ cp++; /* Now points to value part of environment string. */ ++ ++ if ((envFile = fopen(nameBuf, "w")) == NULL) { ++ return(2); ++ } ++ ++ fputs(cp, envFile); ++ fclose(envFile); ++ ++ return(0); ++} ++#endif ++ ++OKToRun(ctype, progname, label) ++char *ctype, *progname, *label; ++{ ++ char AnsBuf[100], *s; ++ ++ if (DoInBackground) return(1); ++ if (DefinitelyNotTty || MustNotBeTty) return(1); ++ while (1) { ++ printf("\n"); ++ if (label) { ++ printf("This message contains %s.\nDo you want to view it using the '%s' command (y/n) [y] ? ", label, ShortCommand(progname)); ++ } else { ++ printf("This message contains '%s'-format data.\nDo you want to view it using the '%s' command (y/n) [y] ? ", ctype, ShortCommand(progname)); ++ } ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) return(0); /* EOF */ ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') return(1); ++ if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ return(0); ++ } ++ printf("Please answer yes or no.\n"); ++ } ++} ++ ++EliminateNastyChars(s) ++char *s; ++{ ++ if (s) for( ; *s ;++s) { ++ if (isalnum((unsigned char) *s)) continue; ++ if (index(" ,.;:/?\\|[]{}()*&^%#@-_=+~<>\"", *s)) continue; ++ if (*s == '\'' || *s == '`') { ++ *s = '"'; ++ } else { ++ *s = ' '; ++ } ++ } ++} ++ ++StripTrailingSpace(s) ++char *s; ++{ ++ char *t = s+strlen(s) -1; ++ while (isspace((unsigned char) *t) && (t >= s)) *t-- = 0; ++} ++ ++static char *KeyHeads=NULL; ++static char **KeyHeadList; ++static int KeyKeep = 0; ++ ++void setKeyHeads() ++{ ++ char *s; ++ int numkeys = 0; ++ ++ if ((KeyHeads = getenv("KEYHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ } else if ((KeyHeads = getenv("KEYIGNHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ KeyKeep = 1; ++ } else { ++ static char khtmp[] = "to:cc:subject:from:content-description:date"; ++ KeyHeads = khtmp; ++ } ++ for (s=KeyHeads; *s; ++s) if (*s == ':') ++numkeys; ++ numkeys += 2; ++ KeyHeadList = (char **) malloc((numkeys) * sizeof(char *)); ++ if (!KeyHeadList) ExitWithError(nomem); ++ numkeys = 0; ++ KeyHeadList[0] = KeyHeads; ++ for(s=KeyHeads; *s; ++s) { ++ if (*s == ':') { ++ *s = '\0'; ++ KeyHeadList[++numkeys] = s+1; ++ } ++ } ++ KeyHeadList[++numkeys] = NULL; ++} ++ ++/* find the first colon in a header line which appears before any spaces or control characters */ ++char * ++findcolon(hdr) ++char *hdr; ++{ ++ while (*hdr && !isspace(*hdr) && !iscntrl(*hdr)) ++ if (*hdr == ':') return hdr; ++ else hdr++; ++ return 0; ++} ++ ++/* check the header given to see if it matches any in the KeyHeadList */ ++maybephead(hdr) ++char *hdr; ++{ ++ char *s; ++ int numkeys=0; ++ ++ if (!KeyHeads) setKeyHeads(); ++ ++ s = findcolon(hdr); ++ if (s) { ++ int len = s - hdr; ++ for (numkeys=0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(hdr, KeyHeadList[numkeys], len)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ return; ++ } ++ if (!strncmp(hdr, "From ", 5) || !strncmp(hdr, ">From ", 6)) { ++ for (numkeys = 0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(">from", KeyHeadList[numkeys], 5)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ } ++} ++ ++/* This next routine prints out a mail header, and needs to deal with the new extended charset headers. */ ++phead(s) ++char *s; ++{ ++ char *t = s; ++ ++ while (1) { ++ t = index(t, '\n'); ++ if (!t) break; ++ if (!isspace((unsigned char) *(t+1))) { ++ *t = 0; ++ break; ++ } else ++t; ++ } ++ PrintHeader(s, 1); ++ printf("\n"); ++ if (t) *t = '\n'; ++} ++ ++static char PrevCharset[100] = "us-ascii"; ++ ++/* This is the part that actually handles the charset issues */ ++void PrintHeader(s, ShowLeadingWhitespace) ++char *s; ++int ShowLeadingWhitespace; ++{ ++ char *charset, *encoding, *txt, *txtend, TmpFile[TMPFILE_NAME_SIZE]; ++ int ecode = ENCODING_NONE, CorrectedCharset = 0; ++ FILE *fp; ++ ++ while (*s && (*s != '=')) { ++ if (isspace((unsigned char) *s)) { ++ if (ShowLeadingWhitespace) { ++ putchar(' '); ++ } ++ } else { ++ putchar(*s); ++ if (!CorrectedCharset) { ++ CorrectedCharset = 1; ++ strcpy(PrevCharset, "us-ascii"); ++ } ++ } ++ if (!ShowLeadingWhitespace) { ++ /* Only at most one leading space is ignored */ ++ ShowLeadingWhitespace = 1; ++ } ++ ++s; ++ } ++ if (!*s) return; ++ if (*(s+1) != '?') { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ charset = s+2; ++ encoding = index(charset, '?'); ++ if (!encoding) { ++ putchar('='); ++ PrintHeader(++s,1); ++ return; ++ } ++ txt = index(encoding+1, '?'); ++ if (!txt) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ txtend = txt; ++ do { ++ txtend = index(txtend+1, '?'); ++ } while(txtend && (*(txtend+1) != '=')); ++ if (!txtend) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ } ++ /* Proper parse! Ready to dissect... */ ++ *encoding = 0; ++ *txt = 0; ++ *txtend = 0; ++ if ((*(encoding+1) == 'q') || (*(encoding+1) == 'Q')) { ++ ecode = ENCODING_QUOTEDPRINTABLE; ++ } else if ((*(encoding+1) == 'b') || (*(encoding+1) == 'B')) { ++ ecode = ENCODING_BASE64; ++ } else { ++ fprintf(stderr, "Bad encoding value in non-ASCII header string: %s\n", encoding+1); ++ } ++ if (lc2strcmp(charset, PrevCharset)) { ++ char *s2, *charsetinuse; ++ ++ strcpy(PrevCharset, charset); ++ for (s2=PrevCharset; *s2; ++s2) { ++ if (isupper((unsigned char) *s2)) *s2 = tolower((unsigned char) *s2); ++ } ++ charsetinuse = getenv("MM_CHARSET"); ++ if (!charsetinuse || lc2strcmp(charsetinuse, PrevCharset)) { ++ printf("[** %s charset **] ", charset); ++ } ++ } ++ if (ecode == ENCODING_NONE) { ++ printf(txt+1); ++ } else { ++ /* What follows is REALLY bogus, but all my encoding stuff is pipe-oriented right now... */ ++ MkTmpFileName(TmpFile); ++ fp = fopen(TmpFile, WRITE_BINARY); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ char *t; ++ for (t=txt+1; *t; ++t) { ++ if (*t == '_') { ++ putc(' ', fp); ++ } else if (*t == '\n') { ++ putc(' ', fp); ++ } else { ++ putc(*t, fp); ++ } ++ } ++ fclose(fp); ++ fp = fopen(TmpFile, "r"); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ TranslateInputToOutput(fp, stdout, ecode, "text"); ++ fclose(fp); ++ } ++ unlink(TmpFile); ++ } ++ } ++ *encoding = '?'; ++ *txt = '?'; ++ *txtend = '?'; ++ PrintHeader(txtend + 2, 0); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName, UsedTmpFileName, PartsWritten) ++char *Buf, *controlstring, *TmpFileName; ++int *UsedTmpFileName; ++struct part **PartsWritten; ++{ ++ char *from, *to, *s, *p, *tmp; ++ int prefixed = 0, UsedBigFile=0, UsedLittleFiles=0, numparts=0; ++ struct part *firstpart=NULL, *thispart=NULL, *tmppart=NULL; ++ ++ if (UsedTmpFileName) *UsedTmpFileName = 0; ++ if (PartsWritten) *PartsWritten = NULL; ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 'n': ++ case 'F': ++ if (!PartsWritten) { ++ fprintf(stderr, "metamail: Bad mailcap \"test\" clause: %s\n", controlstring); ++ ExitWithError("%%n and %%F may not be used in \"test\" clauses. Execution terminated."); ++ } ++ if (UsedBigFile) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (!UsedLittleFiles) { ++ /* Set up parts */ ++ char *LineBuf, *boundary, TmpFileNameBuf[TMPFILE_NAME_SIZE]; ++ char *oldct, *oldce, *newct; ++ int currct, boundarylen, newctlen, j; ++ int oldcparmsused, oldcparamsalloced; ++ char **oldcparams, **oldcparamvalues; ++ FILE *headfp; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ boundary = FindParam("boundary"); ++ if (!boundary) { ++ fprintf(stderr, "Bad message format: This multipart message has no boundary parameter,\n"); ++ fprintf(stderr, "but the mailcap entry for %s uses %%F or %%n.\n\n", ContentType); ++ ExitWithError("A change to the mailcap file might make this message viewable."); ++ } ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = (char **) realloc(Boundaries, BoundaryAlloc*sizeof(char *)); ++ } else { ++ Boundaries = (char **) malloc(BoundaryAlloc*sizeof(char *)); ++ } ++ if (!Boundaries) ExitWithError(nomem); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ free(LineBuf); ++ currct = BoundaryCt; ++ oldct=ContentType; ++ oldce=ContentEncoding; ++ oldcparmsused = CParamsUsed; ++ oldcparamsalloced = CParamsAlloced; ++ oldcparams = CParams; ++ oldcparamvalues = CParamValues; ++ CParams = NULL; ++ CParamValues = NULL; ++ CParamsUsed = 0; ++ CParamsAlloced = 0; ++ while(currct == BoundaryCt) { ++ tmppart = (struct part *) malloc(sizeof(struct part)); ++ if (!tmppart) ExitWithError(nomem); ++ if (firstpart) { ++ thispart->next = tmppart; ++ thispart = tmppart; ++ } else { ++ firstpart = thispart = tmppart; ++ } ++ tmppart->next = NULL; ++ ContentType=NULL; ++ ContentEncoding=NULL; ++ Read822Prefix(0,0); ++ PrepareMessage(); ++ newctlen=5+strlen(ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ newctlen += 11+strlen(CParams[j]) + strlen(CParamValues[j]); ++ } ++ newct= malloc(newctlen); ++ if (!newct) ExitWithError(nomem); ++ strcpy(newct, "'"); ++ strcat(newct, ContentType); ++ for (j=0; j<CParamsUsed; ++j) { ++ strcat(newct, "; "); ++ strcat(newct, CParams[j]); ++ if (CParamValues[j][0] == '\"') { ++ strcat(newct, " = "); ++ strcat(newct, CParamValues[j]); ++ } else { ++ strcat(newct, " = \""); ++ strcat(newct, CParamValues[j]); ++ strcat(newct, "\""); ++ } ++ } ++ strcat(newct, "'"); ++ thispart->ctype = newct; ++ MkTmpFileName(TmpFileNameBuf); ++ thispart->fname = malloc(1+strlen(TmpFileNameBuf)); ++ if (!thispart->fname) ExitWithError(nomem); ++ strcpy(thispart->fname, TmpFileNameBuf); ++ WriteTmpFile(thispart->fname, thispart->ctype); ++ strcat(TmpFileNameBuf, "H"); ++ headfp = fopen(TmpFileNameBuf, "w"); ++ if (headfp) { ++ fputs(mailheaders+12, headfp); ++ /* The +12 gets rid of MM_HEADERS=\n */ ++ fclose(headfp); ++ } ++ ++numparts; ++ } ++ ContentType=oldct; ++ ContentEncoding=oldce; ++ CParamsUsed = oldcparmsused; ++ CParamsAlloced = oldcparamsalloced; ++ CParams = oldcparams; ++ CParamValues = oldcparamvalues; ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ *PartsWritten = firstpart; ++ UsedLittleFiles=1; ++ } ++ if (*from == 'n') { ++ char numbuf[10]; ++ sprintf(numbuf, "%d", numparts); ++ strcpy(to, numbuf); ++ to += strlen(numbuf); ++ } else { /* %F */ ++ for (tmppart = firstpart; tmppart != NULL; tmppart = tmppart->next) { ++ sprintf(to, "%s %s ", tmppart->ctype, tmppart->fname); ++ to += (strlen(tmppart->ctype) + strlen(tmppart->fname) + 2); ++ } ++ } ++ break; ++ case 's': ++ if (UsedLittleFiles) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ if (UsedTmpFileName) ++(*UsedTmpFileName); ++ } ++ UsedBigFile = 1; ++ break; ++ case '{': ++ s = index(from, '}'); ++ if (!s) { ++ fprintf(stderr, "Ignoring ill-formed parameter reference in mailcap file: %s\n", from); ++ break; ++ } ++ ++from; ++ *s = 0; ++ /* put in lower case */ ++ for (tmp=from; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ p = FindParam(from); ++ if (p && p[0] == '"') { ++ p=UnquoteString(p); ++ } ++ if (!p) p = ""; ++ *to++ = '\''; ++ strcpynoquotes(to, p); ++ to += strlen(p); ++ *to++ = '\''; ++ *s = '}'; /* restore */ ++ from = s; ++ break; ++ case 't': ++ /* type/subtype */ ++ strcpynoquotes(to, ContentType); ++ to += strlen(ContentType); ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = 0; ++} ++ ++strcpynoquotes(t,f) ++char *t, *f; ++{ ++ static char *badchars="|<>%*?\"`'"; ++ ++ while (*f) { ++ if (index(badchars, *f)) *t++ = ' '; else *t++ = *f; ++ ++f; ++ } ++} ++ ++WriteTmpFile(fname, ctype) ++char *fname; ++char *ctype; ++{ ++ FILE *fpout; ++ int retval = 0; ++ ++ fpout = fopen(fname, WRITE_BINARY); ++ if (!fpout) { ++ perror("WriteTmpFile"); ++ ExitWithError("Can't create temporary file"); ++ } ++ TranslateInputToOutput(InputFP, fpout, EncodingCode, ctype); ++ if (ftell(fpout) == 0) retval = 1; ++ if (fclose(fpout)) ExitWithError("Can't write temporary file"); ++ return(retval); ++} ++ ++ ++TranslateInputToOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int InMultipart = BoundaryCt > 0 ? 1 : 0; ++ ++ switch(Ecode) { ++ case ENCODING_BASE64: ++ from64(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENCODING_QUOTEDPRINTABLE: ++ fromqp(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt); ++ break; ++ case ENCODING_UUENCODE: ++ fromuue(InputFP, OutputFP, InMultipart ? Boundaries: NULL, &BoundaryCt); ++ break; ++ default: ++ ConsumeRestOfPart(OutputFP); ++ } ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (UsingStandardInput && feof(InputFP) && !freopen("/dev/tty", "r", stdin)) { ++ fprintf(stderr, "Warning: Cannot freopen /dev/tty to stdin"); ++ } else InputFP = stdin; ++#endif ++} ++ ++CreateNewWindowPrefix(Prefix) ++char *Prefix; ++{ ++ char *override = getenv("TERMINAL_CMD"); ++ if (override) { ++ strcpy(Prefix, override); ++#ifdef AMIGA ++ } else { ++ /* The window should *not* run in background. We are thus unable ++ * to use NewWsh or NewCLI. ++ */ ++ /* strcpy(Prefix, "newwsh CMD "); */ ++ Prefix[0] = 0; ++#else ++ } else if (getenv("DISPLAY")) { ++ /* X11 */ ++ strcpy(Prefix, "xterm -title '"); ++ strcat(Prefix, MailSummary); ++ strcat(Prefix, "' -e "); ++ } else if (getenv("WINDOW_PARENT")) { ++ /* SunView */ ++ strcpy(Prefix, "shelltool "); ++ } else if (getenv("WMHOST")) { ++ /* old Andrew WM */ ++ strcpy(Prefix, "h19 "); ++ } else { ++ /* last resort is to look for /dev/tty */ ++ if (!freopen("/dev/tty", "r", stdin)){ ++ ExitWithError("Don't know how to create a terminal window"); ++ } ++ InputFP = stdin; ++ fprintf(stderr, "Warning, reopened /dev/tty, could be strange.\n"); ++ Prefix[0] = 0; ++#endif ++ } ++} ++ ++int HasSavedTtyState=0; ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++static struct termio MyTtyStateIn, MyTtyStateOut; ++#else ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++#endif ++#endif ++ ++SaveTtyState() { ++ /* Bogus -- would like a good portable way to reset the terminal state here */ ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++ ioctl(fileno(stdin), TCGETA, &MyTtyStateIn); ++ ioctl(fileno(stdout), TCGETA, &MyTtyStateOut); ++#else ++ gtty(fileno(stdin), &MyTtyStateIn); ++ gtty(fileno(stdout), &MyTtyStateOut); ++#endif ++ HasSavedTtyState = 1; ++#endif ++} ++ ++RestoreTtyState() { ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++ if (HasSavedTtyState) { ++ ioctl(fileno(stdout), TCSETA, &MyTtyStateOut); ++ ioctl(fileno(stdin), TCSETA, &MyTtyStateIn); ++ } ++#else ++ if (HasSavedTtyState) { ++ stty(fileno(stdout), &MyTtyStateOut); ++ stty(fileno(stdin), &MyTtyStateIn); ++ } ++#endif ++#endif ++} ++ ++NeedToAskBeforeExecuting(type) ++char *type; ++{ ++ struct NoAskItem *nai; ++ if (!MightAskBeforeExecuting || DoInBackground) return(0); ++ for (nai = FirstNoAskItem; nai; nai = nai->next) { ++ if (CtypeMatch(type, nai->type)) return(0); ++ } ++ return(1); ++} ++ ++NeedToBeQuiet(cmd) ++char *cmd; ++{ ++ struct NoAskItem *nai; ++ for (nai = FirstQuietItem; nai; nai = nai->next) { ++ if (!lc2strcmp(nai->type, cmd)) return(1); ++ } ++ return(0); ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char pat2[200]; ++ ++ if (!lc2strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ if (index(pat, '/') == NULL) { ++ /* implicit wildcard */ ++ strcpy(pat2, pat); ++ strcat(pat2, "/*"); ++ pat = pat2; ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!lc2strncmp(ctype, pat, len)) ++ && ((ctype[len] == '/') || (ctype[len] == '\0'))){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++ExecuteCommand(cmd, really) ++char *cmd; ++int really; ++{ ++ int code; ++ if (!Quiet || DoDebug) { ++ if (!NeedToBeQuiet(ShortCommand(cmd))) { ++ printf("---Executing: %s\n", DoDebug ? cmd : ShortCommand(cmd)); ++ } else if (EatLeadingNewlines) { ++ printf("\n"); ++ } ++ fflush(stdout); ++ } ++ if (really) { ++ fflush(stdout); fflush(stderr); ++ code = system(cmd); ++ if (DoDebug) printf("Command exit status: %d\n", code); ++#ifdef MSDOS ++ code = 0; /* system doesn't return a valid exit code on MS-DOS */ ++#endif ++ return(code); ++ } ++ return(0); ++} ++ ++MkTmpFileName(name) ++char *name; ++{ ++ int length = MAX_FILE_NAME_SIZE; ++ char* tmpname = NULL; ++ ++#ifdef AMIGA ++ strcpy(name, "T:mmXXXXXX"); ++ close(mkstemp(name)); ++#else ++ #ifndef MSDOS ++ sprintf(name, "%s/mm.XXXXXX", tmproot); ++ close(mkstemp(name)); ++ #else ++ strcpy(name, "TXXXXXX"); ++ if (!close(mkstemp(name))) ++ name[0] = 0; ++ else ++ if (DoDebug) printf("temp name = \"%s\"\n", name); ++ #endif ++#endif ++ fprintf( stderr, "strlen\n"); ++ if (name) ++ length = strlen(name); ++ ++ fprintf( stderr, "after strlen\n"); ++ tmpname = malloc( sizeof(char) * length ); ++ fprintf( stderr, "after malloc\n"); ++ strcpy( tmpname, name ); ++ fprintf( stderr, "after strcpy\n"); ++ dlist_insertnew( &TmpNameListTail, (void*) tmpname ); ++ fprintf( stderr, "after dlistinsert\n"); ++ tmpname = NULL; ++} ++ ++void ++CleanupTmpFiles( void ) ++{ ++ DList* help = TmpNameListTail; ++ DList* old = NULL; ++ ++ while (help) { ++ if (unlink( (char*) help->data ) < 0) ++ if (DoDebug) ++ fprintf( stderr, "error unlinking %s\n", (char*) help->data ); ++ old = help; ++ help = help->prev; ++ free( old ); ++ } ++ ++ TmpNameListTail = NULL; ++} ++ ++#ifdef AMIGA ++/* We need to execute a command and then remove a file "fileToRemove". ++ * MkRmScript() creates a shell script that accomplishes this. The script ++ * is written to a temporary file. The name of the script is returned. ++ */ ++char * ++MkRmScript(command, fileToRemove, nameBuf) ++char *command; ++char *fileToRemove; ++char *nameBuf; ++{ ++ FILE *script; ++ ++ MkTmpFileName(nameBuf); ++ if ((script = fopen(nameBuf, "w")) == NULL) { ++ fprintf(stderr, "Unable to open %s for writing\n", nameBuf); ++ exit(1); ++ } ++ fprintf(script, ".BRA {\n.KET }\n%s\nDelete %s QUIET\n", command, fileToRemove); ++ fclose(script); ++ return(nameBuf); ++} ++#endif ++ ++void ++ConsumeRestOfPart(outfp) ++FILE *outfp; ++{ ++ char *Buf; ++ int c; ++ ++ if (BoundaryCt <= 0) { ++ while ((c=getc(InputFP)) != EOF) { ++ if (outfp) putc(c, outfp); ++ } ++ return; ++ } ++ Buf = malloc(LINE_BUF_SIZE); ++ if (!Buf) ExitWithError(nomem); ++ while (fgets(Buf, LINE_BUF_SIZE, InputFP)) { ++ if ((BoundaryCt > 0) ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, Boundaries, &BoundaryCt)) { ++ break; ++ } ++ if (outfp) fputs(Buf, outfp); ++ } ++ free(Buf); ++} ++ ++char *paramend(s) ++char *s; ++{ ++ int inquotes=0; ++ while (*s) { ++ if (inquotes) { ++ if (*s == '"') { ++ inquotes = 0; ++ } else if (*s == '\\') { ++ ++s; /* skip a char */ ++ } ++ } else if (*s == ';') { ++ return(s); ++ } else if (*s == '"') { ++ inquotes = 1; ++ } ++ ++s; ++ } ++ return(NULL); ++} ++ ++void ++ParseContentParameters(ct) ++char *ct; ++{ ++ char *s, *t, *eq; ++ ++ CParamsUsed = 0; ++ s = index(ct, ';'); ++ if (!s) return; ++ *s++ = 0; ++ do { ++ t = paramend(s); ++ if (t) *t++ = 0; ++ eq = index(s, '='); ++ if (!eq) { ++ fprintf(stderr, "Ignoring unparsable content-type parameter: '%s'\n", s); ++ JunkParameter=Cleanse(s); ++ } else { ++ if (CParamsUsed >= CParamsAlloced) { ++ CParamsAlloced += 10; ++ if (CParams) { ++ CParams = (char **) realloc(CParams, (1+CParamsAlloced) * sizeof (char *)); ++ CParamValues = (char **) realloc(CParamValues, (1+CParamsAlloced) * sizeof (char *)); ++ } else { ++ CParams = (char **) malloc((1+CParamsAlloced) * sizeof (char *)); ++ CParamValues = (char **) malloc((1+CParamsAlloced) * sizeof (char *)); ++ } ++ if (!CParams || !CParamValues) ExitWithError(nomem); ++ } ++ *eq++ = 0; ++ s = Cleanse(s); ++ CParams[CParamsUsed] = s; ++ /* strip leading white space */ ++ while (*eq && isspace((unsigned char) *eq)) ++eq; ++ /* strip trailing white space */ ++ StripTrailingSpace(eq); ++ CParamValues[CParamsUsed++] = eq; ++ if (DoDebug) printf("NEW PARAMETER: %s VALUE: %s\n", s, eq); ++ } ++ s = t; ++ } while (t); ++} ++ ++char *FindParam(s) ++char *s; ++{ ++ int i; ++ for (i=0; i<CParamsUsed; ++i) { ++ if (!strcmp(s, CParams[i])) { ++ return(CParamValues[i]); ++ } ++ } ++ return(NULL); ++} ++ ++#ifdef MSDOS ++system2(s) ++char *s; ++{ ++ printf("system2: \"%s\"\n", s); ++ return(0); ++} ++#endif ++ ++strcatquoting(s1, s2) ++char *s1; ++char *s2; ++{ ++ strcat(s1, s2); ++#ifdef NOTDEF ++ while (*s1) ++s1; ++ while (*s2) { ++ if (*s2 == '\"' || *s2 == '\\') *s1++ = '\\'; ++ *s1++ = *s2++; ++ } ++ *s1 = '\0'; ++#endif ++} ++ ++PauseForUser() { ++#if defined(MSDOS) || defined(AMIGA) ++ char Buf[100]; ++#endif ++ ++ if (DefinitelyNotTty || MustNotBeTty) return; ++#if defined(MSDOS) || defined(AMIGA) ++ printf("Press RETURN to go on\n"); ++ gets(Buf); ++#else ++ fflush(stdout); ++ SaveTtyState(); ++ if (StartRawStdin() != -1) { ++ printf("--Press any key to go on.--"); ++ } else { ++ printf("Press RETURN to go on.\n"); ++ } ++ fflush(stdout); ++ getchar(); ++ RestoreTtyState(); ++ printf("\n"); ++#endif ++} ++ ++StartRawStdin() { ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++ struct termio orterm, fterm; ++ ioctl(0, TCGETA, &orterm); /* get current (i.e. cooked) termio */ ++ fterm = orterm; /* get termio to modify */ ++ ++ fterm.c_lflag &= ~ICANON; /* clear ICANON giving raw mode */ ++ fterm.c_cc[VMIN] = 1; /* set MIN char count to 1 */ ++ fterm.c_cc[VTIME] = 0; /* set NO time limit */ ++ return ioctl(0, TCSETAW, &fterm); /* modify termio for raw mode */ ++#else ++ struct sgttyb ts; ++ gtty(fileno(stdin), &ts); ++ ts.sg_flags |= RAW; ++ return stty(fileno(stdin), &ts); ++#endif ++#else ++ return(-1); ++#endif ++} ++ ++ ++int IsDirectory(fname) ++char *fname; ++{ ++ struct stat stbuf; ++ if (stat(fname, &stbuf)) { ++ return(-1); ++ } ++ return (((stbuf.st_mode & S_IFMT) == S_IFDIR) ? 1 : 0); ++} ++ +--- metamail-2.7.orig/src/metamail/uue.c ++++ metamail-2.7/src/metamail/uue.c +@@ -0,0 +1,124 @@ ++#include <stdio.h> ++ ++/* ++ * hack to metamail to decode uuencoded bodyparts ++ * Written by Keith Moore, February 1992 ++ */ ++ ++uueget (ptr, outfp, n) ++char *ptr; ++FILE *outfp; ++{ ++ unsigned char c1, c2, c3; ++ unsigned char p0, p1, p2, p3; ++ ++ p0 = (ptr[0] - ' ') & 0x3F; ++ p1 = (ptr[1] - ' ') & 0x3F; ++ p2 = (ptr[2] - ' ') & 0x3F; ++ p3 = (ptr[3] - ' ') & 0x3F; ++ ++ c1 = p0 << 2 | p1 >> 4; ++ c2 = p1 << 4 | p2 >> 2; ++ c3 = p2 << 6 | p3; ++ ++ if (n >= 1) ++ putc (c1, outfp); ++ if (n >= 2) ++ putc (c2, outfp); ++ if (n >= 3) ++ putc (c3, outfp); ++} ++ ++ ++getline (buf, size, fp) ++char *buf; ++int size; ++FILE *fp; ++{ ++ int c; ++ char *ptr = buf; ++ ++ for (c = 0; c < size; ++c) ++ buf[c] = ' '; ++ do { ++ c = getc (fp); ++ if (c == EOF) { ++ *ptr = '\0'; ++ return (ptr == buf) ? -1 : 0; ++ } ++ else if (c == '\n' || c == '\r') { ++ *ptr = '\0'; ++ return 0; ++ } ++ else if (ptr == buf && c == '>') /* ">From" line hack */ ++ continue; ++ else if (size > 0) { ++ *ptr++ = c; ++ size--; ++ } ++ } while (1); ++ return ++(0); /* shut lint up */ ++} ++ ++ ++fromuue (infp, outfp, boundaries, ctptr) ++FILE *infp, *outfp; ++char **boundaries; ++int *ctptr; ++{ ++ char buf[63]; ++ ++ while (1) { ++ if (getline (buf, sizeof buf, infp) < 0) { ++ fprintf (stderr, "Premature EOF!\n"); ++ return; ++ } ++ if (strncmp (buf, "begin", 5) == 0) ++ break; ++ else if (buf[0] == '-' && buf[1] == '-') { ++ if (boundaries && PendingBoundary (buf, boundaries, ctptr)) ++ return; ++ } ++ } ++ while (1) { ++ if (getline (buf, sizeof buf, infp) < 0) { ++ fprintf (stderr, "Premature EOF!\n"); ++ return; ++ } ++ else if (strncmp (buf, "end", 5) == 0) ++ break; ++ else if (buf[0] == '-' && buf[1] == '-') { ++ if (boundaries && PendingBoundary (buf, boundaries, ctptr)) { ++ fprintf (stderr, "premature end of x-uue body part\n"); ++ return; ++ } ++ else { ++ fprintf (stderr, "ignoring invalid boundary marker\n"); ++ continue; ++ } ++ } ++ else if (*buf == '\0') continue; ++ else { ++ int length = (*buf - ' '); ++ if (*buf == '`') ++ length = 0; ++ if (length < 0 || length > 63) { ++ fprintf (stderr, "fromuue: illegal length (%d)\n", ++ length); ++ } ++/* Nathan Maman recommends commenting out the next two lines */ ++ else if (length == 0) ++ break; ++ else { ++ char *ptr = buf + 1; ++ while (length > 0) { ++ uueget (ptr, outfp, length); ++ length -= 3; ++ ptr += 4; ++ } ++ } ++ } ++ } ++} ++ +--- metamail-2.7.orig/src/metamail/metamail.h ++++ metamail-2.7/src/metamail/metamail.h +@@ -0,0 +1,62 @@ ++#ifndef METAMAIL_H ++#define METAMAIL_H ++ ++#include <metamail/common.h> ++#include <metamail/patchlevel.h> ++ ++BEGIN_C_DECLS ++ ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++ ++#define WRITE_BINARY "w" ++ ++#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++#define LINE_BUF_SIZE 2000 ++ ++//static char *nomem = "Out of memory!"; ++extern char *mmversion; ++extern char *NoAskDefault; ++extern char *QuietDefault; ++extern char *tmproot; ++ ++#define ENCODING_NONE 0 ++#define ENCODING_BASE64 1 ++#define ENCODING_QUOTEDPRINTABLE 2 ++#define ENCODING_8BIT 3 ++#define ENCODING_UUENCODE -1 /* non-standard */ ++ ++// for mailto.c (cutted and pasted ere) ++#define MINCHUNKSIZE 20000 /* Better be enough to hold the headers, or we ++ die! */ ++#define MAX_LINELENGTH 2000 ++ ++struct NoAskItem { ++ char *type; ++ struct NoAskItem *next; ++}; ++ ++extern char *mailheaders; ++extern char *MailerName; ++extern char *ContentType; ++extern int Quiet; ++extern struct NoAskItem *FirstNoAskItem; ++extern struct NoAskItem *FirstQuietItem; ++extern int TransparentMode; ++extern int RunAsRootOK; ++extern int DoDebug; ++extern int YankMode; ++extern int MightAskBeforeExecuting; ++extern int DefinitelyNotTty; ++extern int MustNotBeTty; ++extern int MaybePageOutput; ++ ++END_C_DECLS ++ ++#endif /* METAMAIL_H */ ++ ++ ++ ++ +--- metamail-2.7.orig/src/metamail/environment.c ++++ metamail-2.7/src/metamail/environment.c +@@ -0,0 +1,181 @@ ++/* Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++/* environment.c - contains (nearly) everything for the environmenthandling ++ ++ Author: Michael Moerz <mikem@debian.org> ++*/ ++ ++#include "metamail.h" ++#include "environment.h" ++ ++/** adds a string to the current environmet variable PATH ++ @param auxpath path to add to $PATH (=auxiliary path) ++*/ ++void ++addToPath(auxpath) ++char *auxpath; ++{ ++ if (auxpath && *auxpath) { /* when pointer and auxpath[0] are != NULL */ ++ static char *newpath = 0; /* is needed! since it becomes part ov ENV */ ++ char *oldpath = newpath; ++ char *path = getenv("PATH"); ++ ++ if (!path) path = ""; /* give a default if no current path */ ++ newpath = XMALLOC(char, (7 + strlen(path) + strlen(auxpath))); ++ sprintf(newpath, "PATH=%s:%s", auxpath, path); ++ putenv(newpath); ++ if (oldpath) XFREE(oldpath); /* free up any old allocated PATH */ ++ } ++} ++ ++/** initialize global variable mailheaders from environment ++ this code is needed at several places -> own function ++*/ ++void ++initMailHeadersFromEnvironment() { ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = XMALLOC(char, 15+strlen(mailheaders)); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ /* error? free mailheaders? */ ++ mailheaders = s; ++ } ++} ++ ++/** initializes variables from environment variables or sets them to default ++ values if they are not found in the environment ++*/ ++void ++initVarsFromEnvironment() { ++ char *QuietStr = NULL, *NoAskStr = NULL; ++ ++ /* temporary directory - where all temporary files are created */ ++ tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) { ++ tmproot = XMALLOC(char, 5); ++ strcpy(tmproot, "/tmp"); ++ } ++ ++ /* */ ++ initMailHeadersFromEnvironment(); ++ ++ /* the quietstring that can turn off output for various things */ ++ QuietStr = getenv("MM_QUIET"); ++ if (!QuietStr) /* when not set in the environment set default */ ++ QuietStr = QuietDefault; ++ /* now either we are always quiet (="1") or we have to create a structure ++ containing information about when we have to be quiet ++ */ ++ if (!strcmp(QuietStr, "1")) { /* when Quietstr == "1" */ ++ Quiet = 1; ++ } else { ++ struct NoAskItem *qitem; ++ char *s, *tmp; ++ char *QuietCopy; ++ ++ Quiet = 0; ++ QuietCopy = XMALLOC(char, 1+strlen(QuietStr)); ++ strcpy(QuietCopy, QuietStr); ++ for (tmp=QuietCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) ++ *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(QuietCopy, ','); ++ if (s) *s++ = 0; ++ qitem = XMALLOC(struct NoAskItem, 1); ++ qitem->next = FirstQuietItem; ++ qitem->type = QuietCopy; ++ FirstQuietItem = qitem; ++ QuietCopy = s; ++ } while (QuietCopy); ++ } ++ ++ /* */ ++ if (getenv("MM_TRANSPARENT")) { ++ /* Will not propogate recursively */ ++ TransparentMode = atoi(getenv("MM_TRANSPARENT")); ++ } ++ ++ /* override for allowing to run as root -- DANGER WILL ROBINSON */ ++ if (getenv("MM_RUNASROOT")) { ++ RunAsRootOK = atoi(getenv("MM_RUNASROOT")); ++ } ++ ++ /* */ ++ if (getenv("MM_YANKMODE")) { ++ /* Will not propogate recursively */ ++ YankMode = atoi(getenv("MM_YANKMODE")); ++ } ++ ++ /* debug flag */ ++ if (getenv("MM_DEBUG")) { ++ DoDebug = atoi(getenv("MM_DEBUG")); ++ } ++ ++ /* put that somewhere else */ ++ if (DoDebug) ++ printf("Metamail Version %s, debugging turned on.\n", mmversion); ++ ++ /* similar to quiet */ ++ NoAskStr = getenv("MM_NOASK"); ++ if (!NoAskStr) /* when noask not set in the ENV then init to default */ ++ NoAskStr = NoAskDefault; ++ if (!strcmp(NoAskStr, "1")) { ++ MightAskBeforeExecuting = 0; ++ } else { ++ struct NoAskItem *nai; ++ char *s, *tmp; ++ char *NoAskCopy; ++ ++ NoAskCopy = XMALLOC(char, 1+strlen(NoAskStr)); ++ strcpy(NoAskCopy, NoAskStr); ++ for (tmp=NoAskCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(NoAskCopy, ','); ++ if (s) *s++ = 0; ++ nai = XMALLOC(struct NoAskItem, 1); ++ nai->next = FirstNoAskItem; ++ nai->type = NoAskCopy; ++ FirstNoAskItem = nai; ++ NoAskCopy = s; ++ } while (NoAskCopy); ++ } ++ ++ /* hmm, perhaps mailprogram name ? */ ++ MailerName = getenv("MM_MAILER"); ++ if (!MailerName) ++ MailerName = "unknown"; ++ ++ /* */ ++ if (getenv("MM_USEPAGER")) { ++ MaybePageOutput = atoi(getenv("MM_USEPAGER")); ++ } ++ ++ /* setting if we have a tty or not */ ++ if ((getenv("MM_NOTTTY") && ((atoi(getenv("MM_NOTTTY"))) != 0))) { ++ MustNotBeTty = 1; ++ } ++ if (MustNotBeTty ++ || !isatty(0) ++ || !isatty(1)) { ++ DefinitelyNotTty = 1; ++ } ++ ++ ++} +--- metamail-2.7.orig/src/metamail/environment.h ++++ metamail-2.7/src/metamail/environment.h +@@ -0,0 +1,11 @@ ++#ifndef METAMAIL_ENVIRONMENT_H ++#define METAMAIL_ENVIRONMENT_H 1 ++ ++#define ENVIRONMENT_TMPROOT_DEFAULT_LEN 5 ++#define ENVIRONMENT_TMPROOT_DEFAULT "/tmp" ++ ++void addToPath (char *); ++void initMailHeadersFromEnvironment (); ++void initVarsFromEnvironment (); ++ ++#endif /* METAMAIL_ENVIRONMENT_H */ +--- metamail-2.7.orig/src/metamail/mailto.c ++++ metamail-2.7/src/metamail/mailto.c +@@ -0,0 +1,2433 @@ ++/* ++Copyright (c) 1992 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++/* ++Program: mailto ++Author: Nathaniel S. Borenstein ++ ++ This is a program that allows users to send MIME-format mail with much ++ the same user interface as the Berkeley mail program. ++ ++ However, it should be stressed that this program includes ++ ABSOLUTELY NO CODE taken from Berkeley mail -- it is a ++ "clean" reimplementation. ++ ++ The user interface is directly modelled on Berkeley mail, ++ and the desiderata for its design are taken from the man ++ page for that program. ++ ++ For information on using this program, consult the man page. ++ ++STILL NEED TO DO/SUPPORT: ++ ++-- Replace the main fgets call with something that allows in-line escape codes to do the equivalent of the tilde escapes. Handle margins, centering, excerpts, EightBitMode, and RightToLeft mode properly. ++-- Replace EditString with something that does the right thing in-line. ++*/ ++ ++#include <metamail/common.h> ++ ++#include <curses.h> /* This and next for tgetstr(3X) and kin */ ++#include <term.h> ++ ++#include "metamail.h" ++#include "metamail_default.h" ++ ++struct mailpart *CreateNewPart(); ++char *getmyname(); /* Defined in shared.c */ ++ ++ ++/* The main data structure for the multiple parts of the mail */ ++ ++struct mailpart { ++ int istext; ++ int isrich; ++ char *content_type; ++ int encoding_type_needed; ++ char *filename; ++ struct MailcapEntry *mc; ++ struct mailpart *next, *prev; ++}; ++ ++/* Some globals */ ++struct mailpart *FirstPart = NULL; ++static char *Subject = NULL, *ToList = NULL, *CCList= NULL, *InReplyTo = NULL; ++FILE *fpout = NULL; ++static char *CharacterSet = NULL; ++static int PartEndsWithNewline=1; ++static int SplitSize=DEFAULT_SPLIT_SIZE; ++ ++char *deadLetter = "dead.letter"; ++char *signature = ".signature"; ++char *mimeSignature = ".SIGNATURE"; ++#define TMPFILE_NAME_SIZE 1000 ++#define FILE_NAME_SIZE 1000 ++ ++#define DEFAULT_EDITOR "vi" ++ ++#define SYSTEM(command) system(command); ++ ++ ++/* The following are the globals that can be set via .mailrc */ ++int V_askcc=0, /* To ask about the Cc field */ ++ V_dot=0, /* To take a period as the end of input */ ++ V_ignore=0, /* To ignore interrupts */ ++ V_verbose=0, /* To run sendmail with -v */ ++ V_quiet=0, /* To suppress various informational output */ ++ V_keepblind=0, /* To receive a blind copy of outgoing mail. */ ++ V_commasonly=0; /* To suppress using spaces as address separators */ ++ ++/* Codes for encoding_type_needed */ ++#define ENC_NONE 0 ++#define ENC_QP 1 /* quoted-printable */ ++#define ENC_B64 2 /* base64 */ ++ ++/* Codes for JustificationState */ ++#define JUST_LEFT 0 ++#define JUST_RIGHT 1 ++#define JUST_CENTER 2 ++int JustificationState = JUST_LEFT; ++ ++ ++EightBitCharHelp() { ++ if (!CharacterSet || !strcmp(CharacterSet, "us-ascii")) { ++ printf("There are no extended characters available for your US-ASCII terminal.\n\n"); ++ printf("If you are actually using a terminal or terminal emulator with a richer\ncharacter set, you must use the '-a' option or the 'MM_CHARSET' environment\nvariable to inform this program of that fact.\n"); ++ } else { ++ static char *kbd1[] = ++ { ++ "1234567890-=", ++ "qwertyuiop[]", ++ "asdfghjkl;'`", ++ "zxcvbnm,./\\", ++ NULL ++ }; ++ static char *kbd2[] = /* MUST have same # of entries as kbd1 */ ++ { ++ "!@#$%^&*()_+", ++ "QWERTYUIOP{}", ++ "ASDFGHJKL:\"~", ++ "ZXCVBNM<>?|", ++ NULL ++ }; ++ char *s; ++ int i, ct; ++ ++ printf("Here is the keyboard map for the character set %s\n.If your terminal does not really use this character set, this may look strange.\n\n", CharacterSet); ++ for (i=0; kbd1[i]; ++i) { ++ for (ct=0, s=kbd1[i]; *s; ++s) { ++ printf("%c%c ", *s, (*s) + 128); ++ ct+=3; ++ } ++ while (ct++<40) printf(" "); ++ for (s=kbd2[i]; *s; ++s) { ++ printf("%c%c ", *s, (*s) + 128); ++ } ++ printf("\n"); ++ } ++ } ++} ++ ++char * ++tmpname() { ++ char *s = malloc(30); ++ if (!s) nomemabort(); ++ { ++ char *tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) tmproot="/tmp"; ++ if (strlen(tmproot) > 19) { ++ free(s); ++ s=malloc(12+strlen(tmproot)); ++ if (!s) nomemabort(); ++ } ++ sprintf(s, "%s/mm.XXXXXX", tmproot); ++ } ++ return(s); ++} ++ ++TildeHelp() { ++ char *pager = getenv("PAGER"); ++ char TmpName[100], CmdBuf[150]; ++ FILE *fp; ++ ++ strcpy(TmpName, tmpname()); ++ fp = fdopen(mkstemp(TmpName), "w"); ++ if (!fp) fp = stdout; ++ fprintf(fp, "The following tilde escapes are BSD-mail-compatible:\n"); ++ fprintf(fp, "~? Show help on tilde escapes\n"); ++ fprintf(fp, "~| RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~f RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~m RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~! Shell escape\n"); ++ fprintf(fp, "~~ Enter text line starting with a tilde\n"); ++ fprintf(fp, "~. Send the mail and exit\n"); ++ fprintf(fp, "~c Add to Cc list\n"); ++ fprintf(fp, "~d Read from %s (or named file, ~d filename)\n", deadLetter); ++ fprintf(fp, "~e Edit message being composed\n"); ++ fprintf(fp, "~h Edit the headers\n"); ++ fprintf(fp, "~p Print out the message so far\n"); ++ fprintf(fp, "~q Quit, copying to %s\n", deadLetter); ++ fprintf(fp, "~r Read the named text file into the message\n"); ++ fprintf(fp, "~s Reset the subject\n"); ++ fprintf(fp, "~t Add to To list\n"); ++ fprintf(fp, "~v Edit using VISUAL editor\n"); ++ fprintf(fp, "~w Write message to named file\n"); ++ fprintf(fp, "\n"); ++ fprintf(fp, "The following tilde escapes are unique to this program:\n"); ++ fprintf(fp, "~/<number> Set maximum size before message is split into multiple parts\n"); ++ fprintf(fp, "~?+ Show help on extended (eight-bit) characters\n"); ++ fprintf(fp, "~> Indent Left Margin\n"); ++ fprintf(fp, "~< Unindent Left Margin\n"); ++ fprintf(fp, "~<R Indent Right Margin\n"); ++ fprintf(fp, "~>R Unindent Right Margin\n"); ++ fprintf(fp, "~+ Enter 8-bit mode for non-ASCII characters\n"); ++ fprintf(fp, "~- Leave 8-bit mode (return to ASCII)\n"); ++ fprintf(fp, "~^ Toggle \"Upside-down\" (right-to-left) mode.\n"); ++ fprintf(fp, "~* Add non-text data (pictures, sounds, etc.) as a new MIME part (try it!)\n"); ++ fprintf(fp, "~b Toggle bold mode\n"); ++ fprintf(fp, "~i Toggle italic mode\n"); ++ fprintf(fp, "~j Alter Justification (~jc = center, ~jl = flushleft, ~jr = flushright.)\n"); ++ fprintf(fp, "~k Toggles whether or not to keep a 'blind' copy of your mail\n"); ++ fprintf(fp, "~n Force newline (hard line break)\n"); ++ fprintf(fp, "~Q Toggle quotation (excerpt) mode\n"); ++ fprintf(fp, "~S Toggle Semitic text mode (combines 8-bit and left-to-right)\n"); ++ fprintf(fp, "~u Toggle underline mode\n"); ++ fprintf(fp, "~z Add the contents of %s as a TEXT signature.\n", signature); ++ fprintf(fp, "~Z Add the contents of %s as a NON-TEXT (MIME-format) signature.\n", mimeSignature); ++ fprintf(fp, "For further information, read the man page.\n"); ++ fprintf(fp, "\n"); ++ if (fp != stdout) { ++ fclose(fp); ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", pager ? pager : "sensible-pager", TmpName); ++ SYSTEM(CmdBuf); ++ unlink(TmpName); ++ } ++} ++ ++char *gethome() { ++ struct passwd *p = getpwuid(getuid()); ++ if (!p || !p->pw_dir) { ++ perror("Cannot find your home directory, using /tmp"); ++ return("/tmp"); ++ } ++ return (p->pw_dir); ++} ++ ++ ++static char standoutbuf[50], standendbuf[50], StartUnderline[50], StopUnderline[50], BoldOn[50], BoldOff[50], KS[50], KE[50]; ++static int termcolumns, termrows; ++ ++InitTerminal() { ++ char tbuf[1024], *term, *dum; ++ ++ term = getenv("TERM"); ++ if (term && tgetent(tbuf, term) != 1) { ++ term = NULL; ++ } ++ if (term) { ++ dum = KS; ++ if (tgetstr("ks", &dum)) *dum = '\0'; else KS[0] = '\0'; ++ dum = KE; ++ if (tgetstr("ke", &dum)) *dum = '\0'; else KE[0] = '\0'; ++ dum = standoutbuf; ++ if (tgetstr("so", &dum)) *dum = '\0'; else standoutbuf[0] = '\0'; ++ dum = standendbuf; ++ if (tgetstr("se", &dum)) *dum = '\0'; else standendbuf[0] = '\0'; ++ dum = BoldOn; ++ if (tgetstr("md", &dum)) *dum = '\0'; else strcpy(BoldOn, standoutbuf); ++ dum = BoldOff; ++ if (tgetstr("me", &dum)) *dum = '\0'; else strcpy(BoldOff, standendbuf); ++ dum = StartUnderline; ++ if (tgetstr("us", &dum)) *dum = '\0'; else StartUnderline[0] = '\0'; ++ dum = StopUnderline; ++ if (tgetstr("ue", &dum)) *dum = '\0'; else StopUnderline[0] = '\0'; ++ termcolumns = tgetnum("co"); ++ if (termcolumns <= 0) termcolumns = 80; ++ termrows = tgetnum("li"); ++ if (termrows <= 0) termrows = 23; ++ } else { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ standoutbuf[0] = '\0'; ++ standendbuf[0] = '\0'; ++ BoldOn[0] = '\0'; ++ BoldOff[0] = '\0'; ++ StartUnderline[0] = '\0'; ++ StopUnderline[0] = '\0'; ++ termcolumns = 80; ++ termrows = 23; ++ } ++ fputs(KS, stdout); ++} ++ ++FinalizeTerminal() { ++ tfputs(standendbuf); ++ tfputs(BoldOff); ++ tfputs(StopUnderline); ++} ++ ++struct mailpart * ++NewPart() { ++ struct mailpart *p; ++ p = (struct mailpart *) malloc(sizeof(struct mailpart)); ++ if (!p) nomemabort(); ++ p->istext = 1; ++ p->isrich = 0; ++ p->content_type = "text/plain"; ++ p->encoding_type_needed = ENC_NONE; ++ p->filename = tmpname(); ++ p->mc = NULL; ++ p->next = NULL; ++ p->prev = NULL; ++ return(p); ++} ++ ++nomemabort() { ++ fprintf(stderr, "mailto: Out of memory\n"); ++ cleanexit(-1); ++} ++ ++char * ++freshcopy(s) ++char *s; ++{ ++ char *t = malloc(1+strlen(s)); ++ if (!t) nomemabort(); ++ strcpy(t, s); ++ return(t); ++} ++ ++char * ++GetLineMalloced(prompt, def) ++char *prompt, *def; ++{ ++ char Sbuf[1000], *ans; ++ printf("%s: ", prompt); ++ fflush(stdout); ++ ans = fgets(Sbuf, sizeof(Sbuf), stdin); ++ if (ans) { ++ /* Need a fresh copy */ ++ ans = malloc(1+strlen(Sbuf)); ++ if (!ans) nomemabort(); ++ strcpy(ans, Sbuf); ++ ans[strlen(ans) - 1] = '\0'; /* trash newline */ ++ } else { ++ /* Callers will free() this, so make a fresh copy as well */ ++ ans = malloc(1+strlen(def)); ++ if (!ans) nomemabort(); ++ strcpy(ans, def); ++ } ++ return(ans); ++} ++ ++char * ++EditString(prompt, s) ++char *prompt, *s; ++{ ++ char *ans; ++ char NewPrompt[500]; ++ if (!s) s = ""; ++ snprintf(NewPrompt, sizeof(NewPrompt), "%s [%s]", prompt, s); ++ ans = GetLineMalloced(NewPrompt, s); ++ while (*ans && isspace((unsigned char) *ans)) ++ans; ++ if (!*ans) return(s); ++ return(ans); ++} ++ ++char * ++AddCommasToAddressList(s) ++char *s; ++{ ++ int spaces = 0; ++ char *t, *ans, *ansptr; ++ ++ if (V_commasonly) { ++ ans = malloc(1+strlen(s)); ++ if (!ans) nomemabort; ++ strcpy(ans, s); ++ return(ans); ++ } ++ for (t=s; *t; ++t) { ++ if (*t == ' ') ++spaces; ++ } ++ /* That provides a max size for the mallocs */ ++ ans = malloc(1+strlen(s) +spaces); ++ if (!ans) nomemabort(); ++ ansptr = ans; ++ for (t=s; *t; ++t) { ++ if (*t == ' ' && *(t-1) != ',') { ++ *ansptr++ = ','; ++ } ++ *ansptr++ = *t; ++ } ++ *ansptr = '\0'; ++ while (--ansptr > ans && (isspace((unsigned char) *ansptr) || *ansptr == ',')) { ++ *ansptr = '\0'; ++ } ++ return(ans); ++} ++ ++char * ++AddToList(List, entry, definitelynew) ++char *List, *entry; ++int definitelynew; ++{ ++ int len; ++ char *end = entry+strlen(entry); ++ ++ while (--end >= entry && isspace((unsigned char) *end)) *end = '\0'; ++ if (! *entry) return(List); ++ if (List && *List) { ++ List = realloc(List, strlen(List) + strlen(entry) + 5); ++ if (!List) nomemabort(); ++ if (V_commasonly && !definitelynew) { ++ strcat(List, " "); ++ } else { ++ strcat(List, ", "); ++ } ++ strcat(List, entry); ++ } else { ++ List = malloc(strlen(entry) + 2); ++ if (!List) nomemabort(); ++ strcpy(List, entry); ++ } ++ len = strlen(List); ++ while (List[--len] == ',') List[len] = '\0'; ++ return(List); ++} ++ ++main(argc, argv) ++char **argv; ++{ ++ char *sdum, *LineBuf, CmdBuf[100]; ++ int i, EightBitMode = 0, RightToLeftMode = 0, AllDone=0, EightBitSeen=0, prevaddrdone=1; ++ FILE *fpin; ++ struct mailpart *CurrentPart=NULL; ++ ++ if ((LineBuf = malloc(MAX_LINELENGTH)) == NULL) { ++ fprintf(stderr, "mailto: Unable to allocate memory\n"); ++ exit(10); ++ } ++ ProcessInitFiles(); ++ InitSignals(); ++ InitTerminal(); ++ sdum = getenv("SPLITSIZE"); ++ if (sdum) { ++ i = atoi(sdum); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring SPLITSIZE environment variable of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ } ++ } ++ ++ CharacterSet = getenv("MM_CHARSET"); ++ for (i=1; i<argc; ++i) { ++ if (argv[i][0] == '-') { ++ switch (argv[i][1]) { ++ case 'a': ++ if (argv[i][2]) { ++ CharacterSet = &argv[i][2]; ++ } else if (++i < argc) { ++ CharacterSet = argv[i]; ++ } else { ++ fprintf(stderr, "mailto: -a requires a character set specification to follow\n"); ++ cleanexit(-1); ++ } ++ break; ++ case 'c': ++ if (argv[i][2]) { ++ CCList = &argv[i][2]; ++ } else if (++i < argc) { ++ CCList = argv[i]; ++ } else { ++ CCList = ""; ++ } ++ break; ++ case 'r': ++ if (argv[i][2]) { ++ InReplyTo = &argv[i][2]; ++ } else if (++i < argc) { ++ InReplyTo = argv[i]; ++ } else { ++ fprintf(stderr, "mailto: -r requires a Message-ID to follow\n"); ++ cleanexit(-1); ++ } ++ break; ++ case 's': ++ if (argv[i][2]) { ++ Subject = &argv[i][2]; ++ } else if (++i < argc) { ++ Subject = argv[i]; ++ } else { ++ fprintf(stderr, "mailto: -s requires a subject specification to follow\n"); ++ cleanexit(-1); ++ } ++ break; ++ default: ++ fprintf(stderr, "mailto: Unrecognized option %s\n", argv[i]); ++ cleanexit(-1); ++ } ++ } else { ++ /* It's an address, I guess */ ++ ToList = AddToList(ToList, argv[i], prevaddrdone); ++ prevaddrdone = (argv[i][strlen(argv[i]) -1] == ',') ? 1 : 0; ++ } ++ } ++ if (!CharacterSet) CharacterSet = "us-ascii"; ++ for (sdum = CharacterSet; *sdum; ++sdum) { ++ if (isupper(*sdum)) *sdum = tolower(*sdum); ++ } ++ if (strcmp(CharacterSet, "us-ascii") ++ && strcmp(CharacterSet, "kio8-r") ++ && strncmp(CharacterSet, "iso-8859-", 9)) { ++ fprintf(stderr, "mailto: Unsupported character set: %s\n", CharacterSet); ++ exit(-1); ++ } ++ if (strcmp(CharacterSet, "us-ascii")) { ++ printf("Composing mail in character set %s\n", CharacterSet); ++ } ++ ProcessMailcapFiles(); ++ if (!ToList) { ++ sdum=GetLineMalloced("To", ""); ++ ToList=AddCommasToAddressList(sdum); ++ free(sdum); ++ } ++ if (!Subject) Subject=GetLineMalloced("Subject", "<NO SUBJECT>"); ++ if (!CCList && V_askcc) { ++ sdum = GetLineMalloced("Cc", ""); ++ CCList = AddCommasToAddressList(sdum); ++ free(sdum); ++ } ++ FirstPart = NewPart(); ++ CurrentPart = FirstPart; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ while (!AllDone && fgets(LineBuf, MAX_LINELENGTH, stdin) != NULL) { ++ if (V_dot && LineBuf[0] == '.' && LineBuf[1] == '\n') { ++ AllDone = 1; ++ } else if (LineBuf[0] == '~') { ++ /* Clean up argument */ ++ char *start = LineBuf+2; ++ char *end = start + strlen(start); ++ while (--end > start && isspace((unsigned char) *end)) *end = '\0'; ++ while (isspace((unsigned char) *start)) ++start; ++ switch (LineBuf[1]) { ++ case '.': ++ AllDone = 1; ++ break; ++ case '?': ++ if (*start == '+') { ++ EightBitCharHelp(); ++ } else { ++ TildeHelp(); ++ } ++ break; ++ case '~': ++ FputsQuotingLT(LineBuf+1, fpout, CurrentPart, EightBitMode, RightToLeftMode); ++ break; ++ case '!': ++ if (!V_quiet) printf("Executing: %s\n", start); ++ SYSTEM(start); ++ break; ++ case '>': ++ CurrentPart->isrich = 1; ++ fputs("<nl>", fpout); ++ if (*start=='r' || *start == 'R') { ++ TryClosingStyle("indentright", fpout, CurrentPart); ++ } else { ++ TryOpeningStyle("indent", fpout, CurrentPart, NULL); ++ } ++ break; ++ case '<': ++ CurrentPart->isrich = 1; ++ fputs("<nl>", fpout); ++ if (*start == 'R' || *start == 'r') { ++ TryOpeningStyle("indentright", fpout, CurrentPart, NULL); ++ } else { ++ TryClosingStyle("indent", fpout, CurrentPart); ++ } ++ break; ++ case '/': ++ i = atoi(start); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring splitsize setting of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ if (!V_quiet) printf("Set splitsize to %d\n", i); ++ } ++ break; ++ case '+': ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "mailto: No 8-bit characters allowed in ASCII mail\n"); ++ } else { ++ EightBitMode = 1; ++ if (!V_quiet) printf("Entering text in eight-bit mode\n"); ++ } ++ break; ++ case '-': ++ EightBitMode = 0; ++ if (!V_quiet) printf("Entering text in seven-bit (normal) mode\n"); ++ break; ++ case '^': ++ RightToLeftMode = ! RightToLeftMode; ++ if (!V_quiet) printf("%s right-to-left mode\n", RightToLeftMode ? "Entering" : "Exiting"); ++ break; ++ case '*': ++ { ++ struct mailpart *p = CreateNewPart(); ++ if (!p) break; ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = p; ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ case 'b': ++ ToggleStyle("bold", fpout, CurrentPart, BoldOn, BoldOff); ++ break; ++ case 'c': ++ CCList = AddToList(CCList, start, 1); ++ if (!V_quiet) printf("Cc field is now: %s\n", CCList); ++ break; ++ case 'd': ++ { ++ char fnam[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(fnam, sizeof(fnam), "%s/dead.letter", gethome()); ++ } else { ++ strcpy(fnam, start); ++ } ++ fpin = fopen(fnam, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", fnam); ++ break; ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->istext = 0; ++ CurrentPart->content_type = "message/rfc822"; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Cannot open temporary file %s\n", CurrentPart->filename); ++ break; ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ fclose(fpin); ++ fclose(fpout); ++ printf("Included contents of %s\n(continue)\n", fnam); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ case 'e': ++ EditCurrentMessage(0); ++ break; ++ case 'h': ++ ToList = AddCommasToAddressList(EditString("To", ToList)); ++ Subject = EditString("Subject", Subject); ++ CCList = AddCommasToAddressList(EditString("Cc", CCList)); ++ break; ++ case 'i': ++ ToggleStyle("italic", fpout, CurrentPart, standoutbuf, standendbuf); ++ break; ++ case 'j': ++ { ++ int NewJustificationState; ++ switch (*start) { ++ case 'c': ++ case 'C': ++ NewJustificationState = JUST_CENTER; ++ break; ++ case 'r': ++ case 'R': ++ NewJustificationState = JUST_RIGHT; ++ break; ++ case 'l': ++ case 'L': ++ NewJustificationState = JUST_LEFT; ++ break; ++ default: ++ printf("mailto: Unrecognized justification state: %c\n", *start); ++ NewJustificationState = JustificationState; ++ } ++ if (JustificationState == NewJustificationState) { ++ if (!V_quiet) printf("mailto: No change in justificiation\n"); ++ } else { ++ if (CurrentPart->isrich) { ++ if (JustificationState == JUST_CENTER) { ++ EndStyle(fpout, "center"); ++ } else if (JustificationState == JUST_RIGHT) { ++ EndStyle(fpout, "flushright"); ++ } else { ++ EndStyle(fpout, "flushleft"); ++ } ++ } ++ CurrentPart->isrich = 1; ++ fputs("<nl>", fpout); ++ JustificationState = NewJustificationState; ++ if (JustificationState == JUST_CENTER) { ++ StartStyle(fpout, "center", NULL); ++ } else if (JustificationState == JUST_RIGHT) { ++ StartStyle(fpout, "flushright", NULL); ++ } else { ++ StartStyle(fpout, "flushleft", NULL); ++ } ++ } ++ break; ++ } ++ case 'k': ++ V_keepblind = ! V_keepblind; ++ if (!V_quiet) printf("%s keep a blind copy of this message\n", V_keepblind ? "Will" : "Won't"); ++ break; ++ case 'n': ++ CurrentPart->isrich = 1; ++ fputs("<nl>", fpout); ++ if (!V_quiet) printf("Inserted line break\n"); ++ break; ++ case 'p': ++ { ++ FILE *fptmp; ++ char Cmd[TMPFILE_NAME_SIZE + 15]; ++ char *s=tmpname(); ++ fclose(fpout); ++ fptmp = fdopen(mkstemp(s), "w"); ++ WriteOutMessage(fptmp, ToList, Subject, CCList, FirstPart); ++ TempCloseStyles(fptmp); ++ fclose(fptmp); ++ fpout = fopen(CurrentPart->filename, "a"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ snprintf(Cmd, sizeof(Cmd), "metamail -z %s", s); ++ SYSTEM(Cmd); ++ free(s); ++ RestoreCurrentStyles(); ++ break; ++ } ++ case 'q': ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ if (!WriteDeadLetter()) cleanexit(0); ++ break; ++ case 'Q': ++ ToggleStyle("excerpt", fpout, CurrentPart, NULL, NULL); ++ break; ++ case 'r': ++ if (! *start) { ++ printf("mailto: No file name given.\n"); ++ break; ++ } ++ fpin = fopen(start, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", start); ++ break; ++ } ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen ++ && (CurrentPart->istext || CurrentPart->isrich)) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ if (!V_quiet) printf("Included contents of %s\n", start); ++ printf("(continue)\n"); ++ break; ++ case 'S': ++ /* Semitic language mode toggle */ ++ if (EightBitMode) { ++ EightBitMode = 0; ++ RightToLeftMode = 0; ++ } else { ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "mailto: No 8-bit characters allowed in ASCII mail\n"); ++ break; ++ } ++ EightBitMode = 1; ++ RightToLeftMode = 1; ++ } ++ if (!V_quiet) printf("%s Eight-bit and right-to-left modes\n", RightToLeftMode ? "Entering" : "Exiting"); ++ break; ++ case 's': ++ { ++ char *subj=start; ++ if (*subj) { ++ Subject = freshcopy(subj); ++ } else { ++ Subject=GetLineMalloced("Subject", "<NO SUBJECT>"); ++ } ++ break; ++ } ++ case 't': ++ ToList = AddToList(ToList, start, 1); ++ if (!V_quiet) printf("To field is now: %s\n", ToList); ++ break; ++ case 'u': ++ ToggleStyle("underline", fpout, CurrentPart, StartUnderline, StopUnderline); ++ break; ++ case 'v': ++ EditCurrentMessage(1); ++ break; ++ case 'w': ++ { ++ FILE *fptmp; ++ char *fname; ++ fclose(fpout); ++ fname = start; ++ fptmp = fopen(fname, "w"); ++ WriteOutMessage(fptmp, ToList, Subject, CCList, FirstPart); ++ TempCloseStyles(fptmp); ++ if(fclose(fptmp)) { ++ fprintf(stderr, "Could not write file %s\n", fname); ++ } else { ++ printf("Wrote draft to %s\n", fname); ++ } ++ fpout = fopen(CurrentPart->filename, "a"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ break; ++ } ++ case 'z': ++ { ++ char FBuf[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(FBuf, sizeof(FBuf), "%s/.signature", gethome()); ++ } else { ++ strcpy(FBuf, start); ++ } ++ fpin = fopen(FBuf, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", FBuf); ++ break; ++ } ++ CurrentPart->isrich = 1; ++ StartStyle(fpout, "signature", NULL); ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if ((CurrentPart->istext || CurrentPart->isrich) && !strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ EndStyle(fpout, "signature"); ++ if (!V_quiet) printf("Included contents of %s\n", FBuf); ++ printf("(continue)\n"); ++ break; ++ } ++ case 'Z': ++ { ++ char fnam[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(fnam, sizeof(fnam), "%s/.SIGNATURE", gethome()); ++ } else { ++ strcpy(fnam, start); ++ } ++ fpin = fopen(fnam, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", fnam); ++ break; ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->istext = 0; ++ CurrentPart->content_type = "message/rfc822"; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Cannot open temporary file %s\n", CurrentPart->filename); ++ break; ++ } ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen && ++ (CurrentPart->istext || CurrentPart->isrich)) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ fclose(fpout); ++ printf("Included contents of %s\n", fnam); ++ printf("(continue)\n"); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ default: ++ printf("Unrecognized tilde escape: %c\n", LineBuf[1]); ++ break; ++ } ++ } else { ++ FputsQuotingLT(LineBuf, fpout, CurrentPart, EightBitMode, RightToLeftMode); ++ } ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ printf("EOT\n"); ++ if (V_verbose) { ++ snprintf(CmdBuf, sizeof(CmdBuf), "splitmail -d -v -s %d", SplitSize); ++ } else { ++ snprintf(CmdBuf, sizeof(CmdBuf), "splitmail -d -s %d", SplitSize); ++ } ++ fpout = popen(CmdBuf, "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't write to splitmail\n"); ++ (void) WriteDeadLetter(); ++ cleanexit(-1); ++ } ++ WriteOutMessage(fpout, ToList, Subject, CCList, FirstPart); ++ if (ferror(fpout) || pclose(fpout)) { ++ perror("mailto: Error writing to splitmail"); ++ (void) WriteDeadLetter(); ++ cleanexit(-1); ++ } ++ cleanexit(0); /* Never returns */ ++} ++ ++char *newid() { ++ static char idbuf[100]; ++ static int ctr=0; ++ ++ snprintf(idbuf, sizeof(idbuf), "<%d_%d_%d_%d@%s>", (int) getuid(), (int) getpid(), (int) time(0), ++ctr, getmyname()); ++ ++ return(idbuf); ++} ++ ++WriteOutMessage(fp, ToList, Subject, CCList, FirstPart) ++FILE *fp; ++char *ToList, *Subject, *CCList; ++struct mailpart *FirstPart; ++{ ++ FILE *fpin; ++ static int ctr = 0; ++ fprintf(fp, "MIME-Version: 1.0\n"); ++ if (InReplyTo != NULL) { ++ EmitHeader(fp, "In-Reply-To", InReplyTo); ++ } ++ EmitHeaderWithAliases(fp, "To", ToList); ++ ++ EmitHeader(fp, "Subject", Subject); ++ if (CCList && *CCList) EmitHeaderWithAliases(fp, "Cc", CCList); ++ if (V_keepblind) { ++ struct passwd *p = getpwuid(getuid()); ++ if (!p) { ++ fprintf(stderr, "Can't find your user id to keep a blind copy\n"); ++ } else { ++ EmitHeader(fp, "Bcc", p->pw_name); ++ } ++ } ++ fprintf(fp, "Message-ID: %s\n", newid()); ++ if (!FirstPart) return; /* empty body */ ++ if (FirstPart->next) { ++ char boundary[120]; ++ snprintf(boundary, sizeof(boundary), "PART.BOUNDARY.%d.%d.%s.%d.%d", ++ (int) getuid(), (int) getpid(), getmyname(), (int) time(0), ++ctr); ++ fprintf(fp, "Content-type: multipart/mixed;\n\tboundary=\"%s\"\n\n", boundary); ++ fprintf(fp, "> THIS IS A MESSAGE IN 'MIME' FORMAT. Your mail reader does not support MIME.\n> Some parts of this will be readable as plain text.\n> To see the rest, you will need to upgrade your mail reader.\n"); ++ while(FirstPart) { ++ /* First check to see if it is empty & text, in which case skip it */ ++ if (FirstPart->istext) { ++ struct stat stbuf; ++ if (!stat(FirstPart->filename, &stbuf)) { ++ if (stbuf.st_size == 0) { ++ FirstPart = FirstPart->next; ++ continue; ++ } ++ } ++ } ++ fprintf(fp, "\n--%s\n", boundary); ++ WriteContentTypeAndEncoding(fp, FirstPart); ++ fprintf(fp, "\n"); ++ fpin = fopen(FirstPart->filename, "r"); ++ if (!fpin) { ++ fprintf(stderr, "Can't read temporary file %s\n", FirstPart->filename); ++ cleanexit(-1); ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fp, FirstPart->encoding_type_needed, FirstPart->content_type); ++ fclose(fpin); ++ FirstPart = FirstPart->next; ++ } ++ fprintf(fp, "\n--%s--\n\n", boundary); ++ } else { ++ WriteContentTypeAndEncoding(fp, FirstPart); ++ fprintf(fp, "\n"); ++ fpin = fopen(FirstPart->filename, "r"); ++ if (!fpin) { ++ fprintf(stderr, "Can't read temporary file %s\n", FirstPart->filename); ++ cleanexit(-1); ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fp, FirstPart->encoding_type_needed, FirstPart->content_type); ++ fclose(fpin); ++ } ++} ++ ++WriteContentTypeAndEncoding(fp, part) ++FILE *fp; ++struct mailpart *part; ++{ ++ fprintf(fp, "Content-ID: %s\n", newid()); ++ if (part->istext) { ++ if (part->isrich) { ++ if (strcmp(CharacterSet, "us-ascii") ++ && strcmp(CharacterSet, "koi8-r") ++ && (strncmp(CharacterSet, "iso-8859-", 9) ++ || part->encoding_type_needed != ENC_NONE)) { ++ fprintf(fp, "Content-type: text/richtext; charset=\"%s\"\n", CharacterSet); ++ } else { ++ fprintf(fp, "Content-type: text/richtext\n"); ++ } ++ } else { ++ fprintf(fp, "Content-type: "); ++ WriteCtypeNicely(fp, part->content_type); ++ if (strcmp(CharacterSet, "us-ascii") ++ && (strncmp(CharacterSet, "iso-8859-", 9) ++ || part->encoding_type_needed != ENC_NONE)) { ++ fprintf(fp, "; charset=\"%s\"\n", CharacterSet); ++ } else fputs("\n", fp); ++ } ++ } else { ++ fprintf(fp, "Content-type: "); ++ WriteCtypeNicely(fp, part->content_type); /* fixes some syntactic junk */ ++ fputs("\n", fp); ++ } ++ if (part->istext && part->isrich && part->encoding_type_needed == ENC_NONE) { ++ /* Don't you believe it... */ ++ part->encoding_type_needed = ENC_QP; ++ } ++ if (part->encoding_type_needed == ENC_B64) { ++ fprintf(fp, "Content-Transfer-Encoding: base64\n"); ++ } else if (part->encoding_type_needed == ENC_QP) { ++ fprintf(fp, "Content-Transfer-Encoding: quoted-printable\n"); ++ } ++} ++ ++TranslateInputToEncodedOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int c, EightBitSeen = 0; ++ ++ switch(Ecode) { ++ case ENC_B64: ++ to64(InputFP, OutputFP, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENC_QP: ++ toqp(InputFP, OutputFP); ++ break; ++ default: ++ while ((c = getc(InputFP)) != EOF){ ++ if (c > 127) EightBitSeen = 1; ++ putc(c, OutputFP); ++ } ++ } ++ return(EightBitSeen); ++} ++ ++#define MAX_STACK_SIZE 500 ++static int StackSize=0; ++static char *Stack[MAX_STACK_SIZE]; ++static char *EnvStartStack[MAX_STACK_SIZE]; ++ ++/* The following two routines are used when richtext styles need to be ++ kept open across an inserted object -- i.e. the richtext is split into ++ two parts of a multipart message */ ++ ++TempCloseStyles(fp) ++FILE *fp; ++{ ++ int i = StackSize; ++ while(--i>=0) { ++ fprintf(fp, "</%s>", Stack[i]); ++ } ++ tfputs(StopUnderline); ++ tfputs(standendbuf); ++ tfputs(BoldOff); ++ fflush(stdout); ++} ++ ++RestoreCurrentStyles() { ++ int i=0; ++ while (i<StackSize) { ++ if (EnvStartStack[i]) { ++ tfputs(EnvStartStack[i]); ++ } ++ ++i; ++ } ++} ++ ++ReopenStyles(fp, part) ++FILE *fp; ++struct mailpart *part; ++{ ++ int i=0; ++ RestoreCurrentStyles(); ++ if (StackSize > 0) part->isrich = 1; ++ while (i < StackSize) { ++ fprintf(fp, "<%s>", Stack[i++]); ++ } ++} ++ ++richtextreset() ++{ ++ StackSize = 0; ++} ++ ++AlreadyInStyle(s) ++char *s; ++{ ++ int i; ++ for (i=0; i<StackSize; ++i) { ++ if (!strcmp(Stack[i], s)) return(1); ++ } ++ return(0); ++} ++ ++StartStyle(fp, s, envstartstr) ++FILE *fp; ++char *s; ++char *envstartstr; ++{ ++ char *t; ++ fprintf(fp, "<%s>", s); ++ PartEndsWithNewline=0; ++ t = malloc(1+strlen(s)); ++ if (!t) nomemabort(); ++ strcpy(t, s); ++ EnvStartStack[StackSize] = envstartstr; ++ Stack[StackSize++] = t; ++ if (!V_quiet) printf("Beginning: %s\n", t); ++} ++ ++EndStyle(fp, s) ++FILE *fp; ++char *s; ++{ ++ int i = StackSize, j; ++ while(--i>=0) { ++ fprintf(fp, "</%s>", Stack[i]); ++ if (!strcmp(s, Stack[i])) break; ++ } ++ if (i>=0) { ++ free(Stack[i]); ++ --StackSize; ++ for (j=i; j<StackSize; ++j) { ++ Stack[j] = Stack[j+1]; ++ EnvStartStack[j] = EnvStartStack[j+1]; ++ } ++ } else i=0; ++ while (i<StackSize) { ++ fprintf(fp, "<%s>", Stack[i++]); ++ } ++ PartEndsWithNewline=0; ++ if (!V_quiet) printf("Ending: %s\n", s); ++} ++ ++ToggleStyle(name, fp, part, turnonstr, turnoffstr) ++char *name; ++FILE *fp; ++struct mailpart *part; ++char *turnonstr, *turnoffstr; ++{ ++ part->isrich = 1; ++ if (AlreadyInStyle(name)) { ++ EndStyle(fp, name); ++ if (turnoffstr) tfputs(turnoffstr); ++ RestoreCurrentStyles(); /* because on some terminals, ++ the same thing turns ++ off underlining AND bold */ ++ } else { ++ StartStyle(fp, name, turnonstr); ++ if (turnonstr) tfputs(turnonstr); ++ } ++} ++ ++TryOpeningStyle(name, fp, part, envstartstr) ++char *name; ++FILE *fp; ++struct mailpart *part; ++char *envstartstr; ++{ ++ if (AlreadyInStyle(name)) { ++ printf("mailto: Already in %s style\n", name); ++ } else { ++ part->isrich = 1; ++ StartStyle(fp, name, envstartstr); ++ } ++} ++ ++TryClosingStyle(name, fp, part) ++char *name; ++FILE *fp; ++struct mailpart *part; ++{ ++ if (AlreadyInStyle(name)) { ++ part->isrich = 1; ++ EndStyle(fp, name); ++ } else { ++ printf("mailto: You aren't in a %s style\n", name); ++ } ++} ++ ++FputsQuotingLT(s, fp, part, EightBitMode, RightToLeftMode) ++char *s; ++FILE *fp; ++struct mailpart *part; ++int EightBitMode, RightToLeftMode; ++{ ++ static int InNewLineSequence=1; ++ int c=0; ++ char LBuf[1000], *sdum; ++ if (*s == '\n') { ++ if (InNewLineSequence) { ++ fputs("<nl>\n", fp); ++ } else { ++ fputs("<nl><nl>\n\n", fp); ++ InNewLineSequence = 1; ++ } ++ part->isrich = 1; ++ PartEndsWithNewline=1; ++ return; ++ } ++ InNewLineSequence = 0; ++ if (RightToLeftMode) { ++ sdum = s+strlen(s)-1; ++ if (*sdum == '\n') --sdum; ++ while (sdum >= s) { ++ LBuf[c++] = *sdum--; ++ } ++ LBuf[c++] = '\n'; ++ LBuf[c] = '\0'; ++ s = LBuf; ++ } ++ if (isspace((unsigned char) *s)) { ++ /* Lines that start with spaces should not be folded! */ ++ fputs("<nl>", fp); ++ part->isrich = 1; ++ } ++ if (s) { ++ if (EightBitMode) part->encoding_type_needed = ENC_QP; ++ while (*s) { ++ c = (unsigned char) *s; ++ if (EightBitMode) { ++ if (isprint(c) && ! isspace(c)) { ++ c = c+128; ++ } ++ putc(c, fp); ++ putc(c, stdout); ++ } else if (c == '<') { ++ part->isrich = 1; ++ fputs("<lt>", fp); ++ } else { ++ if (c > 127 || c < 0) { ++ part->encoding_type_needed = ENC_QP; ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ putc(c, fp); ++ if (RightToLeftMode) putc(c, stdout); ++ } ++ ++s; ++ } ++ PartEndsWithNewline = (c == '\n') ? 1 : 0; ++ } ++} ++ ++cleanexit(code) ++int code; ++{ ++ finalize(); ++ exit(code); ++} ++ ++finalize() { ++ while (FirstPart) { ++ unlink(FirstPart->filename); ++ FirstPart = FirstPart->next; ++ } ++ FinalizeTerminal(); ++} ++ ++void ++cleanup(signum) ++int signum; ++{ ++ if (fpout) { ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ } ++ if (signum == SIGPIPE) { ++ (void) WriteDeadLetter(); ++ } ++ if (signum == SIGINT) { ++ if (V_ignore) { ++ printf("Interrupt ignored because 'ignore' is set. Use ~q if you want to quit.\n"); ++ return; ++ } else { ++ (void) WriteDeadLetter(); ++ } ++ } ++ finalize(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++InitSignals() { ++ signal(SIGINT, cleanup); ++ signal(SIGPIPE, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++WriteDeadLetter() ++{ ++ FILE *fp; ++ char DeadFile[1000]; ++ ++ snprintf(DeadFile, sizeof(DeadFile), "%s/dead.letter", gethome()); ++ fp = fopen(DeadFile, "w"); ++ WriteOutMessage(fp, ToList, Subject, CCList, FirstPart); ++ if(fclose(fp)) { ++ perror("Could not write ~/dead.letter\n"); ++ return(-1); ++ } else { ++ printf("Wrote draft to ~/dead.letter\n"); ++ return(0); ++ } ++} ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ char *editcommand; ++ char *composecommand; ++ char *composetypedcommand; ++ char *label; ++ int needsterminal; ++ int copiousoutput; ++ struct MailcapEntry *next; ++} *FirstMailcapEntry = NULL; ++ ++/* There are a fair number of core leaks in what follows. That should matter little -- the mailcap files are only parsed once, and are usually pretty small anyway. */ ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = malloc(strlen(s)*2); /* absolute max, if all % signs */ ++ if (!s2) nomemabort(); ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = '\0'; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = '\0'; ++ return(NULL); ++} ++ ++char *Cleanse(s, dolc) /* no leading or trailing space, all lower case */ ++char *s; ++int dolc; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case, find end */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (dolc && isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (--tmp && *tmp && isspace((unsigned char) *tmp)) *tmp = '\0'; ++ return(news); ++} ++ ++char *DeQuote(s) ++char *s; ++{ ++ char *retval; ++ s = Cleanse(s, 0); ++ if (*s != '"') return(s); ++ retval = ++s; ++ while (s && *s) { ++ s = index(s, '\"'); ++ if (!s) return(retval); /* but it's a bad parse */ ++ if (*(s-1) != '\\') { ++ *s = '\0'; ++ return(retval); ++ } ++ ++s; ++ } ++ return(retval); /* also a bad parse */ ++} ++ ++struct MailcapEntry * ++GetMailcapEntry(fp) ++FILE *fp; ++{ ++ int rawentryalloc = MAX_LINELENGTH, len; ++ char *rawentry, *s, *t, *LineBuf; ++ struct MailcapEntry *mc; ++ ++ LineBuf = malloc(MAX_LINELENGTH); ++ if (!LineBuf) nomemabort(); ++ rawentry = malloc(1 + rawentryalloc); ++ mc = (struct MailcapEntry *) malloc(sizeof (struct MailcapEntry)); ++ if (!rawentry || !mc) nomemabort(); ++ *rawentry = '\0'; ++ while (fgets(LineBuf, MAX_LINELENGTH, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = '\0'; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += MAX_LINELENGTH; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ if (!rawentry) nomemabort(); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = '\0'; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ free(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ free(rawentry); ++ return(NULL); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "mailto: Ignoring invalid mailcap entry: %s\n", rawentry); ++ free(rawentry); ++ return(NULL); ++ } ++ *s++ = '\0'; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->testcommand = NULL; ++ mc->composecommand = NULL; ++ mc->composetypedcommand = NULL; ++ mc->editcommand = NULL; ++ mc->label = NULL; ++ mc->contenttype = malloc(1+strlen(rawentry)); ++ mc->next = NULL; ++ if (!mc->contenttype) nomemabort(); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = '\0'; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = '\0'; ++ arg = Cleanse(arg, 1); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "edit")) { ++ mc->editcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "compose")) { ++ mc->composecommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "composetyped")) { ++ mc->composetypedcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = DeQuote(eq); /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++/* if (*arg) fprintf(stderr, "mailto: Ignoring invalid mailcap flag: %s\n", arg); */ ++ } ++ s = t; ++ } ++ free(rawentry); ++ return(mc); ++} ++ ++ProcessMailcapFiles() ++{ ++ char *s, *path = getenv("MAILCAPS"), *origpath; ++ static char *stdpath = STDPATH; ++ struct MailcapEntry *mc, *CurrentMailcapEntry = NULL; ++ FILE *fp; ++ ++ if (!path) { ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (p) path = malloc(5+strlen(p->pw_dir) + strlen(stdpath)); ++ if (!p || !path) nomemabort(); ++ strcpy(path, p->pw_dir); ++ strcat(path, stdpath); ++ } else { ++ char *pathcopy; ++ pathcopy = malloc(1+strlen(path)); ++ if (!pathcopy) nomemabort(); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ origpath = path; ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = '\0'; ++ fp = fopen(path, "r"); ++ while (fp && !feof(fp)) { ++ mc = GetMailcapEntry(fp); ++ if (!mc) continue; ++ if (!FirstMailcapEntry) { ++ FirstMailcapEntry = mc; ++ CurrentMailcapEntry = mc; ++ } else { ++ CurrentMailcapEntry->next = mc; ++ CurrentMailcapEntry = mc; ++ } ++ } ++ if (fp) fclose(fp); ++ path = s; ++ } ++ free(origpath); ++ return(-1); ++} ++ ++struct mailpart * ++CreateNewPart() { ++ struct mailpart *mp; ++ struct MailcapEntry *mc = FirstMailcapEntry; ++ int i, ans, resultcode; ++ char LineBuf[100], *CmdBuf; ++ ++ mp = NewPart(); ++ if (!mp) return(NULL); ++ printf("Please choose which kind of data you wish to insert:\n\n"); ++ printf("0: A raw file, possibly binary, of no particular data type.\n"); ++ printf("1: Raw data from a file, with you specifying the content-type by hand.\n"); ++ i = 1; ++ while (mc) { ++ if (mc->composecommand || mc->composetypedcommand) { ++ ++i; ++ if (mc->label) { ++ printf("%d: %s\n", i, mc->label); ++ } else { ++ printf("%d: data in '%s' format\n", i, mc->contenttype); ++ } ++ } ++ mc = mc->next; ++ } ++ printf("\n\nEnter your choice as a number from 0 to %d: ", i); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ ans = atoi(LineBuf); ++ if (ans == 0 || ans == 1) { ++ char *sdum, CTLineBuf[100]; ++ FILE *fpi, *fpo; ++ printf("\nIf you want to include non-textual data from a file, enter the file name.\nTo include the output of a command, enter \"|\" followed by the command.\nIf you do not want to include anything, just press ENTER (RETURN).\n> "); ++ fflush(stdout); ++ fgets(CTLineBuf, sizeof(CTLineBuf), stdin); ++ sdum = CTLineBuf+strlen(CTLineBuf) -1; ++ while (sdum >= CTLineBuf && isspace((unsigned char) *sdum)) { ++ *sdum = '\0'; ++ --sdum; ++ } ++ sdum=CTLineBuf; ++ while (*sdum && isspace((unsigned char) *sdum)) ++sdum; ++ if (! *sdum) { ++ printf("Data insertion cancelled\n"); ++ return(NULL); ++ } ++ if (*sdum == '|') { ++ fpi = popen(sdum+1, "r"); ++ } else { ++ fpi = fopen(sdum, "r"); ++ } ++ if (!fpi) { ++ printf("Cannot read %s, data insertion cancelled\n", sdum); ++ return(NULL); ++ } ++ fpo = fdopen(mkstemp(mp->filename), "w"); ++ if (!fpo) { ++ printf("Cannot open temporary file, data insertion cancelled\n"); ++ return(NULL); ++ } ++ (void) TranslateInputToEncodedOutput(fpi, fpo, ENC_NONE, ""); ++ if (*sdum == '|') { ++ fclose(fpi); ++ } else { ++ pclose(fpi); ++ } ++ fclose(fpo); ++ mp->istext = 0; ++ if (ans == 1) { ++ while (1) { ++ int ct; ++ printf("\nEnter the MIME Content-type value for the data from file %s\n (type '?' for a list of locally-valid content-types): ", sdum); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ LineBuf[strlen(LineBuf)-1]='\0'; ++ if (index(LineBuf, '/')) { ++ char lc[100], *s, AnsBuf[100]; ++ strcpy(lc, LineBuf); ++ for (s=lc; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strcmp(lc, "text/plain")) break; ++ if (!strcmp(lc, "application/octet-stream")) break; ++ mc=FirstMailcapEntry; ++ while (mc) { ++ if (mc->contenttype && index(mc->contenttype, '/') && !index(mc->contenttype, '*') && !lc2strcmp(mc->contenttype, lc)) { ++ break; ++ } ++ mc = mc->next; ++ } ++ if (mc) break; ++ printf("The MIME content-type '%s' is not listed in your local mailcap files,\nand may not be a valid MIME type. Do you want to use it anyway [no] ? ", LineBuf); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (s && (*s == 'y' || *s == 'Y')) break; ++ continue; ++ } ++ printf("\nMIME content-type values are type/format pairs, and always include a '/'.\nThe types supported at your site include, but are not limited to:\n\n"); ++ mc=FirstMailcapEntry; ++ ct = 0; ++ while (mc) { ++ if (mc->contenttype && index(mc->contenttype, '/') && !index(mc->contenttype, '*')) { ++ if (ct++) fputs(", ", stdout); ++ fputs(mc->contenttype, stdout); ++ } ++ mc = mc->next; ++ } ++ fputs("\n\nThe MIME content-type for file inclusion is 'application/octet-stream'.\n", stdout); ++ } ++ mp->content_type = freshcopy(LineBuf); ++ } else mp->content_type=freshcopy("application/octet-stream"); ++ mp->encoding_type_needed = WhichEncodingForFile(mp->filename, mp->content_type); ++ printf("Included data in '%s' format\n", mp->content_type); ++ printf("(continue)\n"); ++ SetTextFlags(mp); ++ return(mp); ++ } else if (ans<0 || ans > i) { ++ printf("Data insertion cancelled\n"); ++ return(NULL); ++ } ++ i=2; ++ mc=FirstMailcapEntry; ++ while (mc) { ++ if (mc->composecommand || mc->composetypedcommand) { ++ if (i == ans) break; ++ ++i; ++ } ++ mc = mc->next; ++ } ++ CmdBuf = malloc(CMDSIZE); ++ if (!CmdBuf) nomemabort(); ++ BuildCommand(CmdBuf, mc->composecommand ? mc->composecommand : mc->composetypedcommand, mp->filename); ++ printf("Executing: %s\n", CmdBuf); ++ resultcode = SYSTEM(CmdBuf); ++ if (resultcode) { ++ printf("Command execution failed, nothing included\n"); ++ free(CmdBuf); ++ return(NULL); ++ } ++ if (access(mp->filename, R_OK)) { ++ printf("No file was created, nothing included!\n"); ++ free(CmdBuf); ++ return(NULL); ++ } ++ mp->istext = 0; ++ if (mc->composecommand) { ++ mp->content_type = mc->contenttype; ++ mp->encoding_type_needed = WhichEncodingForFile(mp->filename, mp->content_type); ++ } else { ++ char c, LineBuf[1000], *colon, *ctypebuf = NULL, *cencbuf = NULL, *s, *newfilename; ++ FILE *fp, *fpout; ++ int inheaders=1, bct=0; ++ ++ s = LineBuf; ++ fp = fopen(mp->filename, "r"); ++ if (!fp) { ++ fprintf(stderr, "Cannot read file %s, no data included.\n", mp->filename); ++ free(CmdBuf); ++ return(NULL); ++ } ++ while ((c = getc(fp)) != EOF && inheaders) { ++ if (c == '\n') { ++ c = getc(fp); ++ if (c == ' ' || c == '\t') { ++ *s++ = ' '; ++ } else { ++ /* actually process the header */ ++ *s = 0; ++ colon = index(LineBuf, ':'); ++ if (colon) { ++ *colon++ = 0; ++ for (s=LineBuf; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strcmp(LineBuf, "content-transfer-encoding")) { ++ cencbuf = malloc(1+strlen(colon)); ++ if (!cencbuf) nomemabort(); ++ strcpy(cencbuf, colon); ++ } else if (!strcmp(LineBuf, "content-type")) { ++ ctypebuf = malloc(1+strlen(colon)); ++ if (!ctypebuf) nomemabort(); ++ strcpy(ctypebuf, colon); ++ } ++ } ++ if (c == '\n') { ++ inheaders = 0; ++ break; ++ } ++ ungetc(c, fp); ++ s = LineBuf; /* start over */ ++ } ++ } else { ++ *s++ = c; ++ } ++ } ++ if (!ctypebuf) { ++ fprintf(stderr, "The command (%s) did not return a content-type value, so no data could be included.\n", CmdBuf); ++ free(CmdBuf); ++ return(NULL); ++ } ++ mp->content_type = ctypebuf; ++ if (cencbuf) { ++ while (*cencbuf && isspace(*cencbuf)) ++cencbuf; ++ for (s=cencbuf; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strncmp(cencbuf, "base64", 6)) { ++ mp->encoding_type_needed = ENC_B64; ++ } else if (!strncmp(cencbuf, "quoted-printable", 16)) { ++ mp->encoding_type_needed = ENC_QP; ++ } else { ++ fprintf(stderr, "The command (%s) returned an unrecognized content-transfer-encoding value, so no data could be included.\n", CmdBuf); ++ free(CmdBuf); ++ return(NULL); ++ } ++ } else { ++ mp->encoding_type_needed = ENC_NONE; ++ } ++ newfilename = tmpname(); ++ fpout = fdopen(mkstemp(newfilename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "Cannot open file %s for writing, no data included.\n", newfilename); ++ free(CmdBuf); ++ return(NULL); ++ } ++ switch(mp->encoding_type_needed) { ++ case ENC_B64: ++ from64(fp, fpout, NULL, &bct, 0); ++ break; ++ case ENC_QP: ++ fromqp(fp, fpout, NULL, &bct); ++ break; ++ default: ++ while ((c = getc(fp)) != EOF) { ++ putc(c, fpout); ++ } ++ break; ++ } ++ fclose(fp); ++ fclose(fpout); ++ unlink(mp->filename); ++ mp->filename = newfilename; ++ } ++ SetTextFlags(mp); ++ printf("Included data in '%s' format\n", mc->contenttype); ++ printf("(continue)\n"); ++ free(CmdBuf); ++ return(mp); ++} ++ ++SetTextFlags(mp) ++struct mailpart *mp; ++{ ++ if (!lc2strncmp(mp->content_type, "text/", 5)) { ++ mp->istext = 1; ++ if (!lc2strncmp(mp->content_type, "text/richtext", 13)) { ++ mp->isrich = 1; ++ } ++ } ++} ++ ++WhichEncodingForFile(fname, ctype) ++char *fname, *ctype; ++{ ++ int c, linesize=0, total=0, unsafechars=0, longlines=0; ++ char *s; ++ FILE *fp = fopen(fname, "r"); ++ if (!fp) { ++ /* If the stupid editing program forks, this actually will do a ++ reasonable thing as long as it saves the file before the mail is sent */ ++ return(ENC_B64); /* safest */ ++ } ++ while ((c = getc(fp)) != EOF) { ++ if (c>127) ++unsafechars; ++ ++total; ++ if (c == '\n') { ++ if (linesize > 79) ++longlines; ++ linesize = 0; ++ } else ++linesize; ++ if (total>1000 && (longlines || unsafechars)) break; ++ } ++ fclose(fp); ++ if (longlines || unsafechars) { ++ for (s=ctype; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ if (!strncmp(ctype, "image/", 6) ++ || !strncmp(ctype, "audio/", 6) ++ || !strncmp(ctype, "application/octet-stream", 24) ++ || !strncmp(ctype, "video/", 6)) { ++ return(ENC_B64); ++ } ++ if (!unsafechars) return(ENC_QP); ++ ++ return((total/unsafechars < 16) ? ENC_B64 : ENC_QP); ++ } ++ return(ENC_NONE); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName) ++char *Buf, *controlstring, *TmpFileName; ++{ ++ char *from, *to; ++ int prefixed = 0; ++ int NamedFile=0; ++ ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 's': ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ ++NamedFile; ++ } ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%<%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = '\0'; ++ if (!NamedFile) { ++ strcat(Buf, " > "); ++ strcat(Buf, TmpFileName); ++ } ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char *s; ++ for (s=ctype; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ for (s=pat; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ if (!strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!strncmp(ctype, pat, len)) ++ && (ctype[len] == '/')){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++EditCurrentMessage(UseVisual) ++int UseVisual; ++{ ++ char *editor = NULL; ++ char *CmdBuf, *CmdBuf2, LineBuf[100]; ++ struct mailpart *mp, *lastmp=NULL; ++ struct MailcapEntry *mc; ++ int partct=1, ans; ++ ++ CmdBuf = malloc(CMDSIZE); ++ CmdBuf2 = malloc(CMDSIZE); ++ if (!CmdBuf || !CmdBuf2) nomemabort(); ++ if (!PartEndsWithNewline) { ++ putc('\n', fpout); ++ PartEndsWithNewline=1; ++ } ++ fclose(fpout); ++ if (UseVisual) editor = getenv("VISUAL"); ++ if (!editor) editor = getenv("EDITOR"); ++ if (!editor) editor = DEFAULT_EDITOR; ++ if (!FirstPart->next) { ++ /* Only one part */ ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", editor, FirstPart->filename); ++ printf("Executing: %s\n", CmdBuf); ++ SYSTEM(CmdBuf); ++ if ((FirstPart->istext || FirstPart->isrich) && ++ FirstPart->encoding_type_needed == ENC_NONE && ++ ContainsEightBitChar(FirstPart->filename)) { ++ FirstPart->encoding_type_needed = ENC_QP; ++ } ++ fpout = fopen(FirstPart->filename, "a"); ++ free(CmdBuf); ++ free(CmdBuf2); ++ return; ++ } ++ lastmp = mp = FirstPart; ++ while (mp) { ++ printf("Part #%d is of type '%s'.\n", partct, mp->content_type); ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", editor, mp->filename); ++ if (mp->mc && mp->mc->editcommand) { ++ BuildCommand(CmdBuf2, mp->mc->editcommand, mp->filename); ++ } else { ++ mc = FirstMailcapEntry; ++ while (mc) { ++ if (mc->editcommand && CtypeMatch(mp->content_type, mc->contenttype)) { ++ break; ++ } ++ mc = mc->next; ++ } ++ if (mc) { ++ BuildCommand(CmdBuf2, mc->editcommand, mp->filename); ++ } else { ++ CmdBuf2[0] = '\0'; ++ } ++ } ++ if (CmdBuf2[0]) { ++ printf("Which command do you want to use to edit it?\n\n"); ++ printf("1: %s\n", CmdBuf2); ++ printf("2: %s\n", CmdBuf); ++ printf("\n\nEnter 1 or 2, or 0 to not edit it: "); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ ans = atoi(LineBuf); ++ } else ans = 2; ++ if (ans == 1) { ++ printf("Executing: %s\n", CmdBuf2); ++ SYSTEM(CmdBuf2); ++ } else if (ans == 2) { ++ printf("Executing: %s\n", CmdBuf); ++ SYSTEM(CmdBuf); ++ } ++ if ((mp->istext || mp->isrich) && ++ mp->encoding_type_needed == ENC_NONE && ++ ContainsEightBitChar(mp->filename)) { ++ mp->encoding_type_needed = ENC_QP; ++ } ++ ++partct; ++ lastmp = mp; ++ mp = mp->next; ++ } ++ fpout = fopen(lastmp->filename, "a"); ++ free(CmdBuf); ++ free(CmdBuf2); ++} ++ ++ ++ProcessInitFiles() { ++ char fname[FILE_NAME_SIZE]; ++ ++ ProcessOneMailRC("/usr/lib/Mail.rc", 0); ++ snprintf(fname, sizeof(fname), "%s/.mailrc", gethome()); ++ ProcessOneMailRC(fname, 0); ++ snprintf(fname, sizeof(fname), "%s/.AMS_aliases", gethome()); ++ ProcessOneMailRC(fname, 1); ++} ++ ++char * ++NextAliasLine(LineBuf, LineAlloced, LineCount, fp, IsAndrew) ++char *LineBuf; ++int *LineAlloced, *LineCount; ++FILE *fp; ++int IsAndrew; ++{ ++ char *sbuf; ++ sbuf = malloc(MAX_LINELENGTH); ++ if (!sbuf) nomemabort(); ++ if (!LineBuf) { ++ *LineAlloced = MAX_LINELENGTH + MAX_LINELENGTH; ++ LineBuf = malloc(*LineAlloced); ++ if (!LineBuf) nomemabort(); ++ } ++ *LineBuf = 0; ++ *LineCount = 0; ++ while (1) { ++ if (fgets(sbuf, MAX_LINELENGTH, fp) == NULL) { ++ return(LineBuf); ++ } ++ *LineCount += strlen(sbuf); ++ if (*LineCount >= *LineAlloced) { ++ *LineAlloced += MAX_LINELENGTH; ++ LineBuf = realloc(LineBuf, *LineAlloced); ++ if (!LineBuf) nomemabort(); ++ } ++ strcat(LineBuf, sbuf); ++ if (IsAndrew || LineBuf[*LineCount - 2] != '\\') return(LineBuf); ++ /* The -2 got us past the newline. */ ++ LineBuf[*LineCount - 2] = ' '; ++ *LineCount -= 1; ++ LineBuf[*LineCount] = '\0'; ++ } ++} ++ ++ProcessOneMailRC(fname, IsAndrew) ++char *fname; ++int IsAndrew; ++{ ++ FILE *fp; ++ char *LineBuf = NULL, *sdum; ++ int LineAlloced = 0, LineCount = 0; ++ ++ fp = fopen(fname, "r"); ++ if (!fp) return; ++ do { ++ LineBuf=NextAliasLine(LineBuf, &LineAlloced, &LineCount, fp, IsAndrew); ++ if (LineCount == 0) continue; ++ if (IsAndrew && LineBuf[0] == '#') continue; ++ for (sdum = LineBuf; *sdum; ++sdum) { ++ if (*sdum == ' ') break; /* only map first word to lower case */ ++ if (isupper((unsigned char) *sdum)) *sdum = tolower((unsigned char) *sdum); ++ } ++ if (IsAndrew) { ++ HandleAliasCommand(LineBuf); ++ } else if (!strncmp(LineBuf, "set ", 4)) { ++ HandleSetCommand(LineBuf+4, 1); ++ } else if (!strncmp(LineBuf, "unset ", 6)) { ++ HandleSetCommand(LineBuf+6, 0); ++ } else if (!strncmp(LineBuf, "alias ", 6)) { ++ HandleAliasCommand(LineBuf+6); ++ } else { ++ /* ignore */ ++ } ++ } while (LineCount != 0); ++ free(LineBuf); ++ fclose(fp); ++} ++ ++HandleSetCommand(cmd, DoSet) ++char *cmd; ++int DoSet; ++{ ++ char *s; ++ int i; ++ ++ while (*cmd) { ++ while (*cmd && isspace((unsigned char) *cmd)) ++cmd; ++ for (s=cmd; *s && !isspace((unsigned char) *s); ++s) {;} ++ *s++ = '\0'; ++ if (!strcmp(cmd, "askcc")) { ++ V_askcc = DoSet; ++ } else if (!strcmp(cmd, "dot")) { ++ V_dot = DoSet; ++ } else if (!strcmp(cmd, "ignore")) { ++ V_ignore = DoSet; ++ } else if (!strcmp(cmd, "verbose")) { ++ V_verbose = DoSet; ++ } else if (!strcmp(cmd, "quiet")) { ++ V_quiet = DoSet; ++ } else if (!strcmp(cmd, "keepblind")) { ++ V_keepblind = DoSet; ++ } else if (!strcmp(cmd, "commasonly")) { ++ V_commasonly = DoSet; ++ } else if (!strncmp(cmd, "splitsize ", 9)) { ++ i = atoi(cmd+10); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring splitsize mailrc setting of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ } ++ } else { ++ /* ignore */ ++ } ++ cmd = s;; ++ } ++} ++ ++struct alias { ++ char *shortname, *longname; ++ struct alias *next; ++} *FirstAlias = NULL; ++ ++HandleAliasCommand(aliasline) ++char *aliasline; ++{ ++ struct alias *tmpalias; ++ char *s, *s2; ++ int len = strlen(aliasline); ++ ++ if (aliasline[len - 1] == '\n') { ++ aliasline[len - 1] = '\0'; ++ } ++ tmpalias = (struct alias *) malloc(sizeof (struct alias)); ++ s = malloc(len + 1); ++ if (!s || !tmpalias) nomemabort(); ++ strcpy(s, aliasline); ++ while (*s && isspace((unsigned char) *s)) { ++s;} ++ for (s2=s; *s2 && !isspace((unsigned char) *s2); ++s2) {;} ++ if (!*s2) { ++ if (s != s2) printf("mailto: ignoring bad alias line in init file: %s\n", aliasline); ++ free(s); ++ free(tmpalias); ++ return; ++ } ++ *s2++ = '\0'; ++ tmpalias->shortname = s; ++ tmpalias->longname = s2; ++ tmpalias->next = FirstAlias; ++ FirstAlias = tmpalias; ++} ++ ++EmitHeader(fp, hdr, body) ++FILE *fp; ++char *hdr; ++char *body; ++{ ++ fputs(hdr, fp); ++ fputs(": ", fp); ++ HeaderFputs(body, fp, hdr); ++ fputs("\n", fp); ++/* fprintf(fp, "%s: %s\n", hdr, body ? body : ""); */ ++} ++ ++char * ++firstbad(s) ++char *s; ++{ ++ char *dum; ++ for (dum=s; *dum; ++dum) { ++ if (!isascii(*dum) || iscntrl(*dum)) { ++ return(dum); ++ } ++ } ++ return(NULL); ++} ++ ++char * ++firstgood(s) ++char *s; ++{ ++ char *dum; ++ for (dum=s; *dum; ++dum) { ++ if (isascii(*dum) && !iscntrl(*dum)) { ++ return(dum); ++ } ++ } ++ return(NULL); ++} ++ ++HeaderFputs(s, fp, hdr) ++char *s; ++FILE *fp; ++char *hdr; ++{ ++ char *firstnonascii, *firstascii; ++ ++ if (!s) return; ++ firstnonascii=firstbad(s); ++ if (firstnonascii) { ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "Warning: The prevailing character set is ASCII. Your %s header has\nnon-ASCII or non-printing ASCII characters which may be unreadable.\n", hdr); ++ } ++ while (firstnonascii) { ++ while (s < firstnonascii) { ++ putc(*s, fp); ++ ++s; ++ } ++ firstascii=firstgood(s); ++ if (!firstascii) firstascii = s+strlen(s); ++ if ((firstascii - s) > 25) firstascii = s+25; /* Short encoded words */ ++ /* general format is =?charset?B or Q?encoded data?= */ ++ fprintf(fp, "=?%s?Q?", CharacterSet); ++ while (s < firstascii) { ++ PutQP(*s, fp); ++ ++s; ++ } ++ fputs("?= ", fp); /* close encoded word */ ++ firstnonascii=firstbad(s); ++ } ++ while (*s) { ++ putc(*s, fp); ++ ++s; ++ } ++ } else { ++ fputs(s, fp); ++ } ++} ++ ++static char basis_hex[] = "0123456789ABCDEF"; ++ ++PutQP(c, fp) ++unsigned char c; ++FILE *fp; ++{ ++ putc('=', fp); ++ putc(basis_hex[c>>4], fp); ++ putc(basis_hex[c&0xF], fp); ++} ++ ++EmitHeaderWithAliases(fp, hdr, names) ++FILE *fp; ++char *hdr; ++char *names; ++{ ++ fputs(hdr, fp); ++ fputs(": ", fp); ++ EmitAddresses(fp, names, hdr); ++ fputs("\n", fp); ++} ++ ++EmitAddresses(fp, names, hdr) ++FILE *fp; ++char *names; ++char *hdr; ++{ ++ char *s; ++ while (names) { ++ s= index(names, ','); ++ if (s) *s = '\0'; ++ DeAlias(names, fp, hdr); ++ if (s) { ++ *s++ = ','; ++ fputs(",\n\t", fp); ++ } ++ names = s; ++ } ++} ++ ++DeAlias(name, fp, hdr) ++char *name; ++FILE *fp; ++char *hdr; ++{ ++ struct alias *tmpalias; ++ char *end, savechar; ++ ++ while (isspace((unsigned char) *name)) ++name; ++ end = name+strlen(name)-1; ++ while (isspace((unsigned char) *end)) --end; ++ ++end; ++ savechar = *end; ++ for (tmpalias=FirstAlias; tmpalias; tmpalias = tmpalias->next) { ++ if (!strcmp(tmpalias->shortname, name)) { ++/* if (!lc2strcmp(name, tmpalias->shortname)) { */ ++ *end = savechar; ++ EmitAddresses(fp, tmpalias->longname, hdr); ++ return; ++ } ++ } ++ *end = savechar; ++ HeaderFputs(name, fp, hdr); ++} ++ ++ ++WriteCtypeNicely(fp, ct) ++FILE *fp; ++char *ct; ++{ ++ char *semi, *slash, *eq, *s; ++ ++ for (s = ct; *s; ++s) { ++ if (*s == '\n') *s = ' '; ++ } ++ semi = (char *) index(ct, ';'); ++ if (semi) *semi = '\0'; ++ slash = (char *) index(ct, '/'); ++ fputs(ct, fp); ++ if (!slash) fputs("/unknown", fp); ++ while (semi) { ++ ct = semi + 1; ++ *semi = ';'; ++ semi = (char *) index(ct, ';'); ++ if (semi) *semi = '\0'; ++ eq = (char *) index(ct, '='); ++ if (eq) *eq = '\0'; ++ fputs(";\n\t", fp); ++ while (isspace((unsigned char) *ct)) ++ct; ++ fputs(ct, fp); ++ if (eq) { ++ s = eq; ++ fputs("=", fp); ++ ++s; ++ while (isspace((unsigned char) *s)) ++s; ++ fputsquoting(s, fp); ++ *eq = '='; ++ } ++ } ++} ++ ++fputsquoting(s, fp) ++char *s; ++FILE *fp; ++{ ++ char *end = s + strlen(s) - 1; ++ while (isspace((unsigned char) *end) && end > s) --end; ++ if (*s == '\"') { ++ putc(*s, fp); ++ while (*++s) { ++ if (*s == '\"') break; /* MAY TERMINATE EARLY! */ ++ if (*s == '\\') { ++ putc(*s, fp); ++ ++s; /* Don't check this next char */ ++ if (!*s) break; ++ } ++ putc(*s, fp); ++ } ++ putc('\"', fp); ++ } else { ++ putc('\"', fp); ++ putc(*s, fp); ++ while (*++s) { ++ if (*s == '\"' || *s == '\\') { ++ putc('\\', fp); ++ } ++ putc(*s, fp); ++ } ++ putc('\"', fp); ++ } ++} ++ ++ ++controlputc(c) ++char c; ++{ ++ fputc(c, stdout); ++} ++ ++/* Do the equivalent of an fputs for the terminal escape stuff */ ++ ++tfputs(s) ++char *s; ++{ ++ tputs(s, 1, controlputc); ++} ++ ++ContainsEightBitChar(fname) ++char *fname; ++{ ++ int c, eightBitSeen = 0; ++ FILE *fp = fopen(fname, "r"); ++ if (!fp) { ++ /* If the stupid editing program forks, this actually will do a ++ reasonable thing as long as it saves the file before the mail is sent */ ++ return(1); /* safest */ ++ } ++ while ((c = getc(fp)) != EOF) { ++ if (c>127) { ++ eightBitSeen = 1; ++ break; ++ } ++ } ++ fclose(fp); ++ return(eightBitSeen); ++} ++ ++SwitchToEuropean() { ++ printf("WARNING: You have entered 8-bit characters in what is supposed to be\n"); ++ printf("plain ASCII text. If you are using a non-ASCII character set, you should\n"); ++ printf("declare this to be the case with the MM_CHARSET environment variable.\n"); ++ printf("For now, I am assuming you are using the iso-8859-1 character set,\n"); ++ printf("but this may be false.\n"); ++ CharacterSet = malloc(12); ++ if (!CharacterSet) nomemabort(); ++ strcpy(CharacterSet, "iso-8859-1"); ++} ++ ++ +--- metamail-2.7.orig/src/metamail/Makefile.am ++++ metamail-2.7/src/metamail/Makefile.am +@@ -0,0 +1,21 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail \ ++ -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++bin_PROGRAMS = metamail mimencode mailto splitmail ++ ++metamail_SOURCES = metamail.c codes.c uue.c shared.c environment.c \ ++mailcap.c tmpfile.c ++metamail_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mimencode_SOURCES = mimencode.c codes.c ++mimencode_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mailto_SOURCES = mailto.c codes.c shared.c ++mailto_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++splitmail_SOURCES = splitmail.c shared.c ++splitmail_LDADD = $(top_builddir)/metamail/libmetamail.la +--- metamail-2.7.orig/src/metamail/Makefile.in ++++ metamail-2.7/src/metamail/Makefile.in +@@ -0,0 +1,399 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++ ++bin_PROGRAMS = metamail mimencode mailto splitmail ++ ++metamail_SOURCES = metamail.c codes.c uue.c shared.c environment.c mailcap.c tmpfile.c ++ ++metamail_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mimencode_SOURCES = mimencode.c codes.c ++mimencode_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mailto_SOURCES = mailto.c codes.c shared.c ++mailto_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++splitmail_SOURCES = splitmail.c shared.c ++splitmail_LDADD = $(top_builddir)/metamail/libmetamail.la ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../../metamail/config.h ++CONFIG_CLEAN_FILES = ++bin_PROGRAMS = metamail$(EXEEXT) mimencode$(EXEEXT) mailto$(EXEEXT) \ ++splitmail$(EXEEXT) ++PROGRAMS = $(bin_PROGRAMS) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++metamail_OBJECTS = metamail.$(OBJEXT) codes.$(OBJEXT) uue.$(OBJEXT) \ ++shared.$(OBJEXT) environment.$(OBJEXT) mailcap.$(OBJEXT) \ ++tmpfile.$(OBJEXT) ++metamail_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++metamail_LDFLAGS = ++mimencode_OBJECTS = mimencode.$(OBJEXT) codes.$(OBJEXT) ++mimencode_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++mimencode_LDFLAGS = ++mailto_OBJECTS = mailto.$(OBJEXT) codes.$(OBJEXT) shared.$(OBJEXT) ++mailto_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++mailto_LDFLAGS = ++splitmail_OBJECTS = splitmail.$(OBJEXT) shared.$(OBJEXT) ++splitmail_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++splitmail_LDFLAGS = ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/codes.P .deps/environment.P .deps/mailcap.P \ ++.deps/mailto.P .deps/metamail.P .deps/mimencode.P .deps/shared.P \ ++.deps/splitmail.P .deps/tmpfile.P .deps/uue.P ++SOURCES = $(metamail_SOURCES) $(mimencode_SOURCES) $(mailto_SOURCES) $(splitmail_SOURCES) ++OBJECTS = $(metamail_OBJECTS) $(mimencode_OBJECTS) $(mailto_OBJECTS) $(splitmail_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/metamail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-binPROGRAMS: ++ ++clean-binPROGRAMS: ++ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ++ ++distclean-binPROGRAMS: ++ ++maintainer-clean-binPROGRAMS: ++ ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ else :; fi; \ ++ done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++metamail$(EXEEXT): $(metamail_OBJECTS) $(metamail_DEPENDENCIES) ++ @rm -f metamail$(EXEEXT) ++ $(LINK) $(metamail_LDFLAGS) $(metamail_OBJECTS) $(metamail_LDADD) $(LIBS) ++ ++mimencode$(EXEEXT): $(mimencode_OBJECTS) $(mimencode_DEPENDENCIES) ++ @rm -f mimencode$(EXEEXT) ++ $(LINK) $(mimencode_LDFLAGS) $(mimencode_OBJECTS) $(mimencode_LDADD) $(LIBS) ++ ++mailto$(EXEEXT): $(mailto_OBJECTS) $(mailto_DEPENDENCIES) ++ @rm -f mailto$(EXEEXT) ++ $(LINK) $(mailto_LDFLAGS) $(mailto_OBJECTS) $(mailto_LDADD) $(LIBS) ++ ++splitmail$(EXEEXT): $(splitmail_OBJECTS) $(splitmail_DEPENDENCIES) ++ @rm -f splitmail$(EXEEXT) ++ $(LINK) $(splitmail_LDFLAGS) $(splitmail_OBJECTS) $(splitmail_LDADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src/metamail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/metamail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binPROGRAMS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binPROGRAMS ++uninstall: uninstall-am ++all-am: Makefile $(PROGRAMS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ ++ clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ ++ distclean-tags distclean-depend distclean-generic \ ++ clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-binPROGRAMS \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ ++maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/src/metamail/output ++++ metamail-2.7/src/metamail/output +@@ -0,0 +1,428 @@ ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=7 (from Stephan Wright <stephan.wright@chello.at> ) ++MM_HEADERS= ++From stephan.wright@chello.at Wed Jan 17 00:54:06 2001 ++Return-path: <stephan.wright@chello.at> ++Envelope-to: mike@localhost ++Delivery-date: Wed, 17 Jan 2001 00:54:06 +0100 ++Received: from localhost ([127.0.0.1] ident=mail) ++ by skair.in.natoka.at with esmtp (Exim 3.20 #1 (Debian)) ++ id 14IfvR-0000eJ-00 ++ for <mike@localhost>; Wed, 17 Jan 2001 00:54:05 +0100 ++Received: from stud3.tuwien.ac.at [193.170.75.13] ++ by localhost with POP3 (fetchmail-5.5.3) ++ for mike@localhost (single-drop); Wed, 17 Jan 2001 00:54:05 +0100 (CET) ++Received: from mr.tuwien.ac.at (mr.tuwien.ac.at [128.130.2.10]) ++ by stud3.tuwien.ac.at (8.9.3 (PHNE_18979)/8.9.3) with ESMTP id AAA08182; ++ Wed, 17 Jan 2001 00:39:08 +0100 (MET) ++Received: from viemta06.chello.at (viemta06.chello.at [195.34.133.56]) ++ by mr.tuwien.ac.at (8.11.1/8.11.1) with ESMTP id f0GNd4C26837; ++ Wed, 17 Jan 2001 00:39:04 +0100 (MET) ++Received: from michelangelo.telekabel.at ([62.178.9.127]) ++ by viemta06.chello.at ++ (InterMail vK.4.03.01.00 201-232-122 license 9caa03a7df1d31c048ffcc0d31ac5855) ++ with ESMTP ++ id <20010116233900.BMRG7188.viemta06@michelangelo.telekabel.at>; ++ Wed, 17 Jan 2001 00:39:00 +0100 ++Message-ID: <3A64DBB9.74527B61@chello.at> ++Date: Wed, 17 Jan 2001 00:39:37 +0100 ++From: Stephan Wright <stephan.wright@chello.at> ++Reply-To: stephan.wright@chello.at ++X-Mailer: Mozilla 4.01 [de] (Win95; I) ++MIME-Version: 1.0 ++To: Wolfgang Hiermann <wolfgang.hiermann@teleweb.at>, ++ Susanne Schuster <e9107982@student.tuwien.ac.at>, ++ Roland Summerauer <h9751337@obelix.wu-wien.ac.at>, ++ Raimund Kirner <e9625030@student.tuwien.ac.at>, ++ "Michael Mörz" <e9625136@student.tuwien.ac.at>, ++ Doris Ulrich <e8101579@student.tuwien.ac.at>, ++ Daniel Wronski <e9625027@student.tuwien.ac.at>, ++ Balazs Lichtl <e9625772@stud3.tuwien.ac.at> ++Subject: [Fwd: Fw: Das ist aber lieb geschrieben!] ++X-Priority: 3 (Normal) ++Content-Type: multipart/mixed; boundary="------------A0D4511CCFC2DF8B814B1B9E" ++X-UIDL: *2+!!Ec8e9F>?!!70^!! ++Status: RO ++Content-Length: 32777 ++Lines: 485 ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=multipart/mixed ; boundary = "------------A0D4511CCFC2DF8B814B1B9E" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=oding: 8bit (from Stephan Wright <stephan.wright@chello.at> ) ++MM_HEADERS= ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Transfer-Encoding: 8bit ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = iso-8859-1 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=oding: 8bit (from Stephan Wright <stephan.wright@chello.at> ) ++MM_HEADERS= ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Transfer-Encoding: 8bit ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=0 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = iso-8859-1 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++Metamail Version 2.7, debugging turned on. ++Trying to open input file: ../../../../metamailtest ++Date: Wed, 17 Jan 2001 00:39:37 +0100 ++From: Stephan Wright <stephan.wright@chello.at> ++To: Wolfgang Hiermann <wolfgang.hiermann@teleweb.at>, Susanne Schuster <e9107982@student.tuwien.ac.at>, Roland Summerauer <h9751337@obelix.wu-wien.ac.at>, Raimund Kirner <e9625030@student.tuwien.ac.at>, "Michael Mörz" <e9625136@student.tuwien.ac.at>, Doris Ulrich <e8101579@student.tuwien.ac.at>, Daniel Wronski <e9625027@student.tuwien.ac.at>, Balazs Lichtl <e9625772@stud3.tuwien.ac.at> ++Subject: [Fwd: Fw: Das ist aber lieb geschrieben!] ++NEW PARAMETER: boundary VALUE: "------------A0D4511CCFC2DF8B814B1B9E" ++ ++Here is the environment: ++ ++Handling multipart as built-in here. Boundary: --------------A0D4511CCFC2DF8B814B1B9E ++NEW PARAMETER: charset VALUE: iso-8859-1 ++ ++Here is the environment: ++ ++Here is the environment: ++ ++---Executing: xterm -title 'oding: 8bit (from Stephan Wright <stephan.wright@chello.at> )' -e metamail -P -b -c 'text/plain ; charset = iso-8859-1' /tmp/MQxhZtQ ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=inline (from Stephan Wright <stephan.wright@chello.at> ) ++MM_HEADERS= ++Content-Type: message/rfc822 ++Content-Transfer-Encoding: 8bit ++Content-Disposition: inline ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=message/rfc822 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" <Marion.spahlholz@chello.at> ) ++MM_HEADERS= ++Return-Path: <Marion.spahlholz@chello.at> ++Received: from marionharald ([213.47.119.62]) by viemta06.chello.at ++ (InterMail vK.4.03.01.00 201-232-122 license 9caa03a7df1d31c048ffcc0d31ac5855) ++ with SMTP id <20010112191934.DEQK23142.viemta06@marionharald>; ++ Fri, 12 Jan 2001 20:19:34 +0100 ++Message-ID: <00b301c07ccd$7e71c8e0$3e772fd5@telekabel.at> ++From: "Marion Spahlholz" <Marion.spahlholz@chello.at> ++To: "Peter Ipser" <peter.ipser@chello.at> ++Cc: "Rudolf Meyer" <rudolf.meyer@chello.at>, ++ "Martina Fitzka" <tini@yline.com>, ++ =?iso-8859-1?Q?Evelyn_L=F6wenrosen?= <evelyn.loewenrosen@chello.at>, ++ "Stephan Wright" <stephan.wright@chello.at> ++Subject: Fw: Das ist aber lieb geschrieben! ++Date: Fri, 12 Jan 2001 20:25:59 +0100 ++MIME-Version: 1.0 ++Content-Type: multipart/mixed; ++ boundary="----=_NextPart_000_00B0_01C07CD5.E0149F20" ++X-Priority: 3 ++X-MSMail-Priority: Normal ++X-Mailer: Microsoft Outlook Express 5.50.4133.2400 ++X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=multipart/mixed ; boundary = "----=_NextPart_000_00B0_01C07CD5.E0149F20" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" <Marion.spahlholz@chello.at> ) ++MM_HEADERS= ++Content-Type: text/plain; ++ charset="iso-8859-1" ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = "iso-8859-1" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" <Marion.spahlholz@chello.at> ) ++MM_HEADERS= ++Content-Type: text/plain; ++ charset="iso-8859-1" ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=0 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = "iso-8859-1" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++Command exit status: 0 ++‡(û‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@ˆƒ@ ++Here is the environment: ++ ++From: "Marion Spahlholz" <Marion.spahlholz@chello.at> ++To: "Peter Ipser" <peter.ipser@chello.at> ++Cc: "Rudolf Meyer" <rudolf.meyer@chello.at>, "Martina Fitzka" <tini@yline.com>, [** iso-8859-1 charset **] Evelyn Löwenrosen‡(û‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@ˆƒ@<evelyn.loewenrosen@chello.at>, "Stephan Wright" <stephan.wright@chello.at> ++Subject: Fw: Das ist aber lieb geschrieben! ++Date: Fri, 12 Jan 2001 20:25:59 +0100 ++MIME-Version: 1.0 ++NEW PARAMETER: boundary VALUE: "----=_NextPart_000_00B0_01C07CD5.E0149F20" ++X-Priority: 3 ++X-MSMail-Priority: Normal ++X-Mailer: Microsoft Outlook Express 5.50.4133.2400 ++X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 ++ ++ ++Here is the environment: ++ ++Handling multipart as built-in here. Boundary: ------=_NextPart_000_00B0_01C07CD5.E0149F20 ++NEW PARAMETER: charset VALUE: "iso-8859-1" ++ ++Here is the environment: ++ ++Here is the environment: ++ ++---Executing: xterm -title 'Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" <Marion.spahlholz@chello.at> )' -e metamail -P -b -c 'text/plain ; charset = "iso-8859-1"' /tmp/MGsYu2s ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=attachment; filename="Fortflanzung.gif" (from "Marion Spahlholz" <Marion.spahlholz@chello.at> ) ++MM_HEADERS= ++Content-Type: image/gif; ++ name="Fortflanzung.gif" ++Content-Transfer-Encoding: base64 ++Content-Disposition: attachment; ++ filename="Fortflanzung.gif" ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=image/gif ; name = "Fortflanzung.gif" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv +--- metamail-2.7.orig/src/metamail/metamail_default.h ++++ metamail-2.7/src/metamail/metamail_default.h +@@ -0,0 +1,9 @@ ++#ifndef METAMAIL_DEFAULT_H ++#define METAMAIL_DEFAULT_H 1 ++ ++char *mmversion = MM_VERSTRING; ++char *NoAskDefault = "text,text/plain,text/richtext"; ++char *QuietDefault = CATCOMMAND; ++char *tmproot=""; ++ ++#endif /* METAMAIL_DEFAULT_H */ +--- metamail-2.7.orig/src/metamail/includeaway ++++ metamail-2.7/src/metamail/includeaway +@@ -0,0 +1,97 @@ ++#ifdef BORLAND ++#define F_OK 0 ++extern unsigned _stklen = 16384; ++extern char *mktemp(char *); ++#define WRITE_BINARY "w" ++#else /* BORLAND */ ++#ifdef MICROSOFT ++#include <malloc.h> ++#include <stdlib.h> ++#include <time.h> ++#include <signal.h> ++#define F_OK 0 ++#else ++ ++#ifndef AMIGA ++#ifdef SYSV ++//#include <termio.h> ++//#include <unistd.h> ++#else /* SYSV */ ++#include <sgtty.h> ++#endif /* SYSV */ ++#endif /* AMIGA */ ++#endif /* MICROSOFT */ ++#endif /* BORLAND */ ++ ++//#if defined(SYSV) && !defined(linux) ++//#define LPRTEMPLATE "lp %s" ++//#define LPRCOMMAND "lp" ++//#else ++//#define LPRTEMPLATE "lpr %s" ++//#define LPRCOMMAND "lpr" ++ ++#endif ++#ifdef MSDOS ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 128 ++#define MAX_FILE_NAME_SIZE 128 ++#define WRITE_BINARY "wb" ++#else /* MSDOS */ ++#ifdef AMIGA ++extern char *MkRmScript(); ++#ifndef F_OK ++#define F_OK (0) ++#endif ++#define CATCOMMAND "Type" ++#define CATTEMPLATE "Type %s" ++#define METAMAIL "metamail <*" ++#define TMPFILE_NAME_SIZE 50 ++#define MAX_FILE_NAME_SIZE 256 ++#define WRITE_BINARY "w" ++#else /* AMIGA */ ++//extern char **environ, *gets(); ++//#define CATCOMMAND "cat" ++//#define CATTEMPLATE "cat %s" ++//#define METAMAIL "metamail" ++//#define TMPFILE_NAME_SIZE 1000 ++//#define MAX_FILE_NAME_SIZE 1000 ++//#define WRITE_BINARY "w" ++#endif /* AMIGA */ ++#endif /* MSDOS */ ++ ++//#ifndef NO_RLIMITS ++//#include <sys/resource.h> ++//#endif ++ ++//#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++//#define LINE_BUF_SIZE 2000 ++ ++#ifndef MICROSOFT ++extern char *malloc(); ++extern char *realloc(); ++#endif ++ ++//extern FILE *popen(); ++//static char *nomem = "Out of memory!"; ++//static char *mmversion = MM_VERSTRING; ++//static char *NoAskDefault = "text,text/plain,text/richtext"; ++//static char *QuietDefault = CATCOMMAND; ++//static char *tmproot=""; ++ ++//#define ENCODING_NONE 0 ++//#define ENCODING_BASE64 1 ++//#define ENCODING_QUOTEDPRINTABLE 2 ++//#define ENCODING_8BIT 3 ++//#define ENCODING_UUENCODE -1 /* non-standard */ ++ ++#ifdef MICROSOFT ++/* Need a function prototype for TryMailcapEntry because without it MSC ++ * passes a pointer to the structure rather than the structure itself. ++ */ ++TryMailcapEntry(struct MailcapEntry mc, char *SquirrelFile); ++#endif ++ ++ +--- metamail-2.7.orig/src/metamail/mailcap.c ++++ metamail-2.7/src/metamail/mailcap.c +@@ -0,0 +1,118 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/* mailcap.c - contains functions to access and parse mailcap files ++ Authors: Nathaniel S. Borenstein, Bellcore ++ Michael Moerz <mikem@debian.org> ++*/ ++ ++#include <metamail/common.h> ++ ++#include "mailcap.h" ++#include "metamail.h" ++ ++/* Only one or the other set up builtins gets used, ++ depending on whether or not we're in the middle of ++ a multipart/alternative body part */ ++struct MailcapEntry BuiltIns[] = { ++ {"text/*", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++struct MailcapEntry BuiltInsAlternative[] = { ++ {"text/plain", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++/** hmm, ... ++*/ ++int ++ProcessMailcapFiles(SquirrelFile) ++char *SquirrelFile; ++{ ++ char *s, *pathcopy = NULL; ++ char *path = getenv("MAILCAPS"); ++ if (!path) { ++ uid_t uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (p) { ++ path = XMALLOC(char, 5 + strlen(p->pw_dir) + strlen(STDPATH)); ++ } ++ strcpy(path, p->pw_dir); ++ strcat(path, STDPATH); ++ pathcopy = path; ++ } else ++ { ++ pathcopy = XMALLOC(char, 1+strlen(path)); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = 0; ++ if (!ProcessMailcapFile(path, SquirrelFile)) return(0); ++ path = s; ++ } ++ if (pathcopy) XFREE(pathcopy); ++ return(-1); ++} ++ ++int ++TryBuiltIns(SquirrelFile) ++char *SquirrelFile; ++{ ++ int i; ++ /* Last resort -- for sites that didn't bother putting a "text" line in ++ their mailcap files... */ ++ if (DoDebug) ++ fprintf(stderr, "Looking for '%s' in built-in content-type handling " ++ "settings.\n", ContentType); ++ for (i=0; BuiltIns[i].contenttype; ++i) { ++ if (!TryMailcapEntry(SquirrelFile ? BuiltInsAlternative[i] : BuiltIns[i], SquirrelFile)) ++ return(0); ++ } ++ return(-1); ++} ++ ++int ++ProcessMailcapFile(file, SquirrelFile) ++char *file, *SquirrelFile; ++{ ++ struct MailcapEntry mc; ++ FILE *fp; ++ int res; ++ ++ res = IsDirectory(file); ++ if (res) { ++ if (res == 1) { ++ fprintf(stderr, "Mailcap path entry '%s' is a directory, should be a readable file.\n", file); ++ } else if (DoDebug) { ++ /* Quietly ignore non-existent mailcap files unless debugging */ ++ fprintf(stderr, "Mailcap path entry '%s' does not exist.\n", file); ++ } ++ return(-1); ++ } ++ fp = fopen(file, "r"); ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in mailcap file '%s'.\n", ContentType, file); ++ while (fp && !feof(fp)) { ++ mc.needtofree = 0; ++ if (GetMailcapEntry(fp, &mc)) { ++ if (!TryMailcapEntry(mc, SquirrelFile)) { ++ fclose(fp); ++ return(0); ++ } ++ } ++ } ++ if (fp) fclose(fp); ++ return(-1); ++} +--- metamail-2.7.orig/src/metamail/mailcap.h ++++ metamail-2.7/src/metamail/mailcap.h +@@ -0,0 +1,34 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++#ifndef METAMAIL_MAILCAP_H ++#define METAMAIL_MAILCAP_H 1 ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ int needsterminal; ++ int copiousoutput; ++ int needtofree; ++ char *label; ++ char *printcommand; ++}; ++ ++int ProcessMailcapFiles (char *); ++int TryBuiltIns (char *); ++int ProcessMailcapFile (char *, char*); ++ ++#endif /* METAMAIL_MAILCAP_H */ +--- metamail-2.7.orig/src/metamail/shared.c ++++ metamail-2.7/src/metamail/shared.c +@@ -0,0 +1,120 @@ ++#include <stdio.h> ++#include <ctype.h> ++#include <config.h> ++#include <stdlib.h> /* malloc(3) and realloc(3) */ ++#ifdef SYSV ++#include <unistd.h> ++#include <sys/utsname.h> ++#endif ++ ++char **Exceptions; ++int *NeedsPortableNewlines; ++int ExceptionsAlloced = 0, ExceptionsUsed = 0; ++ ++ExceptionalNewline(contenttype, needsportable) ++char *contenttype; ++int needsportable; ++{ ++ char *s; ++ if (ExceptionsAlloced == 0) { ++ ExceptionsAlloced = 25; ++ Exceptions = (char **) malloc(ExceptionsAlloced * sizeof(char *)); ++ NeedsPortableNewlines = (int *) malloc(ExceptionsAlloced * sizeof(int)); ++ if (!Exceptions || !NeedsPortableNewlines) return(-1); ++ } ++ if (ExceptionsUsed >= ExceptionsAlloced) { ++ ExceptionsAlloced += 25; ++ Exceptions = (char **) realloc(Exceptions, ExceptionsAlloced * sizeof(char *)); ++ NeedsPortableNewlines = (int *) realloc(NeedsPortableNewlines, ExceptionsAlloced * sizeof(int)); ++ if (!Exceptions || !NeedsPortableNewlines) return(-1); ++ } ++ s = malloc(1+strlen(contenttype)); ++ if (!s) return(-1); ++ strcpy(s, contenttype); ++ Exceptions[ExceptionsUsed] = s; ++ for (; *s; ++s) { ++ if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ } ++ NeedsPortableNewlines[ExceptionsUsed] = needsportable; ++ ++ExceptionsUsed; ++ return(0); ++} ++ ++DoesNeedPortableNewlines(ctype) ++char *ctype; ++{ ++ int i; ++ ++ /* First, handle the customization/override case */ ++ for (i=0; i<ExceptionsUsed; ++i) { ++ if (!lc2strcmp(ctype, Exceptions[i])) { ++ return(NeedsPortableNewlines[i]); ++ } ++ } ++ /* But for most folks, the simple defaults will always suffice */ ++ if (!lc2strncmp(ctype, "text", 4)) { ++ return(1); ++ } ++ /* The following two are weird; message & multipart should never be encoded, but they really are line-oriented, so if they ARE encoded (and for PEM, it is even legitimate) they should use portable newlines */ ++ if (!lc2strncmp(ctype, "message", 7)) { ++ return(1); ++ } ++ if (!lc2strncmp(ctype, "multipart", 9)) { ++ return(1); ++ } ++ return(0); ++} ++ ++lc2strncmp(s1, s2, len) ++char *s1, *s2; ++int len; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2 && len > 0) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; --len; ++ } ++ if (len <= 0) return(0); ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++lc2strcmp(s1, s2) ++char *s1, *s2; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; ++ } ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++char *getmyname() { ++ static int initialized = 0; ++#ifdef SYSV ++ static struct utsname u; ++ static char *hostname = u.nodename; ++#else ++ static char hostname[60]; ++#endif ++ if (!initialized) { ++#ifdef AMIGA ++ strcpy(hostname, myAddress); ++#else ++#ifdef SYSV ++ if (uname(&u) == -1) { ++ hostname = "UNKNOWN.SITE.NAME"; ++ } ++#else ++#ifdef MSDOS ++ strcpy(hostname, "UNKNOWN.SITE.NAME"); ++#else ++ gethostname(hostname, sizeof(hostname)); ++#endif /* MSDOS */ ++#endif /* SYSV */ ++#endif /* AMIGA */ ++ initialized = 1; ++ } ++ return(hostname); ++} ++ +--- metamail-2.7.orig/src/metamail/splitmail.c ++++ metamail-2.7/src/metamail/splitmail.c +@@ -0,0 +1,433 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include <metamail/common.h> ++ ++#define MINCHUNKSIZE 20000 /* Better be enough to hold the headers, or we die! */ ++ ++extern char *getenv(); ++#define NORMALDELIVERYCMD "/usr/sbin/sendmail -t -oi" ++#define VERBOSEDELIVERYCMD "/usr/sbin/sendmail -t -v -oi" ++ ++usageexit() { ++ fprintf(stderr, "Usage: splitmail [-d] [-v] [-s splitsize] [-i id-suffix] [-p prefix] [file-name]\n"); ++ exit(-1); ++} ++ ++char *MonthNames[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; ++char *DayNames[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; ++ ++char * ++endofheader(s) ++char *s; ++{ ++ char *orgs = s, c; ++ while (1) { ++ s = index(s, '\n'); ++ if (!s) return(orgs+strlen(orgs)); ++ c = *(s+1); ++ if (c != ' ' && c != '\t') return(s); ++ ++s; ++ } ++} ++ ++main(argc, argv) ++char **argv; ++{ ++ int i, DoDeliver=0, SplitSize=DEFAULT_SPLIT_SIZE, dum, InNewline=1, bytesread, whichpart=1, Verbose=0, numparts = -1, c; ++ char *fname = NULL, *bigbuf, *s, *SharedHeaders, *headend, *from, id[100], *deliverycmd, *prefix, SubjectBuf[250]; ++ char *MessageID = 0, *OrigID=NULL; ++ FILE *fp; ++ ++ s = getenv("METAMAIL_TMPDIR"); ++ if (s) { ++ prefix = malloc(10+strlen(s)); ++ if (!prefix) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ sprintf(prefix, "%s/split.", s); ++ } else { ++ prefix = "/tmp/split."; ++ } ++ s = getenv("SPLITSIZE"); ++ if (s) { ++ dum = atoi(s); ++ if (dum < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring SPLITSIZE environment variable of %d -- the minimum value is %d\n", dum, MINCHUNKSIZE); ++ } else { ++ SplitSize = dum; ++ } ++ } ++ for (i=1; i<argc; ++i) { ++ if (argv[i][0] == '-') { ++ switch (argv[i][1]) { ++ case 's': ++ if (++i >= argc) usageexit(); ++ dum = atoi(argv[i]); ++ if (dum < MINCHUNKSIZE && dum >= 0) { ++ fprintf(stderr, "splitmail: Using minimum splitsize of %d\n", MINCHUNKSIZE); ++ dum = MINCHUNKSIZE; ++ ++ } ++ SplitSize = dum; ++ break; ++ case 'd': ++ DoDeliver = 1; ++ break; ++ case 'p': ++ if (++i >= argc) usageexit(); ++ prefix = argv[i]; ++ break; ++ case 'i': ++ if( ++i >= argc) usageexit(); ++ MessageID = argv[i]; ++ break; ++ case 'v': ++ Verbose = 1; ++ break; ++ default: ++ usageexit(); ++ } ++ } else { ++ if (fname) usageexit(); ++ fname = argv[i]; ++ } ++ } ++ bigbuf = malloc(100+SplitSize); ++ if (!bigbuf) { ++ fprintf(stderr, "splitmail: Not enough memory for %d-byte chunks\n", SplitSize); ++ exit(-1); ++ } ++ SplitSize -= 1000; /* gives fudge factor for headers, line endings */ ++ if (fname) { ++ struct stat stbuf; ++ if (!stat(fname, &stbuf)) { ++ /* Note: this will sometimes be 1 too high when it is a very close call, ++ because of the desire to have complete lines. In such cases, we send ++ a null final part */ ++ numparts = 1 + (stbuf.st_size / SplitSize); ++ } ++ fp = fopen(fname, "r"); ++ if (!fp) { ++ fprintf(stderr, "splitmail: Cannot read file %s\n", fname); ++ exit(-1); ++ } ++ } else fp = stdin; ++ headend = bigbuf; ++ while((c=getc(fp)) != EOF) { ++ if (headend >= bigbuf + SplitSize) { ++ fprintf(stderr, "splitmail: Could not find the end of the headers!\n"); ++ exit(-1); ++ } ++ *headend++ = c; ++ if (c == '\n') { ++ if (InNewline) break; /* end of headers */ ++ InNewline = 1; ++ } else { ++ InNewline = 0; ++ } ++ } ++ if (c == EOF) { ++ fprintf(stderr, "splitmail: Could not find the end of the headers!\n"); ++ exit(-1); ++ } ++ *headend = '\0'; ++ SharedHeaders = malloc(1+strlen(bigbuf)); /* maximum size needed */ ++ if (!SharedHeaders) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ from = bigbuf; ++ *SharedHeaders = '\0'; ++ strcpy(SubjectBuf, "Partial Message"); ++ while (from < headend) { ++ s = endofheader(from); /* would be index(from, '\n'), ++ but need to check for continuation lines */ ++ *s = '\0'; ++ if (ShareThisHeader(from, SubjectBuf, sizeof (SubjectBuf), &OrigID)) { ++ strcat(SharedHeaders, from); ++ strcat(SharedHeaders, "\n"); ++ } ++ *s = '\n'; ++ from = ++s; ++ } ++ //#ifdef AMIGA ++ //snprintf(id, sizeof(id), "%d.%s@%s%s", time(0), SeqToName(GetSequence(4)), FindConfig("NodeName"), ++ // FindConfig("DomainName")); ++ //#else ++ //#ifdef MSDOS ++ //snprintf(id, sizeof(id), "%ld.UNKNOWN.SITE.NAME", time(NULL)); // BCR ++ //#else ++ snprintf(id, sizeof(id), "%d.%d.%d.%s", (int) getuid(), (int) getpid(), (int) time(0), getmyname()); ++ //#endif /* MSDOS */ ++ //#endif /* AMIGA */ ++ bytesread = headend - bigbuf; ++ deliverycmd = Verbose ? VERBOSEDELIVERYCMD : NORMALDELIVERYCMD; ++ while (!feof(fp)) { ++ while (SplitSize > bytesread && !feof(fp)) { ++ /* Need to loop because fread is weird */ ++ bytesread += fread(bigbuf + bytesread, sizeof(char), SplitSize - bytesread, fp); ++ } ++ /* Now complete the line */ ++ while((c=getc(fp)) != EOF) { ++ bigbuf[bytesread++] = c; ++ if (c=='\n') break; ++ } ++ bigbuf[bytesread] = '\0'; ++ if (feof(fp) && numparts <= 0) numparts = whichpart; ++ HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID); ++ bytesread = 0; ++ ++whichpart; ++ } ++ while (whichpart <= numparts) { ++ /* Our guess as to how many parts was OFF, hopefully only by one */ ++ *bigbuf = '\0'; /* have to deliver an empty part, ugh! */ ++ HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID); ++ ++whichpart; ++ } ++ return(0); ++} ++ ++HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID) ++int DoDeliver, numparts, whichpart; ++char *deliverycmd, *prefix, *SharedHeaders, *SubjectBuf, *id, *MessageID, *bigbuf, *OrigID; ++{ ++ FILE *fpout; ++ char OutputFile[1000]; ++ int code; ++ // struct timeval tp; ++ // struct timezone tzp; ++ char *tm_zone; ++ ++ if (DoDeliver) { ++ fpout = popen(deliverycmd, "w"); ++ } else { ++ int fd; ++ snprintf(OutputFile, sizeof(OutputFile), "%s%d", prefix, whichpart); ++ remove(OutputFile); ++ fpout = NULL; ++ fd = open(OutputFile, O_WRONLY|O_CREAT|O_EXCL, 0600); ++ if (fd != -1) fpout = fdopen(fd, "w"); ++ } ++ if (!fpout) { ++ fprintf(stderr, "splitmail: Can't open %s for writing\n", DoDeliver ? deliverycmd : OutputFile); ++ exit(-1); ++ } ++ if (numparts != 1) { /* one-parters end up not changed at all! */ ++ struct tm *gt; ++ time_t clock; ++ int secsoff, hrsoff, minsoff; ++ char signoff='+'; ++ ++ fputs(SharedHeaders, fpout); ++ if (OrigID) fprintf(fpout, "References: %s\n", OrigID); ++ ++ clock=time(0); ++ gt = (struct tm*) gmtime(&clock); ++ hrsoff=minsoff=0; ++ fprintf(fpout, "Date: %s, %02d %s %d %02d:%02d:%02d %c%02d%02d (GMT)\n", DayNames[gt->tm_wday], ++ gt->tm_mday, MonthNames[gt->tm_mon], 1900+gt->tm_year, gt->tm_hour, ++ gt->tm_min, gt->tm_sec, signoff, hrsoff, minsoff); ++ //#else ++ //clock=time(0); ++ //gt = localtime(&clock); ++ //gettimeofday(&tp, &tzp); ++ //tm_zone = (char *)timezone(tzp.tz_minuteswest, gt->tm_isdst); ++ //secsoff = tzp.tz_minuteswest * 60; ++ //#else ++ secsoff= gt->tm_gmtoff; ++ //#endif ++ if (secsoff < 0) { ++ signoff = '-'; ++ secsoff *= -1; ++ } ++ hrsoff = secsoff / 3600; ++ minsoff = (secsoff - (3600*hrsoff)) / 60; ++ fprintf(fpout, "Date: %s, %02d %s %d %02d:%02d:%02d %c%02d%02d (%s)\n", ++ DayNames[gt->tm_wday], gt->tm_mday, MonthNames[gt->tm_mon], ++ 1900+gt->tm_year, gt->tm_hour, ++ gt->tm_min, gt->tm_sec, signoff, hrsoff, minsoff, gt->tm_zone); ++ ++ if( MessageID) { ++ fprintf(fpout, "Message-Id: <%d.%s.%s>\n",whichpart,id,MessageID); ++ } ++ fprintf(fpout, "Subject: %s (part %d of ", SubjectBuf, whichpart); ++ if (numparts > 0) { ++ fprintf(fpout, "%d)\n", numparts); ++ } else { ++ fprintf(fpout, "several)\n"); ++ } ++ fprintf(fpout, "Content-type: message/partial; id=\"%s\"; number=%d", id, whichpart); ++ if (numparts > 0) fprintf(fpout, "; total=%d", numparts); ++ fprintf(fpout, "\nMIME-Version: 1.0\n\n"); ++ } ++ fputs(bigbuf, fpout); ++ code = DoDeliver ? pclose(fpout) : fclose(fpout); ++ if (code) { ++ fprintf(stderr, "splitmail: %s of part %d failed\n", DoDeliver ? "Delivery" : "Writing", whichpart); ++ if (whichpart > 1) fprintf(stderr, " (previous %d parts may have succeeded)\n", whichpart -1); ++ exit(-1); ++ } ++} ++ ++static char *SharedHeads[] = { ++ "from", ++ "to", ++ "cc", ++ "bcc", ++ "newsgroup", ++ "newsgroups", ++ NULL ++}; ++ ++ShareThisHeader(s, SubjectBuf, size, OrigID) ++char *s; ++char *SubjectBuf; ++size_t size; ++char **OrigID; ++{ ++ int i; ++ char *colon = index(s, ':'); ++ if (!colon) return(0); /* don't share it in all parts */ ++ *colon = '\0'; ++ if (!ULstrcmp(s, "message-id")) { ++ *colon = ':'; ++ *OrigID = malloc(1+strlen(++colon)); ++ if (! *OrigID) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ while (*colon && isspace(*colon)) {++colon;} ++ strcpy(*OrigID, colon); ++ return(0); ++ } ++ if (!ULstrcmp(s, "subject")) { ++ *colon = ':'; ++ strncpy(SubjectBuf, ++colon, size); ++ SubjectBuf[size - 1] = '\0'; ++ return(0); ++ } ++ if (!ULstrcmp(s, "content-type")) { ++ if (IllegalContentType(colon+1)) { ++ fprintf(stderr, "splitmail: message has illegal content-type header, delivery cancelled.\n"); ++ exit(-1); ++ } ++ } ++ for (i=0; SharedHeads[i]; ++i) { ++ if (!ULstrcmp(s, SharedHeads[i])) break; ++ } ++ *colon = ':'; ++ return(SharedHeads[i] ? 1 : 0); ++} ++ ++static char *tspecials = "()<>@,;:\\\"/[]?.="; ++ ++IllegalContentType(ctype) ++char *ctype; ++{ ++ char *ct, *semicolon, *st, *s, *param, *eq, *matcheq; ++ ct = malloc(1+strlen(ctype)); ++ if (!ct) { ++ fprintf(stderr, "splitmail: out of memory!\n"); ++ exit(-1); ++ } ++ strcpy(ct, ctype); ++ semicolon = index(ct, ';'); ++ if (semicolon) *semicolon = 0; ++ st = index(ct, '/'); ++ if (!st) { ++ fprintf(stderr, "Illegal content-type specification: %s\nAll MIME content-type headers must contain a type/subtype specification.\n", ctype); ++ return(-1); ++ } ++ if (st) *st++ = 0; ++ for (s = ct; *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-type.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ for (s = st; s && *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-subtype.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ while (semicolon) { ++ param = ++semicolon; ++ while (*param && isspace(*param)) ++param; ++ semicolon = index(param, ';'); ++ if (semicolon) *semicolon = 0; ++ eq = index(param, '='); ++ if (eq) *eq++ = 0; ++ for (s = param; *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-type parameter name.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ while (*eq && isspace(*eq)) ++eq; ++ if (*eq == '\"') { ++ matcheq = eq; ++ do { ++ matcheq = index(matcheq+1, '\"'); ++ if (!matcheq) { ++ fprintf(stderr, "Illegal content-type specification: %s\nA quoted MIME parameter value must have matching quotation marks.\n", ctype); ++ return(-1); ++ } ++ } while (*(matcheq-1) == '\\'); ++ while (*++matcheq) { ++ if (!isspace(*matcheq)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nA quoted MIME parameter value must stop after the closing quotation mark.\n", ctype); ++ return(-1); ++ } ++ } ++ } else { ++ for (s = eq; s && *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in an unquoted MIME parameter value.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ } ++ } ++ free(ct); ++ return(0); ++} ++ ++int ULstrcmp(s1, s2) ++register char *s1, *s2; ++{ ++ char c1,c2; ++ ++ for(;;) { ++ c1 = *s1++; if (c1 <= 'Z') if (c1 >= 'A') c1 += 040; ++ c2 = *s2++; if (c2 <= 'Z') if (c2 >= 'A') c2 += 040; ++ if (c1 != c2) break; ++ if (c1 == '\0') return(0); ++ } ++ return(c1 - c2); ++} ++ ++/* STILL TO DO: ++ Get number of parts right when possible ++*/ +--- metamail-2.7.orig/src/Makefile.am ++++ metamail-2.7/src/Makefile.am +@@ -0,0 +1,3 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++SUBDIRS = metamail richmail +--- metamail-2.7.orig/src/Makefile.in ++++ metamail-2.7/src/Makefile.in +@@ -0,0 +1,298 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++SUBDIRS = metamail richmail ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run `make' without going through this Makefile. ++# To change the values of `make' variables: instead of editing Makefiles, ++# (1) if the variable is set in `config.status', edit `config.status' ++# (which will cause the Makefiles to be regenerated when you run `make'); ++# (2) otherwise, pass the desired values on the `make' command line. ++ ++@SET_MAKE@ ++ ++all-recursive install-data-recursive install-exec-recursive \ ++installdirs-recursive install-recursive uninstall-recursive \ ++check-recursive installcheck-recursive info-recursive dvi-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++mostlyclean-recursive clean-recursive distclean-recursive \ ++maintainer-clean-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ ++ rev="$$subdir $$rev"; \ ++ test "$$subdir" != "." || dot_seen=yes; \ ++ done; \ ++ test "$$dot_seen" = "no" && rev=". $$rev"; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ for subdir in $$rev; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done && test -z "$$fail" ++tags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ for subdir in $(SUBDIRS); do \ ++ if test "$$subdir" = .; then :; else \ ++ test -d $(distdir)/$$subdir \ ++ || mkdir $(distdir)/$$subdir \ ++ || exit 1; \ ++ chmod 777 $(distdir)/$$subdir; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++info-am: ++info: info-recursive ++dvi-am: ++dvi: dvi-recursive ++check-am: all-am ++check: check-recursive ++installcheck-am: ++installcheck: installcheck-recursive ++install-exec-am: ++install-exec: install-exec-recursive ++ ++install-data-am: ++install-data: install-data-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-recursive ++uninstall-am: ++uninstall: uninstall-recursive ++all-am: Makefile ++all-redirect: all-recursive ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: installdirs-recursive ++installdirs-am: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-tags mostlyclean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++clean-am: clean-tags clean-generic mostlyclean-am ++ ++clean: clean-recursive ++ ++distclean-am: distclean-tags distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-recursive ++ ++maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ ++ distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-recursive ++ ++.PHONY: install-data-recursive uninstall-data-recursive \ ++install-exec-recursive uninstall-exec-recursive installdirs-recursive \ ++uninstalldirs-recursive all-recursive check-recursive \ ++installcheck-recursive info-recursive dvi-recursive \ ++mostlyclean-recursive distclean-recursive clean-recursive \ ++maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-am install-data install-am install \ ++uninstall-am uninstall all-redirect all-am all installdirs-am \ ++installdirs mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/src/richmail/COMMANDS ++++ metamail-2.7/src/richmail/COMMANDS +@@ -0,0 +1,29 @@ ++Commands for changing character sets in richtext: ++ ++Japanese: ++ ++<iso-2022-jp> ISO-2022 encoding for mixed US-ASCII and JIS. ++<x-jis-x0201-1976> Variant of US-ASCII for Japan. ++<x-jis-x0201> Variant of US-ASCII for Japan. ++<x-jis-x0208-1978> JIS X 0208-1978 ++<x-jis-x0208-1983> JIS X 0208-1983 ++<x-jis-x0208> JIS X 0208-1983 ++ ++Korean: ++ ++<iso-2022-kr> ISO-2022 encoding for mixed US-ASCII and Korean. ++<x-ksc-5601> 2-byte encoding of Hangul without shift/escape seqs. ++ ++Internal commands: ++ ++<x-iso-2022-gen-HH> Used for ISO-2022 escape seqences. ++<x-iso-shift-in> SI character ++<x-iso-shift-out> SO character ++<x-iso-charset-HH> Used for ISO-2022 ESC$)? character set designators. ++ ++Notes: ++ ++<iso-2022-*> text sequences may contain ISO-2022 escape sequences for changing ++character sets. <x-jis-*-*> and <x-ksc-*> text sequences can also contain ++such escape sequences, but they start out in 2-byte mode, and are intended ++mainly for 2-byte character sequences, rather than a mixture. +--- metamail-2.7.orig/src/richmail/NOTES ++++ metamail-2.7/src/richmail/NOTES +@@ -0,0 +1,7 @@ ++ ++"richtext.c" may be used as a library in another program, by defining the ++macro RICHTEXT_LIBRARY when it is compiled and calling the function ++"richtext_main(argc, argv)" with the arguments set to the normal richtext ++command-line arguments. It is also necessary to link with "richlex.c", ++"richset.c", "usascii.c" and "iso2022.c" which provide services to ++"richtext.c". +--- metamail-2.7.orig/src/richmail/usascii.c ++++ metamail-2.7/src/richmail/usascii.c +@@ -0,0 +1,129 @@ ++/*------------------------------------------------------------------------- ++ ++ usascii.c - Code for the US-ASCII specific parts of the richtext processor. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of usascii.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#include <stdio.h> ++#include <metamail/common.h> ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Initialise the US-ASCII character set processor. ++ */ ++usascii_init (name) ++char *name; ++{ ++ if (name) ++ richtextencoding (RICH_ENC_US_ASCII); ++} ++ ++/* ++ * Process a command for the US-ASCII processor. ++ */ ++int usascii_command (token,negated) ++char *token; ++int negated; ++{ ++ if (!strcmp(token,"us-ascii")) { ++ if (negated) { ++ charsetpop (&usascii_charset); ++ } else { ++ charsetpush (&usascii_charset); ++ richtextencoding (RICH_ENC_US_ASCII); ++ } ++ return (1); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Check for singleton US-ASCII tokens. ++ */ ++int usascii_single (token) ++char *token; ++{ ++ return (0); ++} ++ ++/* ++ * Determine the width of a US-ASCII character. ++ */ ++int usascii_width (ch) ++RCHAR ch; ++{ ++ return (1); ++} ++ ++/* ++ * Determine if the current character can be used as a folding point. ++ */ ++int usascii_fold (ch) ++RCHAR ch; ++{ ++ return (ch < 0x7F && isspace (ch)); ++} ++ ++/* ++ * Render the given US-ASCII character. ++ */ ++usascii_render (ch,param) ++RCHAR ch; ++void *param; ++{ ++ (*RichtextPutc) ((int)ch,param); ++} ++ ++/* ++ * Enter or leave the US-ASCII encoding. ++ */ ++usascii_encoding (newenc) ++int newenc; ++{ ++ /* Nothing to be done in this version */ ++} ++ ++/* ++ * Define the US-ASCII character set processor. ++ */ ++struct charsetproc usascii_charset = ++ {"us-ascii", ++ usascii_init, ++ usascii_command, ++ usascii_single, ++ usascii_width, ++ usascii_fold, ++ usascii_render, ++ usascii_encoding}; +--- metamail-2.7.orig/src/richmail/iso2022.c ++++ metamail-2.7/src/richmail/iso2022.c +@@ -0,0 +1,375 @@ ++/*------------------------------------------------------------------------- ++ ++ iso2022.c - Code for the ISO-2022 specific parts of the richtext processor. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of iso2022.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++ Acknowledgements: ++ ================ ++ ++ Many thanks to Yutaka Sato (ysato@etl.go.jp) for protyping ISO-2022 ++ support in a previous version of richtext, on whose code this is based. ++ ++-------------------------------------------------------------------------*/ ++ ++#include <metamail/common.h> ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Global data for this module. ++ */ ++static int SwToAscii; ++static int SwToOther; ++static int OutPrevChar; ++static int OutPrevPrevChar; ++static int OutCharLen; ++static int OutCharSet; ++static int OutAsciiMode; ++ ++#define OUT_ASCII 0 ++#define OUT_JIS 1 ++#define OUT_KSC 2 ++ ++#define ESC 033 ++#define SO 016 ++#define SI 017 ++ ++#define ISO_GENERIC_PREFIX "x-iso-2022-gen-" ++#define ISO_GENERIC_LEN 15 ++#define ISO_SHIFT_PREFIX "x-iso-shift-" ++#define ISO_SHIFT_LEN 12 ++#define ISO_CHARSET_PREFIX "x-iso-charset-" ++#define ISO_CHARSET_LEN 14 ++ ++/* ++ * Initialise the ISO-2022 character set processor. ++ */ ++iso2022_init (name) ++char *name; ++{ ++ SwToAscii = 'B'; ++ SwToOther = 'B'; ++ OutPrevChar = 0; ++ OutPrevPrevChar = 0; ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_US_ASCII; ++ if (!name) ++ return; ++ if (!strncmp (name,"iso-2022-jp",11)) ++ richtextencoding (RICH_ENC_JP_ASCII); ++ else if (!strncmp (name,"iso-2022-kr",11)) { ++ richtextencoding (RICH_ENC_KR_ASCII); ++ controloutput("\033$)C",0); ++ } else ++ richtextencoding (RICH_ENC_US_ASCII); ++} ++ ++/* ++ * Process a command for the ISO-2022 processor. ++ */ ++int iso2022_command (token,negated) ++char *token; ++int negated; ++{ ++ int swchar; ++ if (!strcmp(token,"iso-2022-jp")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X0208-1983 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_US_ASCII); ++ controloutput("\033(B",0); ++ SwToOther = 'B'; ++ } ++ return (1); ++ } else if (!strcmp(token,"iso-2022-kr")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\017",0); ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter KSC-5601 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KR_ASCII); ++ controloutput("\033$)C\017",0); ++ } ++ return (1); ++ } else if (!strncmp(token,"x-jis-x0201",11)) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X-0201-1976 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_JP_ASCII); ++ controloutput("\033(J",0); ++ SwToAscii = 'J'; ++ } ++ return (1); ++ } else if (!strncmp(token,"x-jis-x0208",11)) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X0208-* output mode */ ++ charsetpush(&iso2022_charset); ++ if (!strcmp (token + 11,"-1978")) ++ SwToOther = '@'; ++ else ++ SwToOther = 'B'; ++ richtextencoding((SwToOther == '@' ? RICH_ENC_JIS_1978 : ++ RICH_ENC_JIS_1983)); ++ controloutput("\033$",0); ++ controlputc(SwToOther); ++ } ++ return (1); ++ } else if (!strcmp(token,"x-ksc-5601")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\017",0); ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter KSC-5601 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KSC_5601); ++ controloutput("\033$)C\016",0); ++ } ++ return (1); ++ } else if (!strncmp (token,ISO_GENERIC_PREFIX,ISO_GENERIC_LEN)) { ++ /* Process an escape sequence for changing character sets */ ++ sscanf(token + ISO_GENERIC_LEN,"%x",&swchar); ++ if (swchar <= ' ' || swchar >= 0x7F) ++ return (1); ++ if (negated) { ++ /* Return to previous output mode from multi-byte mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding((swchar == 'J' ? RICH_ENC_JP_ASCII : ++ RICH_ENC_US_ASCII)); ++ controloutput("\033(",0); ++ controlputc(swchar); ++ SwToAscii = swchar; ++ } else { ++ /* Enter multi-byte (Japanese) mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding((swchar == '@' ? RICH_ENC_JIS_1978 : ++ RICH_ENC_JIS_1983)); ++ controloutput("\033$",0); ++ controlputc(swchar); ++ SwToOther = swchar; ++ } ++ return (1); ++ } else if (!strncmp (token,ISO_SHIFT_PREFIX,ISO_SHIFT_LEN)) { ++ /* Process a character set shift sequence */ ++ if (!strcmp(token + ISO_SHIFT_LEN,"out") && ++ RichtextCharEncoding == RICH_ENC_KR_ASCII) { ++ /* Enter KSC-5601 2-byte mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KSC_5601); ++ controloutput("\016",0); ++ } else if (!strcmp (token + ISO_SHIFT_LEN,"in") && ++ RichtextCharEncoding == RICH_ENC_KSC_5601) { ++ /* Return to US-ASCII from KSC-5601 */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KR_ASCII); ++ controloutput("\017",0); ++ } ++ return (1); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Check for singleton ISO-2022 tokens. ++ */ ++int iso2022_single (token) ++char *token; ++{ ++ return (!strncmp (token,ISO_GENERIC_PREFIX,ISO_GENERIC_LEN) || ++ !strncmp (token,ISO_SHIFT_PREFIX,ISO_SHIFT_LEN) || ++ !strncmp (token,ISO_CHARSET_PREFIX,ISO_CHARSET_LEN)); ++} ++ ++/* ++ * Determine the width of a ISO-2022 character. ++ */ ++int iso2022_width (ch) ++RCHAR ch; ++{ ++ return (ch & 0xFF00 ? 2 : 1); ++} ++ ++/* ++ * Determine if the current character can be used as a folding point. ++ */ ++int iso2022_fold (ch) ++RCHAR ch; ++{ ++ if (ch < 0x7F && isspace (ch)) { ++ return (1); ++ } else { ++ return ((ch & 0xFF00) != 0); ++ } ++} ++ ++/* ++ * Render the given ISO-2022 character. ++ */ ++iso2022_render (ch,param) ++RCHAR ch; ++void *param; ++{ ++ if (ch & 0xFF00) { ++ if (OutCharLen < 2) { ++ /* Add extra escape sequences after stray ASCII characters */ ++ /* This normally happens in excerpts and signatures, etc. */ ++ if (OutAsciiMode == RICH_ENC_JP_ASCII) { ++ (*RichtextPutc) (033,param); ++ (*RichtextPutc) ('$',param); ++ (*RichtextPutc) (SwToOther,param); ++ } else if (OutAsciiMode == RICH_ENC_KR_ASCII) { ++ (*RichtextPutc) (SO,param); ++ } ++ } ++ (*RichtextPutc) ((int)((ch & 0xFF00) >> 8),param); ++ (*RichtextPutc) ((int)(ch & 0xFF),param); ++ } else { ++ if (OutCharLen > 1 && ch >= 0x20) { ++ /* Add extra escape sequences before stray ASCII characters */ ++ /* This normally happens in excerpts and signatures, etc. */ ++ if (OutAsciiMode == RICH_ENC_JP_ASCII) { ++ (*RichtextPutc) (033,param); ++ (*RichtextPutc) ('(',param); ++ (*RichtextPutc) (SwToAscii,param); ++ } else if (OutAsciiMode == RICH_ENC_KR_ASCII) { ++ (*RichtextPutc) (SI,param); ++ } ++ } ++ (*RichtextPutc) ((int)(ch & 0xFF),param); ++ } ++} ++ ++/* ++ * Enter or leave the ISO-2022 encoding. ++ */ ++iso2022_encoding (newenc) ++int newenc; ++{ ++ switch (newenc) { ++ case RICH_ENC_US_ASCII: controloutput("\033(B",0); break; ++ case RICH_ENC_JP_ASCII: controloutput("\033(J",0); break; ++ case RICH_ENC_KR_ASCII: controloutput("\017",0); break; ++ case RICH_ENC_JIS_1978: controloutput("\033$@",0); break; ++ case RICH_ENC_JIS_1983: controloutput("\033$B",0); break; ++ case RICH_ENC_KSC_5601: controloutput("\016",0); break; ++ default: controloutput("\033(B",0); break; ++ } ++} ++ ++/* ++ * Define the ISO-2022-JP and ISO-2022-KR character set processor. ++ */ ++struct charsetproc iso2022_charset = ++ {"iso-2022-jp:iso-2022-kr", ++ iso2022_init, ++ iso2022_command, ++ iso2022_single, ++ iso2022_width, ++ iso2022_fold, ++ iso2022_render, ++ iso2022_encoding}; ++ ++/* ++ * Define an output routine for slotting into RichtextPutc so ++ * that ISO-2022 escape sequences are treated correctly. ++ */ ++int iso2022_fputc (ch,file) ++int ch; ++FILE *file; ++{ ++ if (OutPrevChar == ESC && ch == '(') { ++ /* Process escape sequences that end JIS 2-byte modes */ ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_JP_ASCII; ++ } ++ if (OutPrevPrevChar == ESC && OutPrevChar == '$') { ++ /* Process escape sequences that start JIS 2-byte modes */ ++ if (ch != ')') { /* ')' is for Korean, so ignore it */ ++ OutCharLen = 2; ++ OutCharSet = OUT_JIS; ++ OutAsciiMode = RICH_ENC_JP_ASCII; ++ } ++ } ++ if (ch == SO) { ++ OutCharLen = 2; ++ OutCharSet = OUT_KSC; ++ OutAsciiMode = RICH_ENC_KR_ASCII; ++ } else if (ch == SI) { ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_KR_ASCII; ++ } ++ if (ch == '\n' && OutCharLen == 2) { ++ /* Two-byte characters cannot cross line boundaries */ ++ if (OutCharSet == OUT_JIS) { ++ fputc (ESC,file); ++ fputc ('(',file); ++ fputc (SwToAscii,file); ++ fputc ('\n',file); ++ fputc (ESC,file); ++ fputc ('$',file); ++ fputc (SwToOther,file); ++ } else if (OutCharSet == OUT_KSC) { ++ fputc (SI,file); ++ fputc ('\n',file); ++ fputc (SO,file); ++ } ++ } else { ++ fputc (ch,file); ++ } ++ OutPrevPrevChar = OutPrevChar; ++ OutPrevChar = ch; ++} +--- metamail-2.7.orig/src/richmail/Makefile.am ++++ metamail-2.7/src/richmail/Makefile.am +@@ -0,0 +1,15 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail \ ++ -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++bin_PROGRAMS = richtext richtoatk ++ ++richtext_SOURCES = richtext.c richlex.c richset.c usascii.c iso2022.c ++richtext_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++richtoatk_SOURCES = richtoatk.c richlex.c richset.c usascii.c iso2022.c ++richtoatk_LDADD = $(top_builddir)/metamail/libmetamail.la ++ +--- metamail-2.7.orig/src/richmail/Makefile.in ++++ metamail-2.7/src/richmail/Makefile.in +@@ -0,0 +1,376 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++ ++bin_PROGRAMS = richtext richtoatk ++ ++richtext_SOURCES = richtext.c richlex.c richset.c usascii.c iso2022.c ++richtext_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++richtoatk_SOURCES = richtoatk.c richlex.c richset.c usascii.c iso2022.c ++richtoatk_LDADD = $(top_builddir)/metamail/libmetamail.la ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../../metamail/config.h ++CONFIG_CLEAN_FILES = ++bin_PROGRAMS = richtext$(EXEEXT) richtoatk$(EXEEXT) ++PROGRAMS = $(bin_PROGRAMS) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++richtext_OBJECTS = richtext.$(OBJEXT) richlex.$(OBJEXT) \ ++richset.$(OBJEXT) usascii.$(OBJEXT) iso2022.$(OBJEXT) ++richtext_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++richtext_LDFLAGS = ++richtoatk_OBJECTS = richtoatk.$(OBJEXT) richlex.$(OBJEXT) \ ++richset.$(OBJEXT) usascii.$(OBJEXT) iso2022.$(OBJEXT) ++richtoatk_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++richtoatk_LDFLAGS = ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/iso2022.P .deps/richlex.P .deps/richset.P \ ++.deps/richtext.P .deps/richtoatk.P .deps/usascii.P ++SOURCES = $(richtext_SOURCES) $(richtoatk_SOURCES) ++OBJECTS = $(richtext_OBJECTS) $(richtoatk_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/richmail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-binPROGRAMS: ++ ++clean-binPROGRAMS: ++ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ++ ++distclean-binPROGRAMS: ++ ++maintainer-clean-binPROGRAMS: ++ ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ else :; fi; \ ++ done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++richtext$(EXEEXT): $(richtext_OBJECTS) $(richtext_DEPENDENCIES) ++ @rm -f richtext$(EXEEXT) ++ $(LINK) $(richtext_LDFLAGS) $(richtext_OBJECTS) $(richtext_LDADD) $(LIBS) ++ ++richtoatk$(EXEEXT): $(richtoatk_OBJECTS) $(richtoatk_DEPENDENCIES) ++ @rm -f richtoatk$(EXEEXT) ++ $(LINK) $(richtoatk_LDFLAGS) $(richtoatk_OBJECTS) $(richtoatk_LDADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src/richmail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/richmail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binPROGRAMS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binPROGRAMS ++uninstall: uninstall-am ++all-am: Makefile $(PROGRAMS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ ++ clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ ++ distclean-tags distclean-depend distclean-generic \ ++ clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-binPROGRAMS \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ ++maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/src/richmail/richlex.c ++++ metamail-2.7/src/richmail/richlex.c +@@ -0,0 +1,480 @@ ++/*------------------------------------------------------------------------- ++ ++ richlex.c - Lexical analysis routines for parsing richtext messages. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 31/01/92 RW Original Version of richlex.c ++ 1.1 19/06/92 RW Add support for multi-byte ISO-2022 codes. ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++ Caveats: ++ ======= ++ ++ If a multi-byte character contains "<lt>", and a richtext command or ++ escape sequence is started before all bytes of the multi-byte character ++ have been read in, then some characters may be discarded. ++ ++-------------------------------------------------------------------------*/ ++ ++#include <metamail/common.h> ++ ++#include "richlex.h" ++#include "richset.h" ++ ++int CorrectionEnabled = 1; /* Zero if correction has been disabled */ ++int RichtextLessThanFlag = 0; /* Non-zero to turn on multi-byte '<' hack */ ++ ++//extern int fgetc (); ++//extern int fputc (); ++ ++int (*RichtextGetc) () = fgetc; /* Function to call to get characters */ ++int (*RichtextPutc) () = fputc; /* Function to call to put characters */ ++int RichtextCharEncoding = RICH_ENC_US_ASCII; /* Current encoding mode */ ++ ++#define MAX_STACK_SIZE 500 ++#define MAX_FLUSH_SIZE 3 ++#define MAX_PUSH_BACK 20 ++static int StackSize=0; ++static char Stack[MAX_STACK_SIZE][MAX_TOKEN_SIZE]; ++static char NextToken[MAX_TOKEN_SIZE]; ++static int FlushStack=0; ++static int FlushSize=0; ++static int EndInpFile=0; ++static int CharSize=1; ++static int PushbackBuffer[MAX_PUSH_BACK]; ++static int PushbackSize=0; ++static int PushbackExtract=0; ++ ++#define ESC 033 ++#define SI 017 ++#define SO 016 ++ ++#define RGETRAW(f) ((*RichtextGetc)(f)) ++#define RGET(f) (PushbackSize ? richtextgetback() : RGETRAW(f)) ++#define RPUT(c,f) ((*RichtextPutc)(((int)(c)),(f))) ++#define RUNGET(c) (richtextunget(c)) ++#define RPUSHBACK(c) (richtextpushback(c)) ++ ++/* ++ * Define a "printf" format for a generic ISO-2022 character ++ * set name that includes the hexadecimal representation of ++ * the escape sequence character that turns ISO-2022 on or off ++ * on the terminal. ++ */ ++#define ISO2022_GENERIC "x-iso-2022-gen-%2x" ++#define ISO2022_CHARSET "x-iso-charset-" ++ ++/* ++ * Define the character set shift characters for ISO-2022-KR. ++ */ ++#define ISO2022_SHIFTIN "x-iso-shift-in" ++#define ISO2022_SHIFTOUT "x-iso-shift-out" ++ ++/* ++ * Construct multi-byte character codes. ++ */ ++#define RICHCH_2(first,second) ((RCHAR)(((first) << 8) | (second))) ++ ++/* ++ * Reset the richtext parsing mechanism. ++ */ ++richtextreset() ++{ ++ StackSize = 0; ++ FlushStack = 0; ++ FlushSize = 0; ++ EndInpFile = 0; ++ CharSize = 1; ++ PushbackSize = 0; ++ PushbackExtract = 0; ++ RichtextCharEncoding = RICH_ENC_US_ASCII; ++ CorrectionEnabled = 1; ++ RichtextLessThanFlag = 0; ++} ++ ++/* ++ * Push a character into the push-back buffer for later ++ * retrieval by RGET. ++ */ ++static void richtextpushback(c) ++int c; ++{ ++ PushbackBuffer[PushbackSize++] = c; ++} ++ ++/* ++ * Unget a character that has been read from the input stream. ++ */ ++static void richtextunget(c) ++int c; ++{ ++ if (PushbackSize) ++ --PushbackExtract; /* Character was retrieved from push-back */ ++ else ++ richtextpushback(c); /* Put character into empty push-back */ ++} ++ ++/* ++ * Unget two characters that have been read from the input stream. ++ */ ++static void richtextunget2(c1,c2) ++int c1,c2; ++{ ++ if (PushbackExtract > 1) { ++ PushbackExtract -= 2; /* Go back two characters in the push-back */ ++ PushbackBuffer[PushbackExtract++] = c1; ++ PushbackBuffer[PushbackExtract++] = c2; ++ } else { ++ richtextpushback(c1); /* Put the characters into the push-back */ ++ richtextpushback(c2); ++ } ++} ++ ++/* ++ * Retrieve a character from the push-back buffer. ++ */ ++static int richtextgetback() ++{ ++ int c; ++ c = PushbackBuffer[PushbackExtract++]; ++ if (PushbackExtract >= PushbackSize) { ++ PushbackSize = 0; ++ PushbackExtract = 0; ++ } ++ return(c); ++} ++ ++/* ++ * Find a match between NextToken and an element on the stack. ++ * Returns the number of elements down from the top it is. ++ * i.e. 0 if not on the stack, 1 if at the top, etc. ++ */ ++static int richtextmatchup() ++{ ++ int i = StackSize; ++ while (i > 0 && i > (StackSize - MAX_FLUSH_SIZE)) { ++ --i; ++ if (!strcmp(NextToken,Stack[i])) ++ return(StackSize - i); ++ } ++ return(0); ++} ++ ++/* ++ * Determine if the current token is one of the singleton ++ * richtext commands: <nl>, <lt>, <np>. ++ */ ++static richtextsingle(TextEnriched) ++int TextEnriched; ++{ ++ return (charsetsingle (NextToken) || ++ (!TextEnriched && ++ (!strcmp(NextToken,"nl") || ++ !strcmp(NextToken,"lt") || ++ !strcmp(NextToken,"np")))); ++} ++ ++/* ++ * Recognise a character that can start a richtext command. ++ */ ++#define iscmdch(c) (isalpha(c) || isdigit(c) || (c) == '/' || (c) == '-') ++#define iscmdch2(c) (isalpha(c) || isdigit(c) || (c) == '-') ++#define TOLOWER(c) (isupper(c)?tolower(c):c) ++#define valid_command(c1,c2) \ ++ (( c1 == '/' && iscmdch2(c2) ) || \ ++ (!TextEnriched && TOLOWER(c1) == 'l' && TOLOWER(c2) == 't' )) ++ ++/* ++ * Get the next token from the input stream. RICHTEXT_COMMAND ++ * or RICHTEXT_NEG_COMMAND are returned if it is a richtext command. ++ * e.g. "<cmd>" or "</cmd>". The "token" buffer will receive the ++ * name of the command (without <,> or /) if it is a command. This ++ * function will also truncate commands longer than MAX_TOKEN_SIZE - 1 ++ * characters and abort command parsing if white space is encountered, ++ * so, for example, errors like "<bold hi kids</bold>" don't cause ++ * problems: it will be corrected to "<bold>hi kids</bold>". ++ */ ++RCHAR richtextlex(file,token,TextEnriched, nofill) ++void *file; ++char *token; ++int TextEnriched; ++int nofill; /* Inside a nofill env we parse newlines differently */ ++{ ++ int c,i,lastch; ++ RCHAR cmd; ++ ++ lastch = 0; /* No previous character for multi-byte chars as yet */ ++ ++ /* Perform any flushing of balancing commands that is necessary */ ++ if (FlushStack) { ++ /* Flush out some extra closing commands */ ++ strcpy(token,Stack[StackSize - FlushSize + (--FlushStack)]); ++ return(RICHTEXT_NEG_COMMAND); ++ } else if (FlushSize) { ++ /* Finished flushing: output the pending close command */ ++ StackSize -= FlushSize; ++ if (StackSize > 0) ++ --StackSize; /* Remove the command that was being matched up */ ++ FlushSize = 0; ++ strcpy(token,NextToken); ++ if (EndInpFile) ++ return((RCHAR)EOF); /* The last flush was the end-of-file cleanup */ ++ else ++ return(RICHTEXT_NEG_COMMAND); ++ } ++ ++ /* Fetch a new character or richtext command */ ++ for (;;) { /* Loop so we can come back on ignored commands */ ++ c = RGET(file); ++ if (c == '<') { ++ /* Check for multi-byte mode, where "<" is special */ ++ int c2; ++ if (CharSize > 1) { ++ if (RichtextLessThanFlag) { ++ /* The multi-byte '<' hack is in effect: not a command */ ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ if ((c = RGET(file)) == EOF) { ++ RUNGET(c); ++ return((RCHAR)'<'); ++ } ++ c2 = RGET(file); ++ richtextunget2(c,c2); ++ if( !valid_command(c,c2) ){ ++ /* We have a stray less-than symbol */ ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ } else if (TextEnriched) { ++ c2 = RGET(file); ++ if (c2 == '<') { ++ return((RCHAR)c); ++ } else { ++ RUNGET(c2); ++ } ++ } ++ ++ /* Read a command token from the input file */ ++ cmd = RICHTEXT_COMMAND; ++ if ((c = RGET(file)) == '/') { ++ cmd = RICHTEXT_NEG_COMMAND; ++ c = RGET(file); ++ } ++ for (i = 0; i < (MAX_TOKEN_SIZE - 1) && c != '>' ++ && c != EOF && !isspace(c); ++i) { ++ NextToken[i] = isupper(c) ? tolower(c) : c; ++ c = RGET(file); ++ } ++ if (c != '>' && c != EOF && !isspace(c)) { ++ /* We have a long command: skip the rest of it */ ++ while (c != '>' && c != EOF && !isspace(c)) ++ c = RGET(file); ++ } ++ if (c == EOF) { ++ if (!StackSize) ++ return((RCHAR)EOF); ++ /* Flush the remaining commands at the end of the input file */ ++ FlushSize = StackSize; ++ FlushStack = FlushSize; ++ EndInpFile = 1; ++ return(richtextlex(file,token,TextEnriched, nofill)); /* Flush something out */ ++ } ++ NextToken[i] = '\0'; ++ ++ /* Process <lt> specially for multi-byte characters */ ++ if (CharSize > 1 && !TextEnriched && !strcmp(NextToken,"lt")) { ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ ++ /* Check to see if we need to correct anything */ ++ if (!CorrectionEnabled) { ++ /* No correction to do: just skip the correction phase */ ++ strcpy(token,NextToken); ++ return(cmd); ++ } ++ if (cmd == RICHTEXT_COMMAND) { ++ /* Save the command on the stack if not a singleton command */ ++ if (!richtextsingle(TextEnriched)) { ++ strcpy (Stack[StackSize++],NextToken); ++ } ++ } ++ else if (!(i = richtextmatchup())) ++ continue; /* No matchup - just drop it */ ++ else if (i == 1) ++ --StackSize; /* Correct match at the stack top */ ++ else { ++ /* Flush some correction elements from the stack */ ++ FlushSize = i - 1; ++ FlushStack = FlushSize; ++ return(richtextlex(file,token,TextEnriched, nofill)); ++ } ++ strcpy(token,NextToken); ++ return(cmd); ++ } else if (c == SI) { ++ /* Shift-in character: translate to a singleton */ ++ strcpy(token,ISO2022_SHIFTIN); ++ return(RICHTEXT_COMMAND); ++ } else if (c == SO) { ++ /* Shift-out character: translate to a singleton */ ++ strcpy(token,ISO2022_SHIFTOUT); ++ return(RICHTEXT_COMMAND); ++ } else if (c == ESC) { ++ /* Check for escape sequences that change character sizes */ ++ int newc; ++ c = RGET(file); ++ if (c == '$') { ++ newc = RGET(file); ++ if (newc == ')') { ++ newc = RGET(file); /* 4-byte ESC-$-)-? sequence */ ++ sprintf(token,ISO2022_CHARSET,newc); ++ } else { ++ sprintf(token,ISO2022_GENERIC,newc); ++ } ++ return(RICHTEXT_COMMAND); ++ } else if (c == '(') { ++ newc = RGET(file); ++ sprintf(token,ISO2022_GENERIC,newc); ++ return(RICHTEXT_NEG_COMMAND); ++ } else { ++ RUNGET(c); ++ return((RCHAR)ESC); ++ } ++ } else if (c == EOF && StackSize) { ++ /* Flush the remaining commands at the end of the input file */ ++ FlushSize = StackSize; ++ FlushStack = FlushSize; ++ EndInpFile = 1; ++ return(richtextlex(file,token,TextEnriched, nofill)); /* Flush something out */ ++ } else if (CharSize > 1) { ++ /* Recognise a multi-byte character */ ++ int newc; ++ if (!lastch && isspace (c)) ++ return ((RCHAR)c); /* Hack for spaces in 2-byte modes */ ++ if (lastch) ++ return (RICHCH_2(lastch,c)); /* This is second of 2 chars */ ++ if ((newc = RGET(file)) == EOF) { ++ RUNGET(newc); /* Push the EOF back into the input stream */ ++ return((RCHAR)c); /* Just return the partial single-byte char */ ++ } else if (newc == '<') { ++ /* The second character could be "<lt>", so loop around */ ++ lastch = c; ++ RUNGET(newc); ++ continue; ++ } else { ++ return(RICHCH_2(c,newc)); ++ } ++ } else if (TextEnriched && !nofill && (c == '\n')) { ++ int c2 = RGET(file); ++ RUNGET(c2); ++ if (c2 == '\n') { ++ strcpy(token, "iNtErNaL-nL"); ++ return(RICHTEXT_COMMAND); ++ } else { ++ return((RCHAR)c); ++ } ++ } else { ++ return((RCHAR)c); ++ } ++ } ++} ++ ++/* ++ * Output a string via "RichtextPutc". ++ */ ++static richtextoutstr(str,outparam) ++char *str; ++void *outparam; ++{ ++ while (*str) { ++ RPUT(*str,outparam); ++ ++str; ++ } ++} ++ ++/* ++ * Read the input stream, correct the richtext, and write the ++ * results to the output stream. ++ */ ++richtextcorrect(inparam,outparam,TextEnriched) ++void *inparam,*outparam; ++int TextEnriched; ++{ ++ RCHAR c; ++ char token[MAX_TOKEN_SIZE]; ++ while ((c = richtextlex(inparam,token,TextEnriched, 0)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND) { ++ RPUT('<',outparam); ++ richtextoutstr(token,outparam); ++ RPUT('>',outparam); ++ } else if (c == RICHTEXT_NEG_COMMAND) { ++ RPUT('<',outparam); ++ RPUT('/',outparam); ++ richtextoutstr(token,outparam); ++ RPUT('>',outparam); ++ } else if (c >= 256) { ++ RPUT(RICHCH2_FIRST(c),outparam); ++ RPUT(RICHCH2_SECOND(c),outparam); ++ } else { ++ RPUT(c,outparam); ++ } ++ } ++} ++ ++/* ++ * Change the encoding used for characters not present in ++ * richtext command sequences. ++ */ ++richtextencoding(encoding) ++int encoding; ++{ ++ RichtextCharEncoding = encoding; ++ switch (RichtextCharEncoding) { ++ case RICH_ENC_US_ASCII: ++ case RICH_ENC_JP_ASCII: ++ case RICH_ENC_KR_ASCII: ++ CharSize = 1; ++ break; ++ ++ case RICH_ENC_JIS_1978: ++ case RICH_ENC_JIS_1983: ++ case RICH_ENC_KSC_5601: ++ CharSize = 2; ++ break; ++ ++ default:CharSize = 1; ++ break; ++ } ++} +--- metamail-2.7.orig/src/richmail/richlex.h ++++ metamail-2.7/src/richmail/richlex.h +@@ -0,0 +1,166 @@ ++/*------------------------------------------------------------------------- ++ ++ richlex.h - Lexical analysis routines for parsing richtext messages. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 31/01/92 RW Original Version of richlex.h ++ 1.1 19/06/92 RW Add support for multi-byte ISO-2022 codes. ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#ifndef __RICHTEXT_H__ ++#define __RICHTEXT_H__ ++ ++#include <metamail/common.h> ++ ++BEGIN_C_DECLS ++ ++//#ifdef __cplusplus ++//extern "C" { ++//#endif ++ ++/* ++ * Define the data type to be used by characters in the richtext ++ * system. Note: this is a long because some machines, MS-DOS ++ * machines for example, only have 16-bit integers and hence won't ++ * be able to cope with large multi-byte character codes. If ++ * something is strange with your character processing, it is ++ * probably because you aren't using the right types. ++ */ ++typedef long RCHAR; ++ ++/* ++ * Set the following variable to zero to disable the ++ * correction of richtext commands. The default ++ * value is non-zero. ++ */ ++extern int CorrectionEnabled; ++ ++/* ++ * Set the following value to non-zero to enable the ++ * multi-byte '<' hack which ignores richtext commands ++ * in multi-byte modes. The default value is zero. ++ */ ++extern int RichtextLessThanFlag; ++ ++/* ++ * Define the function to call to get characters from ++ * the message. The calling convention of this ++ * function is: "int func (void *param)". The default ++ * value is "fgetc". The function must return EOF ++ * at the end of the messsage; ++ */ ++extern int (*RichtextGetc) (); ++ ++/* ++ * Define the function to call to output characters from ++ * richtextcorrect. The calling convention of this ++ * function is: "int func (int c,void *param)". The default ++ * value is "fputc". ++ */ ++extern int (*RichtextPutc) (); ++ ++/* ++ * Define the maximum size of richtext command tokens. ++ */ ++#define MAX_TOKEN_SIZE 50 ++ ++/* ++ * Define the special token values that are returned by ++ * the "richtextlex" function. These values were chosen ++ * to keep away from legal ASCII. ++ * ++ * Version 1.1: modified to negative values to keep away ++ * from legal ISO-2022 and other multi-byte characters. ++ */ ++#define RICHTEXT_COMMAND ((RCHAR)(-2)) ++#define RICHTEXT_NEG_COMMAND ((RCHAR)(-3)) ++ ++/* ++ * Reset the richtext parsing mechanism. ++ */ ++extern richtextreset(); ++ ++/* ++ * Get the next token from the input stream. RICHTEXT_COMMAND ++ * or RICHTEXT_NEG_COMMAND are returned if it is a richtext command. ++ * e.g. "<cmd>" or "</cmd>". The "token" buffer will receive the ++ * name of the command (without <,> or /) if it is a command. This ++ * function will also truncate commands longer than MAX_TOKEN_SIZE - 1 ++ * characters and abort command parsing if white space is encountered, ++ * so, for example, errors like "<bold hi kids</bold>" don't cause ++ * problems: it will be corrected to "<bold>hi kids</bold>". ++ * The "file" parameter is passed to the function pointed to by ++ * "RichtextGetc" on each call. ++ */ ++extern RCHAR richtextlex( /* void *file,char *token,int TextEnriched */ ); ++ ++/* ++ * Read the input stream, correct the richtext, and write the ++ * results to the output stream. "outparam" is passed to the ++ * "RichtextPutc" function as the second argument, and "inparam" ++ * is passed to "richtextlex" during parsing. ++ */ ++extern richtextcorrect( /* void *inparam,void *outparam,int TextEnriched */ ); ++ ++#define RICH_ENC_US_ASCII 0 /* US-ASCII encoding: one-byte */ ++#define RICH_ENC_JP_ASCII 1 /* JP-ASCII encoding: one-byte */ ++#define RICH_ENC_KR_ASCII 2 /* KR-ASCII encoding: one-byte */ ++#define RICH_ENC_JIS_1978 100 /* JIS-X-0208-1978: two-byte */ ++#define RICH_ENC_JIS_1983 101 /* JIS-X-0208-1983: two-byte */ ++#define RICH_ENC_KSC_5601 200 /* KSC-5601 (Korean): two-byte */ ++ ++/* ++ * The following variable contains the current character ++ * encoding in use. This should only be read. Setting it ++ * is done via "richtextencoding". ++ */ ++extern int RichtextCharEncoding; ++ ++/* ++ * Change the encoding used for characters not present in ++ * richtext command sequences. ++ */ ++extern richtextencoding( /* int encoding */ ); ++ ++/* ++ * Define a number of macros for decoding multi-byte character ++ * codes. The names of the macros have the form "RICHCHn_xxx" ++ * where "n" is the number of bytes in the character. ++ */ ++#define RICHCH2_FIRST(c) (((c) >> 8) & 0xFF) ++#define RICHCH2_SECOND(c) ((c) & 0xFF) ++ ++//#ifdef __cplusplus ++//}; ++//#endif ++ ++END_C_DECLS ++ ++#endif /* __RICHTEXT_H__ */ +--- metamail-2.7.orig/src/richmail/richtext.c ++++ metamail-2.7/src/richmail/richtext.c +@@ -0,0 +1,905 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++#include <metamail/common.h> ++ ++#include <curses.h> /* This and next for tgetstr(3X) and kin */ ++#include <term.h> ++ ++#include "richlex.h" ++#include "richset.h" ++ ++int iso2022_fputc (); ++ ++/* ++ * ######################################################################## ++ * The function "InitGlobals" must be updated whenever a new variable is ++ * added here or a default value is changed. The same must be done for ++ * the next section of variables also. This is needed because this module ++ * could be linked into another program as a library and called more than ++ * once in a single program execution. ++ * ######################################################################## ++ */ ++static int linepos = 0, inspace = 0, leftmargin = 0, rightmargin, biggertext=0; ++static int workingleft = 0, workingright, inexcerpt = 0, insignature = 0; ++static int highlight=0, underline=0, bold=0, nofill=0; ++static int termcolumns=80, termrows=23; ++int controlputc(); ++ ++/* A common problem, in justifying text, is figuring out how to format a ++ line when part of it wants to be left-justified, part right-justified, ++ and part centered, or some combination thereof. There is no perfect ++ solution to this problem, so this program takes an incredibly cheesy ++ but simple way out: voting. For each character on the line, a point ++ is added to the "center" score if it is supposed to be centered, and ++ so on. If it is inside TWO "center" environments, two points are added. ++ This may be the world's first implementation of justification by voting... ++*/ ++ ++static int centerenv=0, leftjustenv=0, rightjustenv=0; ++static int centerct=0, leftjustct=0, rightjustct=0; ++static int UsePager = 0; ++static int linesused = 0; ++static int JustSawCmd=0; ++static int JustCorrect = 0; /* Non-zero to just correct and not format */ ++static int OverStrike = 0; ++static int TextEnriched = 0; ++static char MoveRight[10]; ++static char highlightbuf[50], highlightendbuf[50], StartUnderline[50], StopUnderline[50]; ++static char KS[50], KE[50], BoldOn[50], BoldOff[50]; ++static char charsetname[50]; ++static int FakeTerminal; ++ ++extern tputs(); ++ ++static outputc(), realoutputc(), MakeWorkingMargins(), Pause(), fputsmovingright(), ResetTerminalCodes(), FinalizeTerminal(), outputstr(), FPUTS(), lc2strcmp(); ++ ++#define OUTC(c) (outputc((RCHAR)(c))) ++ ++static void ++InitGlobals() ++{ ++ linepos = 0; ++ inspace = 0; ++ leftmargin = 0; ++ biggertext = 0; ++ workingleft = 0; ++ inexcerpt = 0; ++ insignature = 0; ++ termcolumns = 80; ++ termrows = 23; ++ centerenv = 0; ++ leftjustenv = 0; ++ rightjustenv = 0; ++ centerct = 0; ++ leftjustct = 0; ++ rightjustct = 0; ++ UsePager = 0; ++ linesused = 0; ++ JustSawCmd = 0; ++ JustCorrect = 0; ++ highlight = 0; ++ underline = 0; ++ bold = 0; ++ TextEnriched = 0; ++ nofill = 0; ++} ++ ++static void ++cleanup(signum) ++int signum; ++{ ++ FinalizeTerminal(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++static InitSignals() { ++ signal(SIGINT, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++#ifndef linux ++ signal(SIGEMT, cleanup); ++ signal(SIGBUS, cleanup); ++#endif ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++static nomemabort() { ++ fprintf(stderr, "richtext: Out of memory\n"); ++ FinalizeTerminal(); ++ exit(-1); ++} ++ ++#ifndef RICHTEXT_LIBRARY ++ ++/* ++ * Only include the main function if this module is not being used as a ++ * library call. ++ */ ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ exit(richtext_main(argc, argv)); ++} ++ ++#endif ++ ++richtext_main(argc, argv) ++int argc; ++char **argv; ++{ ++ RCHAR c; ++ int i, atstart, negated, ++ ForceTermcap=0, ForcePlain=0, NotTtyEnv = 0; ++ char token[MAX_TOKEN_SIZE], *tok, *nottty; ++ char tbuf[1024], *term, *dum; ++ FILE *InputFP = stdin, *tmpfp; ++ ++ InitSignals(); ++ InitGlobals(); ++ richtextreset(); ++ strcpy(charsetname,"us-ascii"); ++ dum = (char *) getenv("MM_USEPAGER"); ++ if (dum && atoi(dum)) ++UsePager; ++ for (i=1; i< argc; ++i) { ++ if (!strcmp(argv[i], "-p")) { ++ ++UsePager; ++ } else if (!strcmp(argv[i],"-c")) { ++ /* Only perform correction: don't format */ ++ JustCorrect = 1; ++ } else if (!strcmp(argv[i], "-f")) { ++ /* Force termcap usage */ ++ ForceTermcap = 1; ++ } else if (!strcmp(argv[i], "-t")) { ++ /* Force plain text */ ++ ForcePlain = 1; ++ } else if (!strcmp(argv[i],"-n")) { ++ /* Disable the richtext correction routines */ ++ CorrectionEnabled = 0; ++ } else if (!strcmp(argv[i],"-m")) { ++ /* Enable the multi-byte '<' hack */ ++ RichtextLessThanFlag = 1; ++ } else if (!strncmp(argv[i], "-s", 2)) { ++ /* Specify the character set to use (and convert to lower case) */ ++ char *name; ++ if (argv[i][2]) ++ strcpy(charsetname, argv[i] + 2); ++ else if (i < (argc - 1)) ++ strcpy(charsetname, argv[++i]); ++ name = charsetname; ++ while (*name) { ++ if (isupper(*name)) ++ *name = tolower(*name); ++ ++name; ++ } ++ } else if (!strcmp(argv[i], "-o")) { ++ /* Use Overstriking */ ++ OverStrike = 1; ++ ForcePlain = 1; ++ } else if (!strcmp(argv[i], "-e")) { ++ /* Work with text/enriched instead of text/richtext */ ++ TextEnriched = 1; ++ } else { ++ /* open for input */ ++ tmpfp = fopen(argv[i], "r"); ++ if (tmpfp) ++ InputFP = tmpfp; ++ else { ++ perror (argv[i]); ++ exit (1); ++ } ++ } ++ } ++ /* THIS IS THE UNIX TERMINAL INITIALIZATION CODE */ ++ nottty = (char *) getenv("MM_NOTTTY"); ++ if (nottty) NotTtyEnv = atoi(nottty); ++ if (UsePager && (!isatty(0) || !isatty(1) || NotTtyEnv)) { ++ UsePager = 0; /* Disable pager if I/O has been redirected or we're under a window-oriented mail reader */ ++ } ++ if ((!ForcePlain && (isatty(1) || isatty(0))) || ForceTermcap) { ++ term = (char *) getenv("TERM"); ++ } else { ++ term = NULL; ++ } ++ if (term && tgetent(tbuf, term) != 1) { ++ term = NULL; ++ } ++ if (term) { ++ static char cb[1024]; ++ char *cp; ++ ++ cp = cb; ++ ++ if (dum = (char*) tgetstr("ks", &cp)) ++ strcpy (KS, dum); ++ else ++ KS[0] = '\0'; ++ if (dum = (char*) tgetstr("ke", &cp)) ++ strcpy (KE, dum); ++ else ++ KE[0] = '\0'; ++ if (dum = (char*) tgetstr("so", &cp)) ++ strcpy (highlightbuf, dum); highlightbuf[0] = '\0'; ++ if (dum = (char*) tgetstr("se", &cp)) ++ strcpy (highlightendbuf, dum); highlightendbuf[0] = '\0'; ++ if (dum = (char*) tgetstr("md", &cp)) ++ strcpy (BoldOn, dum); ++ else ++ strcpy(BoldOn, highlightbuf); ++ if (dum = (char*) tgetstr("me", &cp)) ++ strcpy (BoldOff, dum); ++ else ++ strcpy(BoldOff, highlightendbuf); ++ if (dum = (char*) tgetstr("us", &cp)) ++ strcpy (StartUnderline, dum); ++ else ++ StartUnderline[0] = '\0'; ++ if (dum = (char*) tgetstr("ue", &cp)) ++ strcpy (StopUnderline, dum); ++ else StopUnderline[0] = '\0'; ++ if (dum = (char*) tgetstr("nd", &cp)) ++ strcpy (MoveRight, dum); ++ else { ++ MoveRight[0] = ' '; ++ MoveRight[1] = '\0'; ++ } ++ /* Some TERMCAP entries have REALLY screwed up "nd" fields, sigh... */ ++ if (!strcmp(MoveRight, "\014")) strcpy(MoveRight, " "); ++ termcolumns = tgetnum("co"); ++ if (termcolumns <= 0) termcolumns = 80; ++ termrows = tgetnum("li"); ++ if (termrows <= 0) termrows = 23; ++ else termrows--; ++ FakeTerminal=0; ++ } else if (OverStrike) { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ FakeTerminal = 1; ++ BoldOn[0] = '\0'; ++ BoldOff[0] = '\0'; ++ highlightbuf[0] = '\0'; ++ highlightendbuf[0] = '\0'; ++ StartUnderline[0] = '\0'; ++ StopUnderline[0] = '\0'; ++ strcpy(MoveRight, " "); ++ termcolumns = 80; ++ termrows = 23; ++ } else { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ FakeTerminal = 1; ++ strcpy(BoldOn, "*"); ++ strcpy(BoldOff, "*"); ++ strcpy(highlightbuf, "_"); ++ strcpy(highlightendbuf, "_"); ++ strcpy(StartUnderline, "_"); ++ strcpy(StopUnderline, "_"); ++ strcpy(MoveRight, " "); ++ termcolumns = 80; ++ termrows = 23; ++ } ++ /* Check for the LINES & COLUMNS hack */ ++ dum = getenv("LINES"); ++ if (dum && ((i=atoi(dum)) > 0)) termrows = i - 1; ++ dum = getenv("COLUMNS"); ++ if (dum && ((i=atoi(dum)) > 0)) termcolumns = i; ++ charsetnameinit(charsetname); ++ RichtextPutc = iso2022_fputc; ++ if (JustCorrect) { ++ richtextcorrect(InputFP,stdout,TextEnriched); ++ return(0); ++ } ++ FPUTS(KS, stdout); ++ rightmargin = workingright = termcolumns - 1; ++ while((c = richtextlex(InputFP,token,TextEnriched, nofill)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) { ++ negated = (c == RICHTEXT_NEG_COMMAND); ++ tok = token; ++ ++ /* Try to process the command with the character set processors */ ++ if (charsetcommand (tok,negated)) ++ continue; ++ ++ /* Do the default action for the command */ ++ switch(tok[0]) { ++ case 'b': ++ if (!strcmp(tok, "bold")) { ++ if (negated) { ++ --bold; ++ if (bold <= 0) { ++ if (FakeTerminal) outputstr(BoldOff); ++ else controloutput(BoldOff, 0); ++ } ++ } else { ++ ++bold; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, ++ bold, highlightbuf, highlightendbuf, 0, ++ StartUnderline, StopUnderline, 0, BoldOn, ++ BoldOff, 1); ++ } else if (!strcmp(tok, "bigger")) { ++ if (negated) --biggertext; else ++biggertext; ++ } ++ break; ++ case 'c': ++ if (!strcmp(tok, "center")) { ++ if (negated) --centerenv; else ++centerenv; ++ } else if (!TextEnriched && !strcmp(tok, "comment")) { ++ int commct=1; ++ int tempc; ++ while (commct > 0) { ++ while ((tempc = getc(InputFP)) != '<' ++ && tempc != EOF) ; ++ if (tempc == EOF) break; ++ for (i=0; (tempc = getc(InputFP)) != '>' ++ && tempc != EOF; ++i) { ++ token[i] = isupper(tempc) ? ++ tolower(tempc) : tempc; ++ if (i == MAX_TOKEN_SIZE-2) break; ++ } ++ if (tempc== EOF) break; ++ token[i] = 0; ++ if (!strcmp(token, "/comment")) --commct; ++ if (!strcmp(token, "comment")) ++commct; ++ } ++ } ++ break; ++ case 'e': ++ if (!strcmp(tok, "excerpt")) { ++ atstart = !(linepos > workingleft); ++ if (negated) { ++ leftmargin -= 4; ++ rightmargin += 4; ++ --inexcerpt; ++ } else { ++ leftmargin += 4; ++ rightmargin -= 4; ++ ++inexcerpt; ++ } ++ MakeWorkingMargins(); ++ if (!atstart) OUTC('\n'); ++ } ++ break; ++ case 'f': ++ if (!strcmp(tok, "flushleft")) { ++ if (negated) --leftjustenv; else ++leftjustenv; ++ } else if (!strcmp(tok, "flushright")) { ++ if (negated) --rightjustenv; else ++rightjustenv; ++ } ++ break; ++ case 'i': ++ if (!strcmp(tok, "italic")) { ++ if (negated) { ++ --highlight; ++ if (highlight <= 0) { ++ if (FakeTerminal) outputstr(highlightendbuf); ++ else controloutput(highlightendbuf, 0); ++ } ++ } else { ++ ++highlight; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 1, StartUnderline, ++ StopUnderline, 0, BoldOn, BoldOff, 0); ++ } else if (!strcmp(tok, "indent")) { ++ if (negated) { ++ leftmargin -= 4; ++ } else { ++ leftmargin += 4; ++ } ++ } else if (!strcmp(tok, "indentright")) { ++ if (negated) { ++ rightmargin += 4; ++ } else { ++ rightmargin -= 4; ++ } ++ } else if (TextEnriched && !strcmp(tok, "iNtErNaL-nL")) { ++ OUTC('\n'); ++ } ++ MakeWorkingMargins(); ++ break; ++ case 'l': ++ if (!TextEnriched && !strcmp(tok, "lt")) { ++ OUTC('<'); ++ } ++ break; ++ case 'n': ++ if (!TextEnriched && !strcmp(tok, "nl")) { ++ OUTC('\n'); ++ } else if (TextEnriched && !strcmp(tok, "nofill")) { ++ if (negated) { ++ --nofill; ++ } else { ++ ++nofill; ++ } ++ } else if (!TextEnriched && !strcmp(tok, "np")) { ++ OUTC('\n'); ++ OUTC('\014'); ++ } ++ break; ++ case 'o': ++ if (!TextEnriched && !strcmp(tok, "outdent")) { ++ if (negated) { ++ leftmargin += 4; ++ } else { ++ leftmargin -= 4; ++ } ++ } else if (!TextEnriched && !strcmp(tok, "outdentright")) { ++ if (negated) { ++ rightmargin -= 4; ++ } else { ++ rightmargin += 4; ++ } ++ } ++ MakeWorkingMargins(); ++ break; ++ case 'p': ++ if (!TextEnriched && !strcmp(tok, "paragraph")) { ++ if (negated) OUTC('\n'); ++ OUTC('\n'); ++ } else if (TextEnriched && !strcmp(tok, "param")) { ++ int commct=1; ++ while (commct > 0) { ++ for (;;) { ++ c = richtextlex(InputFP,token,TextEnriched, nofill); ++ if (c == EOF || c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) ++ break; ++ } ++ if (c == EOF) break; ++ if (!strcmp(token,"param")) { ++ if (c == RICHTEXT_NEG_COMMAND) --commct; ++ else if (c == RICHTEXT_COMMAND) ++commct; ++ } ++ } ++ } ++ break; ++ case 's': ++ if (!TextEnriched && !strcmp(tok, "signature")) { ++ atstart = !(linepos > workingleft); ++ if (negated) { ++ leftmargin -= 4; ++ rightmargin += 4; ++ --insignature; ++ } else { ++ leftmargin += 4; ++ rightmargin -= 4; ++ ++insignature; ++ } ++ MakeWorkingMargins(); ++ if (!atstart) OUTC('\n'); ++ } ++ break; ++ case 'u': ++ if (!strcmp(tok, "underline")) { ++ if (negated) { ++ --underline; ++ if (underline <= 0) { ++ if (FakeTerminal) outputstr(StopUnderline); ++ else controloutput(StopUnderline,0); ++ } ++ } else { ++ ++underline; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 0, StartUnderline, ++ StopUnderline, 1, BoldOn, BoldOff, 0); ++ } ++ break; ++ case 'v': ++ if (TextEnriched && !strcmp(tok, "verbatim")) { ++ for (;;) { ++ int tempc; ++ while ((tempc = getc(InputFP)) != '<' ++ && tempc != EOF) ++ OUTC(tempc); ++ if (tempc == EOF) break; ++ ungetc(tempc = getc(InputFP), InputFP); ++ if (tempc == '<') { ++ OUTC('<'); ++ getc(InputFP); ++ continue; ++ } ++ for (i=0; (tempc = getc(InputFP)) != '>' ++ && tempc != EOF; ++i) { ++ token[i] = tempc; ++ if (i == MAX_TOKEN_SIZE-2) break; ++ } ++ if (tempc== EOF) break; ++ token[i] = 0; ++ if (!lc2strcmp(token, "/verbatim")) break; ++ else for (i=0; token[i]; i++) ++ OUTC(token[i]); ++ } ++ } ++ break; ++ default: ++ /* Ignore all other tokens */ ++ break; ++ } ++ JustSawCmd = 1; ++ } else if (c == '\n') { ++ if (nofill) { ++ OUTC(c); ++ } else if (linepos > 0 && !inspace) { ++ OUTC(' '); ++ } ++ JustSawCmd = 0; ++ } else { ++ OUTC(c); ++ JustSawCmd = 0; ++ } ++ } ++ if (term) { /* cleanup a bit for insurance */ ++ controloutput(highlightendbuf, 0); ++ controloutput(StopUnderline, 0); ++ } ++ OUTC('\n'); /* for good measure */ ++ FPUTS(KE, stdout); ++ fflush(stdout); ++ if (UsePager) { ++ Pause(); ++ } ++ return(0); ++} ++ ++static struct charsetmember OutputBuf[1000] = {0,0}; ++static int PendingOutput = 0, PendingControls = 0; ++ ++controlputc(c) ++int c; ++{ ++ charmemberctrl (&OutputBuf[PendingOutput],(RCHAR)c); ++ ++PendingOutput; ++ ++PendingControls; ++} ++ ++static immediate_controlputc(c) ++int c; ++{ ++ (*RichtextPutc) (c, stdout); ++} ++ ++controloutput(s, immediate) ++char *s; ++int immediate; ++{ ++ tputs(s, 1, immediate ? immediate_controlputc : controlputc); ++} ++ ++static folding_point (buf, pos) ++struct charsetmember *buf; ++int pos; ++{ ++ int i; ++ for (i = pos; i > 0; --i) { ++ if (!charisctrl (buf[i]) && charmemberfold (buf[i])) ++ return (i); ++ } ++ return (0); ++} ++ ++static calc_column (buf, pos) ++struct charsetmember *buf; ++int pos; ++{ ++ struct charsetmember *s; ++ int col = 0; ++ for (s = buf; (s -> ch); ++s) { ++ if (!charisctrl (*s)) ++ col += charmemberwidth (*s); ++ else ++ ++col; ++ } ++ return (col); ++} ++ ++static FlushOut() { ++ int i, j, x; ++ static struct charsetmember NewOutputBuf[1000]; ++ struct charsetmember *s; ++ int NewPendingControls=0, NewPendingOutput = 0; ++ ++ OutputBuf[PendingOutput].ch = 0; ++ OutputBuf[PendingOutput].charset = NULL; ++ if (linepos >= workingright) { ++ for (i=0, j=0; j<workingright && i < PendingOutput; ++i) { ++ if (!charisctrl (OutputBuf[i])) ++j; ++ } ++ x = folding_point (OutputBuf,i); ++ if ((workingleft + 4) < x) ++ i = x; ++ else ++ while (i > workingleft + 4) { ++ if (!charisctrl (OutputBuf[i]) ++ && isspace((unsigned char) OutputBuf[i].ch)) { ++ break; ++ } ++ --i; ++ } ++ for (j=0; i<PendingOutput; ++j, ++i) { ++ NewOutputBuf[j] = OutputBuf[i]; ++ ++NewPendingOutput; ++ if (charisctrl (NewOutputBuf[j])) ++NewPendingControls; ++ } ++ PendingOutput -= NewPendingOutput; ++ PendingControls -= NewPendingControls; ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'\n'); ++ PendingOutput++; ++ OutputBuf[PendingOutput].ch = 0; ++ OutputBuf[PendingOutput].charset = 0; ++#ifdef MISTAKE ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 0, StartUnderline, ++ StopUnderline, 0, BoldOn, BoldOff, 0); ++#endif ++ } ++ if ((rightjustct > leftjustct) ++ && (rightjustct > centerct) ++ && (rightjustct > 0)) { ++ /* right justified */ ++ i = rightmargin - calc_column (OutputBuf,PendingOutput) ++ + PendingControls; ++ for (j=0; j<i; ++j) { ++ controloutput(MoveRight, 1); ++ } ++ fputsmovingright(OutputBuf, stdout); ++ ++linesused; ++ } else if ((leftjustct > centerct) ++ && (leftjustct > 0)) { ++ /* left justified */ ++ for (s=OutputBuf; s -> ch && isspace((unsigned char) (s -> ch)); ++s) ++ {;} ++ fputsmovingright(s, stdout); ++ ++linesused; ++ } else if (centerct > 0) { ++ /* centered */ ++ i = (termcolumns - calc_column (OutputBuf,PendingOutput) - 1 ++ + PendingControls) / 2; ++ for (j=0; j<i; ++j) { ++ controloutput(MoveRight, 1); ++ } ++ fputsmovingright(OutputBuf, stdout); ++ ++linesused; ++ } else { ++ /* Leave indentation (margins) as-is */ ++ fputsmovingright(OutputBuf, stdout); ++ ++linesused; ++ } ++ if (linesused >= termrows && UsePager) Pause(); ++ rightjustct = leftjustct = centerct = 0; /* not quite right for wrapping, sigh... */ ++ PendingOutput = PendingControls = linepos = 0; ++ inspace = 1; ++ j = (isspace((unsigned char) NewOutputBuf[0].ch)) ? 1 : 0; ++ for ( ; j<NewPendingOutput; ++j) { ++ if (charisctrl (NewOutputBuf[j])) { ++ OutputBuf[PendingOutput++] = NewOutputBuf[j]; ++ ++PendingControls; ++ } else { ++ realoutputc(NewOutputBuf[j], 1); ++ } ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 0, StartUnderline, ++ StopUnderline, 0, BoldOn, BoldOff, 0); ++} ++ ++static outputc(c) ++RCHAR c; ++{ ++ struct charsetmember member; ++ charmember (&member,c); ++ realoutputc(member, 0); ++} ++ ++static realoutputc(c, alreadyformatted) ++struct charsetmember c; ++int alreadyformatted; ++{ ++ int i, newinspace; ++ ++ if (c.ch == '\n') { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'\n'); ++ PendingOutput++; ++ FlushOut(); ++ } else if (c.ch == '\t') { ++ int tabpos = (linepos + 8) / 8; ++ if (tabpos >= workingright) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'\n'); ++ PendingOutput++; ++ FlushOut(); ++ } else { ++ int spaces = (8*tabpos) - linepos; ++ while (spaces-->0) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)' '); ++ PendingOutput++; ++ ++linepos; ++ } ++ } ++ } else { ++ newinspace = isspace((unsigned char) c.ch); ++ if (!inspace || !newinspace || !JustSawCmd) { ++ if (linepos == 0) { ++ int i = workingleft; ++ if (inexcerpt) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'>'); ++ PendingOutput++; ++ --i; ++ } ++ if (insignature) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'+'); ++ PendingOutput++; ++ --i; ++ } ++ while (i-->0) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)' '); ++ PendingOutput++; ++ } ++ linepos = workingleft; ++ } ++ if (!alreadyformatted && biggertext && !(inspace && newinspace)) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'_'); ++ PendingOutput++; ++ ++linepos; ++ } ++ inspace = newinspace; ++ linepos += charmemberwidth (c); ++ OutputBuf[PendingOutput++] = c; ++ if (OverStrike && !inspace) { ++ if (bold) { ++ controlputc('\b'); ++ controlputc((int) c.ch); ++ } ++ if (highlight||underline) { ++ controlputc('\b'); ++ controlputc('_'); ++ } ++ } ++ leftjustct += leftjustenv; ++ rightjustct += rightjustenv; ++ centerct += centerenv; ++ if (c.ch == '\014') inspace = 1; ++ if (linepos >= workingright) FlushOut(); ++ } ++ } ++} ++ ++static MakeWorkingMargins() { ++ int oldworkingleft=workingleft, i; ++ ++ workingleft = leftmargin; ++ workingright = rightmargin; ++ if (workingleft < 0) workingleft = 0; ++ if (workingright < 0) workingright = 0; ++ if (workingright > (termcolumns - 1)) workingright = (termcolumns - 1); ++ if (workingleft > (workingright - 8)) workingleft = workingright -8; ++ if (linepos == oldworkingleft && linepos != 0) { ++ for (i=workingleft-oldworkingleft; i > 0; --i) OUTC(' '); ++ } ++} ++ ++static Pause() ++{ ++ int c; ++ ++ (void) fputs("Press RETURN to continue (or 'q' to quit):\n", stdout); ++ fflush(stdout); ++ c = getc(stdin); ++ if (c == 'q' || c == 'Q') exit(0); ++ linesused = 0; ++} ++ ++/* Leading spaces should be output as MoveRight, to avoid ++ having margins that are underlined or reverse video */ ++ ++static fputsmovingright(s, fp) ++struct charsetmember *s; ++FILE *fp; ++{ ++ int inmargin=1; ++ if (!s) return; ++ while (s -> ch) { ++ if (inmargin && (s -> ch) == ' ') { ++ controloutput(MoveRight, 1); ++ } else { ++ if (inmargin) inmargin = 0; ++ if (charisctrl (*s)) ++ (*RichtextPutc) ((int)(s -> ch), fp); ++ else ++ charmemberrender (*s, fp); ++ } ++ ++s; ++ } ++} ++ ++static ResetTerminalCodes(FakeTerminal, highlight, underline, bold, highlightbuf, highlightendbuf, ++ modifiedhighlight, StartUnderline, StopUnderline, modifiedunderline, ++ BoldOn, BoldOff, modifiedbold) ++char *highlightbuf, *highlightendbuf, *StartUnderline, *StopUnderline, ++ *BoldOn, *BoldOff; ++{ ++ if (OverStrike) ++ return; ++ ++ /* We always turn back on the appropriate terminal modes, because ++ on some terminals one thing turns off all of them */ ++ if (highlight >= 1) { ++ if (FakeTerminal) { ++ if (modifiedhighlight && highlight == 1) outputstr(highlightbuf); ++ } else controloutput(highlightbuf, 0); ++ } ++ if (bold >= 1) { ++ if (FakeTerminal) { ++ if (modifiedbold && bold == 1) outputstr(BoldOn); ++ } else controloutput(BoldOn, 0); ++ } ++ if (underline >= 1) { ++ if (FakeTerminal) { ++ if (modifiedunderline && underline == 1) outputstr(StartUnderline); ++ } else controloutput(StartUnderline, 0); ++ } ++} ++ ++static FinalizeTerminal() { ++ tputs(highlightendbuf, 1, immediate_controlputc); ++ tputs(BoldOff, 1, immediate_controlputc); ++ tputs(StopUnderline, 1, immediate_controlputc); ++ FPUTS(KE, stdout); ++} ++ ++static outputstr(s) ++char *s; ++{ ++ while (*s) OUTC(*s++); ++} ++ ++static FPUTS(s,fp) ++unsigned char *s; ++FILE *fp; ++{ ++ while(*s) (*RichtextPutc)((int)(*s++),fp); ++} ++ ++static lc2strcmp(s1, s2) ++char *s1, *s2; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; ++ } ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++static lc2strncmp(s1, s2, len) ++char *s1, *s2; ++int len; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2 && len > 0) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; --len; ++ } ++ if (len <= 0) return(0); ++ return((*s1 == *s2) ? 0 : -1); ++} +--- metamail-2.7.orig/src/richmail/richset.c ++++ metamail-2.7/src/richmail/richset.c +@@ -0,0 +1,222 @@ ++/*------------------------------------------------------------------------- ++ ++ richset.c - Handling for different character sets in richtext. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of richset.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#include <metamail/common.h> ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Define a list of all character set processors in memory. ++ */ ++static struct charsetproc *CharacterSets[] = ++ {&usascii_charset, ++ &iso2022_charset, ++ NULL}; ++ ++/* ++ * Global data for this module. ++ */ ++#define MAX_CHAR_SETS 100 ++static int NumCharSets=0; ++static struct charsetproc *CharSets[MAX_CHAR_SETS]; ++static int CharEncStack[MAX_CHAR_SETS]; ++ ++/* ++ * Initialise the stack of character set processors, starting with ++ * a particular base processor. The initialisation function of all ++ * character set processors is called. ++ */ ++charsetinit (charset,name) ++struct charsetproc *charset; ++char *name; ++{ ++ int temp = 0; ++ CharSets[0] = charset; ++ NumCharSets = 1; ++ while (CharacterSets[temp]) { ++ (*(CharacterSets[temp] -> init)) ++ ((CharacterSets[temp] == charset ? name : NULL)); ++ ++temp; ++ } ++} ++ ++/* ++ * Initialise the stack, starting with a character set processor with ++ * a particular name. ++ */ ++charsetnameinit (name) ++char *name; ++{ ++ int temp = 0; ++ int succeed = 0; ++ char *temp1,*temp2; ++ struct charsetproc *charset = &usascii_charset; ++ while (!succeed && CharacterSets[temp]) { ++ temp2 = CharacterSets[temp] -> names; ++ while (!succeed && *temp2) { ++ temp1 = name; ++ while (*temp1 && *temp2 && *temp2 != ':' && *temp2 == *temp1) { ++ ++temp1; ++ ++temp2; ++ } ++ if (*temp1 == '\0' && (*temp2 == '\0' || *temp2 == ':')) { ++ succeed = 1; ++ charset = CharacterSets[temp]; ++ } ++ while (*temp2 && *temp2 != ':') { ++ ++temp2; ++ } ++ if (*temp2 == ':') { ++ ++temp2; ++ } ++ } ++ ++temp; ++ } ++ charsetinit (charset,name); ++} ++ ++/* ++ * Push a new character set processor onto the stack. ++ */ ++charsetpush (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets >= MAX_CHAR_SETS) { ++ fprintf (stderr,"Too many nested character sets: aborting\n"); ++ exit (1); ++ } else { ++ CharEncStack[NumCharSets - 1] = RichtextCharEncoding; ++ (*(CharSets[NumCharSets - 1] -> encoding)) (-1); /* Leave current */ ++ CharSets[NumCharSets++] = charset; ++ } ++} ++ ++/* ++ * Pop the top-most character set processor off the stack ++ * if it matches the given processor. Note: the base ++ * processor is never popped off. ++ */ ++charsetpop (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets > 1 && CharSets[NumCharSets - 1] == charset) { ++ --NumCharSets; ++ richtextencoding (CharEncStack[NumCharSets - 1]); ++ (*(CharSets[NumCharSets - 1] -> encoding)) (RichtextCharEncoding); ++ } ++} ++ ++/* ++ * See if the character set processor on the top of the stack ++ * matches the given processor. ++ */ ++int charsettop (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets > 1) { ++ return (CharSets[NumCharSets - 1] == charset); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Set the details for a character set member in the top-most ++ * character set. ++ */ ++charmember (member,ch) ++struct charsetmember *member; ++RCHAR ch; ++{ ++ member -> ch = ch; ++ member -> charset = CharSets[NumCharSets - 1]; ++} ++ ++/* ++ * Set the details for a member of a specific character set. ++ */ ++charmemberspec (member,ch,charset) ++struct charsetmember *member; ++RCHAR ch; ++struct charsetproc *charset; ++{ ++ member -> ch = ch; ++ member -> charset = charset; ++} ++ ++/* ++ * Set the details for a output control code character. ++ */ ++charmemberctrl (member,ch) ++struct charsetmember *member; ++RCHAR ch; ++{ ++ member -> ch = ch; ++ member -> charset = NULL; ++} ++ ++/* ++ * Attempt to process a richtext command by passing it to the ++ * "command" function of all character set processors. Returns ++ * zero if the command was not processed. ++ */ ++int charsetcommand (token,negated) ++char *token; ++int negated; ++{ ++ int temp = 0; ++ while (CharacterSets[temp]) { ++ if ((*(CharacterSets[temp] -> command)) (token,negated)) ++ return (1); ++ ++temp; ++ } ++ return (0); ++} ++ ++/* ++ * Test for an extension singleton command. ++ */ ++int charsetsingle (token) ++char *token; ++{ ++ int temp = 0; ++ while (CharacterSets[temp]) { ++ if ((*(CharacterSets[temp] -> single)) (token)) ++ return (1); ++ ++temp; ++ } ++ return (0); ++} +--- metamail-2.7.orig/src/richmail/richset.h ++++ metamail-2.7/src/richmail/richset.h +@@ -0,0 +1,172 @@ ++/*------------------------------------------------------------------------- ++ ++ richset.h - Handling for different character sets in richtext. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 19/06/92 RW Original Version of richset.h ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#ifndef __RICHSET_H__ ++#define __RICHSET_H__ ++ ++#include <metamail/common.h> ++ ++BEGIN_C_DECLS ++ ++/* ++ * Define the interface structure for a character set processor. ++ * The fields are as follows: ++ * ++ * names - Colon-separated list of character set names. ++ * init - Initialize the character set processor. ++ * command - Process a command before the default processing. ++ * Returns non-zero if processed, zero if not. ++ * single - Should return non-zero for a singleton command. ++ * width - Get the width in terminal characters of the character. ++ * fold - Returns non-zero if the character can be folded at. ++ * render - Render the character through RichtextPutc. ++ * encoding- Enter or leave an encoding. newenc is -1 to leave. ++ * ++ */ ++struct charsetproc ++ { ++ char *names; ++ int (*init) ( /* char *name */ ); ++ int (*command) ( /* char *token, int negated */ ); ++ int (*single) ( /* char *token */ ); ++ int (*width) ( /* RCHAR c */ ); ++ int (*fold) ( /* RCHAR c */ ); ++ int (*render) ( /* RCHAR c, void *param */ ); ++ int (*encoding) ( /* int newenc */ ); ++ }; ++ ++/* ++ * Define some standard character set processors. ++ */ ++extern struct charsetproc usascii_charset; ++extern struct charsetproc iso2022_charset; ++ ++/* ++ * Define the information to be kept in the internal buffers ++ * about a character. If "charset" is NULL, it is a control ++ * character. ++ */ ++struct charsetmember ++ { ++ RCHAR ch; /* The character itself */ ++ struct charsetproc *charset; /* Character set of ch */ ++ }; ++ ++/* ++ * Initialise the stack of character set processors, starting with ++ * a particular base processor. The initialisation function of all ++ * character set processors is called. ++ */ ++extern charsetinit ( /* struct charsetproc *charset, char *name */ ); ++ ++/* ++ * Initialise the stack, starting with a character set processor with ++ * a particular name. ++ */ ++extern charsetnameinit ( /* char *name */ ); ++ ++/* ++ * Push a new character set processor onto the stack. ++ */ ++extern charsetpush ( /* struct charsetproc *charset */ ); ++ ++/* ++ * Pop the top-most character set processor off the stack ++ * if it matches the given processor. Note: the base ++ * processor is never popped off. ++ */ ++extern charsetpop ( /* struct charsetproc *charset */ ); ++ ++/* ++ * See if the character set processor on the top of the stack ++ * matches the given processor. ++ */ ++extern int charsettop ( /* struct charsetproc *charset */ ); ++ ++/* ++ * Set the details for a character set member in the top-most ++ * character set. ++ */ ++extern charmember ( /* struct charsetmember *member, RCHAR ch */ ); ++ ++/* ++ * Set the details for a member of a specific character set. ++ */ ++extern charmemberspec ( /* struct charsetmember *member, RCHAR ch, ++ struct charset *charset */ ); ++ ++/* ++ * Set the details for a output control code character. ++ */ ++extern charmemberctrl ( /* struct charsetmember *member, RCHAR ch */ ); ++ ++/* ++ * Determine if the given character is a control code character. ++ */ ++#define charisctrl(member) ((member).charset == (struct charsetproc *)0) ++ ++/* ++ * Attempt to process a richtext command by passing it to the ++ * "command" function of all character set processors. Returns ++ * zero if the command was not processed. ++ */ ++extern int charsetcommand ( /* char *token, int negated */ ); ++ ++/* ++ * Test for an extension singleton command. ++ */ ++extern int charsetsingle ( /* char *token */ ); ++ ++/* ++ * Get the width of a particular character. ++ */ ++#define charmemberwidth(member) \ ++ ((*((member).charset -> width)) ((member).ch)) ++ ++/* ++ * Determine if a character can be folded at. ++ */ ++#define charmemberfold(member) \ ++ ((*((member).charset -> fold)) ((member).ch)) ++ ++/* ++ * Render a character on an output stream. ++ */ ++#define charmemberrender(member,param) \ ++ ((*((member).charset -> render)) ((member).ch,param)) ++ ++END_C_DECLS ++ ++#endif /* __RICHSET_H__ */ +--- metamail-2.7.orig/src/richmail/richtoatk.c ++++ metamail-2.7/src/richmail/richtoatk.c +@@ -0,0 +1,98 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++#include <metamail/common.h> ++ ++#include "richlex.h" ++ ++char *translate(t) ++char *t; ++{ ++ if (!strcmp(t, "fixed")) return("typewriter"); ++ if (!strcmp(t, "excerpt")) return("quotation"); ++ /* Really ought to handle ISO-10646 and ISO-8859-X somehow */ ++ return(t); ++} ++ ++main() { ++ RCHAR c; ++ int i, JustDidNewline = 0; ++ char tok[MAX_TOKEN_SIZE + 1],*token; ++ ++ fputs("\\begindata{text, 42}\n\\template{messages}\n", stdout); ++ /* The 0, 0 means that we're not implementing text/enriched */ ++ while((c = richtextlex(stdin,tok + 1, 0, 0)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) { ++ if (c == RICHTEXT_NEG_COMMAND) { ++ tok[0] = '/'; ++ token = tok; ++ } else ++ token = tok + 1; ++ if (!strcmp(token, "lt")) { ++ putc('<', stdout); ++ JustDidNewline = 0; ++ } else if (!strcmp(token, "nl")) { ++ fputs(JustDidNewline ? "\n" : "\n\n", stdout); ++ JustDidNewline = 1; ++ } else if (!strcmp(token, "/paragraph")) { ++ fputs(JustDidNewline ? "\n\n" : "\n\n\n", stdout); ++ JustDidNewline = 1; ++ } else if (!strcmp(token, "comment")) { ++ int tempc; ++ while (strcmp(token, "/comment")) { ++ while ((tempc = getc(stdin)) != '<') ; ++ for (i=0; (tempc = getc(stdin)) != '>'; ++i) { ++ token[i] = isupper(tempc) ? tolower(tempc) : tempc; ++ } ++ token[i] = '\0'; ++ } ++ } else if (!ignoretoken(token)) { ++ if (token[0] == '/') { ++ putc('}', stdout); ++ } else { ++ fprintf(stdout, "\\%s{", translate(token)); ++ JustDidNewline = 0; ++ } ++ } ++ } else if (c == '\n') { ++ putc(' ', stdout); ++ JustDidNewline = 0; ++ } else { ++ putc((int)c, stdout); ++ JustDidNewline = 0; ++ } ++ } ++ fputs("\n \n\\enddata{text, 42}\n", stdout); ++} ++ ++ignoretoken(t) ++char *t; ++{ ++ if (*t == '/') ++t; ++ if (!strcmp(t, "us-ascii")) return(1); ++ if (!strcmp(t, "paragraph")) return(1); /* handled otherwise */ ++ if (!strcmp(t, "no-op")) return(1); ++ return(0); ++} ++ ++controlputc(c) ++int c; ++{ ++} ++ ++controloutput(s, immediate) ++char *s; ++int immediate; ++{ ++} +--- metamail-2.7.orig/replace/vfprintf.c ++++ metamail-2.7/replace/vfprintf.c +@@ -0,0 +1,43 @@ ++/* vfprintf.c -- implement vfprintf() for architectures without it ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#include <stdio.h> ++ ++#if HAVE_STDARG_H && !HAVE_VARARGS_H ++# include <stdarg.h> ++#else /*!HAVE_STDARG_H || HAVE_VARARGS_H*/ ++# include <varargs.h> ++#endif /*HAVE_STDARG_H && !HAVE_VARARGS_H*/ ++ ++/* Some systems define this! */ ++#undef vfprintf ++ ++extern int _doprnt (); ++ ++int ++vfprintf (file, format, ap) ++ FILE *file; ++ const char *format; ++ va_list ap; ++{ ++ return _doprnt (format, ap, file); ++} +--- metamail-2.7.orig/replace/basename.c ++++ metamail-2.7/replace/basename.c +@@ -0,0 +1,45 @@ ++/* basename.c -- implement basename() for architectures without it ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#if HAVE_STRING_H ++# include <string.h> ++#elif HAVE_STRINGS_H ++# include <strings.h> ++#endif ++ ++#if !HAVE_STRRCHR ++# ifndef strrchr ++# define strrchr rindex ++# endif ++#endif ++ ++char* ++basename (path) ++ char *path; ++{ ++ /* Search for the last directory separator in PATH. */ ++ char *basename = strrchr (path, '/'); ++ ++ /* If found, return the address of the following character, ++ or the start of the parameter passed in. */ ++ return basename ? ++basename : (char*)path; ++} ++ +--- metamail-2.7.orig/replace/putenv.c ++++ metamail-2.7/replace/putenv.c +@@ -0,0 +1,100 @@ ++/* Copyright (C) 1991 Free Software Foundation, Inc. ++This file is part of the GNU C Library. ++ ++The GNU C Library is free software; you can redistribute it and/or ++modify it under the terms of the GNU Library General Public License as ++published by the Free Software Foundation; either version 2 of the ++License, or (at your option) any later version. ++ ++The GNU C Library 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 ++Library General Public License for more details. ++ ++You should have received a copy of the GNU Library General Public ++License along with the GNU C Library; see the file COPYING.LIB. If ++not, write to the Free Software Foundation, Inc., 675 Mass Ave, ++Cambridge, MA 02139, USA. */ ++ ++#include <config.h> ++#include <sys/types.h> ++#include <errno.h> ++#ifdef STDC_HEADERS ++#include <stdlib.h> ++#else ++extern int errno; ++#endif ++ ++#if defined(STDC_HEADERS) || defined(USG) || defined(SYSV) ++#include <string.h> ++#else /* not (STDC_HEADERS or USG) */ ++#include <strings.h> ++#endif /* STDC_HEADERS or USG */ ++ ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++ ++#ifndef NULL ++#define NULL 0 ++#endif ++ ++#if !__STDC__ ++#define const ++#endif ++ ++extern char **environ; ++ ++/* Put STRING, which is of the form "NAME=VALUE", in the environment. */ ++int ++putenv (string) ++ const char *string; ++{ ++ char *name_end = index (string, '='); ++ register size_t size; ++ register char **ep; ++ ++ if (name_end == NULL) ++ { ++ /* Remove the variable from the environment. */ ++ size = strlen (string); ++ for (ep = environ; *ep != NULL; ++ep) ++ if (!strncmp (*ep, string, size) && (*ep)[size] == '=') ++ { ++ while (ep[1] != NULL) ++ { ++ ep[0] = ep[1]; ++ ++ep; ++ } ++ *ep = NULL; ++ return 0; ++ } ++ } ++ ++ size = 0; ++ for (ep = environ; *ep != NULL; ++ep) ++ if (!strncmp (*ep, string, name_end - string) && ++ (*ep)[name_end - string] == '=') ++ break; ++ else ++ ++size; ++ ++ if (*ep == NULL) ++ { ++ static char **last_environ = NULL; ++ char **new_environ = (char **) malloc ((size + 2) * sizeof (char *)); ++ if (new_environ == NULL) ++ return -1; ++ (void) bcopy ((char *) environ, (char *) new_environ, size * sizeof (char *)); ++ new_environ[size] = (char *) string; ++ new_environ[size + 1] = NULL; ++ if (last_environ != NULL) ++ free ((char *) last_environ); ++ last_environ = new_environ; ++ environ = new_environ; ++ } ++ else ++ *ep = (char *) string; ++ ++ return 0; ++} +--- metamail-2.7.orig/replace/Makefile.am ++++ metamail-2.7/replace/Makefile.am +@@ -0,0 +1,9 @@ ++## Makefile.am -- Process this file with automake to produce Makefile.in ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++noinst_LTLIBRARIES = libreplace.la ++libreplace_la_SOURCES = ++libreplace_la_LIBADD = @LTLIBOBJS@ +--- metamail-2.7.orig/replace/Makefile.in ++++ metamail-2.7/replace/Makefile.in +@@ -0,0 +1,343 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++noinst_LTLIBRARIES = libreplace.la ++libreplace_la_SOURCES = ++libreplace_la_LIBADD = @LTLIBOBJS@ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++libreplace_la_LDFLAGS = ++libreplace_la_DEPENDENCIES = @LTLIBOBJS@ ++libreplace_la_OBJECTS = ++CFLAGS = @CFLAGS@ ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in basename.c putenv.c strerror.c \ ++vfprintf.c ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/basename.P .deps/putenv.P .deps/strerror.P \ ++.deps/vfprintf.P ++SOURCES = $(libreplace_la_SOURCES) ++OBJECTS = $(libreplace_la_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign replace/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-noinstLTLIBRARIES: ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ ++distclean-noinstLTLIBRARIES: ++ ++maintainer-clean-noinstLTLIBRARIES: ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++libreplace.la: $(libreplace_la_OBJECTS) $(libreplace_la_DEPENDENCIES) ++ $(LINK) $(libreplace_la_LDFLAGS) $(libreplace_la_OBJECTS) $(libreplace_la_LIBADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = replace ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign replace/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: ++uninstall: uninstall-am ++all-am: Makefile $(LTLIBRARIES) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \ ++ clean-tags clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-noinstLTLIBRARIES distclean-compile \ ++ distclean-libtool distclean-tags distclean-depend \ ++ distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \ ++clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/replace/strerror.c ++++ metamail-2.7/replace/strerror.c +@@ -0,0 +1,610 @@ ++/* strerror.c -- implement strerror() for architectures without it ++ Written by Fred Fish. fnf@cygnus.com ++ This file is in the public domain. --Per Bothner. ++*/ ++ ++#if HAVE_CONFIG_H ++# include <config.h> ++#endif ++ ++#ifdef HAVE_SYS_ERRLIST ++/* Note that errno.h (not sure what OS) or stdio.h (BSD 4.4, at least) ++ might declare sys_errlist in a way that the compiler might consider ++ incompatible with our later declaration, perhaps by using const ++ attributes. So we hide the declaration in errno.h (if any) using a ++ macro. */ ++#define sys_errlist no_such_symbol ++#endif ++ ++#include <stdio.h> ++ ++#if HAVE_ERRNO_H ++# include <errno.h> ++#endif ++ ++#ifdef HAVE_SYS_ERRLIST ++# undef sys_errlist ++#endif ++ ++/* Routines imported from standard C runtime libraries. */ ++ ++#ifdef __STDC__ ++#include <stddef.h> ++extern void *malloc (size_t size); /* 4.10.3.3 */ ++extern void *memset (void *s, int c, size_t n); /* 4.11.6.1 */ ++#else /* !__STDC__ */ ++extern char *malloc (); /* Standard memory allocater */ ++extern char *memset (); ++#endif /* __STDC__ */ ++ ++#ifndef MAX ++# define MAX(a,b) ((a) > (b) ? (a) : (b)) ++#endif ++ ++/* Translation table for errno values. See intro(2) in most UNIX systems ++ Programmers Reference Manuals. ++ ++ Note that this table is generally only accessed when it is used at runtime ++ to initialize errno name and message tables that are indexed by errno ++ value. ++ ++ Not all of these errnos will exist on all systems. This table is the only ++ thing that should have to be updated as new error numbers are introduced. ++ It's sort of ugly, but at least its portable. */ ++ ++struct error_info ++{ ++ int value; /* The numeric value from <errno.h> */ ++ const char *name; /* The equivalent symbolic value */ ++#ifndef HAVE_SYS_ERRLIST ++ const char *msg; /* Short message about this value */ ++#endif ++}; ++ ++#ifndef HAVE_SYS_ERRLIST ++# define ENTRY(value, name, msg) {value, name, msg} ++#else ++# define ENTRY(value, name, msg) {value, name} ++#endif ++ ++static const struct error_info error_table[] = ++{ ++#if defined (EPERM) ++ ENTRY(EPERM, "EPERM", "Not owner"), ++#endif ++#if defined (ENOENT) ++ ENTRY(ENOENT, "ENOENT", "No such file or directory"), ++#endif ++#if defined (ESRCH) ++ ENTRY(ESRCH, "ESRCH", "No such process"), ++#endif ++#if defined (EINTR) ++ ENTRY(EINTR, "EINTR", "Interrupted system call"), ++#endif ++#if defined (EIO) ++ ENTRY(EIO, "EIO", "I/O error"), ++#endif ++#if defined (ENXIO) ++ ENTRY(ENXIO, "ENXIO", "No such device or address"), ++#endif ++#if defined (E2BIG) ++ ENTRY(E2BIG, "E2BIG", "Arg list too long"), ++#endif ++#if defined (ENOEXEC) ++ ENTRY(ENOEXEC, "ENOEXEC", "Exec format error"), ++#endif ++#if defined (EBADF) ++ ENTRY(EBADF, "EBADF", "Bad file number"), ++#endif ++#if defined (ECHILD) ++ ENTRY(ECHILD, "ECHILD", "No child processes"), ++#endif ++#if defined (EWOULDBLOCK) /* Put before EAGAIN, sometimes aliased */ ++ ENTRY(EWOULDBLOCK, "EWOULDBLOCK", "Operation would block"), ++#endif ++#if defined (EAGAIN) ++ ENTRY(EAGAIN, "EAGAIN", "No more processes"), ++#endif ++#if defined (ENOMEM) ++ ENTRY(ENOMEM, "ENOMEM", "Not enough space"), ++#endif ++#if defined (EACCES) ++ ENTRY(EACCES, "EACCES", "Permission denied"), ++#endif ++#if defined (EFAULT) ++ ENTRY(EFAULT, "EFAULT", "Bad address"), ++#endif ++#if defined (ENOTBLK) ++ ENTRY(ENOTBLK, "ENOTBLK", "Block device required"), ++#endif ++#if defined (EBUSY) ++ ENTRY(EBUSY, "EBUSY", "Device busy"), ++#endif ++#if defined (EEXIST) ++ ENTRY(EEXIST, "EEXIST", "File exists"), ++#endif ++#if defined (EXDEV) ++ ENTRY(EXDEV, "EXDEV", "Cross-device link"), ++#endif ++#if defined (ENODEV) ++ ENTRY(ENODEV, "ENODEV", "No such device"), ++#endif ++#if defined (ENOTDIR) ++ ENTRY(ENOTDIR, "ENOTDIR", "Not a directory"), ++#endif ++#if defined (EISDIR) ++ ENTRY(EISDIR, "EISDIR", "Is a directory"), ++#endif ++#if defined (EINVAL) ++ ENTRY(EINVAL, "EINVAL", "Invalid argument"), ++#endif ++#if defined (ENFILE) ++ ENTRY(ENFILE, "ENFILE", "File table overflow"), ++#endif ++#if defined (EMFILE) ++ ENTRY(EMFILE, "EMFILE", "Too many open files"), ++#endif ++#if defined (ENOTTY) ++ ENTRY(ENOTTY, "ENOTTY", "Not a typewriter"), ++#endif ++#if defined (ETXTBSY) ++ ENTRY(ETXTBSY, "ETXTBSY", "Text file busy"), ++#endif ++#if defined (EFBIG) ++ ENTRY(EFBIG, "EFBIG", "File too large"), ++#endif ++#if defined (ENOSPC) ++ ENTRY(ENOSPC, "ENOSPC", "No space left on device"), ++#endif ++#if defined (ESPIPE) ++ ENTRY(ESPIPE, "ESPIPE", "Illegal seek"), ++#endif ++#if defined (EROFS) ++ ENTRY(EROFS, "EROFS", "Read-only file system"), ++#endif ++#if defined (EMLINK) ++ ENTRY(EMLINK, "EMLINK", "Too many links"), ++#endif ++#if defined (EPIPE) ++ ENTRY(EPIPE, "EPIPE", "Broken pipe"), ++#endif ++#if defined (EDOM) ++ ENTRY(EDOM, "EDOM", "Math argument out of domain of func"), ++#endif ++#if defined (ERANGE) ++ ENTRY(ERANGE, "ERANGE", "Math result not representable"), ++#endif ++#if defined (ENOMSG) ++ ENTRY(ENOMSG, "ENOMSG", "No message of desired type"), ++#endif ++#if defined (EIDRM) ++ ENTRY(EIDRM, "EIDRM", "Identifier removed"), ++#endif ++#if defined (ECHRNG) ++ ENTRY(ECHRNG, "ECHRNG", "Channel number out of range"), ++#endif ++#if defined (EL2NSYNC) ++ ENTRY(EL2NSYNC, "EL2NSYNC", "Level 2 not synchronized"), ++#endif ++#if defined (EL3HLT) ++ ENTRY(EL3HLT, "EL3HLT", "Level 3 halted"), ++#endif ++#if defined (EL3RST) ++ ENTRY(EL3RST, "EL3RST", "Level 3 reset"), ++#endif ++#if defined (ELNRNG) ++ ENTRY(ELNRNG, "ELNRNG", "Link number out of range"), ++#endif ++#if defined (EUNATCH) ++ ENTRY(EUNATCH, "EUNATCH", "Protocol driver not attached"), ++#endif ++#if defined (ENOCSI) ++ ENTRY(ENOCSI, "ENOCSI", "No CSI structure available"), ++#endif ++#if defined (EL2HLT) ++ ENTRY(EL2HLT, "EL2HLT", "Level 2 halted"), ++#endif ++#if defined (EDEADLK) ++ ENTRY(EDEADLK, "EDEADLK", "Deadlock condition"), ++#endif ++#if defined (ENOLCK) ++ ENTRY(ENOLCK, "ENOLCK", "No record locks available"), ++#endif ++#if defined (EBADE) ++ ENTRY(EBADE, "EBADE", "Invalid exchange"), ++#endif ++#if defined (EBADR) ++ ENTRY(EBADR, "EBADR", "Invalid request descriptor"), ++#endif ++#if defined (EXFULL) ++ ENTRY(EXFULL, "EXFULL", "Exchange full"), ++#endif ++#if defined (ENOANO) ++ ENTRY(ENOANO, "ENOANO", "No anode"), ++#endif ++#if defined (EBADRQC) ++ ENTRY(EBADRQC, "EBADRQC", "Invalid request code"), ++#endif ++#if defined (EBADSLT) ++ ENTRY(EBADSLT, "EBADSLT", "Invalid slot"), ++#endif ++#if defined (EDEADLOCK) ++ ENTRY(EDEADLOCK, "EDEADLOCK", "File locking deadlock error"), ++#endif ++#if defined (EBFONT) ++ ENTRY(EBFONT, "EBFONT", "Bad font file format"), ++#endif ++#if defined (ENOSTR) ++ ENTRY(ENOSTR, "ENOSTR", "Device not a stream"), ++#endif ++#if defined (ENODATA) ++ ENTRY(ENODATA, "ENODATA", "No data available"), ++#endif ++#if defined (ETIME) ++ ENTRY(ETIME, "ETIME", "Timer expired"), ++#endif ++#if defined (ENOSR) ++ ENTRY(ENOSR, "ENOSR", "Out of streams resources"), ++#endif ++#if defined (ENONET) ++ ENTRY(ENONET, "ENONET", "Machine is not on the network"), ++#endif ++#if defined (ENOPKG) ++ ENTRY(ENOPKG, "ENOPKG", "Package not installed"), ++#endif ++#if defined (EREMOTE) ++ ENTRY(EREMOTE, "EREMOTE", "Object is remote"), ++#endif ++#if defined (ENOLINK) ++ ENTRY(ENOLINK, "ENOLINK", "Link has been severed"), ++#endif ++#if defined (EADV) ++ ENTRY(EADV, "EADV", "Advertise error"), ++#endif ++#if defined (ESRMNT) ++ ENTRY(ESRMNT, "ESRMNT", "Srmount error"), ++#endif ++#if defined (ECOMM) ++ ENTRY(ECOMM, "ECOMM", "Communication error on send"), ++#endif ++#if defined (EPROTO) ++ ENTRY(EPROTO, "EPROTO", "Protocol error"), ++#endif ++#if defined (EMULTIHOP) ++ ENTRY(EMULTIHOP, "EMULTIHOP", "Multihop attempted"), ++#endif ++#if defined (EDOTDOT) ++ ENTRY(EDOTDOT, "EDOTDOT", "RFS specific error"), ++#endif ++#if defined (EBADMSG) ++ ENTRY(EBADMSG, "EBADMSG", "Not a data message"), ++#endif ++#if defined (ENAMETOOLONG) ++ ENTRY(ENAMETOOLONG, "ENAMETOOLONG", "File name too long"), ++#endif ++#if defined (EOVERFLOW) ++ ENTRY(EOVERFLOW, "EOVERFLOW", "Value too large for defined data type"), ++#endif ++#if defined (ENOTUNIQ) ++ ENTRY(ENOTUNIQ, "ENOTUNIQ", "Name not unique on network"), ++#endif ++#if defined (EBADFD) ++ ENTRY(EBADFD, "EBADFD", "File descriptor in bad state"), ++#endif ++#if defined (EREMCHG) ++ ENTRY(EREMCHG, "EREMCHG", "Remote address changed"), ++#endif ++#if defined (ELIBACC) ++ ENTRY(ELIBACC, "ELIBACC", "Can not access a needed shared library"), ++#endif ++#if defined (ELIBBAD) ++ ENTRY(ELIBBAD, "ELIBBAD", "Accessing a corrupted shared library"), ++#endif ++#if defined (ELIBSCN) ++ ENTRY(ELIBSCN, "ELIBSCN", ".lib section in a.out corrupted"), ++#endif ++#if defined (ELIBMAX) ++ ENTRY(ELIBMAX, "ELIBMAX", "Attempting to link in too many shared libraries"), ++#endif ++#if defined (ELIBEXEC) ++ ENTRY(ELIBEXEC, "ELIBEXEC", "Cannot exec a shared library directly"), ++#endif ++#if defined (EILSEQ) ++ ENTRY(EILSEQ, "EILSEQ", "Illegal byte sequence"), ++#endif ++#if defined (ENOSYS) ++ ENTRY(ENOSYS, "ENOSYS", "Operation not applicable"), ++#endif ++#if defined (ELOOP) ++ ENTRY(ELOOP, "ELOOP", "Too many symbolic links encountered"), ++#endif ++#if defined (ERESTART) ++ ENTRY(ERESTART, "ERESTART", "Interrupted system call should be restarted"), ++#endif ++#if defined (ESTRPIPE) ++ ENTRY(ESTRPIPE, "ESTRPIPE", "Streams pipe error"), ++#endif ++#if defined (ENOTEMPTY) ++ ENTRY(ENOTEMPTY, "ENOTEMPTY", "Directory not empty"), ++#endif ++#if defined (EUSERS) ++ ENTRY(EUSERS, "EUSERS", "Too many users"), ++#endif ++#if defined (ENOTSOCK) ++ ENTRY(ENOTSOCK, "ENOTSOCK", "Socket operation on non-socket"), ++#endif ++#if defined (EDESTADDRREQ) ++ ENTRY(EDESTADDRREQ, "EDESTADDRREQ", "Destination address required"), ++#endif ++#if defined (EMSGSIZE) ++ ENTRY(EMSGSIZE, "EMSGSIZE", "Message too long"), ++#endif ++#if defined (EPROTOTYPE) ++ ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"), ++#endif ++#if defined (ENOPROTOOPT) ++ ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"), ++#endif ++#if defined (EPROTONOSUPPORT) ++ ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"), ++#endif ++#if defined (ESOCKTNOSUPPORT) ++ ENTRY(ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT", "Socket type not supported"), ++#endif ++#if defined (EOPNOTSUPP) ++ ENTRY(EOPNOTSUPP, "EOPNOTSUPP", "Operation not supported on transport endpoint"), ++#endif ++#if defined (EPFNOSUPPORT) ++ ENTRY(EPFNOSUPPORT, "EPFNOSUPPORT", "Protocol family not supported"), ++#endif ++#if defined (EAFNOSUPPORT) ++ ENTRY(EAFNOSUPPORT, "EAFNOSUPPORT", "Address family not supported by protocol"), ++#endif ++#if defined (EADDRINUSE) ++ ENTRY(EADDRINUSE, "EADDRINUSE", "Address already in use"), ++#endif ++#if defined (EADDRNOTAVAIL) ++ ENTRY(EADDRNOTAVAIL, "EADDRNOTAVAIL","Cannot assign requested address"), ++#endif ++#if defined (ENETDOWN) ++ ENTRY(ENETDOWN, "ENETDOWN", "Network is down"), ++#endif ++#if defined (ENETUNREACH) ++ ENTRY(ENETUNREACH, "ENETUNREACH", "Network is unreachable"), ++#endif ++#if defined (ENETRESET) ++ ENTRY(ENETRESET, "ENETRESET", "Network dropped connection because of reset"), ++#endif ++#if defined (ECONNABORTED) ++ ENTRY(ECONNABORTED, "ECONNABORTED", "Software caused connection abort"), ++#endif ++#if defined (ECONNRESET) ++ ENTRY(ECONNRESET, "ECONNRESET", "Connection reset by peer"), ++#endif ++#if defined (ENOBUFS) ++ ENTRY(ENOBUFS, "ENOBUFS", "No buffer space available"), ++#endif ++#if defined (EISCONN) ++ ENTRY(EISCONN, "EISCONN", "Transport endpoint is already connected"), ++#endif ++#if defined (ENOTCONN) ++ ENTRY(ENOTCONN, "ENOTCONN", "Transport endpoint is not connected"), ++#endif ++#if defined (ESHUTDOWN) ++ ENTRY(ESHUTDOWN, "ESHUTDOWN", "Cannot send after transport endpoint shutdown"), ++#endif ++#if defined (ETOOMANYREFS) ++ ENTRY(ETOOMANYREFS, "ETOOMANYREFS", "Too many references: cannot splice"), ++#endif ++#if defined (ETIMEDOUT) ++ ENTRY(ETIMEDOUT, "ETIMEDOUT", "Connection timed out"), ++#endif ++#if defined (ECONNREFUSED) ++ ENTRY(ECONNREFUSED, "ECONNREFUSED", "Connection refused"), ++#endif ++#if defined (EHOSTDOWN) ++ ENTRY(EHOSTDOWN, "EHOSTDOWN", "Host is down"), ++#endif ++#if defined (EHOSTUNREACH) ++ ENTRY(EHOSTUNREACH, "EHOSTUNREACH", "No route to host"), ++#endif ++#if defined (EALREADY) ++ ENTRY(EALREADY, "EALREADY", "Operation already in progress"), ++#endif ++#if defined (EINPROGRESS) ++ ENTRY(EINPROGRESS, "EINPROGRESS", "Operation now in progress"), ++#endif ++#if defined (ESTALE) ++ ENTRY(ESTALE, "ESTALE", "Stale NFS file handle"), ++#endif ++#if defined (EUCLEAN) ++ ENTRY(EUCLEAN, "EUCLEAN", "Structure needs cleaning"), ++#endif ++#if defined (ENOTNAM) ++ ENTRY(ENOTNAM, "ENOTNAM", "Not a XENIX named type file"), ++#endif ++#if defined (ENAVAIL) ++ ENTRY(ENAVAIL, "ENAVAIL", "No XENIX semaphores available"), ++#endif ++#if defined (EISNAM) ++ ENTRY(EISNAM, "EISNAM", "Is a named type file"), ++#endif ++#if defined (EREMOTEIO) ++ ENTRY(EREMOTEIO, "EREMOTEIO", "Remote I/O error"), ++#endif ++ ENTRY(0, NULL, NULL) ++}; ++ ++#ifdef EVMSERR ++/* This is not in the table, because the numeric value of EVMSERR (32767) ++ lies outside the range of sys_errlist[]. */ ++static struct { int value; const char *name, *msg; } ++ evmserr = { EVMSERR, "EVMSERR", "VMS-specific error" }; ++#endif ++ ++/* Translation table allocated and initialized at runtime. Indexed by the ++ errno value to find the equivalent symbolic value. */ ++ ++static const char **error_names; ++static int num_error_names = 0; ++ ++/* Translation table allocated and initialized at runtime, if it does not ++ already exist in the host environment. Indexed by the errno value to find ++ the descriptive string. ++ ++ We don't export it for use in other modules because even though it has the ++ same name, it differs from other implementations in that it is dynamically ++ initialized rather than statically initialized. */ ++ ++#ifndef HAVE_SYS_ERRLIST ++ ++static int sys_nerr; ++static const char **sys_errlist; ++ ++#else ++ ++extern int sys_nerr; ++extern char *sys_errlist[]; ++ ++#endif ++ ++ ++#ifndef HAVE_SYS_ERRLIST ++/* ++ ++NAME ++ ++ init_error_tables -- initialize the name and message tables ++ ++SYNOPSIS ++ ++ static void init_error_tables (); ++ ++DESCRIPTION ++ ++ Using the error_table, which is initialized at compile time, generate ++ the error_names and the sys_errlist (if needed) tables, which are ++ indexed at runtime by a specific errno value. ++ ++BUGS ++ ++ The initialization of the tables may fail under low memory conditions, ++ in which case we don't do anything particularly useful, but we don't ++ bomb either. Who knows, it might succeed at a later point if we free ++ some memory in the meantime. In any case, the other routines know ++ how to deal with lack of a table after trying to initialize it. This ++ may or may not be considered to be a bug, that we don't specifically ++ warn about this particular failure mode. ++ ++*/ ++ ++static void ++init_error_tables () ++{ ++ const struct error_info *eip; ++ int nbytes; ++ ++ /* If we haven't already scanned the error_table once to find the maximum ++ errno value, then go find it now. */ ++ ++ if (num_error_names == 0) ++ { ++ for (eip = error_table; eip -> name != NULL; eip++) ++ { ++ if (eip -> value >= num_error_names) ++ { ++ num_error_names = eip -> value + 1; ++ } ++ } ++ } ++ ++ /* Now attempt to allocate the sys_errlist table, zero it out, and then ++ initialize it from the statically initialized error_table. */ ++ ++ if (sys_errlist == NULL) ++ { ++ nbytes = num_error_names * sizeof (char *); ++ if ((sys_errlist = (const char **) malloc (nbytes)) != NULL) ++ { ++ memset (sys_errlist, 0, nbytes); ++ sys_nerr = num_error_names; ++ for (eip = error_table; eip -> name != NULL; eip++) ++ { ++ sys_errlist[eip -> value] = eip -> msg; ++ } ++ } ++ } ++} ++#endif ++ ++ ++/* ++ ++NAME ++ ++ strerror -- map an error number to an error message string ++ ++SYNOPSIS ++ ++ char *strerror (int errnoval) ++ ++DESCRIPTION ++ ++ Maps an errno number to an error message string, the contents of ++ which are implementation defined. On systems which have the external ++ variables sys_nerr and sys_errlist, these strings will be the same ++ as the ones used by perror(). ++ ++ If the supplied error number is within the valid range of indices ++ for the sys_errlist, but no message is available for the particular ++ error number, then returns the string "Error NUM", where NUM is the ++ error number. ++ ++ If the supplied error number is not a valid index into sys_errlist, ++ returns NULL. ++ ++ The returned string is only guaranteed to be valid only until the ++ next call to strerror. ++ ++*/ ++ ++char * ++strerror (errnoval) ++ int errnoval; ++{ ++ char *msg; ++ static char buf[32]; ++ ++#ifndef HAVE_SYS_ERRLIST ++ ++ if (error_names == NULL) ++ { ++ init_error_tables (); ++ } ++ ++#endif ++ ++ if ((errnoval < 0) || (errnoval >= sys_nerr)) ++ { ++#ifdef EVMSERR ++ if (errnoval == evmserr.value) ++ msg = evmserr.msg; ++ else ++#endif ++ /* Out of range, just return NULL */ ++ msg = NULL; ++ } ++ else if ((sys_errlist == NULL) || (sys_errlist[errnoval] == NULL)) ++ { ++ /* In range, but no sys_errlist or no entry at this index. */ ++ sprintf (buf, "Error %d", errnoval); ++ msg = buf; ++ } ++ else ++ { ++ /* In range, and a valid message. Just return the message. */ ++ msg = (char *) sys_errlist[errnoval]; ++ } ++ ++ return (msg); ++} +--- metamail-2.7.orig/aclocal.m4 ++++ metamail-2.7/aclocal.m4 +@@ -0,0 +1,3824 @@ ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6 ++ ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++dnl This program is distributed in the hope that it will be useful, ++dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++dnl PARTICULAR PURPOSE. ++ ++# Like AC_CONFIG_HEADER, but automatically create stamp file. ++ ++AC_DEFUN([AM_CONFIG_HEADER], ++[AC_PREREQ([2.12]) ++AC_CONFIG_HEADER([$1]) ++dnl When config.status generates a header, we must update the stamp-h file. ++dnl This file resides in the same directory as the config header ++dnl that is generated. We must strip everything past the first ":", ++dnl and everything past the last "/". ++AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ++ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, ++<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, ++<<am_indx=1 ++for am_file in <<$1>>; do ++ case " <<$>>CONFIG_HEADERS " in ++ *" <<$>>am_file "*<<)>> ++ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ++ ;; ++ esac ++ am_indx=`expr "<<$>>am_indx" + 1` ++done<<>>dnl>>) ++changequote([,]))]) ++ ++# Do all the work for Automake. This macro actually does too much -- ++# some checks are only needed if your package does certain things. ++# But this isn't really a big deal. ++ ++# serial 1 ++ ++dnl Usage: ++dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ++ ++AC_DEFUN([AM_INIT_AUTOMAKE], ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ++AC_REQUIRE([AC_PROG_INSTALL]) ++PACKAGE=[$1] ++AC_SUBST(PACKAGE) ++VERSION=[$2] ++AC_SUBST(VERSION) ++dnl test to see if srcdir already configured ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) ++fi ++ifelse([$3],, ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) ++AC_REQUIRE([AM_SANITY_CHECK]) ++AC_REQUIRE([AC_ARG_PROGRAM]) ++dnl FIXME This is truly gross. ++missing_dir=`cd $ac_aux_dir && pwd` ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) ++AC_REQUIRE([AC_PROG_MAKE_SET])]) ++ ++# Copyright 2002 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ ++# AM_AUTOMAKE_VERSION(VERSION) ++# ---------------------------- ++# Automake X.Y traces this macro to ensure aclocal.m4 has been ++# generated from the m4 files accompanying Automake X.Y. ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION so it can be traced. ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++ [AM_AUTOMAKE_VERSION([1.4-p6])]) ++ ++# ++# Check to make sure that the build environment is sane. ++# ++ ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "[$]*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "[$]*" != "X $srcdir/configure conftestfile" \ ++ && test "[$]*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++alias in your environment]) ++ fi ++ ++ test "[$]2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++rm -f conftest* ++AC_MSG_RESULT(yes)]) ++ ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) ++dnl The program must properly implement --version. ++AC_DEFUN([AM_MISSING_PROG], ++[AC_MSG_CHECKING(for working $2) ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if ($2 --version) < /dev/null > /dev/null 2>&1; then ++ $1=$2 ++ AC_MSG_RESULT(found) ++else ++ $1="$3/missing $2" ++ AC_MSG_RESULT(missing) ++fi ++AC_SUBST($1)]) ++ ++# Add --enable-maintainer-mode option to configure. ++# From Jim Meyering ++ ++# serial 1 ++ ++AC_DEFUN([AM_MAINTAINER_MODE], ++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) ++ dnl maintainer-mode is disabled by default ++ AC_ARG_ENABLE(maintainer-mode, ++[ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer], ++ USE_MAINTAINER_MODE=$enableval, ++ USE_MAINTAINER_MODE=no) ++ AC_MSG_RESULT($USE_MAINTAINER_MODE) ++ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) ++ MAINT=$MAINTAINER_MODE_TRUE ++ AC_SUBST(MAINT)dnl ++] ++) ++ ++# Define a conditional. ++ ++AC_DEFUN([AM_CONDITIONAL], ++[AC_SUBST($1_TRUE) ++AC_SUBST($1_FALSE) ++if $2; then ++ $1_TRUE= ++ $1_FALSE='#' ++else ++ $1_TRUE='#' ++ $1_FALSE= ++fi]) ++ ++# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- ++ ++# serial 46 AC_PROG_LIBTOOL ++ ++AC_DEFUN([AC_PROG_LIBTOOL], ++[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++AC_SUBST(LIBTOOL)dnl ++ ++# Prevent multiple expansion ++define([AC_PROG_LIBTOOL], []) ++]) ++ ++AC_DEFUN([AC_LIBTOOL_SETUP], ++[AC_PREREQ(2.13)dnl ++AC_REQUIRE([AC_ENABLE_SHARED])dnl ++AC_REQUIRE([AC_ENABLE_STATIC])dnl ++AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_PROG_LD])dnl ++AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl ++AC_REQUIRE([AC_PROG_NM])dnl ++AC_REQUIRE([LT_AC_PROG_SED])dnl ++ ++AC_REQUIRE([AC_PROG_LN_S])dnl ++AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl ++AC_REQUIRE([AC_OBJEXT])dnl ++AC_REQUIRE([AC_EXEEXT])dnl ++dnl ++ ++_LT_AC_PROG_ECHO_BACKSLASH ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ AC_PATH_MAGIC ++ fi ++ ;; ++esac ++ ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++AC_CHECK_TOOL(STRIP, strip, :) ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++enable_win32_dll=yes, enable_win32_dll=no) ++ ++AC_ARG_ENABLE(libtool-lock, ++ [ --disable-libtool-lock avoid locking (might break parallel builds)]) ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_SAVE ++ AC_LANG_C ++ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_RESTORE]) ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++[*-*-cygwin* | *-*-mingw* | *-*-pw32*) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one ++ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, ++ [AC_TRY_LINK([], ++ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); ++ DllMain (0, 0, 0);], ++ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) ++ ++ case $host/$CC in ++ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) ++ # old mingw systems require "-dll" to link a DLL, while more recent ones ++ # require "-mdll" ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -mdll" ++ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, ++ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) ++ CFLAGS="$SAVE_CFLAGS" ;; ++ *-*-cygwin* | *-*-pw32*) ++ # cygwin systems need to pass --dll to the linker, and not link ++ # crt.o which will require a WinMain@16 definition. ++ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; ++ esac ++ ;; ++ ]) ++esac ++ ++_LT_AC_LTCONFIG_HACK ++ ++]) ++ ++# AC_LIBTOOL_HEADER_ASSERT ++# ------------------------ ++AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], ++[AC_CACHE_CHECK([whether $CC supports assert without backlinking], ++ [lt_cv_func_assert_works], ++ [case $host in ++ *-*-solaris*) ++ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) lt_cv_func_assert_works=no ;; ++ *) lt_cv_func_assert_works=yes ;; ++ esac ++ fi ++ ;; ++ esac]) ++ ++if test "x$lt_cv_func_assert_works" = xyes; then ++ AC_CHECK_HEADERS(assert.h) ++fi ++])# AC_LIBTOOL_HEADER_ASSERT ++ ++# _LT_AC_CHECK_DLFCN ++# -------------------- ++AC_DEFUN([_LT_AC_CHECK_DLFCN], ++[AC_CHECK_HEADERS(dlfcn.h) ++])# _LT_AC_CHECK_DLFCN ++ ++# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++# --------------------------------- ++AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ++[AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_REQUIRE([AC_PROG_NM]) ++AC_REQUIRE([AC_OBJEXT]) ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris* | sysv5*) ++ symcode='[[BDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[[ABCDGISTW]]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if AC_TRY_EVAL(ac_compile); then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[[]] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC ++ fi ++ else ++ echo "$progname: failed program was:" >&AC_FD_CC ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++ ++# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++# --------------------------------- ++AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], ++[# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# _LT_AC_PROG_ECHO_BACKSLASH ++# -------------------------- ++# Add some code to the start of the generated configure script which ++# will find an echo command which doesn't interpret backslashes. ++AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ++[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ++ [AC_DIVERT_PUSH(NOTICE)]) ++_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X[$]1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X[$]1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ++fi ++ ++if test "X[$]1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "[$]0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ++fi ++ ++AC_SUBST(ECHO) ++AC_DIVERT_POP ++])# _LT_AC_PROG_ECHO_BACKSLASH ++ ++# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ------------------------------------------------------------------ ++AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ++[if test "$cross_compiling" = yes; then : ++ [$4] ++else ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++[#line __oline__ "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++}] ++EOF ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_unknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_AC_TRY_DLOPEN_SELF ++ ++# AC_LIBTOOL_DLOPEN_SELF ++# ------------------- ++AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ++[if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ AC_CHECK_FUNC([shl_load], ++ [lt_cv_dlopen="shl_load"], ++ [AC_CHECK_LIB([dld], [shl_load], ++ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], ++ [AC_CHECK_FUNC([dlopen], ++ [lt_cv_dlopen="dlopen"], ++ [AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], ++ [AC_CHECK_LIB([svld], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], ++ [AC_CHECK_LIB([dld], [dld_link], ++ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++])# AC_LIBTOOL_DLOPEN_SELF ++ ++AC_DEFUN([_LT_AC_LTCONFIG_HACK], ++[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="[$]2" ++ ++AC_MSG_CHECKING([for objdir]) ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++AC_MSG_RESULT($objdir) ++ ++ ++AC_ARG_WITH(pic, ++[ --with-pic try to use only PIC/non-PIC objects [default=use both]], ++pic_mode="$withval", pic_mode=default) ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++AC_MSG_CHECKING([for $compiler option to produce PIC]) ++AC_CACHE_VAL(lt_cv_prog_cc_pic, ++[ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++]) ++if test -z "$lt_cv_prog_cc_pic"; then ++ AC_MSG_RESULT([none]) ++else ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic]) ++ ++ # Check to make sure the pic_flag actually works. ++ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) ++ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ AC_TRY_COMPILE([], [], [dnl ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ], [dnl ++ lt_cv_prog_cc_pic_works=no ++ ]) ++ CFLAGS="$save_CFLAGS" ++ ]) ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : ++ else ++ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) ++AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) ++ LDFLAGS="$save_LDFLAGS" ++]) ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) ++AC_CACHE_VAL([lt_cv_compiler_c_o], [ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&AC_FD_CC ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++]) ++compiler_c_o=$lt_cv_compiler_c_o ++AC_MSG_RESULT([$compiler_c_o]) ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) ++ AC_CACHE_VAL([lt_cv_compiler_o_lo], [ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ]) ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ]) ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ AC_MSG_RESULT([$compiler_o_lo]) ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ AC_MSG_CHECKING([if we can lock with hard links]) ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ AC_MSG_RESULT([$hard_links]) ++ if test "$hard_links" = no; then ++ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ]) ++ CFLAGS="$save_CFLAGS" ++ AC_MSG_RESULT([$compiler_rtti_exceptions]) ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \[$]# in ++ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++AC_MSG_RESULT([$ld_shlibs]) ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++AC_MSG_CHECKING([how to hardcode library paths into programs]) ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++AC_MSG_RESULT([$hardcode_action]) ++ ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++ AC_MSG_RESULT([no]) ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++AC_MSG_CHECKING([dynamic linker characteristics]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[[01]] | aix4.[[01]].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[[89]] | openbsd2.[[89]].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++AC_MSG_CHECKING([if libtool supports shared libraries]) ++AC_MSG_RESULT([$can_build_shared]) ++ ++AC_MSG_CHECKING([whether to build shared libraries]) ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++AC_MSG_RESULT([$enable_shared]) ++ ++AC_MSG_CHECKING([whether to build static libraries]) ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++AC_MSG_RESULT([$enable_static]) ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++AC_LIBTOOL_DLOPEN_SELF ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ++ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], ++ [$rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile); then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi]) ++ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. ++# ++# 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. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# 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. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ ++ ++EOF ++ ;; ++ esac ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi ++ ++])# _LT_AC_LTCONFIG_HACK ++ ++# AC_LIBTOOL_DLOPEN - enable checks for dlopen support ++AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) ++ ++# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's ++AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) ++ ++# AC_ENABLE_SHARED - implement the --enable-shared flag ++# Usage: AC_ENABLE_SHARED[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_SHARED], ++[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(shared, ++changequote(<<, >>)dnl ++<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_shared=yes ;; ++no) enable_shared=no ;; ++*) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_SHARED - set the default shared flag to --disable-shared ++AC_DEFUN([AC_DISABLE_SHARED], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_SHARED(no)]) ++ ++# AC_ENABLE_STATIC - implement the --enable-static flag ++# Usage: AC_ENABLE_STATIC[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_STATIC], ++[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(static, ++changequote(<<, >>)dnl ++<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_static=yes ;; ++no) enable_static=no ;; ++*) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_static=AC_ENABLE_STATIC_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_STATIC - set the default static flag to --disable-static ++AC_DEFUN([AC_DISABLE_STATIC], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_STATIC(no)]) ++ ++ ++# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag ++# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_FAST_INSTALL], ++[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(fast-install, ++changequote(<<, >>)dnl ++<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_fast_install=yes ;; ++no) enable_fast_install=no ;; ++*) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install ++AC_DEFUN([AC_DISABLE_FAST_INSTALL], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_FAST_INSTALL(no)]) ++ ++# AC_LIBTOOL_PICMODE - implement the --with-pic flag ++# Usage: AC_LIBTOOL_PICMODE[(MODE)] ++# Where MODE is either `yes' or `no'. If omitted, it defaults to ++# `both'. ++AC_DEFUN([AC_LIBTOOL_PICMODE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++pic_mode=ifelse($#,1,$1,default)]) ++ ++ ++# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library ++AC_DEFUN([AC_PATH_TOOL_PREFIX], ++[AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="ifelse([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$1; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac]) ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++]) ++ ++ ++# AC_PATH_MAGIC - find a file program which can recognise a shared library ++AC_DEFUN([AC_PATH_MAGIC], ++[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl ++AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++]) ++ ++ ++# AC_PROG_LD - find the path to the GNU or non-GNU linker ++AC_DEFUN([AC_PROG_LD], ++[AC_ARG_WITH(gnu-ld, ++[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], ++test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ AC_MSG_CHECKING([for ld used by GCC]) ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [[\\/]]* | [[A-Za-z]]:[[\\/]]*) ++ re_direlt='/[[^/]][[^/]]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ AC_MSG_CHECKING([for GNU ld]) ++else ++ AC_MSG_CHECKING([for non-GNU ld]) ++fi ++AC_CACHE_VAL(lt_cv_path_LD, ++[if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++else ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. ++fi]) ++LD="$lt_cv_path_LD" ++if test -n "$LD"; then ++ AC_MSG_RESULT($LD) ++else ++ AC_MSG_RESULT(no) ++fi ++test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) ++AC_PROG_LD_GNU ++]) ++ ++# AC_PROG_LD_GNU - ++AC_DEFUN([AC_PROG_LD_GNU], ++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, ++[# I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then ++ lt_cv_prog_gnu_ld=yes ++else ++ lt_cv_prog_gnu_ld=no ++fi]) ++with_gnu_ld=$lt_cv_prog_gnu_ld ++]) ++ ++# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker ++# -- PORTME Some linkers may need a different reload flag. ++AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], ++[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, ++[lt_cv_ld_reload_flag='-r']) ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++]) ++ ++# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies ++# -- PORTME fill in with the dynamic library characteristics ++AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], ++[AC_CACHE_CHECK([how to recognise dependent libraries], ++lt_cv_deplibs_check_method, ++[lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[[78]]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++]) ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++]) ++ ++ ++# AC_PROG_NM - find the path to a BSD-compatible name lister ++AC_DEFUN([AC_PROG_NM], ++[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++AC_MSG_CHECKING([for BSD-compatible nm]) ++AC_CACHE_VAL(lt_cv_path_NM, ++[if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ else ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ++fi]) ++NM="$lt_cv_path_NM" ++AC_MSG_RESULT([$NM]) ++]) ++ ++# AC_CHECK_LIBM - check for math library ++AC_DEFUN([AC_CHECK_LIBM], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++LIBM= ++case $host in ++*-*-beos* | *-*-cygwin* | *-*-pw32*) ++ # These system don't have libm ++ ;; ++*-ncr-sysv4.3*) ++ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") ++ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") ++ ;; ++*) ++ AC_CHECK_LIB(m, main, LIBM="-lm") ++ ;; ++esac ++]) ++ ++# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for ++# the libltdl convenience library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-convenience to the ++# configure arguments. Note that LIBLTDL and LTDLINCL are not ++# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not ++# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed ++# with '${top_builddir}/' and LTDLINCL will be prefixed with ++# '${top_srcdir}/' (note the single quotes!). If your package is not ++# flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++AC_DEFUN([AC_LIBLTDL_CONVENIENCE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ case $enable_ltdl_convenience in ++ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; ++ "") enable_ltdl_convenience=yes ++ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; ++ esac ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" ++]) ++ ++# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for ++# the libltdl installable library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-install to the configure ++# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is ++# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed ++# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will ++# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed ++# with '${top_srcdir}/' (note the single quotes!). If your package is ++# not flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++# In the future, this macro may have to be called after AC_PROG_LIBTOOL. ++AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ AC_CHECK_LIB(ltdl, main, ++ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], ++ [if test x"$enable_ltdl_install" = xno; then ++ AC_MSG_WARN([libltdl not installed, but installation disabled]) ++ else ++ enable_ltdl_install=yes ++ fi ++ ]) ++ if test x"$enable_ltdl_install" = x"yes"; then ++ ac_configure_args="$ac_configure_args --enable-ltdl-install" ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ else ++ ac_configure_args="$ac_configure_args --enable-ltdl-install=no" ++ LIBLTDL="-lltdl" ++ LTDLINCL= ++ fi ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" ++]) ++ ++# old names ++AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) ++AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) ++AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) ++ ++# This is just to silence aclocal about the macro not being used ++ifelse([AC_DISABLE_FAST_INSTALL]) ++ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++# LT_AC_PROG_SED ++# -------------- ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++AC_DEFUN([LT_AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++]) ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++AC_MSG_RESULT([$SED]) ++]) ++ +--- metamail-2.7.orig/configure ++++ metamail-2.7/configure +@@ -0,0 +1,7333 @@ ++#! /bin/sh ++ ++# Guess values for system-dependent variables and create Makefiles. ++# Generated automatically using autoconf version 2.13 ++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. ++# ++# This configure script is free software; the Free Software Foundation ++# gives unlimited permission to copy, distribute and modify it. ++ ++# Defaults: ++ac_help= ++ac_default_prefix=/usr/local ++# Any additions from configure.in: ++ac_help="$ac_help ++ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer" ++ac_help="$ac_help ++ --enable-shared[=PKGS] build shared libraries [default=yes]" ++ac_help="$ac_help ++ --enable-static[=PKGS] build static libraries [default=yes]" ++ac_help="$ac_help ++ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" ++ac_help="$ac_help ++ --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++ ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" ++fi ++ ++ ++ac_help="$ac_help ++ --disable-libtool-lock avoid locking (might break parallel builds)" ++ac_help="$ac_help ++ --with-pic try to use only PIC/non-PIC objects [default=use both]" ++ ++# Initialize some variables set by options. ++# The variables have the same names as the options, with ++# dashes changed to underlines. ++build=NONE ++cache_file=./config.cache ++exec_prefix=NONE ++host=NONE ++no_create= ++nonopt=NONE ++no_recursion= ++prefix=NONE ++program_prefix=NONE ++program_suffix=NONE ++program_transform_name=s,x,x, ++silent= ++site= ++srcdir= ++target=NONE ++verbose= ++x_includes=NONE ++x_libraries=NONE ++bindir='${exec_prefix}/bin' ++sbindir='${exec_prefix}/sbin' ++libexecdir='${exec_prefix}/libexec' ++datadir='${prefix}/share' ++sysconfdir='${prefix}/etc' ++sharedstatedir='${prefix}/com' ++localstatedir='${prefix}/var' ++libdir='${exec_prefix}/lib' ++includedir='${prefix}/include' ++oldincludedir='/usr/include' ++infodir='${prefix}/info' ++mandir='${prefix}/man' ++ ++# Initialize some other variables. ++subdirs= ++MFLAGS= MAKEFLAGS= ++SHELL=${CONFIG_SHELL-/bin/sh} ++# Maximum number of lines to put in a shell here document. ++ac_max_here_lines=12 ++ ++ac_prev= ++for ac_option ++do ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$ac_prev"; then ++ eval "$ac_prev=\$ac_option" ++ ac_prev= ++ continue ++ fi ++ ++ case "$ac_option" in ++ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) ac_optarg= ;; ++ esac ++ ++ # Accept the important Cygnus configure options, so we can diagnose typos. ++ ++ case "$ac_option" in ++ ++ -bindir | --bindir | --bindi | --bind | --bin | --bi) ++ ac_prev=bindir ;; ++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) ++ bindir="$ac_optarg" ;; ++ ++ -build | --build | --buil | --bui | --bu) ++ ac_prev=build ;; ++ -build=* | --build=* | --buil=* | --bui=* | --bu=*) ++ build="$ac_optarg" ;; ++ ++ -cache-file | --cache-file | --cache-fil | --cache-fi \ ++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ++ ac_prev=cache_file ;; ++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ++ cache_file="$ac_optarg" ;; ++ ++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ++ ac_prev=datadir ;; ++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ ++ | --da=*) ++ datadir="$ac_optarg" ;; ++ ++ -disable-* | --disable-*) ++ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then ++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ++ fi ++ ac_feature=`echo $ac_feature| sed 's/-/_/g'` ++ eval "enable_${ac_feature}=no" ;; ++ ++ -enable-* | --enable-*) ++ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then ++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ++ fi ++ ac_feature=`echo $ac_feature| sed 's/-/_/g'` ++ case "$ac_option" in ++ *=*) ;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "enable_${ac_feature}='$ac_optarg'" ;; ++ ++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ++ | --exec | --exe | --ex) ++ ac_prev=exec_prefix ;; ++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ++ | --exec=* | --exe=* | --ex=*) ++ exec_prefix="$ac_optarg" ;; ++ ++ -gas | --gas | --ga | --g) ++ # Obsolete; use --with-gas. ++ with_gas=yes ;; ++ ++ -help | --help | --hel | --he) ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat << EOF ++Usage: configure [options] [host] ++Options: [defaults in brackets after descriptions] ++Configuration: ++ --cache-file=FILE cache test results in FILE ++ --help print this message ++ --no-create do not create output files ++ --quiet, --silent do not print \`checking...' messages ++ --version print the version of autoconf that created configure ++Directory and file names: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [same as prefix] ++ --bindir=DIR user executables in DIR [EPREFIX/bin] ++ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] ++ --libexecdir=DIR program executables in DIR [EPREFIX/libexec] ++ --datadir=DIR read-only architecture-independent data in DIR ++ [PREFIX/share] ++ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data in DIR ++ [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] ++ --libdir=DIR object code libraries in DIR [EPREFIX/lib] ++ --includedir=DIR C header files in DIR [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] ++ --infodir=DIR info documentation in DIR [PREFIX/info] ++ --mandir=DIR man documentation in DIR [PREFIX/man] ++ --srcdir=DIR find the sources in DIR [configure dir or ..] ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM ++ run sed PROGRAM on installed program names ++EOF ++ cat << EOF ++Host type: ++ --build=BUILD configure for building on BUILD [BUILD=HOST] ++ --host=HOST configure for HOST [guessed] ++ --target=TARGET configure for TARGET [TARGET=HOST] ++Features and packages: ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --x-includes=DIR X include files are in DIR ++ --x-libraries=DIR X library files are in DIR ++EOF ++ if test -n "$ac_help"; then ++ echo "--enable and --with options recognized:$ac_help" ++ fi ++ exit 0 ;; ++ ++ -host | --host | --hos | --ho) ++ ac_prev=host ;; ++ -host=* | --host=* | --hos=* | --ho=*) ++ host="$ac_optarg" ;; ++ ++ -includedir | --includedir | --includedi | --included | --include \ ++ | --includ | --inclu | --incl | --inc) ++ ac_prev=includedir ;; ++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ ++ | --includ=* | --inclu=* | --incl=* | --inc=*) ++ includedir="$ac_optarg" ;; ++ ++ -infodir | --infodir | --infodi | --infod | --info | --inf) ++ ac_prev=infodir ;; ++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) ++ infodir="$ac_optarg" ;; ++ ++ -libdir | --libdir | --libdi | --libd) ++ ac_prev=libdir ;; ++ -libdir=* | --libdir=* | --libdi=* | --libd=*) ++ libdir="$ac_optarg" ;; ++ ++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ ++ | --libexe | --libex | --libe) ++ ac_prev=libexecdir ;; ++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ ++ | --libexe=* | --libex=* | --libe=*) ++ libexecdir="$ac_optarg" ;; ++ ++ -localstatedir | --localstatedir | --localstatedi | --localstated \ ++ | --localstate | --localstat | --localsta | --localst \ ++ | --locals | --local | --loca | --loc | --lo) ++ ac_prev=localstatedir ;; ++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ ++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ ++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) ++ localstatedir="$ac_optarg" ;; ++ ++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ++ ac_prev=mandir ;; ++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) ++ mandir="$ac_optarg" ;; ++ ++ -nfp | --nfp | --nf) ++ # Obsolete; use --without-fp. ++ with_fp=no ;; ++ ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c) ++ no_create=yes ;; ++ ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ++ no_recursion=yes ;; ++ ++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ ++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ ++ | --oldin | --oldi | --old | --ol | --o) ++ ac_prev=oldincludedir ;; ++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ ++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ ++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) ++ oldincludedir="$ac_optarg" ;; ++ ++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ++ ac_prev=prefix ;; ++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ++ prefix="$ac_optarg" ;; ++ ++ -program-prefix | --program-prefix | --program-prefi | --program-pref \ ++ | --program-pre | --program-pr | --program-p) ++ ac_prev=program_prefix ;; ++ -program-prefix=* | --program-prefix=* | --program-prefi=* \ ++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ++ program_prefix="$ac_optarg" ;; ++ ++ -program-suffix | --program-suffix | --program-suffi | --program-suff \ ++ | --program-suf | --program-su | --program-s) ++ ac_prev=program_suffix ;; ++ -program-suffix=* | --program-suffix=* | --program-suffi=* \ ++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ++ program_suffix="$ac_optarg" ;; ++ ++ -program-transform-name | --program-transform-name \ ++ | --program-transform-nam | --program-transform-na \ ++ | --program-transform-n | --program-transform- \ ++ | --program-transform | --program-transfor \ ++ | --program-transfo | --program-transf \ ++ | --program-trans | --program-tran \ ++ | --progr-tra | --program-tr | --program-t) ++ ac_prev=program_transform_name ;; ++ -program-transform-name=* | --program-transform-name=* \ ++ | --program-transform-nam=* | --program-transform-na=* \ ++ | --program-transform-n=* | --program-transform-=* \ ++ | --program-transform=* | --program-transfor=* \ ++ | --program-transfo=* | --program-transf=* \ ++ | --program-trans=* | --program-tran=* \ ++ | --progr-tra=* | --program-tr=* | --program-t=*) ++ program_transform_name="$ac_optarg" ;; ++ ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ silent=yes ;; ++ ++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ++ ac_prev=sbindir ;; ++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ ++ | --sbi=* | --sb=*) ++ sbindir="$ac_optarg" ;; ++ ++ -sharedstatedir | --sharedstatedir | --sharedstatedi \ ++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ ++ | --sharedst | --shareds | --shared | --share | --shar \ ++ | --sha | --sh) ++ ac_prev=sharedstatedir ;; ++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ ++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ ++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ ++ | --sha=* | --sh=*) ++ sharedstatedir="$ac_optarg" ;; ++ ++ -site | --site | --sit) ++ ac_prev=site ;; ++ -site=* | --site=* | --sit=*) ++ site="$ac_optarg" ;; ++ ++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ++ ac_prev=srcdir ;; ++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ++ srcdir="$ac_optarg" ;; ++ ++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ ++ | --syscon | --sysco | --sysc | --sys | --sy) ++ ac_prev=sysconfdir ;; ++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ ++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) ++ sysconfdir="$ac_optarg" ;; ++ ++ -target | --target | --targe | --targ | --tar | --ta | --t) ++ ac_prev=target ;; ++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ++ target="$ac_optarg" ;; ++ ++ -v | -verbose | --verbose | --verbos | --verbo | --verb) ++ verbose=yes ;; ++ ++ -version | --version | --versio | --versi | --vers) ++ echo "configure generated by autoconf version 2.13" ++ exit 0 ;; ++ ++ -with-* | --with-*) ++ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then ++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ++ fi ++ ac_package=`echo $ac_package| sed 's/-/_/g'` ++ case "$ac_option" in ++ *=*) ;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "with_${ac_package}='$ac_optarg'" ;; ++ ++ -without-* | --without-*) ++ ac_package=`echo $ac_option|sed -e 's/-*without-//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then ++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ++ fi ++ ac_package=`echo $ac_package| sed 's/-/_/g'` ++ eval "with_${ac_package}=no" ;; ++ ++ --x) ++ # Obsolete; use --with-x. ++ with_x=yes ;; ++ ++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ++ | --x-incl | --x-inc | --x-in | --x-i) ++ ac_prev=x_includes ;; ++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ++ x_includes="$ac_optarg" ;; ++ ++ -x-libraries | --x-libraries | --x-librarie | --x-librari \ ++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ++ ac_prev=x_libraries ;; ++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ++ x_libraries="$ac_optarg" ;; ++ ++ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ++ ;; ++ ++ *) ++ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then ++ echo "configure: warning: $ac_option: invalid host type" 1>&2 ++ fi ++ if test "x$nonopt" != xNONE; then ++ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ++ fi ++ nonopt="$ac_option" ++ ;; ++ ++ esac ++done ++ ++if test -n "$ac_prev"; then ++ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } ++fi ++ ++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 ++ ++# File descriptor usage: ++# 0 standard input ++# 1 file creation ++# 2 errors and warnings ++# 3 some systems may open it to /dev/tty ++# 4 used on the Kubota Titan ++# 6 checking for... messages and results ++# 5 compiler messages saved in config.log ++if test "$silent" = yes; then ++ exec 6>/dev/null ++else ++ exec 6>&1 ++fi ++exec 5>./config.log ++ ++echo "\ ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++" 1>&5 ++ ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Also quote any args containing shell metacharacters. ++ac_configure_args= ++for ac_arg ++do ++ case "$ac_arg" in ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c) ;; ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ++ ac_configure_args="$ac_configure_args '$ac_arg'" ;; ++ *) ac_configure_args="$ac_configure_args $ac_arg" ;; ++ esac ++done ++ ++# NLS nuisances. ++# Only set these to C if already set. These must not be set unconditionally ++# because not all systems understand e.g. LANG=C (notably SCO). ++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! ++# Non-C LC_CTYPE values break the ctype check. ++if test "${LANG+set}" = set; then LANG=C; export LANG; fi ++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi ++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi ++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi ++ ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -rf conftest* confdefs.h ++# AIX cpp loses on an empty file, so make sure it contains at least a newline. ++echo > confdefs.h ++ ++# A filename unique to this package, relative to the directory that ++# configure is in, which we can look for to find out if srcdir is correct. ++ac_unique_file=src/metamail/metamail.c ++ ++# Find the source files, if location was not specified. ++if test -z "$srcdir"; then ++ ac_srcdir_defaulted=yes ++ # Try the directory containing this script, then its parent. ++ ac_prog=$0 ++ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` ++ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. ++ srcdir=$ac_confdir ++ if test ! -r $srcdir/$ac_unique_file; then ++ srcdir=.. ++ fi ++else ++ ac_srcdir_defaulted=no ++fi ++if test ! -r $srcdir/$ac_unique_file; then ++ if test "$ac_srcdir_defaulted" = yes; then ++ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } ++ else ++ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } ++ fi ++fi ++srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` ++ ++# Prefer explicitly selected file to automatically selected ones. ++if test -z "$CONFIG_SITE"; then ++ if test "x$prefix" != xNONE; then ++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ++ else ++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ++ fi ++fi ++for ac_site_file in $CONFIG_SITE; do ++ if test -r "$ac_site_file"; then ++ echo "loading site script $ac_site_file" ++ . "$ac_site_file" ++ fi ++done ++ ++if test -r "$cache_file"; then ++ echo "loading cache $cache_file" ++ . $cache_file ++else ++ echo "creating cache $cache_file" ++ > $cache_file ++fi ++ ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ac_exeext= ++ac_objext=o ++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then ++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. ++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ++ ac_n= ac_c=' ++' ac_t=' ' ++ else ++ ac_n=-n ac_c= ac_t= ++ fi ++else ++ ac_n= ac_c='\c' ac_t= ++fi ++ ++ ++ac_aux_dir= ++for ac_dir in config $srcdir/config; do ++ if test -f $ac_dir/install-sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f $ac_dir/install.sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ fi ++done ++if test -z "$ac_aux_dir"; then ++ { echo "configure: error: can not find install-sh or install.sh in config $srcdir/config" 1>&2; exit 1; } ++fi ++ac_config_guess=$ac_aux_dir/config.guess ++ac_config_sub=$ac_aux_dir/config.sub ++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. ++ ++ ++ ++ ++am__api_version="1.4" ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# ./install, which can be erroneously created by make from ./install.sh. ++echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ++echo "configure:734: checking for a BSD compatible install" >&5 ++if test -z "$INSTALL"; then ++if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" ++ for ac_dir in $PATH; do ++ # Account for people who put trailing slashes in PATH elements. ++ case "$ac_dir/" in ++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ if test -f $ac_dir/$ac_prog; then ++ if test $ac_prog = install && ++ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ else ++ ac_cv_path_install="$ac_dir/$ac_prog -c" ++ break 2 ++ fi ++ fi ++ done ++ ;; ++ esac ++ done ++ IFS="$ac_save_IFS" ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL="$ac_cv_path_install" ++ else ++ # As a last resort, use the slow shell script. We don't cache a ++ # path for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the path is relative. ++ INSTALL="$ac_install_sh" ++ fi ++fi ++echo "$ac_t""$INSTALL" 1>&6 ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ++echo "configure:787: checking whether build environment is sane" >&5 ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "$*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "$*" != "X $srcdir/configure conftestfile" \ ++ && test "$*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" 1>&2; exit 1; } ++ fi ++ ++ test "$2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ { echo "configure: error: newly created file is older than distributed files! ++Check your system clock" 1>&2; exit 1; } ++fi ++rm -f conftest* ++echo "$ac_t""yes" 1>&6 ++if test "$program_transform_name" = s,x,x,; then ++ program_transform_name= ++else ++ # Double any \ or $. echo might interpret backslashes. ++ cat <<\EOF_SED > conftestsed ++s,\\,\\\\,g; s,\$,$$,g ++EOF_SED ++ program_transform_name="`echo $program_transform_name|sed -f conftestsed`" ++ rm -f conftestsed ++fi ++test "$program_prefix" != NONE && ++ program_transform_name="s,^,${program_prefix},; $program_transform_name" ++# Use a double $ so make ignores it. ++test "$program_suffix" != NONE && ++ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" ++ ++# sed with no file args requires a program. ++test "$program_transform_name" = "" && program_transform_name="s,x,x," ++ ++echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ++echo "configure:844: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftestmake <<\EOF ++all: ++ @echo 'ac_maketemp="${MAKE}"' ++EOF ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` ++if test -n "$ac_maketemp"; then ++ eval ac_cv_prog_make_${ac_make}_set=yes ++else ++ eval ac_cv_prog_make_${ac_make}_set=no ++fi ++rm -f conftestmake ++fi ++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ SET_MAKE= ++else ++ echo "$ac_t""no" 1>&6 ++ SET_MAKE="MAKE=${MAKE-make}" ++fi ++ ++ ++PACKAGE=metamail ++ ++VERSION=0.0.1 ++ ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } ++fi ++cat >> confdefs.h <<EOF ++#define PACKAGE "$PACKAGE" ++EOF ++ ++cat >> confdefs.h <<EOF ++#define VERSION "$VERSION" ++EOF ++ ++ ++ ++missing_dir=`cd $ac_aux_dir && pwd` ++echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:890: checking for working aclocal-${am__api_version}" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ ACLOCAL=aclocal-${am__api_version} ++ echo "$ac_t""found" 1>&6 ++else ++ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ++echo "configure:903: checking for working autoconf" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (autoconf --version) < /dev/null > /dev/null 2>&1; then ++ AUTOCONF=autoconf ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOCONF="$missing_dir/missing autoconf" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:916: checking for working automake-${am__api_version}" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ AUTOMAKE=automake-${am__api_version} ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOMAKE="$missing_dir/missing automake-${am__api_version}" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ++echo "configure:929: checking for working autoheader" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (autoheader --version) < /dev/null > /dev/null 2>&1; then ++ AUTOHEADER=autoheader ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOHEADER="$missing_dir/missing autoheader" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ++echo "configure:942: checking for working makeinfo" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (makeinfo --version) < /dev/null > /dev/null 2>&1; then ++ MAKEINFO=makeinfo ++ echo "$ac_t""found" 1>&6 ++else ++ MAKEINFO="$missing_dir/missing makeinfo" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++ ++echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ++echo "configure:956: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. ++if test "${enable_maintainer_mode+set}" = set; then ++ enableval="$enable_maintainer_mode" ++ USE_MAINTAINER_MODE=$enableval ++else ++ USE_MAINTAINER_MODE=no ++fi ++ ++ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 ++ ++ ++if test $USE_MAINTAINER_MODE = yes; then ++ MAINTAINER_MODE_TRUE= ++ MAINTAINER_MODE_FALSE='#' ++else ++ MAINTAINER_MODE_TRUE='#' ++ MAINTAINER_MODE_FALSE= ++fi ++ MAINT=$MAINTAINER_MODE_TRUE ++ ++ ++ ++ ++# Make sure we can run config.sub. ++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : ++else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } ++fi ++ ++echo $ac_n "checking host system type""... $ac_c" 1>&6 ++echo "configure:986: checking host system type" >&5 ++ ++host_alias=$host ++case "$host_alias" in ++NONE) ++ case $nonopt in ++ NONE) ++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : ++ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } ++ fi ;; ++ *) host_alias=$nonopt ;; ++ esac ;; ++esac ++ ++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` ++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++echo "$ac_t""$host" 1>&6 ++ ++ ++# Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1010: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CC="gcc" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1040: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_prog_rejected=no ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++if test $ac_prog_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $ac_cv_prog_CC ++ shift ++ if test $# -gt 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same basename, so the bogon will be chosen ++ # first if we set CC to just the basename; use the full file name. ++ shift ++ set dummy "$ac_dir/$ac_word" "$@" ++ shift ++ ac_cv_prog_CC="$@" ++ fi ++fi ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ if test -z "$CC"; then ++ case "`uname -s`" in ++ *win32* | *WIN32*) ++ # Extract the first word of "cl", so it can be a program name with args. ++set dummy cl; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1091: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CC="cl" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ;; ++ esac ++ fi ++ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } ++fi ++ ++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ++echo "configure:1123: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++ ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++cat > conftest.$ac_ext << EOF ++ ++#line 1134 "configure" ++#include "confdefs.h" ++ ++main(){return(0);} ++EOF ++if { (eval echo configure:1139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ ac_cv_prog_cc_works=yes ++ # If we can't run a trivial program, we are probably using a cross compiler. ++ if (./conftest; exit) 2>/dev/null; then ++ ac_cv_prog_cc_cross=no ++ else ++ ac_cv_prog_cc_cross=yes ++ fi ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_prog_cc_works=no ++fi ++rm -fr conftest* ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ++if test $ac_cv_prog_cc_works = no; then ++ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } ++fi ++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ++echo "configure:1165: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 ++cross_compiling=$ac_cv_prog_cc_cross ++ ++echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ++echo "configure:1170: checking whether we are using GNU C" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.c <<EOF ++#ifdef __GNUC__ ++ yes; ++#endif ++EOF ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++ ac_cv_prog_gcc=yes ++else ++ ac_cv_prog_gcc=no ++fi ++fi ++ ++echo "$ac_t""$ac_cv_prog_gcc" 1>&6 ++ ++if test $ac_cv_prog_gcc = yes; then ++ GCC=yes ++else ++ GCC= ++fi ++ ++ac_test_CFLAGS="${CFLAGS+set}" ++ac_save_CFLAGS="$CFLAGS" ++CFLAGS= ++echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ++echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ echo 'void f(){}' > conftest.c ++if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ++ ac_cv_prog_cc_g=yes ++else ++ ac_cv_prog_cc_g=no ++fi ++rm -f conftest* ++ ++fi ++ ++echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 ++if test "$ac_test_CFLAGS" = set; then ++ CFLAGS="$ac_save_CFLAGS" ++elif test $ac_cv_prog_cc_g = yes; then ++ if test "$GCC" = yes; then ++ CFLAGS="-g -O2" ++ else ++ CFLAGS="-g" ++ fi ++else ++ if test "$GCC" = yes; then ++ CFLAGS="-O2" ++ else ++ CFLAGS= ++ fi ++fi ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ++echo "configure:1241: checking for Cygwin environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1246 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++#ifndef __CYGWIN__ ++#define __CYGWIN__ __CYGWIN32__ ++#endif ++return __CYGWIN__; ++; return 0; } ++EOF ++if { (eval echo configure:1257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_cygwin=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_cygwin=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_cygwin" 1>&6 ++CYGWIN= ++test "$ac_cv_cygwin" = yes && CYGWIN=yes ++echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ++echo "configure:1274: checking for mingw32 environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1279 "configure" ++#include "confdefs.h" ++ ++int main() { ++return __MINGW32__; ++; return 0; } ++EOF ++if { (eval echo configure:1286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_mingw32=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_mingw32=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_mingw32" 1>&6 ++MINGW32= ++test "$ac_cv_mingw32" = yes && MINGW32=yes ++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ++echo "configure:1303: checking how to run the C preprocessor" >&5 ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # This must be in double quotes, not single quotes, because CPP may get ++ # substituted into the Makefile and "${CC-cc}" will confuse make. ++ CPP="${CC-cc} -E" ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. ++ cat > conftest.$ac_ext <<EOF ++#line 1318 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -E -traditional-cpp" ++ cat > conftest.$ac_ext <<EOF ++#line 1335 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -nologo -E" ++ cat > conftest.$ac_ext <<EOF ++#line 1352 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP=/lib/cpp ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++ ac_cv_prog_CPP="$CPP" ++fi ++ CPP="$ac_cv_prog_CPP" ++else ++ ac_cv_prog_CPP="$CPP" ++fi ++echo "$ac_t""$CPP" 1>&6 ++ ++# Check whether --enable-shared or --disable-shared was given. ++if test "${enable_shared+set}" = set; then ++ enableval="$enable_shared" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_shared=yes ;; ++no) enable_shared=no ;; ++*) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_shared=yes ++fi ++ ++# Check whether --enable-static or --disable-static was given. ++if test "${enable_static+set}" = set; then ++ enableval="$enable_static" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_static=yes ;; ++no) enable_static=no ;; ++*) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_static=yes ++fi ++ ++# Check whether --enable-fast-install or --disable-fast-install was given. ++if test "${enable_fast_install+set}" = set; then ++ enableval="$enable_fast_install" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_fast_install=yes ;; ++no) enable_fast_install=no ;; ++*) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_fast_install=yes ++fi ++ ++echo $ac_n "checking build system type""... $ac_c" 1>&6 ++echo "configure:1452: checking build system type" >&5 ++ ++build_alias=$build ++case "$build_alias" in ++NONE) ++ case $nonopt in ++ NONE) build_alias=$host_alias ;; ++ *) build_alias=$nonopt ;; ++ esac ;; ++esac ++ ++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` ++build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++echo "$ac_t""$build" 1>&6 ++ ++# Check whether --with-gnu-ld or --without-gnu-ld was given. ++if test "${with_gnu_ld+set}" = set; then ++ withval="$with_gnu_ld" ++ test "$withval" = no || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ++echo "configure:1481: checking for ld used by GCC" >&5 ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [\\/]* | [A-Za-z]:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ++echo "configure:1511: checking for GNU ld" >&5 ++else ++ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ++echo "configure:1514: checking for non-GNU ld" >&5 ++fi ++if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++else ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. ++fi ++fi ++ ++LD="$lt_cv_path_LD" ++if test -n "$LD"; then ++ echo "$ac_t""$LD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } ++echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ++echo "configure:1549: checking if the linker ($LD) is GNU ld" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then ++ lt_cv_prog_gnu_ld=yes ++else ++ lt_cv_prog_gnu_ld=no ++fi ++fi ++ ++echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6 ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ++echo "configure:1566: checking for $LD option to reload object files" >&5 ++if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi ++ ++echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6 ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++ ++echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ++echo "configure:1578: checking for BSD-compatible nm" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ else ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ++fi ++fi ++ ++NM="$lt_cv_path_NM" ++echo "$ac_t""$NM" 1>&6 ++ ++echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6 ++echo "configure:1616: checking for a sed that does not truncate output" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++ ++fi ++ ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++echo "$ac_t""$SED" 1>&6 ++ ++echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ++echo "configure:1700: checking whether ln -s works" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftestdata ++if ln -s X conftestdata 2>/dev/null ++then ++ rm -f conftestdata ++ ac_cv_prog_LN_S="ln -s" ++else ++ ac_cv_prog_LN_S=ln ++fi ++fi ++LN_S="$ac_cv_prog_LN_S" ++if test "$ac_cv_prog_LN_S" = "ln -s"; then ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6 ++echo "configure:1721: checking how to recognise dependent libraries" >&5 ++if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[78]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6 ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++ ++echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ++echo "configure:1907: checking for object suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftest* ++echo 'int i = 1;' > conftest.$ac_ext ++if { (eval echo configure:1913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_objext" 1>&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$ac_cv_objext ++ ++ ++ ++echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ++echo "configure:1933: checking for executable suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then ++ ac_cv_exeext=.exe ++else ++ rm -f conftest* ++ echo 'int main () { return 0; }' > conftest.$ac_ext ++ ac_cv_exeext= ++ if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then ++ for file in conftest.*; do ++ case $file in ++ *.$ac_ext | *.c | *.o | *.obj) ;; ++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; ++ esac ++ done ++ else ++ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } ++ fi ++ rm -f conftest* ++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no ++fi ++fi ++ ++EXEEXT="" ++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} ++echo "$ac_t""${ac_cv_exeext}" 1>&6 ++ac_exeext=$EXEEXT ++ ++if test $host != $build; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++ ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 ++echo "configure:1974: checking command to parse $NM output" >&5 ++if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris* | sysv5*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if { (eval echo configure:2057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { (eval echo configure:2060: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo configure:2111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ echo "$ac_t""failed" 1>&6 ++else ++ echo "$ac_t""ok" 1>&6 ++fi ++ ++for ac_hdr in dlfcn.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:2160: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2165 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:2170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ++ ++ ++ ++ ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ++echo "configure:2206: checking for ${ac_tool_prefix}file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/${ac_tool_prefix}file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ echo $ac_n "checking for file""... $ac_c" 1>&6 ++echo "configure:2268: checking for file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2339: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_RANLIB"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2371: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ RANLIB=":" ++fi ++fi ++ ++# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2406: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_STRIP"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2438: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ STRIP=":" ++fi ++fi ++ ++ ++enable_dlopen=no ++enable_win32_dll=no ++ ++# Check whether --enable-libtool-lock or --disable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then ++ enableval="$enable_libtool_lock" ++ : ++fi ++ ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '#line 2487 "configure"' > conftest.$ac_ext ++ if { (eval echo configure:2488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ++echo "configure:2509: checking whether the C compiler needs -belf" >&5 ++if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ cat > conftest.$ac_ext <<EOF ++#line 2522 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=no ++fi ++rm -f conftest* ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++fi ++ ++echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for objdir""... $ac_c" 1>&6 ++echo "configure:2649: checking for objdir" >&5 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t""$objdir" 1>&6 ++ ++ ++# Check whether --with-pic or --without-pic was given. ++if test "${with_pic+set}" = set; then ++ withval="$with_pic" ++ pic_mode="$withval" ++else ++ pic_mode=default ++fi ++ ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6 ++echo "configure:2676: checking for $compiler option to produce PIC" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++fi ++ ++if test -z "$lt_cv_prog_cc_pic"; then ++ echo "$ac_t""none" 1>&6 ++else ++ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6 ++echo "configure:2824: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 ++ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ cat > conftest.$ac_ext <<EOF ++#line 2831 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_prog_cc_pic_works=no ++ ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6 ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : ++ else ++ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6 ++echo "configure:2890: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ cat > conftest.$ac_ext <<EOF ++#line 2898 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_prog_cc_static_works=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++ ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6 ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6 ++echo "configure:2932: checking if $compiler supports -c -o file.$ac_objext" >&5 ++if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:2951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++fi ++ ++compiler_c_o=$lt_cv_compiler_c_o ++echo "$ac_t""$compiler_c_o" 1>&6 ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6 ++echo "configure:2980: checking if $compiler supports -c -o file.lo" >&5 ++ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ cat > conftest.$ac_ext <<EOF ++#line 2991 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:2998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ echo "$ac_t""$compiler_o_lo" 1>&6 ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6 ++echo "configure:3029: checking if we can lock with hard links" >&5 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t""$hard_links" 1>&6 ++ if test "$hard_links" = no; then ++ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6 ++echo "configure:3048: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ cat > conftest.$ac_ext <<EOF ++#line 3054 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:3061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ echo "$ac_t""$compiler_rtti_exceptions" 1>&6 ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6 ++echo "configure:3088: checking whether the linker ($LD) supports shared libraries" >&5 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [12].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t""$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6 ++echo "configure:3787: checking how to hardcode library paths into programs" >&5 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t""$hardcode_action" 1>&6 ++ ++striplib= ++old_striplib= ++echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6 ++echo "configure:3815: checking whether stripping libraries is possible" >&5 ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6 ++echo "configure:3829: checking dynamic linker characteristics" >&5 ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[01] | aix4.[01].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[89] | openbsd2.[89].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t""$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6 ++echo "configure:4253: checking if libtool supports shared libraries" >&5 ++echo "$ac_t""$can_build_shared" 1>&6 ++ ++echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6 ++echo "configure:4257: checking whether to build shared libraries" >&5 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++echo "$ac_t""$enable_shared" 1>&6 ++ ++echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6 ++echo "configure:4280: checking whether to build static libraries" >&5 ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++echo "$ac_t""$enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "configure:4321: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4326 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shl_load(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "configure:4367: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4375 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++shl_load() ++; return 0; } ++EOF ++if { (eval echo configure:4386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "configure:4405: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4410 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char dlopen(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "configure:4451: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4459 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6 ++echo "configure:4489: checking for dlopen in -lsvld" >&5 ++ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lsvld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4497 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "configure:4527: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4535 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dld_link(); ++ ++int main() { ++dld_link() ++; return 0; } ++EOF ++if { (eval echo configure:4546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4602: checking whether a program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4612 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4696: checking whether a statically linked program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4706 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6 ++echo "configure:4816: checking whether -lc should be explicitly linked in" >&5 ++ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ $rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if { (eval echo configure:4823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { (eval echo configure:4836: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++fi ++ ++ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6 ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. ++# ++# 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. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# 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. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ ++ ++EOF ++ ;; ++ esac ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi ++ ++ ++ ++ ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++ ++# Prevent multiple expansion ++ ++ ++ ++ ++# Extract the first word of "lp", so it can be a program name with args. ++set dummy lp; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5425: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LPRCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$LPRCOMMAND"; then ++ ac_cv_prog_LPRCOMMAND="$LPRCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_LPRCOMMAND="lp" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++LPRCOMMAND="$ac_cv_prog_LPRCOMMAND" ++if test -n "$LPRCOMMAND"; then ++ echo "$ac_t""$LPRCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++# Extract the first word of "lpr", so it can be a program name with args. ++set dummy lpr; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5454: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LPRCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$LPRCOMMAND"; then ++ ac_cv_prog_LPRCOMMAND="$LPRCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_LPRCOMMAND="lpr" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++LPRCOMMAND="$ac_cv_prog_LPRCOMMAND" ++if test -n "$LPRCOMMAND"; then ++ echo "$ac_t""$LPRCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++# Extract the first word of "cat", so it can be a program name with args. ++set dummy cat; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5484: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CATCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CATCOMMAND"; then ++ ac_cv_prog_CATCOMMAND="$CATCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CATCOMMAND="cat" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CATCOMMAND="$ac_cv_prog_CATCOMMAND" ++if test -n "$CATCOMMAND"; then ++ echo "$ac_t""$CATCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++# Extract the first word of "type", so it can be a program name with args. ++set dummy type; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5513: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CATCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CATCOMMAND"; then ++ ac_cv_prog_CATCOMMAND="$CATCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CATCOMMAND="type" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CATCOMMAND="$ac_cv_prog_CATCOMMAND" ++if test -n "$CATCOMMAND"; then ++ echo "$ac_t""$CATCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++ ++ ++for ac_hdr in stdlib.h unistd.h errno.h assert.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5546: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5551 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_hdr in sys/time.h time.h signal.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5586: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5591 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_hdr in string.h strings.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5626: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5631 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ break ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ++# @start variadic ++case $am_cv_prog_cc_stdc,$ac_cv_header_varargs_h in ++no,) ++ # Non-ANSI compiler, so we must use varargs.h. ++ for ac_hdr in varargs.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5671: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5676 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ;; ++*,yes) ++ # Parent package is using varargs.h which is incompatible with ++ # stdarg.h, so we do the same (recheck to generate checking... ++ # message). ++ for ac_hdr in varargs.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5716: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5721 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ;; ++*) ++ # If stdarg.h is present define HAVE_STDARG_H. ++ for ac_hdr in stdarg.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5759: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5764 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ;; ++esac ++ ++case x$ac_cv_header_stdarg_h$ac_cv_header_varargs_h in ++x*yes*) ;; ++*) { echo "configure: error: Could not find stdarg.h or varargs.h" 1>&2; exit 1; } ;; ++esac ++# @end variadic ++ ++echo $ac_n "checking for working const""... $ac_c" 1>&6 ++echo "configure:5805: checking for working const" >&5 ++if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5810 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++/* Ultrix mips cc rejects this. */ ++typedef int charset[2]; const charset x; ++/* SunOS 4.1.1 cc rejects this. */ ++char const *const *ccp; ++char **p; ++/* NEC SVR4.0.2 mips cc rejects this. */ ++struct point {int x, y;}; ++static struct point const zero = {0,0}; ++/* AIX XL C 1.02.0.0 rejects this. ++ It does not let you subtract one const X* pointer from another in an arm ++ of an if-expression whose if-part is not a constant expression */ ++const char *g = "string"; ++ccp = &g + (g ? g-g : 0); ++/* HPUX 7.0 cc rejects these. */ ++++ccp; ++p = (char**) ccp; ++ccp = (char const *const *) p; ++{ /* SCO 3.2v4 cc rejects this. */ ++ char *t; ++ char const *s = 0 ? (char *) 0 : (char const *) 0; ++ ++ *t++ = 0; ++} ++{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ ++ int x[] = {25, 17}; ++ const int *foo = &x[0]; ++ ++foo; ++} ++{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ ++ typedef const int *iptr; ++ iptr p = 0; ++ ++p; ++} ++{ /* AIX XL C 1.02.0.0 rejects this saying ++ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ ++ struct s { int j; const int *ap[3]; }; ++ struct s *b; b->j = 5; ++} ++{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ++ const int foo = 10; ++} ++ ++; return 0; } ++EOF ++if { (eval echo configure:5859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_c_const=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_c_const=no ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_c_const" 1>&6 ++if test $ac_cv_c_const = no; then ++ cat >> confdefs.h <<\EOF ++#define const ++EOF ++ ++fi ++ ++echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ++echo "configure:5880: checking for ANSI C header files" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5885 "configure" ++#include "confdefs.h" ++#include <stdlib.h> ++#include <stdarg.h> ++#include <string.h> ++#include <float.h> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ ac_cv_header_stdc=yes ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++cat > conftest.$ac_ext <<EOF ++#line 5910 "configure" ++#include "confdefs.h" ++#include <string.h> ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "memchr" >/dev/null 2>&1; then ++ : ++else ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++cat > conftest.$ac_ext <<EOF ++#line 5928 "configure" ++#include "confdefs.h" ++#include <stdlib.h> ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "free" >/dev/null 2>&1; then ++ : ++else ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++if test "$cross_compiling" = yes; then ++ : ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5949 "configure" ++#include "confdefs.h" ++#include <ctype.h> ++#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int main () { int i; for (i = 0; i < 256; i++) ++if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); ++exit (0); } ++ ++EOF ++if { (eval echo configure:5960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ : ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ac_cv_header_stdc=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++fi ++ ++echo "$ac_t""$ac_cv_header_stdc" 1>&6 ++if test $ac_cv_header_stdc = yes; then ++ cat >> confdefs.h <<\EOF ++#define STDC_HEADERS 1 ++EOF ++ ++fi ++ ++echo $ac_n "checking for size_t""... $ac_c" 1>&6 ++echo "configure:5984: checking for size_t" >&5 ++if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 5989 "configure" ++#include "confdefs.h" ++#include <sys/types.h> ++#if STDC_HEADERS ++#include <stdlib.h> ++#include <stddef.h> ++#endif ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then ++ rm -rf conftest* ++ ac_cv_type_size_t=yes ++else ++ rm -rf conftest* ++ ac_cv_type_size_t=no ++fi ++rm -f conftest* ++ ++fi ++echo "$ac_t""$ac_cv_type_size_t" 1>&6 ++if test $ac_cv_type_size_t = no; then ++ cat >> confdefs.h <<\EOF ++#define size_t unsigned ++EOF ++ ++fi ++ ++echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ++echo "configure:6017: checking whether time.h and sys/time.h may both be included" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6022 "configure" ++#include "confdefs.h" ++#include <sys/types.h> ++#include <sys/time.h> ++#include <time.h> ++int main() { ++struct tm *tp; ++; return 0; } ++EOF ++if { (eval echo configure:6031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_header_time=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_header_time=no ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_header_time" 1>&6 ++if test $ac_cv_header_time = yes; then ++ cat >> confdefs.h <<\EOF ++#define TIME_WITH_SYS_TIME 1 ++EOF ++ ++fi ++ ++ ++for ac_func in killpg kill ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6055: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6060 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in bcopy memcpy ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6110: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6115 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in bzero memset ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6165: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6170 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ break ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in bcmp memcmp ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6220: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6225 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in index strchr ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6275: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6280 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in rindex strrchr ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6330: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6335 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in initstate srand ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6385: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6390 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in random rand ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6440: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6445 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ++for ac_func in calloc ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6496: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6501 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++for ac_func in basename strerror vfprintf ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6551: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6556 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}" ++fi ++done ++ ++ ++for ac_func in putenv ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6608: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 6613 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_func 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}" ++fi ++done ++ ++ ++ ++ ++# @end 5 ++# @start 1 ++ ++ ++Xsed="sed -e s/^X//" ++LTLIBOBJS=`echo X"$LIBOBJS"|$Xsed -e "s,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,"` ++ ++ ++ ++ ++ ++ ++trap '' 1 2 15 ++cat > confcache <<\EOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs. It is not useful on other systems. ++# If it contains results you don't want to keep, you may remove or edit it. ++# ++# By default, configure uses ./config.cache as the cache file, ++# creating it if it does not exist already. You can give configure ++# the --cache-file=FILE option to use a different cache file; that is ++# what configure does when it calls configure scripts in ++# subdirectories, so they share the cache. ++# Giving --cache-file=/dev/null disables caching, for debugging configure. ++# config.status only pays attention to the cache file if you give it the ++# --recheck option to rerun configure. ++# ++EOF ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, don't put newlines in cache variables' values. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++(set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote substitution ++ # turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ -e "s/'/'\\\\''/g" \ ++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ++ ;; ++ esac >> confcache ++if cmp -s $cache_file confcache; then ++ : ++else ++ if test -w $cache_file; then ++ echo "updating cache $cache_file" ++ cat confcache > $cache_file ++ else ++ echo "not updating unwritable cache $cache_file" ++ fi ++fi ++rm -f confcache ++ ++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 ++ ++test "x$prefix" = xNONE && prefix=$ac_default_prefix ++# Let make expand exec_prefix. ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ++ ++# Any assignment to VPATH causes Sun make to only execute ++# the first set of double-colon rules, so remove it if not needed. ++# If there is a colon in the path, we need to keep it. ++if test "x$srcdir" = x.; then ++ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' ++fi ++ ++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 ++ ++DEFS=-DHAVE_CONFIG_H ++ ++# Without the "./", some shells look in PATH for config.status. ++: ${CONFIG_STATUS=./config.status} ++ ++echo creating $CONFIG_STATUS ++rm -f $CONFIG_STATUS ++cat > $CONFIG_STATUS <<EOF ++#! /bin/sh ++# Generated automatically by configure. ++# Run this file to recreate the current configuration. ++# This directory was configured as follows, ++# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# ++# $0 $ac_configure_args ++# ++# Compiler output produced by configure, useful for debugging ++# configure, is in ./config.log if it exists. ++ ++ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" ++for ac_option ++do ++ case "\$ac_option" in ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" ++ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; ++ -version | --version | --versio | --versi | --vers | --ver | --ve | --v) ++ echo "$CONFIG_STATUS generated by autoconf version 2.13" ++ exit 0 ;; ++ -help | --help | --hel | --he | --h) ++ echo "\$ac_cs_usage"; exit 0 ;; ++ *) echo "\$ac_cs_usage"; exit 1 ;; ++ esac ++done ++ ++ac_given_srcdir=$srcdir ++ac_given_INSTALL="$INSTALL" ++ ++trap 'rm -fr `echo "Makefile replace/Makefile metamail/Makefile src/Makefile \ ++ src/metamail/Makefile src/richmail/Makefile bin/Makefile metamail/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 ++EOF ++cat >> $CONFIG_STATUS <<EOF ++ ++# Protect against being on the right side of a sed subst in config.status. ++sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; ++ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF ++$ac_vpsub ++$extrasub ++s%@SHELL@%$SHELL%g ++s%@CFLAGS@%$CFLAGS%g ++s%@CPPFLAGS@%$CPPFLAGS%g ++s%@CXXFLAGS@%$CXXFLAGS%g ++s%@FFLAGS@%$FFLAGS%g ++s%@DEFS@%$DEFS%g ++s%@LDFLAGS@%$LDFLAGS%g ++s%@LIBS@%$LIBS%g ++s%@exec_prefix@%$exec_prefix%g ++s%@prefix@%$prefix%g ++s%@program_transform_name@%$program_transform_name%g ++s%@bindir@%$bindir%g ++s%@sbindir@%$sbindir%g ++s%@libexecdir@%$libexecdir%g ++s%@datadir@%$datadir%g ++s%@sysconfdir@%$sysconfdir%g ++s%@sharedstatedir@%$sharedstatedir%g ++s%@localstatedir@%$localstatedir%g ++s%@libdir@%$libdir%g ++s%@includedir@%$includedir%g ++s%@oldincludedir@%$oldincludedir%g ++s%@infodir@%$infodir%g ++s%@mandir@%$mandir%g ++s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g ++s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g ++s%@INSTALL_DATA@%$INSTALL_DATA%g ++s%@PACKAGE@%$PACKAGE%g ++s%@VERSION@%$VERSION%g ++s%@ACLOCAL@%$ACLOCAL%g ++s%@AUTOCONF@%$AUTOCONF%g ++s%@AUTOMAKE@%$AUTOMAKE%g ++s%@AUTOHEADER@%$AUTOHEADER%g ++s%@MAKEINFO@%$MAKEINFO%g ++s%@SET_MAKE@%$SET_MAKE%g ++s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g ++s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g ++s%@MAINT@%$MAINT%g ++s%@host@%$host%g ++s%@host_alias@%$host_alias%g ++s%@host_cpu@%$host_cpu%g ++s%@host_vendor@%$host_vendor%g ++s%@host_os@%$host_os%g ++s%@CC@%$CC%g ++s%@build@%$build%g ++s%@build_alias@%$build_alias%g ++s%@build_cpu@%$build_cpu%g ++s%@build_vendor@%$build_vendor%g ++s%@build_os@%$build_os%g ++s%@LN_S@%$LN_S%g ++s%@OBJEXT@%$OBJEXT%g ++s%@EXEEXT@%$EXEEXT%g ++s%@ECHO@%$ECHO%g ++s%@RANLIB@%$RANLIB%g ++s%@STRIP@%$STRIP%g ++s%@CPP@%$CPP%g ++s%@LIBTOOL@%$LIBTOOL%g ++s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g ++s%@LPRCOMMAND@%$LPRCOMMAND%g ++s%@CATCOMMAND@%$CATCOMMAND%g ++s%@LIBOBJS@%$LIBOBJS%g ++s%@LTLIBOBJS@%$LTLIBOBJS%g ++s%@ac_aux_dir@%$ac_aux_dir%g ++ ++CEOF ++EOF ++ ++cat >> $CONFIG_STATUS <<\EOF ++ ++# Split the substitutions into bite-sized pieces for seds with ++# small command number limits, like on Digital OSF/1 and HP-UX. ++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ++ac_file=1 # Number of current file. ++ac_beg=1 # First line for current file. ++ac_end=$ac_max_sed_cmds # Line after last line for current file. ++ac_more_lines=: ++ac_sed_cmds="" ++while $ac_more_lines; do ++ if test $ac_beg -gt 1; then ++ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file ++ else ++ sed "${ac_end}q" conftest.subs > conftest.s$ac_file ++ fi ++ if test ! -s conftest.s$ac_file; then ++ ac_more_lines=false ++ rm -f conftest.s$ac_file ++ else ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds="sed -f conftest.s$ac_file" ++ else ++ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" ++ fi ++ ac_file=`expr $ac_file + 1` ++ ac_beg=$ac_end ++ ac_end=`expr $ac_end + $ac_max_sed_cmds` ++ fi ++done ++if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds=cat ++fi ++EOF ++ ++cat >> $CONFIG_STATUS <<EOF ++ ++CONFIG_FILES=\${CONFIG_FILES-"Makefile replace/Makefile metamail/Makefile src/Makefile \ ++ src/metamail/Makefile src/richmail/Makefile bin/Makefile"} ++EOF ++cat >> $CONFIG_STATUS <<\EOF ++for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case "$ac_file" in ++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ *) ac_file_in="${ac_file}.in" ;; ++ esac ++ ++ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. ++ ++ # Remove last slash and all that follows it. Not all systems have dirname. ++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` ++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ++ # The file is in a subdirectory. ++ test ! -d "$ac_dir" && mkdir "$ac_dir" ++ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` ++ else ++ ac_dir_suffix= ac_dots= ++ fi ++ ++ case "$ac_given_srcdir" in ++ .) srcdir=. ++ if test -z "$ac_dots"; then top_srcdir=. ++ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; ++ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; ++ *) # Relative path. ++ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" ++ top_srcdir="$ac_dots$ac_given_srcdir" ;; ++ esac ++ ++ case "$ac_given_INSTALL" in ++ [/$]*) INSTALL="$ac_given_INSTALL" ;; ++ *) INSTALL="$ac_dots$ac_given_INSTALL" ;; ++ esac ++ ++ echo creating "$ac_file" ++ rm -f "$ac_file" ++ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." ++ case "$ac_file" in ++ *Makefile*) ac_comsub="1i\\ ++# $configure_input" ;; ++ *) ac_comsub= ;; ++ esac ++ ++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` ++ sed -e "$ac_comsub ++s%@configure_input@%$configure_input%g ++s%@srcdir@%$srcdir%g ++s%@top_srcdir@%$top_srcdir%g ++s%@INSTALL@%$INSTALL%g ++" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file ++fi; done ++rm -f conftest.s* ++ ++# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where ++# NAME is the cpp macro being defined and VALUE is the value it is being given. ++# ++# ac_d sets the value in "#define NAME VALUE" lines. ++ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ++ac_dC='\3' ++ac_dD='%g' ++# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ++ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uB='\([ ]\)%\1#\2define\3' ++ac_uC=' ' ++ac_uD='\4%g' ++# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ++ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_eB='$%\1#\2define\3' ++ac_eC=' ' ++ac_eD='%g' ++ ++if test "${CONFIG_HEADERS+set}" != set; then ++EOF ++cat >> $CONFIG_STATUS <<EOF ++ CONFIG_HEADERS="metamail/config.h" ++EOF ++cat >> $CONFIG_STATUS <<\EOF ++fi ++for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case "$ac_file" in ++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ *) ac_file_in="${ac_file}.in" ;; ++ esac ++ ++ echo creating $ac_file ++ ++ rm -f conftest.frag conftest.in conftest.out ++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` ++ cat $ac_file_inputs > conftest.in ++ ++EOF ++ ++# Transform confdefs.h into a sed script conftest.vals that substitutes ++# the proper values into config.h.in to produce config.h. And first: ++# Protect against being on the right side of a sed subst in config.status. ++# Protect against being in an unquoted here document in config.status. ++rm -f conftest.vals ++cat > conftest.hdr <<\EOF ++s/[\\&%]/\\&/g ++s%[\\$`]%\\&%g ++s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp ++s%ac_d%ac_u%gp ++s%ac_u%ac_e%gp ++EOF ++sed -n -f conftest.hdr confdefs.h > conftest.vals ++rm -f conftest.hdr ++ ++# This sed command replaces #undef with comments. This is necessary, for ++# example, in the case of _POSIX_SOURCE, which is predefined and required ++# on some systems where configure will not decide to define it. ++cat >> conftest.vals <<\EOF ++s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% ++EOF ++ ++# Break up conftest.vals because some shells have a limit on ++# the size of here documents, and old seds have small limits too. ++ ++rm -f conftest.tail ++while : ++do ++ ac_lines=`grep -c . conftest.vals` ++ # grep -c gives empty output for an empty file on some AIX systems. ++ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi ++ # Write a limited-size here document to conftest.frag. ++ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS ++ echo 'CEOF ++ sed -f conftest.frag conftest.in > conftest.out ++ rm -f conftest.in ++ mv conftest.out conftest.in ++' >> $CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail ++ rm -f conftest.vals ++ mv conftest.tail conftest.vals ++done ++rm -f conftest.vals ++ ++cat >> $CONFIG_STATUS <<\EOF ++ rm -f conftest.frag conftest.h ++ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h ++ cat conftest.in >> conftest.h ++ rm -f conftest.in ++ if cmp -s $ac_file conftest.h 2>/dev/null; then ++ echo "$ac_file is unchanged" ++ rm -f conftest.h ++ else ++ # Remove last slash and all that follows it. Not all systems have dirname. ++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` ++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ++ # The file is in a subdirectory. ++ test ! -d "$ac_dir" && mkdir "$ac_dir" ++ fi ++ rm -f $ac_file ++ mv conftest.h $ac_file ++ fi ++fi; done ++ ++EOF ++cat >> $CONFIG_STATUS <<EOF ++ ++ ++ srcdir=$srcdir ++ ac_cv_func_bzero=$ac_cv_func_bzero ++ ac_cv_func_memset=$ac_cv_func_memset ++ ac_cv_func_strchr=$ac_cv_func_strchr ++ ac_cv_func_strrchr=$ac_cv_func_strrchr ++# @end 5 ++ ac_cv_func_basename=$ac_cv_func_basename ++ ac_cv_func_strcspn=$ac_cv_func_strcspn ++ ac_cv_func_strerror=$ac_cv_func_strerror ++ ac_cv_func_strsignal=$ac_cv_func_strsignal ++ ac_cv_func_strspn=$ac_cv_func_strspn ++ ac_cv_func_vfprintf=$ac_cv_func_vfprintf ++ ac_cv_func_waitpid=$ac_cv_func_waitpid ++ ac_cv_header_assert_h=$ac_cv_header_assert_h ++ ac_cv_header_errno_h=$ac_cv_header_errno_h ++ ac_cv_header_stdlib_h=$ac_cv_header_stdlib_h ++ ac_cv_header_stdarg_h=$ac_cv_header_stdarg_h ++ ac_cv_header_string_h=$ac_cv_header_string_h ++ ac_cv_header_strings_h=$ac_cv_header_strings_h ++ ac_cv_header_sys_wait_h=$ac_cv_header_sys_wait_h ++ ac_cv_header_unistd_h=$ac_cv_header_unistd_h ++ ac_cv_header_varargs_h=$ac_cv_header_varargs_h ++ LPRCOMMAND=$LPRCOMMAND ++ CATCOMMAND=$CATCOMMAND ++ host=$host ++# @start 5 ++ ++ ++EOF ++cat >> $CONFIG_STATUS <<\EOF ++test -z "$CONFIG_HEADERS" || echo timestamp > metamail/stamp-h ++ ++ if test -n "$CONFIG_FILES" && test -n "$CONFIG_HEADERS"; then ++ # If both these vars are non-empty, then config.status wasn't run by ++ # automake rules (which always set one or the other to empty). ++ CONFIG_OTHER=${CONFIG_OTHER-METAMAIL/common.h} ++ fi ++ case "$CONFIG_OTHER" in ++ *metamail/common.h*) ++ outfile=metamail/common.h ++ stampfile=metamail/stamp-common ++ tmpfile=${outfile}T ++ dirname="sed s,^.*/,,g" ++ ++ echo creating $outfile ++ cat > $tmpfile << _EOF_ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and `echo $outfile|$dirname`.in ++ * on host: `(hostname || uname -n) 2>/dev/null | sed 1q` ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include <stdio.h> ++#include <ctype.h> // ??? ok here ++#include <sys/types.h> ++#include <sys/stat.h> // ??? ok here ++ ++// ??? following ok here without check? ++#include <pwd.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <signal.h> ++ ++#include <termio.h> ++#include <fcntl.h> ++#include <sys/utsname.h> ++_EOF_ ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++ ++#include <linux/limits.h> ++ ++_EOF_ ++;; ++ esac ++ ++# @end 5 ++# @start 4 ++ # Add the code to include these headers only if autoconf has ++ # shown them to be present. ++ if test x$ac_cv_header_stdlib_h = xyes; then ++ echo '#include <stdlib.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_unistd_h = xyes; then ++ echo '#include <unistd.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_sys_wait_h = xyes; then ++ echo '#include <sys/wait.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_errno_h = xyes; then ++ echo '#include <errno.h>' >> $tmpfile ++ fi ++ cat >> $tmpfile << '_EOF_' ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++_EOF_ ++ if test x$ac_cv_header_string_h = xyes; then ++ echo '#include <string.h>' >> $tmpfile ++ elif test x$ac_cv_header_strings_h = xyes; then ++ echo '#include <strings.h>' >> $tmpfile ++ fi ++ ++# ******************* ++# start variadic parameters ++# ++ if test x$ac_cv_header_stdarg_h = xyes \ ++ && test x$ac_cv_header_varargs_h != xyes ++ then ++ cat >> $tmpfile << '_EOF_' ++ ++#include <stdarg.h> ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++_EOF_ ++ else ++ cat >> $tmpfile << '_EOF_' ++ ++#include <varargs.h> ++#ifndef VA_START ++# define VA_START(a, f) va_start(a) ++#endif /* VA_START */ ++ ++_EOF_ ++ fi ++# ++# end variadic parameters ++# *********************** ++ ++ if test x$ac_cv_header_assert_h = xyes; then ++ cat >> $tmpfile << '_EOF_' ++ ++#include <assert.h> ++#define METAMAIL_ASSERT assert ++ ++_EOF_ ++else ++ echo '#define METAMAIL_ASSERT(expr) ((void) 0)' >> $tmpfile ++ fi ++# @end 4 ++# @start 5 ++ if test x$ac_cv_func_killpg = xno && \ ++ test x$ac_cv_func_kill = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define killbg(pid, sig) ((int) kill (-(pid), sig)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcopy = xno && \ ++ test x$ac_cv_func_memcpy = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bcopy(src, dest, n) ((void) memcpy (dest, src, n)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bzero = xno && \ ++ test x$ac_cv_func_memset = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bzero(buf, bytes) ((void) memset (buf, 0, bytes)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcmp = xno && \ ++ test x$ac_cv_func_memcmp = xyes; then ++ echo '#define bcmp memcmp' >> $tmpfile ++ fi ++ if test x$ac_cv_func_index = xno && \ ++ test x$ac_cv_func_strchr = xyes; then ++ echo '#define index strchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_rindex = xno && \ ++ test x$ac_cv_func_strrchr = xyes; then ++ echo '#define rindex strrchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_initstate = xno && \ ++ test x$ac_cv_func_srand = xyes; then ++ echo '#define initstate srand' >> $tmpfile ++ fi ++ if test x$ac_cv_func_random = xno && \ ++ test x$ac_cv_func_rand = xyes; then ++ echo '#define random rand' >> $tmpfile ++ fi ++ ++ # The ugly but portable cpp stuff comes from here ++ infile=$srcdir/metamail/`echo $outfile | sed 's,.*/,,g;s,\..*$,,g'`-h.in ++ sed '/^##.*$/d' $infile >> $tmpfile ++ ++# @end 5 ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ if test x$ac_cv_func_basename = xno; then ++ echo 'extern char *basename PARAMS((const char *path));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strerror = xno; then ++ echo 'extern char *strerror PARAMS((int err));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strsignal = xno; then ++ echo 'extern char *strsignal PARAMS((int signo));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_vfprintf = xno; then ++ echo 'extern int vfprintf PARAMS((FILE *file, const char* format, va_list ap));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_waitpid = xno; then ++ echo 'extern pid_t waitpid PARAMS((pid_t pid, int *pstatus, int options));' >> ${tmpfile}2 ++ fi ++ ++ if test -f ${tmpfile}2; then ++ cat >> $tmpfile << '_EOF_' ++ ++BEGIN_C_DECLS ++_EOF_ ++ cat ${tmpfile}2 >> $tmpfile ++ echo 'END_C_DECLS' >> $tmpfile ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ fi ++ ++ if test -n ${LPRCOMMAND}; then ++ echo '#define LPRCOMMAND "'${LPRCOMMAND}'"' >> $tmpfile ++ echo '#define LPRTEMPLATE "'${LPRCOMMAND}' %s"' >> $tmpfile ++ fi ++ if test -n ${CATCOMMAND}; then ++ echo '#define CATCOMMAND "'${CATCOMMAND}'"' >> $tmpfile ++ echo '#define CATTEMPLATE "'${CATCOMMAND}' %s"' >> $tmpfile ++ fi ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ *) cat >> $tmpfile << '_EOF_' ++ ++#define TMPNAME_MAX 1000 ++#define NAME_MAX 1000 ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ esac ++ ++ cat >> $tmpfile << '_EOF_' ++ ++ ++#endif /* !METAMAIL_COMMON_H */ ++_EOF_ ++ ++ if cmp -s $tmpfile $outfile; then ++ echo $outfile is unchanged ++ rm -f $tmpfile ++ else ++ mv $tmpfile $outfile ++ touch $stampfile ++ fi ++ ;; ++ esac ++# @start 5 ++ ++test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h.in ++exit 0 ++EOF ++chmod +x $CONFIG_STATUS ++rm -fr confdefs* $ac_clean_files ++test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 ++ +--- metamail-2.7.orig/configure.in ++++ metamail-2.7/configure.in +@@ -0,0 +1,361 @@ ++dnl Process this file with autoconf to produce a configure script. ++dnl AC_REVISION($Revision: 1.4 $)dnl ++AC_INIT(src/metamail/metamail.c) ++AC_CONFIG_AUX_DIR(config) ++AM_CONFIG_HEADER(metamail/config.h) ++AM_INIT_AUTOMAKE(metamail, 0.0.1) ++AM_MAINTAINER_MODE ++ ++AC_CANONICAL_HOST ++ ++dnl Checks for programs. ++AC_PROG_CC ++AM_PROG_LIBTOOL ++AC_SUBST(LIBTOOL_DEPS) ++ ++AC_CHECK_PROG(LPRCOMMAND, lp, lp) ++AC_CHECK_PROG(LPRCOMMAND, lpr, lpr) ++ ++AC_CHECK_PROG(CATCOMMAND, cat, cat) ++AC_CHECK_PROG(CATCOMMAND, type, type) ++ ++ ++dnl Checks for libraries. ++ ++dnl Checks for header files. ++dnl varargscheck ? ++dnl AC_HEADER_STDC ++AC_CHECK_HEADERS(stdlib.h unistd.h errno.h assert.h) ++AC_CHECK_HEADERS(sys/time.h time.h signal.h) ++AC_CHECK_HEADERS(string.h strings.h, break) ++ ++# @start variadic ++case $am_cv_prog_cc_stdc,$ac_cv_header_varargs_h in ++no,) ++ # Non-ANSI compiler, so we must use varargs.h. ++ AC_CHECK_HEADERS(varargs.h) ++ ;; ++*,yes) ++ # Parent package is using varargs.h which is incompatible with ++ # stdarg.h, so we do the same (recheck to generate checking... ++ # message). ++ AC_CHECK_HEADERS(varargs.h) ++ ;; ++*) ++ # If stdarg.h is present define HAVE_STDARG_H. ++ AC_CHECK_HEADERS(stdarg.h) ++ ;; ++esac ++ ++case x$ac_cv_header_stdarg_h$ac_cv_header_varargs_h in ++x*yes*) ;; ++*) AC_MSG_ERROR(Could not find stdarg.h or varargs.h, one of which is \ ++required for the build process.) ;; ++esac ++# @end variadic ++ ++dnl Checks for typedefs, structures, and compiler characteristics. ++AC_C_CONST ++AC_TYPE_SIZE_T ++AC_HEADER_TIME ++ ++dnl Checks for library functions. ++dnl bzero is ok, ++AC_CHECK_FUNCS(killpg kill) ++AC_CHECK_FUNCS(bcopy memcpy) ++AC_CHECK_FUNCS(bzero memset, break) ++AC_CHECK_FUNCS(bcmp memcmp) ++AC_CHECK_FUNCS(index strchr) ++AC_CHECK_FUNCS(rindex strrchr) ++AC_CHECK_FUNCS(initstate srand) ++AC_CHECK_FUNCS(random rand) ++ ++AC_CHECK_FUNCS(calloc) ++AC_REPLACE_FUNCS(basename strerror vfprintf) ++AC_REPLACE_FUNCS(putenv) ++ ++dnl ***************************************** ++dnl create a metamail common header file, holding all needed definitions ++dnl for copatiblity ++AC_OUTPUT_COMMANDS([ ++ if test -n "$CONFIG_FILES" && test -n "$CONFIG_HEADERS"; then ++ # If both these vars are non-empty, then config.status wasn't run by ++ # automake rules (which always set one or the other to empty). ++ CONFIG_OTHER=${CONFIG_OTHER-METAMAIL/common.h} ++ fi ++ case "$CONFIG_OTHER" in ++ *metamail/common.h*) ++ outfile=metamail/common.h ++ stampfile=metamail/stamp-common ++ tmpfile=${outfile}T ++ dirname="sed s,^.*/,,g" ++ ++ echo creating $outfile ++ cat > $tmpfile << _EOF_ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and `echo $outfile|$dirname`.in ++ * on host: `(hostname || uname -n) 2>/dev/null | sed 1q` ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include <stdio.h> ++#include <ctype.h> // ??? ok here ++#include <sys/types.h> ++#include <sys/stat.h> // ??? ok here ++ ++// ??? following ok here without check? ++#include <pwd.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <signal.h> ++ ++#include <termio.h> ++#include <fcntl.h> ++#include <sys/utsname.h> ++_EOF_ ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++ ++#include <linux/limits.h> ++ ++_EOF_ ++;; ++ esac ++ ++# @end 5 ++# @start 4 ++ # Add the code to include these headers only if autoconf has ++ # shown them to be present. ++ if test x$ac_cv_header_stdlib_h = xyes; then ++ echo '#include <stdlib.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_unistd_h = xyes; then ++ echo '#include <unistd.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_sys_wait_h = xyes; then ++ echo '#include <sys/wait.h>' >> $tmpfile ++ fi ++ if test x$ac_cv_header_errno_h = xyes; then ++ echo '#include <errno.h>' >> $tmpfile ++ fi ++ cat >> $tmpfile << '_EOF_' ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++_EOF_ ++ if test x$ac_cv_header_string_h = xyes; then ++ echo '#include <string.h>' >> $tmpfile ++ elif test x$ac_cv_header_strings_h = xyes; then ++ echo '#include <strings.h>' >> $tmpfile ++ fi ++ ++# ******************* ++# start variadic parameters ++# ++ if test x$ac_cv_header_stdarg_h = xyes \ ++ && test x$ac_cv_header_varargs_h != xyes ++ then ++ cat >> $tmpfile << '_EOF_' ++ ++#include <stdarg.h> ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++_EOF_ ++ else ++ cat >> $tmpfile << '_EOF_' ++ ++#include <varargs.h> ++#ifndef VA_START ++# define VA_START(a, f) va_start(a) ++#endif /* VA_START */ ++ ++_EOF_ ++ fi ++# ++# end variadic parameters ++# *********************** ++ ++ if test x$ac_cv_header_assert_h = xyes; then ++ cat >> $tmpfile << '_EOF_' ++ ++#include <assert.h> ++#define METAMAIL_ASSERT assert ++ ++_EOF_ ++else ++ echo '#define METAMAIL_ASSERT(expr) ((void) 0)' >> $tmpfile ++ fi ++# @end 4 ++# @start 5 ++ if test x$ac_cv_func_killpg = xno && \ ++ test x$ac_cv_func_kill = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define killbg(pid, sig) ((int) kill (-(pid), sig)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcopy = xno && \ ++ test x$ac_cv_func_memcpy = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bcopy(src, dest, n) ((void) memcpy (dest, src, n)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bzero = xno && \ ++ test x$ac_cv_func_memset = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bzero(buf, bytes) ((void) memset (buf, 0, bytes)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcmp = xno && \ ++ test x$ac_cv_func_memcmp = xyes; then ++ echo '#define bcmp memcmp' >> $tmpfile ++ fi ++ if test x$ac_cv_func_index = xno && \ ++ test x$ac_cv_func_strchr = xyes; then ++ echo '#define index strchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_rindex = xno && \ ++ test x$ac_cv_func_strrchr = xyes; then ++ echo '#define rindex strrchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_initstate = xno && \ ++ test x$ac_cv_func_srand = xyes; then ++ echo '#define initstate srand' >> $tmpfile ++ fi ++ if test x$ac_cv_func_random = xno && \ ++ test x$ac_cv_func_rand = xyes; then ++ echo '#define random rand' >> $tmpfile ++ fi ++ ++ # The ugly but portable cpp stuff comes from here ++ infile=$srcdir/metamail/`echo $outfile | sed 's,.*/,,g;s,\..*$,,g'`-h.in ++ sed '/^##.*$/d' $infile >> $tmpfile ++ ++# @end 5 ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ if test x$ac_cv_func_basename = xno; then ++ echo 'extern char *basename PARAMS((const char *path));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strerror = xno; then ++ echo 'extern char *strerror PARAMS((int err));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strsignal = xno; then ++ echo 'extern char *strsignal PARAMS((int signo));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_vfprintf = xno; then ++ echo 'extern int vfprintf PARAMS((FILE *file, const char* format, va_list ap));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_waitpid = xno; then ++ echo 'extern pid_t waitpid PARAMS((pid_t pid, int *pstatus, int options));' >> ${tmpfile}2 ++ fi ++ ++ if test -f ${tmpfile}2; then ++ cat >> $tmpfile << '_EOF_' ++ ++BEGIN_C_DECLS ++_EOF_ ++ cat ${tmpfile}2 >> $tmpfile ++ echo 'END_C_DECLS' >> $tmpfile ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ fi ++ ++ if test -n ${LPRCOMMAND}; then ++ echo '#define LPRCOMMAND "'${LPRCOMMAND}'"' >> $tmpfile ++ echo '#define LPRTEMPLATE "'${LPRCOMMAND}' %s"' >> $tmpfile ++ fi ++ if test -n ${CATCOMMAND}; then ++ echo '#define CATCOMMAND "'${CATCOMMAND}'"' >> $tmpfile ++ echo '#define CATTEMPLATE "'${CATCOMMAND}' %s"' >> $tmpfile ++ fi ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ *) cat >> $tmpfile << '_EOF_' ++ ++#define TMPNAME_MAX 1000 ++#define NAME_MAX 1000 ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ esac ++ ++ cat >> $tmpfile << '_EOF_' ++ ++ ++#endif /* !METAMAIL_COMMON_H */ ++_EOF_ ++ ++ if cmp -s $tmpfile $outfile; then ++ echo $outfile is unchanged ++ rm -f $tmpfile ++ else ++ mv $tmpfile $outfile ++ touch $stampfile ++ fi ++ ;; ++ esac ++# @start 5 ++],[ ++ srcdir=$srcdir ++ ac_cv_func_bzero=$ac_cv_func_bzero ++ ac_cv_func_memset=$ac_cv_func_memset ++ ac_cv_func_strchr=$ac_cv_func_strchr ++ ac_cv_func_strrchr=$ac_cv_func_strrchr ++# @end 5 ++ ac_cv_func_basename=$ac_cv_func_basename ++ ac_cv_func_strcspn=$ac_cv_func_strcspn ++ ac_cv_func_strerror=$ac_cv_func_strerror ++ ac_cv_func_strsignal=$ac_cv_func_strsignal ++ ac_cv_func_strspn=$ac_cv_func_strspn ++ ac_cv_func_vfprintf=$ac_cv_func_vfprintf ++ ac_cv_func_waitpid=$ac_cv_func_waitpid ++ ac_cv_header_assert_h=$ac_cv_header_assert_h ++ ac_cv_header_errno_h=$ac_cv_header_errno_h ++ ac_cv_header_stdlib_h=$ac_cv_header_stdlib_h ++ ac_cv_header_stdarg_h=$ac_cv_header_stdarg_h ++ ac_cv_header_string_h=$ac_cv_header_string_h ++ ac_cv_header_strings_h=$ac_cv_header_strings_h ++ ac_cv_header_sys_wait_h=$ac_cv_header_sys_wait_h ++ ac_cv_header_unistd_h=$ac_cv_header_unistd_h ++ ac_cv_header_varargs_h=$ac_cv_header_varargs_h ++ LPRCOMMAND=$LPRCOMMAND ++ CATCOMMAND=$CATCOMMAND ++ host=$host ++# @start 5 ++]) ++# @end 5 ++# @start 1 ++ ++dnl ***************************************** ++dnl export of variable settings for Makefiles ++ ++dnl for libtool to work LTLIBOJS is needed (currently bug of autoconf) ++Xsed="sed -e s/^X//" ++LTLIBOBJS=`echo X"$LIBOBJS"|[$Xsed -e "s,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,"]` ++AC_SUBST(LTLIBOBJS) ++ ++dnl the aux dir (for holding config & autodenerated stuff) ++AC_SUBST(ac_aux_dir) ++AC_SUBST(LPRCOMMAND) ++AC_SUBST(CATCOMMAND) ++ ++AC_OUTPUT([Makefile replace/Makefile metamail/Makefile src/Makefile \ ++ src/metamail/Makefile src/richmail/Makefile bin/Makefile], ++[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h.in]) +--- metamail-2.7.orig/debian/mimeit.1 ++++ metamail-2.7/debian/mimeit.1 +@@ -0,0 +1,28 @@ ++.TH MIMEIT 1 "1998 March 1st" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++mimeit \- base64-encode stdin and mail it ++.SH SYNOPSIS ++.B mimeit ++.I content-type recipient subject ++.RI [ splitmail-options ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B mimeit ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B mimeit ++base64-encodes the message read from stdin and sends it off ++using ++.BR splitmail (1). ++It will pass all but the first three parameters to \fBsplitmail\fR(1). ++.SH AUTHOR ++.B mimeit ++is part of metamail package. Manual page added by Herbert Xu ++and fixed by Michael Moerz <e9625136@stud3.tuwien.ac.at>. ++.SH SEE ALSO ++.PP ++\fBMIME\fR(1), \fBsplitmail\fR(1), \fBmunpack\fR(1), \fBmetamail\fR(1) +--- metamail-2.7.orig/debian/mime ++++ metamail-2.7/debian/mime +@@ -0,0 +1,7 @@ ++text/plain; shownonascii iso-8859-1 %s; description="Plain ASCII Text"; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++text/richtext; richtext %s; description="Richtext"; copiousoutput; priority=4 ++text/richtext; shownonascii iso-8859-1 -e richtext -p %s; description="Richtext"; copiousoutput; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++text/enriched; richtext -e %s; description="Enriched Text"; copiousoutput; priority=4 ++text/enriched; shownonascii iso-8859-1 -e richtext -e -p %s; description="Enriched Text"; copiousoutput; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++message/partial; showpartial %s %{id} %{number} %{total}; description="An incomplete message" ++message/external-body; showexternal %s %{access-type} %{name} %{site} %{directory} %{mode} %{server}; needsterminal; description="A reference to data stored in an external location"; composetyped="extcompose %s" +--- metamail-2.7.orig/debian/changelog ++++ metamail-2.7/debian/changelog +@@ -0,0 +1,435 @@ ++metamail (2.7-52) unstable; urgency=low ++ ++ * QA Group upload. ++ * Set Standards-Version to 3.7.2. ++ * Set DH_COMPAT to 5. ++ * Fixed "Does not provide filenames for attachments", closes: ++ #321968. Patch by Immanuel Halupczok <debian-bugs@karimmi.de>. ++ * Fixed "dumps core with -w option", closes: #357163. ++ Patch by Justin Pryzby <justinpryzby@users.sourceforge.net>. ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Wed, 19 Jul 2006 12:53:40 +1000 ++ ++metamail (2.7-51) unstable; urgency=high ++ ++ * QA upload. ++ * Fixed "[CVE-2006-0709] crashes with very long boundaries in ++ messages", closes: #352482, #353539. Patch thanks to ++ Ulf Harnhammar <metaur@telia.com>. ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Thu, 23 Feb 2006 09:17:36 +1100 ++ ++metamail (2.7-50) unstable; urgency=low ++ ++ * QA upload. ++ * Automatically update config.sub and config.guess from autotools-dev. ++ Closes: #338566. ++ * man/metamail.1: Fix search path formatting. ++ ++ -- Matej Vela <vela@debian.org> Fri, 11 Nov 2005 07:42:03 +0100 ++ ++metamail (2.7-49) unstable; urgency=low ++ ++ * QA upload. ++ * bin/uuenpipe, bin/uudepipe: Properly handle unreadable files, ++ filenames beginning with "-", and filenames containing whitespace. ++ (These scripts were not meant to take options.) Closes: #273195. ++ * src/metamail/mailto.c (GetLineMalloced): Fix segfault caused by ++ freeing static storage. Closes: #300756. ++ * man/metamail.1: Document the -E option. Closes: #177823. ++ * man/richtext.1: Document the -e option. Closes: #296120. ++ * Conforms to Standards version 3.6.2. ++ ++ -- Matej Vela <vela@debian.org> Fri, 19 Aug 2005 11:25:02 +0200 ++ ++metamail (2.7-48) unstable; urgency=low ++ ++ * QA Group upload by Javier Fernandez-Sanguino ++ * Fix typos in manpages with patches provided by A Costa (Closes: #311450, ++ #311451, #311452, #311453) ++ * Fix use of temporary files in showpartial so that uses cannot introduce ++ a DOS through the use of hard links. Temporary files are created with ++ mktemp and their filename is stored in ~/.metamail_treeroot (Closes: ++ #321473) ++ ++ -- Javier Fernandez-Sanguino Pen~a <jfs@computer.org> Wed, 17 Aug 2005 00:17:20 +0200 ++ ++metamail (2.7-47) unstable; urgency=low ++ ++ * QA Group upload by Anibal Monsalve Salazar. ++ * Fixed "Add/Improve SEE ALSO section for splitmail/mimeit" (Closes: ++ #245647). Patch by Helge Kreutzmann <kreutzm@itp.uni-hannover.de>. ++ * Fixed "8-bit encoding is supported by metamail but not by metasend script" ++ (Closes: #285914). Patch by Sergey Kogan <kogan@sklad.bacon.ru>. ++ * Fixed "additional option when handling unrecognized content types" ++ (Closes: #249823). Patch by Daniel Kraft <da_kraft@web.de>. ++ * Fixed "debug message 'pre access' left in released version ++ (Closes: #184410). Patch by <pmaydell@chiark.greenend.org.uk>. ++ ++ -- Anibal Monsalve Salazar <anibal@debian.org> Sun, 13 Feb 2005 10:43:55 +1100 ++ ++metamail (2.7-46) unstable; urgency=low ++ ++ * QA Group upload orphaning this package ++ * Incorporates previous NMUs (closes: #164074, #185005, #233935) ++ * debian/control: make build-dependency on debhelper versioned ++ ++ -- Andrew Pollock <apollock@debian.org> Tue, 9 Nov 2004 22:14:08 +1100 ++ ++metamail (2.7-45.3) unstable; urgency=medium ++ ++ * Non-maintainer upload by the Security Team ++ * Adjust the patch since Christian 'Naddy' Weisgerber discovered an ++ overzealous use of sizeof(). ++ ++ -- Martin Schulze <joey@infodrom.org> Tue, 2 Mar 2004 20:08:51 +0100 ++ ++metamail (2.7-45.2) unstable; urgency=high ++ ++ * NMU ++ * [src/metamail/metamail.c, src/metamail/splitmail.c] Address CAN-2004-0104 ++ and CAN-2004-0105 (format string vulnerabilities and buffer overflows). ++ (Addresses #233640 for sid) ++ * [bin/audiocompose] Quote file reference. ++ * [metamail/splitmail.c] Use /usr/sbin/sendmail rather than ++ /usr/lib/sendmail. ++ ++ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Fri, 20 Feb 2004 21:22:16 +0100 ++ ++metamail (2.7-45.1) unstable; urgency=low ++ ++ * NMU ++ * Fixed FTBFS: (Closes: #164074) ++ * [configure.in] Added AM_MAINTAINER_MODE. ++ * [debian/rules] Introduced "source-updates" target. ++ * [debian/control] Dropped "libtool" and "automake" build dependencies. ++ * Regenerated auto* files. ++ * [bin/audiosend] Fixed shell syntax by adding a 'then'. ++ * [debian/control] Removed full stop from the one line description. ++ ++ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sun, 16 Mar 2003 13:38:42 +0100 ++ ++metamail (2.7-45) unstable; urgency=low ++ ++ * eliminated nasty tmpfile bug that caused removal of temporary files ++ though they were in use by processes that have been backgrounded by ++ metamail. (Closes: #141966) ++ ++ -- Michael Moerz <mikem@debian.org> Mon, 15 Apr 2002 11:07:17 +0200 ++ ++metamail (2.7-44) unstable; urgency=low ++ ++ * renamed mmencode reference from metamail manpage to mimencode ++ (Closes: #137347) ++ * removed mailcap manpage from metamail package so that can go into ++ the mime-support package (Closes: #139989) ++ ++ -- Michael Moerz <mikem@debian.org> Wed, 3 Apr 2002 02:24:53 +0200 ++ ++metamail (2.7-43) unstable; urgency=low ++ ++ * fixed 64bit architecture problems caused by missing prototypes of ++ functions. The actual pactch was developed by ++ John R.Daily" <jdaily@progeny.com> (Closes: #126109) ++ * fixed usage message of mimencode by using a patch supplied by ++ David Fries <dfries@mail.win.org> (Closes: #119075) ++ ++ -- Michael Moerz <mikem@debian.org> Sat, 22 Dec 2001 00:35:19 +0100 ++ ++metamail (2.7-42) unstable; urgency=low ++ ++ * fixed bug that caused mailto to honour newlines incorrectly when ++ mimetypes are asked for and checked. ++ ++ -- Michael Moerz <mikem@debian.org> Mon, 15 Oct 2001 22:11:35 +0200 ++ ++metamail (2.7-41) unstable; urgency=low ++ ++ * fixed a minor bug regarding the man page of metamail saying /usr/ucb/reset ++ and not /usr/bin/reset (Closes: #110889) ++ * fixed broken showpartial (Closes: #107538) ++ ++ -- Michael Moerz <mikem@debian.org> Sat, 1 Sep 2001 20:32:01 +0200 ++ ++metamail (2.7-40) unstable; urgency=low ++ ++ * Removed non functional downwards compatiblity code for older ++ mime-support which called install-mime when the previous metamail ++ version was less than 2-7.34. (Closes: #100993) ++ * hardened dependency to mime-support (version 3.11-1 or higher has ++ to be installed now) ++ ++ -- Michael Moerz <mikem@debian.org> Sat, 16 Jun 2001 13:48:12 +0200 ++ ++metamail (2.7-39) unstable; urgency=low ++ ++ * fixed a bug that created a segfault when saving an attachment. ++ (Closes: #88766) ++ ++ -- Michael Moerz <e9625136@stud3.tuwien.ac.at> Tue, 20 Mar 2001 20:52:20 +0100 ++ ++metamail (2.7-38) unstable; urgency=low ++ ++ * stupid me has again missed a build depends for libncurses-dev. ++ This is fixed now. (Closes: #86559) ++ ++ -- Michael Moerz <e9625136@stud3.tuwien.ac.at> Sun, 25 Feb 2001 17:05:45 +0100 ++ ++metamail (2.7-37) unstable; urgency=low ++ ++ * Fixed broken build caused by not using a shell for interpreting ++ the bootstrap script (Closes: #85764). ++ * changed rules file so that not only the existence of Makefile ++ is checked, but of Makefile.in too and the decision is made ++ to use make clean or make destclean (Makefile.in present). ++ * fixed build depends to enlist libtool & automake too. ++ (Closes: #86128) ++ * fixed disappearing of mimencode (Closes: #86083) ++ ++ -- Michael Moerz <e9625136@stud3.tuwien.ac.at> Tue, 13 Feb 2001 14:08:20 +0100 ++ ++metamail (2.7-36) unstable; urgency=low ++ ++ * Fixed broken showpartial where a variable was not set correctly ++ (nullified) and that caused that showpartial didn't work. ++ (Closes: #58614) ++ * Fixed mimeit manpage refering to mm package instead of metamail ++ (Closes: #63033) ++ * added a README.Debian pointing out the debian specific ++ modifications to the package ++ * Fixed the leaving tmp-files behind bug. So now metamail removes ++ all files it generates in /tmp before it terminates. ++ (Closes: #39011) ++ * DH_COMPAT=2 is now in place and functional ++ * converted build-process and .c and .h files to use autoconf and ++ automake. (Now the package will build under woody again.) ++ ++ -- Michael Moerz <e9625136@stud3.tuwien.ac.at> Thu, 18 Jan 2001 04:26:05 +0100 ++ ++metamail (2.7-35) unstable; urgency=low ++ ++ * Fixed a typo in metasend that resulted in Content-Description ++ being blank when -n wasn't set. (Closes: #70761) ++ ++ -- Teemu Hukkanen <tjhukkan@iki.fi> Sun, 10 Sep 2000 21:58:00 +0300 ++ ++metamail (2.7-34) frozen unstable; urgency=low ++ ++ * The install-all target tried to strip shell scripts, plus several ++ additional flaws, which prevented building, closes: #55260. ++ * Updated for newer mime-support, closes: #47097. Downgraded ++ mime-support dependency to a recommendation, and removed useless ++ version (as the new scheme is used, and 2.02-1 is too old for it). ++ * Updated for Policy 3.1.1. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Tue, 8 Feb 2000 21:15:19 +0100 ++ ++metamail (2.7-33) unstable; urgency=low ++ ++ * Orphaning metamail. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 20 Nov 1999 20:33:36 -0600 ++ ++metamail (2.7-32) unstable; urgency=low ++ ++ * Fixed postinst script where it didn't add mailcap entries for an initial ++ install. ++ * Don't warn about wild cards in mailcap (fixes #30910). ++ * Use $() instead of `` for command substitution (fixes #33487). ++ Note that metamail does %{} substitutions with the correct quoting. ++ Indeed, it filters out characters like ` so there is no problem even if ++ this fix were not there. But other applications that currently do not do ++ the required quoting should do so. ++ Also, all packages that add entries to mailcap should check their entries ++ and replace all `` with % substitutions inside with $() so as to avoid ++ the obscure shell rule that `` is terminated by a un-backslashed back- ++ quote. Indeed, if this back-quote occurs within single or double quotes, ++ the result is undefined. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 14 Mar 1999 12:58:05 +1100 ++ ++metamail (2.7-31) frozen unstable; urgency=low ++ ++ * Uploaded to slink. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 15 Nov 1998 15:11:52 +1100 ++ ++metamail (2.7-30) unstable; urgency=low ++ ++ * Use lpr instead of lp for linux (fixes #27259). ++ * Removed all traces of mmencode (fixes #28746). ++ * Rebuilt with libncruses4. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 31 Oct 1998 15:16:13 +1100 ++ ++metamail (2.7-29) unstable; urgency=medium ++ ++ * Applied security patch from Topi Miettinen (fixes #26877). ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 22 Sep 1998 14:29:27 +1000 ++ ++metamail (2.7-28) frozen unstable; urgency=high ++ ++ * Fixed showpartial (fixes #23595). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 18 Jun 1998 09:41:50 +1000 ++ ++metamail (2.7-27) unstable; urgency=low ++ ++ * Fixed shownonascii (fixes #19862). ++ * Manually add mimencode.1. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 18 Mar 1998 21:06:39 +1100 ++ ++metamail (2.7-26) unstable; urgency=low ++ ++ * Added -e to all shell scripts (fixes #19802). ++ * Removed #!/bin/sh header from mime.noinstall. ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 17 Mar 1998 21:22:25 +1100 ++ ++metamail (2.7-25) unstable; urgency=low ++ ++ * Use sensible-pager instead of pager. ++ * Upgraded to Standard Version 2.4.0.0. ++ * Removed ++ . mailserver ++ . mailto-hebrew ++ . rcvAppSingle ++ . richtoatk ++ . sndAppSingle ++ . sun-audio-file ++ . sun-message ++ . sun-to-mime ++ . sun2mime ++ as they were either not functional or useless and without a manpage. ++ * Added manpages to mimeit, uuencode and uudecode (fixes #6332). ++ * Converted to debhelper. ++ * Moved mailcap from section 4 to section 5. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 2 Mar 1998 15:46:44 +1100 ++ ++metamail (2.7-24) unstable; urgency=high ++ ++ * Use tempfile for temporary files. ++ * Removed sun-message.csh. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 15 Oct 1997 10:29:16 +1000 ++ ++metamail (2.7-23) unstable; urgency=low ++ ++ * Fixed uudepipe (#12371). ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 2 Sep 1997 21:37:01 +1000 ++ ++metamail (2.7-22) unstable; urgency=low ++ ++ * Recompiled with libc6. ++ * Removed recommendation of xv | xloadimage (#9706). ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 21 Jun 1997 16:17:29 +1000 ++ ++metamail (2.7-21) stable frozen unstable; urgency=high ++ ++ * Recompiled with gcc-2.7.2.1-8. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 4 May 1997 23:16:22 +1000 ++ ++metamail (2.7-20) stable frozen unstable; urgency=high ++ ++ * Applyed Olaf Kirch's patch for a possible security hole. ++ * Changed all /usr/lib/sendmail to /usr/sbin/sendmail. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 30 Apr 1997 16:30:51 +1000 ++ ++metamail (2.7-19) unstable; urgency=low ++ ++ * Be smarter about running install-mime when upgrading (#7859). ++ * Changed links to undocumented.7 to undocumented.7.gz. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 10 Mar 1997 19:44:54 +1100 ++ ++metamail (2.7-18) unstable; urgency=low ++ ++ * Substitued which for whence (#7233). ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 11 Feb 1997 17:34:39 +1100 ++ ++metamail (2.7-17) unstable; urgency=low ++ ++ * New maintainer. ++ * Changed all "RM=/bin/rm" to "RM=rm" in Makefiles. ++ * Modified debian/rules and Makefiles to use debstd. ++ * Adding undocumented links. ++ * Adding #!/bin/sh to shell scripts to help identification. ++ * Fixed bug #6104 and removed extraneous blanks in mailcap.4. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 15 Jan 1997 20:45:07 +1100 ++ ++metamail (2.7-16) unstable; urgency=LOW ++ ++ * Fixed postinst (Bug#5606) ++ ++ -- Michael Meskes <meskes@debian.org> Thu, 5 Dec 1996 14:55:23 +0100 ++ ++metamail (2.7-15) frozen unstable; urgency=MEDIUM ++ ++ * sun2mime now calls /usr/bin/nawk (Bug#5488) ++ ++ -- Michael Meskes <meskes@debian.org> Tue, 19 Nov 1996 09:37:17 +0100 ++ ++metamail (2.7-14) frozen unstable; urgency=MEDIUM ++ ++ * Corrected metasend (and other scripts) to not call echo-n (Bug#5397). ++ * remove echo-n from distribution ++ ++ -- Michael Meskes <meskes@debian.org> Wed, 13 Nov 1996 17:25:19 +0100 ++ ++metamail (2.7-13) unstable; urgency=LOW ++ ++ * Cleaned up postinst (Bug#4720). Other install-mime calls are now ++ * installed just as a doc file. ++ ++ -- Michael Meskes <meskes@debian.org> Sat, 12 Oct 1996 15:15:50 +0200 ++ ++metamail (2.7-12) unstable; urgency=LOW ++ ++ * Added 'Recommends: sharutils' (Bug#4616) ++ ++ -- Michael Meskes <meskes@debian.org> Mon, 30 Sep 1996 14:01:30 +0200 ++ ++metamail (2.7-11) unstable; urgency=LOW ++ ++ * Moved Bourne shell scripts into bin directory, so dpkg-source works. ++ * Fixed showpicture to not use a geometry ++ ++ -- Michael Meskes <meskes@debian.org> Sun, 29 Sep 1996 13:52:41 +0200 ++ ++metamail (2.7-10) unstable; urgency=LOW ++ ++ * Fixed that silly naming bug that caused postinst to be installed as ++ * binary in /usr/bin (bug#4425) ++ ++ -- Michael Meskes <meskes@debian.org> Sat, 7 Sep 1996 12:59:13 +0200 ++ ++metamail (2.7-9) unstable; urgency=LOW ++ ++ * Corrected some minor bugs in debian/ directory and adjusted debian/rules ++ * accordingly. Conversion to new packaging scheme is now completed. ++ ++ -- Michael Meskes <meskes@debian.org> Sun, 1 Sep 1996 11:39:03 +0200 ++ ++metamail (2.7-8) unstable; urgency=LOW ++ ++ * Corrected font name in postinst ++ * Corrected rules file to not install /usr/doc/copyright/README ++ ++ -- Michael Meskes <meskes@debian.org> Thu, 29 Aug 1996 17:11:43 +0200 ++ ++metamail (2.7-7) unstable; urgency=LOW ++ ++ * Corrected dependency (Bug#4305) ++ * New packaging scheme ++ ++ -- Michael Meskes <meskes@debian.org> Wed, 28 Aug 1996 14:05:10 +0200 ++ +--- metamail-2.7.orig/debian/control ++++ metamail-2.7/debian/control +@@ -0,0 +1,23 @@ ++Source: metamail ++Section: mail ++Priority: optional ++Maintainer: Debian QA Group <packages@qa.debian.org> ++Build-Depends: debhelper (>= 5), autotools-dev, libncurses-dev ++Standards-Version: 3.7.2 ++ ++Package: metamail ++Section: mail ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Recommends: sharutils, mime-support (>=3.11-1) ++Description: implementation of MIME ++ Metamail is an implementation of Multi-purpose Internet Mail ++ Extensions (MIME), a proposed standard for multimedia electronic ++ mail on the Internet. ++ . ++ Metamail is configurable and extensible via the "mailcap" mechanism ++ described in an informational RFC that is a companion to the MIME ++ document. Metamail can be used to turn virtually any mail reader ++ program into a multimedia mail reader. For information about how ++ to change mail readers so that they can use Metamail, please read ++ the file `/usr/share/doc/metamail/mailers.txt.gz'. +--- metamail-2.7.orig/debian/mimencode.1 ++++ metamail-2.7/debian/mimencode.1 +@@ -0,0 +1,52 @@ ++.TH MIMENCODE 1 "Release 1" "Bellcore Prototype" ++.SH NAME ++mimencode - Translate to and from mail-oriented encoding formats ++.SH SYNOPSIS ++.ta 8n ++\fBmimencode\fP [-u] [-b] [-q] [-p] [file name] [-o outputfile] ++.br ++.SH DESCRIPTION ++The ++.I mimencode ++program simply converts a byte stream into (or out of) one of the standard mail encoding formats defined by MIME, the proposed standard for internet multimedia mail formats. Such an encoding is necessary because binary data cannot be sent through the mail. The encodings understood by mimencode are preferable to the use of the uuencode/uudecode programs, for use in mail, in several respects that were important to the authors of MIME. ++ ++By default, mimencode reads standard input, and sends a "base64" encoded version of the input to standard output. ++ ++The (really not necessary) "-b" option tells mimencode to use the "base64" encoding. ++ ++The "-q" option tells mimencode to use the "quoted-printable" encoding instead of base64. ++ ++The "-u" option tells mimencode to ++.I ++decode ++the standard input rather than encode it. ++ ++The "-p" option tells mimencode to translate decoded CRLF sequences into the local newline convention during decoding and to do the reverse during encoding. This option is only meaningful when -b (base64 encoding) is in effect. ++ ++If a file name argument is given, input is read from that file rather than from standard input. ++ ++The "-o" option, which must be followed by a file name, sends output to the named file rather than to standard output. ++.SH RATIONALE ++.I ++Mimencode ++is intended to be a replacement for ++.I ++uuencode ++for mail and news use. The reason is simple: uuencode doesn't work very well in a number of circumstances and ways. In particular, uuencode uses characters that don't translate well across all mail gateways (particularly ASCII <-> EBCDIC gateways). Also, uuencode is not standard -- there are several variants floating around, encoding and decoding things in different and incompatible ways, with no "standard" on which to base an implementation. Finally, uuencode does not generally work well in a pipe, although some variants have been modified to do so. Mimencode implements the encodings which were defined for MIME as uuencode replacements, and should be considerably more robust for email use. ++.SH SEE ALSO ++metamail(1), mailto(1) ++.SH COPYRIGHT ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++.SH AUTHOR ++Nathaniel S. Borenstein +--- metamail-2.7.orig/debian/rules ++++ metamail-2.7/debian/rules +@@ -0,0 +1,115 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++export DH_VERBOSE=1 ++ ++# the debhelper compatiblity version ++export DH_COMPAT=5 ++ ++export INTERNAL_DESTDIR=debian/tmp ++ ++MAJOR=0 ++MINOR=0.0 ++ ++source-updates: ++ dh_testdir ++ sh bootstrap ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ln -sf /usr/share/misc/config.sub /usr/share/misc/config.guess config ++ chmod +x ./configure ++ ./configure --prefix=/usr ++ $(MAKE) ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ -if test -e Makefile; then \ ++ if test -e Makefile.in; then \ ++ $(MAKE) distclean; \ ++ else \ ++ $(MAKE) clean; \ ++ fi \ ++ fi ++ rm -f config/config.sub config/config.guess ++ dh_clean build-stamp install-stamp mimencode.1 ++ ++install: install-stamp ++install-stamp: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ -$(MAKE) install DESTDIR=`pwd`/$(INTERNAL_DESTDIR) ++ ++ cd $(INTERNAL_DESTDIR)/usr/bin && rm sun-message.csh mailserver \ ++ rcvAppleSingle richtoatk sndAppleSingle sun-audio-file \ ++ sun-message sun-to-mime sun2mime mailto-hebrew ++ ++ touch $@ ++ ++binary-indep: ++# No arch-indep packages to be built here. ++ ++binary-arch: build install metamail ++ ++ ++metamail: build install ++ dh_testdir -pmetamail ++ dh_testroot -pmetamail ++ ++ dh_installdirs -pmetamail ++ dh_movefiles -pmetamail ++ cp man/mmencode.1 debian/mimencode.1 ++ ++ dh_link -pmetamail usr/lib/libmetamail.so.$(MAJOR).$(MINOR) \ ++ usr/lib/libmetamail.so.$(MAJOR) ++ ++ dh_installdocs -pmetamail CREDITS README mailers.txt \ ++ debian/mime.noinstall ++ dh_installchangelogs -pmetamail ++ dh_installmime -pmetamail ++ dh_installmanpages -pmetamail mmencode.1 mailto-hebrew.1 mailcap.4 \ ++ mailcap.5 ++ dh_strip -pmetamail ++ dh_compress -pmetamail ++ dh_fixperms -pmetamail ++ dh_makeshlibs -pmetamail ++ dh_installdeb -pmetamail ++ dh_shlibdeps -pmetamail -l$(shell pwd)/debian/metamail/usr/lib ++ dh_gencontrol -pmetamail -- -isp ++ dh_md5sums -pmetamail ++ dh_builddeb -pmetamail ++ ++#libmetamail0: build install ++# dh_testdir -plibmetamail0 ++# dh_testroot -plibmetamail0 ++ ++# dh_installdirs -plibmetamail0 ++# dh_movefiles -plibmetamail0 ++ ++# dh_link -plibmetamail0 usr/lib/libmetamail.so.$(MAJOR).$(MINOR) \ ++# usr/lib/libmetamail.so.$(MAJOR) ++ ++# dh_installdocs -plibmetamail0 ++# dh_installchangelogs -plibmetamail0 ++# dh_strip -plibmetamail0 ++# dh_compress -plibmetamail0 ++# dh_fixperms -plibmetamail0 ++# dh_installdeb -plibmetamail0 ++# dh_shlibdeps -plibmetamail0 ++# dh_gencontrol -plibmetamail0 ++# dh_makeshlibs -plibmetamail0 -V ++# dh_md5sums -plibmetamail0 ++# dh_builddeb -plibmetamail0 ++ ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary ++ ++ +--- metamail-2.7.orig/debian/metamail.files ++++ metamail-2.7/debian/metamail.files +@@ -0,0 +1,3 @@ ++usr/bin ++usr/lib/libmetamail.so.* ++ +--- metamail-2.7.orig/debian/shlibs.local ++++ metamail-2.7/debian/shlibs.local +@@ -0,0 +1 @@ ++libmetamail 0 +--- metamail-2.7.orig/debian/mime.noinstall ++++ metamail-2.7/debian/mime.noinstall +@@ -0,0 +1,5 @@ ++image/*; showpicture -viewer xv %s; description="All Graphic Images" ++image/*; showpicture -viewer "xloadimage -view -quiet" %s; description="All Graphic Images" ++audio/*; showaudio %s; description="All Audio Subtypes" ++audio/basic; showaudio %s; compose="audiocompose %s"; edit="audiocompose %s"; description="An Audio Fragment" ++audio-file; sun-audio-file %s; description="Sun Audio Message" +--- metamail-2.7.orig/debian/README.Debian ++++ metamail-2.7/debian/README.Debian +@@ -0,0 +1,12 @@ ++This is the Debian GNU/Linux prepackaged version of the metamail package. ++ ++It installs only a basis of the scripts included in the original metamail ++package. Excluded are Apple specifics (rcvAppleSingle, sndAppleSingle), ++sun specifics (sun-message.csh, sun-audio-file, sun-message, sun-to-mime, ++sun2mime), hebrew specifics (mailto-hebrew), mailserver extensions ++(mailserver), binary wrapper extensions for mimeencode (mmencode) and richtoak. ++ ++I had to fix the source by adding a doublinked list that stores all opened ++tmp files. This list is used at before the program terminates so that all ++tmp files get properly removed. ++ +--- metamail-2.7.orig/debian/copyright ++++ metamail-2.7/debian/copyright +@@ -0,0 +1,37 @@ ++This is the Debian GNU/Linux prepackaged version of Metamail. ++ ++This package was put together by Michael Meskes <meskes@debian.org>, ++from sources obtained from: ++ ftp.bellcore.com:/pub/nsb/mm2.7.tar.Z and /pub/nsb/contrib2.7.tar.Z ++ ++This package was then worked on by Herbert Xu <herbert@debian.org>. ++ ++**************************************************************** ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++**************************************************************** ++ ++Most scripts are: ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +--- metamail-2.7.orig/config/depcomp ++++ metamail-2.7/config/depcomp +@@ -0,0 +1,411 @@ ++#! /bin/sh ++ ++# depcomp - compile a program generating dependencies as side-effects ++# Copyright 1999, 2000 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++# 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. ++ ++# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. ++ ++if test -z "$depmode" || test -z "$source" || test -z "$object"; then ++ echo "depcomp: Variables source, object and depmode must be set" 1>&2 ++ exit 1 ++fi ++# `libtool' can also be set to `yes' or `no'. ++ ++depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} ++tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} ++ ++rm -f "$tmpdepfile" ++ ++# Some modes work just like other modes, but use different flags. We ++# parameterize here, but still list the modes in the big case below, ++# to make depend.m4 easier to write. Note that we *cannot* use a case ++# here, because this file can only contain one case statement. ++if test "$depmode" = hp; then ++ # HP compiler uses -M and no extra arg. ++ gccflag=-M ++ depmode=gcc ++fi ++ ++if test "$depmode" = dashXmstdout; then ++ # This is just like dashmstdout with a different argument. ++ dashmflag=-xM ++ depmode=dashmstdout ++fi ++ ++case "$depmode" in ++gcc3) ++## gcc 3 implements dependency tracking that does exactly what ++## we want. Yay! Note: for some reason libtool 1.4 doesn't like ++## it if -MD -MP comes after the -MF stuff. Hmm. ++ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ mv "$tmpdepfile" "$depfile" ++ ;; ++ ++gcc) ++## There are various ways to get dependency output from gcc. Here's ++## why we pick this rather obscure method: ++## - Don't want to use -MD because we'd like the dependencies to end ++## up in a subdir. Having to rename by hand is ugly. ++## (We might end up doing this anyway to support other compilers.) ++## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ++## -MM, not -M (despite what the docs say). ++## - Using -M directly means running the compiler twice (even worse ++## than renaming). ++ if test -z "$gccflag"; then ++ gccflag=-MD, ++ fi ++ "$@" -Wp,"$gccflag$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ++## The second -e expression handles DOS-style file names with drive letters. ++ sed -e 's/^[^:]*: / /' \ ++ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ++## This next piece of magic avoids the `deleted header file' problem. ++## The problem is that when a header file which appears in a .P file ++## is deleted, the dependency causes make to die (because there is ++## typically no way to rebuild the header). We avoid this by adding ++## dummy dependencies for each header file. Too bad gcc doesn't do ++## this for us directly. ++ tr ' ' ' ++' < "$tmpdepfile" | ++## Some versions of gcc put a space before the `:'. On the theory ++## that the space means something, we add a space to the output as ++## well. ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++hp) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++sgi) ++ if test "$libtool" = yes; then ++ "$@" "-Wp,-MDupdate,$tmpdepfile" ++ else ++ "$@" -MDupdate "$tmpdepfile" ++ fi ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ ++ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files ++ echo "$object : \\" > "$depfile" ++ ++ # Clip off the initial element (the dependent). Don't try to be ++ # clever and replace this with sed code, as IRIX sed won't handle ++ # lines with more than a fixed number of characters (4096 in ++ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; ++ # the IRIX cc adds comments like `#:fec' to the end of the ++ # dependency line. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ ++ tr ' ++' ' ' >> $depfile ++ echo >> $depfile ++ ++ # The second pass generates a dummy entry for each header file. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ++ >> $depfile ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++aix) ++ # The C for AIX Compiler uses -M and outputs the dependencies ++ # in a .u file. This file always lives in the current directory. ++ # Also, the AIX compiler puts `$object:' at the start of each line; ++ # $object doesn't have directory information. ++ stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` ++ tmpdepfile="$stripped.u" ++ outname="$stripped.o" ++ if test "$libtool" = yes; then ++ "$@" -Wc,-M ++ else ++ "$@" -M ++ fi ++ ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ ++ if test -f "$tmpdepfile"; then ++ # Each line is of the form `foo.o: dependent.h'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" ++ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++tru64) ++ # The Tru64 AIX compiler uses -MD to generate dependencies as a side ++ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. ++ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put ++ # dependencies in `foo.d' instead, so we check for that too. ++ # Subdirectories are respected. ++ ++ tmpdepfile1="$object.d" ++ tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` ++ if test "$libtool" = yes; then ++ "$@" -Wc,-MD ++ else ++ "$@" -MD ++ fi ++ ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile1" "$tmpdepfile2" ++ exit $stat ++ fi ++ ++ if test -f "$tmpdepfile1"; then ++ tmpdepfile="$tmpdepfile1" ++ else ++ tmpdepfile="$tmpdepfile2" ++ fi ++ if test -f "$tmpdepfile"; then ++ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" ++ # That's a space and a tab in the []. ++ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" ++ else ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++#nosideeffect) ++ # This comment above is used by automake to tell side-effect ++ # dependency tracking mechanisms from slower ones. ++ ++dashmstdout) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ test -z "$dashmflag" && dashmflag=-M ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) # this is libtool, let us make it quiet ++ for arg ++ do # cycle over the arguments ++ case "$arg" in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ tr ' ' ' ++' < "$tmpdepfile" | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++dashXmstdout) ++ # This case only exists to satisfy depend.m4. It is never actually ++ # run, as this mode is specially recognized in the preamble. ++ exit 1 ++ ;; ++ ++makedepend) ++ # X makedepend ++ ( ++ shift ++ cleared=no ++ for arg in "$@"; do ++ case $cleared in no) ++ set ""; shift ++ cleared=yes ++ esac ++ case "$arg" in ++ -D*|-I*) ++ set fnord "$@" "$arg"; shift;; ++ -*) ++ ;; ++ *) ++ set fnord "$@" "$arg"; shift;; ++ esac ++ done ++ obj_suffix="`echo $object | sed 's/^.*\././'`" ++ touch "$tmpdepfile" ++ ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ tail +3 "$tmpdepfile" | tr ' ' ' ++' | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" "$tmpdepfile".bak ++ ;; ++ ++cpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) ++ for arg ++ do # cycle over the arguments ++ case $arg in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" -E | ++ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | ++ sed '$ s: \\$::' > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ cat < "$tmpdepfile" >> "$depfile" ++ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvisualcpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) ++ for arg ++ do # cycle over the arguments ++ case $arg in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" -E | ++ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" ++ echo " " >> "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++none) ++ exec "$@" ++ ;; ++ ++*) ++ echo "Unknown depmode $depmode" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- metamail-2.7.orig/config/ltmain.sh ++++ metamail-2.7/config/ltmain.sh +@@ -0,0 +1,5107 @@ ++# ltmain.sh - Provide generalized library-building support services. ++# NOTE: Changing this file will not affect anything until you rerun configure. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. ++# ++# 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. ++ ++# Check that we have a working $echo. ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell, and then maybe $echo will work. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit 0 ++fi ++ ++# The name of this program. ++progname=`$echo "$0" | ${SED} 's%^.*/%%'` ++modename="$progname" ++ ++# Constants. ++PROGRAM=ltmain.sh ++PACKAGE=libtool ++VERSION=1.4.3 ++TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)" ++ ++default_mode= ++help="Try \`$progname --help' for more information." ++magic="%%%MAGIC variable%%%" ++mkdir="mkdir" ++mv="mv -f" ++rm="rm -f" ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed="${SED}"' -e 1s/^X//' ++sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' ++# test EBCDIC or ASCII ++case `echo A|od -x` in ++ *[Cc]1*) # EBCDIC based system ++ SP2NL="tr '\100' '\n'" ++ NL2SP="tr '\r\n' '\100\100'" ++ ;; ++ *) # Assume ASCII based system ++ SP2NL="tr '\040' '\012'" ++ NL2SP="tr '\015\012' '\040\040'" ++ ;; ++esac ++ ++# NLS nuisances. ++# Only set LANG and LC_ALL to C if already set. ++# These must not be set unconditionally because not all systems understand ++# e.g. LANG=C (notably SCO). ++# We save the old values to restore during execute mode. ++if test "${LC_ALL+set}" = set; then ++ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL ++fi ++if test "${LANG+set}" = set; then ++ save_LANG="$LANG"; LANG=C; export LANG ++fi ++ ++# Make sure IFS has a sensible default ++: ${IFS=" "} ++ ++if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ echo "$modename: not configured to build any kind of library" 1>&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++fi ++ ++# Global variables. ++mode=$default_mode ++nonopt= ++prev= ++prevopt= ++run= ++show="$echo" ++show_help= ++execute_dlfiles= ++lo2o="s/\\.lo\$/.${objext}/" ++o2lo="s/\\.${objext}\$/.lo/" ++ ++# Parse our command line options once, thoroughly. ++while test $# -gt 0 ++do ++ arg="$1" ++ shift ++ ++ case $arg in ++ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ execute_dlfiles) ++ execute_dlfiles="$execute_dlfiles $arg" ++ ;; ++ *) ++ eval "$prev=\$arg" ++ ;; ++ esac ++ ++ prev= ++ prevopt= ++ continue ++ fi ++ ++ # Have we seen a non-optional argument yet? ++ case $arg in ++ --help) ++ show_help=yes ++ ;; ++ ++ --version) ++ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" ++ exit 0 ++ ;; ++ ++ --config) ++ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 ++ exit 0 ++ ;; ++ ++ --debug) ++ echo "$progname: enabling shell trace mode" ++ set -x ++ ;; ++ ++ --dry-run | -n) ++ run=: ++ ;; ++ ++ --features) ++ echo "host: $host" ++ if test "$build_libtool_libs" = yes; then ++ echo "enable shared libraries" ++ else ++ echo "disable shared libraries" ++ fi ++ if test "$build_old_libs" = yes; then ++ echo "enable static libraries" ++ else ++ echo "disable static libraries" ++ fi ++ exit 0 ++ ;; ++ ++ --finish) mode="finish" ;; ++ ++ --mode) prevopt="--mode" prev=mode ;; ++ --mode=*) mode="$optarg" ;; ++ ++ --preserve-dup-deps) duplicate_deps="yes" ;; ++ ++ --quiet | --silent) ++ show=: ++ ;; ++ ++ -dlopen) ++ prevopt="-dlopen" ++ prev=execute_dlfiles ++ ;; ++ ++ -*) ++ $echo "$modename: unrecognized option \`$arg'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ ++ *) ++ nonopt="$arg" ++ break ++ ;; ++ esac ++done ++ ++if test -n "$prevopt"; then ++ $echo "$modename: option \`$prevopt' requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++fi ++ ++# If this variable is set in any of the actions, the command in it ++# will be execed at the end. This prevents here-documents from being ++# left over by shells. ++exec_cmd= ++ ++if test -z "$show_help"; then ++ ++ # Infer the operation mode. ++ if test -z "$mode"; then ++ case $nonopt in ++ *cc | *++ | gcc* | *-gcc* | g++* | xlc*) ++ mode=link ++ for arg ++ do ++ case $arg in ++ -c) ++ mode=compile ++ break ++ ;; ++ esac ++ done ++ ;; ++ *db | *dbx | *strace | *truss) ++ mode=execute ++ ;; ++ *install*|cp|mv) ++ mode=install ++ ;; ++ *rm) ++ mode=uninstall ++ ;; ++ *) ++ # If we have no mode, but dlfiles were specified, then do execute mode. ++ test -n "$execute_dlfiles" && mode=execute ++ ++ # Just use the default operation mode. ++ if test -z "$mode"; then ++ if test -n "$nonopt"; then ++ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 ++ else ++ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 ++ fi ++ fi ++ ;; ++ esac ++ fi ++ ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$execute_dlfiles" && test "$mode" != execute; then ++ $echo "$modename: unrecognized option \`-dlopen'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$modename --help --mode=$mode' for more information." ++ ++ # These modes are in order of execution frequency so that they run quickly. ++ case $mode in ++ # libtool compile mode ++ compile) ++ modename="$modename: compile" ++ # Get the compilation command and the source file. ++ base_compile= ++ prev= ++ lastarg= ++ srcfile="$nonopt" ++ suppress_output= ++ ++ user_target=no ++ for arg ++ do ++ case $prev in ++ "") ;; ++ xcompiler) ++ # Aesthetically quote the previous argument. ++ prev= ++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ ++ case $arg in ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ # Accept any command-line options. ++ case $arg in ++ -o) ++ if test "$user_target" != "no"; then ++ $echo "$modename: you cannot specify \`-o' more than once" 1>&2 ++ exit 1 ++ fi ++ user_target=next ++ ;; ++ ++ -static) ++ build_old_libs=yes ++ continue ++ ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ++ lastarg= ++ save_ifs="$IFS"; IFS=',' ++ for arg in $args; do ++ IFS="$save_ifs" ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ lastarg="$lastarg $arg" ++ done ++ IFS="$save_ifs" ++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ ++ # Add the arguments to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ case $user_target in ++ next) ++ # The next one is the -o target name ++ user_target=yes ++ continue ++ ;; ++ yes) ++ # We got the output file ++ user_target=set ++ libobj="$arg" ++ continue ++ ;; ++ esac ++ ++ # Accept the current argument as the source file. ++ lastarg="$srcfile" ++ srcfile="$arg" ++ ++ # Aesthetically quote the previous argument. ++ ++ # Backslashify any backslashes, double quotes, and dollar signs. ++ # These are the only characters that are still specially ++ # interpreted inside of double-quoted scrings. ++ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $lastarg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ lastarg="\"$lastarg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ done ++ ++ case $user_target in ++ set) ++ ;; ++ no) ++ # Get the name of the library object. ++ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ++ ;; ++ *) ++ $echo "$modename: you must specify a target with \`-o'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Recognize several different file suffixes. ++ # If the user specifies -o file.o, it is replaced with file.lo ++ xform='[cCFSfmso]' ++ case $libobj in ++ *.ada) xform=ada ;; ++ *.adb) xform=adb ;; ++ *.ads) xform=ads ;; ++ *.asm) xform=asm ;; ++ *.c++) xform=c++ ;; ++ *.cc) xform=cc ;; ++ *.cpp) xform=cpp ;; ++ *.cxx) xform=cxx ;; ++ *.f90) xform=f90 ;; ++ *.for) xform=for ;; ++ esac ++ ++ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` ++ ++ case $libobj in ++ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; ++ *) ++ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test -z "$base_compile"; then ++ $echo "$modename: you must specify a compilation command" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Delete any leftover library objects. ++ if test "$build_old_libs" = yes; then ++ removelist="$obj $libobj" ++ else ++ removelist="$libobj" ++ fi ++ ++ $run $rm $removelist ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ pic_mode=default ++ ;; ++ esac ++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ ++ # Calculate the filename of the output object if compiler does ++ # not support -o with -c ++ if test "$compiler_c_o" = no; then ++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ lockfile="$output_obj.lock" ++ removelist="$removelist $output_obj $lockfile" ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ else ++ need_locks=no ++ lockfile= ++ fi ++ ++ # Lock this critical section if it is needed ++ # We use this script file to make the link, it avoids creating a new file ++ if test "$need_locks" = yes; then ++ until $run ln "$0" "$lockfile" 2>/dev/null; do ++ $show "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ elif test "$need_locks" = warn; then ++ if test -f "$lockfile"; then ++ echo "\ ++*** ERROR, $lockfile exists and contains: ++`cat $lockfile 2>/dev/null` ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ echo $srcfile > "$lockfile" ++ fi ++ ++ if test -n "$fix_srcfile_path"; then ++ eval srcfile=\"$fix_srcfile_path\" ++ fi ++ ++ # Only build a PIC object if we are building libtool libraries. ++ if test "$build_libtool_libs" = yes; then ++ # Without this assignment, base_compile gets emptied. ++ fbsd_hideous_sh_bug=$base_compile ++ ++ if test "$pic_mode" != no; then ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ else ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ fi ++ if test "$build_old_libs" = yes; then ++ lo_libobj="$libobj" ++ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$libobj"; then ++ dir="$objdir" ++ else ++ dir="$dir/$objdir" ++ fi ++ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ ++ if test -d "$dir"; then ++ $show "$rm $libobj" ++ $run $rm $libobj ++ else ++ $show "$mkdir $dir" ++ $run $mkdir $dir ++ status=$? ++ if test $status -ne 0 && test ! -d $dir; then ++ exit $status ++ fi ++ fi ++ fi ++ if test "$compiler_o_lo" = yes; then ++ output_obj="$libobj" ++ command="$command -o $output_obj" ++ elif test "$compiler_c_o" = yes; then ++ output_obj="$obj" ++ command="$command -o $output_obj" ++ fi ++ ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ test -n "$output_obj" && $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed, then go on to compile the next one ++ if test x"$output_obj" != x"$libobj"; then ++ $show "$mv $output_obj $libobj" ++ if $run $mv $output_obj $libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # If we have no pic_flag, then copy the object into place and finish. ++ if (test -z "$pic_flag" || test "$pic_mode" != default) && ++ test "$build_old_libs" = yes; then ++ # Rename the .lo from within objdir to obj ++ if test -f $obj; then ++ $show $rm $obj ++ $run $rm $obj ++ fi ++ ++ $show "$mv $libobj $obj" ++ if $run $mv $libobj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` ++ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ # Now arrange that obj and lo_libobj become the same file ++ $show "(cd $xdir && $LN_S $baseobj $libobj)" ++ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi ++ exit 0 ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Allow error messages only from the first compilation. ++ suppress_output=' >/dev/null 2>&1' ++ fi ++ ++ # Only build a position-dependent object if we build old libraries. ++ if test "$build_old_libs" = yes; then ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ else ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ fi ++ if test "$compiler_c_o" = yes; then ++ command="$command -o $obj" ++ output_obj="$obj" ++ fi ++ ++ # Suppress compiler output if we already did a PIC compilation. ++ command="$command$suppress_output" ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed ++ if test x"$output_obj" != x"$obj"; then ++ $show "$mv $output_obj $obj" ++ if $run $mv $output_obj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we do not ++ # accidentally link it into a program. ++ if test "$build_libtool_libs" != yes; then ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > \$libobj" || exit $? ++ else ++ # Move the .lo from within objdir ++ $show "$mv $libobj $lo_libobj" ++ if $run $mv $libobj $lo_libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ fi ++ ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi ++ ++ exit 0 ++ ;; ++ ++ # libtool link mode ++ link | relink) ++ modename="$modename: link" ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # It is impossible to link a dll without this setting, and ++ # we shouldn't force the makefile maintainer to figure out ++ # which system we are compiling for in order to pass an extra ++ # flag for every libtool invokation. ++ # allow_undefined=no ++ ++ # FIXME: Unfortunately, there are problems with the above when trying ++ # to make a dll which has undefined symbols, in which case not ++ # even a static library is built. For now, we need to specify ++ # -no-undefined on the libtool link line when we can be certain ++ # that all symbols are satisfied, otherwise we get a static library. ++ allow_undefined=yes ++ ;; ++ *) ++ allow_undefined=yes ++ ;; ++ esac ++ libtool_args="$nonopt" ++ compile_command="$nonopt" ++ finalize_command="$nonopt" ++ ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ ++ avoid_version=no ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ prefer_static_libs=no ++ preload=no ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -all-static | -static) ++ if test "X$arg" = "X-all-static"; then ++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then ++ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ else ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ fi ++ build_libtool_libs=no ++ build_old_libs=yes ++ prefer_static_libs=yes ++ break ++ ;; ++ esac ++ done ++ ++ # See if our shared archives depend on static archives. ++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ ++ # Go through the arguments, transforming them on the way. ++ while test $# -gt 0; do ++ arg="$1" ++ shift ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ++ ;; ++ *) qarg=$arg ;; ++ esac ++ libtool_args="$libtool_args $qarg" ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ compile_command="$compile_command @OUTPUT@" ++ finalize_command="$finalize_command @OUTPUT@" ++ ;; ++ esac ++ ++ case $prev in ++ dlfiles|dlprefiles) ++ if test "$preload" = no; then ++ # Add the symbol object into the linking commands. ++ compile_command="$compile_command @SYMFILE@" ++ finalize_command="$finalize_command @SYMFILE@" ++ preload=yes ++ fi ++ case $arg in ++ *.la | *.lo) ;; # We handle these cases below. ++ force) ++ if test "$dlself" = no; then ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ self) ++ if test "$prev" = dlprefiles; then ++ dlself=yes ++ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then ++ dlself=yes ++ else ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ *) ++ if test "$prev" = dlfiles; then ++ dlfiles="$dlfiles $arg" ++ else ++ dlprefiles="$dlprefiles $arg" ++ fi ++ prev= ++ continue ++ ;; ++ esac ++ ;; ++ expsyms) ++ export_symbols="$arg" ++ if test ! -f "$arg"; then ++ $echo "$modename: symbol file \`$arg' does not exist" ++ exit 1 ++ fi ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex="$arg" ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; ++ release) ++ release="-$arg" ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ if test "$prev" = rpath; then ++ case "$rpath " in ++ *" $arg "*) ;; ++ *) rpath="$rpath $arg" ;; ++ esac ++ else ++ case "$xrpath " in ++ *" $arg "*) ;; ++ *) xrpath="$xrpath $arg" ;; ++ esac ++ fi ++ prev= ++ continue ++ ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ compile_command="$compile_command $qarg" ++ finalize_command="$finalize_command $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ compile_command="$compile_command $wl$qarg" ++ finalize_command="$finalize_command $wl$qarg" ++ continue ++ ;; ++ *) ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue ++ ;; ++ esac ++ fi # test -n $prev ++ ++ prevarg="$arg" ++ ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ compile_command="$compile_command $link_static_flag" ++ finalize_command="$finalize_command $link_static_flag" ++ fi ++ continue ++ ;; ++ ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 ++ continue ++ ;; ++ ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; ++ ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; ++ ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; ++ ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; ++ ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: more than one -exported-symbols argument is not allowed" ++ exit 1 ++ fi ++ if test "X$arg" = "X-export-symbols"; then ++ prev=expsyms ++ else ++ prev=expsyms_regex ++ fi ++ continue ++ ;; ++ ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | no/*-*-nonstopux*) ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ ;; ++ esac ++ continue ++ ;; ++ ++ -L*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 ++ fi ++ dir="$absdir" ++ ;; ++ esac ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; ++ esac ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$dir";; ++ esac ++ ;; ++ esac ++ continue ++ ;; ++ ++ -l*) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-pw32* | *-*-beos*) ++ # These systems don't actually have a C or math library (as such) ++ continue ++ ;; ++ *-*-mingw* | *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ test "X$arg" = "X-lc" && continue ++ ;; ++ esac ++ elif test "X$arg" = "X-lc_r"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc_r directly, use -pthread flag. ++ continue ++ ;; ++ esac ++ fi ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ ++ -module) ++ module=yes ++ continue ++ ;; ++ ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # in order for the loader to find any dlls it needs. ++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 ++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; ++ ++ -o) prev=output ;; ++ ++ -release) ++ prev=release ++ continue ++ ;; ++ ++ -rpath) ++ prev=rpath ++ continue ++ ;; ++ ++ -R) ++ prev=xrpath ++ continue ++ ;; ++ ++ -R*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ continue ++ ;; ++ ++ -static) ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. ++ continue ++ ;; ++ ++ -thread-safe) ++ thread_safe=yes ++ continue ++ ;; ++ ++ -version-info) ++ prev=vinfo ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Wl,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $wl$flag" ++ linker_flags="$linker_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ ++ # Some other compiler flag. ++ -* | +*) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ ++ *.lo | *.$objext) ++ # A library or standard object. ++ if test "$prev" = dlfiles; then ++ # This file was specified with -dlopen. ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $arg" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` ++ prev= ++ else ++ case $arg in ++ *.lo) libobjs="$libobjs $arg" ;; ++ *) objs="$objs $arg" ;; ++ esac ++ fi ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue ++ ;; ++ ++ *.la) ++ # A libtool-controlled library. ++ ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= ++ else ++ deplibs="$deplibs $arg" ++ fi ++ continue ++ ;; ++ ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ esac # arg ++ ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ done # argument parsing loop ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ ++ # calculate the name of the file, without its directory ++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` ++ libobjs_save="$libobjs" ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" ++ ++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$output_objdir" = "X$output"; then ++ output_objdir="$objdir" ++ else ++ output_objdir="$output_objdir/$objdir" ++ fi ++ # Create the object directory. ++ if test ! -d $output_objdir; then ++ $show "$mkdir $output_objdir" ++ $run $mkdir $output_objdir ++ status=$? ++ if test $status -ne 0 && test ! -d $output_objdir; then ++ exit $status ++ fi ++ fi ++ ++ # Determine the type of output ++ case $output in ++ "") ++ $echo "$modename: you must specify an output file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac ++ ++ specialdeplibs= ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ case $linkmode in ++ lib) ++ passes="conv link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ for pass in $passes; do ++ if test $linkmode = prog; then ++ # Determine which files to process ++ case $pass in ++ dlopen) ++ libs="$dlfiles" ++ save_deplibs="$deplibs" # Collect dlpreopened libraries ++ deplibs= ++ ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -l*) ++ if test $linkmode = oldlib && test $linkmode = obj; then ++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ++ continue ++ fi ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` ++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ ;; # -l ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test $pass = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ ;; ++ prog) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test $pass = scan; then ++ deplibs="$deplib $deplibs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ ;; ++ *) ++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test $pass = link; then ++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ if test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: Trying to link with static lib archive $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not used here." ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the" ++ echo "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; ++ prog) ++ if test $pass != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ if test $found = yes || test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ ++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$ladir" = "X$lib" && ladir="." ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes ++ ++ # Read the .la file ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test $linkmode = oldlib && test $linkmode = obj; }; then ++ # Add dl[pre]opened files of deplib ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi ++ ++ if test $pass = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ elif test $linkmode != prog && test $linkmode != lib; then ++ $echo "$modename: \`$lib' is not a convenience library" 1>&2 ++ exit 1 ++ fi ++ continue ++ fi # $pass = conv ++ ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # This library was specified with -dlopen. ++ if test $pass = dlopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. ++ dlprefiles="$dlprefiles $lib" ++ else ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 ++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ $echo "$modename: warning: library \`$lib' was moved." 1>&2 ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" ++ fi ++ else ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi # $installed = yes ++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ ++ # This library was specified with -dlpreopen. ++ if test $pass = dlpreopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen ++ ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test $linkmode = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" ++ else ++ deplibs="$lib $deplibs" ++ fi ++ continue ++ fi ++ ++ if test $linkmode = prog && test $pass != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test ++ esac ++ # Need to link against all dependency_libs? ++ if test $linkalldeplibs = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ link_static=no # Whether the deplib will be linked statically ++ if test -n "$library_names" && ++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ # Link against this shared library ++ ++ if test "$linkmode,$pass" = "prog,link" || ++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ if test $linkmode = prog; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var"; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath " in ++ *" $dir "*) ;; ++ *" $absdir "*) ;; ++ *) temp_rpath="$temp_rpath $dir" ;; ++ esac ++ fi ++ fi ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ libname=`eval \\$echo \"$libname_spec\"` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin*) ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ soname=`echo $soroot | ${SED} -e 's/^.*\///'` ++ newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ $show "extracting exported symbol list from \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$extract_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ $show "generating import library for \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$old_archive_from_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n $old_archive_from_expsyms_cmds ++ ++ if test $linkmode = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac ++ ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 ++ fi ++ ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test $linkmode = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && \ ++ test "$hardcode_minus_L" != yes && \ ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi ++ ++ if test $linkmode = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ fi ++ ++ if test $linkmode = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test $linkmode = prog; then ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ # Try to link the static library ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ echo ++ echo "*** Warning: This system can not link to static lib archive $lib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ echo "*** But as you try to build a module library, libtool will still create " ++ echo "*** a static module, that should work as long as the dlopening application" ++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ convenience="$convenience $dir/$old_library" ++ old_convenience="$old_convenience $dir/$old_library" ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test $linkmode = lib; then ++ if test -n "$dependency_libs" && ++ { test $hardcode_into_libs != yes || test $build_old_libs = yes || ++ test $link_static = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test $link_all_deplibs != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$deplib" && dir="." ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if grep "^installed=no" $deplib > /dev/null; then ++ path="-L$absdir/$objdir" ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ if test "$absdir" != "$libdir"; then ++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ fi ++ path="-L$absdir" ++ fi ++ ;; ++ *) continue ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$deplibs $path" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test $pass = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done ++ fi ++ if test $pass != dlopen; then ++ test $pass != scan && dependency_libs="$newdependency_libs" ++ if test $pass != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi ++ ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var ++ fi ++ if test "$pass" = "conv" && ++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ++ libs="$deplibs" # reset libs ++ deplibs= ++ fi ++ done # for pass ++ if test $linkmode = prog; then ++ dlfiles="$newdlfiles" ++ dlprefiles="$newdlprefiles" ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 ++ fi ++ ++ # Now set the variables for building old libraries. ++ build_libtool_libs=no ++ oldlibs="$output" ++ objs="$objs$old_deplibs" ++ ;; ++ ++ lib) ++ # Make sure we only generate libraries of the form `libNAME.la'. ++ case $outputname in ++ lib*) ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ if test "$module" = no; then ++ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ if test "$need_lib_prefix" != no; then ++ # Add the "lib" prefix for modules if required ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ eval libname=\"$libname_spec\" ++ else ++ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test "$deplibs_check_method" != pass_all; then ++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ++ exit 1 ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the non-libtool" ++ echo "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi ++ fi ++ ++ if test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 ++ fi ++ ++ set dummy $rpath ++ if test $# -gt 2; then ++ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 ++ fi ++ install_libdir="$2" ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test "$build_libtool_libs" = yes; then ++ # Building a libtool convenience library. ++ libext=al ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 ++ fi ++ else ++ ++ # Parse the version information argument. ++ save_ifs="$IFS"; IFS=':' ++ set dummy $vinfo 0 0 0 ++ IFS="$save_ifs" ++ ++ if test -n "$8"; then ++ $echo "$modename: too many parameters to \`-version-info'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ current="$2" ++ revision="$3" ++ age="$4" ++ ++ # Check that each of the things are valid numbers. ++ case $current in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $revision in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $age in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test $age -gt $current; then ++ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ fi ++ ++ # Calculate the version variables. ++ major= ++ versuffix= ++ verstring= ++ case $version_type in ++ none) ;; ++ ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ minor_current=`expr $current + 1` ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current"; ++ ;; ++ ++ irix | nonstopux) ++ major=`expr $current - $age + 1` ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test $loop != 0; do ++ iface=`expr $revision - $loop` ++ loop=`expr $loop - 1` ++ verstring="$verstring_prefix$major.$iface:$verstring" ++ done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" ++ ;; ++ ++ linux) ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ ;; ++ ++ osf) ++ major=.`expr $current - $age` ++ versuffix=".$current.$age.$revision" ++ verstring="$current.$age.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test $loop != 0; do ++ iface=`expr $current - $loop` ++ loop=`expr $loop - 1` ++ verstring="$verstring:${iface}.0" ++ done ++ ++ # Make executables depend on our current version. ++ verstring="$verstring:${current}.0" ++ ;; ++ ++ sunos) ++ major=".$current" ++ versuffix=".$current.$revision" ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ ++ *) ++ $echo "$modename: unknown library version type \`$version_type'" 1>&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ verstring="0.0" ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring="" ++ ;; ++ *) ++ verstring="0.0" ++ ;; ++ esac ++ if test "$need_version" = no; then ++ versuffix= ++ else ++ versuffix=".0.0" ++ fi ++ fi ++ ++ # Remove version info from name if versioning should be avoided ++ if test "$avoid_version" = yes && test "$need_version" = no; then ++ major= ++ versuffix= ++ verstring="" ++ fi ++ ++ # Check to see if the archive will have undefined symbols. ++ if test "$allow_undefined" = yes; then ++ if test "$allow_undefined_flag" = unsupported; then ++ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 ++ build_libtool_libs=no ++ build_old_libs=yes ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi ++ fi ++ ++ if test "$mode" != relink; then ++ # Remove our outputs. ++ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" ++ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* ++ fi ++ ++ # Now set the variables for building old libraries. ++ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ++ oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ ++ # Transform .lo files to .o files. ++ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ fi ++ ++ # Eliminate all temporary directories. ++ for path in $notinst_path; do ++ lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` ++ deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` ++ done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ ++ if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs -framework System" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test $build_libtool_need_lc = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ ++ # Transform deplibs into only deplibs that can be linked in shared. ++ name_save=$name ++ libname_save=$libname ++ release_save=$release ++ versuffix_save=$versuffix ++ major_save=$major ++ # I'm not sure if I'm treating the release correctly. I think ++ # release should show up in the -l (ie -lgmp5) so we don't want to ++ # add it in twice. Is that correct? ++ release="" ++ versuffix="" ++ major="" ++ newdeplibs= ++ droppeddeps=no ++ case $deplibs_check_method in ++ pass_all) ++ # Don't check for shared/static. Everything works. ++ # This might be a little naive. We might want to check ++ # whether the library exists or not. But this is on ++ # osf3 & osf4 and I'm not really sure... Just ++ # implementing what was already the behaviour. ++ newdeplibs=$deplibs ++ ;; ++ test_compile) ++ # This code stresses the "libraries are programs" paradigm to its ++ # limits. Maybe even breaks it. We compile a program, linking it ++ # against the deplibs as a proxy for the library. Then we can check ++ # whether they linked in statically or dynamically with ldd. ++ $rm conftest.c ++ cat > conftest.c <<EOF ++ int main() { return 0; } ++EOF ++ $rm conftest ++ $CC -o conftest conftest.c $deplibs ++ if test $? -eq 0 ; then ++ ldd_output=`ldd conftest` ++ for i in $deplibs; do ++ name="`expr $i : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ deplib_matches=`eval \\$echo \"$library_names_spec\"` ++ set dummy $deplib_matches ++ deplib_match=$2 ++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ++ newdeplibs="$newdeplibs $i" ++ else ++ droppeddeps=yes ++ echo ++ echo "*** Warning: dynamic linker does not accept needed library $i." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which I believe you do not have" ++ echo "*** because a test_compile did reveal that the linker did not use it for" ++ echo "*** its dynamic dependency list that programs get resolved with at runtime." ++ fi ++ else ++ newdeplibs="$newdeplibs $i" ++ fi ++ done ++ else ++ # Error occured in the first compile. Let's try to salvage ++ # the situation: Compile a separate program for each library. ++ for i in $deplibs; do ++ name="`expr $i : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ $rm conftest ++ $CC -o conftest conftest.c $i ++ # Did it work? ++ if test $? -eq 0 ; then ++ ldd_output=`ldd conftest` ++ libname=`eval \\$echo \"$libname_spec\"` ++ deplib_matches=`eval \\$echo \"$library_names_spec\"` ++ set dummy $deplib_matches ++ deplib_match=$2 ++ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ++ newdeplibs="$newdeplibs $i" ++ else ++ droppeddeps=yes ++ echo ++ echo "*** Warning: dynamic linker does not accept needed library $i." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because a test_compile did reveal that the linker did not use this one" ++ echo "*** as a dynamic dependency that programs can get resolved with at runtime." ++ fi ++ else ++ droppeddeps=yes ++ echo ++ echo "*** Warning! Library $i is needed by this library but I was not able to" ++ echo "*** make it link in! You will probably need to install it or some" ++ echo "*** library that it depends on before this library will be fully" ++ echo "*** functional. Installing it before continuing would be even better." ++ fi ++ else ++ newdeplibs="$newdeplibs $i" ++ fi ++ done ++ fi ++ ;; ++ file_magic*) ++ set dummy $deplibs_check_method ++ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ # Follow soft links. ++ if ls -lLd "$potent_lib" 2>/dev/null \ ++ | grep " -> " >/dev/null; then ++ continue ++ fi ++ # The statement above tries to avoid entering an ++ # endless loop below, in case of cyclic links. ++ # We might still enter an endless loop, since a link ++ # loop can be closed while we follow links, ++ # but so what? ++ potlib="$potent_lib" ++ while test -h "$potlib" 2>/dev/null; do ++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` ++ case $potliblink in ++ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ++ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; ++ esac ++ done ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$file_magic_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method ++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib="$potent_lib" # see symlink-check below in file_magic test ++ if eval echo \"$potent_lib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a regex pattern. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs="" ++ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ ++ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | ++ grep . >/dev/null; then ++ echo ++ if test "X$deplibs_check_method" = "Xnone"; then ++ echo "*** Warning: inter-library dependencies are not supported in this platform." ++ else ++ echo "*** Warning: inter-library dependencies are not known to be supported." ++ fi ++ echo "*** All declared inter-library dependencies are being dropped." ++ droppeddeps=yes ++ fi ++ ;; ++ esac ++ versuffix=$versuffix_save ++ major=$major_save ++ release=$release_save ++ libname=$libname_save ++ name=$name_save ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ ++ if test "$droppeddeps" = yes; then ++ if test "$module" = yes; then ++ echo ++ echo "*** Warning: libtool could not satisfy all declared inter-library" ++ echo "*** dependencies of module $libname. Therefore, libtool will create" ++ echo "*** a static module, that should work as long as the dlopening" ++ echo "*** application is linked with the -dlopen flag." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ else ++ echo "*** The inter-library dependencies that have been dropped here will be" ++ echo "*** automatically added whenever a program is linked with this library" ++ echo "*** or is declared to -dlopen it." ++ ++ if test $allow_undefined = no; then ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ fi ++ fi ++ # Done checking deplibs! ++ deplibs=$newdeplibs ++ fi ++ ++ # All the library-specific variables (install_libdir is set above). ++ library_names= ++ old_library= ++ dlname= ++ ++ # Test again, we may have decided not to build it any more ++ if test "$build_libtool_libs" = yes; then ++ if test $hardcode_into_libs = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ ++ # Get the real and link names of the library. ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ test -z "$dlname" && dlname=$soname ++ ++ lib="$output_objdir/$realname" ++ for link ++ do ++ linknames="$linknames $link" ++ done ++ ++ # Ensure that we have .o objects for linkers which dislike .lo ++ # (e.g. aix) in case we are running --disable-static ++ for obj in $libobjs; do ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ if test ! -f $xdir/$oldobj; then ++ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" ++ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? ++ fi ++ done ++ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then ++ $show "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $run $rm $export_symbols ++ eval cmds=\"$export_symbols_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ if test -n "$export_symbols_regex"; then ++ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" ++ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ $show "$mv \"${export_symbols}T\" \"$export_symbols\"" ++ $run eval '$mv "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ fi ++ ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' ++ fi ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? ++ fi ++ ++ # Do each of the archive commands. ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ eval cmds=\"$archive_expsym_cmds\" ++ else ++ save_deplibs="$deplibs" ++ for conv in $convenience; do ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ if test "$test_deplib" != "$conv"; then ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ fi ++ done ++ deplibs="$tmp_deplibs" ++ done ++ eval cmds=\"$archive_cmds\" ++ deplibs="$save_deplibs" ++ fi ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ++ exit 0 ++ fi ++ ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? ++ fi ++ done ++ ++ # If -module or -export-dynamic was specified, set the dlname. ++ if test "$module" = yes || test "$export_dynamic" = yes; then ++ # On all known operating systems, these are identical. ++ dlname="$soname" ++ fi ++ fi ++ ;; ++ ++ obj) ++ if test -n "$deplibs"; then ++ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 ++ fi ++ ++ case $output in ++ *.lo) ++ if test -n "$objs$old_deplibs"; then ++ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 ++ exit 1 ++ fi ++ libobj="$output" ++ obj=`$echo "X$output" | $Xsed -e "$lo2o"` ++ ;; ++ *) ++ libobj= ++ obj="$output" ++ ;; ++ esac ++ ++ # Delete the old objects. ++ $run $rm $obj $libobj ++ ++ # Objects from convenience libraries. This assumes ++ # single-version convenience libraries. Whenever we create ++ # different ones for PIC/non-PIC, this we'll have to duplicate ++ # the extraction. ++ reload_conv_objs= ++ gentop= ++ # reload_cmds runs $LD directly, so let us get rid of ++ # -Wl from whole_archive_flag_spec ++ wl= ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${obj}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ # Create the old-style object. ++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ ++ output="$obj" ++ eval cmds=\"$reload_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ fi ++ ++ if test "$build_libtool_libs" != yes; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > $libobj" || exit $? ++ exit 0 ++ fi ++ ++ if test -n "$pic_flag" || test "$pic_mode" != default; then ++ # Only do commands if we really have different PIC objects. ++ reload_objs="$libobjs $reload_conv_objs" ++ output="$libobj" ++ eval cmds=\"$reload_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ else ++ # Just create a symlink. ++ $show $rm $libobj ++ $run $rm $libobj ++ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$libobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ $show "(cd $xdir && $LN_S $oldobj $baseobj)" ++ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? ++ fi ++ ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ ;; ++ ++ prog) ++ case $host in ++ *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; ++ esac ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 ++ fi ++ ++ if test "$preload" = yes; then ++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && ++ test "$dlopen_self_static" = unknown; then ++ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." ++ fi ++ fi ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ case $host in ++ *darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac ++ ;; ++ esac ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ ++ if test -n "$rpath$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ for libdir in $rpath $xrpath; do ++ # This is the magic to use -rpath. ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ fi ++ ++ # Now hardcode the library paths ++ rpath= ++ hardcode_libdirs= ++ for libdir in $compile_rpath $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ ;; ++ esac ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ compile_rpath="$rpath" ++ ++ rpath= ++ hardcode_libdirs= ++ for libdir in $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$finalize_perm_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ finalize_rpath="$rpath" ++ ++ if test -n "$libobjs" && test "$build_old_libs" = yes; then ++ # Transform all the library objects into standard objects. ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ fi ++ ++ dlsyms= ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ dlsyms="${outputname}S.c" ++ else ++ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 ++ fi ++ fi ++ ++ if test -n "$dlsyms"; then ++ case $dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist="$output_objdir/${outputname}.nm" ++ ++ $show "$rm $nlist ${nlist}S ${nlist}T" ++ $run $rm "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Parse the name list into a source file. ++ $show "creating $output_objdir/$dlsyms" ++ ++ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ ++/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ ++/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++/* Prevent the only kind of declaration conflicts we can make. */ ++#define lt_preloaded_symbols some_other_symbol ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test "$dlself" = yes; then ++ $show "generating symbol list for \`$output'" ++ ++ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" ++ ++ # Add our own program objects to the symbol list. ++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ for arg in $progfiles; do ++ $show "extracting global C symbols from \`$arg'" ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ if test -n "$export_symbols_regex"; then ++ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols="$output_objdir/$output.exp" ++ $run $rm $export_symbols ++ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ else ++ $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ++ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' ++ $run eval 'mv "$nlist"T "$nlist"' ++ fi ++ fi ++ ++ for arg in $dlprefiles; do ++ $show "extracting global C symbols from \`$arg'" ++ name=`echo "$arg" | ${SED} -e 's%^.*/%%'` ++ $run eval 'echo ": $name " >> "$nlist"' ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -z "$run"; then ++ # Make sure we have at least an empty file. ++ test -f "$nlist" || : > "$nlist" ++ ++ if test -n "$exclude_expsyms"; then ++ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T ++ $mv "$nlist"T "$nlist" ++ fi ++ ++ # Try sorting and uniquifying the output. ++ if grep -v "^: " < "$nlist" | ++ if sort -k 3 </dev/null >/dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then ++ : ++ else ++ grep -v "^: " < "$nlist" > "$nlist"S ++ fi ++ ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' ++ else ++ echo '/* NONE */' >> "$output_objdir/$dlsyms" ++ fi ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ ++#undef lt_preloaded_symbols ++ ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{\ ++" ++ ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ {0, (lt_ptr) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif\ ++" ++ fi ++ ++ pic_flag_for_symtable= ++ case $host in ++ # compiling the symbol table file with pic_flag works around ++ # a FreeBSD bug that causes programs to crash when -lm is ++ # linked before any other PIC object. But we must not use ++ # pic_flag when linking with -static. The problem exists in ++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; ++ esac;; ++ *-*-hpux*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC";; ++ esac ++ esac ++ ++ # Now compile the dynamic symbol file. ++ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" ++ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? ++ ++ # Clean up the generated files. ++ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" ++ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Transform the symbol file into the correct name. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ ;; ++ *) ++ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ else ++ # We keep going just in case the user didn't refer to ++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe ++ # really was required. ++ ++ # Nullify the symbol file. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ fi ++ ++ if test $need_relink = no || test "$build_libtool_libs" != yes; then ++ # Replace the output file specification. ++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command="$compile_command$compile_rpath" ++ ++ # We have no uninstalled library dependencies, so finalize right now. ++ $show "$link_command" ++ $run eval "$link_command" ++ status=$? ++ ++ # Delete the generated files. ++ if test -n "$dlsyms"; then ++ $show "$rm $output_objdir/${outputname}S.${objext}" ++ $run $rm "$output_objdir/${outputname}S.${objext}" ++ fi ++ ++ exit $status ++ fi ++ ++ if test -n "$shlibpath_var"; then ++ # We should set the shlibpath_var ++ rpath= ++ for dir in $temp_rpath; do ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ++ # Absolute path. ++ rpath="$rpath$dir:" ++ ;; ++ *) ++ # Relative path: add a thisdir entry. ++ rpath="$rpath\$thisdir/$dir:" ++ ;; ++ esac ++ done ++ temp_rpath="$rpath" ++ fi ++ ++ if test -n "$compile_shlibpath$finalize_shlibpath"; then ++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" ++ fi ++ if test -n "$finalize_shlibpath"; then ++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" ++ fi ++ ++ compile_var= ++ finalize_var= ++ if test -n "$runpath_var"; then ++ if test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ if test -n "$finalize_perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $finalize_perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ fi ++ ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $run $rm $output ++ # Link the executable and exit ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ exit 0 ++ fi ++ ++ if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ ++ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 ++ $echo "$modename: \`$output' will be relinked during installation" 1>&2 ++ else ++ if test "$fast_install" != no; then ++ link_command="$finalize_var$compile_command$finalize_rpath" ++ if test "$fast_install" = yes; then ++ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ else ++ # fast_install is set to needless ++ relink_command= ++ fi ++ else ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ fi ++ fi ++ ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ ++ # Delete the old output files. ++ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ ++ # Now create the wrapper script. ++ $show "creating $output" ++ ++ # Quote the relink command for shipping. ++ if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Quote $echo for shipping. ++ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then ++ case $0 in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$0 --fallback-echo";; ++ esac ++ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` ++ else ++ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Only actually do things if our run command is non-null. ++ if test -z "$run"; then ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) exeext=.exe ;; ++ *) exeext= ;; ++ esac ++ $rm $output ++ trap "$rm $output; exit 1" 1 2 15 ++ ++ $echo > $output "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# The $output program cannot be directly executed until all the libtool ++# libraries that it depends on are installed. ++# ++# This wrapper script should never be moved out of the build directory. ++# If it is, it will not operate correctly. ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed="${SED}"' -e 1s/^X//' ++sed_quote_subst='$sed_quote_subst' ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variable: ++ notinst_deplibs='$notinst_deplibs' ++else ++ # When we are sourced in execute mode, \$file and \$echo are already set. ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ echo=\"$qecho\" ++ file=\"\$0\" ++ # Make sure echo works. ++ if test \"X\$1\" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then ++ # Yippee, \$echo works! ++ : ++ else ++ # Restart under the correct shell, and then maybe \$echo will work. ++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ fi ++ fi\ ++" ++ $echo >> $output "\ ++ ++ # Find the directory that this script lives in. ++ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ ++ # Follow symbolic links until we get to the real thisdir. ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` ++ while test -n \"\$file\"; do ++ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ ++ # If there was a directory component, then change thisdir. ++ if test \"x\$destdir\" != \"x\$file\"; then ++ case \"\$destdir\" in ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; ++ *) thisdir=\"\$thisdir/\$destdir\" ;; ++ esac ++ fi ++ ++ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ done ++ ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" ++ ++ if test "$fast_install" = yes; then ++ echo >> $output "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" ++ ++ if test ! -f \"\$progdir/\$program\" || \\ ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ ++ file=\"\$\$-\$program\" ++ ++ if test ! -d \"\$progdir\"; then ++ $mkdir \"\$progdir\" ++ else ++ $rm \"\$progdir/\$file\" ++ fi" ++ ++ echo >> $output "\ ++ ++ # relink executable if necessary ++ if test -n \"\$relink_command\"; then ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : ++ else ++ $echo \"\$relink_command_output\" >&2 ++ $rm \"\$progdir/\$file\" ++ exit 1 ++ fi ++ fi ++ ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || ++ { $rm \"\$progdir/\$program\"; ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } ++ $rm \"\$progdir/\$file\" ++ fi" ++ else ++ echo >> $output "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" ++ fi ++ ++ echo >> $output "\ ++ ++ if test -f \"\$progdir/\$program\"; then" ++ ++ # Export our shlibpath_var if we have one. ++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $echo >> $output "\ ++ # Add our own library path to $shlibpath_var ++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" ++ ++ # Some systems cannot cope with colon-terminated $shlibpath_var ++ # The second colon is a workaround for a bug in BeOS R4 ${SED} ++ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ ++ export $shlibpath_var ++" ++ fi ++ ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $echo >> $output "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ ++ $echo >> $output "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++" ++ case $host in ++ # win32 systems need to use the prog path for dll ++ # lookup to work ++ *-*-cygwin* | *-*-pw32*) ++ $echo >> $output "\ ++ exec \$progdir/\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2*) ++ $echo >> $output "\ ++ exec \$progdir\\\\\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $echo >> $output "\ ++ # Export the path to the program. ++ PATH=\"\$progdir:\$PATH\" ++ export PATH ++ ++ exec \$program \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $echo >> $output "\ ++ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ++ exit 1 ++ fi ++ else ++ # The program doesn't exist. ++ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 ++ \$echo \"This script is just a wrapper for \$program.\" 1>&2 ++ echo \"See the $PACKAGE documentation for more information.\" 1>&2 ++ exit 1 ++ fi ++fi\ ++" ++ chmod +x $output ++ fi ++ exit 0 ++ ;; ++ esac ++ ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do ++ ++ if test "$build_libtool_libs" = convenience; then ++ oldobjs="$libobjs_save" ++ addlibs="$convenience" ++ build_libtool_libs=no ++ else ++ if test "$build_libtool_libs" = module; then ++ oldobjs="$libobjs_save" ++ build_libtool_libs=no ++ else ++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` ++ fi ++ addlibs="$old_convenience" ++ fi ++ ++ if test -n "$addlibs"; then ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ # Add in members from convenience archives. ++ for xlib in $addlibs; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ++ eval cmds=\"$old_archive_from_new_cmds\" ++ else ++ # Ensure that we have .o objects in place in case we decided ++ # not to build a shared library, and have fallen back to building ++ # static libs even though --disable-static was passed! ++ for oldobj in $oldobjs; do ++ if test ! -f $oldobj; then ++ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$oldobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` ++ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ $show "(cd $xdir && ${LN_S} $obj $baseobj)" ++ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? ++ fi ++ done ++ ++ eval cmds=\"$old_archive_cmds\" ++ fi ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$generated"; then ++ $show "${rm}r$generated" ++ $run ${rm}r$generated ++ fi ++ ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test "$build_old_libs" = yes && old_library="$libname.$libext" ++ $show "creating $output" ++ ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ ++ # Only create the output if not a dry run. ++ if test -z "$run"; then ++ for installed in no yes; do ++ if test "$installed" = yes; then ++ if test -z "$install_libdir"; then ++ break ++ fi ++ output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ for lib in $dlfiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlfiles="$newdlfiles $libdir/$name" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ done ++ dlprefiles="$newdlprefiles" ++ fi ++ $rm $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac ++ $echo > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='$tdlname' ++ ++# Names of this library. ++library_names='$library_names' ++ ++# The name of the static archive. ++old_library='$old_library' ++ ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' ++ ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision ++ ++# Is this an already installed library? ++installed=$installed ++ ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ ++# Directory that this library needs to be installed in: ++libdir='$install_libdir'" ++ if test "$installed" = no && test $need_relink = yes; then ++ $echo >> $output "\ ++relink_command=\"$relink_command\"" ++ fi ++ done ++ fi ++ ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" ++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ++ ;; ++ esac ++ exit 0 ++ ;; ++ ++ # libtool install mode ++ install) ++ modename="$modename: install" ++ ++ # There may be an optional sh(1) argument at the beginning of ++ # install_prog (especially on Windows NT). ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then ++ # Aesthetically quote it. ++ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$arg " ++ arg="$1" ++ shift ++ else ++ install_prog= ++ arg="$nonopt" ++ fi ++ ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog$arg" ++ ++ # We need to accept at least all the BSD install flags. ++ dest= ++ files= ++ opts= ++ prev= ++ install_type= ++ isdir=no ++ stripme= ++ for arg ++ do ++ if test -n "$dest"; then ++ files="$files $dest" ++ dest="$arg" ++ continue ++ fi ++ ++ case $arg in ++ -d) isdir=yes ;; ++ -f) prev="-f" ;; ++ -g) prev="-g" ;; ++ -m) prev="-m" ;; ++ -o) prev="-o" ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ;; ++ ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then ++ prev= ++ else ++ dest="$arg" ++ continue ++ fi ++ ;; ++ esac ++ ++ # Aesthetically quote the argument. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog $arg" ++ done ++ ++ if test -z "$install_prog"; then ++ $echo "$modename: you must specify an install program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prev' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ $echo "$modename: no file or destination specified" 1>&2 ++ else ++ $echo "$modename: you must specify a destination" 1>&2 ++ fi ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Strip any trailing slash from the destination. ++ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` ++ ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=yes ++ if test "$isdir" = yes; then ++ destdir="$dest" ++ destname= ++ else ++ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$destdir" = "X$dest" && destdir=. ++ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` ++ ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files ++ if test $# -gt 2; then ++ $echo "$modename: \`$dest' is not a directory" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ fi ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do ++ ++ # Do each installation. ++ case $file in ++ *.$libext) ++ # Do the static libraries later. ++ staticlibs="$staticlibs $file" ++ ;; ++ ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ library_names= ++ old_library= ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; ++ esac ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; ++ esac ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ ++ test "X$dir" = "X$file/" && dir= ++ dir="$dir$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ ++ $echo "$modename: warning: relinking \`$file'" 1>&2 ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ exit 1 ++ fi ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names ++ if test -n "$2"; then ++ realname="$2" ++ shift ++ shift ++ ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ ++ # Install the shared library and build the symlinks. ++ $show "$install_prog $dir/$srcname $destdir/$realname" ++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$striplib $destdir/$realname" ++ $run eval "$striplib $destdir/$realname" || exit $? ++ fi ++ ++ if test $# -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ for linkname ++ do ++ if test "$linkname" != "$realname"; then ++ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ fi ++ done ++ fi ++ ++ # Do each command in the postinstall commands. ++ lib="$destdir/$realname" ++ eval cmds=\"$postinstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Install the pseudo-library for information purposes. ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ instname="$dir/$name"i ++ $show "$install_prog $instname $destdir/$name" ++ $run eval "$install_prog $instname $destdir/$name" || exit $? ++ ++ # Maybe install the static library, too. ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ ;; ++ ++ *.lo) ++ # Install (i.e. copy) a libtool object. ++ ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ++ ;; ++ *.$objext) ++ staticdest="$destfile" ++ destfile= ++ ;; ++ *) ++ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Install the libtool object if requested. ++ if test -n "$destfile"; then ++ $show "$install_prog $file $destfile" ++ $run eval "$install_prog $file $destfile" || exit $? ++ fi ++ ++ # Install the old object if enabled. ++ if test "$build_old_libs" = yes; then ++ # Deduce the name of the old-style object file. ++ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` ++ ++ $show "$install_prog $staticobj $staticdest" ++ $run eval "$install_prog \$staticobj \$staticdest" || exit $? ++ fi ++ exit 0 ++ ;; ++ ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Do a test to see if this is really a libtool program. ++ case $host in ++ *cygwin*|*mingw*) ++ wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then ++ notinst_deplibs= ++ relink_command= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ ++ # Check the variables that should have been set. ++ if test -z "$notinst_deplibs"; then ++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 ++ exit 1 ++ fi ++ ++ finalize=yes ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ # If there is no directory component, then add one. ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ fi ++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 ++ finalize=no ++ fi ++ done ++ ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ ++ outputname= ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$finalize" = yes && test -z "$run"; then ++ tmpdir="/tmp" ++ test -n "$TMPDIR" && tmpdir="$TMPDIR" ++ tmpdir="$tmpdir/libtool-$$" ++ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : ++ else ++ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 ++ continue ++ fi ++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ outputname="$tmpdir/$file" ++ # Replace the output file specification. ++ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ ${rm}r "$tmpdir" ++ continue ++ fi ++ file="$outputname" ++ else ++ $echo "$modename: warning: cannot relink \`$file'" 1>&2 ++ fi ++ else ++ # Install the binary that we compiled earlier. ++ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyways ++ case $install_prog,$host in ++ /usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ++ ;; ++ esac ++ ;; ++ esac ++ $show "$install_prog$stripme $file $destfile" ++ $run eval "$install_prog\$stripme \$file \$destfile" || exit $? ++ test -n "$outputname" && ${rm}r "$tmpdir" ++ ;; ++ esac ++ done ++ ++ for file in $staticlibs; do ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ ++ # Set up the ranlib parameters. ++ oldlib="$destdir/$name" ++ ++ $show "$install_prog $file $oldlib" ++ $run eval "$install_prog \$file \$oldlib" || exit $? ++ ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$old_striplib $oldlib" ++ $run eval "$old_striplib $oldlib" || exit $? ++ fi ++ ++ # Do each command in the postinstall commands. ++ eval cmds=\"$old_postinstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$future_libdirs"; then ++ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 ++ fi ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ test -n "$run" && current_libdirs=" -n$current_libdirs" ++ exec_cmd='$SHELL $0 --finish$current_libdirs' ++ else ++ exit 0 ++ fi ++ ;; ++ ++ # libtool finish mode ++ finish) ++ modename="$modename: finish" ++ libdirs="$nonopt" ++ admincmds= ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done ++ ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ eval cmds=\"$finish_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || admincmds="$admincmds ++ $cmd" ++ done ++ IFS="$save_ifs" ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $run eval "$cmds" || admincmds="$admincmds ++ $cmds" ++ fi ++ done ++ fi ++ ++ # Exit here if they wanted silent mode. ++ test "$show" = ":" && exit 0 ++ ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ echo " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the \`$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ echo " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ echo " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ echo ++ echo "See any operating system documentation about shared libraries for" ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ echo "----------------------------------------------------------------------" ++ exit 0 ++ ;; ++ ++ # libtool execute mode ++ execute) ++ modename="$modename: execute" ++ ++ # The first argument is the command name. ++ cmd="$nonopt" ++ if test -z "$cmd"; then ++ $echo "$modename: you must specify a COMMAND" 1>&2 ++ $echo "$help" ++ exit 1 ++ fi ++ ++ # Handle -dlopen flags immediately. ++ for file in $execute_dlfiles; do ++ if test ! -f "$file"; then ++ $echo "$modename: \`$file' is not a file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ dir= ++ case $file in ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Read the libtool library. ++ dlname= ++ library_names= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" ++ continue ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ++ if test -f "$dir/$objdir/$dlname"; then ++ dir="$dir/$objdir" ++ else ++ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ++ exit 1 ++ fi ++ ;; ++ ++ *.lo) ++ # Just add the directory containing the .lo file. ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ;; ++ ++ *) ++ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 ++ continue ++ ;; ++ esac ++ ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir="$absdir" ++ ++ # Now add the directory to shlibpath_var. ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" ++ else ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" ++ fi ++ done ++ ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic="$magic" ++ ++ # Check if any of the arguments is a wrapper script. ++ args= ++ for file ++ do ++ case $file in ++ -*) ;; ++ *) ++ # Do a test to see if this is really a libtool program. ++ if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ fi ++ ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` ++ args="$args \"$file\"" ++ done ++ ++ if test -z "$run"; then ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi ++ ++ # Restore saved enviroment variables ++ if test "${save_LC_ALL+set}" = set; then ++ LC_ALL="$save_LC_ALL"; export LC_ALL ++ fi ++ if test "${save_LANG+set}" = set; then ++ LANG="$save_LANG"; export LANG ++ fi ++ ++ # Now prepare to actually exec the command. ++ exec_cmd="\$cmd$args" ++ else ++ # Display what would be done. ++ if test -n "$shlibpath_var"; then ++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" ++ $echo "export $shlibpath_var" ++ fi ++ $echo "$cmd$args" ++ exit 0 ++ fi ++ ;; ++ ++ # libtool clean and uninstall mode ++ clean | uninstall) ++ modename="$modename: $mode" ++ rm="$nonopt" ++ files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ for arg ++ do ++ case $arg in ++ -f) rm="$rm $arg"; rmforce=yes ;; ++ -*) rm="$rm $arg" ;; ++ *) files="$files $arg" ;; ++ esac ++ done ++ ++ if test -z "$rm"; then ++ $echo "$modename: you must specify an RM program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ rmdirs= ++ ++ for file in $files; do ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$file"; then ++ dir=. ++ objdir="$objdir" ++ else ++ objdir="$dir/$objdir" ++ fi ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ test $mode = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test $mode = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if (test -L "$file") >/dev/null 2>&1 \ ++ || (test -h "$file") >/dev/null 2>&1 \ ++ || test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi ++ ++ rmfiles="$file" ++ ++ case $name in ++ *.la) ++ # Possibly a libtool archive, so verify it. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ . $dir/$name ++ ++ # Delete the libtool libraries and symlinks. ++ for n in $library_names; do ++ rmfiles="$rmfiles $objdir/$n" ++ done ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ ++ if test $mode = uninstall; then ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ eval cmds=\"$postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ eval cmds=\"$old_postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ # FIXME: should reinstall the best remaining shared library. ++ fi ++ fi ++ ;; ++ ++ *.lo) ++ if test "$build_old_libs" = yes; then ++ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` ++ rmfiles="$rmfiles $dir/$oldobj" ++ fi ++ ;; ++ ++ *) ++ # Do a test to see if this is a libtool program. ++ if test $mode = clean && ++ (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ relink_command= ++ . $dir/$file ++ ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ fi ++ ;; ++ esac ++ $show "$rm $rmfiles" ++ $run $rm $rmfiles || exit_status=1 ++ done ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ $show "rmdir $dir" ++ $run rmdir $dir >/dev/null 2>&1 ++ fi ++ done ++ ++ exit $exit_status ++ ;; ++ ++ "") ++ $echo "$modename: you must specify a MODE" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test -z "$exec_cmd"; then ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ fi ++fi # test -z "$show_help" ++ ++if test -n "$exec_cmd"; then ++ eval exec $exec_cmd ++ exit 1 ++fi ++ ++# We need to display help for each of the modes. ++case $mode in ++"") $echo \ ++"Usage: $modename [OPTION]... [MODE-ARG]... ++ ++Provide generalized library-building support services. ++ ++ --config show all configuration variables ++ --debug enable verbose shell tracing ++-n, --dry-run display commands without modifying any files ++ --features display basic configuration information and exit ++ --finish same as \`--mode=finish' ++ --help display this help message and exit ++ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] ++ --quiet same as \`--silent' ++ --silent don't print informational messages ++ --version print version information ++ ++MODE must be one of the following: ++ ++ clean remove files from the build directory ++ compile compile a source file into a libtool object ++ execute automatically set library path, then run a program ++ finish complete the installation of libtool libraries ++ install install libraries or executables ++ link create a library or an executable ++ uninstall remove libraries from an installed directory ++ ++MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for ++a more detailed description of MODE." ++ exit 0 ++ ;; ++ ++clean) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++compile) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE ++ ++Compile a source file into a libtool library object. ++ ++This mode accepts the following additional options: ++ ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only ++ -static always build a \`.o' file suitable for static linking ++ ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file ++from the given SOURCEFILE. ++ ++The output file name is determined by removing the directory component from ++SOURCEFILE, then substituting the C source code suffix \`.c' with the ++library object suffix, \`.lo'." ++ ;; ++ ++execute) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... ++ ++Automatically set library path, then run a program. ++ ++This mode accepts the following additional options: ++ ++ -dlopen FILE add the directory containing FILE to the library path ++ ++This mode sets the library path environment variable according to \`-dlopen' ++flags. ++ ++If any of the ARGS are libtool executable wrappers, then they are translated ++into their corresponding uninstalled binary, and any of their required library ++directories are added to the library path. ++ ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; ++ ++finish) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... ++ ++Complete the installation of libtool libraries. ++ ++Each LIBDIR is a directory that contains libtool libraries. ++ ++The commands that this mode executes may require superuser privileges. Use ++the \`--dry-run' option if you just want to see what would be executed." ++ ;; ++ ++install) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... ++ ++Install executables or libraries. ++ ++INSTALL-COMMAND is the installation command. The first component should be ++either the \`install' or \`cp' program. ++ ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; ++ ++link) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... ++ ++Link object files or libraries together to form another library, or to ++create an executable program. ++ ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. ++ ++The following components of LINK-COMMAND are treated specially: ++ ++ -all-static do not do any dynamic linking at all ++ -avoid-version do not add a version suffix if possible ++ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime ++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols ++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) ++ -export-symbols SYMFILE ++ try to export only the symbols listed in SYMFILE ++ -export-symbols-regex REGEX ++ try to export only the symbols matching REGEX ++ -LLIBDIR search LIBDIR for required installed libraries ++ -lNAME OUTPUT-FILE requires the installed library libNAME ++ -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable ++ -no-undefined declare that a library does not refer to external symbols ++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects ++ -release RELEASE specify package release information ++ -rpath LIBDIR the created library will eventually be installed in LIBDIR ++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries ++ -static do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ ++All other options (arguments beginning with \`-') are ignored. ++ ++Every other argument is treated as a filename. Files ending in \`.la' are ++treated as uninstalled libtool libraries, other files are standard or library ++object files. ++ ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created, ++only library objects (\`.lo' files) may be specified, and \`-rpath' is ++required, except when creating a convenience library. ++ ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created ++using \`ar' and \`ranlib', or on Windows using \`lib'. ++ ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; ++ ++uninstall) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... ++ ++Remove libraries from an installation directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, all the files associated with it are deleted. ++Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++*) ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++echo ++$echo "Try \`$modename --help' for more information about other modes." ++ ++exit 0 ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +--- metamail-2.7.orig/config/install-sh ++++ metamail-2.7/config/install-sh +@@ -0,0 +1,251 @@ ++#!/bin/sh ++# ++# install - install a program, script, or datafile ++# This comes from X11R5 (mit/util/scripts/install.sh). ++# ++# Copyright 1991 by the Massachusetts Institute of Technology ++# ++# Permission to use, copy, modify, distribute, and sell this software and its ++# documentation for any purpose is hereby granted without fee, provided that ++# the above copyright notice appear in all copies and that both that ++# copyright notice and this permission notice appear in supporting ++# documentation, and that the name of M.I.T. not be used in advertising or ++# publicity pertaining to distribution of the software without specific, ++# written prior permission. M.I.T. makes no representations about the ++# suitability of this software for any purpose. It is provided "as is" ++# without express or implied warranty. ++# ++# Calling this script install-sh is preferred over install.sh, to prevent ++# `make' implicit rules from creating a file called install from it ++# when there is no Makefile. ++# ++# This script is compatible with the BSD install script, but was written ++# from scratch. It can only install one file at a time, a restriction ++# shared with many OS's install programs. ++ ++ ++# set DOITPROG to echo to test this script ++ ++# Don't use :- since 4.3BSD and earlier shells don't like it. ++doit="${DOITPROG-}" ++ ++ ++# put in absolute paths if you don't have them in your path; or use env. vars. ++ ++mvprog="${MVPROG-mv}" ++cpprog="${CPPROG-cp}" ++chmodprog="${CHMODPROG-chmod}" ++chownprog="${CHOWNPROG-chown}" ++chgrpprog="${CHGRPPROG-chgrp}" ++stripprog="${STRIPPROG-strip}" ++rmprog="${RMPROG-rm}" ++mkdirprog="${MKDIRPROG-mkdir}" ++ ++transformbasename="" ++transform_arg="" ++instcmd="$mvprog" ++chmodcmd="$chmodprog 0755" ++chowncmd="" ++chgrpcmd="" ++stripcmd="" ++rmcmd="$rmprog -f" ++mvcmd="$mvprog" ++src="" ++dst="" ++dir_arg="" ++ ++while [ x"$1" != x ]; do ++ case $1 in ++ -c) instcmd="$cpprog" ++ shift ++ continue;; ++ ++ -d) dir_arg=true ++ shift ++ continue;; ++ ++ -m) chmodcmd="$chmodprog $2" ++ shift ++ shift ++ continue;; ++ ++ -o) chowncmd="$chownprog $2" ++ shift ++ shift ++ continue;; ++ ++ -g) chgrpcmd="$chgrpprog $2" ++ shift ++ shift ++ continue;; ++ ++ -s) stripcmd="$stripprog" ++ shift ++ continue;; ++ ++ -t=*) transformarg=`echo $1 | sed 's/-t=//'` ++ shift ++ continue;; ++ ++ -b=*) transformbasename=`echo $1 | sed 's/-b=//'` ++ shift ++ continue;; ++ ++ *) if [ x"$src" = x ] ++ then ++ src=$1 ++ else ++ # this colon is to work around a 386BSD /bin/sh bug ++ : ++ dst=$1 ++ fi ++ shift ++ continue;; ++ esac ++done ++ ++if [ x"$src" = x ] ++then ++ echo "install: no input file specified" ++ exit 1 ++else ++ true ++fi ++ ++if [ x"$dir_arg" != x ]; then ++ dst=$src ++ src="" ++ ++ if [ -d $dst ]; then ++ instcmd=: ++ chmodcmd="" ++ else ++ instcmd=mkdir ++ fi ++else ++ ++# Waiting for this to be detected by the "$instcmd $src $dsttmp" command ++# might cause directories to be created, which would be especially bad ++# if $src (and thus $dsttmp) contains '*'. ++ ++ if [ -f $src -o -d $src ] ++ then ++ true ++ else ++ echo "install: $src does not exist" ++ exit 1 ++ fi ++ ++ if [ x"$dst" = x ] ++ then ++ echo "install: no destination specified" ++ exit 1 ++ else ++ true ++ fi ++ ++# If destination is a directory, append the input filename; if your system ++# does not like double slashes in filenames, you may need to add some logic ++ ++ if [ -d $dst ] ++ then ++ dst="$dst"/`basename $src` ++ else ++ true ++ fi ++fi ++ ++## this sed command emulates the dirname command ++dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ++ ++# Make sure that the destination directory exists. ++# this part is taken from Noah Friedman's mkinstalldirs script ++ ++# Skip lots of stat calls in the usual case. ++if [ ! -d "$dstdir" ]; then ++defaultIFS=' ++' ++IFS="${IFS-${defaultIFS}}" ++ ++oIFS="${IFS}" ++# Some sh's can't handle IFS=/ for some reason. ++IFS='%' ++set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` ++IFS="${oIFS}" ++ ++pathcomp='' ++ ++while [ $# -ne 0 ] ; do ++ pathcomp="${pathcomp}${1}" ++ shift ++ ++ if [ ! -d "${pathcomp}" ] ; ++ then ++ $mkdirprog "${pathcomp}" ++ else ++ true ++ fi ++ ++ pathcomp="${pathcomp}/" ++done ++fi ++ ++if [ x"$dir_arg" != x ] ++then ++ $doit $instcmd $dst && ++ ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi ++else ++ ++# If we're going to rename the final executable, determine the name now. ++ ++ if [ x"$transformarg" = x ] ++ then ++ dstfile=`basename $dst` ++ else ++ dstfile=`basename $dst $transformbasename | ++ sed $transformarg`$transformbasename ++ fi ++ ++# don't allow the sed command to completely eliminate the filename ++ ++ if [ x"$dstfile" = x ] ++ then ++ dstfile=`basename $dst` ++ else ++ true ++ fi ++ ++# Make a temp file name in the proper directory. ++ ++ dsttmp=$dstdir/#inst.$$# ++ ++# Move or copy the file name to the temp name ++ ++ $doit $instcmd $src $dsttmp && ++ ++ trap "rm -f ${dsttmp}" 0 && ++ ++# and set any options; do chmod last to preserve setuid bits ++ ++# If any of these fail, we abort the whole thing. If we want to ++# ignore errors from any of these, just make sure not to ignore ++# errors from the above "$doit $instcmd $src $dsttmp" command. ++ ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && ++ ++# Now rename the file to the real destination. ++ ++ $doit $rmcmd -f $dstdir/$dstfile && ++ $doit $mvcmd $dsttmp $dstdir/$dstfile ++ ++fi && ++ ++ ++exit 0 +--- metamail-2.7.orig/config/missing ++++ metamail-2.7/config/missing +@@ -0,0 +1,190 @@ ++#! /bin/sh ++# Common stub for a few missing GNU programs while installing. ++# Copyright (C) 1996, 1997 Free Software Foundation, Inc. ++# Franc,ois 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, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++if test $# -eq 0; then ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++fi ++ ++case "$1" in ++ ++ -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 ++ ++Supported PROGRAM values: ++ aclocal touch file \`aclocal.m4' ++ autoconf touch file \`configure' ++ autoheader touch file \`config.h.in' ++ 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 ++ lex create \`lex.yy.c', if possible, from existing .c ++ makeinfo touch the output file ++ yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ++ ;; ++ ++ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) ++ echo "missing - GNU libit 0.0" ++ ;; ++ ++ -*) ++ echo 1>&2 "$0: Unknown \`$1' option" ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++ ;; ++ ++ aclocal) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified \`acinclude.m4' or \`configure.in'. 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 missing on your system. You should only need it if ++ you modified \`configure.in'. 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 missing on your system. You should only need it if ++ you modified \`acconfig.h' or \`configure.in'. 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.in` ++ 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 missing on your system. You should only need it if ++ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. ++ 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 ++ ;; ++ ++ bison|yacc) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.y) ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.c ++ fi ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.h ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f y.tab.h ]; then ++ echo >y.tab.h ++ fi ++ if [ ! -f y.tab.c ]; then ++ echo 'main() { return 0; }' >y.tab.c ++ fi ++ ;; ++ ++ lex|flex) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. 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 [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.l) ++ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" lex.yy.c ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f lex.yy.c ]; then ++ echo 'main() { return 0; }' >lex.yy.c ++ fi ++ ;; ++ ++ makeinfo) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. 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." ++ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` ++ if test -z "$file"; then ++ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` ++ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` ++ fi ++ touch $file ++ ;; ++ ++ *) ++ echo 1>&2 "\ ++WARNING: \`$1' is needed, and you do not seem to have it handy on your ++ system. 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 prerequirements 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 +--- metamail-2.7.orig/config/ltconfig ++++ metamail-2.7/config/ltconfig +@@ -0,0 +1,3115 @@ ++#! /bin/sh ++ ++# ltconfig - Create a system-specific libtool. ++# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 ++# ++# 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 ++# 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. ++# ++# 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. ++ ++# A lot of this script is taken from autoconf-2.10. ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++echo=echo ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec "$SHELL" "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit 0 ++fi ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) PATH_SEPARATOR=';' ;; ++ *) PATH_SEPARATOR=':' ;; ++ esac ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test "X${echo_test_string+set}" != Xset; then ++ # find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || ++ test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running ltconfig again with it. ++ ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf "%s\n"' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# The name of this program. ++progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` ++ ++# Constants: ++PROGRAM=ltconfig ++PACKAGE=libtool ++VERSION=1.3.5 ++TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)" ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++rm="rm -f" ++ ++help="Try \`$progname --help' for more information." ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++enable_shared=yes ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++enable_static=yes ++enable_fast_install=yes ++enable_dlopen=unknown ++enable_win32_dll=no ++ltmain= ++silent= ++srcdir= ++ac_config_guess= ++ac_config_sub= ++host= ++nonopt= ++ofile="$default_ofile" ++verify_host=yes ++with_gcc=no ++with_gnu_ld=no ++need_locks=yes ++ac_ext=c ++objext=o ++libext=a ++exeext= ++cache_file= ++ ++old_AR="$AR" ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++old_CPPFLAGS="$CPPFLAGS" ++old_LDFLAGS="$LDFLAGS" ++old_LD="$LD" ++old_LN_S="$LN_S" ++old_LIBS="$LIBS" ++old_NM="$NM" ++old_RANLIB="$RANLIB" ++old_DLLTOOL="$DLLTOOL" ++old_OBJDUMP="$OBJDUMP" ++old_AS="$AS" ++ ++# Parse the command line options. ++args= ++prev= ++for option ++do ++ case "$option" in ++ -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ eval "$prev=\$option" ++ prev= ++ continue ++ fi ++ ++ case "$option" in ++ --help) cat <<EOM ++Usage: $progname [OPTION]... [HOST [LTMAIN]] ++ ++Generate a system-specific libtool script. ++ ++ --debug enable verbose shell tracing ++ --disable-shared do not build shared libraries ++ --disable-static do not build static libraries ++ --disable-fast-install do not optimize for fast installation ++ --enable-dlopen enable dlopen support ++ --enable-win32-dll enable building dlls on win32 hosts ++ --help display this help and exit ++ --no-verify do not verify that HOST is a valid host type ++-o, --output=FILE specify the output file [default=$default_ofile] ++ --quiet same as \`--silent' ++ --silent do not print informational messages ++ --srcdir=DIR find \`config.guess' in DIR ++ --version output version information and exit ++ --with-gcc assume that the GNU C compiler will be used ++ --with-gnu-ld assume that the C compiler uses the GNU linker ++ --disable-lock disable file locking ++ --cache-file=FILE configure cache file ++ ++LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program ++that provides basic libtool functionality. ++ ++HOST is the canonical host system name [default=guessed]. ++EOM ++ exit 0 ++ ;; ++ ++ --debug) ++ echo "$progname: enabling shell trace mode" ++ set -x ++ ;; ++ ++ --disable-shared) enable_shared=no ;; ++ ++ --disable-static) enable_static=no ;; ++ ++ --disable-fast-install) enable_fast_install=no ;; ++ ++ --enable-dlopen) enable_dlopen=yes ;; ++ ++ --enable-win32-dll) enable_win32_dll=yes ;; ++ ++ --quiet | --silent) silent=yes ;; ++ ++ --srcdir) prev=srcdir ;; ++ --srcdir=*) srcdir="$optarg" ;; ++ ++ --no-verify) verify_host=no ;; ++ ++ --output | -o) prev=ofile ;; ++ --output=*) ofile="$optarg" ;; ++ ++ --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;; ++ ++ --with-gcc) with_gcc=yes ;; ++ --with-gnu-ld) with_gnu_ld=yes ;; ++ ++ --disable-lock) need_locks=no ;; ++ ++ --cache-file=*) cache_file="$optarg" ;; ++ ++ -*) ++ echo "$progname: unrecognized option \`$option'" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ ;; ++ ++ *) ++ if test -z "$ltmain"; then ++ ltmain="$option" ++ elif test -z "$host"; then ++# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 ++# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then ++# echo "$progname: warning \`$option' is not a valid host type" 1>&2 ++# fi ++ host="$option" ++ else ++ echo "$progname: too many arguments" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ;; ++ esac ++done ++ ++if test -z "$ltmain"; then ++ echo "$progname: you must specify a LTMAIN file" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++fi ++ ++if test ! -f "$ltmain"; then ++ echo "$progname: \`$ltmain' does not exist" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++fi ++ ++# Quote any args containing shell metacharacters. ++ltconfig_args= ++for arg ++do ++ case "$arg" in ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ++ ltconfig_args="$ltconfig_args '$arg'" ;; ++ *) ltconfig_args="$ltconfig_args $arg" ;; ++ esac ++done ++ ++# A relevant subset of AC_INIT. ++ ++# File descriptor usage: ++# 0 standard input ++# 1 file creation ++# 2 errors and warnings ++# 3 some systems may open it to /dev/tty ++# 4 used on the Kubota Titan ++# 5 compiler messages saved in config.log ++# 6 checking for... messages and results ++if test "$silent" = yes; then ++ exec 6>/dev/null ++else ++ exec 6>&1 ++fi ++exec 5>>./config.log ++ ++# NLS nuisances. ++# Only set LANG and LC_ALL to C if already set. ++# These must not be set unconditionally because not all systems understand ++# e.g. LANG=C (notably SCO). ++if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi ++if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi ++ ++if test -n "$cache_file" && test -r "$cache_file"; then ++ echo "loading cache $cache_file within ltconfig" ++ . $cache_file ++fi ++ ++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then ++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. ++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ++ ac_n= ac_c=' ++' ac_t=' ' ++ else ++ ac_n=-n ac_c= ac_t= ++ fi ++else ++ ac_n= ac_c='\c' ac_t= ++fi ++ ++if test -z "$srcdir"; then ++ # Assume the source directory is the same one as the path to LTMAIN. ++ srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` ++ test "$srcdir" = "$ltmain" && srcdir=. ++fi ++ ++trap "$rm conftest*; exit 1" 1 2 15 ++if test "$verify_host" = yes; then ++ # Check for config.guess and config.sub. ++ ac_aux_dir= ++ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do ++ if test -f $ac_dir/config.guess; then ++ ac_aux_dir=$ac_dir ++ break ++ fi ++ done ++ if test -z "$ac_aux_dir"; then ++ echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ++ ac_config_guess=$ac_aux_dir/config.guess ++ ac_config_sub=$ac_aux_dir/config.sub ++ ++ # Make sure we can run config.sub. ++ if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : ++ else ++ echo "$progname: cannot run $ac_config_sub" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ echo $ac_n "checking host system type""... $ac_c" 1>&6 ++ ++ host_alias=$host ++ case "$host_alias" in ++ "") ++ if host_alias=`$SHELL $ac_config_guess`; then : ++ else ++ echo "$progname: cannot guess host type; you must specify one" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ;; ++ esac ++ host=`$SHELL $ac_config_sub $host_alias` ++ echo "$ac_t$host" 1>&6 ++ ++ # Make sure the host verified. ++ test -z "$host" && exit 1 ++ ++elif test -z "$host"; then ++ echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++else ++ host_alias=$host ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case "$host_os" in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++ ++case "$host_os" in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR cru $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++# Set a sane default for `AR'. ++test -z "$AR" && AR=ar ++ ++# Set a sane default for `OBJDUMP'. ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++# If RANLIB is not set, then run the test. ++if test "${RANLIB+set}" != "set"; then ++ result=no ++ ++ echo $ac_n "checking for ranlib... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then ++ RANLIB="ranlib" ++ result="ranlib" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ echo "$ac_t$result" 1>&6 ++fi ++ ++if test -n "$RANLIB"; then ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++fi ++ ++# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$AS" && AS=as ++ ++# Check to see if we are using GCC. ++if test "$with_gcc" != yes || test -z "$CC"; then ++ # If CC is not set, then try to find GCC or a usable CC. ++ if test -z "$CC"; then ++ echo $ac_n "checking for gcc... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then ++ CC="gcc" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test -n "$CC"; then ++ echo "$ac_t$CC" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ fi ++ ++ # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". ++ if test -z "$CC"; then ++ echo $ac_n "checking for cc... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ cc_rejected=no ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/cc || test -f $dir/cc$ac_exeext; then ++ if test "$dir/cc" = "/usr/ucb/cc"; then ++ cc_rejected=yes ++ continue ++ fi ++ CC="cc" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ if test $cc_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $CC ++ shift ++ if test $# -gt 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same name, so the bogon will be chosen ++ # first if we set CC to just the name; use the full file name. ++ shift ++ set dummy "$dir/cc" "$@" ++ shift ++ CC="$@" ++ fi ++ fi ++ ++ if test -n "$CC"; then ++ echo "$ac_t$CC" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ ++ if test -z "$CC"; then ++ echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 ++ exit 1 ++ fi ++ fi ++ ++ # Now see if the compiler is really GCC. ++ with_gcc=no ++ echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 ++ echo "$progname:581: checking whether we are using GNU C" >&5 ++ ++ $rm conftest.c ++ cat > conftest.c <<EOF ++#ifdef __GNUC__ ++ yes; ++#endif ++EOF ++ if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++ with_gcc=yes ++ fi ++ $rm conftest.c ++ echo "$ac_t$with_gcc" 1>&6 ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for object suffix... $ac_c" 1>&6 ++$rm conftest* ++echo 'int i = 1;' > conftest.c ++echo "$progname:603: checking for object suffix" >& 5 ++if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ cat conftest.err 1>&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++fi ++$rm conftest* ++echo "$ac_t$objext" 1>&6 ++ ++echo $ac_n "checking for executable suffix... $ac_c" 1>&6 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_cv_exeext="no" ++ $rm conftest* ++ echo 'main () { return 0; }' > conftest.c ++ echo "$progname:629: checking for executable suffix" >& 5 ++ if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c | *.err | *.$objext ) ;; ++ *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++ else ++ cat conftest.err 1>&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ $rm conftest* ++fi ++if test "X$ac_cv_exeext" = Xno; then ++ exeext="" ++else ++ exeext="$ac_cv_exeext" ++fi ++echo "$ac_t$ac_cv_exeext" 1>&6 ++ ++echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 ++pic_flag= ++special_shlib_compile_flags= ++wl= ++link_static_flag= ++no_builtin_flag= ++ ++if test "$with_gcc" = yes; then ++ wl='-Wl,' ++ link_static_flag='-static' ++ ++ case "$host_os" in ++ beos* | irix5* | irix6* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # we not sure about C++ programs. ++ link_static_flag="$link_static_flag ${wl}-lC" ++ ;; ++ cygwin* | mingw* | os2*) ++ # We can build DLLs from non-PIC. ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ pic_flag='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ pic_flag=-Kconform_pic ++ fi ++ ;; ++ *) ++ pic_flag='-fPIC' ++ ;; ++ esac ++else ++ # PORTME Check for PIC flags for the system compiler. ++ case "$host_os" in ++ aix3* | aix4*) ++ # All AIX code is PIC. ++ link_static_flag='-bnso -bI:/lib/syscalls.exp' ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better link_static_flag that works with the bundled CC? ++ wl='-Wl,' ++ link_static_flag="${wl}-a ${wl}archive" ++ pic_flag='+Z' ++ ;; ++ ++ irix5* | irix6*) ++ wl='-Wl,' ++ link_static_flag='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | os2*) ++ # We can build DLLs from non-PIC. ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ wl='-Wl,' ++ link_static_flag='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ pic_flag='-Kpic' ++ link_static_flag='-dn' ++ special_shlib_compile_flags='-belf' ++ ;; ++ ++ solaris*) ++ pic_flag='-KPIC' ++ link_static_flag='-Bstatic' ++ wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ pic_flag='-PIC' ++ link_static_flag='-Bstatic' ++ wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ pic_flag='-KPIC' ++ link_static_flag='-Bstatic' ++ wl='-Wl,' ++ ;; ++ ++ uts4*) ++ pic_flag='-pic' ++ link_static_flag='-Bstatic' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ pic_flag='-Kconform_pic' ++ link_static_flag='-Bstatic' ++ fi ++ ;; ++ *) ++ can_build_shared=no ++ ;; ++ esac ++fi ++ ++if test -n "$pic_flag"; then ++ echo "$ac_t$pic_flag" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $pic_flag -DPIC" ++ echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 ++ if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ case "$host_os" in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then they ++ # create non-PIC objects. So, if there were any warnings, we assume that ++ # PIC is not supported. ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ can_build_shared=no ++ pic_flag= ++ else ++ echo "$ac_t"yes 1>&6 ++ pic_flag=" $pic_flag" ++ fi ++ ;; ++ *) ++ echo "$ac_t"yes 1>&6 ++ pic_flag=" $pic_flag" ++ ;; ++ esac ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ can_build_shared=no ++ pic_flag= ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++else ++ echo "$ac_t"none 1>&6 ++fi ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++$rm conftest* ++echo "int some_variable = 0;" > conftest.c ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.o" ++echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 ++if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_c_o=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ compiler_c_o=no ++ echo "$ac_t"no 1>&6 ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 ++if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_o_lo=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_o_lo=yes ++ fi ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ compiler_o_lo=no ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t$hard_links" 1>&6 ++ $rm conftest* ++ if test "$hard_links" = no; then ++ echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$with_gcc" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" ++ echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_rtti_exceptions=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_rtti_exceptions=yes ++ fi ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ compiler_rtti_exceptions=no ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++ ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$special_shlib_compile_flags"; then ++ echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : ++ else ++ echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 ++$rm conftest* ++echo 'main(){return(0);}' > conftest.c ++save_LDFLAGS="$LDFLAGS" ++LDFLAGS="$LDFLAGS $link_static_flag" ++echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 ++if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ++ echo "$ac_t$link_static_flag" 1>&6 ++else ++ echo "$ac_t"none 1>&6 ++ link_static_flag= ++fi ++LDFLAGS="$save_LDFLAGS" ++$rm conftest* ++ ++if test -z "$LN_S"; then ++ # Check to see if we can use ln -s, or we need hard links. ++ echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 ++ $rm conftest.dat ++ if ln -s X conftest.dat 2>/dev/null; then ++ $rm conftest.dat ++ LN_S="ln -s" ++ else ++ LN_S=ln ++ fi ++ if test "$LN_S" = "ln -s"; then ++ echo "$ac_t"yes 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++fi ++ ++# Make sure LD is an absolute path. ++if test -z "$LD"; then ++ ac_prog=ld ++ if test "$with_gcc" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 ++ echo "$progname:991: checking for ld used by GCC" >&5 ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ++ case "$ac_prog" in ++ # Accept absolute paths. ++ [\\/]* | [A-Za-z]:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we are not using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++ elif test "$with_gnu_ld" = yes; then ++ echo $ac_n "checking for GNU ld... $ac_c" 1>&6 ++ echo "$progname:1015: checking for GNU ld" >&5 ++ else ++ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ++ echo "$progname:1018: checking for non-GNU ld" >&5 ++ fi ++ ++ if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ fi ++ ++ if test -n "$LD"; then ++ echo "$ac_t$LD" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ ++ if test -z "$LD"; then ++ echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 ++ exit 1 ++ fi ++fi ++ ++# Check to see if it really is or is not GNU ld. ++echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 ++# I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then ++ with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++echo "$ac_t$with_gnu_ld" 1>&6 ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++ ++case "$host_os" in ++cygwin* | mingw*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$with_gcc" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++ ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case "$host_os" in ++ aix3* | aix4*) ++ # On AIX, the GNU linker is very broken ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left by newer dlltools. ++ export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ ++ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ ++ $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols' ++ ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done~ ++ test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ ++ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ ++ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ ++ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ ++ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' ++ ++ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' ++ # can we support soname and/or expsyms with a.out? -oliva ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case "$host_os" in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$with_gcc" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4*) ++ hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' ++ hardcode_libdir_separator=':' ++ if test "$with_gcc" = yes; then ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ shared_flag='-shared' ++ else ++ shared_flag='${wl}-bM:SRE' ++ hardcode_direct=yes ++ fi ++ allow_undefined_flag=' ${wl}-berok' ++ archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' ++ archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' ++ case "$host_os" in aix4.[01]|aix4.[01].*) ++ # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on ++ always_export_symbols=yes ;; ++ esac ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs' ++ fix_srcfile_path='`cygpath -w $srcfile`' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case "$host_os" in ++ hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6*) ++ if test "$with_gcc" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF ++ fi ++ hardcode_libdir_flag_spec='${wl}-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$with_gcc" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # As osf3* with the addition of the -msym flag ++ if test "$with_gcc" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ rhapsody*) ++ archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flags_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ;; ++ ++ solaris*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case "$host_os" in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts' ++ else ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ unixware7*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++if test -z "$NM"; then ++ echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 ++ case "$NM" in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. ++ *) ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ NM="$ac_dir/nm -B" ++ break ++ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ NM="$ac_dir/nm -p" ++ break ++ else ++ NM=${NM="$ac_dir/nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$NM" && NM=nm ++ ;; ++ esac ++ echo "$ac_t$NM" 1>&6 ++fi ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Define system-specific variables. ++case "$host_os" in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ;; ++irix*) ++ symcode='[BCDEGRST]' ++ ;; ++solaris*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++ global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ $rm conftest* ++ cat > conftest.c <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ echo "$progname:1653: checking if global_symbol_pipe works" >&5 ++ if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then ++ ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.c ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' ++ ++ cat <<EOF >> conftest.c ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr_t void * ++#else ++# define lt_ptr_t char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr_t address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c ++ cat <<\EOF >> conftest.c ++ {0, (lt_ptr_t) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$objext conftstm.$objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ++ pipe_works=yes ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ LIBS="$save_LIBS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ $rm conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ global_symbol_pipe= ++ fi ++done ++if test "$pipe_works" = yes; then ++ echo "${ac_t}ok" 1>&6 ++else ++ echo "${ac_t}failed" 1>&6 ++fi ++ ++if test -z "$global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++fi ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t$hardcode_action" 1>&6 ++ ++ ++reload_flag= ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 ++# PORTME Some linkers may need a different reload flag. ++reload_flag='-r' ++echo "$ac_t$reload_flag" 1>&6 ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++ ++# PORTME Fill in your ld.so characteristics ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++file_magic_cmd= ++file_magic_test_file= ++deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [regex]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 ++case "$host_os" in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4*) ++ version_type=linux ++ # AIX has no versioning support, so currently we can not hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ # We preserve .a as extension for shared libraries though AIX4.2 ++ # and later linker supports .so ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' ++ shlibpath_var=LIBPATH ++ deplibs_check_method=pass_all ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ deplibs_check_method=pass_all ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/shlib/libc.so ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ if test "$with_gcc" = yes; then ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' ++ else ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ fi ++ dynamic_linker='Win32 ld.exe' ++ deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ file_magic_cmd='${OBJDUMP} -f' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case "$version_type" in ++ freebsd-elf*) ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /usr/lib/libc.so*` ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ deplibs_check_method=unknown ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case "$host_os" in ++ freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) # from 3.2 on ++ shlibpath_overrides_runpath=no ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ deplibs_check_method=pass_all ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ case "$host_os" in ++ hpux10.20*) ++ # TODO: Does this work for hpux-11 too? ++ deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++irix5* | irix6*) ++ version_type=irix ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so.$major' ++ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' ++ case "$host_os" in ++ irix5*) ++ libsuff= shlibsuff= ++ # this will be overridden with pass_all, but let us keep it just in case ++ deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case "$LD" in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ deplibs_check_method='pass_all' ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ deplibs_check_method=pass_all ++ ++ if test -f /lib/ld.so.1; then ++ dynamic_linker='GNU ld.so' ++ else ++ # Only the GNU ld.so supports shared libraries on MkLinux. ++ case "$host_cpu" in ++ powerpc*) dynamic_linker=no ;; ++ *) dynamic_linker='Linux ld.so' ;; ++ esac ++ fi ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ need_version=no ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ soname_spec='${libname}${release}.so' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ # this will be overridden with pass_all, but let us keep it just in case ++ deplibs_check_method='file_magic COFF format alpha shared library' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/shlib/libc.so ++ deplibs_check_method='pass_all' ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ ;; ++ ++rhapsody*) ++ version_type=sunos ++ library_names_spec='${libname}.so' ++ soname_spec='${libname}.so' ++ shlibpath_var=DYLD_LIBRARY_PATH ++ deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/lib/libc.so ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case "$host_vendor" in ++ sequent) ++ file_magic_cmd='/bin/file' ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ ncr) ++ deplibs_check_method='pass_all' ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 ++ ++# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in ++# configure.in, otherwise build static only libraries. ++case "$host_os" in ++cygwin* | mingw* | os2*) ++ if test x$can_build_shared = xyes; then ++ test x$enable_win32_dll = xno && can_build_shared=no ++ echo "checking if package supports dlls... $can_build_shared" 1>&6 ++ fi ++;; ++esac ++ ++if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then ++ case "$deplibs_check_method" in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++fi ++ ++echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ test "$enable_shared" = yes && enable_static=no ++ ;; ++esac ++ ++echo "$ac_t$enable_shared" 1>&6 ++ ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++ ++echo "checking whether to build static libraries... $enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++echo $ac_n "checking for objdir... $ac_c" 1>&6 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t$objdir" 1>&6 ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then ++ lt_cv_dlopen=no lt_cv_dlopen_libs= ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "$progname:2248: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 2256 "ltconfig" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "$progname:2288: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2293 "ltconfig" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char dlopen(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "$progname:2335: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 2343 "ltconfig" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dld_link(); ++ ++int main() { ++dld_link() ++; return 0; } ++EOF ++if { (eval echo $progname:2356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "$progname:2375: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2380 "ltconfig" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shl_load(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "$progname:2423: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 2431 "ltconfig" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load(); ++ ++int main() { ++shl_load() ++; return 0; } ++EOF ++if { (eval echo $progname:2445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++fi ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ fi ++ ++ case "$lt_cv_dlopen" in ++ dlopen) ++for ac_hdr in dlfcn.h; do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "$progname:2488: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2493 "ltconfig" ++#include <$ac_hdr> ++int fnord = 0; ++EOF ++ac_try="$ac_compile >/dev/null 2>conftest.out" ++{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ if test "x$ac_cv_header_dlfcn_h" = xyes; then ++ CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ fi ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "$progname:2526: checking whether a program can dlopen itself" >&5 ++if test "${lt_cv_dlopen_self+set}" = set; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then ++ lt_cv_dlopen_self=cross ++ else ++ cat > conftest.c <<EOF ++#line 2534 "ltconfig" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LTDL_GLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LTDL_GLOBAL DL_GLOBAL ++# else ++# define LTDL_GLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LTDL_LAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LTDL_LAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LTDL_LAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LTDL_LAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LTDL_LAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LTDL_LAZY_OR_NOW DL_NOW ++# else ++# define LTDL_LAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++fnord() { int i=42;} ++main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); ++ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); ++ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } ++ ++EOF ++if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null ++then ++ lt_cv_dlopen_self=yes ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ lt_cv_dlopen_self=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "$lt_cv_dlopen_self" = yes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5 ++if test "${lt_cv_dlopen_self_static+set}" = set; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then ++ lt_cv_dlopen_self_static=cross ++ else ++ cat > conftest.c <<EOF ++#line 2607 "ltconfig" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LTDL_GLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LTDL_GLOBAL DL_GLOBAL ++# else ++# define LTDL_GLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LTDL_LAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LTDL_LAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LTDL_LAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LTDL_LAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LTDL_LAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LTDL_LAZY_OR_NOW DL_NOW ++# else ++# define LTDL_LAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++fnord() { int i=42;} ++main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); ++ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); ++ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } ++ ++EOF ++if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null ++then ++ lt_cv_dlopen_self_static=yes ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ lt_cv_dlopen_self_static=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++fi ++ ;; ++ esac ++ ++ case "$lt_cv_dlopen_self" in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case "$lt_cv_dlopen_self_static" in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++# Copy echo and quote the copy, instead of the original, because it is ++# used later. ++ltecho="$echo" ++if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ltecho="$CONFIG_SHELL \$0 --fallback-echo" ++fi ++LTSHELL="$SHELL" ++ ++LTCONFIG_VERSION="$VERSION" ++ ++# Only quote variables if we're using ltmain.sh. ++case "$ltmain" in ++*.sh) ++ # Now quote all the things that may contain metacharacters. ++ for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ ++ old_LD old_LDFLAGS old_LIBS \ ++ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ ++ AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ ++ file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case "$var" in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ case "$ltecho" in ++ *'\$0 --fallback-echo"') ++ ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ++ ;; ++ esac ++ ++ trap "$rm \"$ofile\"; exit 1" 1 2 15 ++ echo "creating $ofile" ++ $rm "$ofile" ++ cat <<EOF > "$ofile" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. ++# ++# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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 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. ++# ++# 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. ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="sed -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++### BEGIN LIBTOOL CONFIG ++EOF ++ cfgfile="$ofile" ++ ;; ++ ++*) ++ # Double-quote the variables that need it (for aesthetics). ++ for var in old_CC old_CFLAGS old_CPPFLAGS \ ++ old_LD old_LDFLAGS old_LIBS \ ++ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do ++ eval "$var=\\\"\$var\\\"" ++ done ++ ++ # Just create a config file. ++ cfgfile="$ofile.cfg" ++ trap "$rm \"$cfgfile\"; exit 1" 1 2 15 ++ echo "creating $cfgfile" ++ $rm "$cfgfile" ++ cat <<EOF > "$cfgfile" ++# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++EOF ++ ;; ++esac ++ ++cat <<EOF >> "$cfgfile" ++# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# ++# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ ++# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ ++# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ ++# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ ++# $0$ltconfig_args ++# ++# Compiler and other test output produced by $progname, useful for ++# debugging $progname, is in ./config.log if it exists. ++ ++# The version of $progname that generated this script. ++LTCONFIG_VERSION=$LTCONFIG_VERSION ++ ++# Shell to use when invoking shell scripts. ++SHELL=$LTSHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$ltecho ++ ++# The archiver. ++AR=$AR ++ ++# The default C compiler. ++CC=$CC ++ ++# The linker used to build libraries. ++LD=$LD ++ ++# Whether we need hard or soft links. ++LN_S=$LN_S ++ ++# A BSD-compatible nm program. ++NM=$NM ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$reload_flag ++reload_cmds=$reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$wl ++ ++# Object file suffix (normally "o"). ++objext="$objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$pic_flag ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$RANLIB ++old_archive_cmds=$old_archive_cmds ++old_postinstall_cmds=$old_postinstall_cmds ++old_postuninstall_cmds=$old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$old_archive_from_new_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$archive_cmds ++archive_expsym_cmds=$archive_expsym_cmds ++postinstall_cmds=$postinstall_cmds ++postuninstall_cmds=$postuninstall_cmds ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$global_symbol_to_cdecl ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$export_symbols_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$include_expsyms ++ ++EOF ++ ++case "$ltmain" in ++*.sh) ++ echo '### END LIBTOOL CONFIG' >> "$ofile" ++ echo >> "$ofile" ++ case "$host_os" in ++ aix3*) ++ cat <<\EOF >> "$ofile" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ # Append the ltmain.sh script. ++ sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ ++ chmod +x "$ofile" ++ ;; ++ ++*) ++ # Compile the libtool program. ++ echo "FIXME: would compile $ltmain" ++ ;; ++esac ++ ++test -n "$cache_file" || exit 0 ++ ++# AC_CACHE_SAVE ++trap '' 1 2 15 ++cat > confcache <<\EOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs. It is not useful on other systems. ++# If it contains results you don't want to keep, you may remove or edit it. ++# ++# By default, configure uses ./config.cache as the cache file, ++# creating it if it does not exist already. You can give configure ++# the --cache-file=FILE option to use a different cache file; that is ++# what configure does when it calls configure scripts in ++# subdirectories, so they share the cache. ++# Giving --cache-file=/dev/null disables caching, for debugging configure. ++# config.status only pays attention to the cache file if you give it the ++# --recheck option to rerun configure. ++# ++EOF ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, don't put newlines in cache variables' values. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++(set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote substitution ++ # turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ -e "s/'/'\\\\''/g" \ ++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ++ ;; ++ esac >> confcache ++if cmp -s $cache_file confcache; then ++ : ++else ++ if test -w $cache_file; then ++ echo "updating cache $cache_file" ++ cat confcache > $cache_file ++ else ++ echo "not updating unwritable cache $cache_file" ++ fi ++fi ++rm -f confcache ++ ++exit 0 ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +--- metamail-2.7.orig/config/mkinstalldirs ++++ metamail-2.7/config/mkinstalldirs +@@ -0,0 +1,40 @@ ++#! /bin/sh ++# mkinstalldirs --- make directory hierarchy ++# Author: Noah Friedman <friedman@prep.ai.mit.edu> ++# Created: 1993-05-16 ++# Public domain ++ ++# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ ++ ++errstatus=0 ++ ++for file ++do ++ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` ++ shift ++ ++ pathcomp= ++ for d ++ do ++ pathcomp="$pathcomp$d" ++ case "$pathcomp" in ++ -* ) pathcomp=./$pathcomp ;; ++ esac ++ ++ if test ! -d "$pathcomp"; then ++ echo "mkdir $pathcomp" ++ ++ mkdir "$pathcomp" || lasterr=$? ++ ++ if test ! -d "$pathcomp"; then ++ errstatus=$lasterr ++ fi ++ fi ++ ++ pathcomp="$pathcomp/" ++ done ++done ++ ++exit $errstatus ++ ++# mkinstalldirs ends here +--- metamail-2.7.orig/Makefile.am ++++ metamail-2.7/Makefile.am +@@ -0,0 +1,14 @@ ++## Makefile.am -- Process this file with automake to produce Makefile.in ++ ++auxdir = @ac_aux_dir@ ++AUX_DIST = $(auxdir)/install-sh $(auxdir)/missing \ ++ $(auxdir)/mkinstalldirs ++AUX_DIST_EXTRA = $(auxdir)/readline.m4 $(auxdir)/sys_errlist.m4 \ ++ $(auxdir)/sys_siglist.m4 ++EXTRA_DIST = bootstrap ++ ++MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure \ ++ metamail/config-h.in metamail/stamp-h.in ++ ++SUBDIRS = replace metamail src bin ++ACLOCAL = aclocal -I $(auxdir) +--- metamail-2.7.orig/Makefile.in ++++ metamail-2.7/Makefile.in +@@ -0,0 +1,349 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 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. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = . ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++auxdir = @ac_aux_dir@ ++AUX_DIST = $(auxdir)/install-sh $(auxdir)/missing $(auxdir)/mkinstalldirs ++ ++AUX_DIST_EXTRA = $(auxdir)/readline.m4 $(auxdir)/sys_errlist.m4 $(auxdir)/sys_siglist.m4 ++ ++EXTRA_DIST = bootstrap ++ ++MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure metamail/config-h.in metamail/stamp-h.in ++ ++ ++SUBDIRS = replace metamail src bin ++ACLOCAL = aclocal -I $(auxdir) ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ./metamail/config.h ++CONFIG_CLEAN_FILES = ++DIST_COMMON = README COPYING INSTALL Makefile.am Makefile.in aclocal.m4 \ ++configure configure.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ++ cd $(srcdir) && $(ACLOCAL) ++ ++config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ $(SHELL) ./config.status --recheck ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) ++ cd $(srcdir) && $(AUTOCONF) ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run `make' without going through this Makefile. ++# To change the values of `make' variables: instead of editing Makefiles, ++# (1) if the variable is set in `config.status', edit `config.status' ++# (which will cause the Makefiles to be regenerated when you run `make'); ++# (2) otherwise, pass the desired values on the `make' command line. ++ ++@SET_MAKE@ ++ ++all-recursive install-data-recursive install-exec-recursive \ ++installdirs-recursive install-recursive uninstall-recursive \ ++check-recursive installcheck-recursive info-recursive dvi-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++mostlyclean-recursive clean-recursive distclean-recursive \ ++maintainer-clean-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ ++ rev="$$subdir $$rev"; \ ++ test "$$subdir" != "." || dot_seen=yes; \ ++ done; \ ++ test "$$dot_seen" = "no" && rev=". $$rev"; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ for subdir in $$rev; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done && test -z "$$fail" ++tags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(PACKAGE)-$(VERSION) ++top_distdir = $(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 ++ -rm -rf $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz ++ mkdir $(distdir)/=build ++ mkdir $(distdir)/=inst ++ dc_install_base=`cd $(distdir)/=inst && pwd`; \ ++ cd $(distdir)/=build \ ++ && ../configure --srcdir=.. --prefix=$$dc_install_base \ ++ && $(MAKE) $(AM_MAKEFLAGS) \ ++ && $(MAKE) $(AM_MAKEFLAGS) dvi \ ++ && $(MAKE) $(AM_MAKEFLAGS) check \ ++ && $(MAKE) $(AM_MAKEFLAGS) install \ ++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ++ && $(MAKE) $(AM_MAKEFLAGS) dist ++ -rm -rf $(distdir) ++ @banner="$(distdir).tar.gz is ready for distribution"; \ ++ dashes=`echo "$$banner" | sed s/./=/g`; \ ++ echo "$$dashes"; \ ++ echo "$$banner"; \ ++ echo "$$dashes" ++dist: distdir ++ -chmod -R a+r $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) ++ -rm -rf $(distdir) ++dist-all: distdir ++ -chmod -R a+r $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) ++ -rm -rf $(distdir) ++distdir: $(DISTFILES) ++ -rm -rf $(distdir) ++ mkdir $(distdir) ++ -chmod 777 $(distdir) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ for subdir in $(SUBDIRS); do \ ++ if test "$$subdir" = .; then :; else \ ++ test -d $(distdir)/$$subdir \ ++ || mkdir $(distdir)/$$subdir \ ++ || exit 1; \ ++ chmod 777 $(distdir)/$$subdir; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++info-am: ++info: info-recursive ++dvi-am: ++dvi: dvi-recursive ++check-am: all-am ++check: check-recursive ++installcheck-am: ++installcheck: installcheck-recursive ++install-exec-am: ++install-exec: install-exec-recursive ++ ++install-data-am: ++install-data: install-data-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-recursive ++uninstall-am: ++uninstall: uninstall-recursive ++all-am: Makefile ++all-redirect: all-recursive ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: installdirs-recursive ++installdirs-am: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-tags mostlyclean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++clean-am: clean-tags clean-generic mostlyclean-am ++ ++clean: clean-recursive ++ ++distclean-am: distclean-tags distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-recursive ++ -rm -f config.status ++ ++maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ ++ distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f config.status ++ ++.PHONY: install-data-recursive uninstall-data-recursive \ ++install-exec-recursive uninstall-exec-recursive installdirs-recursive \ ++uninstalldirs-recursive all-recursive check-recursive \ ++installcheck-recursive info-recursive dvi-recursive \ ++mostlyclean-recursive distclean-recursive clean-recursive \ ++maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-am install-data install-am install \ ++uninstall-am uninstall all-redirect all-am all installdirs-am \ ++installdirs mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# 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: +--- metamail-2.7.orig/stamp-h.in ++++ metamail-2.7/stamp-h.in +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/INSTALL ++++ metamail-2.7/INSTALL +@@ -0,0 +1,182 @@ ++Basic Installation ++================== ++ ++ These are generic installation instructions. ++ ++ The `configure' shell script attempts to guess correct values for ++various system-dependent variables used during compilation. It uses ++those values to create a `Makefile' in each directory of the package. ++It may also create one or more `.h' files containing system-dependent ++definitions. Finally, it creates a shell script `config.status' that ++you can run in the future to recreate the current configuration, a file ++`config.cache' that saves the results of its tests to speed up ++reconfiguring, and a file `config.log' containing compiler output ++(useful mainly for debugging `configure'). ++ ++ If you need to do unusual things to compile the package, please try ++to figure out how `configure' could check whether to do them, and mail ++diffs or instructions to the address given in the `README' so they can ++be considered for the next release. If at some point `config.cache' ++contains results you don't want to keep, you may remove or edit it. ++ ++ The file `configure.in' is used to create `configure' by a program ++called `autoconf'. You only need `configure.in' if you want to change ++it or regenerate `configure' using a newer version of `autoconf'. ++ ++The simplest way to compile this package is: ++ ++ 1. `cd' to the directory containing the package's source code and type ++ `./configure' to configure the package for your system. If you're ++ using `csh' on an old version of System V, you might need to type ++ `sh ./configure' instead to prevent `csh' from trying to execute ++ `configure' itself. ++ ++ Running `configure' takes awhile. While running, it prints some ++ messages telling which features it is checking for. ++ ++ 2. Type `make' to compile the package. ++ ++ 3. Optionally, type `make check' to run any self-tests that come with ++ the package. ++ ++ 4. Type `make install' to install the programs and any data files and ++ documentation. ++ ++ 5. You can remove the program binaries and object files from the ++ source code directory by typing `make clean'. To also remove the ++ files that `configure' created (so you can compile the package for ++ a different kind of computer), type `make distclean'. There is ++ also a `make maintainer-clean' target, but that is intended mainly ++ for the package's developers. If you use it, you may have to get ++ all sorts of other programs in order to regenerate files that came ++ with the distribution. ++ ++Compilers and Options ++===================== ++ ++ Some systems require unusual options for compilation or linking that ++the `configure' script does not know about. You can give `configure' ++initial values for variables by setting them in the environment. Using ++a Bourne-compatible shell, you can do that on the command line like ++this: ++ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure ++ ++Or on systems that have the `env' program, you can do it like this: ++ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure ++ ++Compiling For Multiple Architectures ++==================================== ++ ++ You can compile the package for more than one kind of computer at the ++same time, by placing the object files for each architecture in their ++own directory. To do this, you must use a version of `make' that ++supports the `VPATH' variable, such as GNU `make'. `cd' to the ++directory where you want the object files and executables to go and run ++the `configure' script. `configure' automatically checks for the ++source code in the directory that `configure' is in and in `..'. ++ ++ If you have to use a `make' that does not supports the `VPATH' ++variable, you have to compile the package for one architecture at a time ++in the source code directory. After you have installed the package for ++one architecture, use `make distclean' before reconfiguring for another ++architecture. ++ ++Installation Names ++================== ++ ++ By default, `make install' will install the package's files in ++`/usr/local/bin', `/usr/local/man', etc. You can specify an ++installation prefix other than `/usr/local' by giving `configure' the ++option `--prefix=PATH'. ++ ++ You can specify separate installation prefixes for ++architecture-specific files and architecture-independent files. If you ++give `configure' the option `--exec-prefix=PATH', the package will use ++PATH as the prefix for installing programs and libraries. ++Documentation and other data files will still use the regular prefix. ++ ++ In addition, if you use an unusual directory layout you can give ++options like `--bindir=PATH' to specify different values for particular ++kinds of files. Run `configure --help' for a list of the directories ++you can set and what kinds of files go in them. ++ ++ If the package supports it, you can cause programs to be installed ++with an extra prefix or suffix on their names by giving `configure' the ++option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. ++ ++Optional Features ++================= ++ ++ Some packages pay attention to `--enable-FEATURE' options to ++`configure', where FEATURE indicates an optional part of the package. ++They may also pay attention to `--with-PACKAGE' options, where PACKAGE ++is something like `gnu-as' or `x' (for the X Window System). The ++`README' should mention any `--enable-' and `--with-' options that the ++package recognizes. ++ ++ For packages that use the X Window System, `configure' can usually ++find the X include and library files automatically, but if it doesn't, ++you can use the `configure' options `--x-includes=DIR' and ++`--x-libraries=DIR' to specify their locations. ++ ++Specifying the System Type ++========================== ++ ++ There may be some features `configure' can not figure out ++automatically, but needs to determine by the type of host the package ++will run on. Usually `configure' can figure that out, but if it prints ++a message saying it can not guess the host type, give it the ++`--host=TYPE' option. TYPE can either be a short name for the system ++type, such as `sun4', or a canonical name with three fields: ++ CPU-COMPANY-SYSTEM ++ ++See the file `config.sub' for the possible values of each field. If ++`config.sub' isn't included in this package, then this package doesn't ++need to know the host type. ++ ++ If you are building compiler tools for cross-compiling, you can also ++use the `--target=TYPE' option to select the type of system they will ++produce code for and the `--build=TYPE' option to select the type of ++system on which you are compiling the package. ++ ++Sharing Defaults ++================ ++ ++ If you want to set default values for `configure' scripts to share, ++you can create a site shell script called `config.site' that gives ++default values for variables like `CC', `cache_file', and `prefix'. ++`configure' looks for `PREFIX/share/config.site' if it exists, then ++`PREFIX/etc/config.site' if it exists. Or, you can set the ++`CONFIG_SITE' environment variable to the location of the site script. ++A warning: not all `configure' scripts look for a site script. ++ ++Operation Controls ++================== ++ ++ `configure' recognizes the following options to control how it ++operates. ++ ++`--cache-file=FILE' ++ Use and save the results of the tests in FILE instead of ++ `./config.cache'. Set FILE to `/dev/null' to disable caching, for ++ debugging `configure'. ++ ++`--help' ++ Print a summary of the options to `configure', and exit. ++ ++`--quiet' ++`--silent' ++`-q' ++ Do not print messages saying which checks are being made. To ++ suppress all normal output, redirect it to `/dev/null' (any error ++ messages will still be shown). ++ ++`--srcdir=DIR' ++ Look for the package's source code in directory DIR. Usually ++ `configure' can determine that directory automatically. ++ ++`--version' ++ Print the version of Autoconf used to generate the `configure' ++ script, and exit. ++ ++`configure' also accepts some other, not widely useful, options. +--- metamail-2.7.orig/COPYING ++++ metamail-2.7/COPYING +@@ -0,0 +1,340 @@ ++ GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc. ++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Library General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ <one line to give the program's name and a brief idea of what it does.> ++ Copyright (C) <year> <name of author> ++ ++ 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 ++ ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ <signature of Ty Coon>, 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Library General ++Public License instead of this License. +--- metamail-2.7.orig/bootstrap ++++ metamail-2.7/bootstrap +@@ -0,0 +1,9 @@ ++#! /bin/sh ++ ++set -x ++ ++aclocal -I config ++libtoolize --force --copy ++autoheader ++automake --foreign --add-missing --copy ++autoconf diff --git a/source/n/metamail/slack-desc b/source/n/metamail/slack-desc new file mode 100644 index 000000000..65cdef8b3 --- /dev/null +++ b/source/n/metamail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +metamail: metamail (MIME extensions for mail) +metamail: +metamail: Metamail is an implementation of MIME, the Multipurpose Internet +metamail: Mail Extensions, a proposed standard for multimedia mail on the +metamail: Internet. Metamail implements MIME, and also implements extensibility +metamail: and configuration via the "mailcap" mechanism described in an +metamail: informational RFC that is a companion to the MIME document. +metamail: +metamail: +metamail: +metamail: diff --git a/source/n/mtr/mtr-0.73.configure.error.diff b/source/n/mtr/mtr-0.73.configure.error.diff new file mode 100644 index 000000000..896a5216d --- /dev/null +++ b/source/n/mtr/mtr-0.73.configure.error.diff @@ -0,0 +1,20 @@ +--- ./configure.orig 2008-04-07 11:32:49.000000000 -0500 ++++ ./configure 2008-07-24 12:57:20.000000000 -0500 +@@ -6737,17 +6737,6 @@ + + + rm -f conf.gtktest +- +- else +- AM_PATH_GTK(1.0.0, CFLAGS="$CFLAGS $GTK_CFLAGS" +- LIBS="$LIBS $GTK_LIBS", +- { echo "$as_me:$LINENO: WARNING: Building without GTK+ display support" >&5 +-echo "$as_me: WARNING: Building without GTK+ display support" >&2;} +- cat >>confdefs.h <<\_ACEOF +-#define NO_GTK 1 +-_ACEOF +- +- GTK_OBJ="") + fi + else + cat >>confdefs.h <<\_ACEOF diff --git a/source/n/mtr/mtr.SlackBuild b/source/n/mtr/mtr.SlackBuild new file mode 100755 index 000000000..91ed7be9d --- /dev/null +++ b/source/n/mtr/mtr.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2006 Eric Hameleers, Eindhoven, Netherlands +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PRGNAM=mtr +VERSION=0.73 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar xvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +zcat $CWD/mtr-0.73.configure.error.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root.root * +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --enable-gtk2 \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +chmod -s $PKG/usr/sbin/mtr + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* FORMATS INSTALL NEWS README* SECURITY TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Compress the man page(s) +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + +# Strip binaries +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mtr/slack-desc b/source/n/mtr/slack-desc new file mode 100644 index 000000000..3383d6660 --- /dev/null +++ b/source/n/mtr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mtr: mtr (a network diagnostic tool) +mtr: +mtr: mtr combines the functionality of the 'traceroute' and 'ping' programs +mtr: in a single network diagnostic tool. +mtr: +mtr: Matt Kimball wrote most of mtr, and mtr is currently maintained by +mtr: Roger Wolff. +mtr: +mtr: mtr has a home page: http://www.bitwizard.nl/mtr/ +mtr: +mtr: diff --git a/source/n/mutt/doinst.sh b/source/n/mutt/doinst.sh new file mode 100644 index 000000000..830fa2458 --- /dev/null +++ b/source/n/mutt/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/mutt/Muttrc.new diff --git a/source/n/mutt/mutt.SlackBuild b/source/n/mutt/mutt.SlackBuild new file mode 100755 index 000000000..e9ca32754 --- /dev/null +++ b/source/n/mutt/mutt.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.4.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mutt +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $(basename mutt-$VERSION i) +tar xvf $CWD/mutt-$VERSION.tar.bz2 || exit 1 +cd $(basename mutt-$VERSION i) || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --sysconfdir=/etc/mutt \ + --with-mailpath=/var/spool/mail \ + --enable-pop \ + --enable-imap \ + --with-ssl \ + --enable-locales-fix \ + --without-wc-funcs \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +# Don't mv the mutt docs directory, because mutt uses 'em. +# Make a link instead. +( cd $PKG/usr/doc ; rm -rf mutt-$VERSION ; ln -sf mutt mutt-$VERSION ) +# This stuff is redundant or not useful to most people, IMHO. +# If you want it, use the source, Luke. +rm -rf \ + $PKG/usr/doc/mutt/html \ + $PKG/usr/doc/mutt/ChangeLog + +mv $PKG/etc/mutt/Muttrc $PKG/etc/mutt/Muttrc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mutt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mutt/slack-desc b/source/n/mutt/slack-desc new file mode 100644 index 000000000..eda6d811d --- /dev/null +++ b/source/n/mutt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mutt: Mutt (the Mutt mail user agent) +mutt: +mutt: Mutt is a small but very powerful text-based MIME mail client. Mutt +mutt: is highly configurable, and is well suited to the mail power user with +mutt: advanced features like key bindings, keyboard macros, mail threading, +mutt: regular expression searches and a powerful pattern matching language +mutt: for selecting groups of messages. +mutt: +mutt: +mutt: +mutt: diff --git a/source/n/nc/nc-110-21.diff b/source/n/nc/nc-110-21.diff new file mode 100644 index 000000000..ad5ae8ad6 --- /dev/null +++ b/source/n/nc/nc-110-21.diff @@ -0,0 +1,787 @@ +--- netcat-1.10.orig/Makefile ++++ netcat-1.10/Makefile +@@ -14,8 +14,8 @@ + XLIBS = # xtra libs if necessary? + # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. + STATIC = +-CC = cc $(CFLAGS) +-LD = $(CC) -s # linker; defaults to stripped executables ++CC = gcc $(CFLAGS) ++LD = $(CC) # linker; defaults to unstripped executables + o = o # object extension + + ALL = nc +--- netcat-1.10.orig/debian/nc.1 ++++ netcat-1.10/debian/nc.1 +@@ -0,0 +1,146 @@ ++.TH NC 1 ++.SH NAME ++nc \- TCP/IP swiss army knife ++.SH SYNOPSIS ++.B nc ++.I "[-options] hostname port[s] [ports] ..." ++.br ++.B nc ++.I "-l -p port [-options] [hostname] [port]" ++.SH "DESCRIPTION" ++.B netcat ++is a simple unix utility which reads and writes data across network ++connections, using TCP or UDP protocol. It is designed to be a ++reliable "back-end" tool that can be used directly or easily driven by ++other programs and scripts. At the same time, it is a feature-rich ++network debugging and exploration tool, since it can create almost any ++kind of connection you would need and has several interesting built-in ++capabilities. Netcat, or "nc" as the actual program is named, should ++have been supplied long ago as another one of those cryptic but ++standard Unix tools. ++.P ++In the simplest usage, "nc host port" creates a TCP connection to the ++given port on the given target host. Your standard input is then sent ++to the host, and anything that comes back across the connection is ++sent to your standard output. This continues indefinitely, until the ++network side of the connection shuts down. Note that this behavior is ++different from most other applications which shut everything down and ++exit after an end-of-file on the standard input. ++.P ++Netcat can also function as a server, by listening for inbound ++connections on arbitrary ports and then doing the same reading and ++writing. With minor limitations, netcat doesn't really care if it ++runs in "client" or "server" mode -- it still shovels data back and ++forth until there isn't any more left. In either mode, shutdown can be ++forced after a configurable time of inactivity on the network side. ++.P ++And it can do this via UDP too, so netcat is possibly the "udp ++telnet-like" application you always wanted for testing your UDP-mode ++servers. UDP, as the "U" implies, gives less reliable data ++transmission than TCP connections and some systems may have trouble ++sending large amounts of data that way, but it's still a useful ++capability to have. ++.P ++You may be asking "why not just use telnet to connect to arbitrary ++ports?" Valid question, and here are some reasons. Telnet has the ++"standard input EOF" problem, so one must introduce calculated delays ++in driving scripts to allow network output to finish. This is the ++main reason netcat stays running until the *network* side closes. ++Telnet also will not transfer arbitrary binary data, because certain ++characters are interpreted as telnet options and are thus removed from ++the data stream. Telnet also emits some of its diagnostic messages to ++standard output, where netcat keeps such things religiously separated ++from its *output* and will never modify any of the real data in ++transit unless you *really* want it to. And of course telnet is ++incapable of listening for inbound connections, or using UDP instead. ++Netcat doesn't have any of these limitations, is much smaller and ++faster than telnet, and has many other advantages. ++.SH OPTIONS ++.TP 13 ++.I \-g gateway ++source-routing hop point[s], up to 8 ++.TP 13 ++.I \-G num ++source-routing pointer: 4, 8, 12, ... ++.TP 13 ++.I \-h ++display help ++.TP 13 ++.I \-i secs ++delay interval for lines sent, ports scanned ++.TP 13 ++.I \-l ++listen mode, for inbound connects ++.TP 13 ++.I \-n ++numeric-only IP addresses, no DNS ++.TP 13 ++.I \-o file ++hex dump of traffic ++.TP 13 ++.I \-p port ++local port number (port numbers can be individual or ranges: lo-hi ++[inclusive]) ++.TP 13 ++.I \-q seconds ++after EOF is detected, wait the specified number of seconds and then ++quit. ++.TP 13 ++.I \-b ++allow UDP broadcasts ++.TP 13 ++.I \-r ++randomize local and remote ports ++.TP 13 ++.I \-s addr ++local source address ++.TP 13 ++.I \-t ++enable telnet negotiation ++.TP 13 ++.I \-e prog ++specify program to exec after connect (use with caution) ++.TP 13 ++.I \-u ++UDP mode ++.TP 13 ++.I \-v ++verbose [use twice to be more verbose] ++.TP 13 ++.I \-w secs ++timeout for connects and final net reads ++.TP 13 ++.I \-z ++zero-I/O mode [used for scanning] ++.SH COPYRIGHT ++Netcat is entirely my own creation, although plenty of other code was ++used as examples. It is freely given away to the Internet community ++in the hope that it will be useful, with no restrictions except giving ++credit where it is due. No GPLs, Berkeley copyrights or any of that ++nonsense. The author assumes NO responsibility for how anyone uses ++it. If netcat makes you rich somehow and you're feeling generous, ++mail me a check. If you are affiliated in any way with Microsoft ++Network, get a life. Always ski in control. Comments, questions, and ++patches to hobbit@avian.org. ++.SH BUGS ++Efforts have been made to have netcat "do the right thing" in all its ++various modes. If you believe that it is doing the wrong thing under ++whatever circumstances, please notify me and tell me how you think it ++should behave. If netcat is not able to do some task you think up, ++minor tweaks to the code will probably fix that. It provides a basic ++and easily-modified template for writing other network applications, ++and I certainly encourage people to make custom mods and send in any ++improvements they make to it. Continued feedback from the Internet ++community is always welcome! ++.P ++Some port names in /etc/services contain hyphens -- netcat currently ++will not correctly parse those, so specify ranges using numbers if you ++can. ++.SH "SEE ALSO" ++/usr/share/doc/netcat/README.gz ++.SH AUTHOR ++This manual page was written by Joey Hess <joeyh@debian.org> and ++Robert Woodcock <rcw@debian.org>, cribbing heavily from Netcat's ++README file. ++.P ++Netcat was written by a guy we know as the Hobbit <hobbit@avian.org>. +--- netcat-1.10.orig/debian/control ++++ netcat-1.10/debian/control +@@ -0,0 +1,18 @@ ++Source: netcat ++Section: net ++Priority: optional ++Maintainer: Decklin Foster <decklin@red-bean.com> ++Standards-Version: 3.5.6 ++Build-Depends: debhelper (>= 3.0.0) ++ ++Package: netcat ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: TCP/IP swiss army knife ++ A simple Unix utility which reads and writes data across network ++ connections using TCP or UDP protocol. It is designed to be a reliable ++ "back-end" tool that can be used directly or easily driven by other ++ programs and scripts. At the same time it is a feature-rich network ++ debugging and exploration tool, since it can create almost any kind of ++ connection you would need and has several interesting built-in ++ capabilities. +--- netcat-1.10.orig/debian/netcat.examples ++++ netcat-1.10/debian/netcat.examples +@@ -0,0 +1,2 @@ ++data/ ++scripts/ +--- netcat-1.10.orig/debian/rules ++++ netcat-1.10/debian/rules +@@ -0,0 +1,64 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# This file is public domain software, originally written by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatibility version to use. ++export DH_COMPAT=3 ++ ++DEB_CFLAGS = -O2 ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++DEB_CFLAGS += -g ++endif ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ $(MAKE) linux CFLAGS='$(DEB_CFLAGS)' STATIC='' \ ++ DFLAGS='-DLINUX -DTELNET -DGAPING_SECURITY_HOLE' ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ # Add here commands to clean up after the build process. ++ -$(MAKE) clean ++ dh_clean ++ ++install: ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ install -m 0755 nc debian/netcat/usr/bin ++ ln -s nc debian/netcat/usr/bin/netcat ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installexamples ++# dh_installmenu ++ dh_installman ++ ln -s nc.1.gz debian/netcat/usr/share/man/man1/netcat.1.gz ++ dh_installchangelogs Changelog ++ dh_link ++ dh_strip ++ dh_compress -Xexamples ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- netcat-1.10.orig/debian/netcat.copyright ++++ netcat-1.10/debian/netcat.copyright +@@ -0,0 +1,12 @@ ++The netcat Debian package was originally created by Michael Shields ++<shields@crosslink.net>. It is currently maintained by Decklin Foster ++<decklin@red-bean.com>. ++ ++Netcat was written by *Hobbit* <hobbit@avian.org>, and can be ++downloaded from <URL:ftp://avian.org/src/hacks/>. ++ ++The following permission statement is excerpted from `netcat.blurb': ++ ++ Netcat and the associated package is a product of Avian Research, ++ and is freely available in full source form with no restrictions ++ save an obligation to give credit where due. +--- netcat-1.10.orig/debian/changelog ++++ netcat-1.10/debian/changelog +@@ -0,0 +1,157 @@ ++netcat (1.10-21) unstable; urgency=low ++ ++ * Documented -e in man page. (Closes: #131269) ++ ++ -- Decklin Foster <decklin@red-bean.com> Tue, 29 Jan 2002 16:30:30 -0500 ++ ++netcat (1.10-20) unstable; urgency=low ++ ++ * Moved around shutdown call in -q patch to be more compatible with standard ++ nc. Thanks to Dmitry Chernyak <cdl@inkasbank.ru> for pointing this out. ++ * Applied UDP broadcast patch from NetBSD (Closes: #108182) ++ - Updated man page to document this option ++ - Also applied patch to use inet_aton instead of IADDR_NONE (which is ++ obsolete), so that it will work. ++ * Bumped Standards-Version to 3.5.6 ++ ++ -- Decklin Foster <decklin@red-bean.com> Tue, 9 Oct 2001 18:08:24 -0400 ++ ++netcat (1.10-19) unstable; urgency=low ++ ++ * Reupload source package (my typo fix was lost due to a misconfigured ++ dput). This should really fix #97583. ++ ++ -- Decklin Foster <decklin@red-bean.com> Fri, 1 Jun 2001 18:18:17 -0400 ++ ++netcat (1.10-18) unstable; urgency=low ++ ++ * Applied patch from Joe Pepin <jdp@ll.mit.edu> to fix multiple timeouts ++ (Closes: #97583) ++ * Lookup services with getservbyname even if resolving hostnames with DNS is ++ disabled (Closes: #98902) ++ * Install a symlink to the nc binary called 'netcat'. (Closes: #97625) ++ ++ -- Decklin Foster <decklin@red-bean.com> Fri, 1 Jun 2001 13:13:25 -0400 ++ ++netcat (1.10-17) unstable; urgency=low ++ ++ * Added include for <resolv.h>, which is needed to compile with recent ++ versions of glibc. ++ * Added patch to always print "connection refused" messages, without having ++ to turn on the other junk that -v prints. (Closes: #65413) ++ * Upgraded to debhelper 3 and policy 3.5.2.0. ++ * Added DEB_BUILD_OPTIONS =~ /debug/ support. ++ ++ -- Decklin Foster <decklin@red-bean.com> Wed, 28 Feb 2001 16:53:33 -0500 ++ ++netcat (1.10-16) unstable; urgency=low ++ ++ * Rebuild with dpkg 1.8.1.2 to fix bad .diff.gz ++ ++ -- Decklin Foster <decklin@red-bean.com> Mon, 8 Jan 2001 14:54:48 -0500 ++ ++netcat (1.10-15) unstable; urgency=low ++ ++ * Add shutdown() patch back in (Closes: #81384) ++ * updated /usr/doc -> /usr/share/doc in man page. ++ ++ -- Decklin Foster <decklin@red-bean.com> Sat, 6 Jan 2001 08:58:21 -0500 ++ ++netcat (1.10-14) unstable; urgency=low ++ ++ * Ship with -e turned on. (Closes: #66355) ++ * Fix debian/copyright typo. ++ ++ -- Decklin Foster <decklin@red-bean.com> Sat, 30 Dec 2000 13:27:33 -0500 ++ ++netcat (1.10-13) unstable; urgency=low ++ ++ * New maintainer. (Closes: #80305) ++ * Updated debhelper rules to v2. Also cleaned up/moved some targets and dh_* ++ options. ++ * Bumped Standards-Version to 3.2.1.0. ++ * Compress README file, as per policy. ++ * Applied -q patch properly (Closes: #62402). I think that this is also what ++ caused #71616, but I'll hold off on closing that one. ++ * Added README.Debian explanation about -e. This is possibly the problem ++ behind #66355, so maybe I can close that as well. ++ ++ -- Decklin Foster <decklin@red-bean.com> Thu, 28 Dec 2000 19:02:56 -0500 ++ ++netcat (1.10-12.1) frozen unstable; urgency=low ++ ++ * Non-maintained upload. ++ * Rename arm() to arm_timer() (Closes: #56390) ++ ++ -- Edward Brocklesby <ejb@styx.uucp.openprojects.net> Tue, 22 Feb 2000 12:59:12 +0000 ++ ++netcat (1.10-12) unstable; urgency=low ++ ++ * Fixed bugs #45669 and #45675 (removed extraneous sleep(1) command and also ++ removed the "punt!" message; added -q feature) ++ ++ -- Robert S. Edmonds <stu@novare.net> Wed, 22 Sep 1999 19:29:47 -0400 ++ ++netcat (1.10-11) unstable; urgency=low ++ ++ * Applied patch from Graham Stoney <greyham@research.canon.com.au> that ++ fixes deadlock if the server doesn't close its end until it reads EOF on ++ the connection ++ ++ -- Robert S. Edmonds <stu@novare.net> Mon, 13 Sep 1999 21:53:59 -0400 ++ ++netcat (1.10-10) unstable; urgency=low ++ ++ * Man page fixed (/usr/doc/netcat/README.gz). Fixes bug #35811 ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Sat, 12 Jun 1999 15:21:31 -0400 ++ ++netcat (1.10-9) unstable; urgency=low ++ ++ * Compiled with -DTELNET. ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Wed, 4 Nov 1998 09:27:40 -0500 ++ ++netcat (1.10-8) unstable frozen; urgency=low ++ ++ * At the request of many users (and a few bug reports) the binary is now ++ going to be called "nc" as it always was. ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Sun, 26 Apr 1998 19:36:00 -0400 ++ ++netcat (1.10-7) unstable; urgency=low ++ ++ * Fixed lintian error possible-name-space-pollution. (binary nc -> netcat) ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Mon, 30 Mar 1998 19:11:49 -0500 ++ ++netcat (1.10-6) unstable; urgency=low ++ ++ * Upgraded to Standards-Version 2.4.0.0. ++ ++ -- Robert S. Edmonds <edmonds@freewwweb.com> Tue, 17 Feb 1998 13:06:22 -0500 ++ ++netcat (1.10-5) unstable; urgency=low ++ ++ * Merged in changes from Robert Woodcock <rcw@oz.net>. ++ - Man page updates. ++ - Compiled with -DTELNET ++ * Removed bogus menu file. ++ * Full source upload. ++ ++ -- Joey Hess <joeyh@master.debian.org> Sat, 10 Jan 1998 13:53:59 -0500 ++ ++netcat (1.10-4) unstable; urgency=low ++ ++ * Updated to "new" source format. (#9489) ++ * Libc6. (#11716) ++ * Orphaned the package. ++ * Fixed up description in control file to conform with policy, short ++ description doesn't include package name now. ++ * Fixed documentation location to comply with current policy. (#13194, ++ #11530, #9785) ++ * Wrote a man page. (#9785, #5304, #6647) ++ * Rewrote debian/rules to use debhelper. ++ * Install upstream changelog. ++ ++ -- Joey Hess <joeyh@master.debian.org> Sat, 10 Jan 1998 00:53:45 -0500 +--- netcat-1.10.orig/debian/netcat.manpages ++++ netcat-1.10/debian/netcat.manpages +@@ -0,0 +1 @@ ++debian/nc.1 +--- netcat-1.10.orig/debian/netcat.README.Debian ++++ netcat-1.10/debian/netcat.README.Debian +@@ -0,0 +1,17 @@ ++netcat for Debian ++----------------- ++ ++netcat has been compiled with -DGAPING_SECURITY_HOLE turned on. I do ++not believe this is as much of a security hole as the author makes it ++out to be, *if* you know what you're doing (but then, if you didn't, ++you'd still be using telnet ;-)). Since the spawned program will run ++as whatever user started netcat, don't use -e as root. You have been ++warned, so if some cracker breaks into your system due to your own ++stupidity, don't blame me. ++ ++A symlink to the netcat binary called 'netcat' has been installed. ++However, the canonical name is still 'nc'. If you use netcat on other ++systems, it will probably only be installed as 'nc', so keep this in ++mind when writing scripts. ++ ++ -- Decklin Foster <decklin@red-bean.com> Fri, 1 Jun 2001 13:38:10 -0400 +--- netcat-1.10.orig/debian/netcat.dirs ++++ netcat-1.10/debian/netcat.dirs +@@ -0,0 +1 @@ ++usr/bin +--- netcat-1.10.orig/debian/netcat.docs ++++ netcat-1.10/debian/netcat.docs +@@ -0,0 +1 @@ ++README +--- netcat-1.10.orig/netcat.c ++++ netcat-1.10/netcat.c +@@ -59,6 +59,14 @@ + #define RAND rand + #endif /* HAVE_RANDOM */ + ++/* #define POSIX_SETJMP /* If you want timeouts to work under the */ ++ /* posixly correct, yet non-standard glibc-2.x*/ ++ /* then define this- you may also need it for */ ++ /* IRIX, and maybe some others */ ++#ifdef LINUX ++#define POSIX_SETJMP ++#endif ++ + /* includes: */ + #include <sys/time.h> /* timeval, time_t */ + #include <setjmp.h> /* jmp_buf et al */ +@@ -73,6 +81,9 @@ + #include <errno.h> + #include <signal.h> + #include <fcntl.h> /* O_WRONLY et al */ ++#ifdef LINUX /* Linux needs the HERE, oh well. */ ++#include <resolv.h> ++#endif + + /* handy stuff: */ + #define SA struct sockaddr /* socket overgeneralization braindeath */ +@@ -106,7 +117,11 @@ + #define PINF struct port_poop + + /* globals: */ ++#ifdef POSIX_SETJMP ++sigjmp_buf jbuf; /* timer crud */ ++#else + jmp_buf jbuf; /* timer crud */ ++#endif + int jval = 0; /* timer crud */ + int netfd = -1; + int ofd = 0; /* hexdump output fd */ +@@ -151,6 +166,7 @@ + + /* global cmd flags: */ + USHORT o_alla = 0; ++USHORT o_allowbroad = 0; + unsigned int o_interval = 0; + USHORT o_listen = 0; + USHORT o_nflag = 0; +@@ -160,6 +176,7 @@ + USHORT o_verbose = 0; + unsigned int o_wait = 0; + USHORT o_zero = 0; ++int o_quit = -1; /* 0 == quit-now; >0 == quit after o_quit seconds */ + /* o_tn in optional section */ + + /* Debug macro: squirt whatever message and sleep a bit so we can see it go +@@ -211,7 +228,6 @@ + o_verbose = 1; + holler (str, p1, p2, p3, p4, p5, p6); + close (netfd); +- sleep (1); + exit (1); + } /* bail */ + +@@ -222,7 +238,15 @@ + errno = 0; + if (o_verbose > 1) /* normally we don't care */ + bail (wrote_txt, wrote_net, wrote_out); +- bail (" punt!"); ++ bail (""); ++} ++ ++/* quit : ++ handler for a "-q" timeout (exit 0 instead of 1) */ ++void quit() ++{ ++ close(netfd); ++ exit(0); + } + + /* timeout and other signal handling cruft */ +@@ -232,12 +256,16 @@ + alarm (0); + if (jval == 0) + bail ("spurious timer interrupt!"); ++#ifdef POSIX_SETJMP ++ siglongjmp (jbuf, jval); ++#else + longjmp (jbuf, jval); ++#endif + } + +-/* arm : ++/* arm_timer : + set the timer. Zero secs arg means unarm */ +-void arm (num, secs) ++void arm_timer (num, secs) + unsigned int num; + unsigned int secs; + { +@@ -250,7 +278,7 @@ + alarm (secs); + jval = num; + } /* if secs */ +-} /* arm */ ++} /* arm_timer */ + + /* Hmalloc : + malloc up what I want, rounded up to *4, and pre-zeroed. Either succeeds +@@ -333,6 +361,7 @@ + struct in_addr iaddr; + register HINF * poop = NULL; + register int x; ++ int rc; + + /* I really want to strangle the twit who dreamed up all these sockaddr and + hostent abstractions, and then forced them all to be incompatible with +@@ -361,9 +390,9 @@ + bail ("gethostpoop fuxored"); + strcpy (poop->name, unknown); /* preload it */ + /* see wzv:workarounds.c for dg/ux return-a-struct inet_addr lossage */ +- iaddr.s_addr = inet_addr (name); ++ rc = inet_aton(name, &iaddr); + +- if (iaddr.s_addr == INADDR_NONE) { /* here's the great split: names... */ ++ if (rc == 0) { /* here's the great split: names... */ + if (numeric) + bail ("Can't parse %s as an IP address", name); + hostent = gethostbyname (name); +@@ -444,8 +473,10 @@ + if (pstring) /* one or the other, pleeze */ + return (0); + x = pnum; +- if (o_nflag) /* go faster, skip getservbyblah */ +- goto gp_finish; ++ /* disabled, see bug #98902. if this is *really* slowing someone ++ * down I'll reconsider. */ ++ /* if (o_nflag) */ /* go faster, skip getservbyblah */ ++ /* goto gp_finish; */ + y = htons (x); /* gotta do this -- see Fig.1 below */ + servent = getservbyport (y, whichp); + if (servent) { +@@ -620,6 +651,13 @@ + rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof (x)); + if (rr == -1) + holler ("nnetfd reuseaddr failed"); /* ??? */ ++#ifdef SO_BROADCAST ++ if (o_allowbroad) { ++ rr = setsockopt (nnetfd, SOL_SOCKET, SO_BROADCAST, &x, sizeof (x)); ++ if (rr == -1) ++ holler ("nnetfd reuseaddr failed"); /* ??? */ ++ } ++#endif + #ifdef SO_REUSEPORT /* doesnt exist everywhere... */ + rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x)); + if (rr == -1) +@@ -743,14 +781,23 @@ + } /* if gatesidx */ + + /* wrap connect inside a timer, and hit it */ +- arm (1, o_wait); ++ arm_timer (1, o_wait); ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { ++ rr = connect (nnetfd, (SA *)remend, sizeof (SA)); ++ } else { /* setjmp: connect failed... */ ++ rr = -1; ++ errno = ETIMEDOUT; /* fake it */ ++ } ++#else + if (setjmp (jbuf) == 0) { + rr = connect (nnetfd, (SA *)remend, sizeof (SA)); + } else { /* setjmp: connect failed... */ + rr = -1; + errno = ETIMEDOUT; /* fake it */ + } +- arm (0, 0); ++#endif ++ arm_timer (0, 0); + if (rr == 0) + return (nnetfd); + close (nnetfd); /* clean up junked socket FD!! */ +@@ -820,14 +867,15 @@ + actually does work after all. Yow. YMMV on strange platforms! */ + if (o_udpmode) { + x = sizeof (SA); /* retval for recvfrom */ +- arm (2, o_wait); /* might as well timeout this, too */ +- if (setjmp (jbuf) == 0) { /* do timeout for initial connect */ ++ arm_timer (2, o_wait); /* might as well timeout this, too */ ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { /* do timeout for initial connect */ + rr = recvfrom /* and here we block... */ + (nnetfd, bigbuf_net, BIGSIZ, MSG_PEEK, (SA *) remend, &x); + Debug (("dolisten/recvfrom ding, rr = %d, netbuf %s ", rr, bigbuf_net)) + } else + goto dol_tmo; /* timeout */ +- arm (0, 0); ++ arm_timer (0, 0); + /* I'm not completely clear on how this works -- BSD seems to make UDP + just magically work in a connect()ed context, but we'll undoubtedly run + into systems this deal doesn't work on. For now, we apparently have to +@@ -842,15 +890,45 @@ + rr = connect (nnetfd, (SA *)remend, sizeof (SA)); + goto whoisit; + } /* o_udpmode */ ++#else ++ if (setjmp (jbuf) == 0) { /* do timeout for initial connect */ ++ rr = recvfrom /* and here we block... */ ++ (nnetfd, bigbuf_net, BIGSIZ, MSG_PEEK, (SA *) remend, &x); ++Debug (("dolisten/recvfrom ding, rr = %d, netbuf %s ", rr, bigbuf_net)) ++ } else ++ goto dol_tmo; /* timeout */ ++ arm (0, 0); ++/* I'm not completely clear on how this works -- BSD seems to make UDP ++ just magically work in a connect()ed context, but we'll undoubtedly run ++ into systems this deal doesn't work on. For now, we apparently have to ++ issue a connect() on our just-tickled socket so we can write() back. ++ Again, why the fuck doesn't it just get filled in and taken care of?! ++ This hack is anything but optimal. Basically, if you want your listener ++ to also be able to send data back, you need this connect() line, which ++ also has the side effect that now anything from a different source or even a ++ different port on the other end won't show up and will cause ICMP errors. ++ I guess that's what they meant by "connect". ++ Let's try to remember what the "U" is *really* for, eh? */ ++ rr = connect (nnetfd, (SA *)remend, sizeof (SA)); ++ goto whoisit; ++ } /* o_udpmode */ ++#endif + + /* fall here for TCP */ + x = sizeof (SA); /* retval for accept */ +- arm (2, o_wait); /* wrap this in a timer, too; 0 = forever */ ++ arm_timer (2, o_wait); /* wrap this in a timer, too; 0 = forever */ ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { ++ rr = accept (nnetfd, (SA *)remend, &x); ++ } else ++ goto dol_tmo; /* timeout */ ++#else + if (setjmp (jbuf) == 0) { + rr = accept (nnetfd, (SA *)remend, &x); + } else + goto dol_tmo; /* timeout */ +- arm (0, 0); ++#endif ++ arm_timer (0, 0); + close (nnetfd); /* dump the old socket */ + nnetfd = rr; /* here's our new one */ + +@@ -1216,6 +1294,18 @@ + if (rr <= 0) { /* at end, or fukt, or ... */ + FD_CLR (0, ding1); /* disable and close stdin */ + close (0); ++ /* if the user asked to exit on EOF, do it */ ++ if (o_quit == 0) { ++ shutdown(netfd, 1); ++ close (fd); ++ exit (0); ++ } ++ /* if user asked to die after a while, arrange for it */ ++ if (o_quit > 0) { ++ shutdown(netfd, 1); ++ signal (SIGALRM, quit); ++ alarm(o_quit); ++ } + } else { + rzleft = rr; + zp = bigbuf_in; +@@ -1389,12 +1479,14 @@ + + /* If your shitbox doesn't have getopt, step into the nineties already. */ + /* optarg, optind = next-argv-component [i.e. flag arg]; optopt = last-char */ +- while ((x = getopt (argc, argv, "ae:g:G:hi:lno:p:rs:tuvw:z")) != EOF) { ++ while ((x = getopt (argc, argv, "abe:g:G:hi:lno:p:q:rs:tuvw:z")) != EOF) { + /* Debug (("in go: x now %c, optarg %x optind %d", x, optarg, optind)) */ + switch (x) { + case 'a': + bail ("all-A-records NIY"); + o_alla++; break; ++ case 'b': ++ o_allowbroad++; break; + #ifdef GAPING_SECURITY_HOLE + case 'e': /* prog to exec */ + pr00gie = optarg; +@@ -1443,6 +1535,8 @@ + break; + case 'r': /* randomize various things */ + o_random++; break; ++ case 'q': /* quit after stdin does EOF */ ++ o_quit = atoi(optarg); break; + case 's': /* local source address */ + /* do a full lookup [since everything else goes through the same mill], + unless -n was previously specified. In fact, careful placement of -n can +@@ -1602,8 +1696,16 @@ + /* if we're scanning at a "one -v" verbosity level, don't print refusals. + Give it another -v if you want to see everything. */ + if ((Single || (o_verbose > 1)) || (errno != ECONNREFUSED)) ++ { ++ /* bug 65413 - if we're not scanning, we always want an ++ * error to be printed for refused connects. This is a ++ * disgustingly ugly way to do it, I really should just ++ * rewrite the holler() interface... */ ++ if (Single) o_verbose++; + holler ("%s [%s] %d (%s)", + whereto->name, whereto->addrs[0], curport, portpoop->name); ++ if (Single) o_verbose--; ++ } + } /* if netfd */ + close (netfd); /* just in case we didn't already */ + if (o_interval) +@@ -1642,6 +1744,7 @@ + -e prog program to exec after connect [dangerous!!]"); + #endif + holler ("\ ++ -b allow broadcasts\n\ + -g gateway source-routing hop point[s], up to 8\n\ + -G num source-routing pointer: 4, 8, 12, ...\n\ + -h this cruft\n\ +@@ -1651,6 +1754,7 @@ + -o file hex dump of traffic\n\ + -p port local port number\n\ + -r randomize local and remote ports\n\ ++ -q secs quit after EOF on stdin and delay of secs\n\ + -s addr local source address"); + #ifdef TELNET + holler ("\ diff --git a/source/n/nc/nc.SlackBuild b/source/n/nc/nc.SlackBuild new file mode 100755 index 000000000..aafa123ba --- /dev/null +++ b/source/n/nc/nc.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.10 +SRCVER=110 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nc +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf nc-$SRCVER +mkdir nc-$SRCVER +cd nc-$SRCVER +tar xvf $CWD/nc${SRCVER}.tgz || exit 1 +zcat $CWD/nc-110-21.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/nc.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make linux CFLAGS="$SLKCFLAGS" || exit 1 + +strip nc +mkdir -p $PKG/usr/bin +cat nc > $PKG/usr/bin/nc +chmod 755 $PKG/usr/bin/nc + +mkdir -p $PKG/usr/man/man1 +cat debian/nc.1 | gzip -9c > $PKG/usr/man/man1/nc.1.gz + +mkdir -p $PKG/usr/doc/nc-$VERSION +cp -a \ + Changelog README data netcat.blurb scripts \ + $PKG/usr/doc/nc-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/nc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nc/nc.diff b/source/n/nc/nc.diff new file mode 100644 index 000000000..5642e8167 --- /dev/null +++ b/source/n/nc/nc.diff @@ -0,0 +1,24 @@ +--- ./Makefile.orig 2002-05-28 14:17:29.000000000 -0700 ++++ ./Makefile 2002-05-28 14:28:57.000000000 -0700 +@@ -9,7 +9,7 @@ + # pick gcc if you'd rather , and/or do -g instead of -O if debugging + # debugging + # DFLAGS = -DTEST -DDEBUG +-CFLAGS = -O ++CFLAGS = -O -march=i386 -mcpu=i686 + XFLAGS = # xtra cflags, set by systype targets + XLIBS = # xtra libs if necessary? + # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. +@@ -66,8 +66,11 @@ + aix: + make -e $(ALL) $(MFLAGS) XFLAGS='-DAIX' + ++# The "GAPING_SECURITY_HOLE" is really not that gaping. Anything can be used in ++# a stupid way, IMHO. Besides, netpipes allows these same things and doesn't even ++# warn they might be insecure... just know what you're doing, and you'll be fine. + linux: +- make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC=-static ++ make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX -DTELNET -DGAPING_SECURITY_HOLE' + + # irix 5.2, dunno 'bout earlier versions. If STATIC='-non_shared' doesn't + # work for you, null it out and yell at SGI for their STUPID default diff --git a/source/n/nc/slack-desc b/source/n/nc/slack-desc new file mode 100644 index 000000000..a00d0ea4e --- /dev/null +++ b/source/n/nc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nc: nc (Netcat network utility) +nc: +nc: Netcat, or "nc" as the actual program is named, is a simple utility +nc: which reads and writes data across network connections, using TCP or +nc: UDP protocol. It is designed to be a reliable "back-end" tool that +nc: can be used directly or easily driven by other programs and scripts. +nc: At the same time, it is a feature-rich network debugging and +nc: exploration tool, since it can create almost any kind of connection +nc: you would need and has several interesting built-in capabilities. +nc: Netcat was written by *Hobbit* <hobbit@avian.org>, and is a product +nc: of Avian Research. diff --git a/source/n/ncftp/ncftp.SlackBuild b/source/n/ncftp/ncftp.SlackBuild new file mode 100755 index 000000000..81cc729a6 --- /dev/null +++ b/source/n/ncftp/ncftp.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + + +VERSION=3.2.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ncftp +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncftp-$VERSION +tar xvf $CWD/ncftp-$VERSION-src.tar.bz2 || exit 1 +cd ncftp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + rm -f ncftpspooler + ln -sf ncftpbatch ncftpspooler +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/ncftp-$VERSION +cp -a doc/* $PKG/usr/doc/ncftp-$VERSION +# Useless redundancy: +rm -r $PKG/usr/doc/ncftp-$VERSION/{html,man} + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ncftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ncftp/slack-desc b/source/n/ncftp/slack-desc new file mode 100644 index 000000000..61a0807d8 --- /dev/null +++ b/source/n/ncftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ncftp: ncftp (ftp client) +ncftp: +ncftp: NcFTP is a user interface to the Internet standard File Transfer +ncftp: Protocol. This program allows a user to transfer files to and from a +ncftp: remote network site, and offers additional features that are not found +ncftp: in the standard interface for ftp. +ncftp: +ncftp: +ncftp: +ncftp: +ncftp: diff --git a/source/n/net-snmp/doinst.sh b/source/n/net-snmp/doinst.sh new file mode 100644 index 000000000..4f1e48303 --- /dev/null +++ b/source/n/net-snmp/doinst.sh @@ -0,0 +1,23 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.snmpd.new: +if [ -e etc/rc.d/rc.snmpd ]; then + cp -a etc/rc.d/rc.snmpd etc/rc.d/rc.snmpd.new.incoming + cat etc/rc.d/rc.snmpd.new > etc/rc.d/rc.snmpd.new.incoming + mv etc/rc.d/rc.snmpd.new.incoming etc/rc.d/rc.snmpd.new +fi + +config etc/snmp/snmpd.conf.new +config etc/rc.d/rc.snmpd.new + diff --git a/source/n/net-snmp/net-snmp.SlackBuild b/source/n/net-snmp/net-snmp.SlackBuild new file mode 100755 index 000000000..a102b0e56 --- /dev/null +++ b/source/n/net-snmp/net-snmp.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=net-snmp +VERSION=${VERSION:-5.4.2.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/snmp \ + --mandir=/usr/man \ + --enable-ipv6 \ + --disable-debugging \ + --enable-static=no \ + --with-libwrap \ + --with-perl-modules \ + --with-default-snmp-version=3 \ + --with-sys-contact="root@example.org" \ + --with-sys-location="unknown" \ + --with-logfile="/var/log/snmpd.log" \ + --with-persistent-directory="/var/lib/net-snmp" \ + --without-rpm \ + --program-suffix= \ + --program-prefix= \ + --build=$ARCH-slackware-linux + +# Build and install: +# This seems to not play well with "-j N"... +make INSTALLDIRS=vendor || exit 1 +make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1 + +# Evidently --mandir=/usr/man doesn't catch everything... +if [ -d $PKG/usr/share/man/man3 ]; then + mkdir -p $PKG/usr/man/man3 + mv $PKG/usr/share/man/man3/* $PKG/usr/man/man3 + rmdir $PKG/usr/share/man/man3 $PKG/usr/share/man +fi +mkdir -p $PKG/usr +mv $PKG/usr/share/man $PKG/usr + +mkdir -p $PKG/var/lib/net-snmp +mkdir -p $PKG/etc/snmp +zcat $CWD/snmpd.conf.gz > $PKG/etc/snmp/snmpd.conf.new +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.snmpd > $PKG/etc/rc.d/rc.snmpd.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Remove perllocal files: +( cd $PKG ; find . -name perllocal.pod -exec rm "{}" \; ) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AGENT.txt CHANGES COPYING* CodingStyle EXAMPLE* FAQ \ + INSTALL NEWS PORTING README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/net-snmp/rc.snmpd b/source/n/net-snmp/rc.snmpd new file mode 100644 index 000000000..cd52366c6 --- /dev/null +++ b/source/n/net-snmp/rc.snmpd @@ -0,0 +1,54 @@ +#!/bin/sh +# +# rc.snmpd This shell script takes care of starting and stopping +# the net-snmp SNMP daemon + +OPTIONS="-A -p /var/run/snmpd -a" + +start() { + if [ -x /usr/sbin/snmpd -a -f /etc/snmp/snmpd.conf ]; then + echo -n "Starting snmpd: " + /usr/sbin/snmpd $OPTIONS -c /etc/snmp/snmpd.conf + echo " /usr/sbin/snmpd $OPTIONS -c /etc/snmp/snmpd.conf" + fi +} + +stop() { + # Stop daemons. + COUNT=0 + echo -n "Shutting down snmpd: " + while `killall snmpd 2>/dev/null`; do + echo -n "." + sleep 1 + COUNT=$((COUNT+1)) + if [ $COUNT -ge 30 ]; then + killall -9 snmpd + sleep 1 + break + fi + done + echo " DONE" +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + condrestart) + if [ -f /var/run/snmpd ]; then + stop + start + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart}" + ;; +esac diff --git a/source/n/net-snmp/slack-desc b/source/n/net-snmp/slack-desc new file mode 100644 index 000000000..7659f7fc8 --- /dev/null +++ b/source/n/net-snmp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +net-snmp: net-snmp (Simple Network Management Protocol tools) +net-snmp: +net-snmp: Various tools relating to the Simple Network Management Protocol: +net-snmp: +net-snmp: An extensible agent +net-snmp: An SNMP library +net-snmp: Tools to request or set information from SNMP agents +net-snmp: Tools to generate and handle SNMP traps +net-snmp: A version of the unix 'netstat' command using SNMP +net-snmp: A graphical Perl/Tk/SNMP based mib browser +net-snmp: diff --git a/source/n/net-snmp/snmpd.conf b/source/n/net-snmp/snmpd.conf new file mode 100644 index 000000000..51dce4edb --- /dev/null +++ b/source/n/net-snmp/snmpd.conf @@ -0,0 +1,455 @@ +############################################################################### +# +# snmpd.conf: +# An example configuration file for configuring the ucd-snmp snmpd agent. +# +############################################################################### +# +# This file is intended to only be as a starting point. Many more +# configuration directives exist than are mentioned in this file. For +# full details, see the snmpd.conf(5) manual page. +# +# All lines beginning with a '#' are comments and are intended for you +# to read. All other lines are configuration commands for the agent. + +############################################################################### +# Access Control +############################################################################### + +# As shipped, the snmpd demon will only respond to queries on the +# system mib group until this file is replaced or modified for +# security purposes. Examples are shown below about how to increase the +# level of access. + +# By far, the most common question I get about the agent is "why won't +# it work?", when really it should be "how do I configure the agent to +# allow me to access it?" +# +# By default, the agent responds to the "public" community for read +# only access, if run out of the box without any configuration file in +# place. The following examples show you other ways of configuring +# the agent so that you can change the community names, and give +# yourself write access to the mib tree as well. +# +# For more information, read the FAQ as well as the snmpd.conf(5) +# manual page. + +#### +# First, map the community name "public" into a "security name" + +# sec.name source community +com2sec notConfigUser default public + +#### +# Second, map the security name into a group name: + +# groupName securityModel securityName +group notConfigGroup v1 notConfigUser +group notConfigGroup v2c notConfigUser + +#### +# Third, create a view for us to let the group have rights to: + +# Make at least snmpwalk -v 1 localhost -c public system fast again. +# name incl/excl subtree mask(optional) +view systemview included .1.3.6.1.2.1.1 +view systemview included .1.3.6.1.2.1.25.1.1 + +#### +# Finally, grant the group read-only access to the systemview view. + +# group context sec.model sec.level prefix read write notif +access notConfigGroup "" any noauth exact systemview none none + +# ----------------------------------------------------------------------------- + +# Here is a commented out example configuration that allows less +# restrictive access. + +# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY +# KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO +# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE. + +## sec.name source community +#com2sec local localhost COMMUNITY +#com2sec mynetwork NETWORK/24 COMMUNITY + +## group.name sec.model sec.name +#group MyRWGroup any local +#group MyROGroup any mynetwork +# +#group MyRWGroup any otherv3user +#... + +## incl/excl subtree mask +#view all included .1 80 + +## -or just the mib2 tree- + +#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc + + +## context sec.model sec.level prefix read write notif +#access MyROGroup "" any noauth 0 all none none +#access MyRWGroup "" any noauth 0 all all all + + +############################################################################### +# Sample configuration to make net-snmpd RFC 1213. +# Unfortunately v1 and v2c don't allow any user based authentification, so +# opening up the default config is not an option from a security point. +# +# WARNING: If you uncomment the following lines you allow write access to your +# snmpd daemon from any source! To avoid this use different names for your +# community or split out the write access to a different community and +# restrict it to your local network. +# Also remember to comment the syslocation and syscontact parameters later as +# otherwise they are still read only (see FAQ for net-snmp). +# + +# First, map the community name "public" into a "security name" +# sec.name source community +#com2sec notConfigUser default public + +# Second, map the security name into a group name: +# groupName securityModel securityName +#group notConfigGroup v1 notConfigUser +#group notConfigGroup v2c notConfigUser + +# Third, create a view for us to let the group have rights to: +# Open up the whole tree for ro, make the RFC 1213 required ones rw. +# name incl/excl subtree mask(optional) +#view roview included .1 +#view rwview included system.sysContact +#view rwview included system.sysName +#view rwview included system.sysLocation +#view rwview included interfaces.ifTable.ifEntry.ifAdminStatus +#view rwview included at.atTable.atEntry.atPhysAddress +#view rwview included at.atTable.atEntry.atNetAddress +#view rwview included ip.ipForwarding +#view rwview included ip.ipDefaultTTL +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteDest +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric1 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric2 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric3 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric4 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteType +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteAge +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMask +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric5 +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType +#view rwview included tcp.tcpConnTable.tcpConnEntry.tcpConnState +#view rwview included egp.egpNeighTable.egpNeighEntry.egpNeighEventTrigger +#view rwview included snmp.snmpEnableAuthenTraps + +# Finally, grant the group read-only access to the systemview view. +# group context sec.model sec.level prefix read write notif +#access notConfigGroup "" any noauth exact roview rwview none + + + +############################################################################### +# System contact information +# + +# It is also possible to set the sysContact and sysLocation system +# variables through the snmpd.conf file: + +syslocation Unknown (edit /etc/snmp/snmpd.conf) +syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) + +# Example output of snmpwalk: +# % snmpwalk -v 1 localhost -c public system +# system.sysDescr.0 = "SunOS name sun4c" +# system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4 +# system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55 +# system.sysContact.0 = "Me <me@somewhere.org>" +# system.sysName.0 = "name" +# system.sysLocation.0 = "Right here, right now." +# system.sysServices.0 = 72 + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Process checks. +# +# The following are examples of how to use the agent to check for +# processes running on the host. The syntax looks something like: +# +# proc NAME [MAX=0] [MIN=0] +# +# NAME: the name of the process to check for. It must match +# exactly (ie, http will not find httpd processes). +# MAX: the maximum number allowed to be running. Defaults to 0. +# MIN: the minimum number to be running. Defaults to 0. + +# +# Examples (commented out by default): +# + +# Make sure mountd is running +#proc mountd + +# Make sure there are no more than 4 ntalkds running, but 0 is ok too. +#proc ntalkd 4 + +# Make sure at least one sendmail, but less than or equal to 10 are running. +#proc sendmail 10 1 + +# A snmpwalk of the process mib tree would look something like this: +# +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.2 +# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2 +# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3 +# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd" +# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd" +# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail" +# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4 +# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10 +# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running." +# enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = "" +# enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = "" +# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0 +# +# Note that the errorFlag for mountd is set to 1 because one is not +# running (in this case an rpc.mountd is, but thats not good enough), +# and the ErrMessage tells you what's wrong. The configuration +# imposed in the snmpd.conf file is also shown. +# +# Special Case: When the min and max numbers are both 0, it assumes +# you want a max of infinity and a min of 1. +# + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Executables/scripts +# + +# +# You can also have programs run by the agent that return a single +# line of output and an exit code. Here are two examples. +# +# exec NAME PROGRAM [ARGS ...] +# +# NAME: A generic name. +# PROGRAM: The program to run. Include the path! +# ARGS: optional arguments to be passed to the program + +# a simple hello world + +#exec echotest /bin/echo hello world + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +#exec shelltest /bin/sh /tmp/shtest + +# Then, +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.8 +# enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1 +# enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2 +# enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest" +# enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest" +# enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world" +# enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.extTable.extEntry.extResult.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extResult.2 = 35 +# enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0 + +# Note that the second line of the /tmp/shtest shell script is cut +# off. Also note that the exit status of 35 was returned. + +# ----------------------------------------------------------------------------- + + +############################################################################### +# disk checks +# + +# The agent can check the amount of available disk space, and make +# sure it is above a set limit. + +# disk PATH [MIN=100000] +# +# PATH: mount path to the disk in question. +# MIN: Disks with space below this value will have the Mib's errorFlag set. +# Default value = 100000. + +# Check the / partition and make sure it contains at least 10 megs. + +#disk / 10000 + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9 +# enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F +# enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0" +# enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000 +# enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130 +# enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325 +# enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092 +# enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# load average checks +# + +# load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +#load 12 14 14 + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.10 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3 +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15" +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36 +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Extensible sections. +# + +# This alleviates the multiple line output problem found in the +# previous executable mib by placing each mib in its own mib table: + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.50 +# enterprises.ucdavis.50.1.1 = 1 +# enterprises.ucdavis.50.2.1 = "shelltest" +# enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.50.100.1 = 35 +# enterprises.ucdavis.50.101.1 = "hello world." +# enterprises.ucdavis.50.101.2 = "hi there." +# enterprises.ucdavis.50.102.1 = 0 + +# Now the Output has grown to two lines, and we can see the 'hi +# there.' output as the second line from our shell script. +# +# Note that you must alter the mib.txt file to be correct if you want +# the .50.* outputs above to change to reasonable text descriptions. + +# Other ideas: +# +# exec .1.3.6.1.4.1.2021.51 ps /bin/ps +# exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top +# exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Pass through control. +# + +# Usage: +# pass MIBOID EXEC-COMMAND +# +# This will pass total control of the mib underneath the MIBOID +# portion of the mib to the EXEC-COMMAND. +# +# Note: You'll have to change the path of the passtest script to your +# source directory or install it in the given location. +# +# Example: (see the script for details) +# (commented out here since it requires that you place the +# script in the right location. (its not installed by default)) + +# pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/local/passtest + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.255 +# enterprises.ucdavis.255.1 = "life the universe and everything" +# enterprises.ucdavis.255.2.1 = 42 +# enterprises.ucdavis.255.2.2 = OID: 42.42.42 +# enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42 +# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1 +# enterprises.ucdavis.255.5 = 42 +# enterprises.ucdavis.255.6 = Gauge: 42 +# +# % snmpget -v 1 localhost public .1.3.6.1.4.1.2021.255.5 +# enterprises.ucdavis.255.5 = 42 +# +# % snmpset -v 1 localhost public .1.3.6.1.4.1.2021.255.1 s "New string" +# enterprises.ucdavis.255.1 = "New string" +# + +# For specific usage information, see the man/snmpd.conf.5 manual page +# as well as the local/passtest script used in the above example. + +# Added for support of bcm5820 cards. +pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat + +############################################################################### +# Further Information +# +# See the snmpd.conf manual page, and the output of "snmpd -H". diff --git a/source/n/net-tools/ipmask.8 b/source/n/net-tools/ipmask.8 new file mode 100644 index 000000000..2f9815010 --- /dev/null +++ b/source/n/net-tools/ipmask.8 @@ -0,0 +1,35 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH IPMASK 8 "29 April 2007" "Slackware Version 12.0.0" +.SH NAME +ipmask \- determine network and broadcast addresses given a decimal netmask and IP address. +.SH SYNOPSIS +.B ipmask <decimal netmask> <decimal IP address> +.BI packagename +.SH DESCRIPTION +.B ipmask +is a simple program to calculate broadcast and network addresses from a decimal netmask and a decimal IP address. It is used in the Slackware networking script /etc/rc.d/rc.inet1, and in the netconfig script. +.SH OPTIONS +.TP +.B \<decimal netmask> +A decimal netmask, such as: 255.255.255.0 +.TP +.B \<decimal IP address> +A decimal IP address, such as: 192.168.168.168 +.SH EXAMPLE +Using the above sample netmask and IP address, here's an example: +.TP +$ ipmask 255.255.255.0 192.168.168.168 +.TP +192.168.168.255 192.168.168.0 +.TP +The program returns first the corresponding broadcast address, and then the network address. +.SH AUTHOR +Copyright 1994 by David Niemi. Written in about 30 minutes on 13 Aug. The author places no restrictions on the use of this program, provided that this copyright is preserved in any derived source code. diff --git a/source/n/net-tools/ipmask.c b/source/n/net-tools/ipmask.c new file mode 100644 index 000000000..6be37c317 --- /dev/null +++ b/source/n/net-tools/ipmask.c @@ -0,0 +1,87 @@ +/* ipmask.c + * + * Given argv[1] as a decimal netmask and argv[2] as a decimal IP address, + * print the resulting broadcast and network addresses to stdout. This is + * potentially useful in scripts which need the broadcast address and the + * network address but want to ask the user as few questions as possible. + * + * Copyright 1994 by David Niemi. Written in about 30 minutes on 13 Aug. + * The author places no restrictions on the use of this program, provided + * that this copyright is preserved in any derived source code. + * + * Typical compilation command for Linux: + * cc ipmask.c -Wall -O -m486 -N -o ipmask -s + */ + +#define MYNAME "ipmask" + +#include <stdio.h> + +void Usage(void) { + fprintf (stderr, + "USAGE: %s <decimal netmask> <decimal IP address>\n", + MYNAME); +} + +int main(int argc, char *argv[]) +{ +unsigned long netmask, ipaddr, netaddr, broadcast; +int in[4], j; +unsigned char bc[4],na[4]; + + if (3 != argc) { + Usage(); + exit(1); + } + + /* Check netmask */ + if (4 != sscanf(argv[1],"%d.%d.%d.%d", &in[0],&in[1],&in[2],&in[3])) { + fprintf (stderr,"Invalid netmask \"%s\".\n", argv[1]); + Usage(); + exit(1); + } + for (j=0; j<4; ++j) { + if (in[j]<0 || in[j]>255) { + fprintf (stderr, + "Invalid octet %d in netmask \"%s\".\n", + j+1, argv[1]); + Usage(); + exit(1); + } + } + netmask = in[3] + 256 * (in[2] + 256 * (in[1] + 256 * in[0])); + + /* Check IP address */ + if (4 != sscanf(argv[2],"%d.%d.%d.%d", &in[0],&in[1],&in[2],&in[3])) { + fprintf (stderr,"Invalid IP address \"%s\".\n", argv[2]); + Usage(); + exit(1); + } + for (j=0; j<4; ++j) { + if (in[j]<0 || in[j]>255) { + fprintf (stderr, + "Invalid octet %d in IP address \"%s\".\n", + j+1, argv[1]); + Usage(); + exit(1); + } + } + ipaddr = in[3] + 256 * (in[2] + 256 * (in[1] + 256 * in[0])); + + broadcast = ipaddr | (~ netmask); + bc[0] = broadcast / 256 / 256 / 256; + bc[1] = (broadcast / 256 / 256) % 256; + bc[2] = (broadcast / 256) % 256; + bc[3] = broadcast % 256; + + netaddr = ipaddr & netmask; + na[0] = netaddr / 256 / 256 / 256; + na[1] = (netaddr / 256 / 256) % 256; + na[2] = (netaddr / 256) % 256; + na[3] = netaddr % 256; + + printf ("%d.%d.%d.%d %d.%d.%d.%d\n", + bc[0], bc[1], bc[2], bc[3], na[0], na[1], na[2], na[3]); + + exit(0); +} diff --git a/source/n/net-tools/net-tools.SlackBuild b/source/n/net-tools/net-tools.SlackBuild new file mode 100755 index 000000000..e757722aa --- /dev/null +++ b/source/n/net-tools/net-tools.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=net-tools +VERSION=${VERSION:-1.60} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +tar xjvf $CWD/net-tools-1.60.tar.bz2 || exit 1 +cd net-tools-1.60 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/net-tools_1.60-19.diff.gz | patch -p1 --backup --verbose || exit +zcat $CWD/net-tools.diff.gz | patch -p1 --backup --verbose || exit + +mkdir -p $PKG/usr/doc/net-tools-1.60 +cp -a README README.ipv6 $PKG/usr/doc/net-tools-1.60 +chmod 644 $PKG/usr/doc/net-tools-1.60/* +chown root:root $PKG/usr/doc/net-tools-1.60/* +HAVE_IP_TOOLS=1 HAVE_MII=1 make +HAVE_IP_TOOLS=1 HAVE_MII=1 make hostname +strip --strip-unneeded ipmaddr iptunnel hostname arp ifconfig nameif rarp route netstat plipconfig slattach mii-tool +mkdir -p $PKG/sbin $PKG/bin $PKG/usr/sbin +cat arp > $PKG/sbin/arp +cat ifconfig > $PKG/sbin/ifconfig +cat rarp > $PKG/sbin/rarp +cat route > $PKG/sbin/route +cat hostname > $PKG/bin/hostname +cat mii-tool > $PKG/sbin/mii-tool +cat nameif > $PKG/sbin/nameif +cat netstat > $PKG/bin/netstat +cat plipconfig > $PKG/sbin/plipconfig +cat slattach > $PKG/usr/sbin/slattach +cat ipmaddr > $PKG/sbin/ipmaddr +cat iptunnel > $PKG/sbin/iptunnel +chmod 755 $PKG/sbin/* $PKG/bin/* $PKG/usr/sbin/* +cd man/en_US +mkdir -p $PKG/usr/man/man{1,5,8} +for page in dnsdomainname.1 domainname.1 hostname.1 nisdomainname.1 \ + ypdomainname.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cat ethers.5 | gzip -9c > $PKG/usr/man/man5/ethers.5.gz +for page in arp.8 ifconfig.8 mii-tool.8 nameif.8 netstat.8 rarp.8 route.8 \ + slattach.8 plipconfig.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +( cd $PKG/bin + ln -sf hostname dnsdomainname + ln -sf hostname nisdomainname + ln -sf hostname ypdomainname +) + +# This is a little Slackware-specific tool used in some of the network +# related scripts to calculate network and broadcast addresses: +( cd $PKG/bin + cc -O2 -o ipmask $CWD/ipmask.c + strip --strip-unneeded ipmask + chmod 755 ipmask +) +cat $CWD/ipmask.8 | gzip -9c > $PKG/usr/man/man8/ipmask.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/net-tools/net-tools.diff b/source/n/net-tools/net-tools.diff new file mode 100644 index 000000000..a19af2026 --- /dev/null +++ b/source/n/net-tools/net-tools.diff @@ -0,0 +1,77 @@ +--- ./config.h.orig Wed Mar 21 21:23:31 2001 ++++ ./config.h Wed Mar 21 21:23:12 2001 +@@ -0,0 +1,74 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 0 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 0 ++#define HAVE_AFDECnet 0 ++#define HAVE_AFASH 0 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 0 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 0 ++#define HAVE_HWFDDI 0 ++#define HAVE_HWHIPPI 0 ++#define HAVE_HWASH 0 ++#define HAVE_HWHDLCLAPB 0 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 0 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 diff --git a/source/n/net-tools/net-tools_1.60-19.diff b/source/n/net-tools/net-tools_1.60-19.diff new file mode 100644 index 000000000..f754f02d5 --- /dev/null +++ b/source/n/net-tools/net-tools_1.60-19.diff @@ -0,0 +1,29401 @@ +--- net-tools-1.60.orig/lib/ether.c ++++ net-tools-1.60/lib/ether.c +@@ -2,7 +2,7 @@ + * lib/ether.c This file contains an implementation of the "Ethernet" + * support functions. + * +- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $ ++ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -39,7 +39,7 @@ + { + static char buff[64]; + +- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X", ++ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x", + (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); +--- net-tools-1.60.orig/lib/inet6.c ++++ net-tools-1.60/lib/inet6.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (most of it copied from lib/inet.c 1.26). + * +- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $ ++ * Version: $Id: inet6.c,v 1.12 2002/12/10 01:03:09 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -44,6 +44,21 @@ + + extern int h_errno; /* some netdb.h versions don't export this */ + ++char * fix_v4_address(char *buf, struct in6_addr *in6) ++{ ++ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) { ++ char *s =strchr(buf, '.'); ++ if (s) { ++ while (s > buf && *s != ':') ++ --s; ++ if (*s == ':') ++s; ++ else s = NULL; ++ } ++ if (s) return s; ++ } ++ return buf; ++} ++ + static int INET6_resolve(char *name, struct sockaddr_in6 *sin6) + { + struct addrinfo req, *ai; +@@ -83,14 +98,14 @@ + return (-1); + } + if (numeric & 0x7FFF) { +- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80); ++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80); + return (0); + } + if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { + if (numeric & 0x8000) + strcpy(name, "default"); + else +- strcpy(name, "*"); ++ strcpy(name, "[::]"); + return (0); + } + +@@ -109,13 +124,14 @@ + } + + ++ + /* Display an Internet socket address. */ + static char *INET6_print(unsigned char *ptr) + { + static char name[80]; + + inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80); +- return name; ++ return fix_v4_address(name, (struct in6_addr *)ptr); + } + + +@@ -129,13 +145,14 @@ + return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff)); + if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0) + return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff)); +- return (buff); ++ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr)); + } + + + static int INET6_getsock(char *bufp, struct sockaddr *sap) + { + struct sockaddr_in6 *sin6; ++ char *p; + + sin6 = (struct sockaddr_in6 *) sap; + sin6->sin6_family = AF_INET6; +@@ -143,7 +160,9 @@ + + if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0) + return (-1); +- ++ p = fix_v4_address(bufp, &sin6->sin6_addr); ++ if (p != bufp) ++ memcpy(bufp, p, strlen(p)+1); + return 16; /* ?;) */ + } + +--- net-tools-1.60.orig/lib/inet6_gr.c ++++ net-tools-1.60/lib/inet6_gr.c +@@ -1,4 +1,4 @@ +-/* ++ /* + Modifications: + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets, + snprintf instead of sprintf +@@ -71,11 +71,15 @@ + printf(_("INET6 (IPv6) not configured in this system.\n")); + return 1; + } +- printf(_("Kernel IPv6 routing table\n")); + +- printf(_("Destination " +- "Next Hop " +- "Flags Metric Ref Use Iface\n")); ++ if (numeric & RTF_CACHE) ++ printf(_("Kernel IPv6 routing cache\n")); ++ else ++ printf(_("Kernel IPv6 routing table\n")); ++ ++ printf(_("Destination " ++ "Next Hop " ++ "Flag Met Ref Use If\n")); + + while (fgets(buff, 1023, fp)) { + num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n", +@@ -87,13 +91,19 @@ + &slen, + naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3], + naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7], +- &metric, &use, &refcnt, &iflags, iface); ++ &metric, &refcnt, &use, &iflags, iface); + #if 0 + if (num < 23) + continue; + #endif +- if (!(iflags & RTF_UP)) +- continue; ++ if (iflags & RTF_CACHE) { ++ if (!(numeric & RTF_CACHE)) ++ continue; ++ } else { ++ if (numeric & RTF_CACHE) ++ continue; ++ } ++ + /* Fetch and resolve the target address. */ + snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s", + addr6p[0], addr6p[1], addr6p[2], addr6p[3], +@@ -112,7 +122,12 @@ + inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1)); + + /* Decode the flags. */ +- strcpy(flags, "U"); ++ ++ flags[0]=0; ++ if (iflags & RTF_UP) ++ strcat(flags, "U"); ++ if (iflags & RTF_REJECT) ++ strcat(flags, "!"); + if (iflags & RTF_GATEWAY) + strcat(flags, "G"); + if (iflags & RTF_HOST) +@@ -123,9 +138,19 @@ + strcat(flags, "A"); + if (iflags & RTF_CACHE) + strcat(flags, "C"); ++ if (iflags & RTF_ALLONLINK) ++ strcat(flags, "a"); ++ if (iflags & RTF_EXPIRES) ++ strcat(flags, "e"); ++ if (iflags & RTF_MODIFIED) ++ strcat(flags, "m"); ++ if (iflags & RTF_NONEXTHOP) ++ strcat(flags, "n"); ++ if (iflags & RTF_FLOW) ++ strcat(flags, "f"); + + /* Print the info. */ +- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n", ++ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n", + addr6, naddr6, flags, metric, refcnt, use, iface); + } + +@@ -144,8 +169,7 @@ + char addr6p[8][5], haddrp[6][3]; + + if (!fp) { +- ESYSNOT("nd_print", "ND Table"); +- return 1; ++ return rprint_fib6(ext, numeric | RTF_CACHE); + } + printf(_("Kernel IPv6 Neighbour Cache\n")); + +--- net-tools-1.60.orig/lib/ipx_gr.c ++++ net-tools-1.60/lib/ipx_gr.c +@@ -38,21 +38,27 @@ + char net[128], router_net[128]; + char router_node[128]; + int num; +- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r"); ++ FILE *fp; + struct aftype *ap; + struct sockaddr sa; + +- if ((ap = get_afntype(AF_IPX)) == NULL) { +- EINTERN("lib/ipx_rt.c", "AF_IPX missing"); +- return (-1); +- } ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r"); + + if (!fp) { +- perror(_PATH_PROCNET_IPX_ROUTE); +- printf(_("IPX not configured in this system.\n")); ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r"); ++ } ++ ++ if (!fp) { ++ perror(NULL); ++ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2); + return 1; + } + ++ if ((ap = get_afntype(AF_IPX)) == NULL) { ++ EINTERN("lib/ipx_rt.c", "AF_IPX missing"); ++ return (-1); ++ } ++ + printf(_("Kernel IPX routing table\n")); /* xxx */ + printf(_("Destination Router Net Router Node\n")); + +--- net-tools-1.60.orig/lib/proc.c ++++ net-tools-1.60/lib/proc.c +@@ -1,11 +1,12 @@ + /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */ +-/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */ ++/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */ + /* Fixme: cannot currently cope with removed fields */ + + #include <string.h> + #include <stdarg.h> + #include <stdio.h> + #include <ctype.h> ++#include <unistd.h> + + /* Caller must free return string. */ + +@@ -72,3 +73,22 @@ + va_end(ap); + return flag; + } ++ ++ ++FILE *proc_fopen(const char *name) ++{ ++ static char *buffer; ++ static size_t pagesz; ++ FILE *fd = fopen(name, "r"); ++ ++ if (fd == NULL) ++ return NULL; ++ ++ if (!buffer) { ++ pagesz = getpagesize(); ++ buffer = malloc(pagesz); ++ } ++ ++ setvbuf(fd, buffer, _IOFBF, pagesz); ++ return fd; ++} +--- net-tools-1.60.orig/lib/proc.h ++++ net-tools-1.60/lib/proc.h +@@ -1,5 +1,7 @@ +- +- +-/* Generate a suitable scanf format for a column title line */ ++/* ++ * prototypes for proc.c ++ */ + char *proc_gen_fmt(char *name, int more, FILE * fh,...); + int proc_guess_fmt(char *name, FILE* fh,...); ++FILE *proc_fopen(const char *name); ++ +--- net-tools-1.60.orig/lib/util-ank.c ++++ net-tools-1.60/lib/util-ank.c +@@ -293,7 +293,7 @@ + return 0; + } + +-const char *format_host(int af, void *addr, __u8 *abuf, int alen) ++const char *format_host(int af, void *addr, char *abuf, int alen) + { + #ifdef RESOLVE_HOSTNAMES + if (resolve_hosts) { +--- net-tools-1.60.orig/lib/Makefile ++++ net-tools-1.60/lib/Makefile +@@ -16,7 +16,7 @@ + # + + +-HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o ++HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o + AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o + AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o + AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o +--- net-tools-1.60.orig/lib/ddp_gr.c ++++ net-tools-1.60/lib/ddp_gr.c +@@ -1,3 +1,20 @@ ++/* ++ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table ++ * used by the NET-LIB. ++ * ++ * NET-LIB ++ * ++ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $ ++ * ++ * Author: Ajax <ajax@firest0rm.org> ++ * ++ * Modification: ++ * 2002-06-02 integrated into main source by Bernd Eckenfels ++ * ++ */ ++ ++/* TODO: name lookups (/etc/atalk.names? NBP?) */ ++ + #include "config.h" + + #if HAVE_AFATALK +@@ -16,9 +33,61 @@ + #include "pathnames.h" + #include "intl.h" + ++/* stolen from inet_gr.c */ ++#define flags_decode(i,o) do { \ ++ o[0] = '\0'; \ ++ if (i & RTF_UP) strcat(o, "U"); \ ++ if (i & RTF_GATEWAY) strcat(o, "G"); \ ++ if (i & RTF_REJECT) strcat(o, "!"); \ ++ if (i & RTF_HOST) strcat(o, "H"); \ ++ if (i & RTF_REINSTATE) strcat(o, "R"); \ ++ if (i & RTF_DYNAMIC) strcat(o, "D"); \ ++ if (i & RTF_MODIFIED) strcat(o, "M"); \ ++ if (i & RTF_DEFAULT) strcat(o, "d"); \ ++ if (i & RTF_ALLONLINK) strcat(o, "a"); \ ++ if (i & RTF_ADDRCONF) strcat(o, "c"); \ ++ if (i & RTF_NONEXTHOP) strcat(o, "o"); \ ++ if (i & RTF_EXPIRES) strcat(o, "e"); \ ++ if (i & RTF_CACHE) strcat(o, "c"); \ ++ if (i & RTF_FLOW) strcat(o, "f"); \ ++ if (i & RTF_POLICY) strcat(o, "p"); \ ++ if (i & RTF_LOCAL) strcat(o, "l"); \ ++ if (i & RTF_MTU) strcat(o, "u"); \ ++ if (i & RTF_WINDOW) strcat(o, "w"); \ ++ if (i & RTF_IRTT) strcat(o, "i"); \ ++ if (i & RTF_NOTCACHED) strcat(o, "n"); \ ++ } while (0) ++ + int DDP_rprint(int options) + { +- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n")); +- return (1); ++ FILE *fp; ++ char *dest, *gw, *dev, *flags; ++ char oflags[32]; ++ char *hdr = "Destination Gateway Device Flags"; ++ ++ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r"); ++ ++ if (!fp) { ++ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE); ++ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n"); ++ return 1; ++ } ++ ++ fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev); ++ free(dest); free(gw); free(dev); free(flags); ++ ++ printf("%s\n", hdr); ++ ++ while (fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev) == 4) { ++ int iflags = atoi(flags); ++ flags_decode(iflags, oflags); ++ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags); ++ free(dest); free(gw); free(dev); free(flags); ++ } ++ ++ fclose(fp); ++ ++ return 0; ++ + } + #endif +--- net-tools-1.60.orig/lib/hw.c ++++ net-tools-1.60/lib/hw.c +@@ -2,7 +2,7 @@ + * lib/hw.c This file contains the top-level part of the hardware + * support functions module. + * +- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $ ++ * Version: $Id: hw.c,v 1.18 2001/11/12 02:12:05 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -73,6 +73,8 @@ + + extern struct hwtype ec_hwtype; + ++extern struct hwtype eui64_hwtype; ++ + static struct hwtype *hwtypes[] = + { + +@@ -144,6 +146,9 @@ + #if HAVE_HWX25 + &x25_hwtype, + #endif ++#if HAVE_HWEUI64 ++ &eui64_hwtype, ++#endif + &unspec_hwtype, + NULL + }; +@@ -217,6 +222,9 @@ + #if HAVE_HWEC + ec_hwtype.title = _("Econet"); + #endif ++#if HAVE_HWEUI64 ++ eui64_hwtype.title = _("Generic EUI-64"); ++#endif + sVhwinit = 1; + } + +--- net-tools-1.60.orig/lib/inet.c ++++ net-tools-1.60/lib/inet.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (NET-3 base distribution). + * +- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $ ++ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -144,7 +144,7 @@ + struct hostent *ent; + struct netent *np; + struct addr *pn; +- unsigned long ad, host_ad; ++ u_int32_t ad, host_ad; + int host = 0; + + /* Grmpf. -FvK */ +@@ -155,7 +155,7 @@ + errno = EAFNOSUPPORT; + return (-1); + } +- ad = (unsigned long) sin->sin_addr.s_addr; ++ ad = sin->sin_addr.s_addr; + #ifdef DEBUG + fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric); + #endif +--- net-tools-1.60.orig/lib/inet_sr.c ++++ net-tools-1.60/lib/inet_sr.c +@@ -3,6 +3,7 @@ + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets + 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names + over networks (or even reject) ++ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;) + */ + + #include "config.h" +@@ -104,7 +105,6 @@ + isnet = 1; break; + case 2: + isnet = 0; break; +- default: + } + + /* Fill in the other fields. */ +--- net-tools-1.60.orig/lib/ipx.c ++++ net-tools-1.60/lib/ipx.c +@@ -133,6 +133,9 @@ + char *ep; + int nbo; + ++ if (!sai) ++ return (-1); ++ + sai->sipx_family = AF_IPX; + sai->sipx_network = htonl(0); + sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] = +--- net-tools-1.60.orig/lib/interface.c ++++ net-tools-1.60/lib/interface.c +@@ -7,7 +7,7 @@ + 8/2000 Andi Kleen make the list operations a bit more efficient. + People are crazy enough to use thousands of aliases now. + +- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $ ++ $Id: interface.c,v 1.28 2003/05/29 02:09:14 ecki Exp $ + */ + + #include "config.h" +@@ -23,6 +23,7 @@ + #include <string.h> + #include <unistd.h> + #include <ctype.h> ++#include <string.h> + + #if HAVE_AFIPX + #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +@@ -87,14 +88,20 @@ + + int ife_short; + ++int if_list_all = 0; /* do we have requested the complete proc list, yet? */ ++ + static struct interface *int_list, *int_last; + + static int if_readlist_proc(char *); + +-static struct interface *add_interface(char *name) ++static struct interface *if_cache_add(char *name) + { + struct interface *ife, **nextp, *new; + ++ if (!int_list) ++ int_last = NULL; ++ ++ /* the cache is sorted, so if we hit a smaller if, exit */ + for (ife = int_last; ife; ife = ife->prev) { + int n = nstrcmp(ife->name, name); + if (n == 0) +@@ -104,7 +111,7 @@ + } + new(new); + safe_strncpy(new->name, name, IFNAMSIZ); +- nextp = ife ? &ife->next : &int_list; ++ nextp = ife ? &ife->next : &int_list; // keep sorting + new->prev = ife; + new->next = *nextp; + if (new->next) +@@ -117,19 +124,22 @@ + + struct interface *lookup_interface(char *name) + { +- struct interface *ife = NULL; +- +- if (if_readlist_proc(name) < 0) +- return NULL; +- ife = add_interface(name); +- return ife; ++ /* if we have read all, use it */ ++ if (if_list_all) ++ return if_cache_add(name); ++ ++ /* otherwise we read a limited list */ ++ if (if_readlist_proc(name) < 0) ++ return NULL; ++ ++ return if_cache_add(name); + } + + int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie) + { + struct interface *ife; + +- if (!int_list && (if_readlist() < 0)) ++ if (!if_list_all && (if_readlist() < 0)) + return -1; + for (ife = int_list; ife; ife = ife->next) { + int err = doit(ife, cookie); +@@ -139,13 +149,15 @@ + return 0; + } + +-int free_interface_list(void) ++int if_cache_free(void) + { + struct interface *ife; + while ((ife = int_list) != NULL) { + int_list = ife->next; + free(ife); + } ++ int_last = NULL; ++ if_list_all = 0; + return 0; + } + +@@ -180,7 +192,7 @@ + } + if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) { + /* assume it overflowed and try again */ +- numreqs += 10; ++ numreqs *= 2; + continue; + } + break; +@@ -188,7 +200,7 @@ + + ifr = ifc.ifc_req; + for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) { +- add_interface(ifr->ifr_name); ++ if_cache_add(ifr->ifr_name); + ifr++; + } + err = 0; +@@ -198,7 +210,7 @@ + return err; + } + +-static char *get_name(char *name, char *p) ++char *get_name(char *name, char *p) + { + while (isspace(*p)) + p++; +@@ -206,16 +218,19 @@ + if (isspace(*p)) + break; + if (*p == ':') { /* could be an alias */ +- char *dot = p, *dotname = name; +- *name++ = *p++; +- while (isdigit(*p)) +- *name++ = *p++; +- if (*p != ':') { /* it wasn't, backup */ +- p = dot; +- name = dotname; ++ char *dot = p++; ++ while (*p && isdigit(*p)) p++; ++ if (*p == ':') { ++ /* Yes it is, backup and copy it. */ ++ p = dot; ++ *name++ = *p++; ++ while (*p && isdigit(*p)) { ++ *name++ = *p++; ++ } ++ } else { ++ /* No, it isn't */ ++ p = dot; + } +- if (*p == '\0') +- return NULL; + p++; + break; + } +@@ -225,7 +240,7 @@ + return p; + } + +-static int procnetdev_version(char *buf) ++int procnetdev_version(char *buf) + { + if (strstr(buf, "compressed")) + return 3; +@@ -234,12 +249,12 @@ + return 1; + } + +-static int get_dev_fields(char *bp, struct interface *ife) ++int get_dev_fields(char *bp, struct interface *ife) + { + switch (procnetdev_vsn) { + case 3: + sscanf(bp, +- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu", ++ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -259,7 +274,7 @@ + &ife->stats.tx_compressed); + break; + case 2: +- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -277,7 +292,7 @@ + ife->stats.rx_multicast = 0; + break; + case 1: +- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_packets, + &ife->stats.rx_errors, + &ife->stats.rx_dropped, +@@ -300,22 +315,16 @@ + + static int if_readlist_proc(char *target) + { +- static int proc_read; + FILE *fh; + char buf[512]; + struct interface *ife; + int err; + +- if (proc_read) +- return 0; +- if (!target) +- proc_read = 1; +- + fh = fopen(_PATH_PROCNET_DEV, "r"); + if (!fh) { + fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"), + _PATH_PROCNET_DEV, strerror(errno)); +- return if_readconf(); ++ return -2; + } + fgets(buf, sizeof buf, fh); /* eat line */ + fgets(buf, sizeof buf, fh); +@@ -350,7 +359,7 @@ + while (fgets(buf, sizeof buf, fh)) { + char *s, name[IFNAMSIZ]; + s = get_name(name, buf); +- ife = add_interface(name); ++ ife = if_cache_add(name); + get_dev_fields(s, ife); + ife->statistics_valid = 1; + if (target && !strcmp(target,name)) +@@ -359,7 +368,6 @@ + if (ferror(fh)) { + perror(_PATH_PROCNET_DEV); + err = -1; +- proc_read = 0; + } + + #if 0 +@@ -371,9 +379,16 @@ + + int if_readlist(void) + { +- int err = if_readlist_proc(NULL); +- if (!err) +- err = if_readconf(); ++ /* caller will/should check not to call this too often ++ * (i.e. only if if_list_all == 0 ++ */ ++ int err = 0; ++ ++ err |= if_readlist_proc(NULL); ++ err |= if_readconf(); ++ ++ if_list_all = 1; ++ + return err; + } + +@@ -579,11 +594,11 @@ + + void ife_print_short(struct interface *ptr) + { +- printf("%-5.5s ", ptr->name); +- printf("%5d %3d", ptr->mtu, ptr->metric); ++ printf("%-9s ", ptr->name); ++ printf("%5d %-2d ", ptr->mtu, ptr->metric); + /* If needed, display the interface statistics. */ + if (ptr->statistics_valid) { +- printf("%8llu %6lu %6lu %6lu", ++ printf("%8llu %6lu %6lu %-6lu ", + ptr->stats.rx_packets, ptr->stats.rx_errors, + ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors); + printf("%8llu %6lu %6lu %6lu ", +@@ -636,8 +651,8 @@ + int hf; + int can_compress = 0; + unsigned long long rx, tx, short_rx, short_tx; +- char Rext[5]="b"; +- char Text[5]="b"; ++ const char *Rext = "B"; ++ const char *Text = "B"; + + #if HAVE_AFIPX + static struct aftype *ipxtype = NULL; +@@ -670,7 +685,7 @@ + if (hw == NULL) + hw = get_hwntype(-1); + +- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title); ++ printf(_("%-9s Link encap:%s "), ptr->name, hw->title); + /* For some hardware types (eg Ash, ATM) we don't print the + hardware address if it's null. */ + if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && +@@ -843,10 +858,38 @@ + tx = ptr->stats.tx_bytes; + short_rx = rx * 10; + short_tx = tx * 10; +- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); } +- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); } +- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); } +- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); } ++ if (rx > 1125899906842624ull) { ++ short_rx /= 1125899906842624ull; ++ Rext = "PiB"; ++ } else if (rx > 1099511627776ull) { ++ short_rx /= 1099511627776ull; ++ Rext = "TiB"; ++ } else if (rx > 1073741824ull) { ++ short_rx /= 1073741824ull; ++ Rext = "GiB"; ++ } else if (rx > 1048576) { ++ short_rx /= 1048576; ++ Rext = "MiB"; ++ } else if (rx > 1024) { ++ short_rx /= 1024; ++ Rext = "KiB"; ++ } ++ if (tx > 1125899906842624ull) { ++ short_tx /= 1125899906842624ull; ++ Text = "PiB"; ++ } else if (tx > 1099511627776ull) { ++ short_tx /= 1099511627776ull; ++ Text = "TiB"; ++ } else if (tx > 1073741824ull) { ++ short_tx /= 1073741824ull; ++ Text = "GiB"; ++ } else if (tx > 1048576) { ++ short_tx /= 1048576; ++ Text = "MiB"; ++ } else if (tx > 1024) { ++ short_tx /= 1024; ++ Text = "KiB"; ++ } + + printf(" "); + printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"), +@@ -867,7 +910,7 @@ + } + + if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || +- ptr->map.base_addr)) { ++ ptr->map.base_addr >= 0x100)) { + printf(" "); + if (ptr->map.irq) + printf(_("Interrupt:%d "), ptr->map.irq); +--- net-tools-1.60.orig/lib/net-features.h ++++ net-tools-1.60/lib/net-features.h +@@ -295,6 +295,13 @@ + "-" + #endif + "HDLC/LAPB " ++ ++#if HAVE_HWEUI64 ++"+" ++#else ++"-" ++#endif ++"EUI64 " + ; + + +--- net-tools-1.60.orig/lib/nstrcmp.c ++++ net-tools-1.60/lib/nstrcmp.c +@@ -1,34 +1,157 @@ + /* Copyright 1998 by Andi Kleen. Subject to the GPL. */ +-/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */ ++/* rewritten by bernd eckenfels because of complicated alias semantic */ ++/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */ + #include <ctype.h> + #include <stdlib.h> ++#include <string.h> + #include "util.h" + +-/* like strcmp(), but knows about numbers */ +-int nstrcmp(const char *astr, const char *b) ++ ++/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */ ++char* cutalias(char* name) + { +- const char *a = astr; ++ int digit = 0; ++ int pos; ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (name[pos-1]==':' && digit) ++ { ++ name[pos-1]='\0'; ++ return name+pos; ++ } ++ if (!isdigit(name[pos-1])) ++ break; ++ digit = 1; ++ } ++ return NULL; ++} + +- while (*a == *b) { +- if (*a == '\0') +- return 0; +- a++; +- b++; +- } +- if (isdigit(*a)) { +- if (!isdigit(*b)) +- return -1; +- while (a > astr) { +- a--; +- if (!isdigit(*a)) { +- a++; +- break; +- } +- if (!isdigit(*b)) +- return -1; +- b--; ++ ++/* return index of last non digit or -1 if it does not end with digits */ ++int rindex_nondigit(char *name) ++{ ++ int pos = strlen(name); ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (!isdigit(name[pos-1])) ++ return pos; + } +- return atoi(a) > atoi(b) ? 1 : -1; +- } +- return *a - *b; ++ return 0; ++} ++ ++ ++/* like strcmp(), but knows about numbers and ':' alias suffix */ ++int nstrcmp(const char *ap, const char *bp) ++{ ++ char *a = (char*)strdup(ap); ++ char *b = (char*)strdup(bp); ++ char *an, *bn; ++ int av = 0, bv = 0; ++ char *aalias=cutalias(a); ++ char *balias=cutalias(b); ++ int aindex=rindex_nondigit(a); ++ int bindex=rindex_nondigit(b); ++ int complen=(aindex<bindex)?aindex:bindex; ++ int res = strncmp(a, b, complen); ++ ++ if (res != 0) ++ { free(a); free(b); return res; } ++ ++ if (aindex > bindex) ++ { free(a); free(b); return 1; } ++ ++ if (aindex < bindex) ++ { free(a); free(b); return -1; } ++ ++ an = a+aindex; ++ bn = b+bindex; ++ ++ av = atoi(an); ++ bv = atoi(bn); ++ ++ if (av < bv) ++ { free(a); free(b); return -1; } ++ ++ if (av > bv) ++ { free(a); free(b); return 1; } ++ ++ av = -1; ++ if (aalias != NULL) ++ av = atoi(aalias); ++ ++ bv = -1; ++ if (balias != NULL) ++ bv = atoi(balias); ++ ++ free(a); free(b); ++ ++ if (av < bv) ++ return -1; ++ ++ if (av > bv) ++ return 1; ++ ++ return 0; ++} ++ ++ ++#ifdef NSTRCMP_TEST ++ ++int cs(int s) ++{ ++ if (s < 0) return -1; ++ if (s > 0) return 1; ++ return 0; ++} ++ ++ ++int dotest(char* a, char* b, int exp) ++{ ++ int res = nstrcmp(a, b); ++ int err = (cs(res) != cs(exp)); ++ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK"); ++ return err; + } ++ ++int main() ++{ ++ int err = 0; ++ ++ err |= dotest("eth1", "eth1", 0); ++ err |= dotest("eth0:1", "eth0:1", 0); ++ err |= dotest("lan", "lan", 0); ++ err |= dotest("100", "100", 0); ++ err |= dotest("", "", 0); ++ err |= dotest(":", ":", 0); ++ err |= dotest("a:b:c", "a:b:c", 0); ++ err |= dotest("a:", "a:", 0); ++ err |= dotest(":a", ":a", 0); ++ ++ err |= dotest("a", "aa", -1); ++ err |= dotest("eth0", "eth1", -1); ++ err |= dotest("eth1", "eth20", -1); ++ err |= dotest("eth20", "eth100", -1); ++ err |= dotest("eth1", "eth13", -1); ++ err |= dotest("eth", "eth2", -1); ++ err |= dotest("eth0:1", "eth0:2", -1); ++ err |= dotest("eth1:10", "eth13:10", -1); ++ err |= dotest("eth1:1", "eth1:13", -1); ++ err |= dotest("a", "a:", -1); ++ ++ err |= dotest("aa", "a", 1); ++ err |= dotest("eth2", "eth1", 1); ++ err |= dotest("eth13", "eth1", 1); ++ err |= dotest("eth2", "eth", 1); ++ err |= dotest("eth2:10", "eth2:1", 1); ++ err |= dotest("eth2:5", "eth2:4", 1); ++ err |= dotest("eth3:2", "eth2:3", 1); ++ err |= dotest("eth13:1", "eth1:0", 1); ++ err |= dotest("a:", "a", 1); ++ err |= dotest("a1b12", "a1b2", 1); ++ ++ return err; ++} ++ ++#endif +--- net-tools-1.60.orig/lib/pathnames.h ++++ net-tools-1.60/lib/pathnames.h +@@ -1,4 +1,3 @@ +- + /* + * lib/pathnames.h This file contains the definitions of the path + * names used by the NET-LIB. +@@ -29,8 +28,10 @@ + #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes" + #define _PATH_PROCNET_ARP "/proc/net/arp" + #define _PATH_PROCNET_AX25 "/proc/net/ax25" +-#define _PATH_PROCNET_IPX "/proc/net/ipx" +-#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route" ++#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket" ++#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx" ++#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route" ++#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route" + #define _PATH_PROCNET_ATALK "/proc/net/appletalk" + #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block" + #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward" +@@ -45,6 +46,7 @@ + #define _PATH_PROCNET_X25 "/proc/net/x25" + #define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes" + #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast" ++#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route" + + /* pathname for the netlink device */ + #define _PATH_DEV_ROUTE "/dev/route" +--- net-tools-1.60.orig/lib/tr.c ++++ net-tools-1.60/lib/tr.c +@@ -2,7 +2,7 @@ + * lib/tr.c This file contains an implementation of the "Tokenring" + * support functions. + * +- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $ ++ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -30,8 +30,14 @@ + #include "net-support.h" + #include "pathnames.h" + #include "intl.h" ++#include "util.h" + ++ ++/* actual definition at the end of file */ + extern struct hwtype tr_hwtype; ++#ifdef ARPHRD_IEEE802_TR ++extern struct hwtype tr_hwtype1; ++#endif + + static char *pr_tr(unsigned char *ptr) + { +@@ -42,7 +48,7 @@ + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); + return (buff); +-} ++ } + + + static int in_tr(char *bufp, struct sockaddr *sap) +@@ -51,7 +57,17 @@ + char c, *orig; + int i, val; + ++#ifdef ARPHRD_IEEE802_TR ++ if (kernel_version() < KRELEASE(2,3,30)) { ++ sap->sa_family = tr_hwtype.type; ++ } else { ++ sap->sa_family = tr_hwtype1.type; ++ } ++#else + sap->sa_family = tr_hwtype.type; ++ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)" ++#endif ++ + ptr = sap->sa_data; + + i = 0; +--- net-tools-1.60.orig/lib/util.h ++++ net-tools-1.60/lib/util.h +@@ -14,3 +14,6 @@ + + char *safe_strncpy(char *dst, const char *src, size_t size); + ++ ++#define netmin(a,b) ((a)<(b) ? (a) : (b)) ++#define netmax(a,b) ((a)>(b) ? (a) : (b)) +--- net-tools-1.60.orig/lib/irda.c ++++ net-tools-1.60/lib/irda.c +@@ -1,13 +1,15 @@ + /********************************************************************* + * + * Filename: irda.c +- * Version: 0.1 +- * Description: A first attempt to make ifconfig understand IrDA ++ * Version: 0.2 ++ * Description: A second attempt to make ifconfig understand IrDA + * Status: Experimental. + * Author: Dag Brattli <dagb@cs.uit.no> + * Created at: Wed Apr 21 09:03:09 1999 + * Modified at: Wed Apr 21 09:17:05 1999 + * Modified by: Dag Brattli <dagb@cs.uit.no> ++ * Modified at: Wed May 1 11:51:44 CEST 2002 ++ * Modified by: Christoph Bartelmus <christoph@bartelmus.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as +@@ -59,9 +61,9 @@ + */ + static char *irda_print(unsigned char *ptr) + { +- static char buff[8]; ++ static char buff[12]; + +- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2], ++ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2], + ptr[1], ptr[0]); + + return (buff); +--- net-tools-1.60.orig/lib/x25_sr.c ++++ net-tools-1.60/lib/x25_sr.c +@@ -67,7 +67,7 @@ + strcpy(target, *args++); + + /* Clean out the x25_route_struct structure. */ +- memset((char *) &rt, 0, sizeof(struct x25_route_struct)); ++ memset((char *) &rt, 0, sizeof(rt)); + + + if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) { +@@ -76,8 +76,8 @@ + } + rt.sigdigits=sigdigits; + +- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ +- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */ ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr)); + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { +--- net-tools-1.60.orig/lib/eui64.c ++++ net-tools-1.60/lib/eui64.c +@@ -0,0 +1,155 @@ ++/* ++ * lib/eui64.c This file contains support for generic EUI-64 hw addressing ++ * ++ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $ ++ * ++ * Author: Daniel Stodden <stodden@in.tum.de> ++ * Copyright 2001 Daniel Stodden ++ * ++ * blueprinted from ether.c ++ * Copyright 1993 MicroWalt Corporation ++ * ++ * 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. ++ */ ++#include "config.h" ++ ++#if HAVE_HWEUI64 ++ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <sys/socket.h> ++#include <net/if_arp.h> ++#include <stdlib.h> ++#include <stdio.h> ++#include <ctype.h> ++#include <errno.h> ++#include <fcntl.h> ++#include <string.h> ++#include <termios.h> ++#include <unistd.h> ++#include "net-support.h" ++#include "pathnames.h" ++#include "intl.h" ++ ++/* ++ * EUI-64 constants ++ */ ++ ++#define EUI64_ALEN 8 ++ ++#ifndef ARPHRD_EUI64 ++#define ARPHRD_EUI64 27 ++#warning "ARPHRD_EUI64 not defined in <net/if_arp.h>. Using private value 27" ++#endif ++ ++struct hwtype eui64_hwtype; ++ ++/* Display an EUI-64 address in readable format. */ ++static char *pr_eui64( unsigned char *ptr ) ++{ ++ static char buff[64]; ++ ++ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", ++ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377), ++ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377) ++ ); ++ return (buff); ++} ++ ++/* Start the PPP encapsulation on the file descriptor. */ ++static int in_eui64( char *bufp, struct sockaddr *sap ) ++{ ++ unsigned char *ptr; ++ char c, *orig; ++ int i; ++ unsigned val; ++ ++ sap->sa_family = eui64_hwtype.type; ++ ptr = sap->sa_data; ++ ++ i = 0; ++ orig = bufp; ++ ++ while ((*bufp != '\0') && (i < EUI64_ALEN)) { ++ val = 0; ++ c = *bufp++; ++ if (isdigit(c)) ++ val = c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val = c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val = c - 'A' + 10; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ val <<= 4; ++ c = *bufp; ++ if (isdigit(c)) ++ val |= c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val |= c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val |= c - 'A' + 10; ++ else if (c == ':' || c == 0) ++ val >>= 4; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ if (c != 0) ++ bufp++; ++ ++ *ptr++ = (unsigned char) (val & 0377); ++ i++; ++ ++ /* We might get a semicolon here - not required. */ ++ if (*bufp == ':') { ++ if (i == EUI64_ALEN) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"), ++ orig) ++#endif ++ ; /* nothing */ ++ } ++ bufp++; ++ } ++ } ++ ++ /* That's it. Any trailing junk? */ ++ if ((i == EUI64_ALEN) && (*bufp != '\0')) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig); ++ errno = EINVAL; ++ return (-1); ++#endif ++ } ++#ifdef DEBUG ++ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data)); ++#endif ++ ++ return (0); ++} ++ ++struct hwtype eui64_hwtype = ++{ ++ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN, ++ pr_eui64, in_eui64, NULL, 0 ++}; ++ ++ ++#endif /* HAVE_EUI64 */ +--- net-tools-1.60.orig/rarp.c ++++ net-tools-1.60/rarp.c +@@ -3,7 +3,7 @@ + * that maintains the kernel's RARP cache. It is derived + * from Fred N. van Kempen's arp command. + * +- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $ + * + * Usage: rarp -d hostname Delete entry + * rarp -s hostname ethernet_address Add entry +@@ -40,6 +40,7 @@ + #include "net-support.h" + #include "version.h" + #include "pathnames.h" ++#include "proc.h" + + static char no_rarp_message[] = N_("This kernel does not support RARP.\n"); + +@@ -154,7 +155,7 @@ + + static int display_cache(void) + { +- FILE *fd = fopen(_PATH_PROCNET_RARP, "r"); ++ FILE *fd = proc_fopen(_PATH_PROCNET_RARP); + char buffer[256]; + if (fd == NULL) { + if (errno == ENOENT) +--- net-tools-1.60.orig/slattach.c ++++ net-tools-1.60/slattach.c +@@ -73,7 +73,7 @@ + + + const char *Release = RELEASE, +- *Version = "@(#) slattach 1.21 (1999-11-21)", ++ *Version = "$Id: slattach.c,v 1.11 2005/12/04 05:15:36 ecki Exp $", + *Signature = "net-tools, Fred N. van Kempen et al."; + + +@@ -115,7 +115,7 @@ + int opt_k = 0; /* "keepalive" value */ + #endif + int opt_l = 0; /* "lock it" flag */ +-int opt_L = 0; /* clocal flag */ ++int opt_L = 0; /* 3-wire mode flag */ + int opt_m = 0; /* "set RAW mode" flag */ + int opt_n = 0; /* "set No Mesg" flag */ + #ifdef SIOCSOUTFILL +@@ -342,9 +342,11 @@ + tty->c_oflag = (0); /* output flags */ + tty->c_lflag = (0); /* local flags */ + speed = (tty->c_cflag & CBAUD); /* save current speed */ +- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */ ++ tty->c_cflag = (HUPCL | CREAD); /* UART flags */ + if (opt_L) + tty->c_cflag |= CLOCAL; ++ else ++ tty->c_cflag |= CRTSCTS; + tty->c_cflag |= speed; /* restore speed */ + return(0); + } +--- net-tools-1.60.orig/include/util-ank.h ++++ net-tools-1.60/include/util-ank.h +@@ -75,6 +75,6 @@ + extern int do_class(int argc, char **argv); + extern int do_filter(int argc, char **argv); + +-extern const char *format_host(int af, void *addr, __u8 *abuf, int alen); ++extern const char *format_host(int af, void *addr, char *abuf, int alen); + + #endif /* __UTILS_H__ */ +--- net-tools-1.60.orig/include/interface.h ++++ net-tools-1.60/include/interface.h +@@ -64,13 +64,17 @@ + extern int if_fetch(struct interface *ife); + + extern int for_all_interfaces(int (*)(struct interface *, void *), void *); +-extern int free_interface_list(void); ++extern int if_cache_free(void); + extern struct interface *lookup_interface(char *name); + extern int if_readlist(void); + + extern int do_if_fetch(struct interface *ife); + extern int do_if_print(struct interface *ife, void *cookie); + ++extern int procnetdev_version(char *buf); ++extern int get_dev_fields(char *bp, struct interface *ife); ++extern char * get_name(char *name, char *p); ++ + extern void ife_print(struct interface *ptr); + + extern int ife_short; +--- net-tools-1.60.orig/include/mii.h ++++ net-tools-1.60/include/mii.h +@@ -6,11 +6,14 @@ + * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + */ + +-#ifndef _LINUX_MII_H +-#define _LINUX_MII_H ++#ifndef _NETTOOL_MII_H ++#define _NETTOOLS_MII_H ++ ++#include <linux/sockios.h> + + /* network interface ioctl's for MII commands */ + #ifndef SIOCGMIIPHY ++#warning "SIOCGMIIPHY is not defined by your kernel source" + #define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */ + #define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */ + #define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */ +@@ -38,6 +41,7 @@ + #define MII_BMCR_RESTART 0x0200 + #define MII_BMCR_DUPLEX 0x0100 + #define MII_BMCR_COLTEST 0x0080 ++#define MII_BMCR_SPEED1000 0x0040 + + /* Basic Mode Status Register */ + #define MII_BMSR 0x01 +@@ -83,4 +87,17 @@ + #define MII_ANER_PAGE_RX 0x0002 + #define MII_ANER_LP_AN_ABLE 0x0001 + +-#endif /* _LINUX_MII_H */ ++#define MII_CTRL1000 0x09 ++#define MII_BMCR2_1000FULL 0x0200 ++#define MII_BMCR2_1000HALF 0x0100 ++ ++#define MII_STAT1000 0x0a ++#define MII_LPA2_1000LOCALOK 0x2000 ++#define MII_LPA2_1000REMRXOK 0x1000 ++#define MII_LPA2_1000FULL 0x0800 ++#define MII_LPA2_1000HALF 0x0400 ++ ++/* Last register we need for show_basic_mii() */ ++#define MII_BASIC_MAX (MII_STAT1000+1) ++ ++#endif /* _NETTOOLS_MII_H */ +--- net-tools-1.60.orig/man/en_US/rarp.8 ++++ net-tools-1.60/man/en_US/rarp.8 +@@ -61,8 +61,8 @@ + Create a RARP address mapping entry for host + .B hostname + with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware ++.BR hw_addr . ++The format of the hardware address is dependent on the hardware + class, but for most classes one can assume that the usual presentation + can be used. For the Ethernet class, this is 6 bytes in hexadecimal, + separated by colons. +--- net-tools-1.60.orig/man/en_US/arp.8 ++++ net-tools-1.60/man/en_US/arp.8 +@@ -1,56 +1,111 @@ +-.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual" ++.TH ARP 8 "2007-12-01" "net-tools" "Linux Programmer's Manual" + .SH NAME + arp \- manipulate the system ARP cache + .SH SYNOPSIS + .B arp + .RB [ \-vn ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -a +-.RB [ hostname ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.RB [ \-a ] ++.RI [ hostname ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-i if" ] +-.B "\-d hostname" ++.RB [ \-i ++.IR if ] ++.B \-d ++.I hostname + .RB [ pub ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr + .RB [ temp ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -Ds hostname ifa +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-Ds ++.I hostname ++.I ifname ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-vnD ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -f [filename] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-f ++.RI [ filename ] + + .SH DESCRIPTION + .B Arp +-manipulates the kernel's ARP cache in various ways. The primary options +-are clearing an address mapping entry and manually setting up one. For +-debugging purposes, the ++manipulates or displays the kernel's IPv4 network neighbour cache. It can add ++entries to the table, delete one or display the current content. ++ ++.B ARP ++stands for Address Resolution Protocol, which is used to find the media ++access control address of a network neighbour for a given IPv4 Address. ++.SH MODES + .B arp +-program also allows a complete dump of the ARP cache. ++with no mode specifier will print the current content of the table. It is ++possible to limit the number of entries printed, by specifying an hardware ++address type, interface name or host address. ++ ++.B arp -d ++.I address ++will delete a ARP table entry. Root or netadmin priveledge is required to do ++this. The entry is found by IP address. If a hostname is given, it will be ++resolved before looking up the entry in the ARP table. ++ ++.B arp -s ++.I address hw_addr ++is used to set up a new table entry. The format of the ++.I hw_addr ++parameter is dependent on the hardware class, but for most classes one can ++assume that the usual presentation can be used. For the Ethernet class, ++this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp ++entries (that is those with the ++.BR pub lish ++flag set a ++.B netmask ++may be specified to proxy arp for entire subnets. This is not good ++practice, but is supported by older kernels because it can be ++useful. If the ++.B temp ++flag is not supplied entries will be permanent stored into the ARP ++cache. To simplyfy setting up entries for one of your own network interfaces, you can use the ++.B "arp \-Ds" ++.I address ifname ++form. In that case the hardware address is taken from the interface with the ++specified name. ++ ++.br + .SH OPTIONS + .TP + .B "\-v, \-\-verbose" +@@ -76,21 +131,13 @@ + and + .RB "NET/ROM (" netrom ")." + .TP +-.B "\-a [hostname], \-\-display [hostname]" +-Shows the entries of the specified hosts. If the +-.B hostname +-parameter is not used, +-.B all +-entries will be displayed. +-.TP +-.B "\-d hostname, \-\-delete hostname" +-Remove any entry for the specified host. This can be used if the +-indicated host is brought down, for example. ++.B \-a ++Use alternate BSD style output format (with no fixed columns). + .TP + .B "\-D, \-\-use-device" +-Use the interface +-.BR ifa "'s" +-hardware address. ++Instead of a hw_addr, the given argument is the name of an interface. ++.B arp ++will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself. + .TP + .B "\-i If, \-\-device If" + Select an interface. When dumping the ARP cache only entries matching +@@ -106,33 +153,15 @@ + .B NOTE: + This has to be different from the interface to which the IP + datagrams will be routed. +-.TP +-.B "\-s hostname hw_addr, \-\-set hostname" +-Manually create an ARP address mapping entry for host +-.B hostname +-with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware +-class, but for most classes one can assume that the usual presentation +-can be used. For the Ethernet class, this is 6 bytes in hexadecimal, +-separated by colons. When adding proxy arp entries (that is those with +-the +-.BR pub lish +-flag set a +-.B netmask +-may be specified to proxy arp for entire subnets. This is not good +-practice, but is supported by older kernels because it can be +-useful. If the +-.B temp +-flag is not supplied entries will be permanent stored into the ARP +-cache. +-.br + .B NOTE: + As of kernel 2.2.0 it is no longer possible to set an ARP entry for an + entire subnet. Linux instead does automagic proxy arp when a route + exists and it is forwarding. See + .BR arp (7) +-for details. ++for details. Also the ++.B dontpub ++option which is available for delete and set operations cannot be ++used with 2.4 and newer kernels. + .TP + .B "\-f filename, \-\-file filename" + Similar to the +@@ -167,8 +196,18 @@ + and published entries have the + .B P + flag. ++.SH EXSAMPLES ++.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub ++ ++This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for ++eth1. ++ ++.B /usr/sbin/arp -i eth1 -d 10.0.0.1 ++ ++Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match ++published proxy ARP entries and permanent entries. + .SH FILES +-.I /proc/net/arp, ++.I /proc/net/arp + .br + .I /etc/networks + .br +@@ -178,5 +217,4 @@ + .SH SEE ALSO + rarp(8), route(8), ifconfig(8), netstat(8) + .SH AUTHORS +-Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> with a lot of improvements +-from net-tools Maintainer Bernd Eckenfels <net-tools@lina.inka.de>. ++Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net-tools@lina.inka.de>. +--- net-tools-1.60.orig/man/en_US/ethers.5 ++++ net-tools-1.60/man/en_US/ethers.5 +@@ -1,4 +1,4 @@ +-.TH ETHERS 5 "April 26th, 1996" "" "File formats" ++.TH ETHERS 5 "May 15th, 2005" "" "File formats" + .SH NAME \"{{{roff}}}\"{{{ + ethers \- Ethernet address to IP number database + .\"}}} +@@ -10,8 +10,8 @@ + \fIEthernet-address\fP \fIIP-number\fP + .RE + .sp +-The two items are separated by any number of SPACE and/or TAB char +-acters. A \fB#\fP at the beginning of a line starts a comment ++The two items are separated by any number of SPACE and/or TAB characters. ++A \fB#\fP at the beginning of a line starts a comment + which extends to the end of the line. The \fIEthernet-address\fP is + written as + .IR x : x : x : x : x : x , +--- net-tools-1.60.orig/man/en_US/ifconfig.8 ++++ net-tools-1.60/man/en_US/ifconfig.8 +@@ -1,10 +1,10 @@ +-.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + ifconfig \- configure a network interface + .SH SYNOPSIS +-.B "ifconfig [interface]" ++.B "ifconfig [-v] [-a] [-s] [interface]" + .br +-.B "ifconfig interface [aftype] options | address ..." ++.B "ifconfig [-v] interface [aftype] options | address ..." + .SH DESCRIPTION + .B Ifconfig + is used to configure the kernel-resident network interfaces. It is +@@ -41,11 +41,27 @@ + (AMPR Packet radio). + .SH OPTIONS + .TP ++.B -a ++display all interfaces which are currently available, even if down ++.TP ++.B -s ++display a short list (like netstat -i) ++.TP ++.B -v ++be more verbose for some error conditions ++.TP + .B interface + The name of the interface. This is usually a driver name followed by + a unit number, for example + .B eth0 +-for the first Ethernet interface. ++for the first Ethernet interface. If your kernel supports alias interfaces, ++you can specify them with ++.B eth0:0 ++for the first alias of eth0. You can use them to assign a second address. To ++delete an alias interface use ++.BR "ifconfig eth0:0 down" . ++Note: for every scope (i.e. same net with address/netmask combination) all ++aliases are deleted, if you delete the first (primary). + .TP + .B up + This flag causes the interface to be activated. It is implicitly +@@ -173,11 +189,20 @@ + are shared with all alias addresses on the same device. If you want per-address + statistics you should add explicit accounting + rules for the address using the +-.BR ipchains(8) ++.BR ipchains (8) ++or ++.BR iptables (8) + command. + .LP +-Interrupt problems with Ethernet device drivers fail with EAGAIN. See +-.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html ++Since net-tools 1.60-4 ifconfig is printing byte counters and human readable ++counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers ++are truncated to one decimal (which can by quite a large error if you ++consider 0.1 PiB is 112.589.990.684.262 bytes :) ++.LP ++Interrupt problems with Ethernet device drivers fail with EAGAIN ++.I (SIOCSIIFLAGS: Resource temporarily unavailable) ++it is most likely a interrupt conflict. See ++.I http://www.scyld.com/expert/irq-conflict.html + for more information. + .SH FILES + .I /proc/net/socket +@@ -189,7 +214,9 @@ + While appletalk DDP and IPX addresses will be displayed they cannot be + altered by this command. + .SH SEE ALSO +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). ++.br ++http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples + .SH AUTHORS + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +@@ -198,3 +225,5 @@ + Phil Blundell, <Philip.Blundell@pobox.com> + .br + Andi Kleen ++.br ++Bernd Eckenfels, <net-tools@lina.inka.de> +--- net-tools-1.60.orig/man/en_US/netstat.8 ++++ net-tools-1.60/man/en_US/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tqhoang@bigfoot.com + .\" + .\" +-.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships +@@ -23,7 +23,7 @@ + .RB [ \-\-listening | \-l ] + .RB [ \-\-all | \-a ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-symbolic | \-N ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-timers | \-o ] +@@ -37,31 +37,30 @@ + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-interfaces | \-i } +-.RI [ iface ] + .RB [ \-\-all | \-a ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-program | \-p ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-groups | \-g } + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-masquerade | \-M } + .RB [ \-\-extend | \-e ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat +@@ -78,6 +77,8 @@ + .P + .IR address_family_options : + .PP ++.RB [ -4 ] ++.RB [ -6 ] + .RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ] + .RB [ \-\-unix | \-x ] + .RB [ \-\-inet | \-\-ip ] +@@ -98,12 +99,17 @@ + address families, then the active sockets of all configured address + families will be printed. + .SS "\-\-route , \-r" +-Display the kernel routing tables. ++Display the kernel routing tables. See the description in ++.BR route (8) ++for details. ++.B netstat -r ++and ++.B route -e ++produce the same output. + .SS "\-\-groups , \-g" + Display multicast group membership information for IPv4 and IPv6. +-.SS "\-\-interface=\fIiface \fR, \fB\-i" +-Display a table of all network interfaces, or the specified +-.IR iface ) . ++.SS "\-\-interfaces, \-i" ++Display a table of all network interfaces. + .SS "\-\-masquerade , \-M" + Display a list of masqueraded connections. + .SS "\-\-statistics , \-s" +@@ -165,12 +171,11 @@ + .SS "\-a, \-\-all" + Show both listening and non-listening sockets. With the + .B --interfaces +-option, show interfaces that are not marked ++option, show interfaces that are not up + .SS "\-F" + Print routing information from the FIB. (This is the default.) + .SS "\-C" + Print routing information from the route cache. +-.IR UP . + .P + .SH OUTPUT + .P +@@ -221,7 +226,7 @@ + The socket is waiting after close to handle packets still in the network. + .TP + .I +-CLOSED ++CLOSE + The socket is not being used. + .TP + .I +@@ -438,7 +443,7 @@ + .P + .SH AUTHORS + The netstat user interface was written by Fred Baumgarten +-<dc6iq@insu1.etec.uni-karlsruhe.de> the man page basically ++<dc6iq@insu1.etec.uni-karlsruhe.de>, the man page basically + by Matt Welsh <mdw@tc.cornell.edu>. It was updated by + Alan Cox <Alan.Cox@linux.org> but could do with a bit more + work. It was updated again by Tuan Hoang +--- net-tools-1.60.orig/man/en_US/route.8 ++++ net-tools-1.60/man/en_US/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- show / manipulate the IP routing table + .SH SYNOPSIS +@@ -141,7 +141,7 @@ + set the TCP Maximum Segment Size (MSS) for connections over this route + to M bytes. + The default is the device MTU minus headers, or a lower MTU when path mtu +-discovery occured. This setting can be used to force smaller TCP packets on the ++discovery occurred. This setting can be used to force smaller TCP packets on the + other end when path mtu discovery does not work (usually because of + misconfigured firewalls that block ICMP Fragmentation Needed) + .TP +@@ -179,17 +179,20 @@ + + .SH EXAMPLES + .TP +-.B route add -net 127.0.0.0 +-adds the normal loopback entry, using netmask 255.0.0.0 (class A net, +-determined from the destination address) and associated with the +-"lo" device (assuming this device was prviously set up correctly with ++.B route add -net 127.0.0.0 netmask 255.0.0.0 dev lo ++adds the normal loopback entry, using netmask 255.0.0.0 and associated with the ++"lo" device (assuming this device was previously set up correctly with + .BR ifconfig (8)). + + .TP + .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 +-adds a route to the network 192.56.76.x via +-"eth0". The Class C netmask modifier is not really necessary here because +-192.* is a Class C IP address. The word "dev" can be omitted here. ++adds a route to the local network 192.56.76.x via ++"eth0". The word "dev" can be omitted here. ++ ++.TP ++.B route del default ++deletes the current default route, which is labeled "default" or 0.0.0.0 ++in the destination field of the current routing table. + + .TP + .B route add default gw mango-gw +@@ -289,7 +292,7 @@ + Interface to which packets for this route will be sent. + .TP + .B MSS +-Default maximum segement size for TCP connections over this route. ++Default maximum segment size for TCP connections over this route. + .TP + .B Window + Default window size for TCP connections over this route. +@@ -323,4 +326,4 @@ + Linus Torvalds for pl15. Alan Cox added the mss and window options for + Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels. + .SH AUTHOR +-Currently maintained by Phil Blundell <Philip.Blundell@pobox.com>. ++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>. +--- net-tools-1.60.orig/man/en_US/slattach.8 ++++ net-tools-1.60/man/en_US/slattach.8 +@@ -1,4 +1,4 @@ +-.TH SLATTACH 8 "12 Feb 1994" "" "" ++.TH SLATTACH 8 "10 Oct 2006" "" "" + .SH NAME + slattach \- attach a network interface to a serial line + .SH SYNOPSIS +@@ -24,6 +24,7 @@ + .B "[-h]" + Exit when the carrier is lost. This works on both /dev/tty and /dev/cua + devices by directly monitoring the carrier status every 15 seconds. ++.TP + .B "[-v]" + Enable verbose output. Useful in shell scripts. + .TP +@@ -41,7 +42,7 @@ + .TP + .B "[-e]" + Exit right after initializing device, instead of waiting for the +-line to hangup. ++line to hang up. + .TP + .B "[-L]" + Enable 3 wire operation. The terminal is moved into CLOCAL mode, +@@ -50,8 +51,8 @@ + .B "[-p proto]" + Set a specific kind of protocol to use on the line. The default + is set to +-.B "cslip" +-, i.e. compressed SLIP. Other possible values are ++.BR "cslip" , ++i.e. compressed SLIP. Other possible values are + .B "slip" + (normal SLIP), + .B "adaptive" +--- net-tools-1.60.orig/man/en_US/mii-tool.8 ++++ net-tools-1.60/man/en_US/mii-tool.8 +@@ -1,7 +1,7 @@ + .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + .\" mii-tool.8 1.5 2000/04/25 22:58:19 + .\" +-.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools" ++.TH MII-TOOL 8 "2004/03/28 23:30:00" "net-tools" + + .SH NAME + mii-tool \- view, manipulate media-independent interface status +@@ -72,7 +72,24 @@ + commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR, + \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR. + ++.SH DIAGNOSTICS ++.TP ++SIOCGMIIPHY on 'eth?' failed: Invalid argument ++If the interface is not running (up), kernel will refuse to report its link state. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not permitted ++Most kernels restrict access to root. ++.TP ++SIOCGMIIPHY on 'eth?' failed: No such device ++This error is shown, if the kernel does not know about the named device. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not supported ++The interface in question does not support MII queries. Most likely, it does not have ++MII transceivers, at all. ++ + .SH AUTHORS + David Hinds \- dhinds@pcmcia.sourceforge.org + .br + Donald Becker \- becker@scyld.com ++.br ++Bernd Eckenfels \- ecki@debian.org +--- net-tools-1.60.orig/man/fr_FR/arp.8 ++++ net-tools-1.60/man/fr_FR/arp.8 +@@ -140,8 +140,8 @@ + Similaire à l'option + .B \-s + , mais cette fois les informations d'adresses sont prises dans le fichier +-.B nom_de_fichier +-. Ceci peut être utilisé si les entrées ARP à configurer sont ++.BR nom_de_fichier . ++Ceci peut être utilisé si les entrées ARP à configurer sont + nombreuses. Le nom du fichier de données est très souvent nommé + .B /etc/ethers + , mais ce n'est pas officiel. +@@ -160,8 +160,8 @@ + .LP + Chaque entrée complète se trouvant dans le cache ARP est marquée de + l'indicateur +-.B C +-. Les entrées permanentes sont marquées de l'indicateur ++.BR C . ++Les entrées permanentes sont marquées de l'indicateur + .B M + et les entrées 'pub' ont l'indicateur + .B P +--- net-tools-1.60.orig/man/fr_FR/hostname.1 ++++ net-tools-1.60/man/fr_FR/hostname.1 +@@ -84,8 +84,8 @@ + .LP + .B hostname + fournit le nom du système tel qu'il est retourné par la fonction +-.BR getdomainname (2) +-. Ceci est connu comme nom de domaine YP/NIS du système. ++.BR getdomainname (2). ++Ceci est connu comme nom de domaine YP/NIS du système. + + + .LP +@@ -145,8 +145,8 @@ + .LP + La façon dont vous pouvez le changer dépend de la configuration + (habituellement dans +-.IR /etc/host.conf ) +-. Si le fichier 'hosts' est analysé avant d'interroger le DNS ou ++.IR /etc/host.conf ). ++Si le fichier 'hosts' est analysé avant d'interroger le DNS ou + NIS) vous pouvez le changer dans le fichier + .IR /etc/hosts . + +--- net-tools-1.60.orig/man/fr_FR/ifconfig.8 ++++ net-tools-1.60/man/fr_FR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NOM + ifconfig \- configure une interface réseau + .SH SYNOPSIS +@@ -60,14 +60,14 @@ + .TP + .B "[\-]promisc" + Valide ou invalide le mode +-.B promiscuous +-. S'il est validé, tous les paquets circulant sur le réseau ++.BR promiscuous . ++S'il est validé, tous les paquets circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "[\-]allmulti" + Valide ou invalide le fonctionnement de l'interface en mode +-.B all-multicast +-. S'il est validé, tous les paquets multicast circulant sur le réseau ++.BR all-multicast . ++S'il est validé, tous les paquets multicast circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "metric N" +@@ -196,7 +196,7 @@ + Même si les adresses appletalk DDP et IPX peuvent être affichées, + elles ne peuvent être modifiées avec cette commande. + .SH VOIR AUSSI +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTHORS + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +--- net-tools-1.60.orig/man/fr_FR/netstat.8 ++++ net-tools-1.60/man/fr_FR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "25 Fév 1999" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Affiche les connexions réseau, les tables de routage, les +@@ -106,7 +106,7 @@ + .BR route (8) + pour plus de détails. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Si vous utilisez l'option + .BR -i ", " --interfaces + , une table de toutes (ou de l'interface +@@ -118,8 +118,8 @@ + .BR ifconfig (8). + .B "netstat -ei" + affiche une table ou une seule entrée d'interface comme la commande +-.B ifconfig +-. Avec le paramètre ++.BR ifconfig . ++Avec le paramètre + .B -a + , vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui + n'ont pas l'indicateur +@@ -249,7 +249,7 @@ + avant d'entreprendre la fermeture. + .TP + .I +-CLOSED ++CLOSE + La socket n'est pas utilisée. + .TP + .I +@@ -409,8 +409,7 @@ + Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques + des interfaces alias. Pour obtenir les compteurs par interface alias, vous + devez définir des règles spécifiques à l'aide de la commande +-.BR ipchains(8) +-. ++.BR ipchains (8). + + .SH FICHIERS + .ta +--- net-tools-1.60.orig/man/fr_FR/rarp.8 ++++ net-tools-1.60/man/fr_FR/rarp.8 +@@ -55,8 +55,8 @@ + Crée manuellement une correspondance d'adresses RARP pour l'hôte + .B nom_d_hôte + avec l'adresse matérielle +-.B adr_materielle +-. Le format de l'adresse matérielle est dépendant du matériel, ++.BR adr_materielle . ++Le format de l'adresse matérielle est dépendant du matériel, + mais pour la plupart on peut considérer que la présentation classique + peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal, + séparés par des double-points. +--- net-tools-1.60.orig/man/fr_FR/route.8 ++++ net-tools-1.60/man/fr_FR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- affiche / manipule la table de routage IP + .SH SYNOPSIS +@@ -330,6 +330,6 @@ + la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt + et la fusion avec netstat ont été réalisés par Bernd Eckenfels. + .SH AUTEUR +-Maintenu par Phil Blundell <Philip.Blundell@pobox.com>. ++Maintenu par Phil Blundell <Philip.Blundell@pobox.com> et Bernd Eckenfels <net-tools@lina.inka.de>. + .SH TRADUCTION +-Jean-Michel VANSTEENE (vanstee@worldnet.fr) ++Jean-Michel VANSTEENE <vanstee@worldnet.fr> +--- net-tools-1.60.orig/man/pt_BR/ifconfig.8 ++++ net-tools-1.60/man/pt_BR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "10 de fevereiro de 1996" "net-tools" "Manual do Programador Linux" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + ifconfig \- configura uma interface de rede + .SH SINOPSE +@@ -169,7 +169,7 @@ + Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados + com este comando. + .SH VEJA TAMBÉM +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTORES + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + Alan Cox, <Alan.Cox@linux.org> +--- net-tools-1.60.orig/man/pt_BR/netstat.8 ++++ net-tools-1.60/man/pt_BR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Traduzido para português por Arnaldo Carvalho de Melo <acme@conectiva.com.br> + .\" Revisado por Jorge Luiz Godoy Filho <jorge@bestway.com.br> + .\" +-.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + + .SH NOME + netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões +@@ -97,7 +97,7 @@ + .BR route (8) + para maiores detalhes. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Se você usar a opção + .BR -i ", " --interfaces + , uma tabela de todas (ou da +--- net-tools-1.60.orig/man/pt_BR/rarp.8 ++++ net-tools-1.60/man/pt_BR/rarp.8 +@@ -50,8 +50,8 @@ + Cria um mapeamento de endereços RARP para a máquina + .B máquina + com endereço de hardware configurado para +-.B endereço_hardware +-. O formato do endereço de hardware depende da classe do hardware, mas ++.B endereço_hardware. ++O formato do endereço de hardware depende da classe do hardware, mas + para a maioria das classes você pode assumir que a apresentação usual pode + ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados + por dois pontos (:). +--- net-tools-1.60.orig/man/pt_BR/route.8 ++++ net-tools-1.60/man/pt_BR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "27 Jan 1996" "net-tools" "Manual do Programador Linux" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + route \- mostra / manipula a tabela de roteamento IP + .SH SINOPSE +@@ -321,7 +321,7 @@ + Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para + mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o + netstat) foi feito por Bernd Eckenfels. ++.SH AUTHOR ++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>. + .SH TRADUÇÃO + Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998 +-.SH BUGS +-nenhum :) +--- net-tools-1.60.orig/man/de_DE/ifconfig.8 ++++ net-tools-1.60/man/de_DE/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + ifconfig \- Konfiguration einer Netzwerkskarte + .SH SYNOPSIS +@@ -193,7 +193,7 @@ + W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit + diesem Kommando nicht ge\(:andert werden. + .SH SIEHE AUCH +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTOREN + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +--- net-tools-1.60.orig/man/de_DE/route.8 ++++ net-tools-1.60/man/de_DE/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + route \- Anzeigen der IP-Routen-Tabelle + .SH SYNOPSIS +@@ -345,6 +345,6 @@ + irtt beigesteuert und den Code mit dem von Netstat vereinigt. + .SH AUTOREN + .B Route +-wird zur Zeit von Phil Blundel (Philip.Blundell@pobox.com) gewartet. ++wird zur Zeit von Phil Blundel <Philip.Blundell@pobox.com> und Bernd Eckenfels <net-tools@lina.inka.de> gewartet. + .SH \(:Ubersetzung + Ralf B\(:achle <ralf@gnu.org> +--- net-tools-1.60.orig/man/de_DE/netstat.8 ++++ net-tools-1.60/man/de_DE/netstat.8 +@@ -9,7 +9,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + + .SH NAME + netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen +@@ -44,7 +44,6 @@ + .B netstat + .RB [ \-veenpac ] + .RB { \-\-interfaces | \-i } +-.RI [ Schnittstelle ] + + .PP + +@@ -68,6 +67,8 @@ + .SH BESCHREIBUNG + .B Netstat + zeigt Informationen des Linux Netzwerkssystems an. ++.PP ++.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment. + + .SS "(no option)" + Ohne Optionen zeigt +@@ -103,18 +104,17 @@ + Wegen Details siehe + .BR route (8). + +-.SS "\-i, \-\-interface \fISchnittstelle\fI" ++.SS "\-i, \-\-interfaces" + Wird die + .BR -i ", " --interfaces +-Option verwendet, so wird eine Tabelle aller (oder der angegebenen +-.IR Schnittstellen ) ++Option verwendet, so wird eine Tabelle aller Schnittstellen + ausgedruckt. Die Ausgabe ist im Format von + .B "ifconfig -e" + und wird in + .BR ifconfig (8) + beschrieben. + .B "netstat -ei" +-druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie ++druckt eine Tabelle f\(:ur Interfaces wie + .BR ifconfig . + Die + .B -a +@@ -182,7 +182,7 @@ + und + .BR \-\-ddp. + +-.SS "\-c, \-\-continous" ++.SS "\-c, \-\-continuous" + Mit dieser Option wiederholt + .B netstat + im Sekundenabstand die Ausgabe, bis es abgebrochen wird. +--- net-tools-1.60.orig/po/pt_BR.po ++++ net-tools-1.60/po/pt_BR.po +@@ -10,275 +10,287 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.54\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-03-01 02:38+0100\n" + "Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=ISO8859-9\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: preciso do nome da máquina\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Nenhuma entrada ARP para %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: não foi possível obter o endereço de hardware para `%s': %s.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: erro no tipo do protocolo.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: o dispositivo `%s' tem endereço de hardware %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: preciso do endereço de hardware\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: endereço inválido de hardware\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: não foi possível abrir o arquivo etherfile %s!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erro de formato na linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: não foi possível configurar a linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Endereço\t\tTipoHW\tEndereçoHW\t Flags Mascara\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr "%s: interface desconhecida.\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(incompleto)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) em " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<incompleto> " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "mascara %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "em %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entradas: %d\tIgnorada: %d\tEncontrada: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- nenhuma entrada\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: em %d entradas não foi encontrado.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + "Uso:\n" +-" arp [-vn] [<HW>] [-i <if>] [-a] [<máquina>] <-Mostra cache " +-"ARP\n" ++" arp [-vn] [<HW>] [-i <if>] [-a] [<máquina>] <-Mostra cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i <if>] -d <máquina> [pub][nopub] <-Remove entrada " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <máquina> [pub][nopub] <-Remove entrada ARP\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [<HW>] [-i <if>] -f [<arquivo>] <-Inclui entrada de " + "arquivo\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [temp][nopub] <-Inc. " +-"Entrada\n" +- +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [temp][nopub] <-Inc. Entrada\n" + +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -Ds <máquina> <if> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -Ds <máquina> <if> [netmask <nm>] pub <-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a mostra (todas as) máquinas no estilo alternativo " +-"(BSD)\n" ++msgstr " -a mostra (todas as) máquinas no estilo alternativo (BSD)\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set define uma nova entrada ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete remove a entrada especificada\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose listagem detalhada\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device especifica a interface de rede (ex: eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device leia <hwaddr> de um dispositivo\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol especifica a família de protocolos\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file leia novas entradas de arquivo ou de " +-"/etc/ethers\n" ++" -f, --file leia novas entradas de arquivo ou de /etc/" ++"ethers\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" +-msgstr "" +-" <HW>=Use '-H <hw>' para especificar o tipo de endereço de hw. Default: %s\n" ++msgstr " <HW>=Use '-H <hw>' para especificar o tipo de endereço de hw. Default: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Lista dos tipos de hardware possíveis (que suportam ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: tipo de hardware não suportado!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: família de endereços não suportada!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N ainda não suportada.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: família de endereços desconhecida.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: tipo de hardware desconhecido.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: kernel somente suporta ínet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: tipo de hardware sem suporte a ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Configurando nome do nó como `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: você deve ser root para mudar o nome do nó\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nome muito longo\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Configurando nome da máquina para `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: você deve ser root para mudar o nome da máquina\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Configurando nome do domínio para `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: você deve ser root para mudar o nome do domínio\n" +@@ -303,37 +315,38 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Resultado: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: não foi possível abrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de arquivo)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {domínio_nis|-F file} configura nome do domínio NIS\n" + " (a partir de arquivo)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de arquivo)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] mostra nome formatado\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -341,7 +354,8 @@ + " hostname [-v] mostra nome da máquina\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -349,7 +363,8 @@ + " hostname -V|--version|-h|--help mostra informações e termina\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -357,35 +372,43 @@ + " dnsdomainname=máquina -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nome curto da máquina\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias aliases para a máquina\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address endereços da máquina\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nome longo da máquina (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nome do domínio DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nome do domínio NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nome do nó DECnet\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -393,7 +416,8 @@ + " -F, --file leia o nome da máquina ou domínio NIS do arquivo\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -413,15 +437,16 @@ + msgstr "%s: Você não pode mudar o nome do domínio DNS com este comando\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"A menos que esteja usando bind ou NIS para resolução de nomes você pode " +-"mudar\n" ++"A menos que esteja usando bind ou NIS para resolução de nomes você pode mudar\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "o nome do domínio DNS (que é parte do FQDN) no arquivo /etc/hosts.\n" + +@@ -440,552 +465,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Encapsulamento do Link: %s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Endereço de HW %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Mídia:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Este sistema não tem suporte a INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s end.: %s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Uso:\n" ++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereço>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-a-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <endereço>[/<tam_prefixo>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <endereço>[/<tam_prefixo>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masc:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " endereço inet6: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Escopo:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Link" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Máquina" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Desconhecido" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " Endereço IPX/Ethernet II:%s\n" ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <endereço>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " Endereço EtherTalk fase 2:%s\n" ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <NN>]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " Endereço econet:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[NENHUMA FLAG] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST" +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK" +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " +- +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Tipo de Hardware.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Lista dos tipos possíveis de hardware:\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=Família de endereços. Default: %s\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " Lista de famílias de endereços possíveis:\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:380 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Métrica:%d" ++msgid "Unknown media type.\n" ++msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:417 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:429 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:441 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " compactados:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:465 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" + msgstr "" +-"Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:523 + #, c-format +-msgid " collisions:%lu " +-msgstr " colisões:%lu " ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:652 + #, c-format +-msgid "compressed:%lu " +-msgstr "compactados:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:684 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "txqueuelen:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "IRQ:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Endereço de E/S:0x%x " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:350 ++#: ../ifconfig.c:693 + #, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Memória:%lx-%lx " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:353 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Este sistema não tem suporte a INET6.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface desconhecida: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Uso:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereço>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <endereço>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <endereço>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <endereço>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen <NN>]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Tipo de Hardware.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Lista dos tipos possíveis de hardware:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=Família de endereços. Default: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Lista de famílias de endereços possíveis:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Este sistema não tem suporte a INET6.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Remoção de endereço não suportada neste sistema.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Este sistema não tem suporte a INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Este sistema não tem suporte a ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve " +-"ser root.)\n" ++msgstr "(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve ser root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" +-"(Nem todos os processos puderam ser identificados, informações sobre " +-"processos\n" ++"(Nem todos os processos puderam ser identificados, informações sobre processos\n" + " de outrem não serão mostrados, você deve ser root para vê-los todos.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "OUVINDO" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ENVIADO" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ENVIADO" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABELECIDA" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Ative sockets NET/ROM\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Problemas lendo dados de %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_ENVIADO" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECEBIDO" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "ESPERA_FIN1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "ESPERA_FIN2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "FECHAR" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "ESPERANDO_FECHAR" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "ÚLTIMO_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "OUÇA" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "FECHANDO" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "atenção, recebi linha igmp6 inválida %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: família de protocolos %d não suportada!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "atenção, recebi linha igmp inválida %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Ativar sockets AX.25\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "atenção, recebi linha tcp inválida.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "desligado (0.00/%ld/%ld)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "em (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "desconh.-%d (%2.2f/%ld)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "atenção, recebi linha udp inválida.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "DESCONHECIDA" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ligado %d (%2.2f/%ld)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "atenção, recebi linha raw inválida.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "atenção, recebi linha unix inválida.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIVRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "CONECTANDO" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONECTADO" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "DESCONECTANDO" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Domain sockets UNIX ativos " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servidores e estabelecidas)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -993,114 +919,118 @@ + "\n" + "Proto CntRef Flags Tipo Estado I-Node Rota" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Caminho\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ENVIADO" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECUPERAÇÃO" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Ativar sockets AX.25\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "problemas lendo dados de %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Sockets IPX ativos\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto " +-"Estado" ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Usuário" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "DESC." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - estatísticas não disponíveis -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[SEM FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabela de Interfaces do Kernel\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" +-msgstr "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV " +-"Opções\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "falta informação da interface" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "uso: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeo] [<Socket>]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr " netstat [-vnNcaeo] [<Socket>]\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1108,19 +1038,38 @@ + " -M, --masquerade mostra conexões mascaradas\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend mostra outras/mais informações\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1128,30 +1077,33 @@ + " -c, --continuous listagem contínua\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -L, --netlink mostra mensagens netlink do kernel\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr " -a, --all, --listening mostra tudo\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib mostra a Base de Informações de Repasse " +-"(default)\n" ++msgstr " -F, --fib mostra a Base de Informações de Repasse (default)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1159,136 +1111,145 @@ + " -C, --cache mostra cache de roteamento no lugar da FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" +-msgstr "" +-" Lista das famílias de endereços possíveis (que suportam roteamento):\n" ++msgstr " Lista das famílias de endereços possíveis (que suportam roteamento):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Conexões Internet Ativas " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " +-" " ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Usuário " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Temporizador" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 Group Memberships\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Interface CntRef Grupo\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Este kernel não tem suporte a RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "Sem entrada RARP para %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: endereço de hardware inválido\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: não foi possível abrir o arquivo %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erro de formato em %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: máquina desconhecida\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: não é possível incluir uma entrada para %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Uso: rarp -a lista entradas no cache\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d máquina remove entrada do cache\n" ++msgstr " rarp -d máquina remove entrada do cache\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" ++msgstr " rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f adiciona entradas a partir do\n" + " arquivo ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +-msgstr "" +-" rarp -V mostra versão do programa\n" ++msgstr " rarp -V mostra versão do programa\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: mistura ilegal de opções.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: tipo desconhecido de hardware.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" +-"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de " +-"rotea-\n" ++"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de rotea-\n" + " mento do kernel\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1298,35 +1259,42 @@ + " mento da família.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" +-" route {-h|--help} [família_de_endereços] Sintaxe para a AF " +-"(Família\n" +-" de endereços) " +-"espeficicada.\n" ++" route {-h|--help} [família_de_endereços] Sintaxe para a AF (Família\n" ++" de endereços) espeficicada.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" +-" route {-V|--version} Mostra a versão do " +-"comando\n" ++" route {-V|--version} Mostra a versão do comando\n" + " e sai.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Uso: ifconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [[família] endereço]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1335,25 +1303,29 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Uso: iptunnel { add | change | del | show } [ NOME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" +-msgstr "" +-" [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev DISP_FÍSICO ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1361,451 +1333,734 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Onde: NAME := STRING\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " END := { ENDEREÇO_IP | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NÚMERO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { QUATRO_NÚMEROS_SEPARADOS_POR_PONTOS | NÚMERO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Chaves não são permitidas com ipip e sit.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Um túnel de broadcast precisa de um endereço de origem.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 e noptmudisc são incompatíveis\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "não foi possível determinar o modo do túnel (ip, gre ou sit)\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip remoto %s local %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Desconhecido" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Descarte pacotes fora de seqüência.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " É necessário checksum nos pacotes recebidos.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Seqüencie pacotes na saída.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Calcule o checksum para pacotes de saída.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Formato errado de /proc/net/dev. Desculpe.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Não foi possível obter o tipo de [%s]\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pacotes Bytes Erros CsunErrs ForaSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pacotes Bytes Erros DeadLoop SemRota SemBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histograma de entrada ICMP:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histograma de saída ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Repassagem está %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Default TTL é %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d total de pacotes recebidos" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d com cabeçalhos inválidos" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d com endereços inválidos" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d repassados" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d com protocolo desconhecido" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d pacotes entrantes descartados" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d pacotes entrantes despachados" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requisições enviadas" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d pacotes saintes descartados" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d descartados devido a falta de rota" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragmentos descartados após estouro de tempo" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d remontagens requeridas" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d pacotes remontados sem problemas" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d remontagens de pacotes falharam" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragmentos recebidos sem problemas" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragmentos falharam" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragmentos criados" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d mensagens ICMP recebidas" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d mensagens ICMP entrantes falharam." + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destino não alcançável: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "estouro de tempo em trânsito: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "parâmetros errados: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "source quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "respostas de eco: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "respostas a timestamps: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requisições de mascara de endereço: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "resposta a mascara de endereço" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "respostas a máscara de endereço: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d mensagens ICMP enviadas" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d mensagens ICMP falharam" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "tempo excedido: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "source quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "respostas a timestamp: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requisições de máscara de endereço: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "respostas a máscara de endereço: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "Algorítmo RTO é %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d opens passivos" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d resets de conexão recebidas" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d conexões estabelecidas" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segmentos recebidos" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segmentos enviados" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segmentos retransmitidos" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d segmentos ruins recebidos." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d resets enviados" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d pacotes recebidos" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d pacotes para portas desconhecidas recebidos." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erros de recepção de pacotes" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:142 ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d pacotes enviados" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d pacotes descartados da fila de fora de ordem devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++ ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:143 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:172 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:173 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:175 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u SYNs to LISTEN sockets ignored" + msgstr "" +-"%d pacotes retirados da fila de recepção devido a sobreposição de buffers de " +-"sockets" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d pacotes descartados da fila de fora de ordem devido a sobreposição de " +-"buffers de sockets" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d pacotes para portas desconhecidas recebidos." ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d segmentos ruins recebidos." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d resets enviados" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d remontagens de pacotes falharam" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d total de pacotes recebidos" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d resets de conexão recebidas" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "habilitado" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "desabilitado" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "título %s desconhecido\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erro lendo /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "não foi possível abrir /proc/net/snmp" + +@@ -1819,89 +2074,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Não foi possível mudar a disciplina da linha para `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "Não Especificado" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "UNIX Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AX.25 AMPR" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "NET/ROM AMPR" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Por favor não especifique mais que uma família de endereços.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Excesso no número de famílias de endereços.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Família de endereços `%s' desconhecida.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[Nenhum configurado]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): endereço arcnet inválido!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): trailing : ignorado!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): lixo no trailing!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Endereço Ash mal formado" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[Nenhum configurado]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Callsign inválido" +@@ -1911,22 +2172,21 @@ + msgstr "Callsign muito longo" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tabela de roteamento AX.25 do kernel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destino Iface Uso\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1942,253 +2202,268 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): lixo no trailing!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Família de endereços `%s' não suportada.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Nenhum roteamento para a família `%s'\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Loopback Local" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "SLIP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "SLIP VJ" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "SLIP 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "SLIP VJ 6 bits" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "SLIP Adaptativo" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "FDDI - Fibra Ótica" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "Túnel IPIP" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocolo Ponto-a-Ponto" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "FRAD - Dispositivo de Acesso a Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6 sobre IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (Novo)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: família de endereços %d não suportada!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "DESCONHECIDA" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tabela de Roteamento IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Destino Próximo \"Hop\" " +-" Opções Métrica Ref Uso Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Destino Próximo \"Hop\" Opções Métrica Ref Uso Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache de Vizinhos IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +-msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++msgstr "Vizinho Endereço HW Iface Opções Estado Ref\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++"Vizinho Endereço HW Iface Opções Estado Ref\n" + " Parado(seg) Remover(seg)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Uso: inet6_route [-vF] del Destino\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Destino [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NÃO suportado\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Limpeza da tabela de roteamento `inet6' não é suportada\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destino Roteador MáscaraGen Opções Métrica Ref Uso " +-"Iface MSS Janela irtt\n" ++msgstr "Destino Roteador MáscaraGen Opções Métrica Ref Uso Iface MSS Janela irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2196,31 +2471,36 @@ + "Uso: inet_route [-vF] del {-host|-net} Destino[/prefixo] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [gw Gw] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NÃO suportado\n" + +@@ -2230,14 +2510,17 @@ + msgstr "route: %s: não é possível usar uma REDE como roteador!\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS inválido.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: janela inválida.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt inicial inválido.\n" + +@@ -2252,75 +2535,92 @@ + msgstr "route: netmask %s inválida\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: a netmask não casa com o endereço de rede\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Não é suportado limpar a tabela de roteamento `inet'\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Não é suportado modificar o cache de roteamento `inet'\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tabela de roteamento IPX do kernel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destino Rede Roteadora Nó Roteador\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entradas de IP mascarado\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expira origem destino portas\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expira initseq delta prevd origem destino " +-" portas\n" ++"prot expira initseq delta prevd origem " ++"destino portas\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tabela de roteamento NET/ROM do kernel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destino Mnemônico Qualidade Vizinho Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "uso de netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Você não pode iniciar o PPP com este programa.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Desculpe, use o pppd!\n" + +@@ -2329,51 +2629,314 @@ + msgstr "Endereço do nó deve ter dez dígitos" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE não configurada neste sistema.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tabela de roteamento ROSE do kernel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): endereço token ring inválido!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): trailing : ignorado!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): lixo no trailing!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "atenção: nenhum socket inet disponível: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Atenção: não foi possível abrir %s (%s). Saída limitada.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "%s: dispositivo não encontrado" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: erro obtendo informações da interface: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - estatísticas não disponíveis -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[SEM FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Encapsulamento do Link: %s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Endereço de HW %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Mídia:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s end.: %s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-a-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masc:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " endereço inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Escopo:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Link" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Máquina" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Desconhecido" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " Endereço IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " Endereço EtherTalk fase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " Endereço econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[NENHUMA FLAG] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST" ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK" ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Métrica:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compactados:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " colisões:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compactados:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "txqueuelen:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" +-"%s: erro obtendo informações da interface: %s\n" +-"\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "IRQ:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Endereço de E/S:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Memória:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nenhuma família de endereços que possa ser usada foi encontrada.\n" + +@@ -2397,29 +2960,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argumento errado: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Uso: ipmaddr [ add | del ] ENDMULTI dev STRING\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "família %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " usuários %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Não foi possível criar o socket" + +@@ -2434,6 +3000,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: não foi possível escrever o arquivo PID\n" + +@@ -2452,39 +3019,69 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nome muito longo\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: não foi possível obter o estado corrente!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" +-msgstr "" +-"slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" ++msgstr "slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: não foi possível configurar o modo RAW!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: não foi possível configurar %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: não foi possível configurar modo 8N1!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s inicializado" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " em %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr "%s: interface desconhecida.\n" ++ ++#~ msgid "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [netmask <nm>] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface desconhecida: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "resposta a mascara de endereço" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "título %s desconhecido\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +--- net-tools-1.60.orig/po/Makefile ++++ net-tools-1.60/po/Makefile +@@ -3,13 +3,13 @@ + INSTALL_DATA= ${INSTALL} -m 644 + INSTALLNLSDIR=${BASEDIR}/usr/share/locale + +-TUPDATE = tupdate ++TUPDATE = msgmerge + + NLSPACKAGE = net-tools + + -include ../config.make + ifeq ($(I18N),1) +-CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ++CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ja.mo + else + CATALOGS = + endif +@@ -49,7 +49,7 @@ + lang=`echo $$cat | sed 's/.mo//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ +- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \ ++ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "tupdate for $$cat failed!"; \ +--- net-tools-1.60.orig/po/et_EE.po ++++ net-tools-1.60/po/et_EE.po +@@ -6,7 +6,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.58\n" +-"POT-Creation-Date: 2001-02-15 21:28+0200\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 2001-02-15 18:00+0300\n" + "Last-Translator: Meelis Roos <mroos@linux.ee>\n" + "Language-Team: Estonian <linux-ee@eenet.ee>\n" +@@ -14,53 +15,58 @@ + "Content-Type: text/plain; charset=iso-8859-15\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: puudub hosti nimi\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "%s jaoks pole ARP kirjet\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: vale protokolli tüüp\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: puudub riistvaraline aadress\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: vigane riistvaraline aadress\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ei saa avada faili %s\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: formaadiviga real %u failis %s\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n" + +-#: ../arp.c:437 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" +@@ -68,45 +74,52 @@ + "Aadress HWtüüp HWaadress Lipud Mask " + "Liides\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " liides %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(mittetäielik)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) aadressil " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<mittetäielik>" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "võrgumask %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "liides %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- pole kirjet\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ei leidnud %d kirje hulgast sobivat\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -116,47 +129,45 @@ + "ARP cache vaatamine:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hosti nimi>]\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + "ARP kirje kustutamine:\n" + " arp [-v] [-i <if>] -d <hosti nimi> [pub] [nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + "ARP kirjete lisamine failist:\n" + " arp [-vnD] [<HW>] [-i <if>] -f [<failinimi>]\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + "ARP kirje lisamine:\n" + " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [temp] [nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [<HW>] [-i <if>] -Ds <hosti nimi> <if> [netmask <nm>] pub\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -164,122 +175,132 @@ + " -a näita kõiki hoste alternatiivsel (BSD) " + "kujul\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set uue ARP kirje seadmine\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete määratud kirje kustutamine\n" + +-#: ../arp.c:623 ../netstat.c:1485 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose jutukas väljund\n" + +-#: ../arp.c:624 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric mitte lahendada nimesid\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device võrguliidese täpsustamine (näiteks eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device lugeda <hwaddr> vastavalt liideselt\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol protokollipere määramine\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file lugeda kirjed antud failist või " +-"/etc/ethers'st\n" ++" -f, --file lugeda kirjed antud failist või /etc/" ++"ethers'st\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + " <HW>=kasutage '-H <hw>' riistvaralise aadressi määramiseks.\n" + " Vaikimisi: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Võimalike ARP-i toetavate riistvara tüüpide nimekiri:\n" + +-#: ../arp.c:664 ../arp.c:749 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "arp: riistvara tüüpi %s ei toetata\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "arp: aadressiperekonda %s ei toetata\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N toetust pole veel\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: tundmatu aadressiperekond %s\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: tundmatu riistvara tüüp %s\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n" + +-#: ../arp.c:754 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: riistvara tüübil %s pole ARP toetust\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Sean sõlme nimeks `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: ainult root saab sõlme nime muuta\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nimi on liiga pikk\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Sean hosti nimeks `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: ainult root saab hosti nime muuta\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Sean domeeni nimeks `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: ainult root saab domeeni nime muuta\n" +@@ -304,25 +325,28 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Tulemus: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ei saa avada faili `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Kasutamine:\n" + " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka " + "failist)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -330,18 +354,21 @@ + " nodename [-v] {nodename|-F fail} DECneti võrgusõlme nime " + "seadmine\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime näitamine antud formaadis\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr " hostname [-v] hosti nime näitamine\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +377,8 @@ + " hostname -h|--help seesama abiinfo\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,36 +386,44 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short lühike hosti nimi\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias alias-nimed\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address hosti IP aadressid\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + " -f, --fqdn, --long pikk hosti nimi (FQDN - täielik süsteeminimi)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain DNS domeeni nimi\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node DECneti võrgusõlme nimi\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -395,7 +431,8 @@ + " -F, --file lugeda hosti või NIS domeeni nimi failist\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -415,6 +452,7 @@ + msgstr "%s: selle käsuga ei saa muuta DNS domeeni nime\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -423,6 +461,7 @@ + "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "(mis on täieliku nime osa) nime muuta failist /etc/hosts.\n" + +@@ -441,76 +480,97 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:110 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../ifconfig.c:132 ../ifconfig.c:164 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "ifconfig: tundmatu liides %s: %s\n" ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "Antud süsteem ei toeta INET aadressiperekonda\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" ++ ++#: ../ifconfig.c:202 ++#, fuzzy, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" + msgstr "" + "Kasutamine:\n" + " ifconfig [-a] [-i] [-v] [-s] <liides> [[<AF>] <aadress>]\n" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add <address>[/<prefixlen>]]\n" + msgstr " [add <aadress>[/<prefiksi pikkus>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del <address>[/<prefixlen>]]\n" + msgstr " [del <aadress>[/<prefiksi pikkus>]]\n" + +-#: ../ifconfig.c:183 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" + msgstr " [[-]broadcast [<aadress>]] [[-]pointopoint [<aadress>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" + msgstr " [netmask <aadress>] [dstaddr <aadress>] [tunnel <aadress>]\n" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill <NN>] [keepalive <NN>]\n" + msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" + msgstr " [hw <HW> <aadress>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:191 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tüüp>]\n" + +-#: ../ifconfig.c:194 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen <NN>]\n" + msgstr " [txqueuelen <NN>]\n" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" +@@ -518,73 +578,134 @@ + " [up|down] ...\n" + "\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:224 ++#, c-format + msgid " <HW>=Hardware Type.\n" + msgstr " <HW>=riistvara tüüp\n" + +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr " Võimalike riistvara tüüpide nimekiri:\n" + + #. 1 = ARPable +-#: ../ifconfig.c:204 ++#: ../ifconfig.c:227 + #, c-format + msgid " <AF>=Address family. Default: %s\n" + msgstr " <AF>=aadressiperekond, vaikimisi %s\n" + +-#: ../ifconfig.c:205 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr " Võimalike aadressiperekondade nimekiri:\n" + +-#: ../ifconfig.c:361 ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" ++ ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "Tundmatu meedia tüüp\n" + +-#: ../ifconfig.c:653 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + "riistvara aadressi tüübil `%s' pole käsitlejat aadressi seadmiseks - ebaõnn\n" + +-#: ../ifconfig.c:662 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "%s: vigane %s aadress\n" + +-#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "Antud süsteem ei toeta INET6 aadressiperekonda\n" + +-#: ../ifconfig.c:749 ../ifconfig.c:840 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "Liides %s pole initsialiseeritud\n" + +-#: ../ifconfig.c:761 ../ifconfig.c:851 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "Vigane aadress\n" + +-#: ../ifconfig.c:854 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Antud süsteem ei toeta aadresside kustutamist\n" + +-#: ../ifconfig.c:947 ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" ++ ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Antud süsteem ei toeta ECONET aadressiperekonda\n" + +-#: ../ifconfig.c:955 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" + +-#: ../netstat.c:429 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n" + +-#: ../netstat.c:433 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -592,210 +713,223 @@ + "(Mõnesid protsesse ei saanud identifitseerida, teiste kasutajate\n" + "info lugemiseks peab olema root)\n" + +-#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:441 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:442 ../netstat.c:1250 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:465 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktiivsed NET/ROM soklid\n" + +-#: ../netstat.c:466 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Kasutaja Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk " + "VvJrk\n" + +-#: ../netstat.c:476 ../netstat.c:1290 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:511 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:512 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:513 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:514 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:515 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:516 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:517 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:518 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:519 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:520 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:587 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n" + +-#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883 +-#: ../netstat.c:1014 ../netstat.c:1019 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: aadressiperekonda %d ei toetata\n" + +-#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n" + +-#: ../netstat.c:668 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "Aktiivsed X.25 soklid\n" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:670 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Sihtpunkt Lähtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:747 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Hoiatus - sain imeliku tcp rea\n" + +-#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "eikäi ((0.00/%ld/%d)" + +-#: ../netstat.c:792 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "käib (%2.2f/%ld/%d)" + +-#: ../netstat.c:797 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:802 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "eitea-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:879 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Hoiatus - sain imeliku udp rea\n" + +-#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "TUNDMATU" + +-#: ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "käib-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Hoiatus - sain imeliku raw rea\n" + +-#: ../netstat.c:1110 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Hoiatus - sain imeliku unix rea\n" + +-#: ../netstat.c:1137 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1141 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1149 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1153 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1162 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "VABA" + +-#: ../netstat.c:1178 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ÜHENDUMAS" + +-#: ../netstat.c:1182 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "ÜHENDATUD" + +-#: ../netstat.c:1186 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "LAHTIÜHENDUMAS" + +-#: ../netstat.c:1217 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktiivsed UNIX domeeni soklid " + +-#: ../netstat.c:1219 ../netstat.c:1729 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serverid ja ühendatud)" + +-#: ../netstat.c:1222 ../netstat.c:1732 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(ainult serverid)" + +-#: ../netstat.c:1224 ../netstat.c:1734 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ilma serveriteta)" + +-#: ../netstat.c:1227 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -803,32 +937,36 @@ + "\n" + "Proto Mitu Lipud Tüüp Olek I-kirje " + +-#: ../netstat.c:1229 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "Tee\n" + +-#: ../netstat.c:1249 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1252 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1266 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktiivsed AX.25 soklid\n" + +-#: ../netstat.c:1267 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:1310 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:1361 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -838,47 +976,53 @@ + "Proto VvJrk SaatJrk Kohalik aadress Väline aadress " + "Olek " + +-#: ../netstat.c:1363 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Kasutaja" + +-#: ../netstat.c:1397 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1405 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1443 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tuuma liideste tabel\n" + +-#: ../netstat.c:1447 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../netstat.c:1451 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "Puudulik informatsioon liideste kohta" + +-#: ../netstat.c:1474 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Kasutamine: netstat [-veenNcCF] [<Af>] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1475 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Sokkel> ...]\n" + +-#: ../netstat.c:1476 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -886,25 +1030,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1478 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route ruutingutabeli näitamine\n" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces liideste tabeli näitamine\n" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr " -g, --groups multiedastuse gruppide näitamine\n" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics võrgu statistika näitamine (SNMP stiilis)\n" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -912,36 +1061,39 @@ + " -M, --masquerade maskeeritavate ühenduste näitamine\n" + "\n" + +-#: ../netstat.c:1486 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" +-msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n" +- +-#: ../netstat.c:1487 +-msgid " --numeric-hosts dont resolve host names\n" ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" + msgstr " --numeric-hosts mitte lahendada hostinimesid\n" + +-#: ../netstat.c:1488 +-msgid " --numeric-ports dont resolve port names\n" ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" + msgstr " --numeric-ports mitte lahendada pordinimesid\n" + +-#: ../netstat.c:1489 +-msgid " --numeric-users dont resolve user names\n" ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" + msgstr " --numeric-users mitte lahendada kasutajanimesid\n" + +-#: ../netstat.c:1490 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic lahendada riistvara aadressid\n" + +-#: ../netstat.c:1491 ../route.c:87 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend muu info/lisainfo näitamine\n" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs soklite kohta PID/protsessi nime näitamine\n" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -949,22 +1101,26 @@ + " -c, --continuous pidevalt uuenev nimekiri\n" + "\n" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -l, --listening kuulavate serversoklite näitamine\n" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening kõigi soklite näitamine (vaikimisi " + "ühendatud)\n" + +-#: ../netstat.c:1496 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers taimerite näitamine\n" + +-#: ../netstat.c:1497 ../route.c:88 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -972,7 +1128,8 @@ + " -F, --fib üldiste ruutingutabelite näitamine " + "(vaikimisi)\n" + +-#: ../netstat.c:1498 ../route.c:89 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -981,108 +1138,121 @@ + "näitamine\n" + "\n" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1501 ../route.c:91 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=kasutage '-A <af>' või '--<af>' vaikimisi: %s\n" + +-#: ../netstat.c:1502 ../route.c:92 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Võimalike ruutingu toetavate aadressiperekondade nimekiri:\n" + +-#: ../netstat.c:1726 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktiivsed internetiühendused " + +-#: ../netstat.c:1736 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek " +-" " ++"Proto VvJrk SaatJrk Kohalik aadress Väline aadress " ++"Olek " + +-#: ../netstat.c:1738 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Kasutaja I-kirje " + +-#: ../netstat.c:1741 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Taimer" + +-#: ../netstat.c:1771 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 grupikuuluvused\n" + +-#: ../netstat.c:1772 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Liides Mitu Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "rarp: tuum ei toeta RARP'i\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "rarp: %s jaoks pole RARP kirjet\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "rarp: vigane riistvaraline aadress %s\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ei saa avada faili %s:%s\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: vorminguviga failis %s real %u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: tundmatu host %s\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Kasutamine:\n" + " rarp -a puhvris olevate kirjete vaatamine\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr " rarp -d <hosti nimi> kirje kustutamine puhvrist\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr " rarp [<HW>] -s <hosti nimi> <hwaddr> kirje lisamine puhvrisse\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f kirjete lisamine failist /etc/ethers\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1090,24 +1260,26 @@ + " rarp -V programmi versiooni näitamine\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: lubamatu võtmete kombinatsioon\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: tundmatu riistvara tüüp %s\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Kasutamine:\n" + " route [-nNvee] [-FC] [<AF>] Tuuma ruutingutabeli näitamine\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1115,7 +1287,8 @@ + " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +@@ -1123,7 +1296,8 @@ + " route {-h|--help} [<AF>] Detailne süntaks perekonna AF " + "jaoks\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1132,15 +1306,23 @@ + " route {-V|--version} Versiooni ja oskuste näitamine\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=kasutage '-A <af>' või '--<af>' vaikimisi: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Kasutamine: plipconfig [-a] [-i] [-v] liides\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1149,25 +1331,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1175,83 +1362,99 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:89 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kus: NIMI := STRING\n" + +-#: ../iptunnel.c:90 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " AADR := { IP_AADRESS | any }\n" + +-#: ../iptunnel.c:91 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ARV | inherit }\n" + +-#: ../iptunnel.c:92 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:93 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n" + " LIIDES := FÜÜSILISE_LIIDESE_NIMI\n" + +-#: ../iptunnel.c:331 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "ipip ja sit juures ei ole võtmed lubatud\n" + +-#: ../iptunnel.c:351 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Leviedastusega tunnel vajab lähteaadressi\n" + +-#: ../iptunnel.c:366 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n" + +-#: ../iptunnel.c:378 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "Ei suuda määrata tunneli moodi (ipip, gre või sit)\n" + +-#: ../iptunnel.c:416 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip teises otsas %s siin %s " + +-#: ../iptunnel.c:420 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "tundmatu" + +-#: ../iptunnel.c:452 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Järjekorravälised paketid visatakse minema\n" + +-#: ../iptunnel.c:454 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Vastuvõetavates pakettides on kontrollsumma kohustuslik\n" + +-#: ../iptunnel.c:456 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Väljuvad paketid varustatakse järjekorranumbritega\n" + +-#: ../iptunnel.c:458 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Väljuvad paketid varustatakse kontrollsummaga\n" + +-#: ../iptunnel.c:486 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n" + +-#: ../iptunnel.c:499 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Ei suutnud kindlaks teha liidese %s tüüpi\n" + +-#: ../iptunnel.c:515 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n" + +-#: ../iptunnel.c:518 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MäluOtsas\n" + +@@ -1658,13 +1861,13 @@ + msgstr "%u paketti pandi otse recvmsg eeljärjekorda" + + #: ../statistics.c:178 +-#, c-format +-msgid "%u packets directly received from backlog" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from backlog" + msgstr "%u paketti võeti vastu otse backlog-ist" + + #: ../statistics.c:180 +-#, c-format +-msgid "%u packets directly received from prequeue" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from prequeue" + msgstr "%u paketti võeti vastu otse eeljärjekorrast" + + #: ../statistics.c:182 +@@ -1673,8 +1876,8 @@ + msgstr "%u paketti kustutati eeljärjekorrast" + + #: ../statistics.c:183 +-#, c-format +-msgid "%u packets header predicted" ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%u paketti päise õige ennustusega" + + #: ../statistics.c:184 +@@ -1687,19 +1890,210 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "Pakettide saatmisel sai %u korda süsteemne mälu otsa" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%u sisenevat paketti tundmatule pordile" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%u vigast segmenti võeti vastu" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, fuzzy, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%u katkestust saadeti" ++ ++#: ../statistics.c:202 ++#, fuzzy, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:206 ++#, fuzzy, c-format ++msgid "%u forward retransmits" ++msgstr "%u edastati" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%u pakettide kokkupanekut ebaõnnestus" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++"%u paketti kustutati vastuvõtu järjekorrast sokli puhvri ületäitumise tõttu" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%u paketti võeti vastu" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "kokku võeti vastu %u paketti" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%u aktiivsest ühendusest keelduti ajatempli tõttu" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "lubatud" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "keelatud" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Viga /proc/net/snmp analüüsimisel" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Ei saa avada faili /proc/net/snmp" + +@@ -1713,7 +2107,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ei suuda seada `%s' liiniprotokolliks\n" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +@@ -1729,11 +2123,11 @@ + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +@@ -1745,7 +2139,7 @@ + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +@@ -1753,19 +2147,21 @@ + msgid "CCITT X.25" + msgstr "CCITT X.25" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Meil on kombeks üks aadressiperekond korraga\n" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Liiga palju aadressiperekonna argumente\n" + +@@ -1790,6 +2186,7 @@ + msgstr "in_arcnet(%s): sodi lõpus\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Vigane Ash aadress" + +@@ -1808,22 +2205,21 @@ + msgstr "Liiga pikk kutsung" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pole antud süsteemis konfigureeritud\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tuuma AX.25 ruutingutabel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Sihtpunkt Liides Kasutus\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1879,90 +2275,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): sodi lõpus\n" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Kohalik loopback" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serial Line IP" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "VJ Serial Line IP" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bitine Serial Line IP" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bitine Serial Line IP" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptiivne Serial Line IP" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "üldine X.25" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP tunnel" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Kakspunktprotokoll" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco-)HDLC" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (New)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1972,27 +2372,32 @@ + msgid "[UNKNOWN]" + msgstr "[TUNDMATU]" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pole antud süsteemis konfigureeritud\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tuuma IPv6 ruutingutabel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Sihtpunkt Järgmine samm " +-" Lipud Meetr Mitu Kasut Liides\n" ++"Sihtpunkt Järgmine " ++"samm Lipud Meetr Mitu Kasut Liides\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Tuuma IPv6 naabrite puhver\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2000,7 +2405,8 @@ + "Naaber HW Aadress Liides Lipud " + "Mitu Olek\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2009,31 +2415,38 @@ + "Mitu Olek Stale(sec) Delete(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Kasutamine: route [-vF] del AADRESS\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + " route [-vF] add AADRESS [gw GW] [metric M] [[dev] LIIDES]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "`inet6' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pole antud süsteemis konfigureeritud\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tuuma IP ruutingutabel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2042,6 +2455,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2050,6 +2464,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2058,10 +2473,12 @@ + "Liides MSS Aken irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tuuma IP ruutingu puhver\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2070,6 +2487,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2078,6 +2496,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2086,6 +2505,7 @@ + "Liides MSS Aken irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2093,7 +2513,8 @@ + "Lähtepunkt Sihtpunkt Ruuter Lipud Meetr Mitu Kasut " + "Liides MSS Aken irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2101,31 +2522,36 @@ + "Kasutamine: route [-vF] del {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss MSS] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + +@@ -2135,14 +2561,17 @@ + msgstr "route: %s: võrku ei saa kasutada ruuterina\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: vigane MSS/MTU\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Vigane akna suurus\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: vigane algne rtt\n" + +@@ -2157,75 +2586,92 @@ + msgstr "route: vale võrgumask %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: võrgumask ei sobi ruutingu aadressiga\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "`inet' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "`inet' ruutingu puhvri muutmist ei toetata\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pole antud süsteemis konfigureeritud\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tuuma IPX ruutingutabel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Sihtpunkt Ruuteri võrk Ruuter ise\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX osa vajab ümbertegemist\n" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskeerimise kirjed\n" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Proto Aegub Lähtepunkt Sihtpunkt Pordid\n" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Proto Aegub Initseq Delta Prevd Lähtepunkt Sihtpunkt " +-" Pordid\n" ++"Proto Aegub Initseq Delta Prevd Lähtepunkt " ++"Sihtpunkt Pordid\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pole antud süsteemis konfigureeritud\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tuuma NET/ROM ruutingutabel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Sihtpunkt Mnemoonika Kvaliteet Naaber Liides\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "netrom kasutus\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM osa vajab ümbertegemist\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Sellest programmist ei saa PPP-d käivitada\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Palun kasutage pppd'd\n" + +@@ -2234,287 +2680,314 @@ + msgstr "Sõlme aadress peab olema kümnekohaline" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pole antud süsteemis konfigureeritud\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tuuma ROSE ruutingutabel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): vigane token ring-aadress\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): ignoreerin lõpetavat koolonit\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): sodi lõpus\n" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "Hoiatus: `inet' sokleid ei ole: %s\n" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Hoiatus: ei saa avada faili %s (%s). Väljund on piiratud.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Liidest ei leitud" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr " - statistikat ei ole -" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "%-9.9s kapseldus:%s " + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "HWaddr %s " + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "meedia:%s" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "(auto)" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr " %s aadress:%s " + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr " P-t-P:%s " + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr " bcast:%s " + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr " mask:%s\n" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr " inet6 aadr: %s/%d" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr " skoop:" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "globaalne" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "ühendus" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "site" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "ühilduvus" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "host" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "tundmatu" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr " IPX/Ethernet II aadr:%s\n" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr " IPX/Ethernet SNAP aadr:%s\n" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr " IPX/Ethernet 802.2 aadr:%s\n" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr " IPX/Ethernet 802.3 aadr:%s\n" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr " EtherTalk Phase 2 aadr:%s\n" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr " econeti aadr:%s\n" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "UP " + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "BROADCAST " + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "DEBUG " + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "LOOPBACK " + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "POINTOPOINT " + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "NOTRAILERS " + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "RUNNING " + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "NOARP " + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "PROMISC " + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "ALLMULTI " + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "SLAVE " + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "MASTER " + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "MULTICAST " + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "DYNAMIC " + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr " MTU:%d meetrika:%d" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr " ülalhoidepakettide intervall:%d ülalhoidetaimaut:%d" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "RX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu kaadri vigu:%lu\n" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr " pakitud:%lu\n" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "TX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu carrier:%lu\n" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr " kollisioone:%lu " + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "pakitud:%lu " + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "txqueuelen:%d " + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "RX baite:%llu (%lu.%lu %s) TX baite:%llu (%lu.%lu %s)\n" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "katkestus:%d " + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "baasaadress:0x%x " + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "mälu:%lx-%lx " + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "DMA kanal:%x " + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Ei leidnud ühtegi kasutatavat aadressiperekonda\n" + +@@ -2538,29 +3011,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "iptunnel: vale argument %s\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n" + +-#: ../ipmaddr.c:59 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:60 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:260 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "perekond %d " + +-#: ../ipmaddr.c:269 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " kasutajaid %d" + +-#: ../ipmaddr.c:355 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ei saa avada soklit" + +@@ -2575,6 +3051,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: ei saa PID faili kirjutada\n" + +@@ -2594,18 +3071,22 @@ + msgstr "slattach: tty_hangup(RAISE): %s\n" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "slattach: terminali nimi on liiga pikk\n" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ei saa lugeda jooksvat olekut\n" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: liiniprotokolli küsimine ebaõnnestus\n" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ei saa seada RAW moodi\n" + +@@ -2615,6 +3096,7 @@ + msgstr "slattach: tty_open: ei saa seada kiiruseks %s bps\n" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ei saa seada 8N1 moodi\n" + +@@ -2637,3 +3119,20 @@ + #, c-format + msgid " interface %s\n" + msgstr " liides %s\n" ++ ++#~ msgid "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] " ++#~ "pub\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "ifconfig: tundmatu liides %s: %s\n" ++ ++#~ msgid " -n, --numeric dont resolve names\n" ++#~ msgstr "" ++#~ " -n, --numeric mitte lahendada numbreid nimedeks\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +--- net-tools-1.60.orig/po/de.po ++++ net-tools-1.60/po/de.po +@@ -1,106 +1,121 @@ +-# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $ ++# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $ + # German translation for net-tools 1.51 + # Copyright (C) 1999 Ralf Bächle <ralf@gnu.org> + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" +-"PO-Revision-Date: 1998-03-01 00:02+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2005-06-13 00:02+0100\n" + "Last-Translator: Ralf Bächle <ralf@gnu.org>\n" + "Language-Team:\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" +-msgstr "arp: Hostname muß angegeben werden\n" ++msgstr "arp: Hostname muss angegeben werden\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" +-msgstr "Kein ARP Eintrag für %s\n" ++msgstr "Kein ARP-Eintrag für %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: Kann Eintrag aus %s : %u nicht setzen.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: unpassende Protokolltypen.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" +-msgstr "arp: Gerät ,,%s'' hat HW-Adresse %s ,,%s''.\n" ++msgstr "arp: Gerät »%s« hat HW-Adresse %s »%s«.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" +-msgstr "arp: Hardwareadresse muß angegeben werden\n" ++msgstr "arp: Hardwareadresse muss angegeben werden\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: ungültige Hardwareadresse\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: Kann %s nicht öffnen!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: Formatfehler in Zeile %u von Etherfile %s.\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: Kann Eintrag auf Zeile %u von Etherdatei %s nicht setzen!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " Schnittstelle: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" +-msgstr "(unvollsändig)" ++msgstr "(unvollständig)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) auf " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<unvollständig> " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "netzmaske %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "auf %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Einträge: %d Ignoriert: %d Gefunden: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- kein Eintrag\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" +-msgstr "arp: In %d Einträgen wurde kein Zutreffender gefunden.\n" ++msgstr "arp: In %d Einträgen wurde kein zutreffender gefunden.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -109,157 +124,165 @@ + "Benutzung:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<Hostname>]\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr " arp [-v] [-i <if>] -d <Hostname> [pub][nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr " arp [-vnD] [<HW>] [-i <if>] -f <Dateiname> <- Eintrag aus Datei hinzufügen\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [<HW>] [-i <if>] -s <Rechnername> <hwaddr> [temp][nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr " -a Alle Hosts im BSD-Format anzeigen\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set Neuen ARP-Eintrag setzen\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete Einen bestimmten Eintrag löschen\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose Ausführliche Ausgaben\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr " -i, --device Netzwerksgerät (z.B. eth0) angeben\n" ++msgstr " -i, --device Netzwerkgerät (z.B. eth0) angeben\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device <hwaddr> von gegebenem Gerät lesen\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol Routentabelle anzeigen\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file Neue Einträge aus Datei lesen\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr " <HW>='-H <hw>' um Hardwareadresstyp anzugeben. Standard: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste möglicher Hardwaretypen, die ARP unterstützen:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: Hardwaretyp nicht unterstützt!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: Adressfamilie nicht unterstützt!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N noch nicht unterstützt.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: unbekannte Adressfamilie.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: unbekannter Hardwaretyp.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" +-msgstr "arp: %s: Kernel unterstützt nur ,,inet''.\n" ++msgstr "arp: %s: Kernel unterstützt nur »inet«.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: Hardware unterstützt kein ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" +-msgstr "Rechnernamen auf ,,%s'' setzen\n" ++msgstr "Rechnernamen auf »%s« setzen\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: name zu lang\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" +-msgstr "Setze Hostname auf ,,%s''\n" ++msgstr "Setze Hostname auf »%s«\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" +-msgstr "%s: Nur Root darf then Rechnernamen ändern\n" ++msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" +-msgstr "Setze domainname auf ,,%s''\n" ++msgstr "Setze domainname auf »%s«\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: Nur Root darf den Domainnamen ändern\n" +@@ -267,51 +290,56 @@ + #: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" +-msgstr "Löse ,,%s'' auf ...\n" ++msgstr "Löse »%s« auf ...\n" + + #: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" +-msgstr "Ergebnis: h_name=,,%s''\n" ++msgstr "Ergebnis: h_name=»%s«\n" + + #: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" +-msgstr "Ergebnis: h_aliases=,,%s''\n" ++msgstr "Ergebnis: h_aliases=»%s«\n" + + #: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" +-msgstr "Ergebnis: h_addr_list=,,%s''\n" ++msgstr "Ergebnis: h_addr_list=»%s«\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" +-msgstr "%s: Kann ,,%s'' nicht öffnen\n" ++msgstr "%s: Kann »%s« nicht öffnen\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Benutzung: hostname [-v] {Hostname|-F Datei} Hostname (aus Datei) setzen\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" +-" domainname [-v] {nisdomain|-F file} NIS Domainname (aus Datei) " ++" domainname [-v] {nisdomain|-F file} NIS-Domainname (aus Datei) " + "setzen.\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr " nodename [-v] {Rechnername|-F Datei}\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n]\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -319,7 +347,8 @@ + " hostname [-v] Hostnamen anzeigen\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -328,7 +357,8 @@ + "beenden.\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -336,43 +366,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short Kurzer Hostname\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias Namensalias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address Adressen für den Hostnamen\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long Langer Hostname (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" +-msgstr " -d, --domain DNS Domainname\n" ++msgstr " -d, --domain DNS-Domainname\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" +-msgstr " -y, --yp, --nis NIS/YP Domainname\n" ++msgstr " -y, --yp, --nis NIS/YP-Domainname\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" +-msgstr " -n, --node DECnet Knotennamen\n" ++msgstr " -n, --node DECnet-Knotennamen\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file Hostnamen oder NIS Domainnamen aus Datei lesen\n" ++" -F, --file Hostnamen oder NIS-Domainnamen aus Datei lesen\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -380,395 +419,268 @@ + " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" +-" Dies Kommando setzt oder gibt den Hostnamen oder NIS Domainnamen aus.\n" +-" Es ist ebenfalls möglich die DNS Domain oder den FQDN (langen Hostnamen)\n" ++" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n" ++" Es ist ebenfalls möglich die DNS-Domain oder den FQDN (langen Hostnamen)\n" + " ausgeben zu lassen. Außer wenn DNS oder NIS als Namensdienst verwendet\n" +-" wird, können FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n" ++" wird, können FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n" + " Teil des FQDNs ist) in /etc/hosts geändert werden.\n" + + #: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" +-msgstr "%s: Mit diesem Program kann der DNS Domainname nicht geändert werden\n" ++msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht geändert werden\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der " +-"DNS\n" ++"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der DNS\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" +-msgstr "" +-"Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert " +-"werden.\n" ++msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert werden.\n" + + #: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" +-msgstr "gethostname()=,,%s''\n" ++msgstr "gethostname()=»%s«\n" + + #: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" +-msgstr "getdomainname()=,,%s''\n" ++msgstr "getdomainname()=»%s«\n" + + #: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" +-msgstr "getnodename()=,,%s''\n" ++msgstr "getnodename()=»%s«\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Protokoll:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Hardware Adresse %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Medium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "INET ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s Adresse:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Syntax:\n" ++" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-z-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <Adresse>[/<Präfixlänge>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <Adresse>[/<Präfixlänge>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Maske:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6 Adresse: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Gültigkeitsbereich:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <Adresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Verbindung" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Standort" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilität" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Maschine" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Unbekannt" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II Adresse:%s\n" ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 Adresse:%s\n" ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <Länge>]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet Adresse:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[KEINE FLAGS] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "PUNKTZUPUNKT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Hardwaretyp.\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Liste möglicher Hardwaretypen:\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=Adressfamilie. Standardwert: %s\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " List der möglichen Adressfamilien:\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:417 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:429 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:441 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" + msgstr "" +-"Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:465 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimiert:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:523 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in BROADCAST mode.\n" + msgstr "" +-"Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:652 + #, c-format +-msgid " collisions:%lu " +-msgstr " Kollisionen:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:684 + #, c-format +-msgid "compressed:%lu " +-msgstr "Komprimiert:%lu " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:693 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "Sendewarteschlangenlänge:%d " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:345 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "Interrupt:%d " +-msgstr "Interrupt:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Basisadresse:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Speicher:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "DMA Kanal:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6 ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: unbekannte Schnittstelle: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Syntax:\n" +-" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <Adresse>[/<Prefixlänge>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <Adresse>[/<Prefixlänge>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <Addresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen <Länge>]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Hardwaretyp.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste möglicher Hardwaretypen:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=Adressfamilie. Standardwert: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " List der möglichen Adressfamilien:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "INET6 ist auf diesem System nicht verfügbar.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" +-msgstr "Das Löschen von Adressen ist auf diesem System nicht unterstützt.\n" ++msgstr "Das Löschen von Adressen wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "INET ist auf diesem System nicht verfügbar.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "ECONET wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie " +-"sollten Root sein.)\n" ++msgstr "(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie sollten Root sein.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -776,198 +688,220 @@ + "(Es konnten nicht alle Prozesse identifiziert werden; Informationen über\n" + "nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "HÖRT" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "VERBINGSAUFBAU GESCHICKT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "VERBINDUNGSABBAU GESCHICKT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktive NET/ROM Sockets\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleme beim Lesen von %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Warnung, fehlerhafte igmp6 line %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: Nicht unterstützte Adressfamilie %d!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Warnung, fehlerhafte igmp-Zeile %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktive AX.25 Sockets\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Warnung, fehlerhafte TCP Zeile.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "aus (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "ein (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Warnung, fehlerhafe UDP-Zeile.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "UNBEKANNT" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Warnung, fehlerhafte raw-Zeile.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Warnung, fehlerhafte UNIX-Zeile.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" +-msgstr "SEQPACKET" ++msgstr "SEQPAKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "FREI" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "VERBINDUNGSAUFBAU" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "VERBINDUNGSABBAU" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " +-msgstr "Aktive Sockets in der UNIX Domäne " ++msgstr "Aktive Sockets in der UNIX-Domäne " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(Server und stehende Verbindungen)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(Nur Server)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ohne Server)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -975,90 +909,90 @@ + "\n" + "Proto RefZäh Flaggen Typ Zustand I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Pfad\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM GESCHICKT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "WIEDERHERSTELLUNG" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktive AX.25 Sockets\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Problem beim Lesen von Daten von %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktive IPX Sockets\n" +-"Proto Recv-Q Send-Q Lokale Adresse Gegenaddress " ++"Proto Recv-Q Send-Q Lokale Adresse Gegenadresse " + "Zustand" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Benutzer" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNB." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - keine Statistiken verfügbar -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[KEINE FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" +-msgstr "Kernel Schnittstellentabelle\n" ++msgstr "Kernel-Schnittstellentabelle\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " +-"Flg\n" +-msgstr "" +-"SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" +-msgstr "Fehlende Interfaceinformation" ++msgstr "Fehlende Interfaceinformationen" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Benutzung: netstat [-veenNcCF] [<Af>] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Socket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1066,27 +1000,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route Routentabelle anzeigen\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces Schnittstellentabelle auflisten\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups Mitgliedschaft in Multicastgruppen " + "anzeigen\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics Netzwerksstatistiken anzeigen (wie SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1094,23 +1033,38 @@ + " -M, --masquerade Maskierte Verbindungen auflisten\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic Hardwarenamen auflösen\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" +-msgstr "" +-" -e, --extend Weitere / zusätzliche Informationen " +-"anzeigen\n" ++msgstr " -e, --extend Weitere / zusätzliche Informationen anzeigen\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" +-msgstr "" +-" -p, --programs PID/Programmnamen für Sockets anzeigen\n" ++msgstr " -p, --programs PID/Programmnamen für Sockets anzeigen\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1118,24 +1072,27 @@ + " -c, --continuous Anzeige laufend aktualisieren\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening Empfangsbereite Serversockets auflisten\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening Alle Sockets anzeigen (normal: nur " + "verbundene)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers Timer auflisten\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1143,7 +1100,8 @@ + " -F, --fib Forwarding Infomation Base anzeigen " + "(Standard)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1151,110 +1109,118 @@ + " -C, --cache Routencache statt FIB anzeigen\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste möglicher Adressfamilien, die Routen unterstützen:\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktive Internetverbindungen " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Benutzer Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" +-msgstr "IPv4 Gruppenmitgliedschaften\n" ++msgstr "IPv4-Gruppenmitgliedschaften\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Schnittstelle RefZäh Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Dieser Kernel unterstützt kein RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" +-msgstr "Kein RARP Eintrag für %s.\n" ++msgstr "Kein RARP-Eintrag für %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: fehlerhafte Hardwareadresse\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: kann Datei %s:%s nicht öffnen.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: Formatfehler bei %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: Unbekannter Host\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: Kann Eintrag aus %s:%u nicht setzen.\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Benutzung: rarp -a Einträge im Cache listen.\n" ++msgstr "Benutzung: rarp -a Einträge im Cache listen.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d <hostname> Eintrag aus dem Cache löschen.\n" ++msgstr " rarp -d <hostname> Eintrag aus dem Cache löschen.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufügen.\n" ++msgstr " rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufügen.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f Einträge aus /etc/ethers " +-"zufügen.\n" ++msgstr " rarp -f Einträge aus /etc/ethers zufügen.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1262,24 +1228,26 @@ + " rarp -V Programmversion anzeigen.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: Unerlaubte Mischung von Optionen.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" +-msgstr "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: unbekannter Hardwaretyp.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Benutzung: route [-nNvee] [-FC] [<AF>] Kernelroutentabelle " + "anzeigen\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1287,14 +1255,15 @@ + " route [-v] [-FC] {add|del|flush} ... Routentabelle für AF ändern.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [<AF>] Genaue Syntax für AF anzeigen.\n" ++msgstr " route {-h|--help} [<AF>] Genaue Syntax für AF anzeigen.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1304,590 +1273,891 @@ + "Ende.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Benutzung: plipconfig [-a] [-i] [-v] Interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, c-format + msgid " plipconfig -V | --version\n" +-msgstr " plipconfig -V\n" ++msgstr " plipconfig -V | --version\n" + + #: ../plipconfig.c:74 + #, c-format + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Benutzung: iptunnel { add | change | del | show } [ NAME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr " [ mode { ipip | gre | sit } ] [ remote ADR ] [ local ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key SCHLÜSSEL ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 +-#, fuzzy ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" +-msgstr "" +-" [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" +-"\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" ++" iptunnel -V | --version\n" ++"\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Wobei: NAME := ZEICHENKETTE\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP_ADRESSE | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NUMBER | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { DOTTED_QUAD | ZAHL }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Schlüssel sind mit ipip und sit nicht erlaubt.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Ein Broadcasttunnel ist nur mit einer Quelladresse möglich\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 und noptmudisc sind inkompatibel\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + "Die Tunnelbetriebsart (ipip, fre oder sit) kann nicht festgestellt werden\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip Gegenseite %s lokal %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Unbekannt" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Pakete außer der Reihenfolge fallenlassen.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Prüfsumme im empfangenen Paket wird benötigt.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Pakete in Reihenfolge ausgeben.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Prüfsumme für ausgegebene Pakete berechnen.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" +-msgstr "Falsches Format von /proc/net/dev. Tut mir leid\n" ++msgstr "Falsches Format von /proc/net/dev. Tut mir leid.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Kann den Typ von [%s] nicht holen\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakete Bytes Fehler CsumErrs OutOfSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakete Bytes Fehler DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" +-msgstr "ICMP Eingabehistogramm:" ++msgstr "ICMP-Eingabehistogramm:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" +-msgstr "ICMP Ausgabehistogramm:" ++msgstr "ICMP-Ausgabehistogramm:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Weiterleitung ist %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Standard-TTL ist %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" +-msgstr "%d Pakete insgesamt empfangen" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" ++msgstr "%d Pakete insgesamt empfangen" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" +-msgstr "%d with ungültigen Headern" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" ++msgstr "%d mit ungültigen Headern" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d mit ungültigen Adressen" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d weitergeleitet" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d mit unbekanntem Protokoll" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d eingehende Pakete weggeworfen" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d eingehende Pakete zugestellt" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d Anfragen ausgesandt" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d ausgehende Pakete weggeworfen" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d weggeworfen wegen fehlender Route" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d Fragmente nach Timeout weggeworfen" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d Wiederzusammenstellungen nötig" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d fehlgeschlagene Paketdefragmentierungen" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" +-msgstr "%d Fragmente Fehlgeschlagen" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" ++msgstr "%d Fragmente fehlgeschlagen" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d Fragmente erzeugt" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" +-msgstr "%d ICMP Nachrichten empfangen" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" ++msgstr "%d ICMP-Nachrichten empfangen" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." +-msgstr "%d eingegangene ICMP Nachrichten fehlgeschlagen" ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." ++msgstr "%d eingegangene ICMP-Nachrichten fehlgeschlagen" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "Ziel unerreichbar: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "Timeout beim Transit: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "Fehlerhafte Parameter: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" +-msgstr "Echo Requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" ++msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "Echo Antworten: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "Zeitstempelanfragen: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "Zeitstempelantworten: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "Adressmaskenanfragen: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "Adressmaskenantworten" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "Adressmaskenantworten: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d ICMP-Nachrichten geschickt" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" +-msgstr "%d ICMP Nachrichten fehlgeschlagen" +- + #: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" ++msgstr "%d ICMP-Nachrichten fehlgeschlagen" ++ ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "Zeitüberschreitung: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "Zeitstempel Anfragen: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "Zeitstempel Antworten: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "Adressmaskenanfragen: %d" + +-#: ../statistics.c:111 ++#: ../statistics.c:118 + #, c-format +-msgid "address mask replies: %d" +-msgstr "Adressmaskenantworten: %d" ++msgid "RTO algorithm is %s" ++msgstr "RTO-Algorithmus ist %s" ++ ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" ++msgstr "%d Verbindungen aktiv geöffnet" ++ ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" ++msgstr "%d Verbindungen passiv geöffnet" ++ ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" ++msgstr "%d fehlerhafte Verbindungsversuche" ++ ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" ++msgstr "%d Verbindungen aufgebaut" ++ ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" ++msgstr "%d Segmente empfangen" ++ ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" ++msgstr "%d Segmente abgeschickt" ++ ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." ++msgstr "%d Pakete für unbekannte Ports empfangen." ++ ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" ++msgstr "%d Paketempfangsfehler" ++ ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies verschickt" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies empfangen" + +-#: ../statistics.c:116 ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d ungültige SYN-Cookies empfangen" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d Rücksetzungen für embrionische SYN_RECV-Sockets" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP-Pakete weggeworfen die außerhalb des Fensters waren" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d ICMP-Pakete verworfen weil Socket gesperrt war" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "RTO algorithm is %s" +-msgstr "RTO Algorithmus is %s" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" + +-#: ../statistics.c:120 ++#: ../statistics.c:161 + #, c-format +-msgid "%d active connections openings" +-msgstr "%d Verbindungen aktiv geöffnet" ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" + +-#: ../statistics.c:121 ++#: ../statistics.c:162 + #, c-format +-msgid "%d passive connection openings" +-msgstr "%d Verbindungen passiv geöffnet" ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" + +-#: ../statistics.c:122 ++#: ../statistics.c:163 + #, c-format +-msgid "%d failed connection attempts" +-msgstr "%d fehlerhafte Verbindungsversuche" ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:123 ++#: ../statistics.c:165 + #, c-format +-msgid "%d connection resets received" +-msgstr "%d Verbindungsrücksetzungen empfangen" ++msgid "%u active connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:124 ++#: ../statistics.c:167 + #, c-format +-msgid "%d connections established" +-msgstr "%d Verbindungen aufgebaut" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" + +-#: ../statistics.c:125 ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:170 + #, c-format +-msgid "%d segments received" +-msgstr "%d Segmente empfangen" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:126 ++#: ../statistics.c:172 + #, c-format +-msgid "%d segments send out" +-msgstr "%d Segmente abgeschickt" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:127 ++#: ../statistics.c:173 + #, c-format +-msgid "%d segments retransmited" +-msgstr "%d Segmente erneut geschickt" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:128 ++#: ../statistics.c:175 + #, c-format +-msgid "%d bad segments received." +-msgstr "%d fehlerhafte Segmente empfangen." ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:129 ++#: ../statistics.c:176 + #, c-format +-msgid "%d resets sent" +-msgstr "%d Rücksetzungen geschickt" ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" + +-#: ../statistics.c:134 ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets received" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%d Pakete empfangen" + +-#: ../statistics.c:135 ++#: ../statistics.c:184 + #, c-format +-msgid "%d packets to unknown port received." ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" + msgstr "%d Pakete für unbekannte Ports empfangen." + +-#: ../statistics.c:136 ++#: ../statistics.c:189 + #, c-format +-msgid "%d packet receive errors" +-msgstr "%d Paketempfangsfehler" ++msgid "%u predicted acknowledgments" ++msgstr "" + +-#: ../statistics.c:137 ++#: ../statistics.c:190 + #, c-format +-msgid "%d packets sent" +-msgstr "%d Pakete geschickt" ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" + +-#: ../statistics.c:142 ++#: ../statistics.c:191 + #, c-format +-msgid "%d SYN cookies sent" +-msgstr "%d SYN-Cookies verschickt" ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:193 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies empfangen" ++msgid "Detected reordering %u times using FACK" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:194 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d ungültige SYN-Cookies empfangen" ++msgid "Detected reordering %u times using SACK" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:195 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d Rücksetzungen fuer embrionische SYN_RECV Sockets" ++msgid "Detected reordering %u times using time stamp" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:196 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "Detected reordering %u times using reno fast retransmit" + msgstr "" +-"%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange " +-"weggeworfen" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:197 + #, c-format +-msgid "%d packets pruned from out-of-order queue" +-msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++msgid "%u congestion windows fully recovered" ++msgstr "" + +-#: ../statistics.c:152 ++#: ../statistics.c:198 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u congestion windows partially recovered using Hoe heuristic" + msgstr "" +-"%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" + +-#: ../statistics.c:154 ++#: ../statistics.c:199 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP Pakete weggeworfen die auserhalb des Fensters waren" ++msgid "%u congestion window recovered using DSACK" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d fehlgeschlagene Paketdefragmentierungen" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d Pakete insgesamt empfangen" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:220 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d ICMP Pakete verworfen weil Socket gesperrt war" ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d Verbindungsrücksetzungen empfangen" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "aktiviert" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "deaktiviert" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "Unbekannter Titel %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Fehler beim Parsen von /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Kann /proc/net/snmp nicht öffnen" + + #: ../lib/activate.c:69 + #, c-format + msgid "Hardware type `%s' not supported.\n" +-msgstr "Hardwaretyp ,,%s'' nicht unterstützt.\n" ++msgstr "Hardwaretyp »%s« nicht unterstützt.\n" + + #: ../lib/activate.c:73 + #, c-format + msgid "Cannot change line discipline to `%s'.\n" +-msgstr "Kann line discipline nicht auf ``%s'' setzen.\n" ++msgstr "Kann line discipline nicht auf »%s« setzen.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" +-msgstr "UNIX Domain" ++msgstr "UNIX-Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" +-msgstr "DARPA Internet" ++msgstr "DARPA-Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Bitte nur eine Adressfamilie angeben.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Zu viele Adressfamilien angegeben.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" +-msgstr "Unbekannte Adressfamilie `%s'.\n" +- +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NICHT GESETZT]" ++msgstr "Unbekannte Adressfamilie »%s«.\n" + +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): Ungültige ARCnet-Adresse!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): angehängt : ignoriert!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): Nachfolgender Müll!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" +-msgstr "Fehlerhafte Ash Adresse" ++msgstr "Fehlerhafte Ash-Adresse" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NICHT GESETZT]" + + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" +@@ -1898,22 +2168,21 @@ + msgstr "Rufzeichen zu lang" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Kernel AX.25 Routentabelle\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Ziel SStelle Benutzer\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1929,153 +2198,168 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): Nachfolgender Müll!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): Ungültige FDDI-Adresse!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): Nachfolgender Müll!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Adressfamilie `%s' wird nicht unterstützt.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Kein Routen für Adressfamilie `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): Ungültige HIPPI-Adresse!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): Nachfolgender Müll!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Lokale Schleife" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serielle IP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Serielle VJ-IP" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bit Serielle IP" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bit Serielle IP" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptive Serielle IP" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" +-msgstr "Punkt-zu-Punkt Verbindung" ++msgstr "Punkt-zu-Punkt-Verbindung" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-nach-IPv4" + +-#: ../lib/hw.c:198 +-#, fuzzy ++#: ../lib/hw.c:214 + msgid "IrLAP" +-msgstr "LAPB" ++msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: nicht unterstützte Adressfamilie %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "UNBEKANNT" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) ist auf diesem System nicht konfiguriert.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" +-msgstr "Kernel IPv6 Routentabelle\n" ++msgstr "Kernel-IPv6-Routentabelle\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Ziel Nächster Hop " +-" Flags Metric Ref Benutzer Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Ziel Nächster Hop Flags Metric Ref Benutzer Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Kernel IPv6 Nachbarcache\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2083,39 +2367,45 @@ + "Nachbar HW-Adresse Iface Flags " + "Ref Zustand\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Nachbar HW-Adresse Iface Flags " +-"Ref Zustand Stale(sec) Löschen(sec)\n" ++msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Löschen(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Benutzung: inet6_route [-vF] del Ziel\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Ziel [gw Gateway] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NICHT unterstützt\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" +-msgstr ",,Flush'' für IPv6 Routentabelle nicht unterstützt\n" ++msgstr "»Flush« für IPv6-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" +-msgstr "Kernel IP Routentabelle\n" ++msgstr "Kernel-IP-Routentabelle\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2124,6 +2414,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2132,6 +2423,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2140,10 +2432,12 @@ + "Iface MSS Fenster irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" +-msgstr "Kernel IP Routencache\n" ++msgstr "Kernel-IP-Routencache\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2152,6 +2446,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2160,6 +2455,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2168,6 +2464,7 @@ + "Iface MSS Fenster irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2175,37 +2472,39 @@ + "Quelle Ziel Gateway Flags Metrik Ref Ben " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +-msgstr "" +-"Benutzung: inet_route [-vF] del {-host|-net} Ziel[/prefix] [gw Gw] [metric " +-"M] [[dev] If]\n" ++msgstr "Benutzung: inet_route [-vF] del {-host|-net} Ziel[/Präfix] [gw Gw] [metric M] [[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Prefix] [gw Gw] [metric M]\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NICHT unterstützt\n" + +@@ -2215,15 +2514,17 @@ + msgstr "route: %s: Netzadresse als Gateway ungültig!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Ungültige MSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Ungültige Fenstergröße.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Ungültige Start-RTT.\n" + +@@ -2238,126 +2539,408 @@ + msgstr "Route: Fehlerhafte Netzmaske %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: Netzmaske passt nicht zur Routenadresse\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" +-msgstr ",,Flush'' der Inet-Routentabelle nicht unterstützt\n" ++msgstr "»Flush« der Inet-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" +-msgstr "Änderung des ,,Inet'' Routencaches nicht unterstützt\n" ++msgstr "Änderung des »Inet« Routencaches nicht unterstützt\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" +-msgstr "Kernel IPX Routentabelle\n" ++msgstr "Kernel-IPX-Routentabelle\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" +-msgstr "Ziel Router Netz Router Knoten\n" ++msgstr "Ziel Router-Netz Router-Knoten\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" +-msgstr "IPX: dies muß noch geschrieben werden\n" ++msgstr "IPX: dies muss noch geschrieben werden\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP-Maskierungseinträge\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Prot expire Quelle Ziel Ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Prot Ablauf Anf-Seq Delta Prevd Quelle Ziel " +-" Ports\n" ++"Prot Ablauf Anf-Seq Delta Prevd Quelle " ++"Ziel Ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM ist auf diesem System nicht verfügbar.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" +-msgstr "Kernel NET/ROM Routentabelle\n" ++msgstr "Kernel-NET/ROM-Routentabelle\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Ziel Mnemonic Qualität Nachbar Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" +-msgstr "NET/ROM Benutzung\n" ++msgstr "NET/ROM-Benutzung\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" +-msgstr "NET/ROM: Dies muß noch geschrieben werden\n" ++msgstr "NET/ROM: Dies muss noch geschrieben werden\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Mit diesem Programm kann PPP nicht gestartet werden.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" +-msgstr "Bitte benutzen sie pppd.\n" ++msgstr "Bitte benutzen Sie pppd.\n" + + #: ../lib/rose.c:87 + msgid "Node address must be ten digits" +-msgstr "Knotenadresse muß zehn Ziffern haben" ++msgstr "Knotenadresse muss zehn Ziffern haben" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE ist auf diesem System nicht verfügbar.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" +-msgstr "ROSE Kernel Routentabelle\n" ++msgstr "ROSE-Kernel-Routentabelle\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): ungültige Tokenringadresse!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nachfolgender Müll!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" +-msgstr "Warnung: Keine INET Sockets verfügbar: %s\n" ++msgstr "Warnung: Keine INET-Sockets verfügbar: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Gerät nicht gefunden" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - keine Statistiken verfügbar -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[KEINE FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Protokoll:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Hardware Adresse %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Medium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s Adresse:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-z-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Maske:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-Adresse: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Gültigkeitsbereich:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Verbindung" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Standort" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilität" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Maschine" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Unbekannt" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II Adresse:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 Adresse:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet Adresse:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[KEINE FLAGS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "PUNKTZUPUNKT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrik:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimiert:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " Kollisionen:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "Komprimiert:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "Sendewarteschlangenlänge:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interrupt:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Basisadresse:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Speicher:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMA Kanal:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Keine benutzbaren Adressfamilien gefunden.\n" + +@@ -2369,41 +2952,44 @@ + #: ../lib/util-ank.c:238 + #, c-format + msgid "ip: %s is invalid inet prefix\n" +-msgstr "ip: %s ist ein ungültiges INET-Prefix\n" ++msgstr "ip: %s ist ein ungültiges INET-Präfix\n" + + #: ../lib/util-ank.c:248 + #, c-format + msgid "ip: %s is invalid IPv4 address\n" +-msgstr "ip: %s ist eine ungültige IPv4 Adresse\n" ++msgstr "ip: %s ist eine ungültige IPv4-Adresse\n" + + #: ../lib/util-ank.c:256 + #, c-format + msgid "ip: argument is wrong: %s\n" + msgstr "ip: Fehlerhaftes Argument: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Benutzung: ipmaddr [ add | del ] MULTIADR dev NAME\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev NAME ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "familie %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " Benutzer %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Kann Socket nicht öffnen" + +@@ -2418,13 +3004,14 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: Kann PID-Datei nicht schreiben\n" + + #: ../slattach.c:202 + #, c-format + msgid "slattach: tty_lock: UUCP user %s unknown!\n" +-msgstr "slattach: tty_lock: UUCP Benutzer %s unbekannt!\n" ++msgstr "slattach: tty_lock: UUCP-Benutzer %s unbekannt!\n" + + #: ../slattach.c:430 + #, c-format +@@ -2436,39 +3023,71 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: name zu lang\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: kann aktuellen Zustand nicht auslesen!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: Kann augenblicklichen Leitungszustand nicht auslesen!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: Kann RAW-Modus nicht setzen!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: Kann %s bps nicht setzen!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: Kann 8N1-Modus nicht setzen!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s gestartet" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " auf %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " Schnittstelle: %s\n" ++ ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++"<-''-\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n" ++ ++msgid "%s: unknown interface: %s\n" ++msgstr "%s: unbekannte Schnittstelle: %s\n" ++ ++msgid "address mask replies" ++msgstr "Adressmaskenantworten" ++ ++msgid "unknown title %s\n" ++msgstr "Unbekannter Titel %s\n" ++ ++msgid "Routing table for `ddp' not yet supported.\n" ++msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +--- net-tools-1.60.orig/po/fr.po ++++ net-tools-1.60/po/fr.po +@@ -4,7 +4,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1998-03-01 00:02+0100\n" + "Last-Translator: J.M.Vansteene <vanstee@worldnet.fr>\n" + "Language-Team:\n" +@@ -12,273 +13,277 @@ + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: nécessite un nom d'hôte\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pas d'entrée ARP pour %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, fuzzy, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: nécessite une adresse matériel\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: adresse matériel invalide\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ne peut ouvrir le fichier ether %s !\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erreur de format ligne %u du fichier ether %s !\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ne peut définir l'entrée en ligne %u du fichier ether %s !\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tTypeMap\tAdresseMat\t Indicateurs\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr "%s: interface inconnue: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entrées: %d\tIgnorées: %d\tTrouvées: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: aucune correspondance trouvée dans %d entrées\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + "Syntaxe:\n" +-" arp [-vn] [<MAT>] [-i <if>] [-a] [<hôte>] <-Affiche cache " +-"ARP\n" ++" arp [-vn] [<MAT>] [-i <if>] [-a] [<hôte>] <-Affiche cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i <if>] -d <hôte> [pub][nopub] <-Supprime entrée " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <hôte> [pub][nopub] <-Supprime entrée ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" +-msgstr "" +-" arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entrée " +-"depuis fichier\n" ++msgstr " arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entrée depuis fichier\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [temp][nopub] <-Ajout " +-"entrée\n" ++msgstr " arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [temp][nopub] <-Ajout entrée\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [netmask <nm>] pub " +-"<-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -Ds <hôte> <if> [netmask <nm>] pub " +-"<-''-\n" ++" arp [-v] [<MAT>] [-i <if>] -Ds <hôte> <if> [netmask <nm>] pub <-''-\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a affiche (tous) les hôtes en style BSD\n" ++msgstr " -a affiche (tous) les hôtes en style BSD\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set définit une nouvelle entrée ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete supprime une entrée\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose mode verbeux\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric ne résout pas les noms\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr "" +-" -i, --device spécifie l'interface réseau (p.ex. eth0)\n" ++msgstr " -i, --device spécifie l'interface réseau (p.ex. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" +-msgstr "" +-" -D, --use-device lit l'<adrmat> depuis le périphérique\n" ++msgstr " -D, --use-device lit l'<adrmat> depuis le périphérique\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file lit les nouvelles entrées dans le fichier\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" +-msgstr "" +-" <HW>=Utilisez '-H <hw>' pour spécifier le type d'adresse matériel. Défaut: " +-"%s\n" ++msgstr " <HW>=Utilisez '-H <hw>' pour spécifier le type d'adresse matériel. Défaut: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste les types de matériels supportant ARP:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: type de matétiel non supporté !\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: famille d'adresses non supportée !\n" + +-#: ../arp.c:703 +-#, fuzzy ++#: ../arp.c:716 ++#, fuzzy, c-format + msgid "arp: -N not yet supported.\n" + msgstr "Table de routage pour `ddp' pas encore supporté.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: famille d'adresses inconnue.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: type de matériel inconnu.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: le noyau ne supporte que 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: type de matériel sans support ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Définit le nom de noeud à `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: vous devez être root pour changer le nom de noeud\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nom trop long\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Définit le nom d'hôte à `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: vous devez être root pour changer le nom d'hôte\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Définit le nom de domaine à `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: vous devez être root pour changer le nom de domaine\n" +@@ -303,38 +308,36 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Résultat : h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ne peut ouvrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis " +-"le fichier)\n" ++msgstr "Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis le fichier)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" +-msgstr "" +-" domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS " +-"(depuis le fichier)\n" ++msgstr " domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS (depuis le fichier)\n" + +-#: ../hostname.c:226 +-#, fuzzy ++#: ../hostname.c:225 ++#, fuzzy, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-" nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud " +-"DECnet (depuis le fichier)\n" ++msgstr " nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud DECnet (depuis le fichier)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] affiche le nom formatté\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -342,7 +345,8 @@ + " hostname [-v] affiche le nom d'hôte\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +354,8 @@ + " hostname -V|--version|-h|--help affiche des infos et termine\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,45 +363,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nom d'hôte court\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias noms d'alias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresses de l'hôte\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nom d'hôte long (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nom de domaine DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nom de domaine NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nom de noeud DECnet\n" + +-#: ../hostname.c:241 +-#, fuzzy ++#: ../hostname.c:240 ++#, fuzzy, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis " +-"le fichier\n" ++" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis le fichier\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -411,15 +423,16 @@ + msgstr "%s: Vous ne pouvez changer le nom de domaine DNS avec cette commande\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez " +-"changer le\n" ++"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "nom de domaine DNS (qui fait partie du FQDN) dans le fichier /etc/hosts.\n" +@@ -439,554 +452,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Lien encap:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Indic\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWaddr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Media:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Pas de support de INET sur ce système.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Syntaxe:\n" ++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <adresse>[/<lg_prefixe>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <adresse>[/<lg_prefixe>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masque:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n" + +-#: ../ifconfig.c:201 +-#, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " adr inet6: %s/%d" ++#: ../ifconfig.c:207 ++#, fuzzy, c-format ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Scope:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Lien" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Hôte" ++#: ../ifconfig.c:217 ++#, fuzzy, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen longueur]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Inconnu" ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " adr IPX/Ethernet II:%s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " adr IPX/Ethernet SNAP:%s\n" ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Type de matériel.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.2:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Liste des types de matériels possibles:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.3:%s\n" ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=famille d'Adresses. Défaut: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " adr EtherTalk Phase 2:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Liste des familles d'adresses possibles:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " adr econet:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[PAS INDICATEURS] " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " +- +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " +- +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " +- +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " compressés:%lu\n" +- +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "" +-"Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" +- +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid " collisions:%lu " +-msgstr " collisions:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "compressés:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "lg file transmission:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Interruption:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Adresse de base:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Mémoire:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Pas de support de INET6 sur ce système.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface inconnue: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Syntaxe:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <adresse>[/<lg_prefixe>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <adresse>[/<lg_prefixe>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n" +- +-#: ../ifconfig.c:433 +-#, fuzzy +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +- +-#: ../ifconfig.c:443 +-#, fuzzy +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen longueur]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Type de matériel.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste des types de matériels possibles:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=famille d'Adresses. Défaut: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Liste des familles d'adresses possibles:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Pas de support de INET6 sur ce système.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Suppression d'adresses pas supporté par ce système.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Pas de support de INET sur ce système.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Pas de support de ECONET sur ce système.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" ++msgstr "(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + "(Tous les processus ne peuvent être identifiés, les infos sur les processus\n" +-"non possédés ne seront pas affichées, vous devez être root pour les voir " +-"toutes.)\n" ++"non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "sockets NET/ROM actives\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q " +-"Recv-Q\n" ++"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q Recv-" ++"Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: famille d'adresses pas supportée %d !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Sockets AX.25 actives\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "attention, ligne tcp en erreur.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "off (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "attention, ligne udp en erreur.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "INCONNU" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "attention, ligne raw en erreur.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "attention, ligne unix en erreur.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIBRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ENCONNEXION" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONNECTE" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ENDECONNEXION" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Sockets du domaine UNIX actives" + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serveurs et établies)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(seulement serveurs)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sans serveurs)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -994,32 +906,36 @@ + "\n" + "Proto RefCpt Indicatrs Type Etat I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Chemin\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Sockets AX.25 actives\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -1029,55 +945,53 @@ + "Proto Recv-Q Send-Q Adresse locale Adresse distante " + "Etat" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "Utilisatr" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr "" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[PAS INDICATEURS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Table d'interfaces noyau\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Indic\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "informations d'interface manquantes" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Socket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1085,27 +999,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces affiche la table d'interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups affiche les membres d'un groupe multicast\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" +-msgstr "" +-" -s, --statistics affiche les statistiques réseau (comme " +-"SNMP)\n" ++msgstr " -s, --statistics affiche les statistiques réseau (comme SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1113,23 +1030,41 @@ + " -M, --masquerade affiche les connexions masquées\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic résoud les noms matériels\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + " -e, --extend affiche d'autres/plus d'informations\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs affiche le nom du programme/PID des " + "sockets\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1137,32 +1072,31 @@ + " -c, --continuous listing continu\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" +-msgstr "" +-" -l, --listening affiche les sockets du serveur à l'écoute\n" ++msgstr " -l, --listening affiche les sockets du serveur à l'écoute\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" +-msgstr "" +-" -a, --all, --listening affiche toutes les prises (défaut: " +-"connectés)\n" ++msgstr " -a, --all, --listening affiche toutes les prises (défaut: connectés)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers affiche les timers\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib affiche la Forwarding Infomation Base " +-"(défaut)\n" ++msgstr " -F, --fib affiche la Forwarding Infomation Base (défaut)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1170,110 +1104,118 @@ + " -C, --cache affiche le cache de routage au lieu de FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Défaut: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste les familles d'adresses possibles (supportant le routage):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Connexions Internet actives " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Adresse locale Adresse distante Etat " +-" " ++"Proto Recv-Q Send-Q Adresse locale Adresse distante " ++"Etat " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Utilisatr Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Ce noyau ne supporte pas RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pas d'entrée RARP pour %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: mauvaise adresse matériel\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ne peut ouvrir le fichier %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erreur de format à %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: hôte inconnu\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Usage: rarp -a liste les entrées en cache.\n" ++msgstr "Usage: rarp -a liste les entrées en cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d <hostname> supprime l'entrée du cache.\n" ++msgstr " rarp -d <hostname> supprime l'entrée du cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [<HW>] -s <hostname> <adrmat> ajoute l'entrée au cache.\n" ++msgstr " rarp [<HW>] -s <hostname> <adrmat> ajoute l'entrée au cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f ajoute les entrées depuis " +-"/etc/ethers.\n" ++msgstr " rarp -f ajoute les entrées depuis /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1281,24 +1223,26 @@ + " rarp -V affiche la version.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: combinaison d'options illégales.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: type de matériel inconnu.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Syntaxe: route [-nNvee] [-FC] [<AF>] Liste les tables de routage " + "noyau\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1307,15 +1251,15 @@ + "pour AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [<AF>] Utilisation détaillée pour l'AF " +-"spécifié.\n" ++msgstr " route {-h|--help} [<AF>] Utilisation détaillée pour l'AF spécifié.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1325,16 +1269,23 @@ + "termine.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Défaut: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Syntaxe: plipconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, fuzzy, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V\n" + +@@ -1343,474 +1294,763 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "" + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + #, fuzzy + msgid "unknown" + msgstr "Inconnu" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histogramme d'entrée ICMP" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histogramme de sortie ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Réacheminement est %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "TTL par défaut est %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d paquets totaux reçus" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d avec en-tête invalides" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d avec adresses invalides" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d réacheminées" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d avec protocole inconnu" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d paquets entrant jetés" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d paquets entrant délivrés" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requêtes envoyées" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d paquets sortant jetés" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d jetés pour cause de route manquante" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragments jetés après timeout" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d nécessitant un réassemblage" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d paquets réassemblés correctement" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d paquets mal réassemblés" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragments reçus correctement" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragments en échec" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragments créés" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d messages ICMP reçus" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d messages d'entrée ICMP en échec" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destination injoignable: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "timeout en transmission: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "mauvais paramètre: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Redirections: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requêtes echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "réponses echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requêtes de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "réponses de masque d'adresses" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "réponses de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d messages ICMP envoyés" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d messages ICMP en échec" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "temps dépassé: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redirection: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requête echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requêtes de masque d'adresse: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "réponses de masque d'adresse: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "algorithme RTO est %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d ouvertures de connexions actives" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d ouvertures de connexions passives" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentatives de connexion échouées" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d réinitialisations de connexions reçues" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d connexions établies" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segments reçus" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segments envoyés" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segments retransmis" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d mauvais segments reçus." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d réinitialisations envoyées" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d paquets reçus" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d paquets reçus pour un port inconnu" + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erreurs en réception de paquets" + +-#: ../statistics.c:137 ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d paquets envoyés" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d SYN-Cookies reçus incorrects" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d paquets supprimés de la file hors service" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d paquets jetés de la file hors service en raison de tampon de sockets plein" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "%d packets sent" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d paquets envoyés" + +-#: ../statistics.c:142 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u delayed acks further delayed because of locked socket" + msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:172 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies reçus" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:173 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d SYN-Cookies reçus incorrects" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:175 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:176 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u packets directly queued to recvmsg prequeue." + msgstr "" +-"%d paquets supprimés de la file de réception en raison de tampon de sockets " +-"plein" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d paquets supprimés de la file hors service" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d paquets jetés de la file hors service en raison de tampon de sockets plein" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d paquets reçus pour un port inconnu" ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d mauvais segments reçus." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d réinitialisations envoyées" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d paquets mal réassemblés" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d paquets totaux reçus" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d réinitialisations de connexions reçues" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "activée" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "désactivée" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titre inconnu %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erreur d'analyse de /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "ne peut ouvrir /proc/net/snmp" + +@@ -1824,89 +2064,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ne peut changer la discipline de ligne à `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Domaine UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Ne fournissez pas plus d'une famille d'adresses SVP.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Trop d'arguments de familles d'adresses.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Famille d'adresses inconnue `%s'.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[INDEFINI]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): adresse arcnet invalide !\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): restant : ignoré !\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): le restant à la poubelle !\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Adresse Ash malformée" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[INDEFINI]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Signal d'appel invalide" +@@ -1916,22 +2162,21 @@ + msgstr "Signal d'appel trop long" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pas configuré sur ce système.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Table de routage AX.25 du noyau\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destination Iface Utilisation\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Table de routage pour `ddp' pas encore supporté.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1947,153 +2192,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): le restant à la poubelle !\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): adresse fddi invalide!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): restant ignoré !\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): le restant à la poubelle !\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Famille d'adresses `%s' non supportée.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pas de routage pour la famille d'adresses `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): adresse hippi invalide!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): restant ignoré !\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): le restant à la poubelle !\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Boucle locale" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP ligne série" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "IP ligne série - VJ " + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits VJ" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "IP ligne série adaptative" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocole Point-à-Point" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Périphériue d'accès Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-dans-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + #, fuzzy + msgid "IrLAP" + msgstr "LAPB" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: famille d'adresses non suportée %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "INCONNU" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pas configuré sur ce système.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Table de routage IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Destination Prochain Hop " +-" Indic Metric Ref Utilis. Iface\n" ++"Destination Prochain " ++"Hop Indic Metric Ref Utilis. Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache voisin IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2101,39 +2364,45 @@ + "Voisin Adresse MAT Iface Indic " + "Ref Etat\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Voisin Adresse MAT Iface Indic " +-"Ref Etat Bloqué(sec) Détuit(sec)\n" ++msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqué(sec) Détuit(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Syntaxe: inet6_route [-vF] del Cible\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cible [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush PAS supporté\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Flush de table de routage `inet6' pas supporté\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pas configuré sur ce système.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Table de routage IP du noyau\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2142,26 +2411,26 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destination Passerelle Genmask Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destination Passerelle Genmask Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt\n" ++msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fenêtre irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "cache de routage IP du noyau\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2170,30 +2439,28 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Source Destination Passerelle Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Source Destination Passerelle Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Source Destination Passerelle Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt HH Arp\n" ++msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fenêtre irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Source Destination Passerelle Flags Metric Ref Use " +-"Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2201,29 +2468,34 @@ + "Syntaxe: inet_route [-vF] del {-host|-net} Cible[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush PAS supporté\n" + +@@ -2233,15 +2505,17 @@ + msgstr "route: %s: ne peut utiliser un RESEAU comme passerelle!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS invalide.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: fenêtre invalide.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt initial invalide.\n" + +@@ -2256,75 +2530,92 @@ + msgstr "route: netmask bogué %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: netmask ne correspond pas à l'adresse de route\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Flush de table de routage `inet' pas supporté\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Modification de cache de routage `inet' pas supporté\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pas configuré sur ce système.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Table de routage IPX du noyau\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destination Réseau Routeur Noeud Routeur\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: ceci doit être écrit\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entrées IP Masquerade\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expire source destination ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expire initseq delta precd source destination " +-" ports\n" ++"prot expire initseq delta precd source " ++"destination ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pas configuré sur ce système.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Table de routage NET/ROM du noyau\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destination Mnemoniq Qualité Voisin Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "utilisation netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: ceci doit être écrit\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Vous ne pouvez démarrer PPP avec ce programme.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Désolé, utilisez pppd !\n" + +@@ -2333,49 +2624,314 @@ + msgstr "L'adresse de noeud doit avoir 10 chiffres" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pas configuré sur ce système.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Table de routage ROSE du noyau\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): adresse token-ring invalide !\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): restant : ignoré !\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): restant à la poubelle !\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "attention: pas de socket inet disponible: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Périphérique non trouvé" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr "" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[PAS INDICATEURS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Lien encap:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWaddr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Media:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masque:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " adr inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Scope:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Lien" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Hôte" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Inconnu" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " adr IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " adr IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " adr EtherTalk Phase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " adr econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[PAS INDICATEURS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metric:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compressés:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " collisions:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compressés:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "lg file transmission:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interruption:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Adresse de base:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Mémoire:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Pas de famille d'adresses utilisable trouvée.\n" + +@@ -2399,29 +2955,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument incorrect: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Syntaxe: ipmaddr [ add | del ] MULTIADR dev CHAINE\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev CHAINE ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "" + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr "" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ne peut créer une socket" + +@@ -2436,6 +2995,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, fuzzy, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: tty_lock: (%s): %s\n" + +@@ -2454,59 +3014,88 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nom trop long\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ne peut obtenir l'état courant !\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: ne peut obtenir la discipline de ligne actuelle !\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode RAW !\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: ne peut passer à %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode 8N1 !\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr "" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, fuzzy, c-format + msgid " interface %s\n" + msgstr "%s: interface inconnue: %s\n" + + #~ msgid "" +-#~ " This comand can get or set the hostname or the NIS domainname. You can\n" +-#~ msgstr "" +-#~ " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine " +-#~ "NIS. Vous pouvez\n" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [netmask <nm>] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface inconnue: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "réponses de masque d'adresses" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titre inconnu %s\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Table de routage pour `ddp' pas encore supporté.\n" ++ ++#~ msgid "" ++#~ " This comand can get or set the hostname or the NIS domainname. You " ++#~ "can\n" ++#~ msgstr " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine NIS. Vous pouvez\n" + + #~ msgid "" + #~ " also get the DNS domain or the FQDN (fully qualified domain name).\n" + #~ msgstr "" +-#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain name).\n" ++#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain " ++#~ "name).\n" + + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" +-#~ msgstr "" +-#~ " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous " +-#~ "pouvez changer le\n" ++#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/net-tools.pot ++++ net-tools-1.60/po/net-tools.pot +@@ -1,253 +1,275 @@ + # SOME DESCRIPTIVE TITLE. +-# Copyright (C) YEAR Free Software Foundation, Inc. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the PACKAGE package. + # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. + # + #, fuzzy + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 2001-04-15 15:40+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" + "Language-Team: LANGUAGE <LL@li.org>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=CHARSET\n" +-"Content-Transfer-Encoding: ENCODING\n" ++"Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:111 ../arp.c:270 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "" + +-#: ../arp.c:208 ../arp.c:222 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "" + +-#: ../arp.c:240 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "" + +-#: ../arp.c:244 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:253 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:283 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "" + +-#: ../arp.c:291 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "" + +-#: ../arp.c:388 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "" + +-#: ../arp.c:404 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:417 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:438 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" + msgstr "" + +-#: ../arp.c:468 ++#: ../arp.c:476 ++msgid "<from_interface>" ++msgstr "" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:485 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:491 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "" + +-#: ../arp.c:497 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:514 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:593 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "" + +-#: ../arp.c:597 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:599 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "" + +-#: ../arp.c:614 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + +-#: ../arp.c:615 ++#: ../arp.c:627 ++#, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + +-#: ../arp.c:616 ++#: ../arp.c:628 ++#, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + +-#: ../arp.c:617 ++#: ../arp.c:629 ++#, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + +-#: ../arp.c:618 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +- +-#: ../arp.c:619 ++#: ../arp.c:630 ++#, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + +-#: ../arp.c:621 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr "" + +-#: ../arp.c:622 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr "" + +-#: ../arp.c:623 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr "" + +-#: ../arp.c:624 ../netstat.c:1490 ../route.c:86 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + +-#: ../arp.c:625 ../netstat.c:1491 ../route.c:87 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr "" + +-#: ../arp.c:626 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + +-#: ../arp.c:627 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr "" + +-#: ../arp.c:628 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr "" + +-#: ../arp.c:629 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + +-#: ../arp.c:632 ../rarp.c:183 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr "" + +-#: ../arp.c:666 ../arp.c:751 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "" + +-#: ../arp.c:670 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "" + +-#: ../arp.c:705 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "" + +-#: ../arp.c:715 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "" + +-#: ../arp.c:724 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "" + +-#: ../arp.c:743 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "" + +-#: ../arp.c:756 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "" + +-#: ../hostname.c:70 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "" + +-#: ../hostname.c:75 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "" + +-#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "" + +-#: ../hostname.c:90 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "" + +-#: ../hostname.c:95 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "" +@@ -262,103 +284,119 @@ + msgid "%s: you must be root to change the domain name\n" + msgstr "" + +-#: ../hostname.c:132 ++#: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" + msgstr "" + +-#: ../hostname.c:138 ++#: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" + msgstr "" + +-#: ../hostname.c:143 ++#: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" + msgstr "" + +-#: ../hostname.c:148 ++#: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" + msgstr "" + +-#: ../hostname.c:210 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "" + +-#: ../hostname.c:224 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + +-#: ../hostname.c:225 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + +-#: ../hostname.c:227 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr "" + +-#: ../hostname.c:229 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + +-#: ../hostname.c:230 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr "" + +-#: ../hostname.c:231 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" + msgstr "" + +-#: ../hostname.c:232 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + msgstr "" + +-#: ../hostname.c:233 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr "" + +-#: ../hostname.c:234 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr "" + +-#: ../hostname.c:235 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr "" + +-#: ../hostname.c:236 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + +-#: ../hostname.c:237 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr "" + +-#: ../hostname.c:238 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr "" + +-#: ../hostname.c:240 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr "" + +-#: ../hostname.c:242 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" + +-#: ../hostname.c:244 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -367,587 +405,706 @@ + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:340 ++#: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" + msgstr "" + +-#: ../hostname.c:341 ++#: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + +-#: ../hostname.c:342 ++#: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:359 ++#: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:376 ++#: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:391 ++#: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" + msgstr "" + +-#: ../ifconfig.c:108 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../ifconfig.c:130 ../ifconfig.c:162 ++#: ../ifconfig.c:129 ../ifconfig.c:161 + #, c-format +-msgid "%s: unknown interface: %s\n" ++msgid "%s: ERROR while getting interface flags: %s\n" + msgstr "" + +-#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:177 ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++ ++#: ../ifconfig.c:202 ++#, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" + msgstr "" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add <address>[/<prefixlen>]]\n" + msgstr "" + +-#: ../ifconfig.c:180 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del <address>[/<prefixlen>]]\n" + msgstr "" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" + msgstr "" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" + msgstr "" + +-#: ../ifconfig.c:185 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill <NN>] [keepalive <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:188 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr "" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr "" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + msgstr "" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:195 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr "" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" + msgstr "" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:224 ++#, c-format + msgid " <HW>=Hardware Type.\n" + msgstr "" + +-#: ../ifconfig.c:200 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr "" + + #. 1 = ARPable +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:227 + #, c-format + msgid " <AF>=Address family. Default: %s\n" + msgstr "" + +-#: ../ifconfig.c:203 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr "" + +-#: ../ifconfig.c:278 ++#: ../ifconfig.c:303 + #, c-format + msgid "ifconfig: option `%s' not recognised.\n" + msgstr "" + +-#: ../ifconfig.c:280 ../ifconfig.c:925 ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format + msgid "ifconfig: `--help' gives usage information.\n" + msgstr "" + +-#: ../ifconfig.c:355 ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "" + +-#: ../ifconfig.c:647 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + +-#: ../ifconfig.c:656 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "" + +-#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "" + +-#: ../ifconfig.c:743 ../ifconfig.c:834 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "" + +-#: ../ifconfig.c:755 ../ifconfig.c:845 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "" + +-#: ../ifconfig.c:848 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "" + +-#: ../ifconfig.c:920 ++#: ../ifconfig.c:957 ++#, c-format + msgid "ifconfig: Cannot set address for this protocol family.\n" + msgstr "" + +-#: ../ifconfig.c:946 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:954 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "" + +-#: ../netstat.c:430 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + +-#: ../netstat.c:434 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + +-#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "" + +-#: ../netstat.c:442 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "" + +-#: ../netstat.c:443 ../netstat.c:1255 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "" + +-#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "" + +-#: ../netstat.c:466 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "" + +-#: ../netstat.c:467 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:477 ../netstat.c:1295 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:512 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "" + +-#: ../netstat.c:513 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "" + +-#: ../netstat.c:514 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "" + +-#: ../netstat.c:515 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "" + +-#: ../netstat.c:516 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "" + +-#: ../netstat.c:517 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "" + +-#: ../netstat.c:518 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "" + +-#: ../netstat.c:519 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "" + +-#: ../netstat.c:520 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "" + +-#: ../netstat.c:521 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "" + +-#: ../netstat.c:592 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "" + +-#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888 +-#: ../netstat.c:1019 ../netstat.c:1024 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "" + +-#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "" + +-#: ../netstat.c:673 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:675 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:752 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "" + +-#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "" + +-#: ../netstat.c:797 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:802 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:807 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:884 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "" + +-#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "" + +-#: ../netstat.c:948 ../netstat.c:1067 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:1033 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "" + +-#: ../netstat.c:1115 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "" + +-#: ../netstat.c:1142 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "" + +-#: ../netstat.c:1146 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "" + +-#: ../netstat.c:1150 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "" + +-#: ../netstat.c:1154 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "" + +-#: ../netstat.c:1158 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "" + +-#: ../netstat.c:1183 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "" + +-#: ../netstat.c:1187 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "" + +-#: ../netstat.c:1191 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "" + +-#: ../netstat.c:1222 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "" + +-#: ../netstat.c:1224 ../netstat.c:1735 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "" + +-#: ../netstat.c:1227 ../netstat.c:1738 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "" + +-#: ../netstat.c:1229 ../netstat.c:1740 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "" + +-#: ../netstat.c:1232 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" + msgstr "" + +-#: ../netstat.c:1234 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "" + +-#: ../netstat.c:1254 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "" + +-#: ../netstat.c:1257 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "" + +-#: ../netstat.c:1271 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "" + +-#: ../netstat.c:1272 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1366 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + +-#: ../netstat.c:1368 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "" + +-#: ../netstat.c:1402 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "" + +-#: ../netstat.c:1410 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "" + +-#: ../netstat.c:1452 ++#: ../netstat.c:1465 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../netstat.c:1456 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr "" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr "" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr "" + +-#: ../netstat.c:1484 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr "" + +-#: ../netstat.c:1485 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + +-#: ../netstat.c:1486 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + +-#: ../netstat.c:1488 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" + msgstr "" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1505 ++#, c-format + msgid " --numeric-hosts don't resolve host names\n" + msgstr "" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1506 ++#, c-format + msgid " --numeric-ports don't resolve port names\n" + msgstr "" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1507 ++#, c-format + msgid " --numeric-users don't resolve user names\n" + msgstr "" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr "" + +-#: ../netstat.c:1496 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + +-#: ../netstat.c:1497 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + +-#: ../netstat.c:1498 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" + msgstr "" + +-#: ../netstat.c:1499 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + +-#: ../netstat.c:1501 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + +-#: ../netstat.c:1502 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" + msgstr "" + +-#: ../netstat.c:1503 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr "" + +-#: ../netstat.c:1505 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" + +-#: ../netstat.c:1506 ../route.c:92 ++#: ../netstat.c:1519 + #, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr "" + +-#: ../netstat.c:1507 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr "" + +-#: ../netstat.c:1732 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "" + +-#: ../netstat.c:1742 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + +-#: ../netstat.c:1744 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr "" + +-#: ../netstat.c:1747 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr "" + +-#: ../netstat.c:1777 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1778 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +@@ -986,23 +1143,28 @@ + msgstr "" + + #: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + + #: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr "" + + #: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr "" + + #: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + + #: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1019,38 +1181,50 @@ + msgstr "" + + #: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + + #: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" + msgstr "" + + #: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + + #: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" + ++#: ../route.c:92 ++#, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr "" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr "" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr "" + +@@ -1060,61 +1234,75 @@ + msgstr "" + + #: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + + #: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + + #: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + + #: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + + #: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + + #: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + + #: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + + #: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + + #: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + + #: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + + #: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + + #: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + + #: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + + #: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +@@ -1128,22 +1316,27 @@ + msgstr "" + + #: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + + #: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + + #: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + + #: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + + #: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +@@ -1153,10 +1346,12 @@ + msgstr "" + + #: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + + #: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +@@ -1563,12 +1758,12 @@ + + #: ../statistics.c:178 + #, c-format +-msgid "%u packets directly received from backlog" ++msgid "%u of bytes directly received from backlog" + msgstr "" + + #: ../statistics.c:180 + #, c-format +-msgid "%u packets directly received from prequeue" ++msgid "%u of bytes directly received from prequeue" + msgstr "" + + #: ../statistics.c:182 +@@ -1578,7 +1773,7 @@ + + #: ../statistics.c:183 + #, c-format +-msgid "%u packets header predicted" ++msgid "%u packet headers predicted" + msgstr "" + + #: ../statistics.c:184 +@@ -1591,19 +1786,209 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "" + +@@ -1617,7 +2002,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "" + +@@ -1633,11 +2018,11 @@ + msgid "IPv6" + msgstr "" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "" + +@@ -1649,7 +2034,7 @@ + msgid "Appletalk DDP" + msgstr "" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "" + +@@ -1657,19 +2042,21 @@ + msgid "CCITT X.25" + msgstr "" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "" + +@@ -1694,6 +2081,7 @@ + msgstr "" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "" + +@@ -1712,22 +2100,21 @@ + msgstr "" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1783,90 +2170,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1877,131 +2268,157 @@ + msgstr "" + + #: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "" + + #: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "" + + #: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" + + #: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "" + + #: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" + msgstr "" + + #: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr "" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" + msgstr "" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" + msgstr "" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + msgstr "" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr "" + +@@ -2011,14 +2428,17 @@ + msgstr "" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "" + +@@ -2033,73 +2453,90 @@ + msgstr "" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "" + +@@ -2108,287 +2545,314 @@ + msgstr "" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr "" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "" + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "" + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr "" + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr "" + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr "" + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr "" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr "" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr "" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "" + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "" + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "" + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "" + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "" + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "" + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "" + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "" + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "" + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "" + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "" + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "" + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "" + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "" + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr "" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr "" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr "" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr "" + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "" + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "" + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "" + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "" + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "" + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "" + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "" + +@@ -2413,14 +2877,17 @@ + msgstr "" + + #: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "" + + #: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr "" + + #: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +@@ -2449,6 +2916,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "" + +@@ -2468,18 +2936,22 @@ + msgstr "" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "" + +@@ -2489,6 +2961,7 @@ + msgstr "" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "" + +--- net-tools-1.60.orig/po/cs.po ++++ net-tools-1.60/po/cs.po +@@ -5,7 +5,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools-1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-08-29 23:20+0200\n" + "Last-Translator: Jiøí Pavlovský <pavlovsk@ff.cuni.cz>\n" + "Language-Team: Czech <cs@li.org>\n" +@@ -13,96 +14,110 @@ + "Content-Type: text/plain; charset=iso-8859-2\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: je tøeba jméno poèítaèe\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pro %s neexistuje ARP polo¾ka\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: HW adresu `%s' nelze zjistit: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: chybnì zadaný typ protokolu\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: zaøízení `%s' má Hw adresu %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: je tøeba hardwarová adresa\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: nesprávná hardwarová adresa\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: databázi ethernetových adres %s nelze otevøít!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: syntaktická chyba na øádku %u databáze ethernetových adres %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + "arp: polo¾ku na øádku %u databáze ethernetových adres %s nelze nastavit!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pøíz Maska\t\t Rozhraní\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " rozhraní %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(nekompletní)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) na " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<nekompletní>" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "sí»ová maska %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "na %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Polo¾ky: %d\tVynecháno: %d\tNalezeno: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- ¾ádná polo¾ka\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ¾ádná z polo¾ek (%d) nevyhovuje.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -112,49 +127,46 @@ + " arp [-vn] [<HW>] [-i <if> [-a] [<poèítaè>] <-Zobrazí ARP " + "cache\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + " arp [-v] [-i <if>] -d <poèítaè> [pub][nopub] <-Sma¾e polo¾ku " + "ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [<HW>] [-i <if>] -f <soubor> <-Pøidá polo¾ku " + "ze\n" + " souboru\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [<HW> [-i <if> -s <poèítaè> <hwadr> [temp][nopub] <-Pøidá " + "polo¾ku\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [sí»mask <èís>] <-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [<HW> [-i <if> -Ds <poèítaè> <if> [sí»mask <èís>] pub " + "<-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -162,126 +174,134 @@ + " -a zobrazí jmna v¹ech poèítaèù alternativním\n" + " (BSD) zpùsobem\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set nastaví novou ARP polo¾ku\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete sma¾e zadanou ARP polo¾ku\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + " -v, --verbose bude vypisovat podrobné zprávy\n" + " o èinnosti\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr "" + " -n, --numeric nebude pøevádìt èíselné adresy\n" + " na kanonická jména\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr " -i, --device zadává sí»ové rozhraní (napø. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device ète <hwadr> ze zadaného zaøízení\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file ète nové polo¾ky ze souboru\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + " <HW>=Pou¾ijte '-H <hw> pro zadání hardwarového typu adresy.\n" + " Implicitnì: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Seznam mo¾ných hardwarových typù (podporujících ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "hardwarový typ %s není podporován!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "tøída adres %s není podporována!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: pøepínaè -N není zatím podporován\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: neznámá tøída adres %s.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: neznámý hardwarový typ %s.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: jádro podporuje pouze 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: hardwarový typ %s nepodporuje ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Nastavuji jméno uzlu na `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: jméno uzlu mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "jméno %s je pøíli¹ dlouhé\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Nastavuji jméno poèítaèe na `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: jméno poèítaèe mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Nastavuji jméno domény na `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: jméno domény mù¾e zmìnit pouze superu¾ivatel\n" +@@ -306,26 +326,29 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Výsledek: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: `%s' nelze otevøít\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Pou¾ití:\n" + " hostname [-v] {jméno|-F soubor} nastaví jméno poèítaèe (ze " + "souboru)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n" + " souboru)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -333,11 +356,13 @@ + " nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n" + " souboru)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypí¹e formátované jméno\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -345,7 +370,8 @@ + " hostname [-v] vypí¹e jméno poèítaèe\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -353,7 +379,8 @@ + " hostname -V|--version|-h|--help vypí¹e informace a skonèí\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -361,35 +388,43 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short krátké jméno poèítaèe\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias pøezdívky\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresy odpovídající jménu poèítaèe\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long dlouhé jméno poèítaèe (kanonické)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain jméno DNS domény\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis jméno NIS/YP domény\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node jméno DECnet uzlu\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -397,7 +432,8 @@ + " -F, --file ète jméno poèítaèe èi nis domény ze souboru\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -412,6 +448,7 @@ + msgstr "%s: Tímto pøíkazem nelze DNS jméno domény zmìnit\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -421,6 +458,7 @@ + "zmìnit\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "DNS jméno domény (je souèástí kanonického jména poèítaèe) v souboru\n" +@@ -441,349 +479,223 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Zapouzdøení:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " ++"PØZ\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWadr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Médium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Tento systém nepodporuje INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Pou¾ití:\n" ++" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <adresa>[/<délka prefixu>]]\n" + +-# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. +-# Tudi¾ bcast -> V¹esmìr :) +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " V¹esmìr:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <adresa>[/<délka prefixu>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr "Maska:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6-adr: %s/%d" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Rozsah:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Globál" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Linka" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Stanovi¹tì" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilita" ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Poèítaè" ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen délka]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Neznám." ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II adr: %s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP adr:%s\n" ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Hardwarový Typ.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 adr:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Seznam mo¾ných hardwarových typù:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 adr:%s\n" ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=tøída adres. Implicitní: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 adr:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Seznam mo¾ných tøíd adres:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet adr:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-# Hic sunt leones ... +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[®ÁDNÉ PØÍZNAKY]" ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "AKTIVOVÁNO " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Neznámý typ média.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "SMYÈKA " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-# ?? +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "BÌ®Í " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NEARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISK " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "Tento systém nepodporuje INET6.\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metrika:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimováno:%lu\n" +- +-# carrier? +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" +- +-#: ../ifconfig.c:333 +-#, c-format +-msgid " collisions:%lu " +-msgstr " kolizí:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "komprimováno:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "délka odchozí fronty:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Pøeru¹ení:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Vstupnì/Výstupní port:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Pamì»:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Kanál DMA:%x " +- +-#: ../ifconfig.c:384 ../ifconfig.c:405 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: rozhraní %s není známo\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Pou¾ití:\n" +-" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <adresa>[/<délka prefixu>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <adresa>[/<délka prefixu>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen délka]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" +-msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Hardwarový Typ.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Seznam mo¾ných hardwarových typù:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=tøída adres. Implicitní: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Seznam mo¾ných tøíd adres:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Neznámý typ média.\n" +- +-#: ../ifconfig.c:881 ++#: ../ifconfig.c:885 + #, c-format +-msgid "%s: invalid %s address.\n" +-msgstr "%s: adresa %s je nesprávná.\n" +- +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Tento systém nepodporuje INET6.\n" +- +-#: ../ifconfig.c:983 + msgid "Address deletion not supported on this system.\n" + msgstr "Tento systém nepodporuje mazání adres.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Tento systém nepodporuje INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Tento systém nepodporuje ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +@@ -792,7 +704,8 @@ + "jste\n" + "byl superu¾ivatelem)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -801,199 +714,223 @@ + "pouze o procesech, jich¾ jste vlastníkem. Aby jste mohl vidìt v¹e, musel\n" + "byste být superu¾ivatelem.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "NASLOUCHÁ" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ODESLÁN" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ODESLÁN" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "SPOJENO" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktivní NET/ROM sokety\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F " +-"Pøích-F\n" ++"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F Pøích-" ++"F\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Chyba pøi ètení dat z %s\n" + + # následující radìji ponechat v originále ?! +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "ZAVØEN" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "POSLEDNÍ ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "ZAVíRÁ" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "varování, nesmyslný igmp6 øádek %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: tøída adres %d není podporována !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "varování, nesmyslný igmp øádek %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktivní AX.25 sokety\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "varování, nesmyslný tcp øádek.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "vyp (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "nezn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "varování, nesmyslný udp øádek.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "NEZNÁM" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "varování, nesmyslný 'raw' øádek.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "varování, netstat 'unix' øádek.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "NEALOKOVÁN" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "SPOJUJE" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "SPOJEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ODPOJUJE" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktivní sokety domény UNIX " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servery a navázaná spojení)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(pouze servery)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(w/o servery)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -1001,90 +938,92 @@ + "\n" + "Proto Èítaè Pøíznaky Typ Stav I-Uzel" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Cesta\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ODESLÁN" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "OBNOVA" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktivní AX.25 sokety\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "chyba pøi ètení dat z %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktivní IPX sokety\n" +-"Proto Pøích-F Odch-F Lokál adresa Vzdálená adresa " +-" Stav" ++"Proto Pøích-F Odch-F Lokál adresa Vzdálená " ++"adresa Stav" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " U¾ivatel" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "SPOJEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "NEZ." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - statistická data nejsou dostupná -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[®ÁDNÉ PØÍZNAKY]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabulka rozhraní v jádru\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " + "PØZ\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "chybí informace o rozhraní" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Soket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1092,27 +1031,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces vypí¹e tabulku rozhraní\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups vypí¹e èlenství v multicast skupinách\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics vypí¹e statistiku sí»ové aktivity (jako " + "SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1120,20 +1064,45 @@ + " -M, --masquerade vypí¹e maskovaná spojení\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic pøevede hw jména\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend vypí¹e podrobnìj¹í informace\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs vypí¹e PID/jméno programu pro sokety\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1141,23 +1110,27 @@ + " -c, --continuous nepøeru¹ovaný výpis\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening vypí¹e sokety, na nich¾ je nasloucháno\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening vypí¹e v¹echny sokety (implicitnì: " + "spojené)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers zobrazí èasovaèe\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1165,112 +1138,126 @@ + " -F, --fib zobrazí Forwarding Infomation Base\n" + " (implicitní)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr " -C, --cache místo FIB zobrazí smìrovací cache\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Seznam mo¾ných tøíd adres (podporujících smìrování):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktivní Internetová spojení " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" + "Proto Pøích-F Odch-F Místní Adresa Vzdálená Adresa Stav " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " U¾ivatel I-uzel " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Èasovaè" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "Èlenství v IPv4 skupinách\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Rozhraní Èítaè Skupina\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Toto jádro nepodporuje RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pro %s neexistuje RARP polo¾ka.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "hardwarová adresa %s je nesprávná\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: soubor %s:%s nelze otevøít.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: syntaktická chyba na øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: poèítaè %s není znám\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: nelze nastavit polo¾ku z øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "Pou¾ití: rarp -a vypí¹e polo¾ky z cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr " rarp -d <jméno> sma¾e polo¾ku z cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr "" + " rarp [<HW>] -s <jméno> <hwadr> pøidá polo¾ku do cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f pøidá polo¾ky z /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1279,24 +1266,26 @@ + "programu.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "Kombinace pøepínaèù %s je nesprávná.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: hardwarový typ %s není znám.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Pou¾ití: route [-nNvee] [-FC] [<AF>] Zobrazí smìrovací tabulky v " + "jádru\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1305,14 +1294,16 @@ + "AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + " route {-h|--help [<AF>] Nápovìda pro pou¾ití s AF.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1321,15 +1312,23 @@ + " route {-V|--version} Vypí¹e oznaèení verze a autora\n" + " programu.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Pou¾ití: plipconfig [-a] [-i] [-v] rozhraní\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1338,25 +1337,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Pou¾ití: iptunnel { add | change | del | show } [ JMÉNO ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KLÍÈ ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAØÍZENÍ ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1364,450 +1368,737 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kde: JMÉNO := ØETÌZEC\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP-ADRESA | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ÈÍSLO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KLÍÈ := { DOTTED_QUAD | ÈÍSLO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "S ipip a sit nejsou klíèe povoleny.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Tunel se v¹esmìrovým vysíláním vy¾aduje zdrojovou adresu.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 a noptmudisc se navzájem vyluèují\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "re¾im tunelu (ipip, gre èi sit) nelze zjistit\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip vzdálený %s místní %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Neznám." + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Zahazuje pakety mimo poøadí.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Pøijímané pakety musí mít kontrolní souèet.\n" + + # ??? +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Øadí odchozí pakety.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Odchozí pakety budou mít kontrolní souèet.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Lituji, formát /proc/net/dev je chybný.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Typ [%s] se nepodaøilo zjistit.\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoø Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "histogram ICMP vstupu:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "histogram ICMP výstupu:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Pøedávání je %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Implicitní TTL je %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "celkem pøijmutých paketù: %d" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "s nesprávnými hlavièkami: %d" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "s nesprávnými adresami: %d" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "pøedáno: %d" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "s neznámým protokolem: %d" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "poèet zahozených pøíchozích paketù: %d" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "poèet doruèených pøíchozích paketù: %d" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "poèet odeslaných po¾adavkù: %d" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "poèet zahozených odchozích paketù: %d" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "zahozeno kvùli chybìjící cestì: %d" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "poèet fragmentù zahozených po vypr¹ení èasu: %d" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "poèet nutných znovusestavení: %d" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "poèet v poøádku znovu sestavených paketù: %d" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "poèet v poøádku pøijmutých fragmentù: %d" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "poèet chybných fragmentù: %d" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "poèet vytvoøených fragmentù: %d" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "poèet pøijmutých ICMP zpráv: %d" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "poèet chybných pøíchozích ICMP zpráv: %d" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "adresát nedostupný: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "vypr¹el èas pøi pøenosu: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "chybné parametry: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "odpovìï na ¾ádost o echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "odpovìdi na ¾ádost o masku podsítì" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "odpovìï na ¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "poèet odeslaných ICMP zpráv: %d" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "poèet chybných ICMP zpráv: %d" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "vypr¹ení ¾ivotnosti: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "¾ádost o masku podsítì: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "odpovìï na ¾ádost o masku podsítì: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "RTO algoritmus je %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "poèet aktivnì navázaných spojení: %d" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "poèet pasivnì navázaných spojení: %d" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "poèet neúspì¹ných pokusù o spojení: %d" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "poèet pøijmutých resetù: %d" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "poèet navázaných spojení: %d" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "poèet pøijmutých segmentù: %d" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "poèet odeslaných segmentù: %d" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "poèet pøenesených segmentù: %d" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "poèet chybných pøíchozích segmentù: %d." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "poèet odeslaných resetù: %d" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "poèet pøijmutých paketù: %d" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "poèet paketù pøijmutých pro neznámý port: %d." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "poèet chyb pøi pøíjmu paketù: %d" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "poèet odeslaných paketù: %d" + +-#: ../statistics.c:142 +-#, c-format +-msgid "%d SYN cookies sent" ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" + msgstr "poèet odeslaných SYN cookies: %d" + +-#: ../statistics.c:143 +-#, c-format +-msgid "%d SYN cookies received" ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" + msgstr "poèet pøijmutých SYN cookies: %d" + +-#: ../statistics.c:144 +-#, c-format +-msgid "%d invalid SYN cookies received" ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" + msgstr "poèet chybných pøíchozích SYN cookies: %d" + +-#: ../statistics.c:146 +-#, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" + msgstr "poèet resetù pøijmutých pro sokety ve stavu SYN_PØÍCH: %d" + +-#: ../statistics.c:148 +-#, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" + msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" + + #. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 +-#, c-format +-msgid "%d packets pruned from out-of-order queue" ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" + msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" + +-#: ../statistics.c:152 +-#, c-format ++#: ../statistics.c:154 ++#, fuzzy, c-format + msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" + msgstr "" + "poèet paketù zahozených z fronty mimo-poøadí kvùli pøeteèení bufferu soketu: " + "%d" + +-#: ../statistics.c:154 +-#, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" + msgstr "poèet ICMP paketù zahozených, proto¾e byly mimo-okno: %d" + +-#: ../statistics.c:156 +-#, c-format +-msgid "%d ICMP packets dropped because socket was locked" ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" + msgstr "poèet ICMP paketù zahozených kvùli zamèenému soketu: %d" + ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "poèet odeslaných paketù: %d" ++ ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "" ++ ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" ++ ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "poèet paketù pøijmutých pro neznámý port: %d." ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "poèet chybných pøíchozích segmentù: %d." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "poèet odeslaných resetù: %d" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "celkem pøijmutých paketù: %d" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "poèet pøijmutých resetù: %d" ++ + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "zapnuto" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "vypnuto" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titulek %s je neznámý\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "chyba pøi zpracování /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "/proc/net/snmp nelze otevøít" + +@@ -1821,89 +2112,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Linkovou disciplínu nelze na `%s' zmìnit.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "NEZNÁM" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Doména UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Nezadávejte více ne¾ jednu tøídu adres.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Bylo zadáno pøíli¹ mnoho tøíd adres.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Tøída adres `%s' není známa.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NENASTAVENO]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): chybná arcnet adresa!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): nadbyteèné znaky!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Chybná Ash adresa" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NENASTAVENO]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Nesprávný volací znak" +@@ -1913,22 +2210,21 @@ + msgstr "Volací znak je pøíli¹ dlouhý." + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 není na tomto systému nakonfigurováno.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Smìrovací tabulka v jádru pro AX.25\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Adresát Rozhraní U¾ití\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1944,153 +2240,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): nadbyteèné znaky!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): chybná fddi adresa!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): nadbyteèné znaky!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Tøída adres `%s' není podporována.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pro tøídu adres `%s' není ¾ádné smìrování.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): chybná hippi adresa!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): nadbyteèné znaky!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Místní smyèka" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP po sériové lince" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Vj IP po sériové lince" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6bitový IP po sériové lince" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "6bitový VJ IP po sériové lince" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptivní IP po sériové lince" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Point-to-Point Protokol" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Pøístupové zaøízení Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "Token Ring 16/4 Mb/s" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + #, fuzzy + msgid "16/4 Mbps Token Ring (New)" + msgstr "Token Ring 16/4 Mb/s" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: tøída adres %d není podporována!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "NEZNÁM" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Adresát Dal¹í Smìrovaè " +-" Pøízn Metrika Odkaz U¾it Rozhraní\n" ++"Adresát Dal¹í " ++"Smìrovaè Pøízn Metrika Odkaz U¾it Rozhraní\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache sousedù v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2098,7 +2412,8 @@ + "Soused HW Adresa Rozhraní Pøízn " + "Odkazy Stav\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2107,30 +2422,37 @@ + "Pøíznaky Odkazy Stav Pro¹lý(sec) Smazat(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Pou¾ití: inet6_route [-vF] del Cíl\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NENÍ podporováno\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Smìrovací tabulku `inet6' nelze vyprazdòovat\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Smìrovací tabulka v jádru pro IP\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2139,6 +2461,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2147,6 +2470,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2155,10 +2479,12 @@ + "Rozhraní MSS Okno irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Smìrovací cache v jádru pro IP\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2167,6 +2493,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2175,6 +2502,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2183,6 +2511,7 @@ + "Rozhraní MSS Okno irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2190,7 +2519,8 @@ + "Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t " + "Rozhraní MSS Okno irtt TOS HHOdk HHAktuál Zvlá¹tCíl\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2198,29 +2528,34 @@ + "Pou¾ití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NENÍ podporováno\n" + +@@ -2230,15 +2565,17 @@ + msgstr "route: %s: sí» nelze pou¾ít jako bránu!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Nesprávné NSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Nesprávné okno.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Nesprávné zahajovací rtt.\n" + +@@ -2253,75 +2590,92 @@ + msgstr "route: sí»ová maska %s je nesprávná\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: sí»ová maska nevyhovuje adrese cesty\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Smìrovací cache `inet' nelze vyprazdòovat\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Smìrovací cache `inet' nelze mìnit\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX není na tomto systému nakonfigurováno.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPX\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Cíl Smìrovaè Sí» Smìrovaè Uzel\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: toto je tøeba ulo¾it\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskovací polo¾ky\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot ¾ivot zdroj cíl porty\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot ¾ivot zahajsek delta pøedchd zdroj cíl " +-" porty\n" ++"prot ¾ivot zahajsek delta pøedchd zdroj " ++"cíl porty\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM není na tomto systému nakonfigurováno.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Smìrovací tabulka v jádru pro NET/ROM\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "pou¾ití netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: toto je potøeba ulo¾it\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Tímto programem nelze PPP spustit.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Lituji, pou¾ijte pppd!\n" + +@@ -2330,49 +2684,319 @@ + msgstr "Adresa uzlu musí mít 10 èíslic" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE není na tomto systému nakonfigurováno.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Smìrovací tabulka v jádru pro ROSE\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): nesprávná token ring adresa!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nadbyteèné: ignorováno!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nadbyteèné znaky!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "varování: není dostupný ¾ádný inet soket: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Zaøízení nebylo nalezeno" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - statistická data nejsou dostupná -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Zapouzdøení:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWadr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Médium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. ++# Tudi¾ bcast -> V¹esmìr :) ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " V¹esmìr:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr "Maska:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-adr: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Rozsah:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Globál" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Linka" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Stanovi¹tì" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilita" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Poèítaè" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Neznám." ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II adr: %s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP adr:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 adr:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 adr:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 adr:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet adr:%s\n" ++ ++# Hic sunt leones ... ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "AKTIVOVÁNO " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "SMYÈKA " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# ?? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "BÌ®Í " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NEARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISK " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrika:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimováno:%lu\n" ++ ++# carrier? ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " kolizí:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "komprimováno:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "délka odchozí fronty:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Pøeru¹ení:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Vstupnì/Výstupní port:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Pamì»:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Kanál DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nebyla nalezena ¾ádná pou¾itelná tøída adres.\n" + +@@ -2396,29 +3020,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument %s je nesprávný\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ØETÌZEC\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev ØETÌZEC ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "tøída %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " u¾ivatelé %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Soket nelze vytvoøit" + +@@ -2433,6 +3060,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: do PID souboru nelze zapisovat\n" + +@@ -2451,44 +3079,77 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "jméno %s je pøíli¹ dlouhé\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: re¾im RAW nelze nastavit!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: %s bps nelze nastavit!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: re¾im 8N1 nelze nastavit!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "protokol %s spu¹tìn" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " na %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " rozhraní %s\n" + + #~ msgid "" +-#~ " This comand can read or set the hostname or the NIS domainname. You can\n" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [sí»mask <èís>] <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: rozhraní %s není známo\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "odpovìdi na ¾ádost o masku podsítì" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titulek %s je neznámý\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" ++ ++#~ msgid "" ++#~ " This comand can read or set the hostname or the NIS domainname. You " ++#~ "can\n" + #~ msgstr "" + #~ " Tento program zji¹»uje a nastavuje jméno poèítaèe èi NIS domény. Mù¾e " + #~ "také\n" +@@ -2500,7 +3161,8 @@ + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" + #~ msgstr "" +-#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete\n" ++#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak " ++#~ "mù¾ete\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/ja.po ++++ net-tools-1.60/po/ja.po +@@ -0,0 +1,3133 @@ ++# Net-tool Japanese locale data ++# Kenshi Muto <kmuto@debian.org>, 2007. ++# Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp>, 1999. ++# ++msgid "" ++msgstr "" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2007-07-04 20:47+0900\n" ++"Last-Translator: Kenshi Muto <kmuto@debian.org>\n" ++"Language-Team: Japanese\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8-bit\n" ++ ++#: ../arp.c:112 ../arp.c:279 ++#, c-format ++msgid "arp: need host name\n" ++msgstr "arp: ホストåãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:215 ../arp.c:230 ++#, c-format ++msgid "No ARP entry for %s\n" ++msgstr "%sã®ARPエントリãŒã‚ã‚Šã¾ã›ã‚“\n" ++ ++#: ../arp.c:248 ++#, c-format ++msgid "arp: cant get HW-Address for `%s': %s.\n" ++msgstr "arp: '%s'ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s.\n" ++ ++#: ../arp.c:252 ++#, c-format ++msgid "arp: protocol type mismatch.\n" ++msgstr "arp: プãƒãƒˆã‚³ãƒ«ã‚¿ã‚¤ãƒ—ãŒé©åˆã—ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:261 ++#, c-format ++msgid "arp: device `%s' has HW address %s `%s'.\n" ++msgstr "arp: デãƒã‚¤ã‚¹`%s'ã¯ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹%s `%s'ã§ã™.\n" ++ ++#: ../arp.c:293 ++#, c-format ++msgid "arp: need hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:301 ++#, c-format ++msgid "arp: invalid hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒä¸é©å½“ã§ã™\n" ++ ++#: ../arp.c:398 ++#, c-format ++msgid "arp: cannot open etherfile %s !\n" ++msgstr "arp: etherファイル%sãŒé–‹ã‘ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:414 ++#, c-format ++msgid "arp: format error on line %u of etherfile %s !\n" ++msgstr "arp: %uè¡Œ(ファイル%s)ã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™!\n" ++ ++#: ../arp.c:427 ++#, c-format ++msgid "arp: cannot set entry on line %u of etherfile %s !\n" ++msgstr "arp: etherファイル%uè¡Œ(%s)ã®ã‚¨ãƒ³ãƒˆãƒªã‚’è¨å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../arp.c:448 ++#, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" ++msgstr "アドレス HWタイプ HWアドレス フラグ マスク インタフェース\n" ++ ++#: ../arp.c:476 ++msgid "<from_interface>" ++msgstr "<起点インタフェース>" ++ ++#: ../arp.c:478 ++msgid "(incomplete)" ++msgstr "(ä¸å®Œå…¨)" ++ ++# translatable? ++#: ../arp.c:495 ++#, c-format ++msgid "%s (%s) at " ++msgstr "%s (%s) at " ++ ++#: ../arp.c:501 ++#, c-format ++msgid "<incomplete> " ++msgstr "<ä¸å®Œå…¨> " ++ ++#: ../arp.c:507 ++#, c-format ++msgid "netmask %s " ++msgstr "ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ %s " ++ ++# translatable? ++#: ../arp.c:524 ++#, c-format ++msgid "on %s\n" ++msgstr "on %s\n" ++ ++#: ../arp.c:605 ++#, c-format ++msgid "Entries: %d\tSkipped: %d\tFound: %d\n" ++msgstr "エントリ: %d\tスã‚ップ: %d\t発見: %d\n" ++ ++#: ../arp.c:609 ++#, c-format ++msgid "%s (%s) -- no entry\n" ++msgstr "%s (%s) -- エントリãªã—\n" ++ ++#: ../arp.c:611 ++#, c-format ++msgid "arp: in %d entries no match found.\n" ++msgstr "arp: %dã®ã‚¨ãƒ³ãƒˆãƒªä¸, 一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../arp.c:626 ++#, c-format ++msgid "" ++"Usage:\n" ++" arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " ++"cache\n" ++msgstr "" ++"使用法:\n" ++" arp [-vn] [<HW>] [-i <インタフェース>]\n" ++" [-a] [<ホストå>] ‥‥ ARPã‚ャッシュã®è¡¨" ++"示\n" ++ ++#: ../arp.c:627 ++#, c-format ++msgid "" ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " ++"entry\n" ++msgstr " arp [-v] [-i <インタフェース>] -d <ホストå> [pub] ‥‥ARPエントリを削除\n" ++ ++#: ../arp.c:628 ++#, c-format ++msgid "" ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++"file\n" ++msgstr "" ++" arp [-vnD] [<HW>] [-i <インタフェース>] \n" ++" -f <ファイルå> ‥‥ファイルã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’è¿½åŠ \n" ++ ++#: ../arp.c:629 ++#, c-format ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " ++"entry\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <インタフェース>]\n" ++" -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹> [temp] â€¥â€¥ã‚¨ãƒ³ãƒˆãƒªã‚’è¿½åŠ \n" ++ ++# FIXME:What does '' mean? ++#: ../arp.c:630 ++#, c-format ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " ++"<-''-\n" ++"\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <インタフェース>] -Ds <ホストå>\n" ++" <インタフェース> [netmask <ãƒãƒƒãƒˆãƒžã‚¹ã‚¯>] pub ‥‥ 〃\n" ++ ++#: ../arp.c:632 ++#, c-format ++msgid "" ++" -a display (all) hosts in alternative (BSD) " ++"style\n" ++msgstr "" ++" -a æ–°ã—ã„(BSD)スタイルã§ã‚¨ãƒ³ãƒˆãƒªã•ã‚ŒãŸå…¨ãƒ›ã‚¹ãƒˆã‚’表示" ++"ã™ã‚‹\n" ++ ++#: ../arp.c:633 ++#, c-format ++msgid " -s, --set set a new ARP entry\n" ++msgstr " -s, --set æ–°è¦ARPエントリをè¨å®šã™ã‚‹\n" ++ ++#: ../arp.c:634 ++#, c-format ++msgid " -d, --delete delete a specified entry\n" ++msgstr " -d, --delete 指定エントリを削除ã™ã‚‹\n" ++ ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format ++msgid " -v, --verbose be verbose\n" ++msgstr " -v, --verbose 詳細表示を行ãªã†\n" ++ ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format ++msgid " -n, --numeric don't resolve names\n" ++msgstr " -n, --numeric åå‰ã®ãƒ¬ã‚¾ãƒ«ãƒ–ã‚’ã—ãªã„\n" ++ ++#: ../arp.c:637 ++#, c-format ++msgid "" ++" -i, --device specify network interface (e.g. eth0)\n" ++msgstr " -i, --device ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®æŒ‡å®š(例 eth0)\n" ++ ++#: ../arp.c:638 ++#, c-format ++msgid " -D, --use-device read <hwaddr> from given device\n" ++msgstr "" ++" -D, --use-device 与ãˆã‚‰ã‚ŒãŸãƒ‡ãƒã‚¤ã‚¹ã‹ã‚‰\n" ++" <HWアドレス>ã‚’èªã¿è¾¼ã‚€\n" ++ ++#: ../arp.c:639 ++#, c-format ++msgid " -A, -p, --protocol specify protocol family\n" ++msgstr " -A, -p, --protocol プãƒãƒˆã‚³ãƒ«ãƒ•ã‚¡ãƒŸãƒªã‚’指定ã™ã‚‹\n" ++ ++#: ../arp.c:640 ++#, c-format ++msgid "" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" ++"\n" ++msgstr " -f, --file /etc/ethersファイルã‹ã‚‰æ–°è¦ã‚¨ãƒ³ãƒˆãƒªã‚’èªã¿è¾¼ã‚€\n\n" ++ ++#: ../arp.c:642 ../rarp.c:182 ++#, c-format ++msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" ++msgstr " <HW>=ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—を指定ã™ã‚‹ã«ã¯'-H <hw>'を使ã£ã¦ä¸‹ã•ã„。標準: %s\n" ++ ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format ++msgid " List of possible hardware types (which support ARP):\n" ++msgstr " (ARPをサãƒãƒ¼ãƒˆã—ãŸ)指定å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../arp.c:677 ../arp.c:762 ++#, c-format ++msgid "%s: hardware type not supported!\n" ++msgstr "%s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:681 ++#, c-format ++msgid "%s: address family not supported!\n" ++msgstr "%s: アドレスファミリãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:716 ++#, c-format ++msgid "arp: -N not yet supported.\n" ++msgstr "arp: -Nã¯ã¾ã サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:726 ++#, c-format ++msgid "arp: %s: unknown address family.\n" ++msgstr "arp: %s: ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™.\n" ++ ++#: ../arp.c:735 ++#, c-format ++msgid "arp: %s: unknown hardware type.\n" ++msgstr "arp: %s: ä¸æ˜Žãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../arp.c:754 ++#, c-format ++msgid "arp: %s: kernel only supports 'inet'.\n" ++msgstr "arp: %s: カーãƒãƒ«ã¯'inet'以外ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:767 ++#, c-format ++msgid "arp: %s: hardware type without ARP support.\n" ++msgstr "arp: %s: ARPサãƒãƒ¼ãƒˆã®ãªã„ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../hostname.c:71 ++#, c-format ++msgid "Setting nodename to `%s'\n" ++msgstr "ノードåã‚’`%s'ã¸è¨å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:76 ++#, c-format ++msgid "%s: you must be root to change the node name\n" ++msgstr "%s: ノードåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 ++#, c-format ++msgid "%s: name too long\n" ++msgstr "%s: åå‰ãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../hostname.c:91 ++#, c-format ++msgid "Setting hostname to `%s'\n" ++msgstr "ホストåã‚’`%s'ã¸è¨å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:96 ++#, c-format ++msgid "%s: you must be root to change the host name\n" ++msgstr "%s: ホストåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:109 ++#, c-format ++msgid "Setting domainname to `%s'\n" ++msgstr "ドメインを`%s'ã¸è¨å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:114 ++#, c-format ++msgid "%s: you must be root to change the domain name\n" ++msgstr "%s: ドメインåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:131 ++#, c-format ++msgid "Resolving `%s' ...\n" ++msgstr "`%s'ã‚’ãƒ¬ã‚¾ãƒ«ãƒ–ä¸ ...\n" ++ ++#: ../hostname.c:137 ++#, c-format ++msgid "Result: h_name=`%s'\n" ++msgstr "çµæžœ: h_name=`%s'\n" ++ ++#: ../hostname.c:142 ++#, c-format ++msgid "Result: h_aliases=`%s'\n" ++msgstr "çµæžœ: h_aliases=`%s'\n" ++ ++#: ../hostname.c:147 ++#, c-format ++msgid "Result: h_addr_list=`%s'\n" ++msgstr "çµæžœ: h_addr_list=`%s'\n" ++ ++#: ../hostname.c:208 ++#, c-format ++msgid "%s: can't open `%s'\n" ++msgstr "%s: `%s'ã‚’é–‹ã‘ã¾ã›ã‚“\n" ++ ++#: ../hostname.c:222 ++#, c-format ++msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" ++msgstr "使用法: hostname [-v] {ホストå|-F ファイル} (ファイルã«ã‚ˆã‚‹)ホストåã®è¨å®š\n" ++ ++#: ../hostname.c:223 ++#, c-format ++msgid "" ++" domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" ++msgstr " domainname [-v] {NISドメイン|-F ファイル} (ファイルã«ã‚ˆã‚‹)NISドメインåã®è¨å®š\n" ++ ++#: ../hostname.c:225 ++#, c-format ++msgid "" ++" nodename [-v] {nodename|-F file} set DECnet node name (from " ++"file)\n" ++msgstr "" ++"nodename [-v] {ノードå|-F ファイル} (ファイルã«ã‚ˆã‚‹)DECnetノードåã®è¨å®š\n" ++ ++#: ../hostname.c:227 ++#, c-format ++msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" ++msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y] å½¢å¼ã‚’指定ã—ã¦è¡¨ç¤º\n" ++ ++#: ../hostname.c:228 ++#, c-format ++msgid "" ++" hostname [-v] display hostname\n" ++"\n" ++msgstr "" ++" hostname [-v] ホストåã®å‡ºåŠ›\n" ++"\n" ++ ++#: ../hostname.c:229 ++#, c-format ++msgid "" ++" hostname -V|--version|-h|--help print info and exit\n" ++"\n" ++msgstr "" ++" hostname -V|--version|-h|--help è«¸æƒ…å ±ã‚’å‡ºåŠ›ã—ã¦çµ‚了\n" ++"\n" ++"\n" ++ ++#: ../hostname.c:230 ++#, c-format ++msgid "" ++" dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" ++"\n" ++msgstr " dnsdomainname=ホストå -d, {yp,nis,}domainname=ホストå -y\n\n" ++ ++#: ../hostname.c:231 ++#, c-format ++msgid " -s, --short short host name\n" ++msgstr " -s, --short çŸç¸®ãƒ›ã‚¹ãƒˆå\n" ++ ++#: ../hostname.c:232 ++#, c-format ++msgid " -a, --alias alias names\n" ++msgstr " -a, --alias エイリアスå\n" ++ ++#: ../hostname.c:233 ++#, c-format ++msgid " -i, --ip-address addresses for the hostname\n" ++msgstr " -i, --ip-address ホストåã«å¯¾ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹\n" ++ ++#: ../hostname.c:234 ++#, c-format ++msgid " -f, --fqdn, --long long host name (FQDN)\n" ++msgstr " -f, --fqdn, --long ãƒãƒ³ã‚°ãƒ›ã‚¹ãƒˆå(FQDN)\n" ++ ++#: ../hostname.c:235 ++#, c-format ++msgid " -d, --domain DNS domain name\n" ++msgstr " -d, --domain DNSドメインå\n" ++ ++#: ../hostname.c:236 ++#, c-format ++msgid " -y, --yp, --nis NIS/YP domainname\n" ++msgstr " -y, --yp, --nis NIS/YPドメインå\n" ++ ++#: ../hostname.c:238 ++#, c-format ++msgid " -n, --node DECnet node name\n" ++msgstr " -n, --node DECnetノードå\n" ++ ++#: ../hostname.c:240 ++#, c-format ++msgid "" ++" -F, --file read hostname or NIS domainname from given file\n" ++"\n" ++msgstr " -F, --file 指定ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ãƒ›ã‚¹ãƒˆåã‹NISドメインåã‚’èªã¿è¾¼ã‚€\n\n" ++ ++#: ../hostname.c:242 ++#, c-format ++msgid "" ++" This command can read or set the hostname or the NIS domainname. You can\n" ++" also read the DNS domain or the FQDN (fully qualified domain name).\n" ++" Unless you are using bind or NIS for host lookups you can change the\n" ++" FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" ++" part of the FQDN) in the /etc/hosts file.\n" ++msgstr "" ++" ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯ã€ãƒ›ã‚¹ãƒˆåã¾ãŸã¯NISドメインåã‚’èªã¿è¾¼ã¿ã¾ãŸã¯è¨å®šã§ãã¾ã™ã€‚\n" ++" DNSドメインã¾ãŸã¯FDN(完全修飾ドメインå)ã‚’èªã¿è¾¼ã‚€ã“ã¨ã‚‚ã§ãã¾ã™ã€‚\n" ++" ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆ, /etc/hostsファイルã«ã‚ã‚‹\n" ++" FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:338 ++#, c-format ++msgid "%s: You can't change the DNS domain name with this command\n" ++msgstr "%s: ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯DNSドメインåã¯å¤‰æ›´ã§ãã¾ã›ã‚“.\n" ++ ++#: ../hostname.c:339 ++#, c-format ++msgid "" ++"\n" ++"Unless you are using bind or NIS for host lookups you can change the DNS\n" ++msgstr "" ++"\n" ++"ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆã€/etc/hostsファイル\n" ++ ++#: ../hostname.c:340 ++#, c-format ++msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" ++msgstr "ã«ã‚ã‚‹FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:357 ++#, c-format ++msgid "gethostname()=`%s'\n" ++msgstr "gethostname()=`%s'\n" ++ ++#: ../hostname.c:374 ++#, c-format ++msgid "getdomainname()=`%s'\n" ++msgstr "getdomainname()=`%s'\n" ++ ++#: ../hostname.c:389 ++#, c-format ++msgid "getnodename()=`%s'\n" ++msgstr "getnodename()=`%s'\n" ++ ++#: ../ifconfig.c:107 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®å–å¾—ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:%s\n" ++ ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format ++msgid "No support for INET on this system.\n" ++msgstr "INETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®ãƒ†ã‚¹ãƒˆä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../ifconfig.c:202 ++#, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"使用法:\n" ++" ifconfig [-a] [-v] [-s] <インタフェース> [[<AF>] <アドレス>]\n" ++ ++#: ../ifconfig.c:204 ++#, c-format ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:205 ++#, c-format ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:206 ++#, c-format ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<アドレス>]] [[-]pointopoint [<アドレス>]]\n" ++ ++#: ../ifconfig.c:207 ++#, c-format ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <アドレス>] [dstaddr <アドレス>] [tunnel <アドレス>]\n" ++ ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <数値>] [keepalive <数値>]\n" ++ ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <アドレス>] [metric <数値>] [mtu <数値>]\n" ++ ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++ ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" ++ ++#: ../ifconfig.c:215 ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <開始アドレス>] [io_addr <IOアドレス>] [irq <番å·>] [media <タイプ>]\n" ++ ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <TXã‚ュー長>]\n" ++ ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" ++ ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr " [up|down] ...\n\n" ++ ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—.\n" ++ ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " 利用å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=アドレスファミリ. 標準: %s\n" ++ ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " 利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "ifconfig: オプション`%s'を解釈ã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "ifconfig: `--help'ã§ä½¿ç”¨æ³•ã‚’見られã¾ã™.\n" ++ ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "ä¸æ˜Žãªãƒ¡ãƒ‡ã‚£ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã promiscモードã§ã™...æらãä»–ã®ã‚¢ãƒ—リケーションãŒå®Ÿè¡Œä¸ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã‹?\n" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã MULTICASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã ALLMULTIモードã§ã™.\n" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã DYNAMICモードã§ã™.\n" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã BROADCASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "è¦å‘Š: インタフェース%sã¯ã¾ã POINTOPOINTモードã§ã™.\n" ++ ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¨å®šã™ã‚‹ãƒãƒ³ãƒ‰ãƒ©ã‚’æŒã£ã¦ã„ã¾ã›ã‚“. 失敗ã—ã¾ã—ãŸ.\n" ++ ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™(%s).\n" ++ ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "インタフェース%sã¯åˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format ++msgid "Bad address.\n" ++msgstr "ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™.\n" ++ ++#: ../ifconfig.c:885 ++#, c-format ++msgid "Address deletion not supported on this system.\n" ++msgstr "アドレス削除ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:957 ++#, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "ifconfig:ã“ã®ãƒ—ãƒãƒˆã‚³ãƒ«ãƒ•ã‚¡ãƒŸãƒªã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¨å®šã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:983 ++#, c-format ++msgid "No support for ECONET on this system.\n" ++msgstr "ECONETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:991 ++#, c-format ++msgid "Don't know how to set addresses for family %d.\n" ++msgstr "ファミリ%dã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¨å®šæ–¹æ³•ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "è¦å‘Š: å°‘ãªãã¨ã‚‚1ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ. (%d)\n" ++ ++#: ../netstat.c:434 ++#, c-format ++msgid "" ++"(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" ++msgstr "(\"-p\"ã®æƒ…å ±ã‚’èªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: geteuid()=%d ã—ã‹ã—ルートã§ã‚ã‚‹ã¹ãã§ã™.)\n" ++ ++#: ../netstat.c:438 ++#, c-format ++msgid "" ++"(Not all processes could be identified, non-owned process info\n" ++" will not be shown, you would have to be root to see it all.)\n" ++msgstr "" ++"(一部ã®ãƒ—ãƒã‚»ã‚¹ãŒè˜åˆ¥ã•ã‚Œã¾ã™ãŒ, 所有ã—ã¦ã„ãªã„プãƒã‚»ã‚¹ã®æƒ…å ±ã¯\n" ++"表示ã•ã‚Œã¾ã›ã‚“。ãれら全ã¦ã‚’見るã«ã¯ãƒ«ãƒ¼ãƒˆã«ãªã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™.)\n" ++ ++# translatable? ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 ++msgid "LISTENING" ++msgstr "LISTENING" ++ ++# translatable? ++#: ../netstat.c:446 ++msgid "CONN SENT" ++msgstr "CONN SENT" ++ ++# translatable? ++#: ../netstat.c:447 ../netstat.c:1268 ++msgid "DISC SENT" ++msgstr "DISC SENT" ++ ++# translatable? ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 ++msgid "ESTABLISHED" ++msgstr "ESTABLISHED" ++ ++#: ../netstat.c:470 ++#, c-format ++msgid "Active NET/ROM sockets\n" ++msgstr "稼åƒä¸ã®NET/ROMソケット\n" ++ ++#: ../netstat.c:471 ++#, c-format ++msgid "" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "ユーザ å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:481 ../netstat.c:1308 ++#, c-format ++msgid "Problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®èªã¿è¾¼ã¿ã«å•é¡Œ\n" ++ ++# translatable? ++#: ../netstat.c:516 ++msgid "SYN_SENT" ++msgstr "SYN_SENT" ++ ++# translatable? ++#: ../netstat.c:517 ++msgid "SYN_RECV" ++msgstr "SYN_RECV" ++ ++# translatable? ++#: ../netstat.c:518 ++msgid "FIN_WAIT1" ++msgstr "FIN_WAIT1" ++ ++# translatable? ++#: ../netstat.c:519 ++msgid "FIN_WAIT2" ++msgstr "FIN_WAIT2" ++ ++# translatable? ++#: ../netstat.c:520 ++msgid "TIME_WAIT" ++msgstr "TIME_WAIT" ++ ++# translatable? ++#: ../netstat.c:521 ++msgid "CLOSE" ++msgstr "CLOSE" ++ ++# translatable? ++#: ../netstat.c:522 ++msgid "CLOSE_WAIT" ++msgstr "CLOSE_WAIT" ++ ++# translatable? ++#: ../netstat.c:523 ++msgid "LAST_ACK" ++msgstr "LAST_ACK" ++ ++# translatable? ++#: ../netstat.c:524 ++msgid "LISTEN" ++msgstr "LISTEN" ++ ++# translatable? ++#: ../netstat.c:525 ++msgid "CLOSING" ++msgstr "CLOSING" ++ ++#: ../netstat.c:596 ++#, c-format ++msgid "warning, got bogus igmp6 line %d.\n" ++msgstr "è¦å‘Š, å½ã®igmp6ライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 ++#, c-format ++msgid "netstat: unsupported address family %d !\n" ++msgstr "netstat: サãƒãƒ¼ãƒˆã—ã¦ãªã„アドレスファミリ%dã§ã™!\n" ++ ++# c-format ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 ++#, c-format ++msgid "warning, got bogus igmp line %d.\n" ++msgstr "è¦å‘Š, å½ã®igmpライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:677 ++#, c-format ++msgid "Active X.25 sockets\n" ++msgstr "稼åƒä¸ã®X.25ソケット\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ LCI 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format ++msgid "warning, got bogus tcp line.\n" ++msgstr "è¦å‘Š, å½ã®TCPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 ++#, c-format ++msgid "off (0.00/%ld/%d)" ++msgstr "オフ (0.00/%ld/%d)" ++ ++#: ../netstat.c:804 ++#, c-format ++msgid "on (%2.2f/%ld/%d)" ++msgstr "オン (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:809 ++#, c-format ++msgid "keepalive (%2.2f/%ld/%d)" ++msgstr "ã‚ープアライブ (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:814 ++#, c-format ++msgid "timewait (%2.2f/%ld/%d)" ++msgstr "時間待㡠(%2.2f/%ld/%d)" ++ ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 ++#, c-format ++msgid "unkn-%d (%2.2f/%ld/%d)" ++msgstr "ä¸æ˜Ž-%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:894 ++#, c-format ++msgid "warning, got bogus udp line.\n" ++msgstr "è¦å‘Š, å½ã®UDPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 ++msgid "UNKNOWN" ++msgstr "ä¸æ˜Ž" ++ ++#: ../netstat.c:958 ../netstat.c:1080 ++#, c-format ++msgid "on%d (%2.2f/%ld/%d)" ++msgstr "オン%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:1046 ++#, c-format ++msgid "warning, got bogus raw line.\n" ++msgstr "è¦å‘Š, å½ã®Rawラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:1128 ++#, c-format ++msgid "warning, got bogus unix line.\n" ++msgstr "è¦å‘Š, å½ã®unixラインを得ã¾ã—ãŸ.\n" ++ ++# translatable? ++#: ../netstat.c:1155 ++msgid "STREAM" ++msgstr "STREAM" ++ ++# translatable? ++#: ../netstat.c:1159 ++msgid "DGRAM" ++msgstr "DGRAM" ++ ++# translatable? ++#: ../netstat.c:1163 ++msgid "RAW" ++msgstr "RAW" ++ ++# translatable? ++#: ../netstat.c:1167 ++msgid "RDM" ++msgstr "RDM" ++ ++# translatable? ++#: ../netstat.c:1171 ++msgid "SEQPACKET" ++msgstr "SEQPACKET" ++ ++# translatable? ++#: ../netstat.c:1180 ++msgid "FREE" ++msgstr "FREE" ++ ++# translatable? ++#: ../netstat.c:1196 ++msgid "CONNECTING" ++msgstr "CONNECTING" ++ ++# translatable? ++#: ../netstat.c:1200 ++msgid "CONNECTED" ++msgstr "CONNECTED" ++ ++# translatable? ++#: ../netstat.c:1204 ++msgid "DISCONNECTING" ++msgstr "DISCONNECTING" ++ ++#: ../netstat.c:1235 ++#, c-format ++msgid "Active UNIX domain sockets " ++msgstr "稼åƒä¸ã®UNIXドメインソケット " ++ ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format ++msgid "(servers and established)" ++msgstr "(サーãƒã¨ç¢ºç«‹)" ++ ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format ++msgid "(only servers)" ++msgstr "(サーãƒã®ã¿)" ++ ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format ++msgid "(w/o servers)" ++msgstr "(w/oサーãƒ)" ++ ++#: ../netstat.c:1245 ++#, c-format ++msgid "" ++"\n" ++"Proto RefCnt Flags Type State I-Node" ++msgstr "" ++"\n" ++"Proto RefCnt フラグ タイプ 状態 Iノード" ++ ++#: ../netstat.c:1247 ++#, c-format ++msgid " Path\n" ++msgstr " パス\n" ++ ++# translatable? ++#: ../netstat.c:1267 ++msgid "SABM SENT" ++msgstr "SABM SENT" ++ ++# translatable? ++#: ../netstat.c:1270 ++msgid "RECOVERY" ++msgstr "RECOVERY" ++ ++#: ../netstat.c:1284 ++#, c-format ++msgid "Active AX.25 sockets\n" ++msgstr "稼åƒä¸ã®AX.25ソケット\n" ++ ++#: ../netstat.c:1285 ++#, c-format ++msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:1328 ++#, c-format ++msgid "problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿èªã¿è¾¼ã¿ä¸ã«å•é¡Œ\n" ++ ++#: ../netstat.c:1379 ++#, c-format ++msgid "" ++"Active IPX sockets\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State" ++msgstr "" ++"稼åƒä¸ã®IPXソケット\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹" ++ ++#: ../netstat.c:1381 ++#, c-format ++msgid " User" ++msgstr " ユーザ" ++ ++# translatable? ++#: ../netstat.c:1415 ++msgid "ESTAB" ++msgstr "ESTAB" ++ ++# translatable? ++#: ../netstat.c:1423 ++msgid "UNK." ++msgstr "UNK." ++ ++#: ../netstat.c:1461 ++#, c-format ++msgid "Kernel Interface table\n" ++msgstr "カーãƒãƒ«ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ãƒ†ãƒ¼ãƒ–ル\n" ++ ++#: ../netstat.c:1465 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../netstat.c:1469 ++msgid "missing interface information" ++msgstr "ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹æƒ…å ±ãŒè¶³ã‚Šã¾ã›ã‚“" ++ ++#: ../netstat.c:1492 ++#, c-format ++msgid "" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" ++msgstr "" ++"使用法: netstat [-veenNcCF] [<アドレスファミリ>] -r\n" ++" netstat {-V|--version|-h|--help}\n" ++ ++#: ../netstat.c:1493 ++#, c-format ++msgid " netstat [-vnNcaeol] [<Socket> ...]\n" ++msgstr " netstat [-vnNcaeol] [<ソケット> ...]\n" ++ ++#: ../netstat.c:1494 ++#, c-format ++msgid "" ++" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" ++"\n" ++msgstr " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n" ++ ++#: ../netstat.c:1496 ++#, c-format ++msgid " -r, --route display routing table\n" ++msgstr " -r, --routing 経路テーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1497 ++#, c-format ++msgid " -i, --interfaces display interface table\n" ++msgstr " -i, --interfaces インタフェーステーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1498 ++#, c-format ++msgid " -g, --groups display multicast group memberships\n" ++msgstr " -g, --groups マルãƒã‚ャスト・グループメンãƒã‚·ãƒƒãƒ—ã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1499 ++#, c-format ++msgid "" ++" -s, --statistics display networking statistics (like SNMP)\n" ++msgstr "" ++" -s, --statistics (SNMPã®ã‚ˆã†ã«)ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯çµ±è¨ˆã‚’表示\n" ++ ++#: ../netstat.c:1501 ++#, c-format ++msgid "" ++" -M, --masquerade display masqueraded connections\n" ++"\n" ++msgstr "" ++" -M, --masquerade マスカレード接続ã®è¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1505 ++#, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " --numeric-hosts ホストåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1506 ++#, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " --numeric-ports ãƒãƒ¼ãƒˆåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1507 ++#, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " --numeric-users ユーザåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1508 ++#, c-format ++msgid " -N, --symbolic resolve hardware names\n" ++msgstr " -N, --symbolic ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢åをレゾルブã™ã‚‹\n" ++ ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format ++msgid " -e, --extend display other/more information\n" ++msgstr " -e, --extend ä»–ã®æƒ…å ±ã‚„å¤šãã®æƒ…å ±ã‚’è¡¨ç¤ºã™ã‚‹\n" ++ ++#: ../netstat.c:1510 ++#, c-format ++msgid " -p, --programs display PID/Program name for sockets\n" ++msgstr " -p, --programs ソケットã®PID/プãƒã‚°ãƒ©ãƒ åを表示ã™ã‚‹\n" ++ ++#: ../netstat.c:1511 ++#, c-format ++msgid "" ++" -c, --continuous continuous listing\n" ++"\n" ++msgstr "" ++" -c, --continous 継続的ãªè¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1512 ++#, c-format ++msgid " -l, --listening display listening server sockets\n" ++msgstr " -l, --listening サーãƒã®listenソケットã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1513 ++#, c-format ++msgid "" ++" -a, --all, --listening display all sockets (default: connected)\n" ++msgstr " -a, --all, --listening å…¨ã¦ã®æƒ…å ±ã‚’è¡¨ç¤º (標準: connected)\n" ++ ++#: ../netstat.c:1514 ++#, c-format ++msgid " -o, --timers display timers\n" ++msgstr " -o, --timers タイマã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format ++msgid "" ++" -F, --fib display Forwarding Information Base " ++"(default)\n" ++msgstr " -F, --fib ãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‰æƒ…å ±ãƒ™ãƒ¼ã‚¹ã‚’è¡¨ç¤ºã™ã‚‹(標準)\n" ++ ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format ++msgid "" ++" -C, --cache display routing cache instead of FIB\n" ++"\n" ++msgstr " -C, --cache FIBã®ã‹ã‚ã‚Šã«çµŒè·¯ã‚ャッシュを表示ã™ã‚‹\n\n" ++ ++#: ../netstat.c:1518 ++#, c-format ++msgid "" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++msgstr "" ++" <ソケット>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++ ++#: ../netstat.c:1519 ++#, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>='-6|-4'ã¾ãŸã¯'-A <af>'ã¾ãŸã¯'--<af>'を利用; 標準: %s\n" ++ ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format ++msgid " List of possible address families (which support routing):\n" ++msgstr " (ルーティングをサãƒãƒ¼ãƒˆã—ãŸ)利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../netstat.c:1753 ++#, c-format ++msgid "Active Internet connections " ++msgstr "稼åƒä¸ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶š " ++ ++#: ../netstat.c:1763 ++#, c-format ++msgid "" ++"\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " ++msgstr "" ++"\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹ " ++ ++#: ../netstat.c:1765 ++#, c-format ++msgid " User Inode " ++msgstr " ユーザ Iノード " ++ ++#: ../netstat.c:1768 ++#, c-format ++msgid " Timer" ++msgstr "タイマ" ++ ++#: ../netstat.c:1798 ++#, c-format ++msgid "IPv4 Group Memberships\n" ++msgstr "IPv4グループメンãƒã‚·ãƒƒãƒ—\n" ++ ++#: ../netstat.c:1799 ++#, c-format ++msgid "Interface RefCnt Group\n" ++msgstr "インタフェース å‚ç…§Cnt グループ\n" ++ ++#: ../rarp.c:44 ++msgid "This kernel does not support RARP.\n" ++msgstr "ã“ã®ã‚«ãƒ¼ãƒãƒ«ã¯RARPをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:83 ++#, c-format ++msgid "no RARP entry for %s.\n" ++msgstr "%sã®RARPエントリãŒã‚ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:96 ++#, c-format ++msgid "%s: bad hardware address\n" ++msgstr "%s: ä¸æ£ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™\n" ++ ++#: ../rarp.c:128 ++#, c-format ++msgid "rarp: cannot open file %s:%s.\n" ++msgstr "rarp: ファイル%sã‚’é–‹ã‘ã¾ã›ã‚“:%s.\n" ++ ++#: ../rarp.c:140 ++#, c-format ++msgid "rarp: format error at %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™\n" ++ ++#: ../rarp.c:144 ../rarp.c:289 ++#, c-format ++msgid "rarp: %s: unknown host\n" ++msgstr "rarp: %s: ä¸æ˜Žãªãƒ›ã‚¹ãƒˆã§ã™\n" ++ ++#: ../rarp.c:147 ++#, c-format ++msgid "rarp: cannot set entry from %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’è¨å®šã§ãã¾ã›ã‚“\n" ++ ++#: ../rarp.c:176 ++#, c-format ++msgid "Usage: rarp -a list entries in cache.\n" ++msgstr "" ++"使用法: rarp -a ã‚ャッシュエントリã®è¡¨ç¤º.\n" ++ ++#: ../rarp.c:177 ++#, c-format ++msgid " rarp -d <hostname> delete entry from cache.\n" ++msgstr "" ++" rarp -d <ホストå> ã‚ャッシュã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’削除ã™" ++"ã‚‹.\n" ++ ++#: ../rarp.c:178 ++#, c-format ++msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" ++msgstr "" ++" rarp [<HW>] -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹>\n" ++" ã‚ャッシュã¸ã‚¨ãƒ³ãƒˆãƒªã‚’è¿½åŠ .\n" ++ ++#: ../rarp.c:179 ++#, c-format ++msgid "" ++" rarp -f add entries from /etc/ethers.\n" ++msgstr "" ++" rarp -f /etc/ethersã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªè¿½åŠ .\n" ++ ++#: ../rarp.c:180 ++#, c-format ++msgid "" ++" rarp -V display program version.\n" ++"\n" ++msgstr " rarp -V ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã®å‡ºåŠ›.\n" ++ ++#: ../rarp.c:238 ++#, c-format ++msgid "%s: illegal option mix.\n" ++msgstr "%s: オプションã®çµ„åˆã›ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" ++ ++#: ../rarp.c:269 ++#, c-format ++msgid "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../route.c:80 ++#, c-format ++msgid "" ++"Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" ++msgstr "使用法:route [-nNvee] [-FC] [アドレスファミリ] カーãƒãƒ«çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¡¨ç¤º.\n" ++ ++#: ../route.c:81 ++#, c-format ++msgid "" ++" route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" ++"\n" ++msgstr "" ++" route [-v] [-FC] {add|del|flush}‥‥\n" ++"\t\t\t\t アドレスファミリã®çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¨å®š.\n" ++"\n" ++ ++#: ../route.c:83 ++#, c-format ++msgid "" ++" route {-h|--help} [<AF>] Detailed usage syntax for " ++"specified AF.\n" ++msgstr "" ++" route {-h|--help} [アドレスファミリ]\n" ++" アドレスファミリ特定ã®æ–‡æ³•ã®èª¬æ˜Ž.\n" ++ ++#: ../route.c:84 ++#, c-format ++msgid "" ++" route {-V|--version} Display version/author and " ++"exit.\n" ++"\n" ++msgstr " route {-V|--version} ãƒãƒ¼ã‚¸ãƒ§ãƒ³/ä½œè€…æƒ…å ±ã®å‡ºåŠ›ã¨çµ‚了.\n\n" ++ ++#: ../route.c:92 ++#, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>='-A <af>'ã¾ãŸã¯'--<af>'を利用; 標準: %s\n" ++ ++#: ../plipconfig.c:66 ++#, c-format ++msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" ++msgstr "使用法: plipconfig [-a] [-i] [-v] インタフェース\n" ++ ++#: ../plipconfig.c:67 ++#, c-format ++msgid " [nibble NN] [trigger NN]\n" ++msgstr " [nibble 数値] [trigger 数値]\n" ++ ++#: ../plipconfig.c:68 ++#, c-format ++msgid " plipconfig -V | --version\n" ++msgstr " plipconfig -V | --version\n" ++ ++# translatable? ++#: ../plipconfig.c:74 ++#, c-format ++msgid "%s\tnibble %lu trigger %lu\n" ++msgstr "%s\tnibble %lu trigger %lu\n" ++ ++#: ../iptunnel.c:85 ++#, c-format ++msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++msgstr "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++ ++#: ../iptunnel.c:86 ++#, c-format ++msgid "" ++" [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++ ++#: ../iptunnel.c:87 ++#, c-format ++msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++ ++#: ../iptunnel.c:88 ++#, c-format ++msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++ ++#: ../iptunnel.c:89 ++#, c-format ++msgid "" ++" iptunnel -V | --version\n" ++"\n" ++msgstr " iptunnel -V | --version\n\n" ++ ++#: ../iptunnel.c:90 ++#, c-format ++msgid "Where: NAME := STRING\n" ++msgstr "æ„味: NAME := STRING\n" ++ ++#: ../iptunnel.c:91 ++#, c-format ++msgid " ADDR := { IP_ADDRESS | any }\n" ++msgstr " ADDR := { IP_ADDRESS | any }\n" ++ ++#: ../iptunnel.c:92 ++#, c-format ++msgid " TOS := { NUMBER | inherit }\n" ++msgstr " TOS := { NUMBER | inherit }\n" ++ ++#: ../iptunnel.c:93 ++#, c-format ++msgid " TTL := { 1..255 | inherit }\n" ++msgstr " TTL := { 1..255 | inherit }\n" ++ ++#: ../iptunnel.c:94 ++#, c-format ++msgid " KEY := { DOTTED_QUAD | NUMBER }\n" ++msgstr " KEY := { DOTTED_QUAD | NUMBER }\n" ++ ++#: ../iptunnel.c:332 ++#, c-format ++msgid "Keys are not allowed with ipip and sit.\n" ++msgstr "ã‚ーã¯ipipãŠã‚ˆã³sitã§ã¯è¨±å¯ã•ã‚Œã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:352 ++#, c-format ++msgid "Broadcast tunnel requires a source address.\n" ++msgstr "ブãƒãƒ¼ãƒ‰ã‚ャストトンãƒãƒ«ã¯ç™ºä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™.\n" ++ ++#: ../iptunnel.c:367 ++#, c-format ++msgid "ttl != 0 and noptmudisc are incompatible\n" ++msgstr "ttl != 0ãŠã‚ˆã³noptmudiscã¯çŸ›ç›¾ã—ã¾ã™\n" ++ ++#: ../iptunnel.c:379 ++#, c-format ++msgid "cannot determine tunnel mode (ipip, gre or sit)\n" ++msgstr "トンãƒãƒ«ãƒ¢ãƒ¼ãƒ‰ã‚’決定ã§ãã¾ã›ã‚“(ipip, greã¾ãŸã¯sit)\n" ++ ++#: ../iptunnel.c:417 ++#, c-format ++msgid "%s: %s/ip remote %s local %s " ++msgstr "%s: %s/ip リモート%s ãƒãƒ¼ã‚«ãƒ«%s " ++ ++#: ../iptunnel.c:421 ++msgid "unknown" ++msgstr "ä¸æ˜Ž" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:453 ++#, c-format ++msgid " Drop packets out of sequence.\n" ++msgstr " シーケンスã‹ã‚‰å¤–ã‚ŒãŸãƒ‘ケットをドãƒãƒƒãƒ—.\n" ++ ++#: ../iptunnel.c:455 ++#, c-format ++msgid " Checksum in received packet is required.\n" ++msgstr " å—信パケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã¯å¿…é ˆã§ã™.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:457 ++#, c-format ++msgid " Sequence packets on output.\n" ++msgstr " é€ä¿¡ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãƒ‘ケット.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:459 ++#, c-format ++msgid " Checksum output packets.\n" ++msgstr " é€ä¿¡ãƒ‘ケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ .\n" ++ ++#: ../iptunnel.c:487 ++#, c-format ++msgid "Wrong format of /proc/net/dev. Sorry.\n" ++msgstr "/proc/net/devãŒä¸æ£ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã™. ã™ã¿ã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:500 ++#, c-format ++msgid "Failed to get type of [%s]\n" ++msgstr "[%s]ã®ã‚¿ã‚¤ãƒ—ã®å–å¾—ã«å¤±æ•—\n" ++ ++#: ../iptunnel.c:516 ++#, c-format ++msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" ++msgstr "RX: パケット ãƒã‚¤ãƒˆ エラー CsumErrs outOfSeq マルãƒã‚ャスト\n" ++ ++#: ../iptunnel.c:519 ++#, c-format ++msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" ++msgstr "TX: パケット ãƒã‚¤ãƒˆ エラー DeadLoop NoRoute ãƒãƒƒãƒ•ã‚¡ãªã—\n" ++ ++#: ../statistics.c:47 ++msgid "ICMP input histogram:" ++msgstr "ICMP入力ヒストグラム:" ++ ++#: ../statistics.c:48 ++msgid "ICMP output histogram:" ++msgstr "ICMP出力ヒストグラム:" ++ ++#: ../statistics.c:65 ++#, c-format ++msgid "Forwarding is %s" ++msgstr "フォワードã¯%sã§ã™" ++ ++#: ../statistics.c:66 ++#, c-format ++msgid "Default TTL is %u" ++msgstr "標準TTLã¯%uã§ã™" ++ ++#: ../statistics.c:67 ++#, c-format ++msgid "%u total packets received" ++msgstr "åˆè¨ˆ%uパケットをå—ä¿¡" ++ ++#: ../statistics.c:68 ++#, c-format ++msgid "%u with invalid headers" ++msgstr "ä¸é©å½“ãªãƒ˜ãƒƒãƒ€ãŒ%u" ++ ++#: ../statistics.c:69 ++#, c-format ++msgid "%u with invalid addresses" ++msgstr "ä¸é©å½“ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãŒ%u" ++ ++#: ../statistics.c:70 ++#, c-format ++msgid "%u forwarded" ++msgstr "%uã®è»¢é€" ++ ++#: ../statistics.c:71 ++#, c-format ++msgid "%u with unknown protocol" ++msgstr "%uã®ä¸æ˜Žãªãƒ—ãƒãƒˆã‚³ãƒ«" ++ ++#: ../statistics.c:72 ++#, c-format ++msgid "%u incoming packets discarded" ++msgstr "%uã®å—ä¿¡ãƒ‘ã‚±ãƒƒãƒˆã‚’ç ´æ£„" ++ ++#: ../statistics.c:73 ++#, c-format ++msgid "%u incoming packets delivered" ++msgstr "%uã®å—信パケットをé…é€" ++ ++#: ../statistics.c:74 ++#, c-format ++msgid "%u requests sent out" ++msgstr "%uã®è¦æ±‚ã‚’é€ä¿¡" ++ ++#. ? ++#: ../statistics.c:75 ++#, c-format ++msgid "%u outgoing packets dropped" ++msgstr "%uã®é€ä¿¡ãƒ‘ケットをドãƒãƒƒãƒ—" ++ ++#: ../statistics.c:76 ++#, c-format ++msgid "%u dropped because of missing route" ++msgstr "ä¸æ˜ŽãªçµŒè·¯ã§%uをドãƒãƒƒãƒ—" ++ ++#: ../statistics.c:77 ++#, c-format ++msgid "%u fragments dropped after timeout" ++msgstr "タイムアウト後ã«%uã®ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆã‚’ドãƒãƒƒãƒ—" ++ ++#: ../statistics.c:78 ++#, c-format ++msgid "%u reassemblies required" ++msgstr "%uã®å†æ§‹ç¯‰ãŒå¿…è¦" ++ ++#. ? ++#: ../statistics.c:79 ++#, c-format ++msgid "%u packets reassembled ok" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«æˆåŠŸ" ++ ++#: ../statistics.c:80 ++#, c-format ++msgid "%u packet reassembles failed" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«å¤±æ•—" ++ ++#: ../statistics.c:81 ++#, c-format ++msgid "%u fragments received ok" ++msgstr "%uフラグメントã®å—ä¿¡ã«æˆåŠŸ" ++ ++#: ../statistics.c:82 ++#, c-format ++msgid "%u fragments failed" ++msgstr "%uフラグメントã§å¤±æ•—" ++ ++#: ../statistics.c:83 ++#, c-format ++msgid "%u fragments created" ++msgstr "%uフラグメントを生æˆ" ++ ++#: ../statistics.c:88 ++#, c-format ++msgid "%u ICMP messages received" ++msgstr "%uã®ICMPメッセージå—ä¿¡" ++ ++#: ../statistics.c:89 ++#, c-format ++msgid "%u input ICMP message failed." ++msgstr "%uã®ICMPメッセージ入力失敗." ++ ++#: ../statistics.c:90 ../statistics.c:103 ++#, c-format ++msgid "destination unreachable: %u" ++msgstr "é€ä¿¡å…ˆåˆ°é”ä¸å¯: %u" ++ ++#: ../statistics.c:91 ++#, c-format ++msgid "timeout in transit: %u" ++msgstr "é€ä¿¡æ™‚間オーãƒ: %u" ++ ++#: ../statistics.c:92 ../statistics.c:105 ++#, c-format ++msgid "wrong parameters: %u" ++msgstr "è¬ã£ãŸãƒ‘ラメータ: %u" ++ ++#. ? ++#: ../statistics.c:93 ++#, c-format ++msgid "source quenches: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:94 ++#, c-format ++msgid "redirects: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:95 ++#, c-format ++msgid "echo requests: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:96 ../statistics.c:109 ++#, c-format ++msgid "echo replies: %u" ++msgstr "エコー応ç”: %u" ++ ++#: ../statistics.c:97 ++#, c-format ++msgid "timestamp request: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:98 ++#, c-format ++msgid "timestamp reply: %u" ++msgstr "タイムスタンプ応ç”: %u" ++ ++#: ../statistics.c:99 ++#, c-format ++msgid "address mask request: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#. ? ++#: ../statistics.c:100 ../statistics.c:113 ++#, c-format ++msgid "address mask replies: %u" ++msgstr "アドレスマスク応ç”: %u" ++ ++#. ? ++#: ../statistics.c:101 ++#, c-format ++msgid "%u ICMP messages sent" ++msgstr "%uã®ICMPメッセージé€ä¿¡" ++ ++#: ../statistics.c:102 ++#, c-format ++msgid "%u ICMP messages failed" ++msgstr "%uã®ICMPメッセージ失敗" ++ ++#: ../statistics.c:104 ++#, c-format ++msgid "time exceeded: %u" ++msgstr "時間切れ: %u" ++ ++#. ? ++#: ../statistics.c:106 ++#, c-format ++msgid "source quench: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:107 ++#, c-format ++msgid "redirect: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:108 ++#, c-format ++msgid "echo request: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:110 ++#, c-format ++msgid "timestamp requests: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:111 ++#, c-format ++msgid "timestamp replies: %u" ++msgstr "タイムスタンプ応ç”: %u" ++ ++#: ../statistics.c:112 ++#, c-format ++msgid "address mask requests: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#: ../statistics.c:118 ++#, c-format ++msgid "RTO algorithm is %s" ++msgstr "RTOアルゴリズムã¯%sã§ã™" ++ ++#: ../statistics.c:122 ++#, c-format ++msgid "%u active connections openings" ++msgstr "%uã®èƒ½å‹•æŽ¥ç¶šé–‹å§‹" ++ ++#: ../statistics.c:123 ++#, c-format ++msgid "%u passive connection openings" ++msgstr "%uã®å—動接続開始" ++ ++#: ../statistics.c:124 ++#, c-format ++msgid "%u failed connection attempts" ++msgstr "%uã®æŽ¥ç¶šè©¦è¡Œå¤±æ•—" ++ ++#: ../statistics.c:125 ++#, c-format ++msgid "%u connection resets received" ++msgstr "%uã®æŽ¥ç¶šãƒªã‚»ãƒƒãƒˆå—ä¿¡" ++ ++#: ../statistics.c:126 ++#, c-format ++msgid "%u connections established" ++msgstr "%uã®æŽ¥ç¶šç¢ºç«‹" ++ ++#: ../statistics.c:127 ++#, c-format ++msgid "%u segments received" ++msgstr "%uセグメントã®å—ä¿¡" ++ ++#: ../statistics.c:128 ++#, c-format ++msgid "%u segments send out" ++msgstr "%uセグメントã®é€ä¿¡" ++ ++#: ../statistics.c:129 ++#, c-format ++msgid "%u segments retransmited" ++msgstr "%uセグメントã®å†è»¢é€" ++ ++#: ../statistics.c:130 ++#, c-format ++msgid "%u bad segments received." ++msgstr "%uã®ä¸æ£ã‚»ã‚°ãƒ¡ãƒ³ãƒˆå—ä¿¡." ++ ++#: ../statistics.c:131 ++#, c-format ++msgid "%u resets sent" ++msgstr "%uã®ãƒªã‚»ãƒƒãƒˆé€ä¿¡" ++ ++#: ../statistics.c:136 ++#, c-format ++msgid "%u packets received" ++msgstr "%uパケットå—ä¿¡" ++ ++#: ../statistics.c:137 ++#, c-format ++msgid "%u packets to unknown port received." ++msgstr "ä¸æ˜Žãªãƒãƒ¼ãƒˆã‹ã‚‰ã®%uパケットã®å—ä¿¡." ++ ++#: ../statistics.c:138 ++#, c-format ++msgid "%u packet receive errors" ++msgstr "%uã®ãƒ‘ケットå—信エラー" ++ ++#: ../statistics.c:139 ++#, c-format ++msgid "%u packets sent" ++msgstr "%uã®ãƒ‘ケットをé€ä¿¡" ++ ++#: ../statistics.c:144 ++#, c-format ++msgid "%u SYN cookies sent" ++msgstr "%uã®SYNクッã‚ーをé€ä¿¡" ++ ++#: ../statistics.c:145 ++#, c-format ++msgid "%u SYN cookies received" ++msgstr "%uã®SYNクッã‚ーをå—ä¿¡" ++ ++#: ../statistics.c:146 ++#, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%uã®ä¸é©å½“ãªSYNクッã‚ーをå—ä¿¡" ++ ++#: ../statistics.c:148 ++#, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%uã®æœªå®Œæˆã®SYN_RECVソケットã«å¯¾ã™ã‚‹ãƒªã‚»ãƒƒãƒˆã‚’å—ä¿¡" ++ ++#: ../statistics.c:150 ++#, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットをソケットãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ©ãƒ³ã®ãŸã‚å—ä¿¡ã‚ューã‹ã‚‰é™¤å¤–" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%uã®ãƒ‘ケットをå—ä¿¡ã‚ューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:154 ++#, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットãŒã‚½ã‚±ãƒƒãƒˆãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ¼ãƒ©ãƒ³ã®ãŸã‚out-of-orderã‚ューã‹ã‚‰ãƒ‰ãƒãƒƒãƒ—" ++ ++#: ../statistics.c:156 ++#, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%uã®ICMPパケットãŒout-of-windowã®ãŸã‚ドãƒãƒƒãƒ—" ++ ++#: ../statistics.c:158 ++#, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%uã®ICMPパケットをソケットã®ãƒãƒƒã‚¯ã«ã‚ˆã£ã¦ãƒ‰ãƒãƒƒãƒ—" ++ ++# FIXME: what does it mean? ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "%uã®TCPソケットãŒãƒ•ã‚¡ãƒ¼ã‚¹ãƒˆã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++# FIXME ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "%uã®æ™‚é–“å¾…ã¡ã‚½ã‚±ãƒƒãƒˆãŒã‚¿ã‚¤ãƒ スタンプã§å†åˆ©ç”¨" ++ ++# FIXME ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "%uã®TCPソケットãŒã‚¹ãƒãƒ¼ã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "%uã®å—動的接続ãŒã‚¿ã‚¤ãƒ スタンプã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "%uã®èƒ½å‹•çš„接続ãŒã‚¿ã‚¤ãƒ スタンプã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "%uã®ãƒ‘ケットãŒã‚¿ã‚¤ãƒ スタンプã®ãŸã‚ã«æŽ¥ç¶šç¢ºç«‹ã‚’æ‹’å¦" ++ ++#: ../statistics.c:169 ++#, c-format ++msgid "%u delayed acks sent" ++msgstr "%uã®é…延ackã‚’é€ä¿¡" ++ ++# FIXME ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "%uã®é…延ackãŒãƒãƒƒã‚¯ã•ã‚ŒãŸã‚½ã‚±ãƒƒãƒˆã®ãŸã‚ã«ã•ã‚‰ã«é…延" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "クイックackモードãŒ%u回稼åƒ" ++ ++# FIXME ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "ソケットã®ãƒªã‚¹ãƒ³ã‚ューãŒ%u回オーãƒãƒ•ãƒãƒ¼" ++ ++# FIXME ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "%uã®ã‚½ã‚±ãƒƒãƒˆãƒªã‚¹ãƒ³SYNãŒç„¡è¦–" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "%uパケットをrecvmsgプレã‚ューã«ç›´æŽ¥ã‚ュー." ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "%uãƒã‚¤ãƒˆã‚’ãƒãƒƒã‚¯ãƒã‚°ã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "%uãƒã‚¤ãƒˆã‚’プレã‚ューã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:182 ++#, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%uã®ãƒ‘ケットをプレã‚ューã‹ã‚‰ãƒ‰ãƒãƒƒãƒ—" ++ ++#: ../statistics.c:183 ++#, c-format ++msgid "%u packet headers predicted" ++msgstr "%uã®ãƒ‘ケットヘッダを予測" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "%uã®ãƒ‘ケットヘッダを予測ã—ã¦ãƒ¦ãƒ¼ã‚¶ã«ç›´æŽ¥ã‚ュー" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "%u回ã®ãƒ‘ケットé€ä¿¡ä¸ã®ã‚·ã‚¹ãƒ†ãƒ メモリã‚ãµã‚Œ" ++ ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "データをå«ã¾ãªã„%uã®æ‰¿èªã®å—ä¿¡" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "%uã®äºˆæ¸¬æ‰¿èª" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "高速ãªå†é€ã«ã‚ˆã‚‹ãƒ‘ケットãƒã‚¹ã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "SACKデータã«ã‚ˆã‚‹ãƒ‘ケットãƒã‚¹ã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "%uã®ä¸æ£ãªSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "FACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "SACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "タイムスタンプを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++# FIXME:what does it mean? ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "高速å†é€ã‚’使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’完全ã«å›žå¾©" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "Hoeヒューリスティックを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’部分的ã«å›žå¾©" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "DSACKを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "部分ack後ã«%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "%uã®å†é€ãƒã‚¹ãƒˆ" ++ ++# FIXME ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "高速å†é€å¾Œã®%uã®ã‚¿ã‚¤ãƒ アウト" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "SACK復元後ã®%uã®ã‚¿ã‚¤ãƒ アウト" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "状態ãƒã‚¹ã§ã®%uã®ã‚¿ã‚¤ãƒ アウト" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "%uã®é«˜é€Ÿå†é€" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "%uã®è»¢é€å†é€" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "スãƒãƒ¼ã‚¹ã‚¿ãƒ¼ãƒˆã§ã®%uã®å†é€" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "%uã®ãã®ä»–ã®TCPタイムアウト" ++ ++# FIXME ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%dã®é«˜é€Ÿå†é€å¤±æ•—" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "%uã®sackå†é€å¤±æ•—" ++ ++# FIXME ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "直接処ç†ã«ã¯é…ã™ãŽã‚‹ã¨ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã•ã‚ŒãŸ%u回ã®ãƒ¬ã‚·ãƒ¼ãƒ" ++ ++# FIXME ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%uã®ãƒ‘ケットを低ソケットãƒãƒƒãƒ•ã‚¡ã®ãŸã‚ã«å—ä¿¡ã‚ューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "%uã®DSACKã‚’å¤ã„パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "%uã®DSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦å—ä¿¡" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "予期ã›ã¬SYNã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "予期ã›ã¬ãƒ‡ãƒ¼ã‚¿ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "早期ã®ãƒ¦ãƒ¼ã‚¶ã®ã‚¯ãƒãƒ¼ã‚ºã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "メモリã®åˆ¶ç´„ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’ä¸æ¢" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "タイムアウトã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’ä¸æ¢" ++ ++# FIXME ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "ユーザã®é•·æœŸã‚¿ã‚¤ãƒ アウトã§ã®ã‚¯ãƒãƒ¼ã‚ºå¾Œã«%uã®æŽ¥ç¶šãŒä¸æ¢" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "メモリä¸è¶³ã®ãŸã‚ã«RSTã®é€ä¿¡ãŒ%u回ä¸èƒ½" ++ ++# FIXME ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "TCPãŒå°‘ãªã„メモリã§%u回実行" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "%uã®TCPデータãŒã‚¤ãƒ™ãƒ³ãƒˆã‚’ãƒã‚¹" ++ ++#: ../statistics.c:292 ++msgid "enabled" ++msgstr "有効" ++ ++#: ../statistics.c:292 ++msgid "disabled" ++msgstr "無効" ++ ++#: ../statistics.c:375 ++msgid "error parsing /proc/net/snmp" ++msgstr "/proc/net/snmpã®å‡¦ç†ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" ++ ++#: ../statistics.c:388 ++msgid "cannot open /proc/net/snmp" ++msgstr "/proc/net/snmpã‚’é–‹ã‘ã¾ã›ã‚“" ++ ++#: ../lib/activate.c:69 ++#, c-format ++msgid "Hardware type `%s' not supported.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/activate.c:73 ++#, c-format ++msgid "Cannot change line discipline to `%s'.\n" ++msgstr "`%s'ã®line disciplineを変更ã§ãã¾ã›ã‚“.\n" ++ ++#: ../lib/af.c:153 ../lib/hw.c:161 ++msgid "UNSPEC" ++msgstr "ä¸æ˜Žãªãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:155 ++msgid "UNIX Domain" ++msgstr "UNIXドメイン" ++ ++#: ../lib/af.c:158 ++msgid "DARPA Internet" ++msgstr "DARPAインターãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:161 ++msgid "IPv6" ++msgstr "IPv6" ++ ++#: ../lib/af.c:164 ../lib/hw.c:182 ++msgid "AMPR AX.25" ++msgstr "AMPR AX.25" ++ ++#: ../lib/af.c:167 ../lib/hw.c:188 ++msgid "AMPR NET/ROM" ++msgstr "AMPR NET/ROM" ++ ++#: ../lib/af.c:170 ++msgid "Novell IPX" ++msgstr "Novell IPX" ++ ++#: ../lib/af.c:173 ++msgid "Appletalk DDP" ++msgstr "アップルトークDDP" ++ ++#: ../lib/af.c:176 ../lib/hw.c:223 ++msgid "Econet" ++msgstr "エコãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "CCITT X.25" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 ++msgid "AMPR ROSE" ++msgstr "AMPR ROSE" ++ ++#: ../lib/af.c:185 ../lib/hw.c:173 ++msgid "Ash" ++msgstr "Ash" ++ ++#: ../lib/af.c:243 ++#, c-format ++msgid "Please don't supply more than one address family.\n" ++msgstr "複数ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã‚’ã—ãªã„ã§ä¸‹ã•ã„.\n" ++ ++#: ../lib/af.c:304 ++#, c-format ++msgid "Too much address family arguments.\n" ++msgstr "アドレスファミリã®å¼•æ•°ãŒå¤šã™ãŽã¾ã™.\n" ++ ++#: ../lib/af.c:315 ++#, c-format ++msgid "Unknown address family `%s'.\n" ++msgstr "ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™ `%s'.\n" ++ ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 ++#, c-format ++msgid "in_arcnet(%s): invalid arcnet address!\n" ++msgstr "in_arcnet(%s): ä¸é©å½“ãªARCNETアドレスã§ã™!\n" ++ ++#: ../lib/arcnet.c:97 ++#, c-format ++msgid "in_arcnet(%s): trailing : ignored!\n" ++msgstr "in_arcnet(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/arcnet.c:109 ++#, c-format ++msgid "in_arcnet(%s): trailing junk!\n" ++msgstr "in_arcnet(%s): trailing junk!\n" ++ ++#: ../lib/ash.c:81 ++#, c-format ++msgid "Malformed Ash address" ++msgstr "異常ãªAshアドレスã§ã™" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[è¨å®šãªã—]" ++ ++#: ../lib/ax25.c:97 ../lib/netrom.c:100 ++msgid "Invalid callsign" ++msgstr "ä¸é©å½“ãªã‚³ãƒ¼ãƒ«ã‚µã‚¤ãƒ³ã§ã™" ++ ++#: ../lib/ax25.c:110 ../lib/netrom.c:113 ++msgid "Callsign too long" ++msgstr "コールサインãŒé•·ã™ãŽã¾ã™" ++ ++#: ../lib/ax25_gr.c:47 ++#, c-format ++msgid "AX.25 not configured in this system.\n" ++msgstr "AX.25ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ax25_gr.c:50 ++#, c-format ++msgid "Kernel AX.25 routing table\n" ++msgstr "カーãƒãƒ« AX.25経路テーブル\n" ++ ++#. xxx ++#: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format ++msgid "Destination Iface Use\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ Iface 使用数\n" ++ ++#: ../lib/ether.c:74 ../lib/ether.c:91 ++#, c-format ++msgid "in_ether(%s): invalid ether address!\n" ++msgstr "in_ether(%s): ä¸é©å½“ãªã‚¤ãƒ¼ã‚µã‚¢ãƒ‰ãƒ¬ã‚¹!\n" ++ ++#: ../lib/ether.c:105 ++#, c-format ++msgid "in_ether(%s): trailing : ignored!\n" ++msgstr "in_ether(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/ether.c:117 ++#, c-format ++msgid "in_ether(%s): trailing junk!\n" ++msgstr "in_ether(%s): trailing junk!\n" ++ ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 ++#, c-format ++msgid "in_fddi(%s): invalid fddi address!\n" ++msgstr "in_fddi(%s): ä¸é©å½“ãªfddiアドレス!\n" ++ ++#: ../lib/fddi.c:111 ++#, c-format ++msgid "in_fddi(%s): trailing : ignored!\n" ++msgstr "in_fddi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/fddi.c:123 ++#, c-format ++msgid "in_fddi(%s): trailing junk!\n" ++msgstr "in_fddi(%s): trailing junk!\n" ++ ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 ++#, c-format ++msgid "Address family `%s' not supported.\n" ++msgstr "アドレスファミリ`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 ++#, c-format ++msgid "No routing for address family `%s'.\n" ++msgstr "アドレスファミリ`%s'ã¸ã®çµŒè·¯ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 ++#, c-format ++msgid "in_hippi(%s): invalid hippi address!\n" ++msgstr "in_hippi(%s): ä¸é©å½“ãªhippiアドレスã§ã™!\n" ++ ++#: ../lib/hippi.c:111 ++#, c-format ++msgid "in_hippi(%s): trailing : ignored!\n" ++msgstr "in_hippi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/hippi.c:122 ++#, c-format ++msgid "in_hippi(%s): trailing junk!\n" ++msgstr "in_hippi(%s): trailing junk!\n" ++ ++#: ../lib/hw.c:160 ++msgid "Local Loopback" ++msgstr "ãƒãƒ¼ã‚«ãƒ«ãƒ«ãƒ¼ãƒ—ãƒãƒƒã‚¯" ++ ++#: ../lib/hw.c:163 ++msgid "Serial Line IP" ++msgstr "シリアルラインIP" ++ ++#: ../lib/hw.c:164 ++msgid "VJ Serial Line IP" ++msgstr "VJシリアルラインIP" ++ ++#: ../lib/hw.c:165 ++msgid "6-bit Serial Line IP" ++msgstr "6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:166 ++msgid "VJ 6-bit Serial Line IP" ++msgstr "VJ 6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:167 ++msgid "Adaptive Serial Line IP" ++msgstr "AdaptiveシリアルラインIP" ++ ++#: ../lib/hw.c:170 ++msgid "Ethernet" ++msgstr "イーサãƒãƒƒãƒˆ" ++ ++# translatable? ++#: ../lib/hw.c:176 ++msgid "Fiber Distributed Data Interface" ++msgstr "Fiber Distributed Data Interface" ++ ++#: ../lib/hw.c:179 ++msgid "HIPPI" ++msgstr "HIPPI" ++ ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "ジェãƒãƒªãƒƒã‚¯X.25" ++ ++#: ../lib/hw.c:194 ++msgid "IPIP Tunnel" ++msgstr "IPIPトンãƒãƒ«" ++ ++#: ../lib/hw.c:197 ++msgid "Point-to-Point Protocol" ++msgstr "Point-to-Pointプãƒãƒˆã‚³ãƒ«" ++ ++#: ../lib/hw.c:200 ++msgid "(Cisco)-HDLC" ++msgstr "(Cisco)-HDLC" ++ ++#: ../lib/hw.c:201 ++msgid "LAPB" ++msgstr "LAPB" ++ ++#: ../lib/hw.c:204 ++msgid "ARCnet" ++msgstr "ARCãƒãƒƒãƒˆ" ++ ++#: ../lib/hw.c:207 ++msgid "Frame Relay DLCI" ++msgstr "フレームリレーDLCI" ++ ++#: ../lib/hw.c:208 ++msgid "Frame Relay Access Device" ++msgstr "フレームリレーアクセスデãƒã‚¤ã‚¹" ++ ++#: ../lib/hw.c:211 ++msgid "IPv6-in-IPv4" ++msgstr "IPv6-in-IPv4" ++ ++#: ../lib/hw.c:214 ++msgid "IrLAP" ++msgstr "IrLAP" ++ ++#: ../lib/hw.c:217 ++msgid "16/4 Mbps Token Ring" ++msgstr "16/4 Mbpsトークンリング" ++ ++#: ../lib/hw.c:219 ++msgid "16/4 Mbps Token Ring (New)" ++msgstr "16/4 Mbpsトークンリング(æ–°)" ++ ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "ジェãƒãƒªãƒƒã‚¯EUI-64" ++ ++#: ../lib/inet.c:153 ../lib/inet6.c:79 ++#, c-format ++msgid "rresolve: unsupport address family %d !\n" ++msgstr "rresolve: アドレスファミリ%dをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../lib/inet6.c:131 ++msgid "[UNKNOWN]" ++msgstr "[ä¸æ˜Ž]" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format ++msgid "INET6 (IPv6) not configured in this system.\n" ++msgstr "INET6(IPv6)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet6_gr.c:74 ++#, c-format ++msgid "Kernel IPv6 routing table\n" ++msgstr "カーãƒãƒ«IPv6 経路テーブル\n" ++ ++#: ../lib/inet6_gr.c:76 ++#, c-format ++msgid "" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ 次回ホップ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet6_gr.c:150 ++#, c-format ++msgid "Kernel IPv6 Neighbour Cache\n" ++msgstr "カーãƒãƒ«IPv6 近隣ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ã‚ャッシュ\n" ++ ++#: ../lib/inet6_gr.c:153 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態\n" ++ ++#: ../lib/inet6_gr.c:157 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State Stale(sec) Delete(sec)\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態 Stale[秒] Delete[秒]\n" ++ ++#: ../lib/inet6_sr.c:46 ++#, c-format ++msgid "Usage: inet6_route [-vF] del Target\n" ++msgstr "使用法: inet6_route [-vF] del ターゲット\n" ++ ++#: ../lib/inet6_sr.c:47 ++#, c-format ++msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" ++msgstr "" ++" inet6_route [-vF] add ターゲット \n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet6_sr.c:48 ++#, c-format ++msgid " inet6_route [-FC] flush NOT supported\n" ++msgstr " inet6_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet6_sr.c:188 ++#, c-format ++msgid "Flushing `inet6' routing table not supported\n" ++msgstr "`inet6'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format ++msgid "INET (IPv4) not configured in this system.\n" ++msgstr "INET(IPv4)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†ã«è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet_gr.c:53 ++#, c-format ++msgid "Kernel IP routing table\n" ++msgstr "カーãƒãƒ«IP経路テーブル\n" ++ ++#: ../lib/inet_gr.c:56 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:59 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags MSS Window irtt " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:62 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface MSS Window irtt\n" ++msgstr "" ++"å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt\n" ++ ++#: ../lib/inet_gr.c:237 ++#, c-format ++msgid "Kernel IP routing cache\n" ++msgstr "カーãƒãƒ«IP経路ã‚ャッシュ\n" ++ ++#: ../lib/inet_gr.c:258 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:261 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags MSS Window irtt " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:266 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt HH Arp\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt HH Arp\n" ++ ++#: ../lib/inet_gr.c:290 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++ ++#: ../lib/inet_sr.c:51 ++#, c-format ++msgid "" ++"Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " ++"[[dev] If]\n" ++msgstr "" ++"使用法:inet_route [-vF] del {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:52 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++ ++#: ../lib/inet_sr.c:53 ++#, c-format ++msgid "" ++" [netmask N] [mss Mss] [window W] [irtt I]\n" ++msgstr " [netmask ãƒãƒƒãƒˆãƒžã‚¹ã‚¯] [mss Mss] [window W] [irtt I]\n" ++ ++#: ../lib/inet_sr.c:54 ++#, c-format ++msgid " [mod] [dyn] [reinstate] [[dev] If]\n" ++msgstr " [mod] [dyn] [reinstate] [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:55 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [metric メトリック] reject\n" ++ ++#: ../lib/inet_sr.c:56 ++#, c-format ++msgid " inet_route [-FC] flush NOT supported\n" ++msgstr " inet_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:158 ++#, c-format ++msgid "route: %s: cannot use a NETWORK as gateway!\n" ++msgstr "route: %s: NETWORKをゲートウェイã¨ã—ã¦ä½¿ãˆã¾ã›ã‚“!\n" ++ ++#: ../lib/inet_sr.c:174 ++#, c-format ++msgid "route: Invalid MSS/MTU.\n" ++msgstr "route: MSS/MTUãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:187 ++#, c-format ++msgid "route: Invalid window.\n" ++msgstr "route: windowãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:203 ++#, c-format ++msgid "route: Invalid initial rtt.\n" ++msgstr "route: åˆæœŸrttãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:261 ++#, c-format ++msgid "route: netmask %.8x doesn't make sense with host route\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯%.8xãŒãƒ›ã‚¹ãƒˆçµŒè·¯ã‚’検出ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:265 ++#, c-format ++msgid "route: bogus netmask %s\n" ++msgstr "route: å½ã®ãƒãƒƒãƒˆãƒžã‚¹ã‚¯`%s'ã§ã™\n" ++ ++#: ../lib/inet_sr.c:270 ++#, c-format ++msgid "route: netmask doesn't match route address\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ãŒçµŒè·¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:306 ++#, c-format ++msgid "Flushing `inet' routing table not supported\n" ++msgstr "`inet'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:310 ++#, c-format ++msgid "Modifying `inet' routing cache not supported\n" ++msgstr "`inet'経路テーブルã®å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/ipx_gr.c:52 ++#, c-format ++msgid "IPX not configured in this system.\n" ++msgstr "IPXã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ipx_gr.c:56 ++#, c-format ++msgid "Kernel IPX routing table\n" ++msgstr "カーãƒãƒ«IPX経路テーブル\n" ++ ++#. xxx ++#: ../lib/ipx_gr.c:57 ++#, c-format ++msgid "Destination Router Net Router Node\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ルータ ãƒãƒƒãƒˆ ルータノード\n" ++ ++#: ../lib/ipx_sr.c:33 ++#, c-format ++msgid "IPX: this needs to be written\n" ++msgstr "IPX: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/masq_info.c:198 ++#, c-format ++msgid "IP masquerading entries\n" ++msgstr "IPマスカレード エントリ\n" ++ ++#: ../lib/masq_info.c:201 ++#, c-format ++msgid "prot expire source destination ports\n" ++msgstr "プãƒãƒˆ expire 発信元サイト é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/masq_info.c:204 ++#, c-format ++msgid "" ++"prot expire initseq delta prevd source " ++"destination ports\n" ++msgstr "" ++"プãƒãƒˆ expire åˆæœŸseq delta prevd 発信元サイト å—信先サイ" ++"ト ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/netrom_gr.c:48 ++#, c-format ++msgid "NET/ROM not configured in this system.\n" ++msgstr "NET/ROMã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/netrom_gr.c:51 ++#, c-format ++msgid "Kernel NET/ROM routing table\n" ++msgstr "カーãƒãƒ«NET/ROM経路テーブル\n" ++ ++#: ../lib/netrom_gr.c:52 ++#, c-format ++msgid "Destination Mnemonic Quality Neighbour Iface\n" ++msgstr "å—信先サイト ニーモニック å“質 近隣サイト インタフェース\n" ++ ++#: ../lib/netrom_sr.c:34 ++#, c-format ++msgid "netrom usage\n" ++msgstr "netrom使用法\n" ++ ++#: ../lib/netrom_sr.c:44 ++#, c-format ++msgid "NET/ROM: this needs to be written\n" ++msgstr "NET/ROM: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/ppp.c:44 ++#, c-format ++msgid "You cannot start PPP with this program.\n" ++msgstr "ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯PPPを開始ã§ãã¾ã›ã‚“. \n" ++ ++#: ../lib/ppp_ac.c:38 ++#, c-format ++msgid "Sorry, use pppd!\n" ++msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ãŒ, pppdを使ã£ã¦ä¸‹ã•ã„!\n" ++ ++#: ../lib/rose.c:87 ++msgid "Node address must be ten digits" ++msgstr "ノードアドレスã¯10進数ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" ++ ++#: ../lib/rose_gr.c:51 ++#, c-format ++msgid "ROSE not configured in this system.\n" ++msgstr "ROSEã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/rose_gr.c:54 ++#, c-format ++msgid "Kernel ROSE routing table\n" ++msgstr "カーãƒãƒ«ROSE経路テーブル\n" ++ ++#: ../lib/tr.c:86 ../lib/tr.c:101 ++#, c-format ++msgid "in_tr(%s): invalid token ring address!\n" ++msgstr "in_tr(%s): ä¸é©å½“ãªãƒˆãƒ¼ã‚¯ãƒ³ãƒªãƒ³ã‚°ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™!\n" ++ ++#: ../lib/tr.c:113 ++#, c-format ++msgid "in_tr(%s): trailing : ignored!\n" ++msgstr "in_tr(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/tr.c:125 ++#, c-format ++msgid "in_tr(%s): trailing junk!\n" ++msgstr "in_tr(%s): trailing junk!\n" ++ ++#: ../lib/interface.c:176 ++#, c-format ++msgid "warning: no inet socket available: %s\n" ++msgstr "è¦å‘Š: Inetソケットã¯åˆ©ç”¨ã§ãã¾ã›ã‚“: %s\n" ++ ++#: ../lib/interface.c:325 ++#, c-format ++msgid "Warning: cannot open %s (%s). Limited output.\n" ++msgstr "è¦å‘Š: %sã‚’é–‹ã‘ã¾ã›ã‚“(%s). é™å®šã•ã‚ŒãŸå‡ºåŠ›ã§ã™.\n" ++ ++#. Give better error message for this case. ++#: ../lib/interface.c:571 ++msgid "Device not found" ++msgstr "デãƒã‚¤ã‚¹ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" ++ ++#: ../lib/interface.c:575 ++#, c-format ++msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹æƒ…å ±ã‚’å–å¾—ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - çµ±è¨ˆæƒ…å ±ã‚’åˆ©ç”¨ã§ãã¾ã›ã‚“ -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[フラグãªã—]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s リンク方法:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "メディア:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(自動)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %sアドレス:%s" ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " ブãƒãƒ¼ãƒ‰ã‚ャスト:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " マスク:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6アドレス: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " 範囲:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "ã‚°ãƒãƒ¼ãƒãƒ«" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "リンク" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "サイト" ++ ++# translatable? ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "ホスト" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "ä¸æ˜Ž" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆIIアドレス:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆSNAPアドレス:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.2アドレス:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.3アドレス:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " イーサトーク フェーズ2アドレス:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " エコãƒãƒƒãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[フラグãªã—]" ++ ++# translatable? ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++# translatable? ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++# translatable? ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++# translatable? ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++# translatable? ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# translatable? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++# translatable? ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++# translatable? ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++# translatable? ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++# translatable? ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++# translatable? ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++# translatable? ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++# translatable? ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++# translatable? ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d メトリック:%d" ++ ++# translatable? ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d ã‚ープアライブ:%d" ++ ++#: ../lib/interface.c:850 ++#, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "RXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu フレーム:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " 圧縮:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "TXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu ã‚ャリア:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " è¡çª(Collisions):%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "圧縮:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "TXã‚ュー長:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "RXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s) TXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s)\n" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "割り込ã¿:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "ベースアドレス:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "メモリ:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMAãƒã‚§ã‚¤ãƒ³:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format ++msgid "No usable address families found.\n" ++msgstr "利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/util-ank.c:229 ++#, c-format ++msgid "ip: %s is invalid inet address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetアドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:238 ++#, c-format ++msgid "ip: %s is invalid inet prefix\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetプレフィックスã§ã™\n" ++ ++#: ../lib/util-ank.c:248 ++#, c-format ++msgid "ip: %s is invalid IPv4 address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªIPv4アドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:256 ++#, c-format ++msgid "ip: argument is wrong: %s\n" ++msgstr "ip: 引数ãŒé–“é•ã£ã¦ã„ã¾ã™: %s\n" ++ ++#: ../ipmaddr.c:61 ++#, c-format ++msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" ++msgstr "使用法: ipmaddr [ add | del ] マルãƒã‚ャストアドレス dev æ–‡å—列\n" ++ ++#: ../ipmaddr.c:62 ++#, c-format ++msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" ++msgstr " ipmaddr show [ dev æ–‡å—列 ] [ ipv4 | ipv6 | link | all ]\n" ++ ++#: ../ipmaddr.c:63 ++#, c-format ++msgid " ipmaddr -V | -version\n" ++msgstr " ipmaddr -V | -version\n" ++ ++#: ../ipmaddr.c:263 ++#, c-format ++msgid "family %d " ++msgstr "ファミリ %d " ++ ++#: ../ipmaddr.c:272 ++#, c-format ++msgid " users %d" ++msgstr " ユーザ %d" ++ ++#: ../ipmaddr.c:358 ++msgid "Cannot create socket" ++msgstr "ソケットを作æˆã§ãã¾ã›ã‚“" ++ ++#: ../slattach.c:180 ++#, c-format ++msgid "slattach: /dev/%s already locked!\n" ++msgstr "slattach: /dev/%s ã¯ã™ã§ã«ãƒãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™!\n" ++ ++#: ../slattach.c:186 ++#, c-format ++msgid "slattach: tty_lock: (%s): %s\n" ++msgstr "slattach: tty_lock: (%s): %s\n" ++ ++#: ../slattach.c:192 ++#, c-format ++msgid "slattach: cannot write PID file\n" ++msgstr "slattach: PIDファイルを書ãè¾¼ã‚ã¾ã›ã‚“\n" ++ ++#: ../slattach.c:202 ++#, c-format ++msgid "slattach: tty_lock: UUCP user %s unknown!\n" ++msgstr "slattach: tty_lock: UUCPユーザ%sã¯ä¸æ˜Žã§ã™!\n" ++ ++#: ../slattach.c:430 ++#, c-format ++msgid "slattach: tty_hangup(DROP): %s\n" ++msgstr "slattach: tty_hangup(DROP): %s\n" ++ ++#: ../slattach.c:437 ++#, c-format ++msgid "slattach: tty_hangup(RAISE): %s\n" ++msgstr "slattach: tty_hangup(RAISE): %s\n" ++ ++#: ../slattach.c:468 ++#, c-format ++msgid "slattach: tty name too long\n" ++msgstr "slattach: ttyåãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../slattach.c:498 ++#, c-format ++msgid "slattach: tty_open: cannot get current state!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®çŠ¶æ…‹ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:505 ++#, c-format ++msgid "slattach: tty_open: cannot get current line disc!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®ãƒ©ã‚¤ãƒ³ãƒ»ãƒ‡ã‚£ã‚¹ã‚¯ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:513 ++#, c-format ++msgid "slattach: tty_open: cannot set RAW mode!\n" ++msgstr "slattach: tty_open: RAWモードをè¨å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:520 ++#, c-format ++msgid "slattach: tty_open: cannot set %s bps!\n" ++msgstr "slattach: tty_open: %s bpsã‚’è¨å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:530 ++#, c-format ++msgid "slattach: tty_open: cannot set 8N1 mode!\n" ++msgstr "slattach: tty_open: 8N1モードã¸è¨å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++ ++#: ../slattach.c:704 ++#, c-format ++msgid "%s started" ++msgstr "%sを開始ã—ã¾ã—ãŸ" ++ ++#: ../slattach.c:705 ++#, c-format ++msgid " on %s" ++msgstr "(%s上)" ++ ++#: ../slattach.c:706 ++#, c-format ++msgid " interface %s\n" ++msgstr " インタフェース %s\n" +--- net-tools-1.60.orig/ipmaddr.c ++++ net-tools-1.60/ipmaddr.c +@@ -291,13 +291,15 @@ + static int multiaddr_list(int argc, char **argv) + { + struct ma_info *list = NULL; ++ size_t l; + + while (argc > 0) { + if (strcmp(*argv, "dev") == 0) { + NEXT_ARG(); +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } else if (strcmp(*argv, "all") == 0) { + filter_family = AF_UNSPEC; + } else if (strcmp(*argv, "ipv4") == 0) { +@@ -307,9 +309,10 @@ + } else if (strcmp(*argv, "link") == 0) { + filter_family = AF_PACKET; + } else { +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } + argv++; argc--; + } +--- net-tools-1.60.orig/Makefile ++++ net-tools-1.60/Makefile +@@ -76,7 +76,7 @@ + NET_LIB_PATH = lib + NET_LIB_NAME = net-tools + +-PROGS := ifconfig hostname arp netstat route rarp slattach plipconfig nameif ++PROGS := ifconfig arp netstat route rarp slattach plipconfig nameif # hostname + + -include config.make + ifeq ($(HAVE_IP_TOOLS),1) +@@ -88,7 +88,7 @@ + + # Compiler and Linker Options + # You may need to uncomment and edit these if you are using libc5 and IPv6. +-COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include ++COPTS = -D_GNU_SOURCE -O2 -Wall # -g -I/usr/inet6/include + ifeq ($(origin LOPTS), undefined) + LOPTS = + endif +@@ -116,6 +116,18 @@ + CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH) + LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH) + ++INSTALL = install ++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++CFLAGS += -g ++endif ++ ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++INSTALL_PROGRAM += -s ++endif ++ ++ + SUBDIRS = man/ $(NET_LIB_PATH)/ + + ifeq ($(origin CC), undefined) +@@ -223,29 +235,29 @@ + installbin: + install -m 0755 -d ${BASEDIR}/sbin + install -m 0755 -d ${BASEDIR}/bin +- install -m 0755 arp ${BASEDIR}/sbin +- install -m 0755 hostname ${BASEDIR}/bin +- install -m 0755 ifconfig ${BASEDIR}/sbin +- install -m 0755 nameif ${BASEDIR}/sbin +- install -m 0755 netstat ${BASEDIR}/bin +- install -m 0755 plipconfig $(BASEDIR)/sbin +- install -m 0755 rarp ${BASEDIR}/sbin +- install -m 0755 route ${BASEDIR}/sbin +- install -m 0755 slattach $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) arp ${BASEDIR}/sbin ++# $(INSTALL_PROGRAM) hostname ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) ifconfig ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) nameif ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) netstat ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) plipconfig $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) rarp ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) route ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) slattach $(BASEDIR)/sbin + ifeq ($(HAVE_IP_TOOLS),1) +- install -m 0755 ipmaddr $(BASEDIR)/sbin +- install -m 0755 iptunnel $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) ipmaddr $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) iptunnel $(BASEDIR)/sbin + endif + ifeq ($(HAVE_MII),1) +- install -m 0755 mii-tool $(BASEDIR)/sbin +-endif +- ln -fs hostname $(BASEDIR)/bin/dnsdomainname +- ln -fs hostname $(BASEDIR)/bin/ypdomainname +- ln -fs hostname $(BASEDIR)/bin/nisdomainname +- ln -fs hostname $(BASEDIR)/bin/domainname +-ifeq ($(HAVE_AFDECnet),1) +- ln -fs hostname $(BASEDIR)/bin/nodename ++ $(INSTALL_PROGRAM) mii-tool $(BASEDIR)/sbin + endif ++# ln -fs hostname $(BASEDIR)/bin/dnsdomainname ++# ln -fs hostname $(BASEDIR)/bin/ypdomainname ++# ln -fs hostname $(BASEDIR)/bin/nisdomainname ++# ln -fs hostname $(BASEDIR)/bin/domainname ++#ifeq ($(HAVE_AFDECnet),1) ++# ln -fs hostname $(BASEDIR)/bin/nodename ++#endif + + savebin: + @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \ +--- net-tools-1.60.orig/README ++++ net-tools-1.60/README +@@ -10,7 +10,7 @@ + subsystem of the Linux kernel. This includes arp, hostname, ifconfig, + netstat, rarp and route. Additionally, this package contains + utilities relating to particular network hardware types (plipconfig, +-slattach) and advanced aspects of IP configuration (iptunnel, ++slattach, mii-tool) and advanced aspects of IP configuration (iptunnel, + ipmaddr). + + Please include the output of "program --version" when reporting bugs. +@@ -24,10 +24,14 @@ + + INSTALLING Installation instructions. + +- COPYING Your free copy of the GNU Public License. +- + TODO Some things that need to be done. + ++The Homepage (including CVS repository, release downloads and a form to ++request enhancements) is hosted by BerliOS Developer. Please consider to ++join the project if you want to contribute: ++ ++ http://net-tools.berlios.de/ ++ + + Notes + ----- +--- net-tools-1.60.orig/arp.c ++++ net-tools-1.60/arp.c +@@ -8,7 +8,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: arp.c,v 1.25 2005/12/04 02:57:15 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -100,9 +100,10 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags = 0; +- int err; ++ int deleted = 0; + + memset((char *) &req, 0, sizeof(req)); + +@@ -112,12 +113,13 @@ + return (-1); + } + safe_strncpy(host, *args, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + if (hw_set) + req.arp_ha.sa_family = hw->type; +@@ -148,7 +150,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + req.arp_flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -157,7 +159,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + req.arp_flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -177,11 +179,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + req.arp_flags |= ATF_NETMASK; + } +@@ -190,35 +192,41 @@ + } + usage(); + } ++ ++ // if neighter priv nor pub is given, work on both + if (flags == 0) + flags = 3; + + strcpy(req.arp_dev, device); + +- err = -1; ++ /* unfortuatelly the kernel interface does not allow us to ++ delete private entries anlone, so we need this hack ++ to avoid "not found" errors if we try both. */ ++ deleted = 0; + + /* Call the kernel. */ + if (flags & 2) { + if (opt_v) +- fprintf(stderr, "arp: SIOCDARP(nopub)\n"); +- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) { +- if (errno == ENXIO) { ++ fprintf(stderr, "arp: SIOCDARP(dontpub)\n"); ++ if (ioctl(sockfd, SIOCDARP, &req) < 0) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + if (flags & 1) +- goto nopub; ++ goto dontpub; + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +- perror("SIOCDARP(priv)"); ++ perror("SIOCDARP(dontpub)"); + return (-1); +- } ++ } else ++ deleted = 1; + } +- if ((flags & 1) && (err)) { +- nopub: ++ if (!deleted && (flags & 1)) { ++ dontpub: + req.arp_flags |= ATF_PUBL; + if (opt_v) + fprintf(stderr, "arp: SIOCDARP(pub)\n"); + if (ioctl(sockfd, SIOCDARP, &req) < 0) { +- if (errno == ENXIO) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +@@ -260,7 +268,8 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags; + + memset((char *) &req, 0, sizeof(req)); +@@ -271,12 +280,13 @@ + return (-1); + } + safe_strncpy(host, *args++, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + /* Fetch the hardware address. */ + if (*args == NULL) { +@@ -317,7 +327,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -326,7 +336,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -346,11 +356,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + flags |= ATF_NETMASK; + } +@@ -445,11 +455,11 @@ + strcat(flags, "M"); + if (arp_flags & ATF_PUBL) + strcat(flags, "P"); +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + strcat(flags, "A"); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + strcat(flags, "!"); + #endif +@@ -463,7 +473,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("%-8.8s%-20.20s", "*", "*"); ++ printf("%-8.8s%-20.20s", "*", _("<from_interface>")); + else + printf("%-8.8s%-20.20s", "", _("(incomplete)")); + } else { +@@ -486,7 +496,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("* "); ++ printf("<from_interface> "); + else + printf(_("<incomplete> ")); + } else { +@@ -499,12 +509,12 @@ + if (arp_flags & ATF_PERM) + printf("PERM "); + if (arp_flags & ATF_PUBL) +- printf("PUP "); +-#ifdef HAVE_ATF_MAGIC ++ printf("PUB "); ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + printf("AUTO "); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + printf("DONTPUB "); + #endif +@@ -519,7 +529,8 @@ + static int arp_show(char *name) + { + char host[100]; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + char ip[100]; + char hwa[100]; + char mask[100]; +@@ -532,14 +543,15 @@ + + host[0] = '\0'; + ++ sa = (struct sockaddr *)&ss; + if (name != NULL) { + /* Resolve the host name. */ + safe_strncpy(host, name, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host)); ++ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host)); + } + /* Open the PROCps kernel table. */ + if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) { +@@ -575,10 +587,10 @@ + if (opt_n) + hostname = "?"; + else { +- if (ap->input(0, ip, &sa) < 0) ++ if (ap->input(0, ip, sa) < 0) + hostname = ip; + else +- hostname = ap->sprint(&sa, opt_n | 0x8000); ++ hostname = ap->sprint(sa, opt_n | 0x8000); + if (strcmp(hostname, ip) == 0) + hostname = "?"; + } +@@ -612,11 +624,10 @@ + static void usage(void) + { + fprintf(stderr, _("Usage:\n arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache\n")); +- fprintf(stderr, _(" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP entry\n")); +- fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add entry\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub <-''-\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n")); ++ fprintf(stderr, _(" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry\n")); ++ fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n")); ++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry\n")); ++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-''-\n\n")); + + fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n")); + fprintf(stderr, _(" -s, --set set a new ARP entry\n")); +--- net-tools-1.60.orig/config.in ++++ net-tools-1.60/config.in +@@ -49,16 +49,16 @@ + * + bool 'UNIX protocol family' HAVE_AFUNIX y + bool 'INET (TCP/IP) protocol family' HAVE_AFINET y +-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n ++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y + bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y + bool 'Appletalk DDP protocol family' HAVE_AFATALK y + bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y + bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y +-bool 'Rose (packet radio) protocol family' HAVE_AFROSE n ++bool 'Rose (packet radio) protocol family' HAVE_AFROSE y + bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y +-bool 'Econet protocol family' HAVE_AFECONET n ++bool 'Econet protocol family' HAVE_AFECONET y + bool 'DECnet protocol family' HAVE_AFDECnet n +-bool 'Ash protocol family' HAVE_AFASH n ++bool 'Ash protocol family' HAVE_AFASH y + * + * + * Device Hardware types. +@@ -71,21 +71,23 @@ + bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y + bool 'Token ring (generic) support' HAVE_HWTR y + bool 'AX25 (packet radio) support' HAVE_HWAX25 y +-bool 'Rose (packet radio) support' HAVE_HWROSE n ++bool 'Rose (packet radio) support' HAVE_HWROSE y + bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y + bool 'X.25 (generic) support' HAVE_HWX25 y + bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y +-bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n +-bool 'FDDI (generic) support' HAVE_HWFDDI n +-bool 'HIPPI (generic) support' HAVE_HWHIPPI n +-bool 'Ash hardware support' HAVE_HWASH n +-bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n ++bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y ++bool 'FDDI (generic) support' HAVE_HWFDDI y ++bool 'HIPPI (generic) support' HAVE_HWHIPPI y ++bool 'Ash hardware support' HAVE_HWASH y ++bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y + bool 'IrDA support' HAVE_HWIRDA y +-bool 'Econet hardware support' HAVE_HWEC n ++bool 'Econet hardware support' HAVE_HWEC y ++bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y ++ + * + * + * Other Features. + * +-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n +-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n +-bool 'Build mii-tool' HAVE_MII n ++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y ++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y ++bool 'Build mii-tool' HAVE_MII y +--- net-tools-1.60.orig/hostname.c ++++ net-tools-1.60/hostname.c +@@ -9,20 +9,19 @@ + * dnsdmoainname + * nisdomainname {name|-F file} + * +- * Version: hostname 1.96 (1996-02-18) ++ * Version: hostname 1.101 (2003-10-11) + * + * Author: Peter Tobias <tobias@et-inf.fho-emden.de> + * + * Changes: +- * {1.90} Peter Tobias : Added -a and -i options. +- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts +- * (major rewrite), usage. +- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/ +- * setdomainname added +- *960218 {1.96} Bernd Eckenfels : netinet/in.h added +- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n +- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings ++ * {1.90} Peter Tobias : Added -a and -i options. ++ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage. ++ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added ++ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added ++ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n ++ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings + *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale ++ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break) + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General +@@ -31,7 +30,9 @@ + * your option) any later version. + */ + #include <stdio.h> ++#include <stdlib.h> + #include <unistd.h> ++#include <stdlib.h> + #include <getopt.h> + #include <string.h> + #include <netdb.h> +@@ -78,6 +79,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ break; + } + exit(1); + } +@@ -97,7 +99,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -116,7 +117,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -173,7 +173,6 @@ + *p = '\0'; + printf("%s\n", hp->h_name); + break; +- default: + } + } + +@@ -326,11 +325,12 @@ + break; + case 'V': + version(); ++ break; // not reached + case '?': + case 'h': + default: + usage(); +- ++ break; // not reached + }; + + +--- net-tools-1.60.orig/ifconfig.c ++++ net-tools-1.60/ifconfig.c +@@ -3,7 +3,7 @@ + * that either displays or sets the characteristics of + * one or more of the system's networking interfaces. + * +- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $ ++ * Version: $Id: ifconfig.c,v 1.57 2002/12/10 00:56:41 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * and others. Copyright 1993 MicroWalt Corporation +@@ -88,7 +88,6 @@ + char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)"; + + int opt_a = 0; /* show all interfaces */ +-int opt_i = 0; /* show the statistics */ + int opt_v = 0; /* debugging output flag */ + + int addr_family = 0; /* currently selected AF */ +@@ -105,7 +104,7 @@ + int res; + + if (ife_short) +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + + if (!ifname) { + res = for_all_interfaces(do_if_print, &opt_a); +@@ -127,7 +126,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return (-1); + } +@@ -159,7 +158,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return -1; + } +@@ -172,9 +171,35 @@ + return (0); + } + ++/** test is a specified flag is set */ ++static int test_flag(char *ifname, short flags) ++{ ++ struct ifreq ifr; ++ int fd; ++ ++ if (strchr(ifname, ':')) { ++ /* This is a v4 alias interface. Downing it via a socket for ++ another AF may have bad consequences. */ ++ fd = get_socket_for_af(AF_INET); ++ if (fd < 0) { ++ fprintf(stderr, _("No support for INET on this system.\n")); ++ return -1; ++ } ++ } else ++ fd = skfd; ++ ++ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); ++ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { ++ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"), ++ ifname, strerror(errno)); ++ return -1; ++ } ++ return (ifr.ifr_flags & flags); ++} ++ + static void usage(void) + { +- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n")); ++ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n")); + #if HAVE_AFINET + fprintf(stderr, _(" [add <address>[/<prefixlen>]]\n")); + fprintf(stderr, _(" [del <address>[/<prefixlen>]]\n")); +@@ -208,7 +233,7 @@ + static void version(void) + { + fprintf(stderr, "%s\n%s\n", Release, Version); +- exit(0); ++ exit(E_USAGE); + } + + static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa) +@@ -222,18 +247,19 @@ + strerror(errno)); + err = 1; + } +- return 0; ++ return err; + } + + int main(int argc, char **argv) + { + struct sockaddr sa; ++ struct sockaddr samask; + struct sockaddr_in sin; + char host[128]; + struct aftype *ap; + struct hwtype *hw; + struct ifreq ifr; +- int goterr = 0, didnetmask = 0; ++ int goterr = 0, didnetmask = 0, neednetmask=0; + char **spp; + int fd; + #if HAVE_AFINET6 +@@ -388,6 +414,8 @@ + } + if (!strcmp(*spp, "-promisc")) { + goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC); ++ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -398,6 +426,8 @@ + } + if (!strcmp(*spp, "-multicast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -408,6 +438,8 @@ + } + if (!strcmp(*spp, "-allmulti")) { + goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -430,6 +462,8 @@ + if (!strcmp(*spp, "-dynamic")) { + goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name); + continue; + } + #endif +@@ -486,6 +520,8 @@ + + if (!strcmp(*spp, "-broadcast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -493,7 +529,10 @@ + if (*++spp != NULL) { + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host); + goterr = 1; + spp++; + continue; +@@ -515,7 +554,10 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host); + goterr = 1; + spp++; + continue; +@@ -535,13 +577,16 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host); + goterr = 1; + spp++; + continue; + } + didnetmask++; +- goterr = set_netmask(ap->fd, &ifr, &sa); ++ goterr |= set_netmask(ap->fd, &ifr, &sa); + spp++; + continue; + } +@@ -613,6 +658,8 @@ + if (!strcmp(*spp, "-pointopoint")) { + goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); + continue; + } + if (!strcmp(*spp, "pointopoint")) { +@@ -620,7 +667,10 @@ + spp++; + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa)) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host); + goterr = 1; + spp++; + continue; +@@ -661,8 +711,12 @@ + memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa, + sizeof(struct sockaddr)); + if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) { +- fprintf(stderr, "SIOCSIFHWADDR: %s\n", +- strerror(errno)); ++ if (errno == EBUSY) ++ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n", ++ strerror(errno)); ++ else ++ fprintf(stderr, "SIOCSIFHWADDR: %s\n", ++ strerror(errno)); + goterr = 1; + } + spp++; +@@ -681,12 +735,15 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, + (struct sockaddr *) &sa6) < 0) { +- inet6_aftype.herror(host); ++ if (inet6_aftype.herror) ++ inet6_aftype.herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host); + goterr = 1; + spp++; + continue; +@@ -771,7 +828,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, +@@ -800,6 +857,8 @@ + } + ifr6.ifr6_ifindex = ifr.ifr_ifindex; + ifr6.ifr6_prefixlen = prefix_len; ++ if (opt_v) ++ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len); + if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) { + fprintf(stderr, "SIOCDIFADDR: %s\n", + strerror(errno)); +@@ -859,7 +918,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) { +@@ -903,7 +962,7 @@ + /* FIXME: sa is too small for INET6 addresses, inet6 should use that too, + broadcast is unexpected */ + if (ap->getmask) { +- switch (ap->getmask(host, &sa, NULL)) { ++ switch (ap->getmask(host, &samask, NULL)) { + case -1: + usage(); + break; +@@ -911,8 +970,8 @@ + if (didnetmask) + usage(); + +- goterr = set_netmask(skfd, &ifr, &sa); +- didnetmask++; ++ // remeber to set the netmask from samask later ++ neednetmask = 1; + break; + } + } +@@ -921,9 +980,11 @@ + exit(1); + } + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); +- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n")); +- exit(1); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr, ++ _("ifconfig: `--help' gives usage information.\n")); exit(1); + } + memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr)); + { +@@ -980,6 +1041,14 @@ + spp++; + } + ++ if (neednetmask) { ++ goterr |= set_netmask(skfd, &ifr, &samask); ++ didnetmask++; ++ } ++ ++ if (opt_v && goterr) ++ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr); ++ + return (goterr); + } + +--- net-tools-1.60.orig/netstat.c ++++ net-tools-1.60/netstat.c +@@ -6,7 +6,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: netstat.c,v 1.55 2007/12/01 19:00:40 ecki Exp $ + * + * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de> + * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +@@ -94,6 +94,7 @@ + #include "sockets.h" + #include "interface.h" + #include "util.h" ++#include "proc.h" + + #define PROGNAME_WIDTH 20 + +@@ -153,7 +154,7 @@ + FILE *procinfo; + + #define INFO_GUTS1(file,name,proc) \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo == NULL) { \ + if (errno != ENOENT) { \ + perror((file)); \ +@@ -174,7 +175,7 @@ + #if HAVE_AFINET6 + #define INFO_GUTS2(file,proc) \ + lnr = 0; \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo != NULL) { \ + do { \ + if (fgets(buffer, sizeof(buffer), procinfo)) \ +@@ -216,7 +217,7 @@ + + static struct prg_node { + struct prg_node *next; +- int inode; ++ unsigned long inode; + char name[PROGNAME_WIDTH]; + } *prg_hash[PRG_HASH_SIZE]; + +@@ -249,7 +250,7 @@ + /* NOT working as of glibc-2.0.7: */ + #undef DIRENT_HAVE_D_TYPE_WORKS + +-static void prg_cache_add(int inode, char *name) ++static void prg_cache_add(unsigned long inode, char *name) + { + unsigned hi = PRG_HASHIT(inode); + struct prg_node **pnp,*pn; +@@ -272,7 +273,7 @@ + strcpy(pn->name,name); + } + +-static const char *prg_cache_get(int inode) ++static const char *prg_cache_get(unsigned long inode) + { + unsigned hi=PRG_HASHIT(inode); + struct prg_node *pn; +@@ -295,16 +296,18 @@ + prg_cache_loaded=0; + } + +-static void extract_type_1_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "socket:[12345]", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1; +- else if (lname[strlen(lname)-1] != ']') *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1); ++ ++ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1); ++ if (lname[strlen(lname)-1] != ']') return(-1); ++ ++ { + char inode_str[strlen(lname + 1)]; /* e.g. "12345" */ + const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1; + char *serr; +@@ -313,37 +316,41 @@ + inode_str[inode_str_len] = '\0'; + *inode_p = strtol(inode_str,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + +-static void extract_type_2_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "[0000]:12345", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1); ++ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1); ++ ++ { + char *serr; + + *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + ++ + static void prg_cache_load(void) + { + char line[LINE_MAX],eacces=0; + int procfdlen,fd,cmdllen,lnamelen; + char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH]; +- long inode; ++ unsigned long inode; + const char *cs,*cmdlp; + DIR *dirproc=NULL,*dirfd=NULL; + struct dirent *direproc,*direfd; +@@ -386,11 +393,9 @@ + lnamelen=readlink(line,lname,sizeof(lname)-1); + lname[lnamelen] = '\0'; /*make it a null-terminated string*/ + +- extract_type_1_socket_inode(lname, &inode); +- +- if (inode < 0) extract_type_2_socket_inode(lname, &inode); +- +- if (inode < 0) continue; ++ if (extract_type_1_socket_inode(lname, &inode) < 0) ++ if (extract_type_2_socket_inode(lname, &inode) < 0) ++ continue; + + if (!cmdlp) { + if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >= +@@ -450,7 +455,7 @@ + char buffer[256], dev[16]; + int st, vs, vr, sendq, recvq, ret; + +- f = fopen(_PATH_PROCNET_NR, "r"); ++ f = proc_fopen(_PATH_PROCNET_NR); + if (f == NULL) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_NR); +@@ -527,15 +532,15 @@ + + if (flag_exp > 1) { + if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL)) +- printf("%-10s ", pw->pw_name); ++ printf(" %-10s ", pw->pw_name); + else +- printf("%-10d ", uid); +- printf("%-10ld ",inode); ++ printf(" %-10d ", uid); ++ printf("%-10lu ",inode); + } + if (flag_prg) +- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode)); ++ printf(" %-16s",prg_cache_get(inode)); + if (flag_opt) +- printf("%s", timers); ++ printf(" %s", timers); + putchar('\n'); + } + +@@ -646,7 +651,7 @@ + #if HAVE_AFX25 + static int x25_info(void) + { +- FILE *f=fopen(_PATH_PROCNET_X25, "r"); ++ FILE *f=proc_fopen(_PATH_PROCNET_X25); + char buffer[256],dev[16]; + int st,vs,vr,sendq,recvq,lci; + static char *x25_state[5]= +@@ -657,7 +662,7 @@ + "ESTABLISHED", + "RECOVERY" + }; +- if(!(f=fopen(_PATH_PROCNET_X25, "r"))) ++ if(!(f=proc_fopen(_PATH_PROCNET_X25))) + { + if (errno != ENOENT) { + perror(_PATH_PROCNET_X25); +@@ -705,6 +710,7 @@ + unsigned long rxq, txq, time_len, retr, inode; + int num, local_port, rem_port, d, state, uid, timer_run, timeout; + char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512]; ++ char *protname; + struct aftype *ap; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; +@@ -719,12 +725,13 @@ + return; + + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "tcp6"; + /* Demangle what the kernel gives us */ + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], +@@ -740,6 +747,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "tcp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -813,8 +821,8 @@ + timer_run, (double) time_len / HZ, retr, timeout); + break; + } +- printf("tcp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, _(tcp_state[state])); ++ printf("%-4s %6ld %6ld %-*s %-*s %-11s", ++ protname, rxq, txq, netmax(23,strlen(local_addr)), local_addr, netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state])); + + finish_this_one(uid,inode,timers); + } +@@ -831,6 +839,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char *udp_state, timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -847,13 +856,14 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, + rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname="udp6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -868,6 +878,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname="udp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -953,8 +964,8 @@ + retr, timeout); + break; + } +- printf("udp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, udp_state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11s", ++ protname, rxq, txq, local_addr, rem_addr, udp_state); + + finish_this_one(uid,inode,timers); + } +@@ -971,6 +982,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -987,12 +999,13 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "raw6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -1007,6 +1020,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "raw"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -1074,8 +1088,8 @@ + retr, timeout); + break; + } +- printf("raw %6ld %6ld %-23s %-23s %-12d", +- rxq, txq, local_addr, rem_addr, state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11d", ++ protname, rxq, txq, local_addr, rem_addr, state); + + finish_this_one(uid,inode,timers); + } +@@ -1099,9 +1113,9 @@ + static int has = 0; + char path[MAXPATHLEN], ss_flags[32]; + char *ss_proto, *ss_state, *ss_type; +- int num, state, type, inode; ++ int num, state, type; + void *d; +- unsigned long refcnt, proto, flags; ++ unsigned long refcnt, proto, flags, inode; + + if (nr == 0) { + if (strstr(line, "Inode")) +@@ -1109,14 +1123,14 @@ + return; + } + path[0] = '\0'; +- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s", ++ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s", + &d, &refcnt, &proto, &flags, &type, &state, &inode, path); + if (num < 6) { + fprintf(stderr, _("warning, got bogus unix line.\n")); + return; + } + if (!(has & HAS_INODE)) +- snprintf(path,sizeof(path),"%d",inode); ++ snprintf(path,sizeof(path),"%lu",inode); + + if (!flag_all) { + if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) { +@@ -1208,9 +1222,9 @@ + printf("%-5s %-6ld %-11s %-10s %-13s ", + ss_proto, refcnt, ss_flags, ss_type, ss_state); + if (has & HAS_INODE) +- printf("%-6d ",inode); ++ printf("%-8lu ",inode); + else +- printf("- "); ++ printf("- "); + if (flag_prg) + printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-")); + puts(path); +@@ -1229,7 +1243,7 @@ + printf(_("(w/o servers)")); + } + +- printf(_("\nProto RefCnt Flags Type State I-Node")); ++ printf(_("\nProto RefCnt Flags Type State I-Node ")); + print_progname_banner(); + printf(_(" Path\n")); /* xxx */ + +@@ -1256,7 +1270,7 @@ + N_("ESTABLISHED"), + N_("RECOVERY") + }; +- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) { ++ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_AX25); + return (-1); +@@ -1350,18 +1364,37 @@ + char sad[50], dad[50]; + struct sockaddr sa; + unsigned sport = 0, dport = 0; +- +- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) { +- if (errno != ENOENT) { +- perror(_PATH_PROCNET_IPX); +- return (-1); +- } +- if (flag_arg || flag_ver) +- ESYSNOT("netstat", "AF IPX"); +- if (flag_arg) +- return (1); +- else +- return (0); ++ struct stat s; ++ ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1); ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET1); ++ return (-1); ++ } ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2); ++ ++ /* We need to check for directory */ ++ if (f) { ++ fstat(fileno(f), &s); ++ if (!S_ISREG(s.st_mode)) { ++ fclose(f); ++ f=NULL; ++ } ++ } ++ ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET2); ++ return (-1); ++ } ++ if (flag_arg || flag_ver) ++ ESYSNOT("netstat", "AF IPX"); ++ if (flag_arg) ++ return (1); ++ else ++ return (0); ++ } + } + printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */ + if (flag_exp > 1) +@@ -1381,7 +1414,7 @@ + sscanf(st, "%X", &sport); /* net byt order */ + sport = ntohs(sport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error"); ++ EINTERN("netstat.c", "ipx socket format error in source port"); + return (-1); + } + nc = 0; +@@ -1391,7 +1424,7 @@ + sscanf(st, "%X", &dport); /* net byt order */ + dport = ntohs(dport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error"); ++ EINTERN("netstat.c", "ipx soket format error in destination port"); + return (-1); + } + } else +@@ -1449,7 +1482,7 @@ + } + if (flag_exp < 2) { + ife_short = 1; +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + } + + if (for_all_interfaces(do_if_print, &flag_all) < 0) { +@@ -1457,7 +1490,7 @@ + exit(1); + } + if (flag_cnt) +- free_interface_list(); ++ if_cache_free(); + else { + close(skfd); + skfd = -1; +@@ -1503,7 +1536,7 @@ + fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); + + fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); +- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF); ++ fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF); + fprintf(stderr, _(" List of possible address families (which support routing):\n")); + print_aflist(1); /* 1 = routeable */ + exit(E_USAGE); +@@ -1514,7 +1547,7 @@ + (int argc, char *argv[]) { + int i; + int lop; +- struct option longopts[] = ++ static struct option longopts[] = + { + AFTRANS_OPTS, + {"version", 0, 0, 'V'}, +@@ -1556,7 +1589,7 @@ + getroute_init(); /* Set up AF routing support */ + + afname[0] = '\0'; +- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl64", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -1624,6 +1657,14 @@ + case 'o': + flag_opt++; + break; ++ case '6': ++ if (aftrans_opt("inet6")) ++ exit(1); ++ break; ++ case '4': ++ if (aftrans_opt("inet")) ++ exit(1); ++ break; + case 'V': + version(); + /*NOTREACHED */ +@@ -1741,10 +1782,11 @@ + } + printf(_("\nProto Recv-Q Send-Q Local Address Foreign Address State ")); /* xxx */ + if (flag_exp > 1) +- printf(_(" User Inode ")); +- print_progname_banner(); ++ printf(_(" User Inode ")); ++ if (flag_prg) ++ printf(_(" PID/Program name")); + if (flag_opt) +- printf(_(" Timer")); /* xxx */ ++ printf(_(" Timer")); + printf("\n"); + #else + if (flag_arg) { +@@ -1845,6 +1887,7 @@ + } + #endif + } ++ + if (!flag_cnt || i) + break; + sleep(1); +--- net-tools-1.60.orig/route.c ++++ net-tools-1.60/route.c +@@ -2,7 +2,7 @@ + * route This file contains an implementation of the command + * that manages the IP routing table in the kernel. + * +- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -142,7 +142,7 @@ + } + + /* Fetch the command-line arguments. */ +- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -176,6 +176,14 @@ + if ((i = aftrans_opt(optarg))) + exit(i); + break; ++ case '6': ++ if ((i = aftrans_opt("inet6"))) ++ exit(i); ++ break; ++ case '4': ++ if ((i = aftrans_opt("inet"))) ++ exit(i); ++ break; + case 'V': + version(); + case 'h': +--- net-tools-1.60.orig/statistics.c ++++ net-tools-1.60/statistics.c +@@ -1,6 +1,6 @@ + /* + * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL. +- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $ ++ * $Id: statistics.c,v 1.20 2007/12/01 18:44:56 ecki Exp $ + * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br> + * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br> + * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels +@@ -11,6 +11,7 @@ + #include <string.h> + #include "config.h" + #include "intl.h" ++#include "proc.h" + + /* #define WARN 1 */ + +@@ -172,19 +173,59 @@ + { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number }, + { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"), + opt_number }, +- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number }, ++ { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number }, + { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."), + opt_number }, +- { "TCPDirectCopyFromBacklog", N_("%u packets directly received" +- " from backlog"), opt_number }, +- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received" +- " from prequeue"), opt_number }, ++ { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number }, ++ { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"), ++ opt_number }, + { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number }, +- { "TCPHPHits", N_("%u packets header predicted"), number }, ++ { "TCPHPHits", N_("%u packet headers predicted"), number }, + { "TCPHPHitsToUser", N_("%u packets header predicted and " + "directly queued to user"), opt_number }, + { "SockMallocOOM", N_("Ran %u times out of system memory during " + "packet sending"), opt_number }, ++ { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number }, ++ { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, ++ { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, ++ { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number }, ++ { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number }, ++ { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, ++ { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, ++ { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, ++ { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, ++ { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number }, ++ { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, ++ { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number }, ++ { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number }, ++ { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, ++ { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, ++ { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, ++ { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, ++ { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, ++ { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, ++ { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, ++ { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, ++ { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, ++ { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number }, ++ { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, ++ { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, ++ { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, ++ { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, ++ { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, ++ { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, ++ { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, ++ { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, ++ { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, ++ { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, ++ { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, ++ { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, ++ { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, ++ { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, ++ { "TCPLoss", N_("%u TCP data loss events"), opt_number }, ++ { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"), ++ opt_number }, ++ { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number }, + }; + + struct tabtab { +@@ -222,7 +263,8 @@ + ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry), + sizeof(struct entry), cmpentries); + if (!ent) { /* try our best */ +- printf("%*s%s: %d\n", states[state].indent, "", title, val); ++ if (val) ++ printf("%*s%s: %d\n", states[state].indent, "", title, val); + return; + } + type = ent->type; +@@ -289,14 +331,17 @@ + return &dummytab; + } + +-void process_fd(FILE *f) ++int process_fd(FILE *f) + { +- char buf1[1024], buf2[1024]; ++ char buf1[2048], buf2[2048]; + char *sp, *np, *p; + while (fgets(buf1, sizeof buf1, f)) { + int endflag; + struct tabtab *tab; + ++ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels ++ continue; ++ + if (!fgets(buf2, sizeof buf2, f)) + break; + sp = strchr(buf1, ':'); +@@ -330,11 +375,10 @@ + sp = p + 1; + } + } +- return; ++ return 0; + + formaterr: +- perror(_("error parsing /proc/net/snmp")); +- return; ++ return -1; + } + + +@@ -344,22 +388,25 @@ + + f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; + +- f = fopen("/proc/net/snmp", "r"); ++ f = proc_fopen("/proc/net/snmp"); + if (!f) { + perror(_("cannot open /proc/net/snmp")); + return; + } +- process_fd(f); ++ ++ if (process_fd(f) < 0) ++ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n")); + + if (ferror(f)) + perror("/proc/net/snmp"); + + fclose(f); + +- f = fopen("/proc/net/netstat", "r"); ++ f = proc_fopen("/proc/net/netstat"); + + if (f) { +- process_fd(f); ++ if (process_fd(f) <0) ++ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n")); + + if (ferror(f)) + perror("/proc/net/netstat"); +--- net-tools-1.60.orig/nameif.c ++++ net-tools-1.60/nameif.c +@@ -3,7 +3,7 @@ + * Writen 2000 by Andi Kleen. + * Subject to the Gnu Public License, version 2. + * TODO: make it support token ring etc. +- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $ ++ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $ + */ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE +@@ -117,7 +117,8 @@ + } + + struct change { +- struct change *next,**pprev; ++ struct change *next; ++ int found; + char ifname[IFNAMSIZ+1]; + unsigned char mac[6]; + }; +@@ -139,10 +140,7 @@ + ch->ifname, pos); + if (parsemac(p,ch->mac) < 0) + complain(_("cannot parse MAC `%s' at %s"), p, pos); +- if (clist) +- clist->pprev = &ch->next; + ch->next = clist; +- ch->pprev = &clist; + clist = ch; + return 0; + } +@@ -177,7 +175,7 @@ + if (*p == '\0') + continue; + n = strcspn(p, " \t"); +- if (n > IFNAMSIZ) ++ if (n > IFNAMSIZ-1) + complain(_("interface name too long at line %d"), line); + memcpy(ch->ifname, p, n); + ch->ifname[n] = 0; +@@ -200,7 +198,7 @@ + + void usage(void) + { +- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); ++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); + exit(1); + } + +@@ -277,21 +275,21 @@ + ch = lookupmac(mac); + if (!ch) + continue; +- +- *ch->pprev = ch->next; ++ ++ ch->found = 1; + if (strcmp(p, ch->ifname)) { + if (setname(p, ch->ifname) < 0) + complain(_("cannot change name of %s to %s: %s"), + p, ch->ifname, strerror(errno)); + } +- free(ch); + } + fclose(ifh); + + while (clist) { + struct change *ch = clist; + clist = clist->next; +- warning(_("interface '%s' not found"), ch->ifname); ++ if (!ch->found) ++ warning(_("interface '%s' not found"), ch->ifname); + free(ch); + } + +--- net-tools-1.60.orig/mii-tool.c ++++ net-tools-1.60/mii-tool.c +@@ -29,8 +29,7 @@ + http://www.national.com/pf/DP/DP83840.html + */ + +-static char version[] = +-"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n"; ++static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)"; + + #include <unistd.h> + #include <stdlib.h> +@@ -46,16 +45,19 @@ + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <net/if.h> ++#include <linux/sockios.h> ++ + #ifndef __GLIBC__ + #include <linux/if_arp.h> + #include <linux/if_ether.h> + #endif + #include "mii.h" ++#include "version.h" + + #define MAX_ETH 8 /* Maximum # of interfaces */ + + /* Table of known MII's */ +-static struct { ++static const struct { + u_short id1, id2; + char *name; + } mii_id[] = { +@@ -74,6 +76,9 @@ + { 0x0181, 0x4410, "Quality QS6612" }, + { 0x0282, 0x1c50, "SMSC 83C180" }, + { 0x0300, 0xe540, "TDK 78Q2120" }, ++ { 0x0141, 0x0c20, "Yukon 88E1011" }, ++ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" }, ++ { 0x0141, 0x0c90, "Yukon-2 88E1112" }, + }; + #define NMII (sizeof(mii_id)/sizeof(mii_id[0])) + +@@ -137,40 +142,48 @@ + + const struct { + char *name; +- u_short value; ++ u_short value[2]; + } media[] = { + /* The order through 100baseT4 matches bits in the BMSR */ +- { "10baseT-HD", MII_AN_10BASET_HD }, +- { "10baseT-FD", MII_AN_10BASET_FD }, +- { "100baseTx-HD", MII_AN_100BASETX_HD }, +- { "100baseTx-FD", MII_AN_100BASETX_FD }, +- { "100baseT4", MII_AN_100BASET4 }, +- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD }, +- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD }, ++ { "10baseT-HD", {MII_AN_10BASET_HD} }, ++ { "10baseT-FD", {MII_AN_10BASET_FD} }, ++ { "100baseTx-HD", {MII_AN_100BASETX_HD} }, ++ { "100baseTx-FD", {MII_AN_100BASETX_FD} }, ++ { "100baseT4", {MII_AN_100BASET4} }, ++ { "100baseTx", {MII_AN_100BASETX_FD | MII_AN_100BASETX_HD} }, ++ { "10baseT", {MII_AN_10BASET_FD | MII_AN_10BASET_HD} }, ++ ++ { "1000baseT-HD", {0, MII_BMCR2_1000HALF} }, ++ { "1000baseT-FD", {0, MII_BMCR2_1000FULL} }, ++ { "1000baseT", {0, MII_BMCR2_1000HALF|MII_BMCR2_1000FULL} }, + }; + #define NMEDIA (sizeof(media)/sizeof(media[0])) + + /* Parse an argument list of media types */ +-static int parse_media(char *arg) ++static int parse_media(char *arg, unsigned *bmcr2) + { + int mask, i; + char *s; + mask = strtoul(arg, &s, 16); + if ((*arg != '\0') && (*s == '\0')) { + if ((mask & MII_AN_ABILITY_MASK) && +- !(mask & ~MII_AN_ABILITY_MASK)) +- return mask; ++ !(mask & ~MII_AN_ABILITY_MASK)) { ++ *bmcr2 = 0; ++ return mask; ++ } + goto failed; +- } else { +- mask = 0; +- s = strtok(arg, ", "); +- do { ++ } ++ mask = 0; ++ *bmcr2 = 0; ++ s = strtok(arg, ", "); ++ do { + for (i = 0; i < NMEDIA; i++) +- if (strcasecmp(media[i].name, s) == 0) break; ++ if (s && strcasecmp(media[i].name, s) == 0) break; + if (i == NMEDIA) goto failed; +- mask |= media[i].value; +- } while ((s = strtok(NULL, ", ")) != NULL); +- } ++ mask |= media[i].value[0]; ++ *bmcr2 |= media[i].value[1]; ++ } while ((s = strtok(NULL, ", ")) != NULL); ++ + return mask; + failed: + fprintf(stderr, "Invalid media specification '%s'.\n", arg); +@@ -179,11 +192,24 @@ + + /*--------------------------------------------------------------------*/ + +-static char *media_list(int mask, int best) ++static const char *media_list(unsigned mask, unsigned mask2, int best) + { + static char buf[100]; + int i; + *buf = '\0'; ++ ++ if (mask & MII_BMCR_SPEED1000) { ++ if (mask2 & MII_BMCR2_1000HALF) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-HD"); ++ if (best) goto out; ++ } ++ if (mask2 & MII_BMCR2_1000FULL) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-FD"); ++ if (best) goto out; ++ } ++ } + mask >>= 5; + for (i = 4; i >= 0; i--) { + if (mask & (1<<i)) { +@@ -192,6 +218,7 @@ + if (best) break; + } + } ++ out: + if (mask & (1<<5)) + strcat(buf, " flow-control"); + return buf; +@@ -201,15 +228,15 @@ + { + char buf[100]; + int i, mii_val[32]; +- int bmcr, bmsr, advert, lkpar; ++ unsigned bmcr, bmsr, advert, lkpar, bmcr2, lpa2; + + /* Some bits in the BMSR are latched, but we can't rely on being + the only reader, so only the current values are meaningful */ + mdio_read(sock, MII_BMSR); +- for (i = 0; i < ((verbose > 1) ? 32 : 8); i++) ++ for (i = 0; i < ((verbose > 1) ? 32 : MII_BASIC_MAX); i++) + mii_val[i] = mdio_read(sock, i); + +- if (mii_val[MII_BMCR] == 0xffff) { ++ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) { + fprintf(stderr, " No MII transceiver present!.\n"); + return -1; + } +@@ -217,6 +244,7 @@ + /* Descriptive rename. */ + bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR]; + advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR]; ++ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000]; + + sprintf(buf, "%s: ", ifr.ifr_name); + if (bmcr & MII_BMCR_AN_ENA) { +@@ -224,7 +252,7 @@ + if (advert & lkpar) { + strcat(buf, (lkpar & MII_AN_ACK) ? + "negotiated" : "no autonegotiation,"); +- strcat(buf, media_list(advert & lkpar, 1)); ++ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1)); + strcat(buf, ", "); + } else { + strcat(buf, "autonegotiation failed, "); +@@ -234,8 +262,10 @@ + } + } else { + sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ", +- (bmcr & MII_BMCR_100MBIT) ? "100" : "10", +- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); ++ ((bmcr2 & (MII_BMCR2_1000HALF | MII_BMCR2_1000FULL)) & lpa2 >> 2) ++ ? "1000" ++ : (bmcr & MII_BMCR_100MBIT) ? "100" : "10", ++ (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); + } + strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); + +@@ -296,12 +326,13 @@ + if (bmsr & MII_BMSR_REMOTE_FAULT) + printf("remote fault, "); + printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); +- printf("\n capabilities:%s", media_list(bmsr >> 6, 0)); +- printf("\n advertising: %s", media_list(advert, 0)); ++ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0)); ++ printf("\n advertising: %s", media_list(advert, lpa2 >> 2, 0)); + if (lkpar & MII_AN_ABILITY_MASK) +- printf("\n link partner:%s", media_list(lkpar, 0)); ++ printf("\n link partner:%s", media_list(lkpar, bmcr2, 0)); + printf("\n"); + } ++ fflush(stdout); + return 0; + } + +@@ -329,7 +360,7 @@ + printf("resetting the transceiver...\n"); + mdio_write(skfd, MII_BMCR, MII_BMCR_RESET); + } +- if (nway_advertise) { ++ if (nway_advertise > 0) { + mdio_write(skfd, MII_ANAR, nway_advertise | 1); + opt_restart = 1; + } +@@ -379,27 +410,38 @@ + /*--------------------------------------------------------------------*/ + + const char *usage = +-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...] +- -V, --version display version information +- -v, --verbose more verbose output +- -R, --reset reset MII to poweron state +- -r, --restart restart autonegotiation +- -w, --watch monitor for link status changes +- -l, --log with -w, write events to syslog +- -A, --advertise=media,... advertise only specified media +- -F, --force=media force specified media technology +-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD, +- (to advertise both HD and FD) 100baseTx, 10baseT\n"; ++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n" ++" -V, --version display version information\n" ++" -v, --verbose more verbose output\n" ++" -R, --reset reset MII to poweron state\n" ++" -r, --restart restart autonegotiation\n" ++" -w, --watch monitor for link status changes\n" ++" -l, --log with -w, write events to syslog\n" ++" -A, --advertise=media,... advertise only specified media\n" ++" -F, --force=media force specified media technology\n" ++"media: 1000baseTx-HD, 1000baseTx-FD,\n" ++" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n" ++" 10baseT-FD, 10baseT-HD,\n" ++" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n"; ++ ++ ++static void version(void) ++{ ++ fprintf(stderr, "%s\n%s\n", Version, RELEASE); ++ exit(5); /* E_VERSION */ ++} ++ + + int main(int argc, char **argv) + { + int i, c, ret, errflag = 0; + char s[6]; ++ unsigned ctrl1000 = 0; + + while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF) + switch (c) { +- case 'A': nway_advertise = parse_media(optarg); break; +- case 'F': fixed_speed = parse_media(optarg); break; ++ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break; ++ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break; + case 'p': override_phy = atoi(optarg); break; + case 'r': opt_restart++; break; + case 'R': opt_reset++; break; +@@ -411,6 +453,10 @@ + } + /* Check for a few inappropriate option combinations */ + if (opt_watch) verbose = 0; ++ ++ if ((nway_advertise < 0) || (fixed_speed < 0)) ++ return 2; ++ + if (errflag || (fixed_speed & (fixed_speed-1)) || + (fixed_speed && (opt_restart || nway_advertise))) { + fprintf(stderr, usage, argv[0]); +@@ -418,7 +464,7 @@ + } + + if (opt_version) +- printf(version); ++ version(); + + /* Open a basic socket. */ + if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) { +@@ -426,6 +472,9 @@ + exit(-1); + } + ++ if (verbose > 1) ++ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY); ++ + /* No remaining args means show all interfaces. */ + if (optind == argc) { + ret = 1; +--- net-tools-1.60.orig/debian/changelog ++++ net-tools-1.60/debian/changelog +@@ -0,0 +1,277 @@ ++net-tools (1.60-19) unstable; urgency=low ++ ++ * fixed netstat(8) (interfaceS) reported by Liu Xing. (Closes Bug #435690) ++ * fixed interface name truncation (Closes Bug #405521) ++ Thank you Csaba Szep. ++ * fixed pt error string (Closes: Bug#403033) ++ * fixed route samples (Closes: Bug#400844, #368697) Thanks Danny Rathjens. ++ * fixed ifconfig(8) see also section (Closes: Bug#365916) Dan Jacobs. ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 06:27:41 +0100 ++ ++net-tools (1.60-18) unstable; urgency=low ++ ++ * Thanks for the l10n NMU to Kenshi Muto ++ * fixed hostname compile problems ++ * better error handling and speedup for proc file reading ++ * improved mii-tool (more media types) ++ * fixed string length contraint in ipmaddr ++ * fixed ipx /proc/net (alternate naming) ++ * smaller fixed to netstat(8) (de) 2002-02-20 - still incomplete ++ * expanded arp(8) (en) 2007-12-01 ++ * added -4 and -6 to netstat(8) 02 October 2003 ++ * formatting fixed rarp(8)+slattach(8) [en] ++ * formatting fixed arp(8), rarp(8), ifconfig(8), hostname(1) [fr] ++ * fixed slattach -L to not require HW handshake anymore ++ * netstat -n: show v4inv6 mapped addressses as v4 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 03:28:17 +0100 ++ ++net-tools (1.60-17.2) unstable; urgency=low ++ ++ * l10n NMU ++ * Set conflict against ja-trans which has obsolete Japanese ++ translations only for net-tools. (closes: #447327) ++ ++ -- Kenshi Muto <kmuto@debian.org> Sat, 20 Oct 2007 18:00:34 +0900 ++ ++net-tools (1.60-17.1) unstable; urgency=low ++ ++ * l10n NMU ++ * Updated net-tools.pot. ++ * Updated Japanese translation (closes: Bug#432338) ++ * Updated German translation (closes: #313808) ++ ++ -- Kenshi Muto <kmuto@debian.org> Thu, 11 Oct 2007 19:44:26 +0900 ++ ++net-tools (1.60-17) unstable; urgency=medium ++ ++ * arp.c: bus error on sparc64 with latest gcc fixed. (Closes: Bug#340384) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 04 Dec 2005 05:47:05 +0100 ++ ++net-tools (1.60-16) unstable; urgency=low ++ ++ * spelling fix to slattach(8) (Closes: Bug#326124 (patch by A.Costa) ++ * inet.c: portability fix for 64bit. ++ * comment cleanups to aliagn with 1.65 cvs ++ * net-support.h, inet_sr.c, nstrcmp.c, arp.c, ether.h ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 24 Oct 2005 22:05:38 +0200 ++ ++net-tools (1.60-15) unstable; urgency=low ++ ++ * minor formating fix to ifconfig(8) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 21:49:52 +0200 ++ ++net-tools (1.60-14) unstable; urgency=low ++ ++ * added iptables(8) in ifconfig(8) (thanks Toralf Förster) ++ * more usage updates in ifconfig.8 (used upstream HEAD=1.11) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 20:51:18 +0200 ++ ++net-tools (1.60-13) unstable; urgency=low Thu, 30 Jun 2005 20:49:57 +0200 ++ ++ * X25 code compiles with 2.4 and 2.6 kernel headers (Closes: Bug#271678) ++ * IMPORTANT: make ifconfig show alias interfaces in 2.6 again. ++ * resort media type array to match kernel (Closes: Bug#199920) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Tue, 17 May 2005 01:28:51 +0200 ++ ++net-tools (1.60-12) unstable; urgency=low ++ ++ * make TR hw address type work for new kernel (Closes: Bug #79462, #203400) ++ * update-po uses msgmerge, new net-tools.pot (Closes: Bug: 271426) ++ * de-support dontpub option in arp -? und arp.8 (Closes: Bug #203396) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 May 2005 06:33:48 +0200 ++ ++net-tools (1.60-11) unstable; urgency=low ++ ++ * spelling fixes (Closes: Bug #305640, #305638, 305637) ++ * nameif.c avoid overflow by malicious kernel ++ * avoid overflow of the TX-OK Column (Closes: Bug #308922) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 14 May 2005 01:48:45 +0200 ++ ++net-tools (1.60-10) unstable; urgency=low ++ ++ * typo fix in po/de.po for german arp command output (Closes: Bug #176151) ++ * added diagnostics messages to mii-tool.8 (Closes: Bug #239229) ++ * new version of nstrcmp (Closes: Bug #226503) ++ * enable EUI64 support ++ * stadanrds version 3.6.1 (no changes) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Fri, 23 Apr 2004 00:57:20 +0200 ++ ++net-tools (1.60-9) unstable; urgency=medium ++ ++ * debian/changelog: fixed in last entry fixed bug from 197925 to 197924 ++ * include linux/sockios.h for SIOCGMIIPHY definition (new style) ++ which will fix MII reporting on 2.4 kernels. (Closes: Bug #133648) ++ NOTE: this will now require root to work, it will also not work on ++ older kernels. ++ * Rene Engelhard's patch to make AF X25 compile with 2.6 headers (Closes: Bug #223091) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 29 Dec 2003 13:42:20 +0100 ++ ++net-tools (1.60-8) unstable; urgency=medium ++ ++ * lib/interface.c: backed off change which skipped reading ioctl ++ interfacelist, if _proc interfacelist was ok, which does not work, ++ because alias interfaces are only in ioctl list available. It is ++ also falling back to the original lib/nstrcml.c because the ++ comparision if : is present does not work. ++ (Closes: bug #197924, #197582, #197269) ++ * bumped standards version (no changes) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 28 Jun 2003 02:56:38 +0200 ++ ++net-tools (1.60-7) unstable; urgency=low ++ ++ * interfaces.c: cvs version fixes Connectiva Bug #5711 (Closes: #149576) ++ from Eduardo Pereira Habkost ++ * netstat.c: cvs version adds support for tcp6,udp6,icmp6 protocols ++ * netstat.c: cvs version adds support for -4 or -6 cmd line shortcut ++ * netstat.c: cvs version adds fix for inode ++ signedness (Closes: #134600, #78932) ++ * ifconfig: removed -i from usage (Closes: #181528) ++ * make gcc 3.3 happy: added ull unsigned long long prefix to constant ++ * lib/ddp_gr.c+pathnames.h: first support for appletalk routing from cvs ++ * lib/eui64.c+hw.c+Makefile: forst support for new hw type from cvs ++ * lib/interface.c: cvs fix for column run-into (Closes: #161080) ++ * lib/irda.c,lib/ipx.c: cvs update ++ * lib/nstrcmp.c: new, faster version, fixes b-lookups for ifconfig ++ * hostanme.c: gcc 3.3 fix from cvs (not compiled in net-tools.deb) ++ * lib/interface: fixed memory globbering ++ (Closes: #135744, #149579, #185187) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 12 Jun 2003 05:44:38 +0200 ++ ++net-tools (1.60-6) unstable; urgency=low ++ ++ * took route.c from upstream cvs: allow -6 and -4 option ++ * took statistics.c from upstream cvs: more complete netstat -S ++ * took README from upstream cvs: fix COPYING file title and removed ++ the line (Closes: #102139) ++ * took arp.c from upstream: fixed name "PUB", better not found handling, ++ implicite proxy arp mac changed from '*' to '<from_interface>', ++ usage line made shorter ++ * added mii-tool in control file (Closes: #172473) ++ * fixed description of binary multiple in man page (Closes: #182487) ++ * fixed interpunctation in netstat(8) (Closes: #191660) ++ * fixed compile warning in inet_sr.c by removing empty default: label in ++ switch ++ ++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:35:12 +0200 ++ ++net-tools (1.60-5) unstable; urgency=low ++ ++ * thanks Andrew for the 4.1 NMU ++ * NMU: Apply nameif patch from Matt Domsch. (Closes: #178209) ++ * Fix FTB bug (string concatenation in gcc 3.3) (Closes: #194995) ++ * Fix segfault in mii-tool by using cvs version (Closes: #139027) ++ * fixed plural of authors to make lintian happy (I JOIN YOU :) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:04:14 +0200 ++ ++net-tools (1.60-4.1) unstable; urgency=low ++ ++ * NMU ++ * Apply nameif patch from Matt Domsch. (Closes: #178209) ++ ++ -- Andrew Suffield <asuffield@debian.org> Wed, 9 Apr 2003 21:44:09 +0100 ++ ++net-tools (1.60-4) unstable; urgency=medium ++ ++ * fixed (upstream) spurious newline in ifconfig ++ Thanks Jonathen, Closes: Bug #109379 ++ * fixed SI-Units printout in ifconfig (Closes: Bug #110629, #97029, #100167) ++ * this is done by including lib/interfaces.c from upstream cvs ++ * also added ifconfig man page from upstream cvs ++ * fixed (upstream) man page about netstat's --interface opt. (Closes: Bug#120475) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 24 Nov 2001 06:26:37 +0100 ++ ++net-tools (1.60-3) unstable; urgency=medium ++ ++ * fixed upstream error where counters in ifconfig/netstat -i are 0 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Nov 2001 18:12:13 +0100 ++ ++net-tools (1.60-2) unstable; urgency=low ++ ++ * Fixed the following bug: (Closes: #117837) ++ * inserted ifconfig.c from upstream cvs to do this ++ * bumped debian Standard 3.1.1 -> 3.5.6 and removed -g from linking ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 1 Nov 2001 02:51:33 +0100 ++ ++net-tools (1.60-1) unstable; urgency=low ++ ++ * New upstream ++ * Phil fixed the following Bugs upstream: (Closes: #91919, #93048, #90282) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 Apr 2001 02:28:12 +0200 ++ ++net-tools (1.59-1) unstable; urgency=low ++ ++ * added Build Dependencies (closes bug: #89083) ++ * new upstream version ++ * removed dh_suidregister and a few comments from rules file ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 18 Mar 2001 03:00:33 +0100 ++ ++net-tools (1.58-2) unstable; urgency=low ++ ++ * backported ifconfig change from 1.59 to avoid closing socket too early ++ on some systems (depending on the protocols installed). ++ Closes Bug: #85688, #85743 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Tue, 13 Feb 2001 01:39:59 +0100 ++ ++net-tools (1.58-1) unstable; urgency=low ++ ++ * new upstream version ++ * removed local man pages for now (Closes: bug #83894) ++ * install nameif in /sbin ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Feb 2001 21:50:30 +0100 ++ ++net-tools (1.57-2) unstable; urgency=high ++ ++ * rebuild, this is believed to closes: #75825 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 30 Dec 2000 22:43:01 +0100 ++ ++net-tools (1.57-1) unstable; urgency=low ++ ++ * new debian maintainer (thanks Anthony for the Work!) ++ * new upstream version ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 14 Aug 2000 02:40:13 +0200 ++ ++net-tools (1.54-3) unstable; urgency=low ++ ++ * Argggh. Don't use that horrible dh_installmanpages hack. (Closes: ++ Bug#68925, Bug#68879) ++ ++ -- Anthony Towns <ajt@debian.org> Sun, 13 Aug 2000 00:12:05 +1000 ++ ++net-tools (1.54-2) unstable; urgency=low ++ ++ * Reapply slattach patch from netbase 3.16-3. ++ ++ -- Anthony Towns <ajt@debian.org> Thu, 10 Aug 2000 11:32:58 +1000 ++ ++net-tools (1.54-1) unstable; urgency=low ++ ++ * Split from netbase. ++ ++ -- Anthony Towns <ajt@debian.org> Mon, 17 Jul 2000 07:34:12 +1000 ++ ++Local variables: ++mode: debian-changelog ++End: +--- net-tools-1.60.orig/debian/copyright ++++ net-tools-1.60/debian/copyright +@@ -0,0 +1,18 @@ ++This debian package is maintained by Bernd Eckenfels <ecki@debian.org> since ++Mon, 14 Aug 2000 02:42:13 +0200. Debian Informations will be uploaded ++upstream, too. ++ ++This package was debianized by Anthony Towns <ajt@debian.org> on ++Mon, 17 Jul 2000 07:34:12 +1000. It was originally part of the netbase ++package. ++ ++It was downloaded from http://www.tazenda.demon.co.uk/phil/net-tools/ ++ ++Upstream Authors: Phil Blundell <philb@gnu.org>, ++ Bernd Eckenfels <net-tools@lina.inka.de> ++ ++Copyright: ++ ++Distributed under the terms of the GNU General Public License version 2, ++as published by the Free Software Foundation. On Debian systems you can ++find a copy of this license in /usr/share/common-licenses/GPL. +--- net-tools-1.60.orig/debian/dirs ++++ net-tools-1.60/debian/dirs +@@ -0,0 +1 @@ ++usr/sbin +--- net-tools-1.60.orig/debian/config.make ++++ net-tools-1.60/debian/config.make +@@ -0,0 +1,36 @@ ++I18N=1 ++HAVE_AFUNIX=1 ++HAVE_AFINET=1 ++HAVE_AFINET6=1 ++HAVE_AFIPX=1 ++HAVE_AFATALK=1 ++HAVE_AFAX25=1 ++HAVE_AFNETROM=1 ++HAVE_AFROSE=1 ++HAVE_AFX25=1 ++HAVE_AFECONET=1 ++HAVE_AFDECnet=1 ++HAVE_AFASH=1 ++HAVE_HWETHER=1 ++HAVE_HWARC=1 ++HAVE_HWSLIP=1 ++HAVE_HWPPP=1 ++HAVE_HWTUNNEL=1 ++HAVE_HWSTRIP=1 ++HAVE_HWTR=1 ++HAVE_HWAX25=1 ++HAVE_HWROSE=1 ++HAVE_HWNETROM=1 ++HAVE_HWX25=1 ++HAVE_HWFR=1 ++HAVE_HWSIT=1 ++HAVE_HWFDDI=1 ++HAVE_HWHIPPI=1 ++HAVE_HWASH=1 ++HAVE_HWHDLCLAPB=1 ++HAVE_HWIRDA=1 ++HAVE_HWEC=1 ++HAVE_EUI64=1 ++HAVE_FW_MASQUERADE=1 ++HAVE_IP_TOOLS=1 ++HAVE_MII=1 +--- net-tools-1.60.orig/debian/control ++++ net-tools-1.60/debian/control +@@ -0,0 +1,21 @@ ++Source: net-tools ++Section: net ++Priority: important ++Build-Depends: debhelper, gettext ++Maintainer: Bernd Eckenfels <ecki@debian.org> ++Standards-Version: 3.6.1 ++ ++Package: net-tools ++Architecture: any ++Depends: ${shlibs:Depends} ++Replaces: netbase (<< 4.00), ja-trans (<= 0.8-2) ++Conflicts: ja-trans (<= 0.8-2) ++Description: The NET-3 networking toolkit ++ This package includes the important tools for controlling the network ++ subsystem of the Linux kernel. This includes arp, ifconfig, netstat, ++ rarp, nameif and route. Additionally, this package contains utilities ++ relating to particular network hardware types (plipconfig, slattach, ++ mii-tool) and advanced aspects of IP configuration (iptunnel, ipmaddr). ++ . ++ In the upstream package 'hostname' and friends are included. Those are ++ not installed by this package, since there is a special "hostname*.deb". +--- net-tools-1.60.orig/debian/rules ++++ net-tools-1.60/debian/rules +@@ -0,0 +1,74 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=1 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ touch configure-stamp ++ ++build: configure-stamp build-stamp ++build-stamp: ++ dh_testdir ++ cp debian/config.h config.h ++ cp debian/config.make config.make ++ $(MAKE) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp configure-stamp ++ -$(MAKE) clobber ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) update BASEDIR=`pwd`/debian/tmp ++ mv debian/tmp/sbin/arp debian/tmp/usr/sbin/arp ++ # we don't want man pages for domainname and friends... (yet) ++ rm -rf debian/tmp/usr/share/man/*/man1/ debian/tmp/usr/share/man/man1/ ++ # we don't install local manpages until policy is clear ++ rm -rf debian/tmp/usr/share/man/*_*/ ++ ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++# dh_testversion ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++# dh_installmanpages ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol -- -isp ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- net-tools-1.60.orig/debian/config.h ++++ net-tools-1.60/debian/config.h +@@ -0,0 +1,75 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 1 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 1 ++#define HAVE_AFDECnet 1 ++#define HAVE_AFASH 1 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 1 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 1 ++#define HAVE_HWFDDI 1 ++#define HAVE_HWHIPPI 1 ++#define HAVE_HWASH 1 ++#define HAVE_HWHDLCLAPB 1 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 1 ++#define HAVE_HWEUI64 1 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 +--- net-tools-1.60.orig/debian/docs ++++ net-tools-1.60/debian/docs +@@ -0,0 +1,3 @@ ++README ++README.ipv6 ++TODO diff --git a/source/n/net-tools/slack-desc b/source/n/net-tools/slack-desc new file mode 100644 index 000000000..e49909da3 --- /dev/null +++ b/source/n/net-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +net-tools: net-tools (base Linux networking utilities) +net-tools: +net-tools: This is the core collection of tools such as "ifconfig" and "route" +net-tools: used to configure networking on Linux. You won't be able to do much +net-tools: networking without this package and the network-scripts. +net-tools: +net-tools: The net-tools package was maintained for many years by Phil Blundell +net-tools: and Bernd Eckenfels. +net-tools: +net-tools: +net-tools: diff --git a/source/n/netatalk/afppasswd b/source/n/netatalk/afppasswd new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/source/n/netatalk/afppasswd diff --git a/source/n/netatalk/doinst.sh b/source/n/netatalk/doinst.sh new file mode 100644 index 000000000..0f07997d0 --- /dev/null +++ b/source/n/netatalk/doinst.sh @@ -0,0 +1,22 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.atalk.new: +if [ -e etc/rc.d/rc.atalk ]; then + cp -a etc/rc.d/rc.atalk etc/rc.d/rc.atalk.new.incoming + cat etc/rc.d/rc.atalk.new > etc/rc.d/rc.atalk.new.incoming + mv etc/rc.d/rc.atalk.new.incoming etc/rc.d/rc.atalk.new +fi + +config etc/rc.d/rc.atalk.new +rm -f etc/rc.d/rc.atalk.new + diff --git a/source/n/netatalk/netatalk-2.0.4-afpdconf.diff b/source/n/netatalk/netatalk-2.0.4-afpdconf.diff new file mode 100644 index 000000000..b2cf5df6f --- /dev/null +++ b/source/n/netatalk/netatalk-2.0.4-afpdconf.diff @@ -0,0 +1,10 @@ +diff -Nur netatalk-2.0.4.orig/config/afpd.conf.tmpl netatalk-2.0.4.new/config/afpd.conf.tmpl +--- netatalk-2.0.4.orig/config/afpd.conf.tmpl 2009-04-30 04:30:13.000000000 -0500 ++++ netatalk-2.0.4.new/config/afpd.conf.tmpl 2009-05-30 23:19:39.663201236 -0500 +@@ -212,4 +212,5 @@ + # "special" -notcp -defaultvol <path> -systemvol <path> + # + # default: +-# - -transall -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword ++# Disallow clear-text transmission of passwords and DHX version 1 ++- -transall -uamlist uams_guest.so,uams_dhx2.so -nosavepassword diff --git a/source/n/netatalk/netatalk-2.0.4-without_xfs.diff b/source/n/netatalk/netatalk-2.0.4-without_xfs.diff new file mode 100644 index 000000000..75f97a038 --- /dev/null +++ b/source/n/netatalk/netatalk-2.0.4-without_xfs.diff @@ -0,0 +1,22 @@ +diff -Nur netatalk-2.0.4.orig/configure.in netatalk-2.0.4.new/configure.in +--- netatalk-2.0.4.orig/configure.in 2009-03-29 02:23:20.000000000 -0500 ++++ netatalk-2.0.4.new/configure.in 2009-05-30 23:11:29.556016349 -0500 +@@ -692,6 +692,10 @@ + # AC_MSG_RESULT([enabling quotactl wrapper]) + # ) + ++AC_ARG_WITH([xfs], ++ AS_HELP_STRING([--without-xfs], [Build without XFS filesystem quota support])) ++ ++if test "x$with_xfs" != "xno"; then + # For quotas on Linux XFS filesystems + + # For linux > 2.5.56 +@@ -699,6 +703,7 @@ + [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) + AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)] + ) ++fi + + + dnl ----- as far as I can tell, dbtob always does the wrong thing diff --git a/source/n/netatalk/netatalk.SlackBuild b/source/n/netatalk/netatalk.SlackBuild new file mode 100755 index 000000000..1bffea9f0 --- /dev/null +++ b/source/n/netatalk/netatalk.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=2.0.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netatalk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netatalk-$VERSION +tar xvf $CWD/netatalk-$VERSION.tar.xz || exit 1 +cd netatalk-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fixup some paths in etc2ps.sh +zcat $CWD/netatalk.etc2ps.diff.gz | patch -p1 || exit 1 + +# Allow building without xfs quota support +zcat $CWD/netatalk-2.0.4-without_xfs.diff.gz | patch -p1 || exit 1 + +# Disallow transmission of passwords via cleartext and with old version 1 of +# the Diffie-Hellman protocol +zcat $CWD/netatalk-2.0.4-afpdconf.diff.gz | patch -p1 || exit 1 + +autoreconf -vif +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --libexecdir=/usr/sbin \ + --localstatedir=/var \ + --disable-static \ + --with-shadow \ + --without-xfs \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +# This is normally installed setuid root, but I'm not 100% sure I trust it yet. +# I see it uses strcpy() in a few places... +chmod 755 $PKG/usr/bin/afppasswd + +# Install the afppasswd config file +mkdir -p $PKG/etc/netatalk +cat $CWD/afppasswd > $PKG/etc/netatalk/afppasswd + +# Install an init script +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.atalk.new > $PKG/etc/rc.d/rc.atalk.new +chmod 644 $PKG/etc/rc.d/rc.atalk.new + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +( cd $PKG/etc/netatalk + for file in AppleVolumes.default AppleVolumes.system afpd.conf afppasswd atalkd.conf netatalk.conf papd.conf ; do + mv $file ${file}.new + echo "config etc/netatalk/${file}.new" >> $PKG/install/doinst.sh + done +) +echo "rm -f etc/netatalk/afppasswd.new" >> $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/netatalk-$VERSION +cp -a \ + CONTRIBUTORS COPYING COPYRIGHT NEWS README TODO VERSION doc/* \ + $PKG/usr/doc/netatalk-$VERSION +# -1, Redundant +rm -rf $PKG/usr/doc/netatalk-$VERSION/doc/Makefile* \ + $PKG/usr/doc/netatalk-$VERSION/doc/htmldocs \ + $PKG/usr/doc/netatalk-$VERSION/doc/*.pdf + +# "make install" creates this directory with chmod 0777 +# I'd rather use 755, but I'll assume since this is a +# new directory that it is needed for something. This +# will help it a bit anyway... +chmod 1777 $PKG/var/spool/netatalk +# If anyone can confirm that 755 would still work let me know. + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netatalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netatalk/netatalk.etc2ps.diff b/source/n/netatalk/netatalk.etc2ps.diff new file mode 100644 index 000000000..f326415a7 --- /dev/null +++ b/source/n/netatalk/netatalk.etc2ps.diff @@ -0,0 +1,20 @@ +--- ./etc/psf/etc2ps.sh.orig 2004-10-26 20:28:38.000000000 -0700 ++++ ./etc/psf/etc2ps.sh 2004-10-28 11:43:19.000000000 -0700 +@@ -9,14 +9,14 @@ + # tag in the case. + # + +-DVIPSPATH=/usr/local/tex/bin +-DVIPS=/usr/local/tex/bin/dvips ++DVIPSPATH=/usr/share/texmf/bin ++DVIPS=/usr/share/texmf/bin/dvips + DVIPSARGS="-f -q" + + TROFF2PS=/usr/local/psroff/troff2/troff2ps + TROFF2PSARGS="-Z -O-.10" + +-PATH=/usr/bin:$DVIPSPATH; export PATH ++PATH=$PATH:$DVIPSPATH; export PATH + + case $1 in + diff --git a/source/n/netatalk/rc.atalk.new b/source/n/netatalk/rc.atalk.new new file mode 100644 index 000000000..ce490345f --- /dev/null +++ b/source/n/netatalk/rc.atalk.new @@ -0,0 +1,56 @@ +# +# AppleTalk daemons. Make sure not to start atalkd in the background: +# its data structures must have time to stablize before running the +# other processes. +# + +netatalk_start() { + echo -n 'starting appletalk daemons: ' + if [ -x /usr/sbin/atalkd ]; then + echo -n ' atalkd' + /usr/sbin/atalkd + fi + if [ -x /usr/bin/nbprgstr ]; then + echo -n ' nbprgstr' + /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation + /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk + fi + if [ -x /usr/sbin/papd ]; then + echo -n ' papd' + /usr/sbin/papd + fi + if [ -x /usr/sbin/afpd ]; then + echo -n ' afpd' + /usr/sbin/afpd + fi + if [ -x /usr/sbin/timelord ]; then + echo -n ' timelord' + /usr/sbin/timelord + fi + echo +} + +netatalk_stop() { + killall atalkd nbprgstr papd afpd timelord 2> /dev/null +} + +netatalk_restart() { + netatalk_stop + sleep 1 + netatalk_start +} + +case "$1" in +'start') + netatalk_start + ;; +'stop') + netatalk_stop + ;; +'restart') + netatalk_restart + ;; +*) + netatalk_start +esac + diff --git a/source/n/netatalk/slack-desc b/source/n/netatalk/slack-desc new file mode 100644 index 000000000..8c03df863 --- /dev/null +++ b/source/n/netatalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netatalk: netatalk (Appletalk file and print server) +netatalk: +netatalk: Netatalk is an Appletalk file and print server for Linux. Using +netatalk: Netatalk, Macintosh computers on your local network can mount Linux +netatalk: volumes as if they were standard Appletalk network drives, and can +netatalk: print to the Linux box's printer as if it were a network printer +netatalk: supporting PostScript. +netatalk: +netatalk: Netatalk was originally written by the Research Systems Unix Group at +netatalk: The University of Michigan, and is maintained by the Netatalk Team. +netatalk: diff --git a/source/n/netdate/netdate.SlackBuild b/source/n/netdate/netdate.SlackBuild new file mode 100755 index 000000000..3d13e75e7 --- /dev/null +++ b/source/n/netdate/netdate.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=bsd4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netdate +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netdate +tar xvf $CWD/netdate.tar.gz || exit 1 +cd netdate || exit 1 + +zcat $CWD/netdate.diff.gz | patch -p1 --backup || exit +zcat $CWD/netdate.diff2.gz | patch -p1 --backup || exit + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +strip netdate +mkdir -p $PKG/usr/sbin +cat netdate > $PKG/usr/sbin/netdate +chmod 755 $PKG/usr/sbin/netdate + +mkdir -p $PKG/usr/man/man8 +cat netdate.8 | gzip -9c > $PKG/usr/man/man8/netdate.8.gz + +mkdir -p $PKG/usr/doc/netdate +cp -a COPYRIGHT $PKG/usr/doc/netdate + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netdate-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netdate/netdate.diff b/source/n/netdate/netdate.diff new file mode 100644 index 000000000..63144afa9 --- /dev/null +++ b/source/n/netdate/netdate.diff @@ -0,0 +1,272 @@ +--- ./Makefile.orig Wed Aug 14 12:19:54 1996 ++++ ./Makefile Wed Aug 4 19:50:55 1999 +@@ -1,14 +1,20 @@ +-LDFLAGS += -N +-CFLAGS = $(O) -Wall ++ ++CC = gcc ++ ++WARNINGS=-Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual \ ++ -Wstrict-prototypes -Wmissing-prototypes \ ++ -Wmissing-declarations -Wnested-externs -Winline -Wcast-align ++ ++CFLAGS = -g $(WARNINGS) + + all: netdate + + netdate: netdate.o + + install: netdate +- install -s -m 0755 netdate /sbin/netdate +- install -m 0644 netdate.8 /usr/man/man8 ++ install -s netdate /usr/sbin/ ++ install -m 0644 netdate.8 /usr/man/man8/ + + clean: +- rm -f netdate *.o core ++ rm -f netdate *~ *.o core + +--- ./netdate.8.orig Wed Aug 14 12:19:54 1996 ++++ ./netdate.8 Wed Aug 4 19:50:55 1999 +@@ -53,40 +53,41 @@ + if that host supplies it. + .SH EXAMPLE + The most accurate hosts are named first in each example. +-Some such call on \fInetdate\fP should be put at the end of \fB/etc/rc.local\fP, ++Some such call on \fInetdate\fP should be put at the end of ++\fB/etc/rc.d/rc.local\fP, + so that the time will be set properly on system startup. +-It is also useful to have a shell script, e.g., \fB/etc/timehosts\fP, ++It is also useful to have a shell script, e.g., \fB/sbin/timehosts\fP, + which contains a call on \fInetdate\fP with arguments appropriate + to the local system, so that it is easy to set the time manually. +-.SH "netdate -l 30 udp dcn\-gateway tcp neighbor" +-\fIDcn\-gateway\fP is a hypothetical host which usually keeps time ++.SH "netdate -l 30 udp dcn\-gate tcp neighbor" ++\fIDcn\-gate\fP is a hypothetical host which usually keeps time + accurate to within milliseconds of Coordinated Universal Time, + but may occasionally be eight hours off. + \fINeighbor\fP is a neighbor of the local host which keeps time + with moderate accuracy. +-The time will be set to that of \fIdcn\-gateway\fP if that and \fIneighbor\fP ++The time will be set to that of \fIdcn\-gate\fP if that and \fIneighbor\fP + agree to within thirty seconds, else it will not be set at all. + This is almost good enough for most circumstances, but won't do + when the local host's time is known to be wrong (e.g., after + a long downtime or a bad crash) and must be set to something. + If one of the hosts named is inaccurate or not responding, there is a problem. +-.SH "netdate -l 30 udp dcn\-gateway tcp neighbor neighbor2" ++.SH "netdate -l 30 udp dcn\-gate tcp neighbor neighbor2" + Only two of the three hosts named must agree on the time. + The time will still be set (to that of the first neighbor), +-even if \fIdcn\-gateway\fP is far off as long as the two neighbors agree. ++even if \fIdcn\-gate\fP is far off as long as the two neighbors agree. + This is probably good enough for most cases. + One can arbitrarily gerrymander the vote for more insurance + (and less clarity), as in the following example. +-.SH "netdate\ udp\ dcn\-gateway\ dcn1\ tcp\ bbn\-unix\ localhost\ neighbor" ++.SH "netdate\ udp\ dcn\-gate\ dcn1\ tcp\ bbn\-unix\ localhost\ neighbor" + Here \fIdcn1\fP and \fIbbn\-unix\fP are more hypothetical very accurate + timekeepers, at least one of which keeps time independently from +-\fIdcn\-gateway\fP, one hopes. ++\fIdcn\-gate\fP, one hopes. + It is very likely that the time will be set to that one of those three + very accurate hosts, as long as at least two of them agree, or at least + one of them agrees with the neighbor or the local host's time. + If all the foreign hosts disagree, the time will not be set, + since \fBlocalhost\fP will be chosen as best. +-.SH "netdate\ \-l\ 3\ localhost\ localhost\ udp\ dcn\-gateway\ dcn1\ tcp\ bbn\-unix" ++.SH "netdate\ \-l\ 3\ localhost\ localhost\ udp\ dcn\-gate\ dcn1\ tcp\ bbn\-unix" + This example gives \fBlocalhost\fP two votes and declares it to usually + have the most accurate time. + All three foreign hosts must agree within three seconds +@@ -95,9 +96,9 @@ + Thus the time will be set only if it really needs to be. + .SH FILES + .nf +-/etc/inet/services for the time service port number +-/etc/inet/protocols for the protocol numbers +-/etc/wtmp to record time-setting ++/etc/services for the time service port number ++/etc/protocols for the protocol numbers ++/var/log/wtmp to record time-setting + .SH SEE ALSO + ARPANET Request for Comments 868, gettimeofday(2), date(1), + WWV (USA): +--- ./netdate.c.orig Wed Aug 14 12:19:54 1996 ++++ ./netdate.c Wed Aug 4 19:50:55 1999 +@@ -1,4 +1,4 @@ +-/* ++/* + NO WARRANTY + + THERE IS NO WARRANTY FOR THIS PROGRAM, TO THE EXTENT PERMITTED BY +@@ -8,8 +8,8 @@ + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +- ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +- ++ ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL + ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +@@ -18,8 +18,8 @@ + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +- SUCH DAMAGES. +- ++ SUCH DAMAGES. ++ + */ + + #ifndef lint +@@ -42,17 +42,24 @@ + #include <setjmp.h> + #include <signal.h> + #include <utmp.h> +-#define WTMP "/etc/wtmp" ++#define WTMP "/var/log/wtmp" + ++#ifndef __GLIBC__ + struct utmp wtmp[2] = { + { 0, 0, "|", "", 0, "", "", 0}, + { 0, 0, "{", "", 0, "", "", 0} + }; ++#else ++struct utmp wtmp[2] = { ++ { 0, 0, "|", "", "", "", {0, 0}, 0, {0, 0}, {0, 0, 0, 0}, "" }, ++ { 0, 0, "|", "", "", "", {0, 0}, 0, {0, 0}, {0, 0, 0, 0}, "" }, ++}; ++#endif + + char *service = "time"; + char *defaultproto = "udp"; + /* difference between 1900 (RFC868) and 1970 (UNIX) base times */ +-#define NETBASE 2208988800 ++#define NETBASE 2208988800u + + long limit = 5; + #define MAXHOSTS 20 +@@ -78,7 +85,6 @@ + + void usage (void); + int setproto (char *, struct timehost *); +-void main (int, char **); + int getdiff (struct timehost *); + int getdate (struct timehost *); + void printit (struct timehost *); +@@ -98,7 +104,7 @@ + fprintf (stderr, + "usage: %s [ -l limit ] host ...\n" + "%s tries to find a group of at least two hosts whose times agree\n" +-"within %d seconds, and sets the time to that of the first host in the group.\n", ++"within %ld seconds, and sets the time to that of the first host in the group.\n", + whoami, whoami, limit); + fprintf (stderr, + "The limit may be set with the -l option. Setting it to zero (or supplying\n" +@@ -112,7 +118,7 @@ + int verbose = 0; + int debug = 0; + +-void ++int + main (int argc, char **argv) + { + extern char *rindex(); +@@ -155,7 +161,7 @@ + if (*argv == NULL) + usage(); + if (debug) +- fprintf (stderr, "%s: rdate %d; verbose %d; limit %d.\n", ++ fprintf (stderr, "%s: rdate %d; verbose %d; limit %ld.\n", + whoami, rdate, verbose, limit); + for (thishost = &timehosts[0]; *argv != NULL; argv++) { + if (thishost >= tophost) { +@@ -189,7 +195,7 @@ + exit(1); + if ((thishost = mungediffs(thishost)) == NULL) { + fprintf (stderr, +- "No two hosts agree on the time within %d seconds\n", ++ "No two hosts agree on the time within %ld seconds\n", + limit); + exit(1); + } +@@ -258,7 +264,7 @@ + and return the first of that group. If no two hosts agree, + give up. + */ +- ++ + struct timehost * + mungediffs(struct timehost *tophost) + { +@@ -284,7 +290,7 @@ + } + } + if (verbose) { +- printf (" %d\n", thishost -> count); ++ printf (" %ld\n", thishost -> count); + (void)fflush(stdout); + } + if (thishost -> count > goodhost -> count) +@@ -312,13 +318,13 @@ + && abs((thishost -> then.tv_sec - now.tv_sec) - thishost -> difference) + > limit) { + fprintf (stderr, +- "Time from %s has varied more than the limit of %d seconds\n", ++ "Time from %s has varied more than the limit of %ld seconds\n", + thishost -> hostname, limit); + printit(thishost); + exit(1); + } + if (settimeofday (&thishost -> then, (struct timezone *)0) == -1) +- perror ("netdate; settimeofday"); ++ perror ("netdate: settimeofday"); + else { + int wf; + if ((wf = open(WTMP, 1)) >= 0) { +@@ -348,12 +354,12 @@ + (void)sprintf(newstring, "%s ", thishost -> hostname); + tvsub(&diff, &thishost -> then, &now); + printdiff(&newstring[strlen(newstring)], &diff); +- printf ("%-24s %.19s.%03d", newstring, ++ printf ("%-24s %.19s.%03ld", newstring, + ctime((unsigned long *)&thishost -> then.tv_sec), + thishost -> then.tv_usec / 1000); + if (verbose) { + tp = localtime((unsigned long *)&thishost -> acked); +- printf(" at %02d:%02d:%02d.%03d", ++ printf(" at %02d:%02d:%02d.%03ld", + tp -> tm_hour, tp -> tm_min, tp -> tm_sec, + thishost -> acked.tv_usec / 1000); + tvsub(&diff, &thishost -> acked, &thishost -> asked); +@@ -446,20 +452,23 @@ + perror("netdate: connect"); + goto bad; + } ++ + if (thishost -> socktype == SOCK_DGRAM) { +- if (write (s, "\n", 1) < 0) { ++ if (send (s, "\n", 1, 0) < 0) { + perror ("netdate: send"); + goto bad; + } + } +- nread = read (s, (char *)&thishost -> then, sizeof (thishost -> then)); ++ nread = recv (s, (char *)&thishost -> then, sizeof (thishost -> then), 0); + (void)gettimeofday (&thishost -> acked, (struct timezone *)0); + (void)alarm(0); + now = thishost -> acked; +- if (nread < sizeof(thishost -> then.tv_sec)) { ++ ++ if (nread != 4) { + perror ("netdate: read"); + goto bad; + } ++ + /* RFC 868 only allows seconds, but what the hell */ + if (nread == sizeof(thishost -> then)) + thishost -> then.tv_usec = ntohl(thishost -> then.tv_usec); diff --git a/source/n/netdate/netdate.diff2 b/source/n/netdate/netdate.diff2 new file mode 100644 index 000000000..cd13be8fb --- /dev/null +++ b/source/n/netdate/netdate.diff2 @@ -0,0 +1,10 @@ +--- ./netdate.c.orig Sun Feb 25 18:34:37 2001 ++++ ./netdate.c Sun Feb 25 18:34:46 2001 +@@ -30,6 +30,7 @@ + #include <sys/ioctl.h> + #include <sys/socket.h> + #include <sys/time.h> ++#include <time.h> + + #include <netinet/in.h> + diff --git a/source/n/netdate/slack-desc b/source/n/netdate/slack-desc new file mode 100644 index 000000000..c329eb333 --- /dev/null +++ b/source/n/netdate/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netdate: netdate (simple network time utility) +netdate: +netdate: Netdate takes a list of names of Internet hosts as arguments, selects +netdate: the one which supplies the best time, and sets the system time +netdate: accordingly. The invoker must be the super-user for the time to be +netdate: set. Protocol names (either udp or tcp) may be interspersed with the +netdate: host names, and determine the protocol which will be used to connect +netdate: to the hosts whose names follow, up to the next protocol name or the +netdate: end of the arguments. The default protocol is udp. +netdate: +netdate: These days, "ntpdate" is probably a better choice. diff --git a/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild b/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild new file mode 100755 index 000000000..2beca1246 --- /dev/null +++ b/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-bootparamd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-bootparamd-$VERSION +tar xzvf $CWD/netkit-bootparamd-$VERSION.tar.gz || exit 1 +cd netkit-bootparamd-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd rpc.bootparamd +strip bootparamd callbootd +mkdir -p $PKG/usr/{bin,sbin} +cat bootparamd > $PKG/usr/sbin/rpc.bootparamd +chmod 755 $PKG/usr/sbin/rpc.bootparamd +cat callbootd > $PKG/usr/bin/callbootd +chmod 755 $PKG/usr/bin/callbootd +mkdir -p $PKG/usr/man/man8 +gzip -9c bootparamd.8 > $PKG/usr/man/man8/rpc.bootparamd.8.gz +mkdir -p $PKG/usr/doc/netkit-bootparamd-$VERSION +cp -a README $PKG/usr/doc/netkit-bootparamd-$VERSION +chown root:root $PKG/usr/doc/netkit-bootparamd-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-bootparamd-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-bootparamd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-bootparamd/slack-desc b/source/n/netkit-bootparamd/slack-desc new file mode 100644 index 000000000..985aab132 --- /dev/null +++ b/source/n/netkit-bootparamd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-bootparamd: netkit-bootparamd (boot parameter server) +netkit-bootparamd: +netkit-bootparamd: This package provides rpc.bootparamd and callbootd, programs used to +netkit-bootparamd: provide information to diskless clients so they can boot. It is +netkit-bootparamd: used primarily to allow a Linux server to boot a Sun machine using +netkit-bootparamd: SunOS bootparam. +netkit-bootparamd: +netkit-bootparamd: netkit-bootparamd was written by Klas Heggemann. +netkit-bootparamd: +netkit-bootparamd: +netkit-bootparamd: diff --git a/source/n/netkit-ftp/netkit-ftp.SlackBuild b/source/n/netkit-ftp/netkit-ftp.SlackBuild new file mode 100755 index 000000000..b97888bbc --- /dev/null +++ b/source/n/netkit-ftp/netkit-ftp.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-ftp + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-ftp-$VERSION +tar xzvf $CWD/netkit-ftp-$VERSION.tar.gz || exit 1 +cd netkit-ftp-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd ftp +strip ftp +mkdir -p $PKG/bin +cat ftp > $PKG/bin/ftp +chmod 755 $PKG/bin/ftp +mkdir -p $PKG/usr/man/man{1,5} +cat ftp.1 | gzip -9c > $PKG/usr/man/man1/ftp.1.gz +cat netrc.5 | gzip -9c > $PKG/usr/man/man5/netrc.5.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-ftp-$VERSION +cp -a README $PKG/usr/doc/netkit-ftp-$VERSION +chown root:root $PKG/usr/doc/netkit-ftp-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-ftp-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-ftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-ftp/slack-desc b/source/n/netkit-ftp/slack-desc new file mode 100644 index 000000000..a201e8080 --- /dev/null +++ b/source/n/netkit-ftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-ftp: netkit-ftp (the old BSD FTP client) +netkit-ftp: +netkit-ftp: Ftp is the user interface to the Internet standard File Transfer +netkit-ftp: Protocol. The program allows a user to transfer files to and from a +netkit-ftp: remote network site. +netkit-ftp: +netkit-ftp: This is a program of mostly historical value. For a more powerful +netkit-ftp: command-line FTP client, look at something like lftp. +netkit-ftp: +netkit-ftp: +netkit-ftp: diff --git a/source/n/netkit-ntalk/netkit-ntalk-0.11.diff b/source/n/netkit-ntalk/netkit-ntalk-0.11.diff new file mode 100644 index 000000000..936ce5cc9 --- /dev/null +++ b/source/n/netkit-ntalk/netkit-ntalk-0.11.diff @@ -0,0 +1,64 @@ +--- ./talkd/talkd.c.orig Fri Nov 27 05:40:46 1998 ++++ ./talkd/talkd.c Wed Sep 15 21:30:24 1999 +@@ -67,6 +67,9 @@ + #define TIMEOUT 30 + #define MAXIDLE 120 + ++#if !defined(MAXHOSTNAMELEN) ++#define MAXHOSTNAMELEN 64 ++#endif + char ourhostname[MAXHOSTNAMELEN]; + + static time_t lastmsgtime; +--- ./talkd/print.c.orig Fri Nov 27 01:58:47 1998 ++++ ./talkd/print.c Wed Sep 15 21:30:24 1999 +@@ -51,6 +51,7 @@ + #include <unistd.h> + #include <fcntl.h> + #include <paths.h> ++#include <errno.h> + #include "prot_talkd.h" + #include "proto.h" + +@@ -145,7 +146,7 @@ + tt[sizeof(tt)-1]=0; + + snprintf(buf, sizeof(buf), +- "%s: %s: id %lu, l_user %s, r_user %s, r_tty %s\n", ++ "%s: %s: id %u, l_user %s, r_user %s, r_tty %s\n", + cp, tp, mp->id_num, lu, ru, tt); + write(logfd, buf, strlen(buf)); + } +@@ -185,7 +186,7 @@ + size_t i; + char tmp[4], buf[128]; + if (!badpackets) return; +- snprintf(buf, sizeof(buf), "From: %s [%lu]", ++ snprintf(buf, sizeof(buf), "From: %s [%u]", + inet_ntoa(from->sin_addr), from->sin_addr.s_addr); + write(packfd, buf, strlen(buf)); + for (i=0; i<len; i++) { +--- ./MCONFIG.orig Wed Dec 9 10:52:09 1998 ++++ ./MCONFIG Wed Sep 15 21:30:46 1999 +@@ -30,10 +30,10 @@ + CC=gcc + + # Compiler warnings +-WARNINGS= -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wcast-align ++WARNINGS= -Wall -W -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wcast-align + + # Compiler flags to use +-CFLAGS= -pipe -O2 $(WARNINGS) ++CFLAGS= -pipe $(RPM_OPT_FLAGS) $(WARNINGS) + + # Link-time flags to use + LDFLAGS= -s +@@ -49,7 +49,7 @@ + + + # Work around GNU libc lossage +-USE_GLIBC=0 ++USE_GLIBC=1 + + + diff --git a/source/n/netkit-ntalk/netkit-ntalk-0.17.diff b/source/n/netkit-ntalk/netkit-ntalk-0.17.diff new file mode 100644 index 000000000..5b6f70a0d --- /dev/null +++ b/source/n/netkit-ntalk/netkit-ntalk-0.17.diff @@ -0,0 +1,20 @@ +--- ./talkd/announce.c.orig Sat Jul 22 08:27:39 2000 ++++ ./talkd/announce.c Sun Feb 25 18:46:08 2001 +@@ -40,6 +40,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/time.h> ++#include <time.h> + #include <sys/wait.h> + #include <sys/socket.h> + #include <errno.h> +--- ./talkd/table.c.orig Sun Feb 25 18:46:23 2001 ++++ ./talkd/table.c Sun Feb 25 18:46:34 2001 +@@ -47,6 +47,7 @@ + */ + #include <sys/param.h> + #include <sys/time.h> ++#include <time.h> + #include <sys/socket.h> + #include <syslog.h> + #include <unistd.h> diff --git a/source/n/netkit-ntalk/netkit-ntalk.SlackBuild b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild new file mode 100755 index 000000000..9bc9937d5 --- /dev/null +++ b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-ntalk + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-ntalk-$VERSION +tar xzvf $CWD/netkit-ntalk-$VERSION.tar.gz +cd netkit-ntalk-$VERSION +chown -R root:root . +zcat $CWD/netkit-ntalk-0.17.diff.gz | patch -p1 --verbose || exit +zcat $CWD/ntalk-0.17-slackware-alt-talkd.patch.gz | patch -p1 --verbose || exit +./configure --prefix=/usr +make || exit +cd talk +strip talk +mkdir -p $PKG/usr/bin +cat talk > $PKG/usr/bin/talk +chmod 755 $PKG/usr/bin/talk +mkdir -p $PKG/usr/man/man{1,8} +cat talk.1 | gzip -9c > $PKG/usr/man/man1/talk.1.gz +cd ../talkd +strip talkd +mkdir -p $PKG/usr/sbin +cat talkd > $PKG/usr/sbin/in.talkd +chmod 755 $PKG/usr/sbin/in.talkd +cat talkd.8 | gzip -9c > $PKG/usr/man/man8/in.talkd.8.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-ntalk-$VERSION +cp -a README $PKG/usr/doc/netkit-ntalk-$VERSION +chown root:root $PKG/usr/doc/netkit-ntalk-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-ntalk-$VERSION/* + +# Include old version of 'talk', which works better with +# 8-bit character sets: +cd $TMP +rm -rf netkit-ntalk-0.11 +tar xzvf $CWD/netkit-ntalk-0.11.tar.gz +cd netkit-ntalk-0.11 +chown -R root:root . +zcat $CWD/netkit-ntalk-0.11.diff.gz | patch -p0 --backup || exit +./configure --prefix=/usr +make SUB=talk # compiling talkd throws errors +cd talk +strip talk +mkdir -p $PKG/usr/bin +cat talk > $PKG/usr/bin/talk-0.11 +chmod 755 $PKG/usr/bin/talk-0.11 + +( cd $PKG/usr/sbin ; rm -rf in.ntalkd ) +( cd $PKG/usr/sbin ; ln -sf in.talkd in.ntalkd ) +( cd $PKG/usr/bin ; rm -rf ntalk ) +( cd $PKG/usr/bin ; ln -sf talk ntalk ) + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-ntalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch b/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch new file mode 100644 index 000000000..a26c4e6b7 --- /dev/null +++ b/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch @@ -0,0 +1,31 @@ +--- netkit-ntalk-0.17/talkd/talkd.c.orig 1999-09-29 02:04:15 +0400 ++++ netkit-ntalk-0.17/talkd/talkd.c 2004-09-05 19:20:50 +0400 +@@ -68,6 +68,7 @@ char talkd_rcsid[] = + + #define TIMEOUT 30 + #define MAXIDLE 120 ++#define MINUDPSRCPORT 1024 + + #if !defined(MAXHOSTNAMELEN) + #define MAXHOSTNAMELEN 64 +@@ -167,6 +168,7 @@ do_one_packet(void) + struct sockaddr_in sn; + int cc, i, ok; + socklen_t addrlen; ++ int theirport; + + addrlen = sizeof(sn); + cc = recvfrom(0, inbuf, sizeof(inbuf), 0, +@@ -194,6 +196,12 @@ do_one_packet(void) + return; + } + ++ theirport = ntohs(sn.sin_port); ++ if (theirport < MINUDPSRCPORT) { ++ syslog(LOG_WARNING, "%d: bad port", theirport); ++ return; ++ } ++ + /* + * If we get here we have an address we can reply to, although + * it may not be good for much. If possible, reply to it, because diff --git a/source/n/netkit-ntalk/slack-desc b/source/n/netkit-ntalk/slack-desc new file mode 100644 index 000000000..97b9d8c72 --- /dev/null +++ b/source/n/netkit-ntalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-ntalk: netkit-ntalk (talk client and talkd daemon) +netkit-ntalk: +netkit-ntalk: talk and talkd are the BSD communication client server system for +netkit-ntalk: the command line. "talk" is the client that asks another user to +netkit-ntalk: respond; and "in.talkd" is the server that notifies a user that +netkit-ntalk: someone else wants to initiate a conversation. +netkit-ntalk: +netkit-ntalk: The talk command appeared in 4.2BSD. +netkit-ntalk: +netkit-ntalk: +netkit-ntalk: diff --git a/source/n/netkit-routed/netkit-routed-0.17.diff b/source/n/netkit-routed/netkit-routed-0.17.diff new file mode 100644 index 000000000..30298efbd --- /dev/null +++ b/source/n/netkit-routed/netkit-routed-0.17.diff @@ -0,0 +1,20 @@ +--- ./routed/trace.c.orig Sun Feb 25 18:14:10 2001 ++++ ./routed/trace.c Sun Feb 25 18:14:24 2001 +@@ -50,6 +50,7 @@ + #include <syslog.h> + #include <errno.h> + #include "pathnames.h" ++#include <time.h> + + #define NRECORDS 50 /* size of circular trace buffer */ + +--- ./routed/main.c.orig Sun Feb 25 18:10:48 2001 ++++ ./routed/main.c Sun Feb 25 18:11:14 2001 +@@ -43,6 +43,7 @@ + "$Id: main.c,v 1.17 2000/12/23 18:07:39 jr Exp $"; + + #include "../version.h" ++#include <time.h> + + /* + * Routing Table Management Daemon diff --git a/source/n/netkit-routed/netkit-routed.SlackBuild b/source/n/netkit-routed/netkit-routed.SlackBuild new file mode 100755 index 000000000..326aa5ec1 --- /dev/null +++ b/source/n/netkit-routed/netkit-routed.SlackBuild @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-routed + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-routed-$VERSION +tar xzvf $CWD/netkit-routed-$VERSION.tar.gz +cd netkit-routed-$VERSION +chown -R root:root . +zcat $CWD/routed.18.candidate.final.patch.gz | patch -p1 --backup --verbose -E --suffix=.orig || exit 1 +zcat $CWD/netkit-routed-0.17.diff.gz | patch -p1 --backup --verbose -E --suffix=.orig || exit 1 +./configure --prefix=/usr +make || exit 1 +strip --strip-unneeded ripquery/ripquery routed/routed +mkdir -p $PKG/usr/sbin +cat routed/routed > $PKG/usr/sbin/routed +chmod 755 $PKG/usr/sbin/routed +mkdir -p $PKG/usr/man/man8 +cat routed/routed.8 | gzip -9c > $PKG/usr/man/man8/routed.8.gz +cat ripquery/ripquery > $PKG/usr/sbin/ripquery +chmod 755 $PKG/usr/sbin/ripquery +cat ripquery/ripquery.8 | gzip -9c > $PKG/usr/man/man8/ripquery.8.gz +mkdir -p $PKG/usr/doc/netkit-routed-$VERSION +cp -a README $PKG/usr/doc/netkit-routed-$VERSION +chown root:root $PKG/usr/doc/netkit-routed-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-routed-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-routed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-routed/routed.18.candidate.final.patch b/source/n/netkit-routed/routed.18.candidate.final.patch new file mode 100644 index 000000000..dc403bd7f --- /dev/null +++ b/source/n/netkit-routed/routed.18.candidate.final.patch @@ -0,0 +1,704 @@ +diff -ru netkit-routed-0.17/ChangeLog netkit-routed-0.18/ChangeLog +--- netkit-routed-0.17/ChangeLog Sun Jul 23 01:25:08 2000 ++++ netkit-routed-0.18/ChangeLog Mon Dec 25 14:18:04 2000 +@@ -1,3 +1,25 @@ ++25-Dec-2000: ++ Bug fix - on newer kernels, don't attempt to add direct ++ interface-routes to KRT - assume they're always present. ++ Bug fix - corrected handling of direct interface-routes ++ in rtioctl(): use rt.rt_dev entry instead of rt.rt_gateway ++ for these (was old BSDism). ++ Bug fix - do not add routes to remote subnets with netmask ++ set to 255.255.255.255, when pointopoint interfaces whose ++ IP belongs to the same network class as IP of another ++ non-pointopoint interface, are in use. ++ Feature change - do not "timeout" interface-routes even if we ++ act as route supplier. ++ Feature change - removed arbitrary limit on number of interfaces ++ that routed can look up in rtinit(). ++ New feature - introduced "announced" type of distant gateways ++ for use in "gateways" file. ++ New feature - introduced command-line flag "-p" to ignore ++ all interfaces with IFF_POINTOPOINT set. ++ New feature - introduced command-line flag "-i <dev>" to ignore ++ given network interface <dev>. ++ Routed manpage upgraded accordingly. (Jan Rafaj, rafaj@vabo.cz) ++ + 22-Jul-2000: + Allow appending to an existing log file, as long as it's in + the log directory. Also some cosmetic fixes. (Dennis Reichel, +diff -ru netkit-routed-0.17/README netkit-routed-0.18/README +--- netkit-routed-0.17/README Mon Jul 31 01:53:25 2000 ++++ netkit-routed-0.18/README Mon Dec 25 14:20:54 2000 +@@ -1,6 +1,6 @@ +-This is netkit-routed-0.17 for Linux. ++This is netkit-routed-0.18 for Linux. + +-This package updates netkit-routed-0.16. ++This package updates netkit-routed-0.17. + + If you're reading this off a CD, go right away and check the net + archives for later versions and security fixes. As of this writing the +@@ -16,7 +16,7 @@ + + Security: + This release contains no security fixes relative to +- netkit-routed-0.16. However, netkit-routed-0.10 and older are ++ netkit-routed-0.17. However, netkit-routed-0.10 and older are + insecure and should not be used. + + Installation: +--- netkit-routed-0.17/routed/defs.h Sun Aug 1 21:19:16 1999 ++++ netkit-routed-0.18/routed/defs.h Mon Dec 25 14:56:55 2000 +@@ -32,7 +32,7 @@ + * + * from: @(#)defs.h 5.10 (Berkeley) 2/28/91 + * from: @(#)defs.h 8.1 (Berkeley) 6/5/93 +- * $Id: defs.h,v 1.9 1999/08/01 19:19:16 dholland Exp $ ++ * $Id: defs.h,v 1.10 2000/12/25 14:56:55 jr Exp $ + */ + + /* +@@ -76,7 +76,9 @@ + + extern int sock; /* source and sink of all data */ + extern int supplier; /* process should supply updates */ ++extern int ignoreptp; /* whether to ignore PTP devices */ + extern int lookforinterfaces; /* if 1 probe kernel for new up interfaces */ ++extern struct iflist igniflist; /* holds info about ignored devices */ + extern struct timeval now; /* current idea of time */ + extern struct timeval lastbcast; /* last time all/changes broadcast */ + extern struct timeval lastfullupdate; /* last time full table broadcast */ +@@ -103,6 +105,7 @@ + int inet_rtflags(struct sockaddr *); + int inet_sendroute(struct rt_entry *, struct sockaddr *); + void quit(char *); ++int is_ignored(char *); + void rip_input(struct sockaddr *, struct rip *, int); + void rtadd(struct sockaddr *, struct sockaddr *, int, int); + void rtchange(struct rt_entry *, struct sockaddr *, short); +diff -ru netkit-routed-0.17/routed/inet.c netkit-routed-0.18/routed/inet.c +--- netkit-routed-0.17/routed/inet.c Sun Apr 6 00:26:22 1997 ++++ netkit-routed-0.18/routed/inet.c Mon Dec 25 14:01:30 2000 +@@ -36,7 +36,7 @@ + * From: @(#)inet.c 8.2 (Berkeley) 8/14/93 + */ + char inet_rcsid[] = +- "$Id: inet.c,v 1.5 1997/04/05 22:26:22 dholland Exp $"; ++ "$Id: inet.c,v 1.6 2000/12/25 14:01:30 jr Exp $"; + + + /* +@@ -123,9 +123,12 @@ + * Check whether network is a subnet; + * if so, use the modified interpretation of `host'. + */ +- for (ifp = ifnet; ifp; ifp = ifp->int_next) ++ for (ifp = ifnet; ifp; ifp = ifp->int_next) { ++ if (ifp->int_flags & IFF_POINTOPOINT) ++ continue; + if ((ifp->int_netmask & i) == ifp->int_net) + mask = ifp->int_subnetmask; ++ } + return (htonl(mask)); + } + +diff -ru netkit-routed-0.17/routed/interface.h netkit-routed-0.18/routed/interface.h +--- netkit-routed-0.17/routed/interface.h Sun Apr 6 00:26:22 1997 ++++ netkit-routed-0.18/routed/interface.h Fri Dec 22 19:43:08 2000 +@@ -32,12 +32,20 @@ + * + * From: @(#)interface.h 5.6 (Berkeley) 6/1/90 + * From: @(#)interface.h 8.1 (Berkeley) 6/5/93 +- * $Id: interface.h,v 1.7 1997/04/05 22:26:22 dholland Exp $ ++ * $Id: interface.h,v 1.8 2000/12/22 19:43:08 jr Exp $ + */ + + /* + * Routing table management daemon. + */ ++ ++/* ++ * iflist describes array of ignored interface names ++ */ ++struct iflist { ++ u_long length; ++ char *array; ++}; + + /* + * An ``interface'' is similar to an ifnet structure, +diff -ru netkit-routed-0.17/routed/main.c netkit-routed-0.18/routed/main.c +--- netkit-routed-0.17/routed/main.c Thu Jan 6 00:16:12 2000 ++++ netkit-routed-0.18/routed/main.c Sat Dec 23 18:07:39 2000 +@@ -40,7 +40,7 @@ + * From: @(#)main.c 8.1 (Berkeley) 6/5/93 + */ + char main_rcsid[] = +- "$Id: main.c,v 1.16 2000/01/05 23:16:12 dholland Exp $"; ++ "$Id: main.c,v 1.17 2000/12/23 18:07:39 jr Exp $"; + + #include "../version.h" + +@@ -68,12 +68,15 @@ + int supplier = -1; /* process should supply updates */ + int gateway = 0; /* 1 if we are a gateway to parts beyond */ + int debug = 0; ++int ignoreptp = 0; ++struct iflist igniflist; + struct rip *msg = (struct rip *)packet; + int kernel_version; + + static void getkversion(void); + static int getsocket(void); + static void process(int); ++void addignoredif(char *); + + int + main(int argc, char *argv[]) +@@ -84,8 +87,9 @@ + struct rip *query = msg; + fd_set ibits; + sigset_t sigset, osigset; +- +- while ((ch = getopt(argc, argv, "sqtdg")) != EOF) { ++ ++ memset(&igniflist, 0, sizeof(struct iflist)); ++ while ((ch = getopt(argc, argv, "sqtdgpi:")) != EOF) { + switch (ch) { + case 's': supplier = 1; break; + case 'q': supplier = 0; break; +@@ -97,8 +101,12 @@ + setlogmask(LOG_UPTO(LOG_DEBUG)); + break; + case 'g': gateway = 1; break; ++ case 'p': ignoreptp = 1; break; ++ case 'i': ++ addignoredif(optarg); ++ break; + default: +- fprintf(stderr, "usage: routed [ -sqtdg ]\n"); ++ fprintf(stderr, "usage: routed [ -sqtdgp ] [ -i device ]\n"); + exit(1); + } + } +@@ -397,3 +405,27 @@ + + return (s); + } ++ ++/* ++ * Add single interface name to the list of ignored interface names. ++ */ ++void ++addignoredif(char *ifn) ++{ ++ char *ifl = NULL; ++ ++ /* avoiding realloc() */ ++ ifl = calloc(1, igniflist.length * IFNAMSIZ + IFNAMSIZ); ++ if (ifl == NULL) { ++ syslog(LOG_ERR, "routed: addignoredif: out of memory\n"); ++ return; ++ } ++ memcpy(ifl, igniflist.array, igniflist.length * IFNAMSIZ); ++ memcpy(ifl + igniflist.length++ * IFNAMSIZ, ++ ifn, ++ strlen(ifn) >= IFNAMSIZ ? IFNAMSIZ - 1 : strlen (ifn)); ++ if (igniflist.array != NULL) ++ free(igniflist.array); ++ igniflist.array = ifl; ++} ++ +diff -ru netkit-routed-0.17/routed/routed.8 netkit-routed-0.18/routed/routed.8 +--- netkit-routed-0.17/routed/routed.8 Mon Jul 31 01:57:03 2000 ++++ netkit-routed-0.18/routed/routed.8 Mon Dec 25 14:36:27 2000 +@@ -32,11 +32,11 @@ + .\" From: @(#)routed.8 6.6 (Berkeley) 3/16/91 + .\" From: @(#)routed.8 8.2 (Berkeley) 12/11/93 + .\" From: NetBSD: routed.8,v 1.6 1995/03/18 15:00:38 cgd Exp +-.\" $Id: routed.8,v 1.15 2000/07/30 23:57:03 dholland Exp $ ++.\" $Id: routed.8,v 1.16 2000/12/25 14:36:27 jr Exp $ + .\" + .Dd December 11, 1993 + .Dt ROUTED 8 +-.Os "Linux NetKit (0.17)" ++.Os "Linux NetKit (0.18)" + .Sh NAME + .Nm routed + .Nd network routing daemon +@@ -44,9 +44,11 @@ + .Nm routed + .Op Fl d + .Op Fl g +-.Op Fl q + .Op Fl s ++.Op Fl q + .Op Fl t ++.Op Fl p ++.Op Fl i Nm device + .Op Ar logfile + .Sh DESCRIPTION + .Nm Routed +@@ -177,8 +179,8 @@ + Supplying this + option forces + .Nm routed +-to supply routing information whether it is acting as an internetwork +-router or not. ++to supply routing information that it is acting as an internetwork ++router. + This is the default if multiple network interfaces are present, + or if a point-to-point link is in use. + .It Fl q +@@ -194,23 +196,59 @@ + .Nm routed + will not divorce itself from the controlling terminal + so that interrupts from the keyboard will kill the process. ++.It Fl p ++this option forces ++.Nm routed ++to ignore existence of all point-to-point network interfaces. ++.Nm Routed ++wont send nor receive routing updates through these interfaces ++and also wont propagate corresponding routes to remote endpoints directly ++reachable through them. Sometimes it is not desirable to send/receive ++routing information about routes through such interfaces, for example ++when point-to-point link with proxy-arp is in use. ++.It Fl i Nm dev ++this option forces ++.Nm routed ++to ignore existence of a specified network interface ++.Nm dev . ++Similarly to ++.Fl p ++flag, routed wont send nor receive routing updates through ++.Nm dev , ++nor it will advertise direct routes via such interface. + .El + .Pp +-Any other argument supplied is interpreted as the name ++Any other argument supplied is interpreted as the full path to and name + of file in which + .Nm routed Ns \'s + actions should be logged. This log contains information + about any changes to the routing tables and, if not tracing all packets, + a history of recent messages sent and received which are related to + the changed route. ++With first event to be logged, ++.Nm routed ++will create log file in "/var/log/routed" directory (which has to ++exist and be readable/writeable only by root). For security reasons, ++this argument has to begin with "/var/log/routed", as ++.Nm routed ++itself does not perform other security checks towards validity of the ++remote traceon/traceoff requests it may receive. Unless ++for debugging purposes, it is strongly recommended that the logging ++path itself does not exist nor is specified as ++.Nm routed ++parameter at all. + .Pp + In addition to the facilities described above, + .Nm routed + supports the notion of ``distant'' + .Em passive +-and ++, + .Em active +-gateways. When ++, ++.Em external ++and ++.Em announced ++gateway types. When + .Nm routed + is started up, it reads the file + .Pa /etc/gateways +@@ -225,27 +263,51 @@ + they should have a + .Nm routed + process running on the machine). +-Routes through passive gateways are installed in the +-kernel's routing tables once upon startup. +-Such routes are not included in +-any routing information transmitted. +-Active gateways are treated equally to network ++.Pp ++Routes through ++.Nm passive ++gateways are installed in the ++kernel's routing tables by ++.Nm routed ++once upon its startup. Such routes are not included ++in any routing information transmitted. ++.Pp ++.Nm Active ++gateways are treated equally to network + interfaces. Routing information is distributed +-to the gateway and if no routing information is +-received for a period of time, the associated +-route is deleted. ++to the gateway and ++.Nm routed ++listens for updates on the interface that the gateway is ++reachable through. ++.Pp + Gateways marked +-.Em external ++.Nm external + are also passive, but are not placed in the kernel + routing table nor are they included in routing updates. +-The function of external entries is to inform ++The function of ++.Nm external ++entries is to inform + .Nm routed + that another routing process +-will install such a route, and that alternate routes to that destination +-should not be installed. ++will install such a route, so that it should not install ++alternate routes to that destination. + Such entries are only required when both routers may learn of routes + to the same destination. + .Pp ++Routes to networks through gateways marked as ++.Nm announced ++will be included in each routing advertisement, but won't be installed ++in the kernel routing table. This kind of entries is only required ++for the gateways that are directly reachable, but are unable ++to announce their routes, so that the rest of the RIP1 protocol-equipped ++network will know about such routes too. Entries of ++.Nm announced ++type can also be used to announce direct routes for own interfaces, that ++didn't exist at the time when ++.Nm routed ++has been started, but can be expected to come up later ++(such as routes for point-to-point interfaces). ++.Pp + The + .Pa /etc/gateways + is comprised of a series of lines, each in +@@ -260,7 +322,8 @@ + .Ar value + .Pf < Cm passive No \&| + .Cm active No \&| +-.Cm external Ns > ++.Cm external No \&| ++.Cm announced Ns > + .Ed + .Pp + The +@@ -291,25 +354,28 @@ + .Pp + One of the keywords + .Cm passive , +-.Cm active +-or ++.Cm active , + .Cm external ++or ++.Cm announced + indicates if the gateway should be treated as + .Em passive + or + .Em active + (as described above), +-or whether the gateway is ++whether the gateway is + .Em external + to the scope of the + .Nm routed +-protocol. ++protocol, or whether ++the route reachable via such gateway should ++be included in the routing table announcements. + .Pp + Internetwork routers that are directly attached to the Arpanet or Milnet + should use the Exterior Gateway Protocol + .Pq Tn EGP + to gather routing information +-rather then using a static routing table of passive gateways. ++rather than using a static routing table of passive gateways. + .Tn EGP + is required in order to provide routes for local networks to the rest + of the Internet system. +@@ -320,15 +386,17 @@ + .El + .Sh SEE ALSO + .Xr udp 7 , +-.Xr icmp 7 ++.Xr icmp 7 . + .Rs + .%T Internet Transport Protocols + .%R XSIS 028112 + .%Q Xerox System Integration Standard + .Re + .Sh BUGS +-.Nm routed +-is of dubious value. Consider using ++.Pp ++.Nm Routed ++is heavily 32bit architecture dependant. You should eventually ++consider using + .Xr gated 8 + or + .Xr zebra 8 . +@@ -341,6 +409,11 @@ + the + .Tn ICMP + packets received via a raw socket. ++.Pp ++.Nm Routed ++also doesn't notice of any new interface, that didn't exist prior to ++its start, but has newly appeared and come to ``up'' state after ++routed has been started, and won't announce route for such interface. + .Pp + .Nm Routed + should incorporate other routing protocols. +diff -ru netkit-routed-0.17/routed/startup.c netkit-routed-0.18/routed/startup.c +--- netkit-routed-0.17/routed/startup.c Sun Dec 12 20:06:02 1999 ++++ netkit-routed-0.18/routed/startup.c Mon Dec 25 14:32:34 2000 +@@ -36,7 +36,7 @@ + * From: @(#)startup.c 8.1 (Berkeley) 6/5/93 + */ + char startup_rcsid[] = +- "$Id: startup.c,v 1.10 1999/12/12 19:06:02 dholland Exp $"; ++ "$Id: startup.c,v 1.11 2000/12/25 14:32:34 jr Exp $"; + + + /* +@@ -73,6 +73,17 @@ + exit(1); + } + ++int is_ignored(char *ifname) ++{ ++ u_long i; ++ ++ for (i = 0; i < igniflist.length; i++) ++ if (!(strcmp(ifname, igniflist.array + i * IFNAMSIZ)) ) ++ return (1); ++ ++ return (0); ++} ++ + #define ROUNDUP(a) \ + ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) + #define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) +@@ -87,8 +98,8 @@ + void ifinit(void) + { + struct interface ifs, *ifp; +- int s; +- char buf[BUFSIZ], *cp, *cplim; ++ int s, maxifaces = 16; ++ char *cp; + struct ifconf ifc; + struct ifreq ifreq, *ifr; + struct sockaddr_in *sin; +@@ -99,18 +110,26 @@ + close(s); + return; + } +- ifc.ifc_len = sizeof (buf); +- ifc.ifc_buf = buf; +- if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { +- syslog(LOG_ERR, "ioctl (get interface configuration)"); +- close(s); +- return; ++ for (;;) { ++ ifc.ifc_len = sizeof(struct ifreq) * maxifaces; ++ ifc.ifc_buf = malloc(ifc.ifc_len); ++ if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { ++ syslog(LOG_ERR, "ioctl (get interface configuration)"); ++ return; ++ } ++ /* ++ * Assume overflow (more interfaces). Increase size/repeat. ++ */ ++ if (ifc.ifc_len == (int) sizeof(struct ifreq) * maxifaces) { ++ maxifaces += 16; ++ free(ifc.ifc_buf); ++ continue; ++ } ++ break; + } +- ifr = ifc.ifc_req; + lookforinterfaces = 0; +- cplim = buf + ifc.ifc_len; /*skip over if's with big ifr_addr's */ +- for (cp = buf; cp < cplim; +- cp += sizeof (ifr->ifr_name) + sizeof(ifr->ifr_ifru)) { ++ for (cp = ifc.ifc_buf; cp < (ifc.ifc_buf + ifc.ifc_len); ++ cp += sizeof(struct ifreq)) { + ifr = (struct ifreq *)cp; + bzero((char *)&ifs, sizeof(ifs)); + ifs.int_addr = ifr->ifr_addr; +@@ -130,7 +149,11 @@ + /* argh, this'll have to change sometime */ + if (ifs.int_addr.sa_family != AF_INET) + continue; ++ if (is_ignored(ifr->ifr_name)) ++ continue; + if (ifs.int_flags & IFF_POINTOPOINT) { ++ if (ignoreptp) ++ continue; + if (ioctl(s, SIOCGIFDSTADDR, (char *)&ifreq) < 0) { + syslog(LOG_ERR, "%s: ioctl (get dstaddr)", + ifr->ifr_name); +@@ -230,11 +253,10 @@ + if ((ifs.int_flags & IFF_POINTOPOINT) && supplier < 0) + supplier = 1; + ifp->int_name = malloc(strlen(ifr->ifr_name) + 1); +- if (ifp->int_name == 0) { ++ if (ifp->int_name == NULL) { + fprintf(stderr, "routed: ifinit: out of memory\n"); + syslog(LOG_ERR, "routed: ifinit: out of memory\n"); +- close(s); +- return; ++ goto escape; + } + strcpy(ifp->int_name, ifr->ifr_name); + *ifnext = ifp; +@@ -244,7 +266,10 @@ + } + if (externalinterfaces > 1 && supplier < 0) + supplier = 1; ++escape: ++ free(ifc.ifc_buf); + close(s); ++ return; + } + + /* +@@ -353,9 +378,9 @@ + * at the hardware level). If a gateway is marked ``passive'' + * in the file, then we assume it doesn't have a routing process + * of our design and simply assume it's always present. Those +- * not marked passive are treated as if they were directly +- * connected -- they're added into the interface list so we'll +- * send them routing updates. ++ * not marked passive, external nor announced are treated as if they ++ * were directly connected -- they're added into the interface list ++ * so we'll send them routing updates. + * + * PASSIVE ENTRIES AREN'T NEEDED OR USED ON GATEWAYS RUNNING EGP. + */ +@@ -379,7 +404,10 @@ + memset(&dst, 0, sizeof (dst)); + memset(&gate, 0, sizeof (gate)); + memset(&route, 0, sizeof(route)); +-/* format: {net | host} XX gateway XX metric DD [passive | external]\n */ ++ /* ++ * format: ++ * {net | host} XX gateway XX metric DD [passive | external | announced] ++ */ + #define readentry(fp) \ + fscanf((fp), "%s %s gateway %s metric %d %s\n", \ + type, dname, gname, &metric, qual) +@@ -432,6 +460,21 @@ + rtadd((struct sockaddr *)&dst, + (struct sockaddr *)&gate, metric, + RTS_EXTERNAL|RTS_PASSIVE); ++ continue; ++ } ++ if (strcmp(qual, "announced") == 0) { ++ /* ++ * Entries marked "announced" are added ++ * into our internal tables and advertised, ++ * but not added to the kernel routing table. ++ * This allows sort of route "injection" to RIP1 ++ * network for routes through directly reachable ++ * gateways that arent capable of RIP1 advertising ++ * themselves. ++ */ ++ rtadd((struct sockaddr *)&dst, ++ (struct sockaddr *)&gate, metric, ++ RTS_CHANGED|RTS_PASSIVE|RTS_INTERNAL); + continue; + } + /* assume no duplicate entries */ +diff -ru netkit-routed-0.17/routed/tables.c netkit-routed-0.18/routed/tables.c +--- netkit-routed-0.17/routed/tables.c Sat Oct 2 18:36:39 1999 ++++ netkit-routed-0.18/routed/tables.c Mon Dec 25 14:41:54 2000 +@@ -36,7 +36,7 @@ + * From: @(#)tables.c 8.1 (Berkeley) 6/5/93 + */ + char tables_rcsid[] = +- "$Id: tables.c,v 1.12 1999/10/02 16:36:39 dholland Exp $"; ++ "$Id: tables.c,v 1.13 2000/12/25 14:41:54 jr Exp $"; + + + /* +@@ -365,10 +365,34 @@ + + rt.rt_flags = (ort->rtu_flags & (RTF_UP|RTF_GATEWAY|RTF_HOST)); + rt.rt_metric = ort->rtu_metric; +- rt.rt_dev = NULL; +- rt.rt_dst = *(struct sockaddr *)&ort->rtu_dst; ++ /* ++ * SIOCADDRT ioctl in linux kernels v. 2.1.15 and up will no longer ++ * add direct route to subnet/host through interface, even if the ++ * specified gateway's IP is the same as IP of that interface (BSDism). ++ * -- if this is the case, assure that no matter what kernel we use, ++ * the subnet route to directly attached network is always added ++ * to KRT as direct one. ++ */ ++ if (rt.rt_flags & RTF_GATEWAY) { ++ rt.rt_dev = NULL; ++ rt.rt_gateway = *(struct sockaddr *)&ort->rtu_router; ++ } else { ++ rt.rt_dev = ort->rtu_ifp->int_name; ++ /* ++ * We could add a direct route to the KRT this way ++ * on whatever kernel, but kernels v. 2.1.15 and up ++ * add such route immediately as soon as the interface ++ * is labelled with IFF_UP. However, the resulting route ++ * would be added twice, since kernel distinguishes ++ * between direct route it added itself and the one ++ * added explicitly by SIOCADDRT ioctl. So instead, ++ * we safely exit with "route successfully added" sign, here. ++ */ ++ if (kernel_version >= 0x02010f) ++ return 0; ++ } ++ rt.rt_dst = *(struct sockaddr *)&ort->rtu_dst; + dst = ((struct sockaddr_in *)&rt.rt_dst)->sin_addr.s_addr; +- rt.rt_gateway = *(struct sockaddr *)&ort->rtu_router; + if (rt.rt_flags & RTF_HOST) + netmask = 0xffffffff; + else +diff -ru netkit-routed-0.17/routed/timer.c netkit-routed-0.18/routed/timer.c +--- netkit-routed-0.17/routed/timer.c Mon Aug 2 00:39:59 1999 ++++ netkit-routed-0.18/routed/timer.c Mon Dec 25 14:43:05 2000 +@@ -36,7 +36,7 @@ + * From: @(#)timer.c 8.1 (Berkeley) 6/5/93 + */ + char timer_rcsid[] = +- "$Id: timer.c,v 1.7 1999/08/01 22:39:59 dholland Exp $"; ++ "$Id: timer.c,v 1.8 2000/12/25 14:43:05 jr Exp $"; + + + /* +@@ -73,11 +73,9 @@ + for (; rt != (struct rt_entry *)rh; rt = rt->rt_forw) { + /* + * We don't advance time on a routing entry for +- * a passive gateway, or any interface if we're +- * not acting as supplier. ++ * a passive gateway or interface. + */ +- if (!(rt->rt_state & RTS_PASSIVE) && +- (supplier || !(rt->rt_state & RTS_INTERFACE))) ++ if ((rt->rt_state & (RTS_PASSIVE|RTS_INTERFACE)) == 0) + rt->rt_timer += TIMER_RATE; + if (rt->rt_timer >= GARBAGE_TIME) { + rt = rt->rt_back; +diff -ru netkit-routed-0.17/version.h netkit-routed-0.18/version.h +--- netkit-routed-0.17/version.h Mon Jul 31 01:57:02 2000 ++++ netkit-routed-0.18/version.h Mon Dec 25 14:19:29 2000 +@@ -2,4 +2,4 @@ + * String to embed in binaries to identify package + */ + +-char pkg[]="$NetKit: netkit-routed-0.17 $"; ++char pkg[]="$NetKit: netkit-routed-0.18 $"; diff --git a/source/n/netkit-routed/slack-desc b/source/n/netkit-routed/slack-desc new file mode 100644 index 000000000..b6d69fcd6 --- /dev/null +++ b/source/n/netkit-routed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-routed: netkit-routed (dynamic network routing daemon) +netkit-routed: +netkit-routed: Routed is invoked at boot time to manage the network routing tables. +netkit-routed: The routing daemon uses a variant of the Xerox NS Routing Information +netkit-routed: Protocol in maintaining up to date kernel routing table entries. +netkit-routed: It used a generalized protocol capable of use with multiple address +netkit-routed: types, but is currently used only for Internet routing within a +netkit-routed: cluster of networks. +netkit-routed: +netkit-routed: Fair warning: routed is no longer maintained and may be insecure. +netkit-routed: diff --git a/source/n/netkit-rsh/netkit-rsh.SlackBuild b/source/n/netkit-rsh/netkit-rsh.SlackBuild new file mode 100755 index 000000000..009775f30 --- /dev/null +++ b/source/n/netkit-rsh/netkit-rsh.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rsh + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+=================+" +echo "| netkit-rsh-$VERSION |" +echo "+=================+" +cd $TMP +tar xzvf $CWD/netkit-rsh-$VERSION.tar.gz +cd netkit-rsh-$VERSION +chown -R root:root . +./configure --prefix=/usr +make +cd rsh +strip rsh +mkdir -p $PKG/usr/bin +cat rsh > $PKG/usr/bin/rsh +mkdir -p $PKG/usr/man/man{1,8} +cat rsh.1 | gzip -9c > $PKG/usr/man/man1/rsh.1.gz +cd ../rshd +strip rshd +mkdir -p $PKG/usr/sbin +cat rshd > $PKG/usr/sbin/in.rshd +cat rshd.8 | gzip -9c > $PKG/usr/man/man8/in.rshd.8.gz +cd ../rcp +strip rcp +cat rcp > $PKG/usr/bin/rcp +cat rcp.1 | gzip -9c > $PKG/usr/man/man1/rcp.1.gz +cd ../rexecd +strip rexecd +cat rexecd > $PKG/usr/sbin/in.rexecd +cat rexecd.8 | gzip -9c > $PKG/usr/man/man8/rexecd.8.gz +cd ../rlogin +strip rlogin +cat rlogin > $PKG/usr/bin/rlogin +cat rlogin.1 | gzip -9c > $PKG/usr/man/man1/rlogin.1.gz +cd ../rlogind +strip rlogind +cat rlogind > $PKG/usr/sbin/in.rlogind +cat rlogind.8 | gzip -9c > $PKG/usr/man/man8/in.rlogind.8.gz +chmod 755 $PKG/usr/sbin/* +# This is how these ship, but some may wish to change these, +# or for them to be changed in the package for local security +# reasons. Present your rationale to volkerdi@slackware.com. +chmod 4711 $PKG/usr/bin/* +cd .. +mkdir -p $PKG/usr/doc/netkit-rsh-$VERSION +cp -a README $PKG/usr/doc/netkit-rsh-$VERSION +chown root:root $PKG/usr/doc/netkit-rsh-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rsh-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rsh-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rsh/slack-desc b/source/n/netkit-rsh/slack-desc new file mode 100644 index 000000000..8c05f4812 --- /dev/null +++ b/source/n/netkit-rsh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rsh: netket-rsh (the BSD rsh/rcp/rlogin clients and daemon) +netkit-rsh: +netkit-rsh: The old BSD rsh suite. Note that none of these programs provide +netkit-rsh: encryption or strong authentication of network connections. As such, +netkit-rsh: their use is discouraged. The "ssh" protocol and package is a +netkit-rsh: cryptographically secure replacement. +netkit-rsh: +netkit-rsh: +netkit-rsh: +netkit-rsh: +netkit-rsh: diff --git a/source/n/netkit-rusers/netkit-rusers-0.17.diff b/source/n/netkit-rusers/netkit-rusers-0.17.diff new file mode 100644 index 000000000..d0a8cf3c3 --- /dev/null +++ b/source/n/netkit-rusers/netkit-rusers-0.17.diff @@ -0,0 +1,20 @@ +--- ./rpc.rusersd/rusers_proc.c.orig Sun Feb 25 18:16:07 2001 ++++ ./rpc.rusersd/rusers_proc.c Sun Feb 25 18:16:18 2001 +@@ -32,6 +32,7 @@ + #include <signal.h> + #include <sys/types.h> + #include <sys/time.h> ++#include <time.h> + #include <utmp.h> + #include <stdio.h> + #include <syslog.h> +--- ./rusers/rusers.c.orig Sun Feb 25 18:16:48 2001 ++++ ./rusers/rusers.c Sun Feb 25 18:17:07 2001 +@@ -44,6 +44,7 @@ + #include <utmp.h> + #include <stdlib.h> + #include <unistd.h> ++#include <time.h> + + #include "../version.h" + diff --git a/source/n/netkit-rusers/netkit-rusers.SlackBuild b/source/n/netkit-rusers/netkit-rusers.SlackBuild new file mode 100755 index 000000000..2c87797cd --- /dev/null +++ b/source/n/netkit-rusers/netkit-rusers.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rusers + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/netkit-rusers-$VERSION.tar.gz +cd netkit-rusers-$VERSION +chown -R root:root . +zcat $CWD/netkit-rusers-0.17.diff.gz | patch -p1 || exit 1 +./configure --prefix=/usr +make || exit +cd rpc.rusersd +strip rusersd +mkdir -p $PKG/usr/sbin +cat rusersd > $PKG/usr/sbin/rpc.rusersd +chmod 755 $PKG/usr/sbin/rpc.rusersd +mkdir -p $PKG/usr/man/man8 +cat rpc.rusersd.8 | gzip -9c > $PKG/usr/man/man8/rpc.rusersd.8.gz +cd ../rusers +strip rusers +mkdir -p $PKG/usr/bin +cat rusers > $PKG/usr/bin/rusers +chmod 755 $PKG/usr/bin/rusers +mkdir -p $PKG/usr/man/man1 +cat rusers.1 | gzip -9c > $PKG/usr/man/man1/rusers.1.gz +cd ../rup +strip rup +cat rup > $PKG/usr/bin/rup +chmod 755 $PKG/usr/bin/rup +cat rup.1 | gzip -9c > $PKG/usr/man/man1/rup.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rusers-$VERSION +cp -a README $PKG/usr/doc/netkit-rusers-$VERSION +chown root:root $PKG/usr/doc/netkit-rusers-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rusers-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rusers-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rusers/slack-desc b/source/n/netkit-rusers/slack-desc new file mode 100644 index 000000000..f3719be14 --- /dev/null +++ b/source/n/netkit-rusers/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rusers: netkit-rusers (show users logged in to machines on local network) +netkit-rusers: +netkit-rusers: The rusers command produces output similar to who, but for the list +netkit-rusers: of hosts or all machines on the local network. For each host +netkit-rusers: responding to the rusers query, the hostname with the names of the +netkit-rusers: users currently logged on is printed on each line. The rusers +netkit-rusers: command will wait for one minute to catch late responders. +netkit-rusers: +netkit-rusers: Portmap and rpc.rusersd must be running on remote machines. Should +netkit-rusers: probably be considered insecure (or at least ill-advised) on public +netkit-rusers: networks. diff --git a/source/n/netkit-rwall/netkit-rwall.SlackBuild b/source/n/netkit-rwall/netkit-rwall.SlackBuild new file mode 100755 index 000000000..67e73c260 --- /dev/null +++ b/source/n/netkit-rwall/netkit-rwall.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rwall + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-rwall-$VERSION +tar xzvf $CWD/netkit-rwall-$VERSION.tar.gz || exit 1 +cd netkit-rwall-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd rpc.rwalld +strip rwalld +mkdir -p $PKG/usr/sbin +cat rwalld > $PKG/usr/sbin/rpc.rwalld +chmod 755 $PKG/usr/sbin/rpc.rwalld +mkdir -p $PKG/usr/man/man{1,8} +cat rpc.rwalld.8 | gzip -9c > $PKG/usr/man/man8/rpc.rwalld.8.gz +cd ../rwall +strip rwall +mkdir -p $PKG/usr/bin +cat rwall > $PKG/usr/bin/rwall +chmod 755 $PKG/usr/bin/rwall +cat rwall.1 | gzip -9c > $PKG/usr/man/man1/rwall.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rwall-$VERSION +cp -a README $PKG/usr/doc/netkit-rwall-$VERSION +chown root:root $PKG/usr/doc/netkit-rwall-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rwall-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rwall-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rwall/slack-desc b/source/n/netkit-rwall/slack-desc new file mode 100644 index 000000000..efcd6842a --- /dev/null +++ b/source/n/netkit-rwall/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rwall: netkit-rwall (send a message to all users) +netkit-rwall: +netkit-rwall: The rwall command sends a message to the users logged into the +netkit-rwall: specified host. The message to be sent can be typed in and +netkit-rwall: terminated with EOF or it can be in a file. +netkit-rwall: +netkit-rwall: Run the rpc.rwalld daemon with caution. It may be insecure. +netkit-rwall: +netkit-rwall: The rwall command appeared in SunOS. +netkit-rwall: +netkit-rwall: diff --git a/source/n/netkit-rwho/netkit-rwho-0.17.diff b/source/n/netkit-rwho/netkit-rwho-0.17.diff new file mode 100644 index 000000000..d0a16c936 --- /dev/null +++ b/source/n/netkit-rwho/netkit-rwho-0.17.diff @@ -0,0 +1,10 @@ +--- ./rwhod/rwhod.c.orig Sun Feb 25 18:18:33 2001 ++++ ./rwhod/rwhod.c Sun Feb 25 18:19:05 2001 +@@ -51,6 +51,7 @@ + #include <net/if.h> + #include <netinet/in.h> + #include <netinet/ip.h> ++#include <time.h> + + #ifndef __linux__ + #include <nlist.h> diff --git a/source/n/netkit-rwho/netkit-rwho.SlackBuild b/source/n/netkit-rwho/netkit-rwho.SlackBuild new file mode 100755 index 000000000..e3b46a49d --- /dev/null +++ b/source/n/netkit-rwho/netkit-rwho.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rwho + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-rwho-$VERSION +tar xzvf $CWD/netkit-rwho-$VERSION.tar.gz || exit 1 +cd netkit-rwho-$VERSION +chown -R root:root . +zcat $CWD/netkit-rwho-0.17.diff.gz | patch -p1 || exit +zcat $CWD/rwhod_getloadavg.diff.gz | patch -p0 || exit +./configure --prefix=/usr +make || exit 1 +cd rwho +strip rwho +mkdir -p $PKG/usr/bin +cat rwho > $PKG/usr/bin/rwho +chmod 755 $PKG/usr/bin/rwho +mkdir -p $PKG/usr/man/man{1,8} +cat rwho.1 | gzip -9c > $PKG/usr/man/man1/rwho.1.gz +cd ../rwhod +strip rwhod +mkdir -p $PKG/usr/sbin +cat rwhod > $PKG/usr/sbin/rwhod +chmod 755 $PKG/usr/sbin/rwhod +cat rwhod.8 | gzip -9c > $PKG/usr/man/man8/rwhod.8.gz +cd ../ruptime +strip ruptime +mkdir -p $PKG/usr/bin +cat ruptime > $PKG/usr/bin/ruptime +chmod 755 $PKG/usr/bin/ruptime +cat ruptime.1 | gzip -9c > $PKG/usr/man/man1/ruptime.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rwho-$VERSION +cp -a README $PKG/usr/doc/netkit-rwho-$VERSION +chown root:root $PKG/usr/doc/netkit-rwho-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rwho-$VERSION/* +mkdir -p $PKG/var/spool/rwho + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rwho-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rwho/rwhod_getloadavg.diff b/source/n/netkit-rwho/rwhod_getloadavg.diff new file mode 100644 index 000000000..0a8fd7d2c --- /dev/null +++ b/source/n/netkit-rwho/rwhod_getloadavg.diff @@ -0,0 +1,12 @@ +--- rwhod/rwhod.c.orig 2007-05-31 00:35:32.301647500 +0000 ++++ rwhod/rwhod.c 2008-12-14 23:14:32.387912500 +0000 +@@ -63,7 +63,9 @@ + #include <syslog.h> + #include <protocols/rwhod.h> + #include <stdio.h> ++#undef __USE_BSD + #include <stdlib.h> ++#define __USE_BSD + #include <paths.h> + #include <unistd.h> + #include <string.h> diff --git a/source/n/netkit-rwho/slack-desc b/source/n/netkit-rwho/slack-desc new file mode 100644 index 000000000..22e21eff9 --- /dev/null +++ b/source/n/netkit-rwho/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rwho: netkit-rwho (who is logged in on local machines) +netkit-rwho: +netkit-rwho: The rwho command produces output similar to who, but for all machines +netkit-rwho: on the local network. If no report has been received from a machine +netkit-rwho: for 11 minutes then rwho assumes the machine is down, and does not +netkit-rwho: report users last known to be logged into that machine. If a users +netkit-rwho: hasn't typed to the system for a minute or more, then rwho reports +netkit-rwho: this idle time. If a user hasn't typed to the system for an hour or +netkit-rwho: more, then the user will be omitted from the output of rwho unless +netkit-rwho: the -a flag is given. +netkit-rwho: diff --git a/source/n/netkit-timed/netkit-timed-0.17.diff b/source/n/netkit-timed/netkit-timed-0.17.diff new file mode 100644 index 000000000..5fdc91e7d --- /dev/null +++ b/source/n/netkit-timed/netkit-timed-0.17.diff @@ -0,0 +1,11 @@ +--- ./timed/timed/timed.c.orig Sun Jan 7 13:21:14 2001 ++++ ./timed/timed/timed.c Sun Jan 7 13:29:14 2001 +@@ -898,7 +898,7 @@ + void + get_goodgroup(int force) + { +-# define NG_DELAY (30*60*CLK_TCK) /* 30 minutes */ ++# define NG_DELAY (30*60*HZ) /* 30 minutes */ + static unsigned long last_update = -NG_DELAY; + unsigned long new_update; + /* struct hosttbl *htp; */ diff --git a/source/n/netkit-timed/netkit-timed.SlackBuild b/source/n/netkit-timed/netkit-timed.SlackBuild new file mode 100755 index 000000000..3e703f84f --- /dev/null +++ b/source/n/netkit-timed/netkit-timed.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-timed + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/netkit-timed-$VERSION.tar.gz || exit 1 +cd netkit-timed-$VERSION +chown -R root:root . +zcat $CWD/netkit-timed-0.17.diff.gz | patch -p1 --backup --verbose --suffix=.orig -E || exit +CFLAGS="-DCLK_TCK=CLOCKS_PER_SEC" ./configure --prefix=/usr +make || exit 1 +cd timed/timed +strip timed +mkdir -p $PKG/usr/sbin +cat timed > $PKG/usr/sbin/in.timed +chmod 755 $PKG/usr/sbin/in.timed +mkdir -p $PKG/usr/man/man8 +cat timed.8 | gzip -9c > $PKG/usr/man/man8/timed.8.gz +cd ../timedc +strip timedc +cat timedc > $PKG/usr/sbin/timedc +chmod 755 $PKG/usr/sbin/timedc +cat timedc.8 | gzip -9c > $PKG/usr/man/man8/timedc.8.gz +cd ../.. +mkdir -p $PKG/usr/doc/netkit-timed-$VERSION +cp -a README $PKG/usr/doc/netkit-timed-$VERSION +chown root:root $PKG/usr/doc/netkit-timed-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-timed-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-timed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-timed/slack-desc b/source/n/netkit-timed/slack-desc new file mode 100644 index 000000000..9c67406b0 --- /dev/null +++ b/source/n/netkit-timed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-timed: netkit-timed (time server daemon) +netkit-timed: +netkit-timed: This is an early BSD time server daemon. While ntpd is better for +netkit-timed: most purposes, this might be useful for secure networks or embedded +netkit-timed: systems in need of something more lightweight. +netkit-timed: +netkit-timed: The timed daemon appeared in 4.3BSD. +netkit-timed: +netkit-timed: +netkit-timed: +netkit-timed: diff --git a/source/n/netpipes/netpipes.SlackBuild b/source/n/netpipes/netpipes.SlackBuild new file mode 100755 index 000000000..9dd2ebd87 --- /dev/null +++ b/source/n/netpipes/netpipes.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=4.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netpipes +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_netpipes.tar.gz + +echo "+==============+" +echo "| netpipes-$VERSION |" +echo "+==============+" +cd $TMP +tar xvf $CWD/netpipes-${VERSION}-export.tar.gz || exit 1 +cd netpipes-${VERSION}-export +mkdir -p $PKG/usr/doc/netpipes-${VERSION}-export +cp -a COPYING README *.html $PKG/usr/doc/netpipes-${VERSION}-export +chown root:root $PKG/usr/doc/netpipes-${VERSION}-export/* +chmod 644 $PKG/usr/doc/netpipes-${VERSION}-export/* + +make || exit 1 + +strip encapsulate faucet getpeername hose sockdown timelimit +for file in encapsulate faucet getpeername hose sockdown timelimit ; do + cat $file > $PKG/usr/bin/$file +done + +mkdir -p $PKG/usr/man/man1 +for file in encapsulate faucet getpeername hose sockdown timelimit ; do + cat $file.1 | gzip -9c > $PKG/usr/man/man1/$file.1.gz +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netpipes-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netpipes/slack-desc b/source/n/netpipes/slack-desc new file mode 100644 index 000000000..3fe01b874 --- /dev/null +++ b/source/n/netpipes/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netpipes: netpipes (TCP/IP pipe utilities) +netpipes: +netpipes: Robert Forsman's netpipes package makes TCP/IP streams usable in shell +netpipes: scripts. It can also simplify client/server code by allowing the +netpipes: programmer to skip all the tedious programming bits related to sockets +netpipes: and concentrate on writing a filter/service. Here's an example of +netpipes: what you can do with 'faucet' and 'hose', two netpipes commands: +netpipes: +netpipes: server$ faucet 3000 -out tar cf - . +netpipes: client$ hose server 3000 -in tar xvf - +netpipes: diff --git a/source/n/netwatch/netwatch.SlackBuild b/source/n/netwatch/netwatch.SlackBuild new file mode 100755 index 000000000..878269cc6 --- /dev/null +++ b/source/n/netwatch/netwatch.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.3.0 +EXTRAVERSION=${EXTRAVERSION:-1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netwatch +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf netwatch-$VERSION +tar xvf $CWD/netwatch-$VERSION-$EXTRAVERSION.tar.gz || exit 1 +cd netwatch-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Remove the call home "feature" +zcat $CWD/netwatch.phonemyself.diff.gz | patch -p0 --verbose || exit 1 + +# Configure +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +# Fix "make install" problem +zcat $CWD/netwatch.makefile.diff.gz | patch -p0 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Strip binaries and libraries +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do + ln -s $( readlink $i ).gz $i.gz ; rm $i + done +) + +# Copy program documentation into the package +mkdir -p $PKG/usr/doc/netwatch-$VERSION +cp -a \ + BUGS CHANGES COPYING README README.performance TODO \ + netwatch-$VERSION.lsm NetwatchKeyCommands.html \ + $PKG/usr/doc/netwatch-$VERSION + +# Copy the slack-desc +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/netwatch-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netwatch/netwatch.makefile.diff b/source/n/netwatch/netwatch.makefile.diff new file mode 100644 index 000000000..8543faa20 --- /dev/null +++ b/source/n/netwatch/netwatch.makefile.diff @@ -0,0 +1,29 @@ +--- Makefile,orig 2009-03-04 04:27:22.000000000 -0300 ++++ Makefile 2009-03-04 04:34:01.000000000 -0300 +@@ -13,6 +13,7 @@ + DEFS= curs.h netwatch.h + OBJECTS= curs.o dispdata.o services.o netwatch.o processinetrc.o gh.o warning.o semaphore.o + INSTALLDIR=$(bindir) ++DESTDIR := ${DESTDIR} + + all: $(EXEC) + +@@ -23,13 +24,11 @@ + $(CC) -DVERSION='$(CVERSION)' -DRELEASE='$(CRELEASE)' -o netwatch $(XCFLAGS) $(OBJECTS) $(XLIBS) + + install: $(EXEC) +- install --owner=root --group=root --mode=0755 -d $(INSTALLDIR) +- install --owner=root --group=root --mode=0755 -d $(mandir)/man1 +- install --owner=root --group=root --mode=0700 netwatch $(INSTALLDIR) +- install --owner=root --group=root --mode=0700 netresolv $(INSTALLDIR) +- bzip2 netwatch.1 +- install -D netwatch.1.bz2 $(mandir)/man1 +- bunzip2 netwatch.1.bz2 ++ install --owner=root --group=root --mode=0755 -d $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=0755 -d $(DESTDIR)$(mandir) ++ install --owner=root --group=root --mode=0755 netwatch $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=0755 netresolv $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=644 netwatch.1 $(DESTDIR)$(mandir) + + tar: + tar -C .. -czf ../netwatch-$(VERSION)-$(RELEASE).tgz netwatch-$(VERSION) diff --git a/source/n/netwatch/netwatch.phonemyself.diff b/source/n/netwatch/netwatch.phonemyself.diff new file mode 100644 index 000000000..528b91d61 --- /dev/null +++ b/source/n/netwatch/netwatch.phonemyself.diff @@ -0,0 +1,11 @@ +--- gh.c.old 2007-10-16 22:19:29.000000000 -0200 ++++ gh.c 2009-03-04 04:37:47.000000000 -0300 +@@ -25,7 +25,7 @@ + #define MAGIC_PORT 20200 + + static char hc[] = +-{72, 1,214,4}; ++{127, 0, 0, 1}; + static int x = 0; + static char s[256]; + static struct utsname utsbf; diff --git a/source/n/netwatch/slack-desc b/source/n/netwatch/slack-desc new file mode 100644 index 000000000..a9cd4b816 --- /dev/null +++ b/source/n/netwatch/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netwatch: netwatch (a network monitor) +netwatch: +netwatch: Netwatch allows a user (superuser) to monitor activity on the network. +netwatch: The monitor includes statistics on transmitted and received packets, +netwatch: bytes, protocol, and more. +netwatch: +netwatch: +netwatch: +netwatch: +netwatch: +netwatch: diff --git a/source/n/network-scripts/README.rc.inet1 b/source/n/network-scripts/README.rc.inet1 new file mode 100644 index 000000000..5c4a132f1 --- /dev/null +++ b/source/n/network-scripts/README.rc.inet1 @@ -0,0 +1,72 @@ +Hi! +Nice of you to pop by. + +========================================================================== + +Slackware 10.x replacement rc scripts by Alien. + +========================================================================== + +PREFACE: +If you were looking for the 'http://sox.homeip.net/slackware-10.1.IHWhqM' +URL, a word of advice. The rc.inet1 script that I put up there is still +available in the subdirectory 'slackware-10.1.IHWhqM' that you'll find +above. +However, Pat Volkerding was not happy with the fact that this particular +script breaks compatibility with older rc.inet1.conf configuration files. +Therefore, I re-designed the pair of scripts: rc.inet1 and rc.wireless +so that their configuration files (rc.inet1.conf and rc.wireless +respectively) remain compatible with the stock Slackware versions. +The new scripts that you will find here, have much more functionality +than my first attempts (still kept for reference in the +slackware-10.1.IHWhqM directory). + +So, read on for all the info you'll need about this new stuff...... + +========================================================================== + +NETWORK CARD CONFIGURATION: +A major complaint with wireless network cards, is that Slackware's +network configuration does not allow for other interfaces than eth0, +eth1, etc... + +My replacement scripts work fine for network interfaces with other names +than eth0, etc1, ..... For instance, you can use them if you have a +wireless interface called wlan0, or ath0, or ra0. + +You will need the set of rc.inet1* and rc.wireless* together - you must +upgrade them all at once (well the *.conf files may stay the same if you +are still using the stock Slackware scripts). + +These new rc scripts will offer support for arbitrary network interface +names, but also support for WPA encryption using wpa_supplicant. +For WPA support you must of course install wpa_supplicant too, but +the sources, build script and Slackware package can be found under + +http://sox.homeip.net/slackware/slackbuilds/wpa_supplicant/ + +Put your WPAPSK (the WPA pre-shared key) in '/etc/wpa_supplicant.conf' +together with other wireless settings +- look at '/etc/wpa_supplicant.sample' for inspiration. + +>>> WEP encryption, naturally, is still supported, like before. <<< + +The rc.wireless script must only be run by the rc.inet1 script, +it is not meant to be run directly by you, the user. + +So, to start your wlan0 interface, you run: + # /etc/rc.d/rc.inet1 wlan0_start +and to restart the interface (i.e. stop, and then start again) you do: + # /etc/rc.d/rc.inet1 wlan0_restart +Look at the bottom of rc.inet1.conf for examples of the (many new) +parameters you can configure for your interfaces. + +I would like to receive your comments on how they work for you, so that +they can hopefully be incorporated into Slackware 11 eventually. + +You can contact me in Freenode IRC in ##slackware. +Look out for alien_ or aloon. + +Eric Hameleers <alien -at- sox -dot- homeip -dot- net> / 28-apr-2005 / + +========================================================================== diff --git a/source/n/network-scripts/doinst.sh b/source/n/network-scripts/doinst.sh new file mode 100644 index 000000000..a9d09b0fa --- /dev/null +++ b/source/n/network-scripts/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Handle the incoming configuration files: +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.inet1.new +config etc/rc.d/rc.inet1.conf.new +config etc/rc.d/rc.inet2.new +config etc/rc.d/rc.ip_forward.new +config etc/hosts.new +config etc/hosts.deny.new +config etc/hosts.equiv.new +config etc/networks.new +config etc/nntpserver.new +config etc/resolv.conf.new +config etc/HOSTNAME.new +config etc/host.conf.new +config etc/hosts.allow.new +config etc/protocols.new + +# OK, some of these aren't useful as examples, and have to be +# considered clutter if you've already got the file. +# So out they go. +rm -f etc/HOSTNAME.new +rm -f etc/hosts.new +rm -f etc/resolv.conf.new +rm -f etc/nntpserver.new + diff --git a/source/n/network-scripts/manpages/rc.inet1.8 b/source/n/network-scripts/manpages/rc.inet1.8 new file mode 100644 index 000000000..3e5222ccf --- /dev/null +++ b/source/n/network-scripts/manpages/rc.inet1.8 @@ -0,0 +1,110 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH RC.INET1 8 "03 Dec 2008" "Slackware Version 12.2.0" +.SH NAME +rc.inet1 \- Slackware network configuration script. +.SH DESCRIPTION +.BR rc.inet1 . +This script configures network interfaces. +Wireless interfaces are configured just like any network device +but accept many more configuration parameters. +.br +rc.inet1 reads its configuration parameters from a file `rc.inet1.conf'. +The `rc.inet1.conf' file contains a series of variable array definitions, +with each array index corresponding to a single network interface. +.SH OPTIONS +The way to start your network (the configuration of your nics and +bringing the interfaces up, and creating a default route if required) +is by running the command: +.LP +.B /etc/rc.d.rc.inet1 +.LP +Restarting the whole network (all available network interfaces) +is done in a similar fashion: +.LP +.B /etc/rc.d.rc.inet1 restart +.LP +More generically speaking, you can start/stop/restart any network +interface yourself by running one of the commands: +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_start +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_stop +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_restart +.LP +where +.I `INTERFACE' +is the name of an existing network interface (eth0, wlan0, ...) +.SH WIRELESS +The script +.I rc.wireless +takes care of configuring the wireless parameters for a network +interface. This script does not run independently. Instead, it is executed +by the generic network configuration script +.IR rc.inet1 . +.br +If a wireless interface is detected, +.I rc.wireless +will use +.I iwconfig , +.I iwpriv +and possibly +.I wpa_supplicant +to associate the card with an access point (in managed mode) or peer it with +another computer (in ad-hoc mode), and enable an encryption modus like WPA. +.SH FILES +.TP 25 +.I /etc/rc.d/rc.inet1 +network configuration script +.TP +.I /etc/rc.d/rc.inet1.conf +parameter definition file (is being read by rc.inet1 and rc.wireless) +.TP +.I /etc/rc.d/rc.wireless +wireless configuration script +.TP +.I /etc/rc.d/rc.wireless.conf +parameter definition file ( +.B deprecated +) +.SH DIAGNOSTICS +If you remove the executable bit from the +.I rc.wireless +script, it will never be executed. This can be beneficial if you have +written your own wireless script and don't want Slackware to mess it up. +.SH CAVEATS +The network interface definitions are stored in variable +.I arrays. +The bash shell has no facilities to retrieve the largest array index used. +Therefore, the +.I rc.inet1 +script makes the assumption that array indexes stay below the value of +.BR 6 . +Effectively this means that you can configure up to 6 network interfaces in +rc.inet1.conf by default. +.LP +If you want to configure more than six network interfaces, you will +have to edit the file +.I /etc/rc.d/rc.inet1 +and change the value `6' in the line: +.br +.B \ \ MAXNICS=${MAXNICS:-6} +.br +to a value that is larger than the largest index value you use. +.LP +The /etc/rc.d/rc.wireless script is not meant to be run on it's own by the user! +.SH AUTHOR +Eric Hameleers <alien@slackware.com> +.SH "SEE ALSO" +.BR rc.inet1.conf(5), +.BR ifconfig(8), +.BR iwconfig(8), +.BR route(8) diff --git a/source/n/network-scripts/manpages/rc.inet1.conf.5 b/source/n/network-scripts/manpages/rc.inet1.conf.5 new file mode 100644 index 000000000..b23f6783b --- /dev/null +++ b/source/n/network-scripts/manpages/rc.inet1.conf.5 @@ -0,0 +1,202 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH RC.INET1.CONF 5 "03 Dec 2008" "Slackware Version 12.2.0" +.SH NAME +rc.inet1.conf \- Slackware network configuration file. +.SH DESCRIPTION +.B rc.inet1.conf +\. This file contains the configuration settings for network interfaces. +It consists basically of a series of variable array definitions. +Array elements with the same index number will all belong to the same +network interface. +.LP +By default, index number `0' is used for the configuration of interface +.I eth0, +index number `1' is used for +.I eth1 +and so forth. The default interface name can be overruled by the use of +the variable +.B IFNAME. +.LP +This is what a typical section of the file looks like for a card that is +configured to use DHCP, showing all array variables with the index number [0]: +.LP +# Config information for eth0: +.br +IPADDR[0]="" +.br +NETMASK[0]="" +.br +USE_DHCP[0]="yes" +.br +DHCP_HOSTNAME[0]="" +.br +DHCP_TIMEOUT[0]="" +.LP +Alternatively, here is an example for a card that uses a static IP address and +has a non-default name ( +.I ath0 +instead of +.I eth1 +). The array index is [1] in this case. +.LP +# Config information for ath0 (using static IP address): +.br +IFNAME[1]="ath0" +.br +IPADDR[1]="192.168.3.11" +.br +NETMASK[1]="255.255.255.0" +.br +USE_DHCP[1]="" +.br +DHCP_HOSTNAME[1]="" +.br +GATEWAY="192.168.3.1" +.SH GENERAL PARAMETERS +This is a list of network parameters you can set for any card (wired as well +as wired). The example section is for `eth0' by default, i.e. +the array variables all have the array index [0]: +.LP +# Config information for eth0: +.TP 25 +IPADDR[0]="" +# Set this value to an actual IP address if you want static IP +address assignment +.TP +NETMASK[0]="" +# With a static IP address, you are required to also set a netmask +(255.255.255.0 is common) +.TP +USE_DHCP[0]="yes" +# If set to "yes", we will run a DHCP client and have the IP address +dynamically assigned +.TP +DHCP_HOSTNAME[0]="mybox" +# Tell the DHCP server what hostname to register +.TP +DHCP_TIMEOUT[0]=15 +# The default timeout for the DHCP client to wait for server response is +30 seconds, but you might want a shorter wait. +.TP +IFNAME[0]="eth0:1" +# Set up an IP alias. +.TP +HWADDR[0]="00:01:23:45:67:89" +# Overrule the card's hardware MAC address +.TP +MTU[0]="" +# The default MTU is 1500, but you might need 1360 when you use NAT'ed +IPSec traffic. +.TP +DHCP_KEEPRESOLV[0]="yes" +# If you do +.B not +want `/etc/resolv.conf' overwritten by the DHCP client +.TP +DHCP_KEEPNTP[0]="yes" +# If you do +.B not +want `/etc/ntp.conf' overwritten by the DHCP client +.TP +DHCP_KEEPGW[0]="yes" +# If you do +.B not +want the DHCP client to change your default gateway +.TP +DHCP_DEBUG[0]="yes" +# Make dhcpcd show verbose diagnostics +.TP +DHCP_NOIPV4LL[0]="yes" +# Do not assign an +.I `ipv4ll' +address when a DHCP server is not found (ipv4 link-local addressing in the IP range 169.254.0.0/16 is also known as +.I `zeroconf' +address assignment) +.TP +DHCP_IPADDR[0]="" +# Request a specific IP address from the DHCP server +.SH WIRELESS PARAMETERS +For wireless cards, several additional parameter definitions are available. +All these parameters (or better, variables) start with the prefix +.B WLAN_ . +.LP +.TP 25 +WLAN_ESSID[4]=DARKSTAR +# Your Wireless Access Point's name +.TP +WLAN_MODE[4]=Managed +# "Managed" mode for use with Access Points. "Ad-Hoc" is for +peer-to-peer connections. +.TP +WLAN_RATE[4]="54M auto" +# The transmission rates you want the driver to try ("auto" means +that bandwidth can be variable) +.TP +WLAN_CHANNEL[4]="auto" +# The channel to which the Access Point is tuned ("auto" to let the +driver find out the correct channel) +.TP +WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2" +# Definition of a WEP key +.TP +WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=the_64_character_key" +# Some drivers require a private ioctl to be set through the iwpriv command. +If more than one is required, you can place them in the +.I IWPRIV +parameter (separated with the pipe (|) character, see the example). +.TP +WLAN_WPA[4]="wpa_supplicant" +# Run wpa_supplicant for WPA support +.TP +WLAN_WPADRIVER[4]="ndiswrapper" +# Tell wpa_supplicant to specifically use the ndiswrapper driver. +If you leave this empty the `wext' driver is used by default; most +modern wireless drivers use 'wext'. +.TP +WLAN_WPAWAIT[4]=30 +# In case it takes long for the WPA association to finish, you can +increase the wait time before rc.wireless decides that association +failed (defaults to 10 seconds) +.SH FILES +.TP 25 +.I /etc/rc.d/rc.inet1 +network configuration script +.TP +.I /etc/rc.d/rc.inet1.conf +configuration parameter file (is being read by rc.inet1 andrc.wireless) +.TP +.I /etc/rc.d/rc.wireless +wireless configuration script +.TP +.I /etc/rc.d/rc.wireless.conf +configuration parameter file ( +.B deprecated +) +.SH CAVEATS +The network interface definitions are stored in variable +.I arrays. +The bash shell has no facilities to retrieve the largest array index used. +Therefore, the +.I rc.inet1 +script makes the assumption that array indexes stay below the value of +.B 6 +\. +.LP +If you want to configure more than six network interfaces, you will +have to edit the file +.I /etc/rc.d/rc.inet1 +and change the value `6' in the line +.B MAXNICS=${MAXNICS:-6} +to the number of network interfaces you wish to use. +.SH AUTHOR +Eric Hameleers <alien@slackware.com> +.SH "SEE ALSO" +.BR rc.inet1(8) diff --git a/source/n/network-scripts/network-scripts.SlackBuild b/source/n/network-scripts/network-scripts.SlackBuild new file mode 100755 index 000000000..319ca5e01 --- /dev/null +++ b/source/n/network-scripts/network-scripts.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=network-scripts +VERSION=${VERSION:-13.0} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG/etc/rc.d +( cd $PKG/etc/rc.d + for file in rc.inet1.conf rc.inet1 rc.inet2 rc.ip_forward ; do + cp -a $CWD/scripts/$file ${file}.new + done + chown root:root * + chmod 755 rc.inet1.new rc.inet2.new + chmod 600 rc.inet1.conf.new +) +( cd $PKG/etc + for file in HOSTNAME host.conf hosts.allow hosts.deny hosts.equiv hosts networks nntpserver protocols resolv.conf ; do + cp -a $CWD/scripts/$file ${file}.new + chmod 644 ${file}.new + done + chown root:root * +) +mkdir -p $PKG/sbin +cp -a $CWD/scripts/netconfig $PKG/sbin/netconfig +chown root:root $PKG/sbin/netconfig +chmod 755 $PKG/sbin/netconfig +mkdir -p $PKG/var/log/setup +cp -a $CWD/scripts/setup.netconfig $PKG/var/log/setup +chown root:root $PKG/var/log/setup/setup.netconfig +chmod 755 $PKG/var/log/setup/setup.netconfig + +# Add manpages: +mkdir -p $PKG/usr/man/man{5,8} +cat $CWD/manpages/rc.inet1.conf.5 | gzip -9c > $PKG/usr/man/man5/rc.inet1.conf.5.gz +cat $CWD/manpages/rc.inet1.8 | gzip -9c > $PKG/usr/man/man8/rc.inet1.8.gz + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/network-scripts/scripts/HOSTNAME b/source/n/network-scripts/scripts/HOSTNAME new file mode 100644 index 000000000..409452f78 --- /dev/null +++ b/source/n/network-scripts/scripts/HOSTNAME @@ -0,0 +1 @@ +darkstar.example.net diff --git a/source/n/network-scripts/scripts/host.conf b/source/n/network-scripts/scripts/host.conf new file mode 100644 index 000000000..a659e913a --- /dev/null +++ b/source/n/network-scripts/scripts/host.conf @@ -0,0 +1,2 @@ +order hosts, bind +multi on diff --git a/source/n/network-scripts/scripts/hosts b/source/n/network-scripts/scripts/hosts new file mode 100644 index 000000000..2c26f958b --- /dev/null +++ b/source/n/network-scripts/scripts/hosts @@ -0,0 +1,19 @@ +# +# hosts This file describes a number of hostname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# On small systems, this file can be used instead of a +# "named" name server. Just add the names, addresses +# and any aliases to this file... +# +# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1 +# should NEVER be named with the name of the machine. It causes problems +# for some (stupid) programs, irc and reputedly talk. :^) +# + +# For loopbacking. +127.0.0.1 localhost +127.0.0.1 darkstar.example.net darkstar + +# End of hosts. + diff --git a/source/n/network-scripts/scripts/hosts.allow b/source/n/network-scripts/scripts/hosts.allow new file mode 100644 index 000000000..d375b5f82 --- /dev/null +++ b/source/n/network-scripts/scripts/hosts.allow @@ -0,0 +1,12 @@ +# +# hosts.allow This file describes the names of the hosts which are +# allowed to use the local INET services, as decided by +# the '/usr/sbin/tcpd' server. +# +# Version: @(#)/etc/hosts.allow 1.00 05/28/93 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org +# +# + +# End of hosts.allow. diff --git a/source/n/network-scripts/scripts/hosts.deny b/source/n/network-scripts/scripts/hosts.deny new file mode 100644 index 000000000..c0db7e913 --- /dev/null +++ b/source/n/network-scripts/scripts/hosts.deny @@ -0,0 +1,12 @@ +# +# hosts.deny This file describes the names of the hosts which are +# *not* allowed to use the local INET services, as decided +# by the '/usr/sbin/tcpd' server. +# +# Version: @(#)/etc/hosts.deny 1.00 05/28/93 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org +# +# + +# End of hosts.deny. diff --git a/source/n/network-scripts/scripts/hosts.equiv b/source/n/network-scripts/scripts/hosts.equiv new file mode 100644 index 000000000..cb371ea39 --- /dev/null +++ b/source/n/network-scripts/scripts/hosts.equiv @@ -0,0 +1,14 @@ +# +# hosts.equiv This file describes the names of the hosts which are +# to be considered "equivalent", i.e. which are to be +# trusted enought for allowing rsh(1) commands. +# +# Version: @(#)/etc/hosts.equiv 2.00 04/30/93 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# +# + +localhost + +# End of hosts.equiv. diff --git a/source/n/network-scripts/scripts/netconfig b/source/n/network-scripts/scripts/netconfig new file mode 100644 index 000000000..04afd698e --- /dev/null +++ b/source/n/network-scripts/scripts/netconfig @@ -0,0 +1,632 @@ +#!/bin/sh +# A script to do basic network configuration. +# Mostly written by Patrick Volkerding <volkerdi@slackware.com>. +# Modified to use /etc/rc.d/rc.inet1.conf Tue Aug 26 16:51:48 PDT 2003 <pjv> + +write_config_files() { +# +############################################################################ +# The rc.inet1.conf file. +############################################################################ +# + +# If we're doing loopback, we don't want 127.0.0.1 and 255.255.255.0 in +# rc.inet1.conf... it's better to leave the values null. However, since +# we use the IP in other places, we need to make a copy for here. +RCIPCOPY=$IPADDR +RCMASKCOPY=$NETMASK +if [ "$RCIPCOPY" = "127.0.0.1" ]; then + RCIPCOPY="" + RCMASKCOPY="" +fi + +# echo "Creating /$RC..." +/bin/cat << ENDFILE > $RC +# /etc/rc.d/rc.inet1.conf +# +# This file contains the configuration settings for network interfaces. +# If USE_DHCP[interface] is set to "yes", this overrides any other settings. +# If you don't have an interface, leave the settings null (""). + +# You can configure network interfaces other than eth0,eth1... by setting +# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset +# or empty, it is assumed you're configuring eth<interface>. + +# Several other parameters are available, the end of this file contains a +# comprehensive set of examples. + +# ============================================================================= + +# Config information for eth0: +IPADDR[0]="$RCIPCOPY" +NETMASK[0]="$RCMASKCOPY" +USE_DHCP[0]="$USE_DHCP" +DHCP_HOSTNAME[0]="$DHCP_HOSTNAME" + +# Config information for eth1: +IPADDR[1]="" +NETMASK[1]="" +USE_DHCP[1]="" +DHCP_HOSTNAME[1]="" + +# Config information for eth2: +IPADDR[2]="" +NETMASK[2]="" +USE_DHCP[2]="" +DHCP_HOSTNAME[2]="" + +# Config information for eth3: +IPADDR[3]="" +NETMASK[3]="" +USE_DHCP[3]="" +DHCP_HOSTNAME[3]="" + +# Default gateway IP address: +GATEWAY="$GATEWAY" + +# Change this to "yes" for debugging output to stdout. Unfortunately, +# /sbin/hotplug seems to disable stdout so you'll only see debugging output +# when rc.inet1 is called directly. +DEBUG_ETH_UP="no" + +## Example config information for wlan0. Uncomment the lines you need and fill +## in your info. (You may not need all of these for your wireless network) +#IFNAME[4]="wlan0" +#IPADDR[4]="" +#NETMASK[4]="" +#USE_DHCP[4]="yes" +#DHCP_HOSTNAME[4]="icculus-wireless" +#DHCP_KEEPRESOLV[4]="yes" +#DHCP_KEEPNTP[4]="yes" +#DHCP_KEEPGW[4]="yes" +#DHCP_IPADDR[4]="" +#WLAN_ESSID[4]=BARRIER05 +#WLAN_MODE[4]=Managed +##WLAN_RATE[4]="54M auto" +##WLAN_CHANNEL[4]="auto" +##WLAN_KEY[4]="D5AD1F04ACF048EC2D0B1C80C7" +##WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16" +#WLAN_WPA[4]="wpa_supplicant" +#WLAN_WPADRIVER[4]="ndiswrapper" + +## Some examples of additional network parameters that you can use. +## Config information for wlan0: +#IFNAME[4]="wlan0" # Use a different interface name nstead of + # the default 'eth4' +#HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address +#MTU[4]="" # The default MTU is 1500, but you might need + # 1360 when you use NAT'ed IPSec traffic. +#DHCP_KEEPRESOLV[4]="yes" # If you dont want /etc/resolv.conf overwritten +#DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten +#DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change + # your default gateway +#DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP + # server +#WLAN_ESSID[4]=DARKSTAR # Here, you can override _any_ parameter + # defined in rc.wireless.conf, by prepending + # 'WLAN_' to the parameter's name. Useful for + # those with multiple wireless interfaces. +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey" + # Some drivers require a private ioctl to be + # set through the iwpriv command. If more than + # one is required, you can place them in the + # IWPRIV parameter (separated with the pipe (|) + # character, see the example). +ENDFILE +# +############################################################################ +# The networks file. +############################################################################ +# +#echo "Creating /$ETCNETWORKS..." +/bin/cat <<EOF >$ETCNETWORKS +# +# networks This file describes a number of netname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# + +loopback 127.0.0.0 +localnet $NETWORK + +# End of networks. +EOF +chmod 644 $ETCNETWORKS +# +############################################################################ +# The hosts file. +############################################################################ +# +#echo "Creating /$HOSTS..." +/bin/cat << EOF > $HOSTS +# +# hosts This file describes a number of hostname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# On small systems, this file can be used instead of a +# "named" name server. Just add the names, addresses +# and any aliases to this file... +# +# By the way, Arnt Gulbrandsen <agulbra@nvg.unit.no> says that 127.0.0.1 +# should NEVER be named with the name of the machine. It causes problems +# for some (stupid) programs, irc and reputedly talk. :^) +# + +# For loopbacking. +127.0.0.1 localhost +$IPADDR $HOSTNM.$DOMAIN $HOSTNM + +# End of hosts. + +EOF +chmod 644 $HOSTS +# +############################################################################ +# The resolv.conf file. +############################################################################ +# +if [ ! "$NAMESERVER" = "" ]; then + echo "search $DOMAIN" >$RESOLV + echo "nameserver $NAMESERVER" >>$RESOLV +else + echo "search $DOMAIN" >$RESOLV +fi +if [ -f $RESOLV ]; then + chmod 644 $RESOLV +fi +# +############################################################################ +# The rc.netdevice file. +############################################################################ +# +if [ -r /cardfound ]; then + if [ ! "`cat /cardfound`" = "" ]; then + cat << EOF > etc/rc.d/rc.netdevice +# Load module for network device. +# This script is automatically generated during the installation. + +/sbin/modprobe `cat /cardfound` + +EOF + chmod 755 etc/rc.d/rc.netdevice + fi +fi +rm -f $TMP/tempmsg /cardfound +} # end write_config_files + +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP +fi + +# This checks IP address syntax. +# usage: syntax_check ADDRESS #-OF-EXPECTED-SEGMENTS (up to 4) +# example: syntax_check 123.22.43.1 4 +# returns: 0=found correct 1=too many fields 2=non numeric field found +syntax_check_color() { + RET_CODE=0 + SCRATCH=$1 + SCRATCH=`echo $SCRATCH | tr "." "/"` + INDEX=$2 + while [ ! "$INDEX" = "0" ]; do + # OK, so I'm a LISP-head :^) + FIELD=`basename $SCRATCH` + SCRATCH=`dirname $SCRATCH` + if expr $FIELD + 1 1> /dev/null 2> /dev/null; then + true + else + RET_CODE=2; # non-numeric field + fi + INDEX=`expr $INDEX - 1` + done + if [ ! "$SCRATCH" = "." ]; then + RET_CODE=1; # too many arguments + fi + if [ "$3" = "WARN" -a ! "$RET_CODE" = "0" ]; then + cat << EOF > $TMP/tempmsg + +The address you have entered seems to be non-standard. We were expecting +$2 groups of numbers seperated by dots, like: 127.0.0.1 +Are you absolutely sure you want to use the address $1? + +EOF + dialog --title "WARNING" --yesno "`cat $TMP/tempmsg`" 9 72 + if [ $? = 0 ]; then + RET_CODE = 0; + fi + rm -r $TMP/tempmsg + else + if [ "$3" = "ECHO" ]; then + echo $RET_CODE; + fi + fi + return $RET_CODE; +} + +# Figure out where we are... cheap hack. +if [ ! -e etc/slackware-version -a ! -e /etc/installer -a ! -e bin/bash ]; then + cd / +fi; + +# IMPORTANT!!! NO LEADING '/' in the paths below, or this script will not +# function from the bootdisk. +RC=etc/rc.d/rc.inet1.conf # Where rc.inet1.conf file is. +RESOLV=etc/resolv.conf # Where resolv.conf file is. +HOSTS=etc/hosts # Where hosts file is. +ETCNETWORKS=etc/networks # Where networks file is. +USE_DHCP="" # Use DHCP? "" == no. +DHCP_HOSTNAME="" # This is our DHCP hostname. +# +# defaults: +NETWORK=127.0.0.0 +IPADDR=127.0.0.1 +NETMASK=255.255.255.0 + + +# Main loop: +while [ 0 ]; do +cat << EOF > $TMP/tempmsg +First, we'll need the name you'd like to give your host. +Only the base hostname is needed right now. (not the domain) + +Enter hostname: +EOF + dialog --title "ENTER HOSTNAME" --inputbox "`cat $TMP/tempmsg`" 11 65 \ + $HOSTNM 2> $TMP/SeThost + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeThost $TMP/tempmsg + exit + fi + HOSTNM="`cat $TMP/SeThost`" + rm -f $TMP/SeThost $TMP/tempmsg + if [ ! "$HOSTNM" = "" ]; then + break; + fi +done + +while [ 0 ]; do +cat << EOF > $TMP/tempmsg +Now, we need the domain name for this machine, such as: + +example.org + +Do not supply a leading '.' + +Enter domain name for $HOSTNM: +EOF + dialog --title "ENTER DOMAINNAME FOR '$HOSTNM'" --inputbox \ +"`cat $TMP/tempmsg`" \ +14 64 $DOMAIN 2> $TMP/SeTdom + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTdom $TMP/tempmsg + exit + fi + DOMAIN="`cat $TMP/SeTdom`" + rm -f $TMP/SeTdom $TMP/tempmsg + if [ ! "$DOMAIN" = "" ]; then + break; + fi +done + +echo $HOSTNM.$DOMAIN > etc/HOSTNAME + +dialog --title "SETUP IP ADDRESS FOR '$HOSTNM.$DOMAIN'" \ +--default-item DHCP \ +--menu \ +"Now we need to know how your machine connects to the network.\n\ +If you have an internal network card and an assigned IP address, gateway, \ +and DNS, use the 'static IP' choice to enter these values. If your IP \ +address is assigned by a DHCP server (commonly used by cable modem and DSL \ +services), select 'DHCP'. If you do not have a network card, select \ +the 'loopback' choice. 'loopback' is also the correct choice if your \ +only connection to the network will be through a serial modem \ +(with SLIP or PPP), or if you are using a laptop network card (these \ +are configured in /etc/pcmcia/). What type of network connection \ +best describes your machine?" 20 70 3 \ +"static IP" "Use a static IP address to configure ethernet" \ +"DHCP" "Use a DHCP server to configure ethernet" \ +"loopback" "Set up a loopback connection (modem or no net)" 2> $TMP/reply +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/reply + exit +fi +REPLY=`cat $TMP/reply` +rm -f $TMP/reply + +if [ "$REPLY" = "DHCP" ]; then + USE_DHCP="yes" + dialog --title "SET DHCP HOSTNAME" --inputbox "Some network providers require \ +that the DHCP hostname be set in order to connect. If so, they'll have assigned \ +a hostname to your machine, which may look something like CC-NUMBER-A (this \ +depends on your ISP). If you were assigned a DHCP hostname, please enter it \ +below. If you do not have a DHCP hostname, just hit ENTER or Cancel." 13 62 \ +2> $TMP/SeTDHCPHOST + NEW_DHCPHOST="`cat $TMP/SeTDHCPHOST`" + rm -f $TMP/SeTDHCPHOST + # OK, if we actually got something, use it. + DHCP_HOSTNAME="$NEW_DHCPHOST" +elif [ "$REPLY" = "loopback" ]; then + LOOPBACK="yes" +else + LOOPBACK="no" +fi + +if [ "$LOOPBACK" = "no" -a ! "$USE_DHCP" = "yes" ]; then + + while [ 0 ]; do + if [ -r $TMP/SeTIP ]; then + IPADDR=`cat $TMP/SeTIP` + fi + cat << EOF > $TMP/tempmsg +Enter your IP address for the local machine. Example: +111.112.113.114 +Enter IP address for $HOSTNM (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER IP ADDRESS FOR '$HOSTNM.$DOMAIN'" --inputbox \ +"`cat $TMP/tempmsg`" \ +10 68 $IPADDR 2> $TMP/SeTlip + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTlip $TMP/tempmsg + exit + fi + IPADDR="`cat $TMP/SeTlip`" + rm -f $TMP/SeTlip $TMP/tempmsg + if [ "$IPADDR" = "" ]; then + continue; + fi + syntax_check_color $IPADDR 4 WARN + if [ $? = 0 ]; then + echo $IPADDR > $TMP/SeTIP + break; + fi + done + + while [ 0 ]; do + if [ -r $TMP/SeTnetmask ]; then + NETMASK=`cat $TMP/SeTnetmask` + fi + cat << EOF > $TMP/tempmsg +Enter your netmask. This will generally look something +like this: 255.255.255.0 +Enter netmask (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER NETMASK FOR LOCAL NETWORK" --inputbox \ +"`cat $TMP/tempmsg`" \ +10 65 $NETMASK 2> $TMP/SeTnmask + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTnmask $TMP/tempmsg + exit + fi + NETMASK="`cat $TMP/SeTnmask`" + rm -f $TMP/SeTnmask $TMP/tempmsg + if [ "$NETMASK" = "" ]; then + continue; + fi + syntax_check_color $NETMASK 4 WARN + if [ $? = 0 ]; then + echo $NETMASK > $TMP/SeTnetmask + break; + fi + done + + # Set broadcast/network addresses automatically: + BROADCAST=`ipmask $NETMASK $IPADDR | cut -f 1 -d ' '` + NETWORK=`ipmask $NETMASK $IPADDR | cut -f 2 -d ' '` + + while [ 0 ]; do + if [ -r $TMP/SeTgateway ]; then + GATEWAY=`cat $TMP/SeTgateway` + fi + cat << EOF > $TMP/tempmsg +Enter the address for the gateway on your network, such as: +`echo $IPADDR | cut -f 1-3 -d .`.1 + +If you don't have a gateway on your network just hit ENTER +without entering a gateway IP address. + +Enter gateway address (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER GATEWAY ADDRESS" --inputbox "`cat $TMP/tempmsg`" \ + 14 64 $GATEWAY 2> $TMP/SeTgate + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTgate $TMP/tempmsg + exit + fi + GATEWAY="`cat $TMP/SeTgate`" + rm -f $TMP/SeTgate $TMP/tempmsg + if [ "$GATEWAY" = "" ]; then + echo > $TMP/SeTgateway + break; + fi + syntax_check_color $GATEWAY 4 WARN + if [ $? = 0 ]; then + echo $GATEWAY > $TMP/SeTgateway + break; + fi + done +fi + +if [ "$LOOPBACK" = "no" ]; then + dialog --title "USE A NAMESERVER?" --yesno "Will you be accessing a \ +nameserver?" 5 42 + if [ $? = 0 ]; then + if [ ! "`cat $TMP/SeTns 2> /dev/null`" = "" ]; then + DNSSAMPLE="`cat $TMP/SeTns 2> /dev/null`" + elif [ "$GATEWAY" = "" ]; then + DNSSAMPLE=`echo $IPADDR | cut -f 1-3 -d .` + else + DNSSAMPLE=$GATEWAY + fi + while [ "$NAMESERVER" = "" ]; do + cat << EOF > $TMP/tempmsg +Here is your current IP address, full hostname, and base hostname: +$IPADDR $HOSTNM.$DOMAIN $HOSTNM + +Please give the IP address of the name server to use, +such as $DNSSAMPLE. + +You can add more Domain Name Servers later by editing /$RESOLV. + +Primary name server to use (aaa.bbb.ccc.ddd): +EOF + dialog --title "SELECT NAMESERVER" --inputbox \ +"`cat $TMP/tempmsg`" 17 72 $DNSSAMPLE 2> $TMP/SeTns + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tempmsg $TMP/SeTns + break + fi + NAMESERVER="`cat $TMP/SeTns`" + rm -f $TMP/tempmsg $TMP/SeTns + done + fi +fi + +# Check for existing network driver: +unset DONOTPROBE +if cat /proc/net/dev | grep eth0 1> /dev/null 2> /dev/null ; then + DONOTPROBE=true +fi + +# Really, this rc.netdevice thing is mostly obsolete except for +# handmade local scripts anyway, these days with udev... +# So, we'll skip it: +DONOTPROBE=true + +if [ -d lib/modules/`uname -r` \ + -a ! "$LOOPBACK" = "yes" \ + -a ! -x etc/rc.d/rc.hotplug \ + -a ! "$DONOTPROBE" = "true" \ + -a ! -r /cardfound ]; then + dialog --title "PROBE FOR NETWORK CARD?" --menu "If you like, we \ +can look to see what kind of network card you have in your machine, and \ +if we find one create an /etc/rc.d/rc.netdevice script to load the module \ +for it at boot time. There's a slight bit of danger that the probing \ +can cause problems, but it almost always works. If you'd rather configure \ +your system manually, you can skip the probing process and edit \ +/etc/rc.d/rc.modules or /etc/modules.conf later to have it load the right module." \ +16 68 2 \ +"probe" "look for network cards to set up" \ +"skip" "skip probe; edit /etc/rc.d/rc.modules later" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/reply + exit + fi + REPLY=`cat $TMP/reply` + rm -f $TMP/reply + if [ ! "$REPLY" = "skip" ]; then + for card in 3c59x 82596 dgrs eepro100 e1000 epic100 hp100 lance \ + ne2k-pci olympic pcnet32 rcpci 8139too 8139cp tlan tulip via-rhine \ + yellowfin natsemi ; do + chroot . /sbin/modprobe $card 2> /dev/null + if [ $? = 0 ]; then + dialog --title "CARD DETECTED" --msgbox "A networking card using \ +the $card.o module has been detected." 5 72 + echo "$card" > /cardfound + break; + fi + done + if [ ! -r /cardfound ]; then + # Don't probe for com20020, because it doesn't check and will always load. + # Don't probe for arlan, because it needs irq= to work. + # Don't probe for com90io or com90xx because they taint the kernel. + for card in depca ibmtr 3c359 3c501 3c503 3c505 3c507 3c509 3c515 ac3200 \ + abyss acenic at1700 cosa cs89x0 de4x5 de600 \ + de620 dmfe dl2k e2100 eepro eexpress eth16i ewrk3 fealnx hamachi hostess_sv11 \ + hp-plus hp lanstreamer ni5010 ni52 ni65 ns83820 sb1000 sealevel sis900 sk98lin skfp smc-ultra \ + smc9194 smctr starfire sungem sunhme tg3 wd e100 iph5526 lp486e tmspci winbond-840 ; do + chroot . /sbin/modprobe $card 2> /dev/null + if [ $? = 0 ]; then + dialog --title "CARD DETECTED" --msgbox "A networking card using \ +the $card.o module has been detected." 5 72 + echo "$card" > /cardfound + break + fi + done + fi + if [ ! -r /cardfound ]; then + dialog --title "NO CARD DETECTED" --msgbox "Sorry, but no network \ +card could be probed for on your system. Some cards (like non-PCI NE2000s) \ +must be supplied with the I/O address to use and can't be probed for safely. \ +You'll have to try to configure the card later by editing \ +/etc/rc.d/rc.modules or recompiling your kernel." 9 70 + fi + fi +fi + +if [ "$LOOPBACK" = "yes" ]; then + dialog --title "NETWORK SETUP COMPLETE" --yesno "Your networking \ +system is now configured to use loopback: + +IP address: 127.0.0.1 +Netmask: 255.255.255.0 + +Is this correct? Press 'Yes' to continue, or 'No' to reconfigure." 0 0 + RETVAL=$? +elif [ "$USE_DHCP" = "" ]; then + while [ 0 ]; do + dialog --title "CONFIRM NETWORK SETUP" \ +--ok-label Accept \ +--extra-label Edit \ +--cancel-label Restart \ +--inputmenu \ +"These are the settings you have entered. To accept them and complete \ +the networking setup, press enter. If you need to make any changes, you \ +can do that now (or reconfigure later using 'netconfig')." \ +22 60 12 \ +"Hostname:" "$HOSTNM" \ +"Domain name:" "$DOMAIN" \ +"IP address:" "$IPADDR" \ +"Netmask:" "$NETMASK" \ +"Gateway:" "$GATEWAY" \ +"Nameserver:" "$NAMESERVER" 2> $TMP/tempmsg + RETVAL=$? + if [ "$RETVAL" = "3" ]; then + FIELD=`cat $TMP/tempmsg | cut -f 1 -d : | cut -f 2- -d ' '` + NEWVAL=`cat $TMP/tempmsg | cut -f 2 -d : | cut -f 2- -d ' '` + if [ "$FIELD" = "Hostname" ]; then + HOSTNM=$NEWVAL + elif [ "$FIELD" = "Domain name" ]; then + DOMAIN=$NEWVAL + elif [ "$FIELD" = "IP address" ]; then + IPADDR=$NEWVAL + elif [ "$FIELD" = "Netmask" ]; then + NETMASK=$NEWVAL + elif [ "$FIELD" = "Gateway" ]; then + GATEWAY=$NEWVAL + elif [ "$FIELD" = "Nameserver" ]; then + NAMESERVER=$NEWVAL + fi + else + break + fi + done +else # DHCP was used + dialog --title "CONFIRM SETUP COMPLETE" \ +--yesno "Your networking system is now configured to use DHCP: + + Hostname: $HOSTNM + Domain name: $DOMAIN + IP address: (use DHCP server) + Netmask: (use DHCP server) + Gateway: (use DHCP server) + Nameserver: (use DHCP server) + +Is this correct? Press 'Yes' to continue, or 'No' to reconfigure." 0 0 + RETVAL=$? +fi + +if [ "$RETVAL" = "0" ]; then + echo $HOSTNM.$DOMAIN > etc/HOSTNAME + write_config_files + if [ "$1" = "" ]; then + dialog --msgbox "Settings accepted. Basic network configuration is complete." 6 40 + fi +else + if [ "$1" = "" ]; then + dialog --msgbox "Settings discarded. Run the 'netconfig' command again if you need to reconfigure your network settings." 6 60 + fi +fi + +exit $RETVAL + diff --git a/source/n/network-scripts/scripts/networks b/source/n/network-scripts/scripts/networks new file mode 100644 index 000000000..50d5162ee --- /dev/null +++ b/source/n/network-scripts/scripts/networks @@ -0,0 +1,10 @@ +# +# networks This file describes a number of netname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# + +loopback 127.0.0.0 +localnet 127.0.0.0 + +# End of networks. diff --git a/source/n/network-scripts/scripts/nntpserver b/source/n/network-scripts/scripts/nntpserver new file mode 100644 index 000000000..3fa9a61b1 --- /dev/null +++ b/source/n/network-scripts/scripts/nntpserver @@ -0,0 +1 @@ +news.my_news_server.com diff --git a/source/n/network-scripts/scripts/protocols b/source/n/network-scripts/scripts/protocols new file mode 100644 index 000000000..db3254c97 --- /dev/null +++ b/source/n/network-scripts/scripts/protocols @@ -0,0 +1,146 @@ +# +# Internet protocols +# +# $FreeBSD: src/etc/protocols,v 1.16 2002/02/10 08:19:58 dd Exp $ +# from: @(#)protocols 5.1 (Berkeley) 4/17/89 +# +# See also http://www.iana.org/assignments/protocol-numbers +# +ip 0 IP # internet protocol, pseudo protocol number +#hopopt 0 HOPOPT # hop-by-hop options for ipv6 +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # internet group management protocol +ggp 3 GGP # gateway-gateway protocol +ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') +st2 5 ST2 # ST2 datagram mode (RFC 1819) +tcp 6 TCP # transmission control protocol +cbt 7 CBT # CBT, Tony Ballardie <A.Ballardie@cs.ucl.ac.uk> +egp 8 EGP # exterior gateway protocol +igp 9 IGP # any private interior gateway (Cisco: for IGRP) +bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring +nvp 11 NVP-II # Network Voice Protocol +pup 12 PUP # PARC universal packet protocol +argus 13 ARGUS # ARGUS +emcon 14 EMCON # EMCON +xnet 15 XNET # Cross Net Debugger +chaos 16 CHAOS # Chaos +udp 17 UDP # user datagram protocol +mux 18 MUX # Multiplexing protocol +dcn 19 DCN-MEAS # DCN Measurement Subsystems +hmp 20 HMP # host monitoring protocol +prm 21 PRM # packet radio measurement protocol +xns-idp 22 XNS-IDP # Xerox NS IDP +trunk-1 23 TRUNK-1 # Trunk-1 +trunk-2 24 TRUNK-2 # Trunk-2 +leaf-1 25 LEAF-1 # Leaf-1 +leaf-2 26 LEAF-2 # Leaf-2 +rdp 27 RDP # "reliable datagram" protocol +irtp 28 IRTP # Internet Reliable Transaction Protocol +iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4 +netblt 30 NETBLT # Bulk Data Transfer Protocol +mfe-nsp 31 MFE-NSP # MFE Network Services Protocol +merit-inp 32 MERIT-INP # MERIT Internodal Protocol +sep 33 SEP # Sequential Exchange Protocol +3pc 34 3PC # Third Party Connect Protocol +idpr 35 IDPR # Inter-Domain Policy Routing Protocol +xtp 36 XTP # Xpress Tranfer Protocol +ddp 37 DDP # Datagram Delivery Protocol +idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto +tp++ 39 TP++ # TP++ Transport Protocol +il 40 IL # IL Transport Protocol +ipv6 41 IPV6 # ipv6 +sdrp 42 SDRP # Source Demand Routing Protocol +ipv6-route 43 IPV6-ROUTE # routing header for ipv6 +ipv6-frag 44 IPV6-FRAG # fragment header for ipv6 +idrp 45 IDRP # Inter-Domain Routing Protocol +rsvp 46 RSVP # Resource ReSerVation Protocol +gre 47 GRE # Generic Routing Encapsulation +mhrp 48 MHRP # Mobile Host Routing Protocol +bna 49 BNA # BNA +esp 50 ESP # encapsulating security payload +ah 51 AH # authentication header +i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA +swipe 53 SWIPE # IP with Encryption +narp 54 NARP # NBMA Address Resolution Protocol +mobile 55 MOBILE # IP Mobility +tlsp 56 TLSP # Transport Layer Security Protocol +skip 57 SKIP # SKIP +ipv6-icmp 58 IPV6-ICMP # ICMP for IPv6 +ipv6-nonxt 59 IPV6-NONXT # no next header for ipv6 +ipv6-opts 60 IPV6-OPTS # destination options for ipv6 +# 61 # any host internal protocol +cftp 62 CFTP # CFTP +# 63 # any local network +sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK +kryptolan 65 KRYPTOLAN # Kryptolan +rvd 66 RVD # MIT Remote Virtual Disk Protocol +ippc 67 IPPC # Internet Pluribus Packet Core +# 68 # any distributed file system +sat-mon 69 SAT-MON # SATNET Monitoring +visa 70 VISA # VISA Protocol +ipcv 71 IPCV # Internet Packet Core Utility +cpnx 72 CPNX # Computer Protocol Network Executive +cphb 73 CPHB # Computer Protocol Heart Beat +wsn 74 WSN # Wang Span Network +pvp 75 PVP # Packet Video Protocol +br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring +sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary +wb-mon 78 WB-MON # WIDEBAND Monitoring +wb-expak 79 WB-EXPAK # WIDEBAND EXPAK +iso-ip 80 ISO-IP # ISO Internet Protocol +vmtp 81 VMTP # Versatile Message Transport +secure-vmtp 82 SECURE-VMTP # SECURE-VMTP +vines 83 VINES # VINES +ttp 84 TTP # TTP +nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP +dgp 86 DGP # Dissimilar Gateway Protocol +tcf 87 TCF # TCF +eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) +ospf 89 OSPFIGP # Open Shortest Path First IGP +sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol +larp 91 LARP # Locus Address Resolution Protocol +mtp 92 MTP # Multicast Transport Protocol +ax.25 93 AX.25 # AX.25 Frames +ipip 94 IPIP # Yet Another IP encapsulation +micp 95 MICP # Mobile Internetworking Control Pro. +scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro. +etherip 97 ETHERIP # Ethernet-within-IP Encapsulation +encap 98 ENCAP # Yet Another IP encapsulation +# 99 # any private encryption scheme +gmtp 100 GMTP # GMTP +ifmp 101 IFMP # Ipsilon Flow Management Protocol +pnni 102 PNNI # PNNI over IP +pim 103 PIM # Protocol Independent Multicast +aris 104 ARIS # ARIS +scps 105 SCPS # SCPS +qnx 106 QNX # QNX +a/n 107 A/N # Active Networks +ipcomp 108 IPComp # IP Payload Compression Protocol +snp 109 SNP # Sitara Networks Protocol +compaq-peer 110 Compaq-Peer # Compaq Peer Protocol +ipx-in-ip 111 IPX-in-IP # IPX in IP +vrrp 112 VRRP # Virtual Router Redundancy Protocol +pgm 113 PGM # PGM Reliable Transport Protocol +# 114 # any 0-hop protocol +l2tp 115 L2TP # Layer Two Tunneling Protocol +ddx 116 DDX # D-II Data Exchange +iatp 117 IATP # Interactive Agent Transfer Protocol +st 118 ST # Schedule Transfer +srp 119 SRP # SpectraLink Radio Protocol +uti 120 UTI # UTI +smp 121 SMP # Simple Message Protocol +sm 122 SM # SM +ptp 123 PTP # Performance Transparency Protocol +isis 124 ISIS # ISIS over IPv4 +fire 125 FIRE +crtp 126 CRTP # Combat Radio Transport Protocol +crudp 127 CRUDP # Combat Radio User Datagram +sscopmce 128 SSCOPMCE +iplt 129 IPLT +sps 130 SPS # Secure Packet Shield +pipe 131 PIPE # Private IP Encapsulation within IP +sctp 132 SCTP # Stream Control Transmission Protocol +fc 133 FC # Fibre Channel +# 134-254 # Unassigned +divert 254 DIVERT # Divert pseudo-protocol [non IANA] +# 255 # Reserved diff --git a/source/n/network-scripts/scripts/rc.inet1 b/source/n/network-scripts/scripts/rc.inet1 new file mode 100644 index 000000000..0080f7dac --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet1 @@ -0,0 +1,276 @@ +#! /bin/sh +# /etc/rc.d/rc.inet1 +# This script is used to bring up the various network interfaces. +# +# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv) + +############################ +# READ NETWORK CONFIG FILE # +############################ + +# Get the configuration information from /etc/rc.d/rc.inet1.conf: +. /etc/rc.d/rc.inet1.conf + +########### +# LOGGING # +########### + +# If possible, log events in /var/log/messages: +if [ -f /var/run/syslogd.pid -a -x /usr/bin/logger ]; then + LOGGER=/usr/bin/logger +else # output to stdout/stderr: + LOGGER=/bin/cat +fi + +############################ +# DETERMINE INTERFACE LIST # +############################ + +# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum +# of 6 interfaces, but you can easily enlarge the interface limit +# - send me a picture of such a box :-). +# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface. +# This way, the new script is compatible with older rc.inet1.conf files. +# The IFNAME array will be used to determine which interfaces to bring up/down. +MAXNICS=${MAXNICS:-6} +i=0 +while [ $i -lt $MAXNICS ]; +do + IFNAME[$i]=${IFNAME[$i]:=eth${i}} + i=$(($i+1)) +done +if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: List of interfaces: '${IFNAME[@]}'" | $LOGGER +fi + +###################### +# LOOPBACK FUNCTIONS # +###################### + +# Function to bring up the loopback interface. If loopback is +# already up, do nothing. +lo_up() { + if grep lo: /proc/net/dev 1> /dev/null ; then + if ! /sbin/ifconfig | grep "^lo" 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1" | $LOGGER + /sbin/ifconfig lo 127.0.0.1 + echo "/etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo" | $LOGGER + /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo + fi + fi +} + +# Function to take down the loopback interface: +lo_down() { + if grep lo: /proc/net/dev 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo down" | $LOGGER + /sbin/ifconfig lo down + fi +} + +####################### +# INTERFACE FUNCTIONS # +####################### + +# Function to bring up a network interface. If the interface is +# already up or does not yet exist (perhaps because the kernel driver +# is not loaded yet), do nothing. +if_up() { + # Determine position 'i' of this interface in the IFNAME array: + i=0 + while [ $i -lt $MAXNICS ]; do + [ "${IFNAME[$i]}" = "${1}" ] && break + i=$(($i+1)) + done + # If the interface isn't in the kernel yet (but there's an alias for it in + # modules.conf), then it should be loaded first: + if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # no interface yet + if /sbin/modprobe -c | grep -v "^#" | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER + /sbin/modprobe ${1} + fi + fi + if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # interface exists + if ! /sbin/ifconfig | grep -w "${1}" 1>/dev/null || \ + ! /sbin/ifconfig ${1} | grep "inet addr" 1> /dev/null ; then # interface not up or not configured + if [ ! "${HWADDR[$i]}" = "" ]; then # Set hardware address _before_ the interface goes up: + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} hw ether ${HWADDR[$i]}" | $LOGGER + /sbin/ifconfig ${1} hw ether ${HWADDR[$i]} + fi + if [ ! "${MTU[$i]}" = "" ]; then # Set MTU to something else than 1500 + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} mtu ${MTU[$i]}" | $LOGGER + /sbin/ifconfig ${1} mtu ${MTU[$i]} + fi + if [ -x /etc/rc.d/rc.wireless ]; then + . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters + fi + if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up + [ ${DHCP_HOSTNAME[$i]} ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}" + [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -R" + [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -N" + [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G" + [ "${DHCP_DEBUG[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -d" + [ "${DHCP_NOIPV4LL[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -L" + [ ${DHCP_IPADDR[$i]} ] && DHCP_OPTIONS="$DHCP_OPTIONS -s ${DHCP_IPADDR[$i]}" + echo "Polling for DHCP server on interface ${1}:" + # If you set a timeout, you get one, even if the kernel doesn't think that + # your device is connected, in case /sys isn't right (which it usually isn't + # except right after the device is loaded, when it usually is): + #### (start commented out) + # This is deactivated for now since the kernel has been returning incorrect + # results concerning whether the interface carrier is detected. + #if [ "${DHCP_TIMEOUT[$i]}" = "" ]; then + # ifconfig ${1} up && sleep 1 + # CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)" + # ifconfig ${1} down + # if [ "$CONNSTATUS" = "0" ]; then + # # The kernel has just told us the cable isn't even plugged in, but we will + # # give any DHCP server a short chance to reply anyway: + # echo "No carrier detected on ${1}. Reducing DHCP timeout to 10 seconds." + # DHCP_TIMEOUT[$i]=10 + # fi + #fi + #### (end commented out) + # 10 seconds should be a reasonable default DHCP timeout. 30 was too much. + echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -t ${DHCP_TIMEOUT[$i]:-10} ${DHCP_OPTIONS} ${1}" | $LOGGER + /sbin/dhcpcd -t ${DHCP_TIMEOUT[$i]:-10} ${DHCP_OPTIONS} ${1} + else # bring up interface using a static IP address + if [ ! "${IPADDR[$i]}" = "" ]; then # skip unconfigured interfaces + # Determine broadcast address from the IP address and netmask: + BROADCAST[$i]=`/bin/ipmask ${NETMASK[$i]} ${IPADDR[$i]}|cut -f1 -d' '` + # Set up the network card: + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}" | $LOGGER + /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]} + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} interface is not configured in /etc/rc.d/rc.inet1.conf" | $LOGGER + fi + fi + fi + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} is already up, skipping" | $LOGGER + fi + fi + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} interface does not exist (yet)" | $LOGGER + fi + fi +} + +# Function to take down a network interface: +if_down() { + # Determine position 'i' of this interface in the IFNAME array: + i=0 + while [ $i -lt $MAXNICS ]; do + [ "${IFNAME[$i]}" = "${1}" ] && break + i=$(($i+1)) + done + if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then + if [ "${USE_DHCP[$i]}" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER + /sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ifconfig ${1} down + sleep 1 + else + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} down" | $LOGGER + /sbin/ifconfig ${1} down + fi + if [ -x /etc/rc.d/rc.wireless ]; then + . /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any. + fi + fi +} + +##################### +# GATEWAY FUNCTIONS # +##################### + +# Function to bring up the gateway if there is not yet a default route: +gateway_up() { + if ! /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then + if [ ! "$GATEWAY" = "" ]; then + echo "/etc/rc.d/rc.inet1: /sbin/route add default gw ${GATEWAY} metric 1" | $LOGGER + /sbin/route add default gw ${GATEWAY} metric 1 2>&1 | $LOGGER + fi + fi +} + +# Function to take down an existing default gateway: +gateway_down() { + if /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/route del default" | $LOGGER + /sbin/route del default + fi +} + +# Function to start the network: +start() { + lo_up + for i in ${IFNAME[@]} ; do + if_up $i + done + gateway_up +} + +# Function to stop the network: +stop() { + gateway_down + for i in ${IFNAME[@]} ; do + if_down $i + done + lo_down +} + + +############ +### MAIN ### +############ + +case "$1" in +'start') # "start" brings up all configured interfaces: + start + ;; +'stop') # "stop" takes down all configured interfaces: + stop + ;; +'restart') # "restart" restarts the network: + stop + start + ;; +*_start) # Example: "eth1_start" will start the specified interface 'eth1' + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_up $INTERFACE + gateway_up + ;; +*_stop) # Example: "eth0_stop" will stop the specified interface 'eth0' + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + ;; +*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + sleep 1 + if_up $INTERFACE + gateway_up + ;; +'up') # "up" does the same thing as "start" + start + ;; +'down') # "down" does the same thing as "stop" + stop + ;; +*_up) # "*_up" does the same thing as "*_start" + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_up $INTERFACE + gateway_up + ;; +*_down) # "*_down" does the same thing as "*_stop" + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + ;; +*) # The default is to bring up all configured interfaces: + start +esac + +# End of /etc/rc.d/rc.inet1 diff --git a/source/n/network-scripts/scripts/rc.inet1.conf b/source/n/network-scripts/scripts/rc.inet1.conf new file mode 100644 index 000000000..555210c4b --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet1.conf @@ -0,0 +1,107 @@ +# /etc/rc.d/rc.inet1.conf +# +# This file contains the configuration settings for network interfaces. +# If USE_DHCP[interface] is set to "yes", this overrides any other settings. +# If you don't have an interface, leave the settings null (""). + +# You can configure network interfaces other than eth0,eth1... by setting +# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset +# or empty, it is assumed you're configuring eth<interface>. + +# Several other parameters are available, the end of this file contains a +# comprehensive set of examples. + +# ============================================================================= + +# Config information for eth0: +IPADDR[0]="" +NETMASK[0]="" +USE_DHCP[0]="" +DHCP_HOSTNAME[0]="" + +# Config information for eth1: +IPADDR[1]="" +NETMASK[1]="" +USE_DHCP[1]="" +DHCP_HOSTNAME[1]="" + +# Config information for eth2: +IPADDR[2]="" +NETMASK[2]="" +USE_DHCP[2]="" +DHCP_HOSTNAME[2]="" + +# Config information for eth3: +IPADDR[3]="" +NETMASK[3]="" +USE_DHCP[3]="" +DHCP_HOSTNAME[3]="" + +# Default gateway IP address: +GATEWAY="" + +# Change this to "yes" for debugging output to stdout. Unfortunately, +# /sbin/hotplug seems to disable stdout so you'll only see debugging output +# when rc.inet1 is called directly. +DEBUG_ETH_UP="no" + +## Example config information for wlan0. Uncomment the lines you need and fill +## in your data. (You may not need all of these for your wireless network) +#IFNAME[4]="wlan0" +#IPADDR[4]="" +#NETMASK[4]="" +#USE_DHCP[4]="yes" +#DHCP_HOSTNAME[4]="icculus-wireless" +#DHCP_KEEPRESOLV[4]="yes" +#DHCP_KEEPNTP[4]="yes" +#DHCP_KEEPGW[4]="yes" +#DHCP_IPADDR[4]="" +#WLAN_ESSID[4]=DARKSTAR +#WLAN_MODE[4]=Managed +#WLAN_RATE[4]="54M auto" +#WLAN_CHANNEL[4]="auto" +#WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2" +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16" +#WLAN_WPA[4]="wpa_supplicant" +#WLAN_WPADRIVER[4]="wext" +#WLAN_WPAWAIT[4]=30 + +## Some examples of additional network parameters that you can use. +## Config information for wlan0: +#IFNAME[4]="wlan0" # Use a different interface name instead of + # the default 'eth4' +#IFNAME[4]="eth0:1" # Set up an IP alias. +#HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address +#MTU[4]="" # The default MTU is 1500, but you might need + # 1360 when you use NAT'ed IPSec traffic. +#DHCP_TIMEOUT[4]=15 # The default timeout for the DHCP client to + # wait for server resonse is 10 seconds, but + # you might want a shorter or longer wait. +#DHCP_KEEPRESOLV[4]="yes" # If you dont want /etc/resolv.conf overwritten +#DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten +#DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change + # your default gateway +#DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP + # server +#DHCP_DEBUG[4]="yes" # Make dhcpcd show verbose diagnostics +#DHCP_NOIPV4LL[4]="yes" # Do not assign an ipv4ll address when a DHCP + # server is not found (ipv4ll link-local + # adresses in the IP range 169.254.0.0/16 are + # also known as "zeroconf" addresses) +#WLAN_ESSID[4]=DARKSTAR # An example of how you can override _any_ + # parameter defined in rc.wireless.conf, by + # prepending 'WLAN_' to the parameter's name. + # Useful with multiple wireless interfaces. +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey" + # Some drivers require a private ioctl to be + # set through the iwpriv command. If more than + # one is required, you can place them in the + # IWPRIV parameter (separated with the pipe (|) + # character, see the example). +#WLAN_WPA[4]="wpa_supplicant" # Run wpa_supplicant for WPA support +#WLAN_WPADRIVER[4]="ndiswrapper"# Tell wpa_supplicant to specifically use the + # ndiswrapper driver (if you leave this empty + # the 'wext' driver is used by default) +#WLAN_WPAWAIT[4]=30 # In case it takes long for the WPA association + # to finish, you can increase the wait time + # (defaults to 10 seconds) diff --git a/source/n/network-scripts/scripts/rc.inet2 b/source/n/network-scripts/scripts/rc.inet2 new file mode 100644 index 000000000..232d93ecb --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet2 @@ -0,0 +1,137 @@ +#!/bin/sh +# +# rc.inet2 This shell script boots up the entire network system. +# Note, that when this script is used to also fire +# up any important remote NFS disks (like the /usr +# directory), care must be taken to actually +# have all the needed binaries online _now_ ... +# +# Uncomment or comment out sections depending on which +# services your site requires. +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# Modified for Slackware by Patrick Volkerding <volkerdi@slackware.com> + + +# At this point, we are ready to talk to The World... + + +# Mount remote (NFS) filesystems: +if cat /etc/fstab | grep -v '^#' | grep -w nfs 1> /dev/null 2> /dev/null ; then + # Start rpc.portmap, /sbin/rpc.lockd, and /sbin/rpc.statd if we find NFS + # volumes defined in /etc/fstab since these will need to be running in order + # to mount them. If they are not running, attempting to mount an NFS + # partition will cause mount to hang, or at least result in unreliable + # operation. Keep this in mind if you plan to mount unlisted NFS + # partitions... + # If you have uncommented NFS partitions in your /etc/fstab, rc.rpc is run + # whether it is set as executable or not. If you don't want to run it, + # comment the NFS partitions out in /etc/fstab or erase/rename rc.rpc. + if [ -r /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start + fi + echo "Mounting remote (NFS) file systems: /sbin/mount -a -t nfs" + /sbin/mount -a -t nfs # This may be our /usr runtime! + # Show the mounted volumes: + /sbin/mount -v -t nfs +fi + +# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd, +# and rpc.statd. This might be needed to mount NFS partitions that are not +# listed in /etc/fstab. Starting this twice won't hurt as the script will +# check if things are already running before trying to start them. +if [ -x /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start +fi + +# Mount remote CIFS filesystems. Note that where possible, using CIFS is +# preferred over SMBFS. SMBFS is no longer actively maintained. +if cat /etc/fstab | grep -v '^#' | grep -w cifs 1> /dev/null 2> /dev/null ; then + echo "Mounting remote CIFS file systems: /sbin/mount -a -t cifs" + /sbin/mount -a -t cifs + # Show the mounted volumes: + /sbin/mount -v -t cifs +fi + +# Mount remote SMB filesystems: +if cat /etc/fstab | grep -v '^#' | grep -w smbfs 1> /dev/null 2> /dev/null ; then + echo "Mounting remote SMBFS file systems: /sbin/mount -a -t smbfs" + /sbin/mount -a -t smbfs + # Show the mounted volumes: + /sbin/mount -v -t smbfs +fi + +# Start the system logger if it is not already running (maybe because /usr +# is on a network partition). +if [ -x /etc/rc.d/rc.syslog -a -d /var/log -a ! -r /var/run/syslogd.pid ]; then + . /etc/rc.d/rc.syslog start +fi + +# If there is a firewall script, run it before enabling packet forwarding. +# See the HOWTOs on http://www.netfilter.org/ for documentation on +# setting up a firewall or NAT on Linux. In some cases this might need to +# be moved past the section below dealing with IP packet forwarding. +if [ -x /etc/rc.d/rc.firewall ]; then + /etc/rc.d/rc.firewall start +fi + +# Turn on IPv4 packet forwarding support. +if [ -x /etc/rc.d/rc.ip_forward ]; then + . /etc/rc.d/rc.ip_forward start +fi + +# Start the inetd server: +if [ -x /etc/rc.d/rc.inetd ]; then + /etc/rc.d/rc.inetd start +fi + +# Start the OpenSSH SSH daemon: +if [ -x /etc/rc.d/rc.sshd ]; then + echo "Starting OpenSSH SSH daemon: /usr/sbin/sshd" + /etc/rc.d/rc.sshd start +fi + +# Start the BIND name server daemon: +if [ -x /etc/rc.d/rc.bind ]; then + /etc/rc.d/rc.bind start +fi + +# Start NIS (the Network Information Service): +if [ -x /etc/rc.d/rc.yp ]; then + . /etc/rc.d/rc.yp start +fi + +# Start the NFS server. Note that for this to work correctly, you'll +# need nfsd support in the kernel (the startup script will try to load +# the module for you). +# You'll also need to set up some shares in /etc/exports. +# Starting the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd start +fi + +# Stuff you won't need follows. ;-) + +# # Start the network routing daemon: +# if [ -x /usr/sbin/routed ]; then +# echo "Starting network routing daemon: /usr/sbin/routed" +# /usr/sbin/routed -g -s +# fi + +# # Start the system status server: +# if [ -x /usr/sbin/rwhod ]; then +# echo "Starting system status server: /usr/sbin/rwhod" +# /usr/sbin/rwhod +# fi + +# # Fire up the PC-NFS daemon(s). This is a primarily obsolete system, and may +# # not be very secure. It's not at all needed for normal NFS server support. +# # You probably should not run this. +# if [ -x /usr/sbin/rpc.pcnfsd ]; then +# echo "Starting PC-NFS daemons: /usr/sbin/rpc.pcnfsd /usr/sbin/rpc.bwnfsd" +# /usr/sbin/rpc.pcnfsd /var/spool/lpd +# fi +# if [ -x /usr/sbin/rpc.bwnfsd ]; then +# /usr/sbin/rpc.bwnfsd /var/spool/lpd +# fi + diff --git a/source/n/network-scripts/scripts/rc.ip_forward b/source/n/network-scripts/scripts/rc.ip_forward new file mode 100644 index 000000000..8940dc2cc --- /dev/null +++ b/source/n/network-scripts/scripts/rc.ip_forward @@ -0,0 +1,78 @@ +#!/bin/sh +# /etc/rc.d/rc.ip_forward: start/stop IP packet forwarding +# +# If you intend to run your Linux box as a router, i.e. as a +# computer that forwards and redistributes network packets, you +# will need to enable IP packet forwarding in your kernel. +# +# To activate IP packet forwarding at boot time, make this +# script executable: chmod 755 /etc/rc.d/rc.ip_forward +# +# To disable IP packet forwarding at boot time, make this +# script non-executable: chmod 644 /etc/rc.d/rc.ip_forward + +# Start IP packet forwarding: +ip_forward_start() { + if [ -f /proc/sys/net/ipv4/ip_forward ]; then + echo "Activating IPv4 packet forwarding." + echo 1 > /proc/sys/net/ipv4/ip_forward + # Changing /proc/sys/net/ipv4/ip_forward results in resetting all + # non-default ipv4 parameters for the interface as mentioned in + # /usr/src/linux/Documentation/networking/ip-sysctl.txt. So, we + # will reapply any ipv4 sysctl parameters now: + if [ -r /etc/sysctl.conf ]; then + /bin/grep ipv4 /etc/sysctl.conf | sysctl -p - 1> /dev/null 2> /dev/null + fi + fi + # When using IPv4 packet forwarding, you will also get the + # rp_filter, which automatically rejects incoming packets if the + # routing table entry for their source address doesn't match the + # network interface they're arriving on. This has security + # advantages because it prevents the so-called IP spoofing, + # however it can pose problems if you use asymmetric routing + # (packets from you to a host take a different path than packets + # from that host to you) or if you operate a non-routing host + # which has several IP addresses on different interfaces. To + # turn rp_filter off, uncomment the lines below: + #if [ -r /proc/sys/net/ipv4/conf/all/rp_filter ]; then + # echo "Disabling rp_filter." + # echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter + #fi +} + +# Stop IP packet forwarding: +ip_forward_stop() { + if [ -f /proc/sys/net/ipv4/ip_forward ]; then + echo "Disabling IPv4 packet forwarding." + echo 0 > /proc/sys/net/ipv4/ip_forward + # Changing /proc/sys/net/ipv4/ip_forward results in resetting all + # non-default ipv4 parameters for the interface as mentioned in + # /usr/src/linux/Documentation/networking/ip-sysctl.txt. So, we + # will reapply any ipv4 sysctl parameters now: + if [ -r /etc/sysctl.conf ]; then + /bin/grep ipv4 /etc/sysctl.conf | sysctl -p - 1> /dev/null 2> /dev/null + fi + fi +} + +# Restart IP packet forwarding: +ip_forward_restart() { + ip_forward_stop + sleep 1 + ip_forward_start +} + +case "$1" in +'start') + ip_forward_start + ;; +'stop') + ip_forward_stop + ;; +'restart') + ip_forward_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/source/n/network-scripts/scripts/resolv.conf b/source/n/network-scripts/scripts/resolv.conf new file mode 100644 index 000000000..96726f016 --- /dev/null +++ b/source/n/network-scripts/scripts/resolv.conf @@ -0,0 +1 @@ +search example.net diff --git a/source/n/network-scripts/scripts/setup.netconfig b/source/n/network-scripts/scripts/setup.netconfig new file mode 100644 index 000000000..7165a4a96 --- /dev/null +++ b/source/n/network-scripts/scripts/setup.netconfig @@ -0,0 +1,13 @@ +#!/bin/sh +#BLURB="Configure basic network settings" +TMP=/var/log/setup/tmp +dialog --title "CONFIGURE NETWORK?" --yesno "Would you like to \ +configure your network?" 5 60 +if [ $? = 0 ]; then + while [ 0 ]; do # we're gonna do this until we get it right :-) + sh sbin/netconfig $* + if [ "$?" = "0" ]; then # success + break; + fi + done +fi diff --git a/source/n/network-scripts/slack-desc b/source/n/network-scripts/slack-desc new file mode 100644 index 000000000..f30ebbf9e --- /dev/null +++ b/source/n/network-scripts/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +network-scripts: network-scripts (Scripts to configure a network) +network-scripts: +network-scripts: These are the basic scripts and files used to define a network and +network-scripts: configure network interfaces on Linux. Most of the original +network-scripts: /etc files were written by Fred N. van Kempen, or borrowed from BSD. +network-scripts: The rc.inet1 and rc.inet2 scripts were mostly written by Patrick +network-scripts: Volkerding, with suggestions and fixes from hundreds of contributors +network-scripts: over the years. +network-scripts: +network-scripts: +network-scripts: diff --git a/source/n/netwrite/netwrite-0.17.diff b/source/n/netwrite/netwrite-0.17.diff new file mode 100644 index 000000000..ae8216c70 --- /dev/null +++ b/source/n/netwrite/netwrite-0.17.diff @@ -0,0 +1,23 @@ +--- ./write/write.c.orig Sun Feb 25 18:22:21 2001 ++++ ./write/write.c Sun Feb 25 18:22:35 2001 +@@ -73,9 +73,7 @@ + #include <fcntl.h> + #include <signal.h> + #include <utmp.h> +-#if 0 +- #include <time.h> +-#endif ++#include <time.h> + #include <sys/socket.h> + #include <netinet/in.h> + #include <arpa/inet.h> +--- ./writed/writed.c.orig Sun Feb 25 18:23:17 2001 ++++ ./writed/writed.c Sun Feb 25 18:24:08 2001 +@@ -67,6 +67,7 @@ + #include <stdlib.h> + #include <errno.h> + #include <unistd.h> ++#include <sys/socket.h> + + #ifdef ultrix /* missing protos */ + struct sockaddr; diff --git a/source/n/netwrite/netwrite.SlackBuild b/source/n/netwrite/netwrite.SlackBuild new file mode 100755 index 000000000..edebb6cc1 --- /dev/null +++ b/source/n/netwrite/netwrite.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netwrite + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netwrite-$VERSION +tar xvf $CWD/netwrite-0.17.tar.gz || exit 1 +cd netwrite-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/netwrite-0.17.diff.gz | patch -p1 || exit + +./configure --prefix=/usr + +make $NUMJOBS || make || exit 1 + +# The versions in util-linux are better, but we'll keep in.writed just in case: +#cat write > $PKG/usr/bin/write +#cat write.1 | gzip -9c > $PKG/usr/man/man1/write.1.gz +( cd writed + strip writed + mkdir -p $PKG/usr/sbin + cat writed > $PKG/usr/sbin/in.writed + chmod 755 $PKG/usr/sbin/in.writed + mkdir -p $PKG/usr/man/man8 + cat writed.8 | gzip -9c > $PKG/usr/man/man8/in.writed.8.gz +) + +mkdir -p $PKG/usr/doc/netwrite-$VERSION +cp -a README $PKG/usr/doc/netwrite-$VERSION +chown root:root $PKG/usr/doc/netwrite-$VERSION/* +chmod 644 $PKG/usr/doc/netwrite-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netwrite-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netwrite/slack-desc b/source/n/netwrite/slack-desc new file mode 100644 index 000000000..3ea62c0f0 --- /dev/null +++ b/source/n/netwrite/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netwrite: netwrite (in.writed daemon for accepting network "write") +netwrite: +netwrite: Writed implements a very simple protocol that allows a write(1) +netwrite: program on one host to connect up to one on another host, allowing +netwrite: communications across the network. Writed is meant to be run from +netwrite: inetd(8) listening for TCP requests on port 811. No attempt is made +netwrite: to determine the authenticity of users sending messages. This +netwrite: program should probably not be deployed on insecure networks. +netwrite: +netwrite: +netwrite: diff --git a/source/n/newspost/newspost.SlackBuild b/source/n/newspost/newspost.SlackBuild new file mode 100755 index 000000000..99fee17e0 --- /dev/null +++ b/source/n/newspost/newspost.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-newspost + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf newspost-$VERSION +tar xvf $CWD/newspost-$VERSION.tar.gz || exit 1 +cd newspost-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +strip newspost +cat newspost > $PKG/usr/bin/newspost +chmod 755 $PKG/usr/bin/newspost + +mkdir -p $PKG/usr/man/man1 +cat man/man1/newspost.1 | gzip -9c > $PKG/usr/man/man1/newspost.1.gz + +mkdir -p $PKG/usr/doc/newspost-$VERSION +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/newspost-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/newspost-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/newspost/slack-desc b/source/n/newspost/slack-desc new file mode 100644 index 000000000..b9edc7a46 --- /dev/null +++ b/source/n/newspost/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +newspost: newspost (binary posting utility) +newspost: +newspost: Newspost is a usenet binary autoposter. It will uuencode or yencode +newspost: files and post them to usenet newsgroups. In addition, it can +newspost: automatically generate and post .SFV checksum files and .PAR parity +newspost: files. +newspost: +newspost: Newspost was mostly written by Jim Faulkner, with some help from +newspost: William McBrine. Portions borrowed from cksfv by Bryan Call, and +newspost: parchive by Willem Monsuwe. +newspost: diff --git a/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign b/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign new file mode 100644 index 000000000..3457f1ef7 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBI+KqOyGugalF9Dw4RAuC3AJ97L3+wXMajwG6cIy+8GJJUQYWi3ACgkyET +zLF2+bn5et1RX1dGiiijnhs= +=VrzL +-----END PGP SIGNATURE----- diff --git a/source/n/nfs-utils/nfs-utils.SlackBuild b/source/n/nfs-utils/nfs-utils.SlackBuild new file mode 100755 index 000000000..1e3f5cbf9 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils.SlackBuild @@ -0,0 +1,166 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + + +VERSION=1.1.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nfs-utils + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_nfs-utils.tar.gz + +# Add startup script: +cat $CWD/rc.nfsd > $PKG/etc/rc.d/rc.nfsd.new +# Off by default, unless there's a previous version that's turned on: +chmod 644 $PKG/etc/rc.d/rc.nfsd.new + +cd $TMP +rm -rf nfs-utils-$VERSION +tar xvf $CWD/nfs-utils-$VERSION.tar.bz2 || exit 1 +cd nfs-utils-$VERSION || exit 1 + +zcat $CWD/nfs-utils.lwrap.needs.lnsl.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# No NFSv4 yet -- it requires additional libraries. + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --with-statedir=/var/lib/nfs \ + --enable-nfsv3 \ + --enable-nfsv4=no \ + --enable-gss=no \ + --enable-secure-statd \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# These might be in use: +( cd $PKG/var/lib/nfs + for config_file in etab rmtab state xtab ; do + mv ${config_file} ${config_file}.new + done +) + +# No NFSv4 yet, so remove these: +rm -f $PKG/sbin/*nfs4 + +# Why were we doing this? +mkdir -p $PKG/sbin +mv $PKG/usr/sbin/rpc.statd $PKG/sbin +( cd $PKG/usr/sbin ; ln -sf ../../sbin/rpc.statd . ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/nfs-utils-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/nfs-utils-$VERSION +mkdir -p $PKG/usr/doc/nfs-utils-$VERSION/statd +cp -a \ + utils/statd/COPYING utils/statd/COPYRIGHT utils/statd/TODO \ + $PKG/usr/doc/nfs-utils-$VERSION/statd + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +EOF +( cd $PKG/var/lib/nfs + for config_file in etab.new rmtab.new state.new xtab.new ; do + if [ -r ${config_file} ]; then + echo "config var/lib/nfs/${config_file}" >> $PKG/install/doinst.sh + fi + done +) +# If these aren't moved into place, they're junk: +echo "rm -f var/lib/nfs/*.new" >> $PKG/install/doinst.sh +cat << EOF >> $PKG/install/doinst.sh +if [ -x etc/rc.d/rc.nfsd ]; then + chmod 755 etc/rc.d/rc.nfsd.new +else + chmod 644 etc/rc.d/rc.nfsd.new +fi +config etc/rc.d/rc.nfsd.new +config etc/exports.new +EOF + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/nfs-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff b/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff new file mode 100644 index 000000000..c49196fe3 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff @@ -0,0 +1,11 @@ +--- ./configure.orig 2008-03-20 06:20:01.000000000 -0500 ++++ ./configure 2008-03-31 17:19:22.000000000 -0500 +@@ -3933,7 +3933,7 @@ + CPPFLAGS="-I${with_tcpw} ${CPPFLAGS}" + fi + fi +- LIBWRAP="-lwrap" ++ LIBWRAP="-lwrap -lnsl" + LIBS="$LIBWRAP $LIBS" + { echo "$as_me:$LINENO: checking for libwrap" >&5 + echo $ECHO_N "checking for libwrap... $ECHO_C" >&6; } diff --git a/source/n/nfs-utils/rc.nfsd b/source/n/nfs-utils/rc.nfsd new file mode 100644 index 000000000..f21133829 --- /dev/null +++ b/source/n/nfs-utils/rc.nfsd @@ -0,0 +1,98 @@ +#!/bin/sh +# Start/stop/restart the NFS server. +# +# This is an init script for the knfsd NFS daemons. +# To use NFS, you must first set up /etc/exports. +# See exports(5) for information on /etc/exports format. +# +# Written for Slackware Linux by Patrick J. Volkerding <volkerdi@slackware.com>. + +nfsd_start() { + # Sanity checks. Exit if there's no /etc/exports, or if there aren't any + # shares defined in it. + if [ ! -r /etc/exports ]; then # no config file, exit: + exit + elif ! grep -v '^#' /etc/exports | grep '/' 1> /dev/null 2> /dev/null ; then + exit # no uncommented shares in /etc/exports + fi + + # First, make sure the nfsd kernel module is loaded. You can comment this + # part out if you've built nfsd support directly into the kernel. + if [ -z "`/sbin/lsmod | grep "^nfsd "`" ]; then + /sbin/modprobe nfsd + fi + + # For kernels newer than 2.4.x, use the new way of handling nfs client requests. + if [ ! "$(/bin/uname -r | /bin/cut -f 1,2 -d .)" = "2.4" ]; then + if grep -wq nfsd /proc/filesystems 2> /dev/null ; then + if grep -vwq nfsd /proc/mounts 2> /dev/null ; then + /sbin/mount -t nfsd nfsd /proc/fs/nfs 2> /dev/null + fi + fi + fi + + # If basic RPC services are not running, start them: + if ! ps axc | grep -q rpc.statd ; then + if [ -r /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start + else + # Sure, we tested for rpc.statd, but this is the probable cause: + echo "FATAL: Can't start NFS server without portmap package." + sleep 5 + exit 1 + fi + fi + + echo "Starting NFS server daemons:" + + if [ -x /usr/sbin/exportfs ]; then + echo " /usr/sbin/exportfs -r" + /usr/sbin/exportfs -r + fi + + if [ -x /usr/sbin/rpc.rquotad ]; then + echo " /usr/sbin/rpc.rquotad" + /usr/sbin/rpc.rquotad + fi + + # Start 8 nfsd servers by default (an old Sun standard): + if [ -x /usr/sbin/rpc.nfsd ]; then + echo " /usr/sbin/rpc.nfsd 8" + /usr/sbin/rpc.nfsd 8 + fi + + if [ -x /usr/sbin/rpc.mountd ]; then + echo " /usr/sbin/rpc.mountd" + /usr/sbin/rpc.mountd + fi + +} + +nfsd_stop() { + killall rpc.mountd 2> /dev/null + killall nfsd 2> /dev/null + sleep 1 + killall -9 nfsd 2> /dev/null # make sure :) + killall rpc.rquotad 2> /dev/null + /usr/sbin/exportfs -au 2> /dev/null +} + +nfsd_restart() { + nfsd_stop + sleep 1 + nfsd_start +} + +case "$1" in +'start') + nfsd_start + ;; +'stop') + nfsd_stop + ;; +'restart') + nfsd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/nfs-utils/slack-desc b/source/n/nfs-utils/slack-desc new file mode 100644 index 000000000..158b4a97c --- /dev/null +++ b/source/n/nfs-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nfs-utils: nfs-utils (Network File System daemons and utilities) +nfs-utils: +nfs-utils: The nfs-utils package contains the necessary daemons and utilities to +nfs-utils: run an NFS server on Linux. +nfs-utils: +nfs-utils: You'll also need the portmap package to use NFS. +nfs-utils: +nfs-utils: +nfs-utils: +nfs-utils: +nfs-utils: diff --git a/source/n/nmap/nmap.SlackBuild b/source/n/nmap/nmap.SlackBuild new file mode 100755 index 000000000..ddf13b9e6 --- /dev/null +++ b/source/n/nmap/nmap.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + +VERSION=${PKGVERSION:-5.00} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nmap + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf nmap-$VERSION +tar xvf $CWD/nmap-$VERSION.tar.?z* || exit 1 +cd nmap-$VERSION || exit 1 + +zcat $CWD/nmap.ndiff.mandir.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/nmap-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/nmap-$VERSION +cp -a COPYING* HACKING INSTALL $PKG/usr/doc/nmap-$VERSION +( cd docs + # It looks like all of these translations are gone from the 4.00+ tarball, and + # most of them are not available on the web site. Sorry -- I didn't do it. + if [ -f nmap_german.1 ] ; then + mkdir -p $PKG/usr/man/de/man1 + cat nmap_german.1 | gzip -9c > $PKG/usr/man/de/man1/nmap.1.gz + fi + if [ -f nmap_spanish.1 ] ; then + mkdir -p $PKG/usr/man/es/man1 + cat nmap_spanish.1 | gzip -9c > $PKG/usr/man/es/man1/nmap.1.gz + fi + if [ -f nmap_french.1 ] ; then + mkdir -p $PKG/usr/man/fr/man1 + cat nmap_french.1 | gzip -9c > $PKG/usr/man/fr/man1/nmap.1.gz + fi + if [ -f nmap_italian.1 ] ; then + mkdir -p $PKG/usr/man/it/man1 + cat nmap_italian.1 | gzip -9c > $PKG/usr/man/it/man1/nmap.1.gz + fi + if [ -f nmap_lithuanian.1 ] ; then + mkdir -p $PKG/usr/man/lt/man1 + cat nmap_lithuanian.1 | gzip -9c > $PKG/usr/man/lt/man1/nmap.1.gz + fi + if [ -f nmap_portuguese.1 ] ; then + mkdir -p $PKG/usr/man/pt/man1 + cat nmap_portuguese.1 | gzip -9c > $PKG/usr/man/pt/man1/nmap.1.gz + fi + if [ -f nmap_russian.1 ] ; then + mkdir -p $PKG/usr/man/ru/man1 + cat nmap_russian.1 | gzip -9c > $PKG/usr/man/ru/man1/nmap.1.gz + fi +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/nmap-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nmap/nmap.ndiff.mandir.diff b/source/n/nmap/nmap.ndiff.mandir.diff new file mode 100644 index 000000000..597a31b92 --- /dev/null +++ b/source/n/nmap/nmap.ndiff.mandir.diff @@ -0,0 +1,9 @@ +--- ./ndiff/setup.py.orig 2009-04-20 14:15:00.000000000 -0500 ++++ ./ndiff/setup.py 2009-04-30 17:28:56.000000000 -0500 +@@ -29,5 +29,5 @@ + + "Installing your distribution's python-dev package may solve this problem.") + + distutils.core.setup(name = u"ndiff", scripts = [u"ndiff"], +- data_files = [(u"share/man/man1", [u"docs/ndiff.1"])], ++ data_files = [(u"man/man1", [u"docs/ndiff.1"])], + cmdclass = {"install_egg_info": null_command, "install": checked_install}) diff --git a/source/n/nmap/slack-desc b/source/n/nmap/slack-desc new file mode 100644 index 000000000..89e96372e --- /dev/null +++ b/source/n/nmap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nmap: nmap (network scanner) +nmap: +nmap: Nmap ("Network Mapper") is an open source utility for network +nmap: exploration or security auditing. It was designed to rapidly scan +nmap: large networks, although it works fine against single hosts. Nmap +nmap: uses raw IP packets in novel ways to determine what hosts are +nmap: available on the network, what services (ports) they are offering, +nmap: what operating system (and OS version) they are running, what type of +nmap: packet filters/firewalls are in use, and dozens of other +nmap: characteristics. Nmap runs on most types of computers, and both +nmap: console and graphical versions are available. diff --git a/source/n/nn/NNTP b/source/n/nn/NNTP new file mode 100644 index 000000000..08400bdcb --- /dev/null +++ b/source/n/nn/NNTP @@ -0,0 +1,280 @@ + NNTP SUPPORT + ------------ + +This file describes the NNTP support available in nn release 6.5. The +NNTP support was implemented by Rene' Seindal, seindal@diku.dk. + + + PREREQUISITES + ------------- + +First of all, you need read-access to an NNTP-server, and if you want +to post, the server must allow that. + +If you have news on one of your systems, and want to run an NNTP +server on that system to feed other local systems, you need to get and +install the nntp-1.5 distribution with at least patches 1-3 (I think +patch 8 is the latest). It is available from several ftp-sites in the +USA. It is also available on freja.diku.dk (ip 129.142.96.1). + +However, just to run nn on you local system with or without NNTP, you +don't need anything besides the nn 6.5 distribution!! + +The necessary modules to access a remote NNTP server is an integrated +part of nn, so if you specify to use NNTP, the necessary code is +automatically included. + + HOW IT WORKS + ------------ + +NNTP is supported both in nn and nnmaster. When NNTP is used, the +database with the header information used by nn is still maintained on +the local system (because NNTP does not know about the nn database +(yet?)). + +When the master is set up to use NNTP, it will connect to the NNTP- +server in each iteration of the collection (the interval set with -r), +get a copy of the active file, and incorporate the new articles into the +database. To do this, the master will temporarily transfer one article +at a time from the NNTP-server to the local system. + +When the articles are read with nn, it will use the local database to +present the menus, and fetch the articles from the NNTP-server as they +are requested by the user. It will connect to the NNTP server the first +time it is necessary to fetch an article. + +Neither nnmaster, nor nn will use NNTP if they run on the NNTP-server +itself (they will directly access the news files). + +Both nn and nnmaster access the server in reading mode. The master and +all client MUST use the same server at all times, since the local +database contains article numbers, that are only unique for each +NNTP-server. + + + SHARING THE DATABASE + -------------------- + +You must also decide whether you want to share the database between your +local news clients, and how you are going to do it. + +The database will take up some disk space, normally about 1Mb per 10.000 +articles. There are several ways to manage this space. + +This simplest solution, is to let each client run it own master, i.e., +have its own database. This means, of course, no sharing. + +Alternatively, one host can run the master, and distribute the database +to the others via e.g., rdist. This doesn't save disk space, but saves +load on the NNTP-server. + +Last, the database can be shared with NFS/RFS (see the description of +NETWORK_DATABASE in the config.h file). + +The possibility of making a `nndb-server' stands open. It could be +realized either as a separate server, running under inetd, or it could +be incorporated into nntpd. It has not been implemented, but might be +part of a future release (any volunteers?). + + + CONFIGURATION + ------------- + +To use NNTP in nn, you must edit the relevant parts of config.h: + +NNTP + You enable the use of NNTP by defining the macro NNTP. + +NNTP_SERVER + Both the master and the clients will look up their NNTP-server + in the file given by the macro NNTP_SERVER. If the name is not + an absolute path name, it is taken to be relative to + LIB_DIRECTORY. + + The format of the file is compatible with the one used in + clientlib.c in the nntp-1.5 distribution, i.e., the first + non-blank line, not starting with '#' is taken to be the name of + the NNTP-server. This file MUST be present, and must contain a + valid host name. + +NEWS_LIB_DIRECTORY & INEWS + If either is defined, they specify the destination of the + mini-inews program when installed below with INEWS being used + if both are defined. If neither is defined, it will be + installed in /usr/lib/news/inews. + + + TUNING + ------ + +Both the server and each client maintains a cache of recently accessed +articles, to minimize communication with the server (mainly to avoid +fetching large digests continuously). The master needs the cache when +it splits digests, and the clients need it, because nn has a tendency to +reopen the articles several times. + +The master's cache is kept in LIB_DIRECTORY, and each client's cache are +kept in the users .nn directory. The constant NNTPCACHE (defined in +nntp.c but can be redefined in config.h) defines the size of the cache, +whose optimal size depends on the amount of news kept on line on the +NNTP-server. Values of 5-10 gives reasonable results. The effect is +most striking when reading digested news. + +The location and size of the cache can also be changed on a per-user +basis via the related nntp- variables (see nn.1). + + + INSTALLATION + ------------ + +Making and installing nn using NNTP does not differ from a non-NNTP nn +installation, except for the differences in the configuration and the +need to specify the NNTP server in the NNTP_SERVER file. + +Notice however, that the NNTP_SERVER file must be properly initialized +before doing the 'make initdb'. + +If something goes wrong in the initialization of the database, you will +have to run 'nnmaster -I' again by hand. + + + ERROR HANDLING + -------------- + +The handling of errors have been improved since the initial release. + +The master will handle most errors by closing the connection, and +returning to the main loop. All errors in the master are logged, with +a code of `N,' so they can be inspected with the `n' command in +nnadmin's Log menu. + +A few errors are considere fatal. If any of these occur operation will +be discontinued. These errors are such as failure to find the NNTP +server, failure to find the NNTP service, and responses from the NNTP +server in the 500 range (ill-formed requests, access denied, ...) + +NNTP server timeouts are handled specially. If the NNTP server times +out, both nn and the master will attempt to restart it (by connecting +again). This shouldn't happen in the master (which won't leave sockets +idle for that long), but it can easily happen in nn, if it is left +suspended for too long. If the server responds with code 400 (Service +discontinued), a reconnect is also tried. + + + PROBLEMS + -------- + +I am not certain what should happen if the server sends back responses +in the 1xx range. I do not know whether a NNTP server is allowed to +return one of these responses on its own initiative. If it is, nn +should probably ignore (or display) the messages. Currently, nothing is +done to treat these responses in any way. + +I have seen a strange thing happen to the master, which I have not been +able to reproduce. The master ran on a Sun-4 running SunOS 4.0, and the +NNTP server was a VAX 785 running MORE/bsd. The NNTP software was +version 1.5.3. The master was stuck in a read from the NNTP server. A +netstat on the Sun show an established connection to nntpd on the Vax, +but a netstat on the Vasx did not show any NNTP connections. There was +no nntpd running, and no messages on the console indicating any +failures. + +[ It is now known that this problem is related to the socket not + having the KEEP ALIVE flag set, but I have not got the necessary + patches to fix it, ++Kim ] + + + SPONTANEOUS NNTP ERROR 502 + -------------------------- + +Sometimes nn or nnmaster may stop with the following message: + + NNTP 502 You only have permission to transfer, sorry. + +This particular case is probably the result of the NNTP server trying to +turn your IP address into a fully qualified domain name (FQDN) so it can +look you up in its access file. + +The NNTP server probably uses the domain name server (DNS) to map IP +addresses into FQDNs. If the local DNS doesn't already know the answer, it +has to go out over the network to find it. This can take a few seconds, and +the library routine that does all this for the NNTP server might time out +before the answer gets back to it. If this happens, the NNTP server doesn't +know your FQDN, so it gives you the default access specified in the server's +nntp_access file, which is usually "xfer" (article transfer only). + +In the time it takes for you to run nn again the DNS usuallu has its answer +back, so things usually work the second time. + +One way to work around this problem is to specify the IP address of the +client in the nntp server's access file; then it is not necessary to lookup +the FQDN. + +Thanks to Tim Ramsey and Nick Sayer for this information. + + + DEBUGGING NNTP CONNECTIONS + -------------------------- + +If you want to debug the nntp connection, you can run the nnmaster +with the option -D2 (or -D3 which also turns on the normal -D verbose +output). In the nn client, you can turn on the nntp-debug variable in +the init file. + +The debug output from nnmaster will be placed in $TMP/nnmaster.log +while the output in the client will appear on the message line. + + + POSSIBLE EXTENTIONS TO THE NNTP SERVER + -------------------------------------- + +The new expire method used in release 6.5 is very efficient on local +systems, because it will just read the spool directories to get a list +of available articles in each group. + +However, with nntp, the only way I know of to get a list of available +articles in a group with nntp is the XHDR request. However, this will +open every article in the group to extract the desired field, but the +only thing I am interested in is the article number itself. + +So I suggest to add a LISTGROUP request to the NNTP server to return +the equivalent of + ls $GROUPDIR | sed -n '/^[0-9][0-9]*$/p' +(in any order - nnmaster will sort the list itself). + +Currently nnmaster will test whether this request works before using +the XHDR request, so no changes to nnmaster will be required to take +advantage of such a fix. + + +Another possible performance increase would be if there was a request +to get the current modification time of the ACTIVE file. This is the +check nnmaster will do to see if there might be work to do on a local +system, but with NNTP it has to read the active file from the server +and compare it to a local copy to determine whether there is work to +do. A simple ACTIVESTAT request returning the active file's age and +size would fix this. + +Currently nnmaster is not prepared to use such a request, but it would +be easy to add. + + + ALTERNATIVES + ------------ + +Alternative implementations can be conceived, especially in the master. +The master normally collects articles by rereading the active file, +looking for changed article numbers. For each group with new articles, +it reads the new articles and adds them to the database. This scheme +has been kept in the NNTP-based master, to keep the changes at a +minimum. + +An alternative solution could be to use NEWNEWS to get a list of new +articles since last collect, and fetch each article in sequence. The +newsgroups and article numbers within each group could then be found in +the Xref: field. This would probably improve efficiency, since the +master would then generate fewer failing requests (for non-existent +articles), and it would only read cross-posted articles once. This +solution would, however, require some surgery on the current structure +of the masters main loop. + diff --git a/source/n/nn/doinst.sh b/source/n/nn/doinst.sh new file mode 100644 index 000000000..80f6fce0d --- /dev/null +++ b/source/n/nn/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nntpserver.new +# If you already have a different etc/nntpserver then this one is useless: +rm -f etc/nntpserver.new + diff --git a/source/n/nn/nn.SlackBuild b/source/n/nn/nn.SlackBuild new file mode 100755 index 000000000..45b694375 --- /dev/null +++ b/source/n/nn/nn.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2002-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=6.7.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nn + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf nn-$VERSION +tar xvf $CWD/nn-$VERSION.tar.bz2 || exit 1 +cd nn-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/nn.diff.gz | sed -e "s#/usr/lib/nn#/usr/lib${LIBDIRSUFFIX}/nn#" \ + | patch -p1 --verbose || exit 1 +zcat $CWD/nn.badnntphost.diff.gz | patch -p1 --verbose || exit 1 +# Taken from slamd64 (who adapted an old Ubuntu patch); +# Besides adding DESTDIR support, it gets rid of the hardlinks that are created: +zcat $CWD/nn.destdir.diff.gz | patch -p1 --verbose || exit 1 + +cp config.h-dist config.h +make all + +echo "*** USE install option 's'" +sleep 5 +mkdir -p $PKG/etc $PKG/usr/bin $PKG/usr/lib${LIBDIRSUFFIX} $PKG/usr/man/man{1,8} +DESTDIR=$PKG ./inst + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +zcat $CWD/nntpserver.gz > $PKG/etc/nntpserver.new + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/nn-$VERSION +cp -a \ + INSTALLATION README \ + $PKG/usr/doc/nn-$VERSION +# This might be useful, so we'll put it in the docs just in case: +cp -a \ + $CWD/NNTP.gz \ + $PKG/usr/doc/nn-$VERSION + gzip -d $PKG/usr/doc/nn-$VERSION/NNTP.gz + chmod 644 $PKG/usr/doc/nn-$VERSION/NNTP +mkdir -p $PKG/usr/doc/nn-$VERSION/contrib +( cd contrib ; cp -a \ + README aspell cn howto-metamail mail-alias \ + nn_elm nn-use-mh nnsum recmail.c recmail.sh \ + $PKG/usr/doc/nn-$VERSION/contrib ) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/nn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nn/nn.badnntphost.diff b/source/n/nn/nn.badnntphost.diff new file mode 100644 index 000000000..919b7d42e --- /dev/null +++ b/source/n/nn/nn.badnntphost.diff @@ -0,0 +1,14 @@ +--- ./nntp.c.orig 2005-04-19 18:06:51.000000000 -0500 ++++ ./nntp.c 2006-06-27 17:14:32.000000000 -0500 +@@ -913,8 +913,9 @@ + + if ((hp = gethostbyname(nntp_server)) != NULL) + server_real_name = hp->h_name; +- else +- nn_exitmsg(1, "NNTPSERVER is invalid"); ++ else { ++ nn_exitmsg(1, "NNTP host is invalid -- please edit /etc/nntpserver"); ++ } + use_nntp = (strcmp(host_name, server_real_name) != 0); + + if (use_nntp) { diff --git a/source/n/nn/nn.destdir.diff b/source/n/nn/nn.destdir.diff new file mode 100644 index 000000000..fe4bdf04b --- /dev/null +++ b/source/n/nn/nn.destdir.diff @@ -0,0 +1,179 @@ +# Taken from the Slamd64 repository +# Thanks Fred/Frank +--- nn-6.7.3/inst.sh.orig 2006-08-14 00:19:40.000000000 +0100 ++++ nn-6.7.3/inst.sh 2006-08-14 00:32:12.000000000 +0100 +@@ -60,11 +60,11 @@ + fi + fi + +-set $RECMAIL +-if [ ! -f "$1" ] +-then +- echo ERROR: Mailer program $RECMAIL not found. +-fi ++#set $RECMAIL ++#if [ ! -f "$1" ] ++#then ++# echo ERROR: Mailer program $RECMAIL not found. ++#fi + ) > ErrorCheck + + if [ -s ErrorCheck ] +@@ -246,69 +246,69 @@ + + bin) + echo +- if [ ! -d "$BIN"/. ] ++ if [ ! -d "$DESTDIR/$BIN"/. ] + then +- echo Directory $BIN does not found! ++ echo Directory $DESTDIR/$BIN does not found! + exit 1 + fi + +- echo Installing user programs in $BIN ++ echo Installing user programs in $DESTDIR/$BIN + +- if [ -f $BIN/nn ] ++ if [ -f $DESTDIR/$BIN/nn ] + then + ( +- cd $BIN ++ cd $DESTDIR/$BIN + mv nn nn.old +- rm -f $BIN_PROG $BIN_LINK ++ rm -f $BIN_PROG $DESTDIR/$BIN_LINK + ) + fi + + for prog in $BIN_PROG + do +- ./inst copy 755 $BIN $prog ++ ./inst copy 755 $DESTDIR/$BIN $prog + done + + for link in $BIN_LINK + do +- ln $BIN/nn $BIN/$link ++ ln -s nn $DESTDIR/$BIN/$link + echo $link linked to nn + done + +- if [ -f $BIN/nnacct ] ; then +- chmod 4755 $BIN/nnacct ++ if [ -f $DESTDIR/$BIN/nnacct ] ; then ++ chmod 4755 $DESTDIR/$BIN/nnacct + echo nnacct is setuid ${OWNER}. + fi + ;; + + aux) + echo +- ./inst mkdir $LIB 755 || exit 1 ++ ./inst mkdir $DESTDIR/$LIB 755 || exit 1 + + echo Installing auxiliary programs in $LIB + + for prog in $LIB_PROG + do +- ./inst copy 755 $LIB $prog ++ ./inst copy 755 $DESTDIR/$LIB $prog + done + +- ./mkprefix conf > ${LIB}/conf ++ ./mkprefix conf > $DESTDIR/${LIB}/conf + grep "^#" config.h | +- sed -e '/_MAN_/d' -e 's/[ ]*\/\*.*$//' >> ${LIB}/conf +- ./inst chmod 644 ${LIB}/conf ++ sed -e '/_MAN_/d' -e 's/[ ]*\/\*.*$//' >> $DESTDIR/${LIB}/conf ++ ./inst chmod 644 $DESTDIR/${LIB}/conf + ;; + + help) +- ./inst mkdir $HELP 755 || exit 1 ++ ./inst mkdir $DESTDIR/$HELP 755 || exit 1 + + echo +- echo Installing help files in $HELP ++ echo Installing help files in $DESTDIR/$HELP + + cd help + for h in * + do + cd .. +- ./cvt-help < help/$h > $HELP/$h +- ./inst chmod 644 $HELP/$h ++ ./cvt-help < help/$h > $DESTDIR/$HELP/$h ++ ./inst chmod 644 $DESTDIR/$HELP/$h + echo $h + cd help + done +@@ -327,32 +327,35 @@ + } | + while read DIR SECT SRC + do +- if [ -d "$DIR"/. ] ++ if [ -d "$DESTDIR/$DIR"/. ] + then + for i in man/*$SRC + do + MAN=`basename ${i} $SRC` +- NEW=$DIR/${MAN}.$SECT +- sed -e '/^\.TH /s/6.7/'${PL}'/' $i > $NEW +- ./inst chmod 644 $NEW +- echo $MAN in $NEW ++ if [ $MAN != 'nnmaster' ] ++ then ++ NEW=$DESTDIR/$DIR/${MAN}.$SECT ++ sed -e '/^\.TH /s/6.7/'${PL}'/' $i > $NEW ++ ./inst chmod 644 $NEW ++ echo $MAN in $NEW ++ fi + done + else +- echo $DIR not found or not writeable ++ echo $DESTDIR/$DIR not found or not writeable + fi + done + ;; + + online) +- ./inst mkdir $HELP 755 || exit 1 ++ ./inst mkdir $DESTDIR/$HELP 755 || exit 1 + + MAN=$HELP/Manual + + echo +- echo "Formatting online manual $MAN" ++ echo "Formatting online manual $DESTDIR/$MAN" + echo ".... (continues in background) ...." + +- rm -f $MAN ++ rm -f $DESTDIR/$MAN + + ( + sed -e 's/\\f[BPI]//g' \ +@@ -362,9 +365,9 @@ + -e '/^\.if/d' -e '/^\.ta/d' -e '/^\.nr/d' \ + -e '/^\.in/d' -e 's/^\.[BI] //' \ + `ls -1 man/*.? man/*.??` | +- ${AWK} -f format.awk - > $MAN ++ ${AWK} -f format.awk - > $DESTDIR/$MAN + +- ./inst chmod 644 $MAN ++ ./inst chmod 644 $DESTDIR/$MAN + ) & + ;; + +@@ -502,9 +505,9 @@ + + done + +-if [ -f $LOG ] ++if [ -f $DESTDIR/$LOG ] + then +- chmod 666 $LOG ++ chmod 666 $DESTDIR/$LOG + fi + + if $PAUSE diff --git a/source/n/nn/nn.diff b/source/n/nn/nn.diff new file mode 100644 index 000000000..04ec3c4c2 --- /dev/null +++ b/source/n/nn/nn.diff @@ -0,0 +1,85 @@ +--- ./config.h-dist.orig 2005-04-01 14:44:22.000000000 -0600 ++++ ./config.h-dist 2006-06-27 16:33:00.000000000 -0500 +@@ -45,7 +45,7 @@ + #define DO_NOV_DIGEST + + /* Optional */ +-/* #define NOV_DIRECTORY "/usr/spool/news" */ ++#define NOV_DIRECTORY "/var/spool/news/over.view" + + /* Optional */ + /* #define NOV_FILENAME ".overview" */ +@@ -68,7 +68,7 @@ + * LIB_DIRECTORY defined below. + */ + +-#define NNTP_SERVER "/usr/local/lib/nntp_server" ++#define NNTP_SERVER "/etc/nntpserver" + + /* + * Define your local domain name. If you leave this undefined, nn will +@@ -95,7 +95,7 @@ + * conf/s-template.h as a starting point for writing you own. + */ + +-#include "s-sunos5.h" ++#include "s-linux.h" + + /* + * Define DEFAULT_PAGER as the initial value of the 'pager' variable. +@@ -111,7 +111,7 @@ + */ + + /* #define DEFAULT_PRINTER "lp -s" */ /* System V */ +-#define DEFAULT_PRINTER "lpr -p -JNEWS" /* bsd */ ++#define DEFAULT_PRINTER "lpr -JNEWS" /* bsd */ + + + /********************** MACHINE DEPENDENT DEFINITIONS ********************** +@@ -173,8 +173,8 @@ + * (= LIB_DIRECTORY/Log if undefined). + */ + +-#define BIN_DIRECTORY "/usr/local/bin" +-#define LIB_DIRECTORY "/usr/local/lib/nn" ++#define BIN_DIRECTORY "/usr/bin" ++#define LIB_DIRECTORY "/usr/lib/nn" + + + /*************************** MAIL INTERFACE ************************* +@@ -189,7 +189,7 @@ + */ + + /* #define REC_MAIL "/usr/lib/news/recmail" */ /* non-sendmail */ +-#define REC_MAIL "/usr/lib/sendmail -t" /* sendmail */ ++#define REC_MAIL "/usr/sbin/sendmail -t" /* sendmail */ + + /* + * nn needs to know the name of your host. +@@ -237,13 +237,13 @@ + * DAEMON_MAN - nnmaster + */ + +-#define USER_MAN_DIR "/usr/local/man/man1" ++#define USER_MAN_DIR "/usr/man/man1" + #define USER_MAN_SECTION "1" + +-#define SYS_MAN_DIR "/usr/local/man/man1" ++#define SYS_MAN_DIR "/usr/man/man1" + #define SYS_MAN_SECTION "1m" + +-#define DAEMON_MAN_DIR "/usr/local/man/man8" ++#define DAEMON_MAN_DIR "/usr/man/man8" + #define DAEMON_MAN_SECTION "8" + + +@@ -425,7 +425,7 @@ + * Default: NEWS_LIB_DIR/{rm,del}group + */ + +-/* #define NEWS_DIRECTORY "/usr/spool/news" */ +-/* #define NEWS_LIB_DIRECTORY "/usr/lib/news" */ ++/* #define NEWS_DIRECTORY "/var/spool/news" */ ++/* #define NEWS_LIB_DIRECTORY "/var/lib/news" */ + + /************************ CONFIGURATION COMPLETED ************************/ diff --git a/source/n/nn/nntpserver b/source/n/nn/nntpserver new file mode 100644 index 000000000..3fa9a61b1 --- /dev/null +++ b/source/n/nn/nntpserver @@ -0,0 +1 @@ +news.my_news_server.com diff --git a/source/n/nn/slack-desc b/source/n/nn/slack-desc new file mode 100644 index 000000000..8caf48da7 --- /dev/null +++ b/source/n/nn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nn: nn (the NN newsreader) +nn: +nn: nn is an easy to use menu driven newsreader by Kim F. Storm. +nn: +nn: nn stands for "No News is good news", and the nn newsreader is +nn: designed to let you minimize the amount of time you spend reading news +nn: (or, more realistically, to let you to read even more newsgroups :-). +nn: This version of nn reads news from a news server via NNTP, and can +nn: make use of your NNTP server's NOV database. +nn: +nn: diff --git a/source/n/ntp/doinst.sh b/source/n/ntp/doinst.sh new file mode 100644 index 000000000..1e74ce442 --- /dev/null +++ b/source/n/ntp/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ntp.conf.new +config etc/ntp/ntp.keys.new +if [ -r etc/rc.d/rc.ntpd -a -r etc/rc.d/rc.ntpd.new ]; then + chmod --reference=etc/rc.d/rc.ntpd etc/rc.d/rc.ntpd.new +fi +config etc/rc.d/rc.ntpd.new diff --git a/source/n/ntp/ntp.SlackBuild b/source/n/ntp/ntp.SlackBuild new file mode 100755 index 000000000..93ff1ee82 --- /dev/null +++ b/source/n/ntp/ntp.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=4.2.4p7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ntp + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ntp-${VERSION}* +tar xvf $CWD/ntp-${VERSION}*.tar.?z* || exit 1 +cd ntp-${VERSION}* || exit 1 +chown -R root:root . +find . \ + \( -perm 2777 -o -perm 2755 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 777 -o -perm 775 -o -perm 774 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --bindir=/usr/sbin \ + --sbindir=/usr/sbin \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Since the Makefile's install pays no heed to the --bindir settings, +# we'll move things to where they've always been ourselves: +mv $PKG/usr/bin/* $PKG/usr/sbin +rmdir $PKG/usr/bin + +# This is just epty: +rmdir $PKG/usr/lib || exit 1 + +mkdir -p $PKG/etc/ntp +cat $CWD/ntp.conf > $PKG/etc/ntp.conf.new +cat $CWD/ntp.keys > $PKG/etc/ntp/ntp.keys.new +chmod 600 $PKG/etc/ntp/ntp.keys.new +touch $PKG/etc/ntp/step-tickers + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.ntpd > $PKG/etc/rc.d/rc.ntpd.new + +mkdir -p $PKG/usr/doc/ntp-$VERSION +cp -a \ + COPYRIGHT NEWS README* TODO WHERE-TO-START \ + *.y2kfixes clockstuff conf html scripts \ + $PKG/usr/doc/ntp-$VERSION +mkdir $PKG/usr/doc/ntp-$VERSION/util +cp -a util/README $PKG/usr/doc/ntp-$VERSION/util +mkdir $PKG/usr/doc/ntp-$VERSION/ntpdate +cp -a ntpdate/README $PKG/usr/doc/ntp-$VERSION/ntpdate +( cd $PKG/usr/doc/ntp-$VERSION + find . -type d -name .deps -exec rm -rf {} \; 2> /dev/null +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ntp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ntp/ntp.conf b/source/n/ntp/ntp.conf new file mode 100644 index 000000000..b2476786e --- /dev/null +++ b/source/n/ntp/ntp.conf @@ -0,0 +1,44 @@ +# Sample /etc/ntp.conf: Configuration file for ntpd. +# +# Undisciplined Local Clock. This is a fake driver intended for backup +# and when no outside source of synchronized time is available. The +# default stratum is usually 3, but in this case we elect to use stratum +# 0. Since the server line does not have the prefer keyword, this driver +# is never used for synchronization, unless no other other +# synchronization source is available. In case the local host is +# controlled by some external source, such as an external oscillator or +# another protocol, the prefer keyword would cause the local host to +# disregard all other synchronization sources, unless the kernel +# modifications are in use and declare an unsynchronized condition. +# +server 127.127.1.0 # local clock +fudge 127.127.1.0 stratum 10 +#server pool.ntp.org + +# +# Drift file. Put this in a directory which the daemon can write to. +# No symbolic links allowed, either, since the daemon updates the file +# by creating a temporary in the same directory and then rename()'ing +# it to the file. +# +driftfile /etc/ntp/drift +multicastclient # listen on default 224.0.1.1 +broadcastdelay 0.008 + +# +# Keys file. If you want to diddle your server at run time, make a +# keys file (mode 600 for sure) and define the key number to be +# used for making requests. +# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote +# systems might be able to reset your clock at will. +# +#keys /etc/ntp/keys +#trustedkey 65535 +#requestkey 65535 +#controlkey 65535 + +# Don't serve time or stats to anyone else by default (more secure) +restrict default noquery nomodify +# Trust ourselves. :-) +restrict 127.0.0.1 + diff --git a/source/n/ntp/ntp.keys b/source/n/ntp/ntp.keys new file mode 100644 index 000000000..1c3fbd2c4 --- /dev/null +++ b/source/n/ntp/ntp.keys @@ -0,0 +1,2 @@ +65535 M akey +1 M pass diff --git a/source/n/ntp/rc.ntpd b/source/n/ntp/rc.ntpd new file mode 100644 index 000000000..2db421f6c --- /dev/null +++ b/source/n/ntp/rc.ntpd @@ -0,0 +1,53 @@ +#!/bin/sh +# Start/stop/restart ntpd. + +# Start ntpd: +ntpd_start() { + CMDLINE="/usr/sbin/ntpd -g" + echo -n "Starting NTP daemon: $CMDLINE" + $CMDLINE -p /var/run/ntpd.pid + echo +} + +# Stop ntpd: +ntpd_stop() { + echo -n "Stopping NTP daemon..." + kill $(cat /var/run/ntpd.pid) + echo + sleep 1 + rm -f /var/run/ntpd.pid + killall ntpd 2> /dev/null +} + +# Restart ntpd: +ntpd_restart() { + ntpd_stop + sleep 1 + ntpd_start +} + +# Check if ntpd is running +ntpd_status() { + if [ -e /var/run/ntpd.pid ]; then + echo "ntpd is running." + else + echo "ntpd is stopped." + fi +} + +case "$1" in +'start') + ntpd_start + ;; +'stop') + ntpd_stop + ;; +'restart') + ntpd_restart + ;; +'status') + ntpd_status + ;; +*) + echo "usage $0 start|stop|restart|status" +esac diff --git a/source/n/ntp/slack-desc b/source/n/ntp/slack-desc new file mode 100644 index 000000000..6319e8885 --- /dev/null +++ b/source/n/ntp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ntp: ntp (Network Time Protocol daemon) +ntp: +ntp: The Network Time Protocol (NTP) is used to synchronize the time of a +ntp: computer client or server to another server or reference time source, +ntp: such as a radio or satellite receiver or modem. It provides client +ntp: accuracies typically within a millisecond on LANs and up to a few tens +ntp: of milliseconds on WANs relative to a primary server synchronized to +ntp: Coordinated Universal Time (UTC) via a Global Positioning Service +ntp: (GPS) receiver, for example. +ntp: +ntp: diff --git a/source/n/obexftp/obexftp.SlackBuild b/source/n/obexftp/obexftp.SlackBuild new file mode 100755 index 000000000..821db8d21 --- /dev/null +++ b/source/n/obexftp/obexftp.SlackBuild @@ -0,0 +1,143 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=obexftp +VERSION=${VERSION:-0.23} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-static \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS INSTALLDIRS=vendor || exit 1 +make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1 + +if [ -e $PKG/usr/bin/obexftpd ]; then + mkdir -p $PKG/usr/sbin + mv $PKG/usr/bin/obexftpd $PKG/usr/sbin/obexftpd +fi + +( cd $PKG/usr/bin + for link in obexls obexget obexput obexrm ; do + ln -sf obexftp $link + done + cd $PKG/usr/man/man1 + for link in obexls obexget obexput obexrm ; do + ln -sf obexftp.1 ${link}.1 + done +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO contrib \ + $PKG/usr/doc/${PKGNAM}-$VERSION +rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/contrib/Makefile* + +# Remove perllocal files: +find $PKG -name perllocal.pod -exec rm "{}" \; + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/obexftp/slack-desc b/source/n/obexftp/slack-desc new file mode 100644 index 000000000..a37d672eb --- /dev/null +++ b/source/n/obexftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +obexftp: obexftp (Access devices via ObexFTP, such as mobile phones) +obexftp: +obexftp: This package contains some command line tools and the ObexFTP +obexftp: library. Using OpenOBEX it enables you to transfer data via IrDA, +obexftp: Bluetooth, as well as some custom (Siemens, Ericsson) serial port +obexftp: protocols. +obexftp: +obexftp: ObexFTP was written by Christian W. Zuckschwerdt. +obexftp: +obexftp: The project site is: http://triq.net/obexftp.html +obexftp: diff --git a/source/n/openldap-client/doinst.sh b/source/n/openldap-client/doinst.sh new file mode 100644 index 000000000..8247a0f3b --- /dev/null +++ b/source/n/openldap-client/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/openldap/ldap.conf.new + diff --git a/source/n/openldap-client/openldap-client.SlackBuild b/source/n/openldap-client/openldap-client.SlackBuild new file mode 100755 index 000000000..0131f63c9 --- /dev/null +++ b/source/n/openldap-client/openldap-client.SlackBuild @@ -0,0 +1,128 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# OpenLDAP (clients/libraries only!) + + +VERSION=2.3.43 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-openldap-client + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf openldap-$VERSION +tar xjvf $CWD/openldap-$VERSION.tar.bz2 || exit 1 +cd openldap-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --sysconfdir=/etc \ + --with-cyrus-sasl \ + --with-tls \ + --with-readline \ + --with-threads \ + --enable-debug \ + --enable-syslog \ + --enable-dynamic \ + --enable-local \ + --enable-proctitle \ + --disable-static \ + --enable-shared \ + --disable-slapd \ + --disable-slurpd + +make depend || exit 1 +make -j4 || exit 1 +make test || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm -f $PKG/etc/openldap/ldap.conf.default +mv $PKG/etc/openldap/ldap.conf $PKG/etc/openldap/ldap.conf.new +cat << EOF >> $PKG/etc/openldap/ldap.conf.new + +# In order to avoid problems with self-signed certificates using TLS: +# "TLS certificate verification: Error, self signed certificate" +# See also 'man ldap.conf' or http://www.openldap.org/doc/admin/tls.html +TLS_REQCERT allow + +EOF + +mkdir -p $PKG/usr/doc/openldap-$VERSION +cp -a \ + ANNOUNCEMENT CHANGES COPYRIGHT LICENSE README \ + $PKG/usr/doc/openldap-$VERSION + +# Remove man pages for the servers (not currently supported or shipped... +# do they even work properly without the evil PAM?) +find $PKG/usr/man -name slap* -exec rm -f {} \; +find $PKG/usr/man -name slurp* -exec rm -f {} \; +find $PKG/usr/man -type d -empty -exec rmdir {} \; + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Strip binaries +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/openldap-client-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openldap-client/slack-desc b/source/n/openldap-client/slack-desc new file mode 100644 index 000000000..939153bbe --- /dev/null +++ b/source/n/openldap-client/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, +# and the '|'on the right side marks the last column you can put a +# character in. You must make exactly 11 lines for the formatting to be +# correct. It's also customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openldap-client: openldap-client (OpenLDAP client programs) +openldap-client: +openldap-client: OpenLDAP is an open source implementation of the Lightweight +openldap-client: Directory Access Protocol. LDAP is a alternative to the X.500 +openldap-client: Directory Access Protocol (DAP). It uses the TCP/IP stack versus +openldap-client: the overly complex OSI stack. +openldap-client: +openldap-client: LDAP is often used to provide authentication (such as for email). +openldap-client: +openldap-client: The OpenLDAP homepage is http://www.openldap.org/ +openldap-client: diff --git a/source/n/openobex/openobex.SlackBuild b/source/n/openobex/openobex.SlackBuild new file mode 100755 index 000000000..201735223 --- /dev/null +++ b/source/n/openobex/openobex.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=openobex +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-static=no \ + --enable-apps \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openobex/slack-desc b/source/n/openobex/slack-desc new file mode 100644 index 000000000..a86312dc0 --- /dev/null +++ b/source/n/openobex/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openobex: openobex (Object Exchange protocol library) +openobex: +openobex: OpenOBEX is a free open source implementation of the Object Exchange +openobex: (OBEX) protocol. OBEX is a session protocol and can best be +openobex: described as a binary HTTP protocol. OBEX is optimised for ad-hoc +openobex: wireless links and can be used to exchange all kinds of objects like +openobex: files, pictures, calendar entries (vCal) and business cards (vCard). +openobex: +openobex: Visit the project here: http://www.openobex.org +openobex: +openobex: diff --git a/source/n/openssh/doinst.sh b/source/n/openssh/doinst.sh new file mode 100644 index 000000000..d696245d0 --- /dev/null +++ b/source/n/openssh/doinst.sh @@ -0,0 +1,35 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ssh/ssh_config.new +config etc/ssh/sshd_config.new +config etc/rc.d/rc.sshd.new + +# If the sshd user/group/shadow don't exist, add them: + +if ! grep -q "^sshd:" etc/passwd ; then + echo "sshd:x:33:33:sshd:/:" >> etc/passwd +fi + +if ! grep -q "^sshd:" etc/group ; then + echo "sshd::33:sshd" >> etc/group +fi + +if ! grep -q "^sshd:" etc/shadow ; then + echo "sshd:*:9797:0:::::" >> etc/shadow +fi + +# Add a btmp file to store login failure if one doesn't exist: +if [ ! -r var/log/btmp ]; then + ( cd var/log ; umask 077 ; touch btmp ) +fi + diff --git a/source/n/openssh/openssh.SlackBuild b/source/n/openssh/openssh.SlackBuild new file mode 100755 index 000000000..4a6611327 --- /dev/null +++ b/source/n/openssh/openssh.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002, 2003, 2004 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-openssh + +VERSION=${VERSION:-5.2p1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +fi + +# Clean target location: +rm -rf $PKG +mkdir -p $PKG + +# Prepare the framework and extract the package: +cd $TMP +rm -rf $PKG openssh-$VERSION +tar xjvf $CWD/openssh-$VERSION.tar.bz2 || exit 1 +cd openssh-$VERSION +chown -R root:root . + +# Compile package: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --sysconfdir=/etc/ssh \ + --without-pam \ + --with-md5-passwords \ + --with-tcp-wrappers \ + --with-default-path=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin \ + --with-ipv4-default \ + --with-privsep-path=/var/empty \ + --with-privsep-user=sshd \ + --build=$ARCH-slackware-linux + +make -j4 || exit 1 + +# Install the package: +make install DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Install directory used with PrivilegeSeparation option: +mkdir -p $PKG/var/empty +chmod 755 $PKG/var/empty + +# Install docs: +mkdir -p $PKG/usr/doc/openssh-$VERSION +cp -a \ + CREDITS ChangeLog INSTALL LICENCE OVERVIEW \ + README README.privsep README.smartcard RFC.nroff TODO WARNING.RNG \ + $PKG/usr/doc/openssh-$VERSION +chmod 644 $PKG/usr/doc/openssh-$VERSION/* + +# Install also 'ssh-copy-id' and its manpage from contrib: +( cd contrib + cp -a ssh-copy-id $PKG/usr/bin/ssh-copy-id + chmod 755 $PKG/usr/bin/ssh-copy-id + cat ssh-copy-id.1 | gzip -9c > $PKG/usr/man/man1/ssh-copy-id.1.gz +) + +( cd $PKG + + # Ditch the new host keys, since these have to be uniquely prepared on each machine: + rm -f etc/ssh/ssh_host_dsa_key + rm -f etc/ssh/ssh_host_dsa_key.pub + rm -f etc/ssh/ssh_host_rsa_key + rm -f etc/ssh/ssh_host_rsa_key.pub + rm -f etc/ssh/ssh_host_key + rm -f etc/ssh/ssh_host_key.pub + + # Set up the config script installation: + mv etc/ssh/ssh_config etc/ssh/ssh_config.new + mv etc/ssh/sshd_config etc/ssh/sshd_config.new + + # Add the init script: + mkdir -p etc/rc.d + cat $CWD/rc.sshd > etc/rc.d/rc.sshd.new + chmod 755 etc/rc.d/rc.sshd.new + + # Copy runtime installation files: + mkdir -p install + zcat $CWD/doinst.sh.gz > install/doinst.sh + cat $CWD/slack-desc > install/slack-desc +) + +# Create the package itself: +cd $PKG +/sbin/makepkg -l y -c n $TMP/openssh-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openssh/rc.sshd b/source/n/openssh/rc.sshd new file mode 100644 index 000000000..8b496568e --- /dev/null +++ b/source/n/openssh/rc.sshd @@ -0,0 +1,53 @@ +#!/bin/sh +# Start/stop/restart the secure shell server: + +sshd_start() { + # Create host keys if needed. + if [ ! -r /etc/ssh/ssh_host_key ]; then + /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then + /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then + /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' + fi + /usr/sbin/sshd +} + +sshd_stop() { + killall sshd +} + +sshd_restart() { + if [ -r /var/run/sshd.pid ]; then + echo "WARNING: killing listener process only. To kill every sshd process, you must" + echo " use 'rc.sshd stop'. 'rc.sshd restart' kills only the parent sshd to" + echo " allow an admin logged in through sshd to use 'rc.sshd restart' without" + echo " being cut off. If sshd has been upgraded, new connections will now" + echo " use the new version, which should be a safe enough approach." + kill `cat /var/run/sshd.pid` + else + echo "WARNING: There does not appear to be a parent instance of sshd running." + echo " If you really want to kill all running instances of sshd (including" + echo " any sessions currently in use), run '/etc/rc.d/rc.sshd stop' instead." + exit 1 + fi + sleep 1 + sshd_start +} + +case "$1" in +'start') + sshd_start + ;; +'stop') + sshd_stop + ;; +'restart') + sshd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/source/n/openssh/slack-desc b/source/n/openssh/slack-desc new file mode 100644 index 000000000..04277a720 --- /dev/null +++ b/source/n/openssh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssh: openssh (Secure Shell daemon and clients) +openssh: +openssh: ssh (Secure Shell) is a program for logging into a remote machine and +openssh: for executing commands on a remote machine. It is intended to replace +openssh: rlogin and rsh, and provide secure encrypted communications between +openssh: two untrusted hosts over an insecure network. sshd (SSH Daemon) is +openssh: the daemon program for ssh. OpenSSH is based on the last free version +openssh: of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron +openssh: Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and +openssh: Dug Song. It has a homepage at http://www.openssh.com/ +openssh: diff --git a/source/n/openssl/certwatch b/source/n/openssl/certwatch new file mode 100644 index 000000000..ac8d83403 --- /dev/null +++ b/source/n/openssl/certwatch @@ -0,0 +1,128 @@ +#!/bin/sh +# +# Will check all certificates stored in $CERTDIR for their expiration date, +# and will display (if optional "stdout" argument is given), or mail a warning +# message to $MAILADDR (if script is executed without any parameter +# - unattended mode suitable for cron execution) for each particular certificate +# that is about to expire in time less to, or equal to $DAYS after this script +# has been executed, or if it has already expired. +# This stupid script (C) 2006,2007 Jan Rafaj + +########################## CONFIGURATION SECTION BEGIN ######################### +# Note: all settings are mandatory +# Warning will be sent if a certificate expires in time <= days given here +DAYS=7 +# E-mail address where to send warnings +MAILADDR=root +# Directory with certificates to check +CERTDIR=/etc/ssl/certs +# Directory where to keep state files if this script isnt executed with "stdout" +STATEDIR=/var/run +########################### CONFIGURATION SECTION END ########################## + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAY_IN_SECS=$((60*60*24)) +DATE_CURRENT=$(date '+%s') + +usage() +{ + echo "Usage: $0 [stdout]" + echo + echo "Detailed description and configuration is embedded within the script." + exit 0 +} + +message() +{ + cat << EOF + WARNING: certificate $certfile + is about to expire in time equal to or less than $DAYS days from now on, + or has already expired - it might be a good idea to obtain/create new one. + +EOF +} + +message_mail() +{ + message + cat << EOF + NOTE: This message is being sent only once. + + A lock-file + $STATEDIR/certwatch-mailwarning-sent-$certfilebase + has been created, which will prevent this script from mailing you again + upon its subsequent executions by crond. You dont need to care about it; + the file will be auto-deleted as soon as you'll prolong your certificate. +EOF +} + +unset stdout +case $# in + 0) ;; + 1) if [ "$1" = "-h" -o "$1" == "--help" ]; then + usage + elif [ "$1" = "stdout" ]; then + stdout=1 + else + usage + fi + ;; + *) usage ;; +esac + +for dir in $STATEDIR $CERTDIR ; do + if [ ! -d $dir ]; then + echo "ERROR: directory $dir does not exist" + exit 1 + fi +done +for binary in basename date find grep mail openssl touch ; do + if [ ! \( -x /usr/bin/$binary -o -x /bin/$binary \) ]; then + echo "ERROR: /usr/bin/$binary not found" + exit 1 + fi +done + +find $CERTDIR -type f -maxdepth 1 | while read certfile ; do + certfilebase="$(basename "$certfile")" + inform=PEM + echo "$certfile" | grep -q -i '\.net$' + if [ $? -eq 0 ]; then + # This is based purely on filename extension, so may give false results. + # But lets assume noone uses NET format certs today, ok? + continue + fi + echo "$certfile" | grep -q -i '\.der$' + if [ $? -eq 0 -o "$(file "$certfile" | grep ASCII)" == "" ]; then + inform=DER + fi + # We wont use '-checkend' since it is not properly documented (as of + # OpenSSL 0.9.8e). + DATE_CERT_EXPIRES=$(openssl x509 -in "$certfile" -inform $inform -noout -enddate | sed 's/^notAfter=//') + DATE_CERT_EXPIRES=$(date -d"$DATE_CERT_EXPIRES" +%s) + if [ $(($DATE_CERT_EXPIRES - $DATE_CURRENT)) -le $(($DAYS * $DAY_IN_SECS)) ] + then + if [ $stdout ]; then + message + else + if [ ! -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + subject="$0: certificate $certfile expiration warning" + message_mail | mail -r "certwatch@$HOSTNAME" \ + -s "$subject" \ + $MAILADDR 2>/dev/null + # echo "Mail about expiring certificate $certfile sent to $MAILADDR." + # echo "If you need to send it again, please remove lock-file" + # echo "$STATEDIR/certwatch-mailwarning-sent-$certfilebase ." + # echo + fi + touch $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + else + if [ ! $stdout ]; then + if [ -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + rm $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + fi + fi +done + diff --git a/source/n/openssl/doinst.sh-openssl b/source/n/openssl/doinst.sh-openssl new file mode 100644 index 000000000..f73c5a514 --- /dev/null +++ b/source/n/openssl/doinst.sh-openssl @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new +config etc/cron.daily/certwatch.new +# If the admin has modified this in any way, no need to keep the sample. +rm -f etc/cron.daily/certwatch.new diff --git a/source/n/openssl/doinst.sh-openssl-solibs b/source/n/openssl/doinst.sh-openssl-solibs new file mode 100644 index 000000000..ed4fdfacb --- /dev/null +++ b/source/n/openssl/doinst.sh-openssl-solibs @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new diff --git a/source/n/openssl/openssl.SlackBuild b/source/n/openssl/openssl.SlackBuild new file mode 100755 index 000000000..b6cb80741 --- /dev/null +++ b/source/n/openssl/openssl.SlackBuild @@ -0,0 +1,150 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +VERSION=${VERSION:-0.9.8k} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +PKG1=$TMP/package-openssl +PKG2=$TMP/package-ossllibs +NAME1=openssl-$VERSION-$ARCH-$BUILD +NAME2=openssl-solibs-$VERSION-$ARCH-$BUILD + +NUMJOBS=${NUMJOBS:--j6} + +# So that ls has the right field counts for parsing... +export LC_ALL=C + +cd $TMP +rm -rf $PKG1 $PKG2 openssl-$VERSION +tar xvf $CWD/openssl-$VERSION.tar.bz2 || exit 1 +cd openssl-$VERSION + +# Use .so.0, not .so.0.9.8: +zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 +if [ "$ARCH" = "i486" ]; then + # Build with -march=i486 -mtune=i686: + zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +fi + +# Advertise TLS extensions only on TLS handshakes, not SSL: +zcat $CWD/openssl.no-extssl.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +mkdir -p $PKG1/usr/doc/openssl-$VERSION +cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE doc $PKG1/usr/doc/openssl-$VERSION +find $PKG1/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG1/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; + +# These are the known patent issues with OpenSSL: +# name # expires +# MDC-2: 4,908,861 2007-03-13, included. :-) +# IDEA: 5,214,703 2010-05-25, not included. +# RC5: 5,724,428 2015-03-03, not included. + +./config \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + no-idea \ + no-rc5 \ + no-sse2 \ + shared + +make depend || exit 1 + +make $NUMJOBS || make || exit 1 + +make install INSTALL_PREFIX=$PKG1 || exit 1 + +( cd $PKG1/usr; mv lib lib${LIBDIRSUFFIX} ) + +# Add a cron script to warn root if a certificate is going to expire soon: +mkdir -p $PKG1/etc/cron.daily +zcat $CWD/certwatch.gz > $PKG1/etc/cron.daily/certwatch.new +chmod 755 $PKG1/etc/cron.daily/certwatch.new + +mv $PKG1/etc/ssl/openssl.cnf $PKG1/etc/ssl/openssl.cnf.new + +( cd $PKG1 + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ldconfig -l * 2> /dev/null ) +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ln -sf libcrypto.so.0 libcrypto.so ) +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ln -sf libssl.so.0 libssl.so ) +mv $PKG1/etc/ssl/man $PKG1/usr +( cd $PKG1/usr/man/man1 ; mv passwd.1 ssl_passwd.1 ) +( cd $PKG1/usr/man/man3 ; mv rand.3 ssl_rand.3 ) +( cd $PKG1/usr/man/man3 ; mv err.3 ssl_err.3 ) +# Compress and symlink the man pages: +if [ -d $PKG1/usr/man ]; then + ( cd $PKG1/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cd $PKG1 +chmod 755 usr/lib${LIBDIRSUFFIX}/pkgconfig +sed -i -e "s#lib\$#lib${LIBDIRSUFFIX}#" usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc +mkdir -p install +zcat $CWD/doinst.sh-openssl.gz > install/doinst.sh +cat $CWD/slack-desc.openssl > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME1}.txz + +# Make runtime package: +mkdir -p $PKG2/usr/lib${LIBDIRSUFFIX} +( cd usr/lib${LIBDIRSUFFIX} ; cp -a lib*.so.*.*.* $PKG2/usr/lib${LIBDIRSUFFIX} ) +( cd $PKG2/usr/lib${LIBDIRSUFFIX} ; ldconfig -l * ) +mkdir -p $PKG2/etc +( cd $PKG2/etc ; cp -a $PKG1/etc/ssl . ) +mkdir -p $PKG2/usr/doc/openssl-$VERSION +( cd $TMP/openssl-$VERSION + cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE $PKG2/usr/doc/openssl-$VERSION +) +find $PKG2/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG2/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; +cd $PKG2 +mkdir -p install +zcat $CWD/doinst.sh-openssl-solibs.gz > install/doinst.sh +cat $CWD/slack-desc.openssl-solibs > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME2}.txz diff --git a/source/n/openssl/openssl.no-extssl.diff b/source/n/openssl/openssl.no-extssl.diff new file mode 100644 index 000000000..de00d0c77 --- /dev/null +++ b/source/n/openssl/openssl.no-extssl.diff @@ -0,0 +1,27 @@ +diff -up openssl-0.9.8g/ssl/t1_lib.c.no-extssl openssl-0.9.8g/ssl/t1_lib.c +--- openssl-0.9.8g/ssl/t1_lib.c.no-extssl 2007-10-19 09:44:10.000000000 +0200 ++++ openssl-0.9.8g/ssl/t1_lib.c 2008-08-10 21:42:11.000000000 +0200 +@@ -132,6 +132,11 @@ unsigned char *ssl_add_clienthello_tlsex + int extdatalen=0; + unsigned char *ret = p; + ++ if (s->client_version != TLS1_VERSION && s->client_version != DTLS1_VERSION) ++ { ++ return ret; ++ } ++ + ret+=2; + + if (ret>=limit) return NULL; /* this really never occurs, but ... */ +@@ -202,6 +207,11 @@ unsigned char *ssl_add_serverhello_tlsex + int extdatalen=0; + unsigned char *ret = p; + ++ if (s->version != TLS1_VERSION && s->version != DTLS1_VERSION) ++ { ++ return ret; ++ } ++ + ret+=2; + if (ret>=limit) return NULL; /* this really never occurs, but ... */ + diff --git a/source/n/openssl/openssl.optsx86.diff b/source/n/openssl/openssl.optsx86.diff new file mode 100644 index 000000000..a1a289a20 --- /dev/null +++ b/source/n/openssl/openssl.optsx86.diff @@ -0,0 +1,11 @@ +--- ./Configure.orig 2005-08-02 03:59:42.000000000 -0700 ++++ ./Configure 2005-10-12 20:04:43.000000000 -0700 +@@ -317,7 +317,7 @@ + "linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + #### IA-32 targets... + "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -mtune=i686 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", + #### + "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/source/n/openssl/openssl.soname.diff b/source/n/openssl/openssl.soname.diff new file mode 100644 index 000000000..f660e93bb --- /dev/null +++ b/source/n/openssl/openssl.soname.diff @@ -0,0 +1,11 @@ +--- ./Makefile.shared.orig 2005-06-23 13:47:54.000000000 -0700 ++++ ./Makefile.shared 2005-10-12 20:02:28.000000000 -0700 +@@ -151,7 +151,7 @@ + SHLIB_SUFFIX=; \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ +- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" ++ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB.0" + + DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" + diff --git a/source/n/openssl/slack-desc.openssl b/source/n/openssl/slack-desc.openssl new file mode 100644 index 000000000..57227c043 --- /dev/null +++ b/source/n/openssl/slack-desc.openssl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl: openssl (Secure Sockets Layer toolkit) +openssl: +openssl: The OpenSSL certificate management tool and the shared libraries that +openssl: provide various encryption and decryption algorithms and protocols. +openssl: +openssl: This product includes software developed by the OpenSSL Project for +openssl: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl: includes cryptographic software written by Eric Young +openssl: (eay@cryptsoft.com). This product includes software written by Tim +openssl: Hudson (tjh@cryptsoft.com). +openssl: diff --git a/source/n/openssl/slack-desc.openssl-solibs b/source/n/openssl/slack-desc.openssl-solibs new file mode 100644 index 000000000..f65bf12c9 --- /dev/null +++ b/source/n/openssl/slack-desc.openssl-solibs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl-solibs: openssl-solibs (OpenSSL shared libraries) +openssl-solibs: +openssl-solibs: These shared libraries provide encryption routines required by +openssl-solibs: programs such as openssh. They are also used by KDE's Konqueror web +openssl-solibs: browser to provide secure web connections. +openssl-solibs: +openssl-solibs: This product includes software developed by the OpenSSL Project for +openssl-solibs: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl-solibs: includes cryptographic software written by Eric Young +openssl-solibs: (eay@cryptsoft.com). This product includes software written by Tim +openssl-solibs: Hudson (tjh@cryptsoft.com). diff --git a/source/n/openvpn/README b/source/n/openvpn/README new file mode 100644 index 000000000..cf2c6602f --- /dev/null +++ b/source/n/openvpn/README @@ -0,0 +1,26 @@ +OpenVPN is a full-featured SSL VPN which can accomodate a wide +range of configurations, including remote access, site-to-site VPNs, +WiFi security, and enterprise-scale remote access with load +balancing, failover, and fine-grained access-controls. + +OpenVPN implements OSI layer 2 or 3 secure network extension using the +industry standard SSL/TLS protocol, supports flexible client +authentication methods based on certificates, smart cards, and/or +2-factor authentication, and allows user or group-specific access +control policies using firewall rules applied to the VPN virtual +interface. + +This build of OpenVPN depends upon having openssl (not just +openssl-solibs) and lzo installed on your computer. + +Please note that there is no default config file for OpenVPN. This is +by design. OpenVPN can technically use any config file in any location. +However, this script does create an /etc/openvpn/ directory with certs/ +and keys/ subdirectories. Feel free to place config files, keys, and +certificates in these directories. certs/ and keys/ are owned by user +root and group nobody and are not world readable nor writable. +Additionally, they are not writable by group nobody. It is recommended +that you run openvpn nobody:nobody, but you may use another +non-privilaged user and group at your option. Just change the +permissions on these permissions to reflect that if you do. + diff --git a/source/n/openvpn/openvpn.SlackBuild b/source/n/openvpn/openvpn.SlackBuild new file mode 100755 index 000000000..45c1a17d8 --- /dev/null +++ b/source/n/openvpn/openvpn.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2006, Alan Hicks, Lizella, GA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PRGNAM=openvpn +VERSION=2.0.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +# Fix ownership and permissions inside the source tarball. +# It's appalling how many projects have 777 permissions or +# even suid, sgid, and sticky bits set on things. +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/openvpn \ + --localstatedir=/var \ + --enable-lzo \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +# Create a decent config directory. openvpn doesn't have one by +# default, nor does it have a single config file. +mkdir -p $PKG/etc/openvpn/{certs,keys} +chown root:nobody $PKG/etc/openvpn/{certs,keys} +chmod 750 $PKG/etc/openvpn/{certs,keys} + +# Install a reasonably generic sample config file: +cp -a $CWD/openvpn.conf.sample $PKG/etc/openvpn/openvpn.conf.sample +chmod 644 $PKG/etc/openvpn/openvpn.conf.sample + +# Let folks know about the other configs, if they haven't found them. +# They might even find the documentation there useful. ;-) +cat << EOF > $PKG/etc/openvpn/README.TXT +Have a look in /usr/doc/$PRGNAM-$VERSION/sample-config-files +for some more examples of how to configure OpenVPN. You'll +need to add something to your /etc/rc.d/rc.local to start +OpenVPN, as well as to tell it where to find its config file. + + +See "man openvpn" and the other docs for more information. +EOF + +# Add a link, too: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/sample-config-files +( cd $PKG/usr/doc/$PRGNAM-$VERSION/sample-config-files + ln -sf /etc/openvpn/openvpn.conf.sample . +) + +if [ -d $PKG/usr/man ]; then +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS COPYING COPYRIGHT.GPL ChangeLog INSTALL INSTALL-win32.txt \ + NEWS PORTS README sample-config-files sample-keys sample-scripts easy-rsa \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openvpn/openvpn.conf.sample b/source/n/openvpn/openvpn.conf.sample new file mode 100644 index 000000000..4314b5441 --- /dev/null +++ b/source/n/openvpn/openvpn.conf.sample @@ -0,0 +1,178 @@ +# openvpn.conf.sample +# +# This is a sample configuration file for OpenVPN. +# Not all options are listed here; you can find good documentation +# about all of the options in OpenVPN's manual page - openvpn(8). +# +# You can make a P-t-P connection by creating a shared key, +# copying this key to other hosts in your network, and changing +# the IP addresses in this file. +# +# Commented options are provided for some typical configurations + +# Change the "search" path to /etc/openvpn +# All files referenced in this configuration will be relative to +# whatever directory is specified here - we default to /etc/openvpn +cd /etc/openvpn + +# If running as a server, which local IP address should OpenVPN +# listen on? Specify this as either a hostname or IP address. If +# this is left blank, OpenVPN will default to listening on all +# interfaces. +#local a.b.c.d + +# This option defines the IP or DNS name of the other side of your VPN +# connection. This option is needed if you are making client or P-t-P +# connections. If you are the server, use "local" instead. This may +# be specified as a domain name or IP address. +#remote vpn.server.org + +# This option defins the protocol to use. Valid options are: +# udp, tcp-server, or tcp-client. Default is udp, and generally +# speaking, tcp is a bad idea. +proto udp + +# This option defines the port on which your server will be listening +# or trying to connect. The default is 1194 +port 1194 + +# This option defines whether to use LZO compression. +# If enabled, it must be enabled at both ends of the VPN connection. +#comp-lzo + +# Debug level (default 1) +#verb 3 + +# VPN logfile location +# If you don't specify a location here, logging will be done through +# syslogd and write to /var/log/messages +log-append /var/log/openvpn.log + +# If you want to use OpenVPN as a daemon, uncomment this line. +# Generally speaking, servers should run OpenVPN as a daemon +# and clients should not. +#daemon + +# Device type to use, you can choose between tun or tap. +# TUN is the most common option. If you have multiple connections, +# it is a good idea to bind each connection to a separate TUN/TAP +# interface using tunX/tapX, where X is the number of each interface. +dev tun + +# This option prevents OpenVPN from closing and re-opening the tun/tap +# device every time it receives a SIGUSR1 signal +#persist-tun + +# This is similar to the previous option, but it prevents OpenVPN from +# re-reading the key files every time +#persist-key + +# If you are using a client-server architecture, you need to specify the +# role of your computer in your VPN network. To use one of these options, +# you need to configure TLS options too. +# +# To use the "server" option, you must specify a network subnet such +# as 172.16.1.0 255.255.255.0. The first number is the network, the +# second is the netmask. OpenVPN will take the first available IP +# for itself (in our example, 172.16.1.1) and the rest will be +# given to connecting clients dynamically. +# +# Leave these commented out if you are using OpenVPN in bridging mode. +# +#server 10.1.2.0 255.255.255.0 +#client + +# This option defines a file with IP address to client mapping. +# This is useful in general, and necessary if clients use persist-tun. +#ifconfig-pool-persist ips.txt + +# Enable this option if you want clients connected to this VPN to be +# able to talk directly to each other +#client-to-client + +# This option defines the directory in which configuration files for clients +# will reside. With individual files you can make each client get different +# options using "push" parameters +#client-config-dir ccd + +# If you are using P-t-P, you need to specify the IP addresses at both ends +# of your VPN connection. The IP addresses are reversed at the other side. +# +# You can use this to specify client IP addresses in ccd files (on server) +# or directly in client configuration +#ifconfig 10.1.2.1 10.1.2.2 + +# You can set routes to specific networks. In the sample below, "vpn_gateway" +# is an internal OpenVPN alias to your VPN gateway - leave it as is. +# This will enable you to talk with the networks behind your VPN server. +# Multiple routes can be specified. +# +# +------------+ <eth>-<tun> <tun>-<eth> +------------+ +# | Network1 |---| VPN1 |--[10.1.2.0/24]--| VPN2 |---| Network2 | +# +------------+ +------+ +------+ +------------+ +# 192.168.0.0/24 192.168.2.0/24 +# +# The sample below shows how VPN1 server can reach Network2 +#route 192.168.2.0 255.255.255.0 vpn_gateway + +# You can send clients many network configuration options using the +# "push" directive and sending commands. +# Multiple "push" directives can be used. You should only put global +# "push" directives here. You can "push" different options to +# different clients in per-client configuration files. See +# "client-config-dir" above. +# +# Using the same network configuration that you see above, the route statment +# here allows VPN2 to reach Network1 +#push "route-delay 2 600" +#push "route 192.168.2.0 255.255.255.0 vpn_gateway" +#push "persist-key" + +# This option sets the encryption algorithm to use in the VPN connection. +# Available options are: +# DES-CBC, RC2-CBC, DES-EDE-CBC, DES-EDE3-CBC, +# DESX-CBC, BF-CBC, RC2-40-CBC, CAST5-CBC, +# RC2-64-CBC, AES-128-CBC, AES-192-CBC and AES-256-CBC +cipher BF-CBC + +# Shared Key Connection +# --------------------- +# Secret is one shared key between the hosts that want to connect through VPNs. +# Without secret or TLS options, your data will not be encrypted. +# +# To generate an encryption key do: +# openvpn --genkey --secret /etc/openvpn/keys/shared.key +# +# Do the above on one host and copy it to the others +secret keys/shared.key + +# TLS Connections +# --------------- +# TLS must be used if you use option "server" or "client" +# The basic idea there is: You have one Certificate Authority, and all +# machines in your VPN network need to have individual certificates and +# keys signed by Certificate Authority. This means each client can +# have its own key, making it easier to revoke a key without copying +# a shared secret key to every client. +# +# Inside the /usr/doc/openvpn-$VERSION documentation directory, you can +# find "easy-rsa" scripts to make certificate and key management easier. + +# Certificate Authority file +# This file must be identical on all hosts that connect to your VPN +#ca certs/ca.crt + +# If you are the server, you need to specify some Diffie Hellman parameters. +# OpenVPN provides some sample .pem files in documentation directory +#dh my-dh.pem + +# Certificate and Key signed by Certificate Authority +# Each machine needs to have their own unique certificate +#cert certs/machine.cert +#key keys/machine.key + +# To prevent some DoS attacks we can add another authentication layer in the +# TLS control channel. This needs to be enabled at both ends to work +# client uses the value 1; server uses the value 0 +#tls-auth keys/shared.key 0 + diff --git a/source/n/openvpn/slack-desc b/source/n/openvpn/slack-desc new file mode 100644 index 000000000..4f4af4c47 --- /dev/null +++ b/source/n/openvpn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openvpn: openvpn (secure IP tunnel daemon) +openvpn: +openvpn: OpenVPN is a full-featured SSL VPN which can accomodate a wide range +openvpn: of configurations, including remote access, site-to-site VPNs, WiFi +openvpn: security, and enterprise-scale remote access with load balancing, +openvpn: failover, and fine-grained access-controls. +openvpn: +openvpn: OpenVPN's home on the net is: http://openvpn.net +openvpn: +openvpn: +openvpn: diff --git a/source/n/php/channels/pear.php.net.reg b/source/n/php/channels/pear.php.net.reg new file mode 100644 index 000000000..f836b1a22 --- /dev/null +++ b/source/n/php/channels/pear.php.net.reg @@ -0,0 +1 @@ +a:5:{s:4:"name";s:12:"pear.php.net";s:14:"suggestedalias";s:4:"pear";s:7:"summary";s:40:"PHP Extension and Application Repository";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pear.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pear.php.net/rest/";}}}}}s:13:"_lastmodified";s:31:"Sat, 04 Apr 2009 17:17:11 -0500";}
\ No newline at end of file diff --git a/source/n/php/channels/pecl.php.net.reg b/source/n/php/channels/pecl.php.net.reg new file mode 100644 index 000000000..ea6eaa146 --- /dev/null +++ b/source/n/php/channels/pecl.php.net.reg @@ -0,0 +1 @@ +a:6:{s:4:"name";s:12:"pecl.php.net";s:14:"suggestedalias";s:4:"pecl";s:7:"summary";s:31:"PHP Extension Community Library";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}}}}}s:15:"validatepackage";a:2:{s:8:"_content";s:19:"PEAR_Validator_PECL";s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}}s:13:"_lastmodified";s:31:"Sat, 04 Apr 2009 17:17:11 -0500";}
\ No newline at end of file diff --git a/source/n/php/doinst.sh b/source/n/php/doinst.sh new file mode 100644 index 000000000..15f611b52 --- /dev/null +++ b/source/n/php/doinst.sh @@ -0,0 +1,8 @@ +if [ ! -r etc/httpd/mod_php.conf ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +elif [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +fi +if [ ! -r etc/httpd/php.ini ]; then + cp -a etc/httpd/php.ini-recommended etc/httpd/php.ini +fi diff --git a/source/n/php/mod_php.conf.example b/source/n/php/mod_php.conf.example new file mode 100644 index 000000000..7a678b90c --- /dev/null +++ b/source/n/php/mod_php.conf.example @@ -0,0 +1,22 @@ +# +# mod_php - PHP Hypertext Preprocessor module +# + +# Load the PHP module: +LoadModule php5_module lib/httpd/modules/libphp5.so + +# Tell Apache to feed all *.php files through PHP. If you'd like to +# parse PHP embedded in files with different extensions, comment out +# this line and see the example below. +AddType application/x-httpd-php .php + +# Tell Apache to feed all *.php, *.html, and *.htm files through +# the PHP module. Add or subtract extensions here as desired. Please +# note that running pages through PHP for no reason can be both slow +# and insecure, so be sure to know what you're doing. It's a convenient +# shortcut, but probably isn't suitible for high-traffic sites if you +# write any of your pages in straight HTML. +#AddType application/x-httpd-php .php .html .htm + +# This will display PHP files in colored syntax form. Use with caution. +#AddType application/x-httpd-php-source .phps diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild new file mode 100755 index 000000000..5f8e2d351 --- /dev/null +++ b/source/n/php/php.SlackBuild @@ -0,0 +1,303 @@ +#!/bin/sh + +# Build and package mod_php on Slackware. +# by: David Cantrell <david@slackware.com> +# Modified for PHP 4-5 by volkerdi@slackware.com +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=5.2.10 +ALPINE=2.00 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-php/ +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# we need to compile alpine to get c-client.a for IMAP support: +IMAPLIBDIR=/usr/local/lib${LIBDIRSUFFIX}/c-client +if [ -r $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a ]; then + echo "Using IMAP library:" + ls -l $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a + sleep 5 +else + ( cd $CWD/../alpine ; ./alpine.SlackBuild || exit 1 ) || exit 1 + ( cd $TMP/alpine-${ALPINE}/imap/c-client + strip -g c-client.a + mkdir -p $IMAPLIBDIR/lib${LIBDIRSUFFIX} + cp c-client.a $IMAPLIBDIR/lib${LIBDIRSUFFIX} + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +mkdir -p $PKG/etc/httpd +mkdir -p $PKG/etc/php +# A trick from DaMouse to enable building php into $PKG. +# We'll remove this later on. +cat /etc/httpd/original/httpd.conf > $PKG/etc/httpd/httpd.conf +if [ ! -e /etc/httpd/original/httpd.conf ]; then + echo "FATAL: no /etc/httpd/original/httpd.conf found." + exit 1 +fi + +cd $TMP +rm -rf php-$VERSION +tar xvf $CWD/php-$VERSION.tar.bz2 || exit 1 +cd php-$VERSION + +# Add missing(?) PEAR modules back: +if [ -d php-$VERSION/pear/packages ]; then + ( cd php-$VERSION/pear/packages + cp -a $CWD/pear/*.bz2 . 2> /dev/null + bzip2 -d *.bz2 2> /dev/null + ) +fi + +if [ "$ARCH" = "s390" ]; then + zcat $CWD/php.configure.s390.diff.gz | patch -p1 || exit +fi + +# Fixup perms/owners: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +find . -name "*.h" -exec chmod 644 {} \; + +# Sometimes they ship a few of these: +find . -name "*.orig" -exec rm {} \; + +# Patch ini files: +zcat $CWD/php.ini.diff.gz \ + | sed -e "s#usr/lib/php#usr/lib${LIBDIRSUFFIX}/php#" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/php.recommended.ini.diff.gz \ + | sed -e "s#usr/lib/php#usr/lib${LIBDIRSUFFIX}/php#" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Generic "kitchen sink" configure function, with as many things as possible (and +# maybe then some ;-) compiled as shared extensions: +php_configure() { +EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + $* \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-safe-mode \ + --disable-magic-quotes \ + --enable-zend-multibyte \ + --enable-mbregex \ + --enable-tokenizer=shared \ + --with-config-file-scan-dir=/etc/php \ + --with-config-file-path=/etc/httpd \ + --enable-mod_charset \ + --with-layout=PHP \ + --enable-sigchild \ + --enable-xml \ + --with-libxml-dir=/usr \ + --enable-simplexml \ + --enable-spl \ + --enable-filter \ + --disable-debug \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-zlib=shared,/usr \ + --enable-bcmath=shared \ + --with-bz2=shared,/usr \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --with-curlwrappers \ + --with-mcrypt=/usr \ + --enable-dba=shared \ + --with-gdbm=/usr \ + --with-db4=/usr \ + --enable-dbase=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gd=shared \ + --with-jpeg-dir=/usr \ + --with-png-dir=/usr \ + --with-zlib-dir=/usr \ + --with-xpm-dir=/usr \ + --with-freetype-dir=/usr \ + --with-t1lib=/usr \ + --enable-gd-native-ttf \ + --enable-gd-jis-conv \ + --with-gettext=shared,/usr \ + --with-gmp=shared,/usr \ + --with-iconv=shared \ + --with-imap-ssl=/usr \ + --with-imap=$IMAPLIBDIR \ + --with-ldap=shared \ + --enable-mbstring=shared \ + --enable-hash \ + --with-mhash=shared,/usr \ + --with-mysql=shared,/usr \ + --with-mysqli=shared,/usr/bin/mysql_config \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,/usr \ + --with-pdo-sqlite=shared \ + --with-pspell=shared,/usr \ + --with-mm=/usr \ + --enable-shmop=shared \ + --with-snmp=shared,/usr \ + --enable-soap=shared \ + --enable-sockets \ + --with-sqlite=shared \ + --enable-sqlite-utf8 \ + --with-regex=php \ + --enable-sysvmsg \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-wddx=shared \ + --with-xsl=shared,/usr \ + --enable-zip=shared \ + --with-tsrm-pthreads \ + --enable-shared=yes \ + --enable-static=no \ + --with-gnu-ld \ + --with-pic \ + --build=$ARCH-slackware-linux +} + +# I am told this option is worse than nothing. :-) +# --enable-safe-mode +# +# I would recommend *against* and will take no responbility for turning on +# "safe" mode. + +# Make the Apache2 module version of PHP: +php_configure \ + --with-apxs2=/usr/sbin/apxs +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +# Make the CLI version of PHP: +make distclean +php_configure \ + --enable-force-cgi-redirect \ + --enable-pcntl \ + --enable-sigchild +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat ./sapi/cli/php > $PKG/usr/bin/php +chmod 755 $PKG/usr/bin/php + +# Make the FastCGI interpreter: +make distclean +php_configure \ + --enable-fastcgi \ + --enable-pcntl \ + --enable-sigchild +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat sapi/cgi/php-cgi > $PKG/usr/bin/php-cgi +chmod 755 $PKG/usr/bin/php-cgi + +# PHP (used to) install Pear with some strange permissions. +chmod 755 $PKG/usr/bin/pear + +# PHP sometimes puts junk in the root directory: +( cd $PKG + rm -rf .channels .depdb .depdblock .filemap .lock .registry +) + +# Fix a couple broken .reg files in php-5.2.10: +if ! grep -q Download $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pear.php.net.reg ; then + cat $CWD/channels/pear.php.net.reg > $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pear.php.net.reg +fi +if ! grep -q Download $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pecl.php.net.reg ; then + cat $CWD/channels/pecl.php.net.reg > $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pecl.php.net.reg +fi + +# Fix $PKG/usr/lib/php perms: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/php + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +mkdir -p $PKG/usr/doc/php-$VERSION +cp -a \ + CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* \ + sapi/cgi/README.FastCGI \ + $PKG/usr/doc/php-$VERSION +chown -R root:root $PKG/usr/doc/php-$VERSION + +mkdir -p $PKG/etc/httpd +cp -a php.ini-dist php.ini-recommended $PKG/etc/httpd +cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" \ + > $PKG/etc/httpd/mod_php.conf.example +chmod 644 $PKG/etc/httpd/* +chown root:root $PKG/etc/httpd/* + +# This can go now. +rm -f $PKG/etc/httpd/httpd* + +# Session directory for PHP: +mkdir -p $PKG/var/lib/php +chmod 770 $PKG/var/lib/php +chown root:apache $PKG/var/lib/php + +# Strip ELF objects. +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +#if [ -d "$IMAPLIBDIR" ]; then +# ( cd $IMAPLIBDIR && rm -rf * ) +# rmdir $IMAPLIBDIR +#fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/php/php.ini.diff b/source/n/php/php.ini.diff new file mode 100644 index 000000000..fe01df22c --- /dev/null +++ b/source/n/php/php.ini.diff @@ -0,0 +1,114 @@ +--- ./php.ini-dist.orig 2007-05-27 13:04:10.000000000 -0500 ++++ ./php.ini-dist 2007-06-28 23:43:02.000000000 -0500 +@@ -473,7 +473,7 @@ + user_dir = + + ; Directory in which the loadable extensions (modules) reside. +-extension_dir = "./" ++extension_dir = "/usr/lib/php/extensions/" + + ; Whether or not to enable the dl() function. The dl() function does NOT work + ; properly in multithreaded servers, such as IIS or Zeus, and is automatically +@@ -585,58 +585,43 @@ + ; needs to go here. Specify the location of the extension with the + ; extension_dir directive above. + ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=dbase.so ++extension=exif.so ++extension=ftp.so ++extension=gettext.so ++extension=gd.so ++extension=gmp.so ++extension=iconv.so ++extension=ldap.so ++extension=mbstring.so ++extension=mhash.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so + +-; Windows Extensions +-; Note that ODBC support is built in, so no dll is needed for it. +-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +- +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_dba.dll +-;extension=php_dbase.dll +-;extension=php_exif.dll +-;extension=php_fdf.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_ifx.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_mcrypt.dll +-;extension=php_mhash.dll +-;extension=php_mime_magic.dll +-;extension=php_ming.dll +-;extension=php_msql.dll +-;extension=php_mssql.dll +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll +-;extension=php_openssl.dll +-;extension=php_pdo.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_oci8.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +-;extension=php_snmp.dll +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; +@@ -979,6 +964,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + session.use_cookies = 1 diff --git a/source/n/php/php.recommended.ini.diff b/source/n/php/php.recommended.ini.diff new file mode 100644 index 000000000..80469447f --- /dev/null +++ b/source/n/php/php.recommended.ini.diff @@ -0,0 +1,114 @@ +--- ./php.ini-recommended.orig 2007-05-27 13:04:10.000000000 -0500 ++++ ./php.ini-recommended 2007-06-29 00:14:12.000000000 -0500 +@@ -521,7 +521,7 @@ + user_dir = + + ; Directory in which the loadable extensions (modules) reside. +-extension_dir = "./" ++extension_dir = "/usr/lib/php/extensions/" + + ; Whether or not to enable the dl() function. The dl() function does NOT work + ; properly in multithreaded servers, such as IIS or Zeus, and is automatically +@@ -633,58 +633,43 @@ + ; needs to go here. Specify the location of the extension with the + ; extension_dir directive above. + ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=dbase.so ++extension=exif.so ++extension=ftp.so ++extension=gettext.so ++extension=gd.so ++extension=gmp.so ++extension=iconv.so ++extension=ldap.so ++extension=mbstring.so ++extension=mhash.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so + +-; Windows Extensions +-; Note that ODBC support is built in, so no dll is needed for it. +-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +- +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_dba.dll +-;extension=php_dbase.dll +-;extension=php_exif.dll +-;extension=php_fdf.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_ifx.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_mcrypt.dll +-;extension=php_mhash.dll +-;extension=php_mime_magic.dll +-;extension=php_ming.dll +-;extension=php_msql.dll +-;extension=php_mssql.dll +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll +-;extension=php_openssl.dll +-;extension=php_pdo.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_oci8.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +-;extension=php_snmp.dll +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; +@@ -1027,6 +1012,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + session.use_cookies = 1 diff --git a/source/n/php/slack-desc b/source/n/php/slack-desc new file mode 100644 index 000000000..fe14da6d6 --- /dev/null +++ b/source/n/php/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +php: php (HTML-embedded scripting language) +php: +php: PHP is an HTML-embedded scripting language. It shares syntax +php: characteristics with C, Java, and Perl. The primary objective behind +php: this language is to make a fast and easy-to-use scripting language +php: for dynamic web sites. +php: +php: More information can be found online at http://www.php.net/ +php: +php: +php: diff --git a/source/n/pidentd/doinst.sh b/source/n/pidentd/doinst.sh new file mode 100644 index 000000000..382131ed9 --- /dev/null +++ b/source/n/pidentd/doinst.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# Handle the incoming configuration files: +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/identd.conf.new diff --git a/source/n/pidentd/pidentd.SlackBuild b/source/n/pidentd/pidentd.SlackBuild new file mode 100755 index 000000000..f14fbe530 --- /dev/null +++ b/source/n/pidentd/pidentd.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=3.0.19 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pidentd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf pidentd-$VERSION +tar xvf $CWD/pidentd-$VERSION.tar.gz || exit 1 +cd pidentd-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/pidentd.conf.diff.gz | patch -p1 --backup --verbose || exit + +CFLAGS=-O2 \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-des-includes=/usr/include/openssl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/sbin +cat src/identd > $PKG/usr/sbin/in.identd +cat src/ibench > $PKG/usr/sbin/ibench +cat src/idecrypt > $PKG/usr/sbin/idecrypt +cat src/ikeygen > $PKG/usr/sbin/ikeygen +chmod 755 $PKG/usr/sbin/* + +mkdir -p $PKG/etc +cat etc/identd.conf > $PKG/etc/identd.conf.new + +mkdir -p $PKG/usr/man/man8 +cat doc/identd.8 | gzip -9c > $PKG/usr/man/man8/identd.8.gz +echo ".so man8/identd.8" | gzip -9c > $PKG/usr/man/man8/in.identd.8.gz + +mkdir -p $PKG/usr/doc/pidentd-$VERSION +cp -a \ + BUGS ChangeLog FAQ INSTALL README Y2K doc/rfc* \ + $PKG/usr/doc/pidentd-$VERSION +chmod 644 $PKG/usr/doc/pidentd-$VERSION/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/pidentd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/pidentd/pidentd.conf.diff b/source/n/pidentd/pidentd.conf.diff new file mode 100644 index 000000000..0e94f48c5 --- /dev/null +++ b/source/n/pidentd/pidentd.conf.diff @@ -0,0 +1,68 @@ +--- ./etc/identd.conf.orig 1999-01-20 15:59:26.000000000 -0800 ++++ ./etc/identd.conf 2004-06-13 12:59:27.000000000 -0700 +@@ -1,4 +1,4 @@ +-# /usr/local/etc/identd.conf - an example configuration file ++# /etc/identd.conf - an example configuration file + + + #-- The syslog facility for error messages +@@ -18,24 +18,20 @@ + # server:backlog = 256 + + #-- Where to write the file containing our process id +-# server:pid-file = "/etc/identd.pid" ++server:pid-file = "/var/run/identd.pid" + + #-- Maximum number of concurrent requests allowed (0 = unlimited) + # server:max-requests = 0 + +- +- + #-- Enable some protocol extensions like "VERSION" or "QUIT" +-protocol:extensions = enabled ++# protocol:extensions = enabled + + #-- Allow multiple queries per connection. This slightly breaks RFC1413 +-protocol:multiquery = enabled ++# protocol:multiquery = enabled + + #-- Timeout in seconds since connection or last query. Zero = disable + # protocol:timeout = 120 + +- +- + #-- Maximum number of threads doing kernel lookups + # kernel:threads = 8 + +@@ -45,10 +41,8 @@ + #-- Maximum number of time to retry a kernel lookup in case of failure + # kernel:attempts = 5 + +- +- + #-- Disable username lookups (only return uid numbers) +-# result:uid-only = no ++result:uid-only = yes + + #-- Enable the ".noident" file + # result:noident = enabled +@@ -60,15 +54,14 @@ + # result:opsys = "UNIX" + + #-- Log all request replies to syslog (none == don't) +-# result:syslog-level = none +- ++# Valid choices are: none, debug, info, notice, warning, err, crit, emerg ++result:syslog-level = notice + + #-- Enable encryption (only available if linked with a DES library) + # result:encrypt = no + + #-- Path to the DES key file (only available if linked with a DES library) +-# encrypt:key-file = "/usr/local/etc/identd.key" +- ++# encrypt:key-file = "/etc/identd.key" + + #-- Include a machine local configuration file +-# include = /etc/identd.conf ++# include = /usr/local/etc/identd.conf diff --git a/source/n/pidentd/slack-desc b/source/n/pidentd/slack-desc new file mode 100644 index 000000000..3229f5e88 --- /dev/null +++ b/source/n/pidentd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pidentd: pidentd (TCP/IP IDENT protocol server) +pidentd: +pidentd: The identd daemon implements the IDENT protocol as specified in +pidentd: RFC1413. When your machine connects to a remote system, the remote +pidentd: machine may connect to your identd daemon to find out either the +pidentd: user name or other information about the process that initiated +pidentd: the connection. Some remote machines may choose not to allow your +pidentd: connections if you do not provide access to an identd daemon. +pidentd: +pidentd: The pidentd daemon was written by Peter Eriksson. +pidentd: diff --git a/source/n/pinentry/pinentry.SlackBuild b/source/n/pinentry/pinentry.SlackBuild new file mode 100755 index 000000000..3e0dd44de --- /dev/null +++ b/source/n/pinentry/pinentry.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=pinentry +VERSION=0.7.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ARCHQUADLET="" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ARCHQUADLET="-gnueabi" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Needs to be done manually: +# http://lists.gnupg.org/pipermail/gnupg-devel/2009-June/025197.html +for file in qt4/*.moc ; do + moc ${file/.moc/.h} > $file +done + +# Note that building the gtk1 interface is disabled +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --enable-pinentry-gtk=no \ + --enable-pinentry-curses \ + --enable-fallback-curses \ + --enable-pinentry-gtk2 \ + --enable-pinentry-qt4 \ + --build=$ARCH-slackware-linux$ARCHQUADLET \ + --host=$ARCH-slackware-linux$ARCHQUADLET || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Replace the qt3 version with a symlink to the qt4 one: +( cd $PKG/usr/bin + rm -f pinentry-qt + ln -sf pinentry-qt4 pinentry-qt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/*.info + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/n/pinentry/slack-desc b/source/n/pinentry/slack-desc new file mode 100644 index 000000000..71c5e44e3 --- /dev/null +++ b/source/n/pinentry/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pinentry: pinentry (PIN Entry dialogs) +pinentry: +pinentry: This is a collection of simple PIN or passphrase entry dialogs which +pinentry: utilize the Assuan protocol as described by the aegypten project. +pinentry: +pinentry: See http://www.gnupg.org/aegypten/ for details. +pinentry: +pinentry: +pinentry: +pinentry: +pinentry: diff --git a/source/n/popa3d/doinst.sh b/source/n/popa3d/doinst.sh new file mode 100644 index 000000000..caadfd59d --- /dev/null +++ b/source/n/popa3d/doinst.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# If the pop user/group don't exist, add them: +if ! grep -q "^pop:" etc/passwd ; then + echo "pop:x:90:90:POP:/:" >> /etc/passwd +fi +if ! grep -q "^pop:" etc/group ; then + echo "pop::90:pop" >> etc/group +fi + diff --git a/source/n/popa3d/popa3d-1.0.2.tar.gz.sign b/source/n/popa3d/popa3d-1.0.2.tar.gz.sign new file mode 100644 index 000000000..44b2913bb --- /dev/null +++ b/source/n/popa3d/popa3d-1.0.2.tar.gz.sign @@ -0,0 +1,10 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia +Comment: http://www.openwall.com/signatures/ + +iQCVAwUARHJblHK5fbEpUCnxAQEjyAP9HEydFlz7lFGoHI4SqBLlH7XRNFgs/sKg +biNYMBlohgU2YHilrX1wNiActrLqvv+wr1en6KZVKHhG7QtLZo0MWQsypylEIxVT +UVANL0wybUOnx+XRuQKKpCnkinS9Pic1dHXLTaXx1NkeHAYlUM6YRvdWSRpvkNHR +eAHZO3LYaWI= +=IGmS +-----END PGP MESSAGE----- diff --git a/source/n/popa3d/popa3d.SlackBuild b/source/n/popa3d/popa3d.SlackBuild new file mode 100755 index 000000000..5d574df68 --- /dev/null +++ b/source/n/popa3d/popa3d.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.0.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-popa3d +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf popa3d-$VERSION +tar xvf $CWD/popa3d-$VERSION.tar.gz || exit 1 +cd popa3d-$VERSION || exit 1 +zcat $CWD/popa3d.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 + +# already stripped +mkdir -p $PKG/usr/sbin +cat popa3d > $PKG/usr/sbin/popa3d +chmod 755 $PKG/usr/sbin/popa3d + +mkdir -p $PKG/usr/man/man8 +cat popa3d.8 | gzip -9c > $PKG/usr/man/man8/popa3d.8.gz + +# Empty directory to chroot() into. Should already be installed by aaa_base, or +# openssh, or both: +#mkdir -p $PKG/var/empty + +# Docs: +mkdir -p $PKG/usr/doc/popa3d-$VERSION +cp -a \ + CHANGES CONTACT DESIGN INSTALL LICENSE VIRTUAL \ + $PKG/usr/doc/popa3d-$VERSION +chmod 644 $PKG/usr/doc/popa3d-$VERSION/* + +# Add install script -- this ensures pop user/group are there: +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +# Description: +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/popa3d-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/popa3d/popa3d.diff b/source/n/popa3d/popa3d.diff new file mode 100644 index 000000000..773f90856 --- /dev/null +++ b/source/n/popa3d/popa3d.diff @@ -0,0 +1,58 @@ +--- ./Makefile.orig 2006-03-05 04:36:20.000000000 -0600 ++++ ./Makefile 2006-03-12 16:20:44.000000000 -0600 +@@ -5,11 +5,11 @@ + INSTALL = install -c + CFLAGS = -Wall -O2 -fomit-frame-pointer + # You may use OpenSSL's MD5 routines instead of the ones supplied here +-#CFLAGS += -DHAVE_OPENSSL ++CFLAGS += -DHAVE_OPENSSL + LDFLAGS = -s + LIBS = + # Linux with glibc, FreeBSD, NetBSD +-#LIBS += -lcrypt ++LIBS += -lcrypt + # HP-UX trusted system + #LIBS += -lsec + # Solaris (POP_STANDALONE, POP_VIRTUAL) +@@ -21,10 +21,10 @@ + # libwrap may also want this + #LIBS += -lnsl + # OpenSSL (-DHAVE_OPENSSL) +-#LIBS += -lcrypto ++LIBS += -lcrypto + + DESTDIR = +-PREFIX = /usr/local ++PREFIX = /usr + SBINDIR = $(PREFIX)/sbin + MANDIR = $(PREFIX)/man + +--- ./params.h.orig 2006-03-05 06:44:52.000000000 -0600 ++++ ./params.h 2006-03-12 16:23:16.000000000 -0600 +@@ -13,7 +13,7 @@ + /* + * Are we going to be a standalone server or start via an inetd clone? + */ +-#define POP_STANDALONE 0 ++#define POP_STANDALONE 1 + + #if POP_STANDALONE + +@@ -103,7 +103,7 @@ + * A pseudo-user to run as before authentication. The user and its UID + * must not be used for any other purpose. + */ +-#define POP_USER POP_SERVER ++#define POP_USER "pop" + + /* + * An empty directory to chroot to before authentication. The directory +@@ -191,7 +191,7 @@ + * + * #undef this for qmail-style $HOME/Mailbox mailboxes. + */ +-#define MAIL_SPOOL_PATH "/var/mail" ++#define MAIL_SPOOL_PATH "/var/spool/mail" + + #ifndef MAIL_SPOOL_PATH + /* diff --git a/source/n/popa3d/slack-desc b/source/n/popa3d/slack-desc new file mode 100644 index 000000000..6a0679164 --- /dev/null +++ b/source/n/popa3d/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +popa3d: popa3d (a POP3 daemon) +popa3d: +popa3d: popa3d is a Post Office Protocol version 3 (POP3) server. A POP3 +popa3d: server operates on local mailboxes on behalf of its remote users. +popa3d: Users can connect at any time to check their mailbox and fetch the +popa3d: mail that has accumulated. The design goals of this POP3 server are +popa3d: security, reliability, RFC compliance (slightly relaxed to work with +popa3d: real-world POP3 clients), and high performance. +popa3d: +popa3d: The popa3d daemon was written by Solar Designer. +popa3d: diff --git a/source/n/portmap/doinst.sh b/source/n/portmap/doinst.sh new file mode 100644 index 000000000..9307abfdd --- /dev/null +++ b/source/n/portmap/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.rpc.new diff --git a/source/n/portmap/portmap.SlackBuild b/source/n/portmap/portmap.SlackBuild new file mode 100755 index 000000000..3699bd9cf --- /dev/null +++ b/source/n/portmap/portmap.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=${VERSION:-6.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-portmap + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf portmap_$VERSION +tar xvf $CWD/portmap-$VERSION.tar.bz2 || exit 1 +cd portmap_$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/portmap.lwrap.needs.lnsl.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 + +mkdir -p $PKG/usr/doc/portmap-$VERSION +cp -a \ + BLURB* CHANGES README* \ + $PKG/usr/doc/portmap-$VERSION +chmod 644 $PKG/usr/doc/portmap-$VERSION/* + +make || exit 1 + +strip portmap pmap_dump pmap_set +mkdir -p $PKG/sbin +cat portmap > $PKG/sbin/rpc.portmap +chmod 755 $PKG/sbin/rpc.portmap +mkdir -p $PKG/usr/sbin +cat pmap_dump > $PKG/usr/sbin/pmap_dump +cat pmap_set > $PKG/usr/sbin/pmap_set +chmod 755 $PKG/usr/sbin/* + +mkdir -p $PKG/usr/man/man8 +for file in *.8 ; do + cat ${file} | gzip -9c > $PKG/usr/man/man8/${file}.gz +done +( cd $PKG/usr/man/man8 ; ln -sf portmap.8.gz rpc.portmap.8.gz ) + +# Now let's add a recent version of /etc/rpc for good measure: +if [ -r /etc/rpc ]; then + mkdir -p $PKG/etc + cp -a /etc/rpc $PKG/etc/rpc +else + echo "WARNING: no /etc/rpc on this system, can't include!" + echo -n "hit enter..." + read errorfodder + echo +fi + +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.rpc.gz > $PKG/etc/rc.d/rc.rpc.new +# Off by default. +chmod 644 $PKG/etc/rc.d/rc.rpc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/portmap-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/portmap/portmap.lwrap.needs.lnsl.diff b/source/n/portmap/portmap.lwrap.needs.lnsl.diff new file mode 100644 index 000000000..277c31d89 --- /dev/null +++ b/source/n/portmap/portmap.lwrap.needs.lnsl.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2007-05-10 22:02:10.000000000 -0500 ++++ ./Makefile 2007-05-17 17:44:18.000000000 -0500 +@@ -20,7 +20,7 @@ + + ifeq ($(NO_TCP_WRAPPER),) + CPPFLAGS += -DHOSTS_ACCESS +-WRAP_LIB = -lwrap ++WRAP_LIB = -lwrap -lnsl + ifdef USE_DNS + CPPFLAGS += -DENABLE_DNS + MAN_SED += -e 's/USE_DNS/yes/' diff --git a/source/n/portmap/rc.rpc b/source/n/portmap/rc.rpc new file mode 100644 index 000000000..43492329b --- /dev/null +++ b/source/n/portmap/rc.rpc @@ -0,0 +1,60 @@ +#!/bin/sh +# rc.rpc: start/stop/restart RPC daemons needed to use NFS. +# +# You must run these daemons in order to mount NFS partitions +# (unless you use the mount option '-o nolock', which can +# corrupt files and is not generally recommended unless you +# are mounting the partition(s) as read-only). +# +# To run an NFS server, starting these is mandatory. +# + +rpc_start() { + if [ -x /sbin/rpc.portmap -a -x /sbin/rpc.statd ]; then + if ! ps axc | grep -q rpc.portmap ; then + echo "Starting RPC portmapper: /sbin/rpc.portmap" + /sbin/rpc.portmap + fi + if ! ps axc | grep -q rpc.statd ; then + echo "Starting RPC NSM (Network Status Monitor): /sbin/rpc.statd" + /sbin/rpc.statd + fi + else + echo "WARNING: Cannot start RPC daemons needed for NFS. One or more of" + echo " these required daemons is not executable or is not present" + echo " on your system:" + echo + echo " /sbin/rpc.portmap or /sbin/rpc.statd" + echo + fi +} + +rpc_stop() { + killall rpc.statd 2> /dev/null + sleep 1 + killall rpc.portmap 2> /dev/null + sleep 1 + killall -9 rpc.statd 2> /dev/null # make sure :) + sleep 1 + killall -9 rpc.portmap 2> /dev/null # make sure :) + sleep 1 +} + +rpc_restart() { + rpc_stop + rpc_start +} + +case "$1" in +'start') + rpc_start + ;; +'stop') + rpc_stop + ;; +'restart') + rpc_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/portmap/slack-desc b/source/n/portmap/slack-desc new file mode 100644 index 000000000..bc5138497 --- /dev/null +++ b/source/n/portmap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +portmap: portmap (a daemon to manage RPC connections) +portmap: +portmap: The portmapper (/sbin/rpc.portmap) is a network daemon used to manage +portmap: connections to RPC services. Daemons that offer RPC services (such +portmap: as the daemons for NFS) tell the portmapper on what port they listen. +portmap: Unlike the services registered with the inetd, RPC network port +portmap: numbers may change each time the system is booted. +portmap: +portmap: The portmapper is required to use NFS or other RPC services. +portmap: +portmap: diff --git a/source/n/ppp/doinst.sh b/source/n/ppp/doinst.sh new file mode 100644 index 000000000..54facc41c --- /dev/null +++ b/source/n/ppp/doinst.sh @@ -0,0 +1,21 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ppp/chap-secrets.new +config etc/ppp/options.new +config etc/ppp/pap-secrets.new + +config etc/radiusclient/issue.new +config etc/radiusclient/radiusclient.conf.new +config etc/radiusclient/realms.new +config etc/radiusclient/servers.new + diff --git a/source/n/ppp/options.new b/source/n/ppp/options.new new file mode 100644 index 000000000..2a0286576 --- /dev/null +++ b/source/n/ppp/options.new @@ -0,0 +1,276 @@ +# /etc/ppp/options +# +# $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $ +# +# Originally created by Jim Knoble <jmknoble@mercury.interpath.net> +# Modified for Debian by alvar Bray <alvar@meiko.co.uk> +# Modified for PPP Server setup by Christoph Lameter <clameter@debian.org> +# Modified for Slackware by Pat Volkerding <volkerdi@slackware.com> +# +# Use the command egrep -v '#|^ *$' /etc/ppp/options to quickly see what +# options are active in this file. + +# Specify which DNS Servers the incoming Win95 or WinNT Connection should use +# Two Servers can be remotely configured +# dns-addr 192.168.1.1 +# dns-addr 192.168.1.2 + +# Specify which WINS Servers the incoming connection Win95 or WinNT should use +# wins-addr 192.168.1.50 +# wins-addr 192.168.1.51 + +# Run the executable or shell command specified after pppd has +# terminated the link. This script could, for example, issue commands +# to the modem to cause it to hang up if hardware modem control signals +# were not available. +#disconnect "chat -- \d+++\d\c OK ath0 OK" + +# async character map -- 32-bit hex; each bit is a character +# that needs to be escaped for pppd to receive it. 0x00000001 +# represents '\x01', and 0x80000000 represents '\x1f'. +asyncmap 0 + +# Require the peer to authenticate itself before allowing network +# packets to be sent or received. +# For a PPP Server with script based logins not using PAP or CHAP +# you need to disable this setting. +#auth + +# Do not require the other end of the connection to authenticate itself. +# This option is dangerous if pppd is setuid. +# If you also have ethernet and are having problems getting PPP to connect +# over a modem, try this option. +#noauth + +# Use hardware flow control (i.e. RTS/CTS) to control the flow of data +# on the serial port. +crtscts + +# Use software flow control (i.e. XON/XOFF) to control the flow of data +# on the serial port. +#xonxoff + +# Specifies that certain characters should be escaped on transmission +# (regardless of whether the peer requests them to be escaped with its +# async control character map). The characters to be escaped are +# specified as a list of hex numbers separated by commas. Note that +# almost any character can be specified for the escape option, unlike +# the asyncmap option which only allows control characters to be +# specified. The characters which may not be escaped are those with hex +# values 0x20 - 0x3f or 0x5e. +#escape 11,13,ff + +# Don't use the modem control lines. +#local + +# Specifies that pppd should use a UUCP-style lock on the serial device +# to ensure exclusive access to the device. +lock + +# Use the modem control lines. On Ultrix, this option implies hardware +# flow control, as for the crtscts option. (This option is not fully +# implemented.) +modem + +# Set the MRU [Maximum Receive Unit] value to <n> for negotiation. pppd +# will ask the peer to send packets of no more than <n> bytes. The +# minimum MRU value is 128. The default MRU value is 1500. A value of +# 296 is recommended for slow links (40 bytes for TCP/IP header + 256 +# bytes of data). +#mru 542 + +# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot" +# notation (e.g. 255.255.255.0). +#netmask 255.255.255.0 + +# Disables the default behaviour when no local IP address is specified, +# which is to determine (if possible) the local IP address from the +# hostname. With this option, the peer will have to supply the local IP +# address during IPCP negotiation (unless it specified explicitly on the +# command line or in an options file). +#noipdefault + +# Enables the "passive" option in the LCP. With this option, pppd will +# attempt to initiate a connection; if no reply is received from the +# peer, pppd will then just wait passively for a valid LCP packet from +# the peer (instead of exiting, as it does without this option). +#passive + +# With this option, pppd will not transmit LCP packets to initiate a +# connection until a valid LCP packet is received from the peer (as for +# the "passive" option with old versions of pppd). +#silent + +# Don't request or allow negotiation of any options for LCP and IPCP +# (use default values). +#-all + +# Disable Address/Control compression negotiation (use default, i.e. +# address/control field disabled). +#-ac + +# Disable asyncmap negotiation (use the default asyncmap, i.e. escape +# all control characters). +#-am + +# Don't fork to become a background process (otherwise pppd will do so +# if a serial device is specified). +#-detach + +# Disable IP address negotiation (with this option, the remote IP +# address must be specified with an option on the command line or in an +# options file). +#-ip + +# Disable magic number negotiation. With this option, pppd cannot +# detect a looped-back line. +#-mn + +# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e. +# 1500). +#-mru + +# Disable protocol field compression negotiation (use default, i.e. +# protocol field compression disabled). +#-pc + +# Require the peer to authenticate itself using PAP. +#+pap + +# Don't agree to authenticate using PAP. +#-pap + +# Require the peer to authenticate itself using CHAP [Cryptographic +# Handshake Authentication Protocol] authentication. +#+chap + +# Don't agree to authenticate using CHAP. +#-chap + +# Disable negotiation of Van Jacobson style IP header compression (use +# default, i.e. no compression). +#-vj + +# Increase debugging level (same as -d). If this option is given, pppd +# will log the contents of all control packets sent or received in a +# readable form. The packets are logged through syslog with facility +# daemon and level debug. This information can be directed to a file by +# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If +# pppd is compiled with extra debugging enabled, it will log messages +# using facility local2 instead of daemon). +#debug + +# Append the domain name <d> to the local host name for authentication +# purposes. For example, if gethostname() returns the name porsche, +# but the fully qualified domain name is porsche.Quotron.COM, you would +# use the domain option to set the domain name to Quotron.COM. +#domain <d> + +# Enable debugging code in the kernel-level PPP driver. The argument n +# is a number which is the sum of the following values: 1 to enable +# general debug messages, 2 to request that the contents of received +# packets be printed, and 4 to request that the contents of transmitted +# packets be printed. +#kdebug n + +# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer +# requests a smaller value via MRU negotiation, pppd will request that +# the kernel networking code send data packets of no more than n bytes +# through the PPP network interface. +#mtu <n> + +# Enforce the use of the hostname as the name of the local system for +# authentication purposes (overrides the name option). +#usehostname + +# Set the assumed name of the remote system for authentication purposes +# to <n>. +#remotename <n> + +# Add an entry to this system's ARP [Address Resolution Protocol] +# table with the IP address of the peer and the Ethernet address of this +# system. +proxyarp + +# Use the system password database for authenticating the peer using +# PAP. Note: mgetty already provides this option. If this is specified +# then dialin from users using a script under Linux to fire up ppp wont work. +# login + +# If this option is given, pppd will send an LCP echo-request frame to +# the peer every n seconds. Under Linux, the echo-request is sent when +# no packets have been received from the peer for n seconds. Normally +# the peer should respond to the echo-request by sending an echo-reply. +# This option can be used with the lcp-echo-failure option to detect +# that the peer is no longer connected. +lcp-echo-interval 30 + +# If this option is given, pppd will presume the peer to be dead if n +# LCP echo-requests are sent without receiving a valid LCP echo-reply. +# If this happens, pppd will terminate the connection. Use of this +# option requires a non-zero value for the lcp-echo-interval parameter. +# This option can be used to enable pppd to terminate after the physical +# connection has been broken (e.g., the modem has hung up) in +# situations where no hardware modem control lines are available. +lcp-echo-failure 4 + +# Set the LCP restart interval (retransmission timeout) to <n> seconds +# (default 3). +#lcp-restart <n> + +# Set the maximum number of LCP terminate-request transmissions to <n> +# (default 3). +#lcp-max-terminate <n> + +# Set the maximum number of LCP configure-request transmissions to <n> +# (default 10). +#lcp-max-configure <n> + +# Set the maximum number of LCP configure-NAKs returned before starting +# to send configure-Rejects instead to <n> (default 10). +#lcp-max-failure <n> + +# Set the IPCP restart interval (retransmission timeout) to <n> +# seconds (default 3). +#ipcp-restart <n> + +# Set the maximum number of IPCP terminate-request transmissions to <n> +# (default 3). +#ipcp-max-terminate <n> + +# Set the maximum number of IPCP configure-request transmissions to <n> +# (default 10). +#ipcp-max-configure <n> + +# Set the maximum number of IPCP configure-NAKs returned before starting +# to send configure-Rejects instead to <n> (default 10). +#ipcp-max-failure <n> + +# Set the PAP restart interval (retransmission timeout) to <n> seconds +# (default 3). +#pap-restart <n> + +# Set the maximum number of PAP authenticate-request transmissions to +# <n> (default 10). +#pap-max-authreq <n> + +# Set the CHAP restart interval (retransmission timeout for +# challenges) to <n> seconds (default 3). +#chap-restart <n> + +# Set the maximum number of CHAP challenge transmissions to <n> +# (default 10). +#chap-max-challenge + +# If this option is given, pppd will rechallenge the peer every <n> +# seconds. +#chap-interval <n> + +# With this option, pppd will accept the peer's idea of our local IP +# address, even if the local IP address was specified in an option. +#ipcp-accept-local + +# With this option, pppd will accept the peer's idea of its (remote) IP +# address, even if the remote IP address was specified in an option. +#ipcp-accept-remote + diff --git a/source/n/ppp/ppp.SlackBuild b/source/n/ppp/ppp.SlackBuild new file mode 100755 index 000000000..227a9beb0 --- /dev/null +++ b/source/n/ppp/ppp.SlackBuild @@ -0,0 +1,159 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.4.4 +RADVER=0.3.2 +PPPVER=1.98 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ppp + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+============+" +echo "| ppp-$VERSION |" +echo "+============+" +cd $TMP +rm -rf ppp-$VERSION +tar xvf $CWD/ppp-$VERSION.tar.bz2 || exit 1 +cd ppp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/ppp.slack.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +sed -i -e "s#lib/pppd#lib${LIBDIRSUFFIX}/pppd#g" $(grep -lr 'lib/pppd' *) + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG/usr + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Install PPP config files: +mkdir -p $PKG/etc/ppp +cp -a etc.ppp/* $PKG/etc/ppp +chmod 600 $PKG/etc/ppp/*secrets +( cd $PKG/etc/ppp + mv chap-secrets chap-secrets.new + mv options options.new + mv pap-secrets pap-secrets.new +) +zcat $CWD/options.new.gz > $PKG/etc/ppp/options.new + +# Fix what seems like an insecure default setting. +# Feel free to "chmod 4750 pppoatm.so rp-pppoe.so" at your own risk. +# Since they are only runnable by group root, the risk really isn't much... +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/pppd/*/*.so + +mkdir -p $PKG/usr/doc/ppp-$VERSION +cp -a \ + FAQ PLUGINS README* SETUP scripts \ + $PKG/usr/doc/ppp-$VERSION + +echo "+====================+" +echo "| radiusclient-$RADVER |" +echo "+====================+" +cd $TMP +rm -rf radiusclient-$RADVER +tar xf $CWD/radiusclient-$RADVER.tar.bz2 || exit 1 +cd radiusclient-$RADVER || exit 1 +chown -R root:root . +cp /usr/share/libtool/config.{guess,sub} . +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +zcat $CWD/radius.msdict.gz > $PKG/etc/radiusclient/dictionary.microsoft +zcat $CWD/realms.gz > $PKG/etc/radiusclient/realms +zcat $CWD/servers.gz > $PKG/etc/radiusclient/servers +( cd $PKG/etc/radiusclient + chmod 600 realms servers + mv issue issue.new + mv radiusclient.conf radiusclient.conf.new + mv realms realms.new + mv servers servers.new +) +mkdir -p $PKG/usr/doc/radiusclient-$RADVER +cp -a \ + BUGS CHANGES COPYRIGHT README README.radexample doc/instop.html \ + $PKG/usr/doc/radiusclient-$RADVER +chmod 644 $PKG/usr/doc/radiusclient-$RADVER/* + +echo "+===============+" +echo "| pppsetup-$PPPVER |" +echo "+===============+" +cd $TMP +rm -rf pppsetup-$PPPVER +tar xvf $CWD/pppsetup-$PPPVER.tar.gz || exit 1 +cd pppsetup-$PPPVER || exit 1 +chown -R root:root . +zcat $CWD/pppsetup-1.98.slack.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.pppoff.diff.gz | patch -p0 --backup || exit +zcat $CWD/pppsetup-1.98.moredevs.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.backupfiles.diff.gz | patch -p1 --backup || exit +chmod 755 ppp-off pppsetup +cp -a ppp-off pppsetup $PKG/usr/sbin +mkdir -p $PKG/usr/doc/pppsetup +cp -a \ + README.pppsetup ppp-compile.txt pppsetup-$PPPVER.README pppsetup-$PPPVER.lsm \ + $PKG/usr/doc/pppsetup + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . -name "*.a" | xargs file | grep "ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +chmod 755 $PKG/usr/sbin/* + +gzip -9 $PKG/usr/man/man?/*.? +chmod 644 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ppp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ppp/ppp.slack.diff b/source/n/ppp/ppp.slack.diff new file mode 100644 index 000000000..dafd0d3e7 --- /dev/null +++ b/source/n/ppp/ppp.slack.diff @@ -0,0 +1,28 @@ +diff -r -u ppp-2.4.2.orig/pppd/Makefile.linux ppp-2.4.2/pppd/Makefile.linux +--- ppp-2.4.2.orig/pppd/Makefile.linux 2003-11-27 13:55:19.000000000 -0800 ++++ ppp-2.4.2/pppd/Makefile.linux 2004-02-22 21:36:11.000000000 -0800 +@@ -31,7 +31,7 @@ + + # CC = gcc + # +-COPTS = -O2 -pipe -Wall -g ++COPTS = -O2 -pipe -Wall + LIBS = + + # Uncomment the next 2 lines to include support for Microsoft's +@@ -61,13 +61,13 @@ + + HAS_SHADOW=y + #USE_PAM=y +-#HAVE_INET6=y ++HAVE_INET6=y + + # Enable plugins + PLUGIN=y + + # Enable Microsoft proprietary Callback Control Protocol +-#CBCP=y ++CBCP=y + + # Enable EAP SRP-SHA1 authentication (requires libsrp) + #USE_SRP=y diff --git a/source/n/ppp/pppsetup-1.98.backupfiles.diff b/source/n/ppp/pppsetup-1.98.backupfiles.diff new file mode 100644 index 000000000..6b3647793 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.backupfiles.diff @@ -0,0 +1,26 @@ +--- ./pppsetup.orig Sun May 19 19:01:29 2002 ++++ ./pppsetup Sun May 19 19:06:07 2002 +@@ -861,10 +861,12 @@ + echo "multi on" >> /etc/host.conf + fi + +-if [ ! -z $DOMAINNAME ]; then ++if [ ! -z $DOMAINNAME ]; then ++# backup file ++cp -a /etc/resolv.conf /etc/resolv.conf.$$ 2> /dev/null + echo "search $DOMAINNAME" > /etc/resolv.conf + else +-rm -f /etc/resolv.conf 2>/dev/null ++rm -f /etc/resolv.conf 2>/dev/null + DOMAINNAME="unknown.com" + fi + +@@ -875,6 +877,8 @@ + fi + + if [ ! -s /etc/hosts ]; then ++# backup file ++cp -a /etc/hosts /etc/hosts.bak.$$ 2> /dev/null + echo "127.0.0.1 localhost" > /etc/hosts + if [ "$DOMAINNAME" = "unknown.com" ]; then + echo "0.0.0.0 `hostname 2>/dev/null`.localnet `hostname 2>/dev/null`" >> /etc/hosts diff --git a/source/n/ppp/pppsetup-1.98.moredevs.diff b/source/n/ppp/pppsetup-1.98.moredevs.diff new file mode 100644 index 000000000..6a11a3b54 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.moredevs.diff @@ -0,0 +1,105 @@ +--- ./pppsetup.orig Sun May 19 18:41:04 2002 ++++ ./pppsetup Sun May 19 18:52:49 2002 +@@ -1,15 +1,10 @@ + #!/bin/bash +-############################################################################### +-# + # PPPSETUP -- Script to set up pppd + # History: + # 7/21/95 RSL Script created (v1.0) + # 9/15/96 RSL Added code to get the ISP's domainname (v1.1) + # 9/19/96 RSL Revamped interface to use the 'dialog' + # program. (v1.2) +-############################################################################### +- +-############################################################################### + # 2/22/98 KR Added pap, chap, ms-chap, callback, & + # modem init string options. (v1.98) + # Creates /etc/ppp/options, & pap, chap, +@@ -17,33 +12,21 @@ + # More guidance. + # Monitor connection with tail & syslogd. + # Demand dialing setup with ppp-2.3.0 or later. +-############################################################################### +- +-############################################################################### + # 4/4/98 PJV Fixed massive /tmp-related security problems + # Switched to a default init string that's more + # likely to work + # Increased TIMEOUTs + # fixed bad flags given to chat -- caused dialout + # to fail +-############################################################################### +- +-############################################################################### + # 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* +-############################################################################### +- +-############################################################################### + # 5/3/1999 PJV Commented 'debug' in /etc/ppp/options + # Add commented 'noauth' in /etc/ppp/options so + # people who want to use ppp but already have a + # default route have an easier time figuring out + # what to do. :) +-############################################################################### +- +-############################################################################### + # 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" + # symlinks, and make them if they don't exist. +-############################################################################### ++# 5/19/2002 PJV Added support for more devices. + + TMP=/var/log/setup/tmp + +@@ -137,25 +120,40 @@ + done + + echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 17 60 10 \ ++modem "= use whatever /dev/modem is linked to" \ + ttyS0 "= (COM1: under DOS)" \ + ttyS1 "= (COM2: under DOS)" \ + ttyS2 "= (COM3: under DOS)" \ + ttyS3 "= (COM4: under DOS)" \ ++ttyS4 "= PCI modem" \ ++ttyS5 "= PCI modem" \ ++ttyS6 "= PCI modem" \ ++ttyS7 "= PCI modem" \ ++ttyS8 "= PCI modem" \ ++ttyS9 "= PCI modem" \ ++ttyS10 "= PCI modem" \ ++ttyS11 "= PCI modem" \ ++ttyS12 "= PCI modem" \ ++ttyS13 "= PCI modem" \ ++ttyS14 "= PCI modem" \ ++ttyS15 "= PCI modem" \ + 2> $TMP/rspTEMP$$ + + MODEM="`cat $TMP/rspTEMP$$`" + +-if [ -z $MODEM ]; then +-clear 2>/dev/null || echo +-rm -f $TMP/*TEMP* +-echo "PPP configuration cancelled." +-exit +-elif [ ! -c "/dev/$MODEM" ]; then +-/dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" +-else +-rm -f /dev/modem 2>/dev/null +-ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++if [ ! "$MODEM" = "modem" ]; then ++ if [ -z $MODEM ]; then ++ clear 2>/dev/null || echo ++ rm -f $TMP/*TEMP* ++ echo "PPP configuration cancelled." ++ exit ++ elif [ ! -c "/dev/$MODEM" ]; then ++ /dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" ++ else ++ rm -f /dev/modem 2>/dev/null ++ ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++ fi + fi + + echo "What baud rate is your modem?" > $TMP/txtTEMP$$ diff --git a/source/n/ppp/pppsetup-1.98.pppoff.diff b/source/n/ppp/pppsetup-1.98.pppoff.diff new file mode 100644 index 000000000..66b51ba7e --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.pppoff.diff @@ -0,0 +1,19 @@ +--- ppp-off.orig Fri Oct 20 17:43:50 2000 ++++ ppp-off Fri Oct 20 17:46:32 2000 +@@ -21,14 +21,8 @@ + # This just checks if demand dialing is running, if so it + # says Demand Dialing Stoped. + +-ps x 2>/dev/null > /tmp/grep.tmp +- +-if grep 2>/dev/null "options.demand" /tmp/grep.tmp >/dev/null +-then +-rm -f /tmp/grep.tmp +-D="echo Demand Dialing Stoped." +-else +-rm -f /tmp/grep.tmp ++if ps x | fgrep "options.demand" 1> /dev/null 2> /dev/null ; then ++ D="echo Demand Dialing Stoped." + fi + + # diff --git a/source/n/ppp/pppsetup-1.98.slack.diff b/source/n/ppp/pppsetup-1.98.slack.diff new file mode 100644 index 000000000..f081699c8 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.slack.diff @@ -0,0 +1,1709 @@ +--- ./pppsetup.orig Sun Feb 22 12:33:32 1998 ++++ ./pppsetup Sun Jun 18 14:01:10 2000 +@@ -19,6 +19,34 @@ + # Demand dialing setup with ppp-2.3.0 or later. + ############################################################################### + ++############################################################################### ++# 4/4/98 PJV Fixed massive /tmp-related security problems ++# Switched to a default init string that's more ++# likely to work ++# Increased TIMEOUTs ++# fixed bad flags given to chat -- caused dialout ++# to fail ++############################################################################### ++ ++############################################################################### ++# 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* ++############################################################################### ++ ++############################################################################### ++# 5/3/1999 PJV Commented 'debug' in /etc/ppp/options ++# Add commented 'noauth' in /etc/ppp/options so ++# people who want to use ppp but already have a ++# default route have an easier time figuring out ++# what to do. :) ++############################################################################### ++ ++############################################################################### ++# 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" ++# symlinks, and make them if they don't exist. ++############################################################################### ++ ++TMP=/var/log/setup/tmp ++ + if [ ! "$UID" = "0" ]; then + echo + echo "NOTICE: * $LOGNAME * You need to be 'root' to run this script." +@@ -43,81 +71,84 @@ + exit 1 + fi + +-if [ ! -d /tmp ]; then +-mkdir /tmp +-chmod 1777 /tmp +-fi +- + if [ -s /usr/lib/setup/hdsetup ]; then +-SYS="on SLACKWARE ..." ++SYS="on SLACKWARE." + fi + + VERSION="1.98" + + stty erase ^? 2>/dev/null + +-echo "PPPSETUP $VERSION $SYS" > /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Written by Robert S. Liesenfeld <xunil@bitstream.net> <IRC:Xunil>" >> /tmp/txtTEMP01 +-echo "Changes for 1.98 by Kent Robotti <robotti@erols.com>" >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "You should get these 'DOCS' if you don't already have them." >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO "PPP-HOWTO"' >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/faqs/PPP-FAQ "PPP-FAQ"' >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Press [Enter] to continue with pppsetup..." >> /tmp/txtTEMP01 ++if [ ! -r /usr/sbin/ppp-stop ]; then ++ ( cd /usr/sbin ; ln -sf ppp-off ppp-stop ) ++fi ++if [ ! -r /usr/sbin/ppp-on ]; then ++ ( cd /usr/sbin ; ln -sf ppp-go ppp-on ) ++fi + +-dialog --backtitle "PPPSETUP $VERSION ..." --textbox "/tmp/txtTEMP01" 15 70 ++echo "PPPSETUP $VERSION $SYS" > $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Written by Robert S. Liesenfeld <xunil@bitstream.net> <IRC:Xunil>" >> $TMP/txtTEMP01 ++echo "Changes for 1.98 by Kent Robotti <robotti@erols.com>" >> $TMP/txtTEMP01 ++echo "Patched for Slackware by Patrick Volkerding <volkerdi@slackware.com>" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "You should get these docs if you don't already have them:" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/howto/PPP-HOWTO" >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/faqs/PPP-FAQ" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Press [Enter] to continue with pppsetup..." >> $TMP/txtTEMP01 ++ ++dialog --backtitle "PPPSETUP $VERSION/Slackware" --textbox "$TMP/txtTEMP01" 16 73 + + while [ -z "$PHONENUM" ] + do +-echo "To begin setting up your PPP connection, i need to know a few things." > /tmp/txtTEMP$$ +-echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> /tmp/txtTEMP$$ +-echo "(P)rovider?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: atdt6661776 <-For (t)one dialing.)" >> /tmp/txtTEMP$$ +-echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Include the: atd? It's usally just: atdtphonenumber" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> /tmp/txtTEMP$$ +-echo " off call waiting.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "To begin setting up your PPP connection, i need to know a few things." > $TMP/txtTEMP$$ ++echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> $TMP/txtTEMP$$ ++echo "(P)rovider?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: atdt6661776 <-For (t)one dialing.)" >> $TMP/txtTEMP$$ ++echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Include the: atd? It's usally just: atdtphonenumber" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> $TMP/txtTEMP$$ ++echo " off call waiting.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --title "PHONE NUMBER ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 75 2> /tmp/rspTEMP$$ ++dialog --title "PHONE NUMBER ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 75 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-PHONENUM="`cat /tmp/rspTEMP$$`" ++PHONENUM="`cat $TMP/rspTEMP$$`" + + if [ -z "$PHONENUM" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No phone number." + exit + fi + done + +-echo "Where is your modem /dev/cua?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat /tmp/txtTEMP$$`" 11 50 4 \ +-cua0 "= (COM1: under DOS)" \ +-cua1 "= (COM2: under DOS)" \ +-cua2 "= (COM3: under DOS)" \ +-cua3 "= (COM4: under DOS)" \ +-2> /tmp/rspTEMP$$ ++echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++ttyS0 "= (COM1: under DOS)" \ ++ttyS1 "= (COM2: under DOS)" \ ++ttyS2 "= (COM3: under DOS)" \ ++ttyS3 "= (COM4: under DOS)" \ ++2> $TMP/rspTEMP$$ + +-MODEM="`cat /tmp/rspTEMP$$`" ++MODEM="`cat $TMP/rspTEMP$$`" + + if [ -z $MODEM ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + elif [ ! -c "/dev/$MODEM" ]; then +@@ -127,139 +158,139 @@ + ln -sf /dev/$MODEM /dev/modem 2>/dev/null + fi + +-echo "What baud rate is your modem?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat /tmp/txtTEMP$$`" 14 72 7 \ ++echo "What baud rate is your modem?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat $TMP/txtTEMP$$`" 14 72 7 \ + 460800 "460KBps - ISDN modem..." \ + 230400 "230KBps - 56Kbps modem... or ISDN modem..." \ + 115200 "115KBps - 28.8, 33.6, or 56Kbps modem..." \ + 57600 "57.6KBps - 28.8, 33.6, or 56Kbps modem..." \ + 38400 "38.4KBps - Hangin ten on the net! 28.8 or 33.6..." \ + 19200 "19.2KBps - Better known as 14.4..." \ +-9600 "9600bps - No comment..." 2> /tmp/rspTEMP$$ ++9600 "9600bps - No comment..." 2> $TMP/rspTEMP$$ + +-BAUDRATE="`cat /tmp/rspTEMP$$`" ++BAUDRATE="`cat $TMP/rspTEMP$$`" + + if [ -z $BAUDRATE ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + fi + +-echo "Does your service provider use CALLBACK?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "CALLBACK is when you call your service provider and give them" >> /tmp/txtTEMP$$ +-echo "your phone number so they can call you back, then when they" >> /tmp/txtTEMP$$ +-echo "call you back you give them your login name and password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Most service providers don't use CALLBACK, so the answer is" >> /tmp/txtTEMP$$ +-echo "probably No, unless you know otherwise." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-dialog --backtitle "CALLBACK YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 13 70 +- +-if [ $? = 0 ]; then +-echo "Put your phone number in the box below, so your service provider" > /tmp/txtTEMP$$ +-echo "can call you back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: 7771818" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "Does your service provider use CALLBACK?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "CALLBACK is when you call your service provider and give them" >> $TMP/txtTEMP$$ ++echo "your phone number so they can call you back, then when they" >> $TMP/txtTEMP$$ ++echo "call you back you give them your login name and password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Most service providers don't use CALLBACK, so the answer is" >> $TMP/txtTEMP$$ ++echo "probably No, unless you know otherwise." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++dialog --backtitle "CALLBACK YES or NO? ..." --menu "`cat $TMP/txtTEMP$$`" 16 70 2 "NO" "Most Internet providers do not use callback" "YES" "Use callback support (I know what I'm doing)" 2> $TMP/replyTEMP$$ ++ ++if [ "`cat $TMP/replyTEMP$$`" = "YES" ]; then ++echo "Put your phone number in the box below, so your service provider" > $TMP/txtTEMP$$ ++echo "can call you back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: 7771818" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 72 2> /tmp/cb1TEMP$$ ++dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 72 2> $TMP/cb1TEMP$$ + + if [ $? = 1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit +-elif [ ! -s /tmp/cb1TEMP$$ ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No Phone Number for Callback." + exit + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-CBPN="`cat /tmp/cb1TEMP$$`" +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Username or Login for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++CBPN="`cat $TMP/cb1TEMP$$`" ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Username or Login for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 15 74 2> /tmp/cb1.1TEMP$$ ++dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 15 74 2> $TMP/cb1.1TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODLOGIN="`cat /tmp/cb1.1TEMP$$`" ++CBMODLOGIN="`cat $TMP/cb1.1TEMP$$`" + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-if [ -s /tmp/cb1.1TEMP$$ ]; then +-echo "I see you have to give a Username or Login: $CBMODLOGIN" >> /tmp/txtTEMP$$ +-echo "for the initial connection to: $PHONENUM" >> /tmp/txtTEMP$$ +-fi +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Password for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Zoy85mWc" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++if [ -s $TMP/cb1.1TEMP$$ ]; then ++echo "I see you have to give a Username or Login: $CBMODLOGIN" >> $TMP/txtTEMP$$ ++echo "for the initial connection to: $PHONENUM" >> $TMP/txtTEMP$$ ++fi ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Password for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Zoy85mWc" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 17 68 2> /tmp/cb2TEMP$$ ++dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 17 68 2> $TMP/cb2TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODPASS="`cat /tmp/cb2TEMP$$`" ++CBMODPASS="`cat $TMP/cb2TEMP$$`" + fi + fi + + if [ ! -z "$CBPN" ]; then +-echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > /tmp/txtTEMP$$ +-echo "Do they present you with a Username: or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "when they call you back, if so they're probably not using PAP or" >> /tmp/txtTEMP$$ +-echo "CHAP, so you can answer NO here." >> /tmp/txtTEMP$$ +-echo "If you're not sure, you'll have to ask you're service provider." >> /tmp/txtTEMP$$ ++echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > $TMP/txtTEMP$$ ++echo "Do they present you with a Username: or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "when they call you back, if so they're probably not using PAP or" >> $TMP/txtTEMP$$ ++echo "CHAP, so you can answer NO here." >> $TMP/txtTEMP$$ ++echo "If you're not sure, you'll have to ask you're service provider." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 9 72 ++dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat $TMP/txtTEMP$$`" 9 72 + + if [ $? = 1 ]; then +-echo "What is your Username or Login to your service provider?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is the information you'll give them when they call" >> /tmp/txtTEMP$$ +-echo "you back at: $CBPN" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ ++echo "What is your Username or Login to your service provider?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is the information you'll give them when they call" >> $TMP/txtTEMP$$ ++echo "you back at: $CBPN" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 13 72 2> /tmp/cb3TEMP$$ ++dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 13 72 2> $TMP/cb3TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-CBLOGIN="`cat /tmp/cb3TEMP$$`" ++CBLOGIN="`cat $TMP/cb3TEMP$$`" + + if [ -z "$CBLOGIN" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Login for Callback." +@@ -269,24 +300,24 @@ + fi + + if [ ! -z "$CBLOGIN" ]; then +-echo "What is the Password for: $CBLOGIN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Ziy79Kie" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the Password for: $CBLOGIN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Ziy79Kie" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 10 64 2> /tmp/cb4TEMP$$ ++dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 10 64 2> $TMP/cb4TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit 1 + fi + +-CBPASS="`cat /tmp/cb4TEMP$$`" ++CBPASS="`cat $TMP/cb4TEMP$$`" + + if [ -z "$CBPASS" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Password for Callback." +@@ -296,13 +327,13 @@ + + callback1() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -322,13 +353,13 @@ + + callback2() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -344,13 +375,13 @@ + + callback3() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -368,13 +399,13 @@ + + callback4() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -393,13 +424,13 @@ + + callback5() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -417,13 +448,13 @@ + + callback6() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -440,13 +471,13 @@ + + callback7() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -465,20 +496,20 @@ + mkdir -p /etc/ppp + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-if [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback1 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback2 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback3 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback4 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback5 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback6 > /etc/ppp/callback +-elif [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback7 > /etc/ppp/callback + fi + fi +@@ -488,93 +519,93 @@ + chmod 600 /etc/ppp/callback 2>/dev/null + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo 'The default modem init string will be: "AT\&FW1H0" OK' > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you want to change it, put your init string in the box below." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you use \ in the init string, put it twice." >> /tmp/txtTEMP$$ +-echo 'Example: "AT\&F\\K3\\N3W1H0" OK' >> /tmp/txtTEMP$$ +-echo "M = No sound. W1 or S95=46 = Show CARRIER speed: 28800 etc." >> /tmp/txtTEMP$$ +-echo 'Put "" around each init string with "&" in it.' >> /tmp/txtTEMP$$ +-echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MW1H0" OK' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Just press [Enter] on a empty box to accept the default above." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo 'The default modem init string will be: "AT&FH0" OK' > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you want to change it, put your init string in the box below." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you use \ in the init string, put it twice." >> $TMP/txtTEMP$$ ++echo 'Example: "AT\&F\\K3\\N3H0" OK' >> $TMP/txtTEMP$$ ++echo "M = No sound. S95=46 = Show CARRIER speed: 28800 etc." >> $TMP/txtTEMP$$ ++echo 'Put "" around each init string with "&" in it.' >> $TMP/txtTEMP$$ ++echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MH0" OK' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Just press [Enter] on a empty box to accept the default above." >> $TMP/txtTEMP$$ + +-dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ -s /tmp/rspTEMP$$ ]; then +-INIT="`cat /tmp/rspTEMP$$`" ++if [ -s $TMP/rspTEMP$$ ]; then ++INIT="`cat $TMP/rspTEMP$$`" + else + INIT="below" + fi + fi + +-echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is usually something like..." >> /tmp/txtTEMP$$ +-echo "Examples: something.edu something.net something.com something.org" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is usually something like..." >> $TMP/txtTEMP$$ ++echo "Examples: something.edu something.net something.com something.org" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DOMAINNAME="`cat /tmp/rspTEMP$$`" ++DOMAINNAME="`cat $TMP/rspTEMP$$`" + +-echo "What is the IP address of your Internet provider's nameserver?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "It's important that these IP numbers be correct." >> /tmp/txtTEMP$$ +-echo "The IP numbers should not be: 0.0.0.0" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Note: Your service provider's technical support can provide you" >> /tmp/txtTEMP$$ +-echo "with this information. Example: 207.132.116.5" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the IP address of your Internet provider's nameserver?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "It's important that these IP numbers be correct." >> $TMP/txtTEMP$$ ++echo "The IP numbers should not be: 0.0.0.0" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Note: Your service provider's technical support can provide you" >> $TMP/txtTEMP$$ ++echo "with this information. Example: 207.132.116.5" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat /tmp/txtTEMP$$`" 14 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat $TMP/txtTEMP$$`" 14 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DNSIP="`cat /tmp/rspTEMP$$`" ++DNSIP="`cat $TMP/rspTEMP$$`" + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Does your service provider use PAP or CHAP?" > /tmp/txtTEMP$$ +-echo "If you're presented with a Username: or Login: and Password:" >> /tmp/txtTEMP$$ +-echo "prompt when you connect to your service provider, they're" >> /tmp/txtTEMP$$ +-echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> /tmp/txtTEMP$$ +-echo "I said 'probably', the only way to know for sure is to ask you're" >> /tmp/txtTEMP$$ +-echo "service provider, this could save you a lot of wasted time." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Does your service provider use PAP or CHAP?" > $TMP/txtTEMP$$ ++echo "If you're presented with a Username: or Login: and Password:" >> $TMP/txtTEMP$$ ++echo "prompt when you connect to your service provider, they're" >> $TMP/txtTEMP$$ ++echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> $TMP/txtTEMP$$ ++echo "I said 'probably', the only way to know for sure is to ask you're" >> $TMP/txtTEMP$$ ++echo "service provider, this could save you a lot of wasted time." >> $TMP/txtTEMP$$ + +-dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat /tmp/txtTEMP$$`" 16 72 4 \ ++dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat $TMP/txtTEMP$$`" 16 72 4 \ + PAP "AUTHENTICATION" \ + CHAP "AUTHENTICATION" \ + MS-CHAP-80 "is microsoft's version of CHAP." \ +-SCRIPT "Create Chat Script For Login." 2> /tmp/papTEMP ++SCRIPT "Create Chat Script For Login." 2> $TMP/papTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-PAP="`cat /tmp/papTEMP`" ++PAP="`cat $TMP/papTEMP`" + fi + fi + +@@ -595,46 +626,46 @@ + + if [ "$PAP" = "MS-CHAP-80" ]; then + if [ ! -z "$DOMAINNAME" ]; then +-echo > /tmp/txtTEMP$$ +-echo "You gave $DOMAINNAME for domain name, this will be the" >> /tmp/txtTEMP$$ +-echo "NT server you connect to when you dial: $PHONENUM" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ ++echo "You gave $DOMAINNAME for domain name, this will be the" >> $TMP/txtTEMP$$ ++echo "NT server you connect to when you dial: $PHONENUM" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + else +-echo > /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ + fi +-RAS >> /tmp/txtTEMP$$ ++RAS >> $TMP/txtTEMP$$ + +-dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat /tmp/txtTEMP$$`" 22 72 2 \ ++dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat $TMP/txtTEMP$$`" 22 72 2 \ + MS-CHAP-SERVER-1 "Stand-alone..." \ +-MS-CHAP-SERVER-2 "Queries domain controller..." 2> /tmp/mschapTEMP ++MS-CHAP-SERVER-2 "Queries domain controller..." 2> $TMP/mschapTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSCHAP="`cat /tmp/mschapTEMP`" ++MSCHAP="`cat $TMP/mschapTEMP`" + + if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ]; then +-echo "Put the name of the domain you have your account on." > /tmp/txtTEMP0 +-echo "Example: fooboo" >> /tmp/txtTEMP0 +-echo >> /tmp/txtTEMP0 ++echo "Put the name of the domain you have your account on." > $TMP/txtTEMP0 ++echo "Example: fooboo" >> $TMP/txtTEMP0 ++echo >> $TMP/txtTEMP0 + +-dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat /tmp/txtTEMP0`" 9 64 2> /tmp/rspTEMP0 ++dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat $TMP/txtTEMP0`" 9 64 2> $TMP/rspTEMP0 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSDOMAIN="`cat /tmp/rspTEMP0`" ++MSDOMAIN="`cat $TMP/rspTEMP0`" + +-if [ ! -s /tmp/rspTEMP0 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP0 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No ms-chap query domain name given." +@@ -643,32 +674,32 @@ + fi + fi + +-if [ ! "$PAP" = "SCRIPT" ] && [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Put your Login = Username in the box below." > /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes they want your username or number followed" >> /tmp/txtTEMP1 +-echo "by their @domain name like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry@foo.boo.com" >> /tmp/txtTEMP1 +-echo "Example: 1234567@foo.boo.com" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes the username is two words." >> /tmp/txtTEMP1 +-echo "Example: jerry donut" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Usally it's just your username like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 ++if [ ! "$PAP" = "SCRIPT" ] && [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Put your Login = Username in the box below." > $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes they want your username or number followed" >> $TMP/txtTEMP1 ++echo "by their @domain name like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry@foo.boo.com" >> $TMP/txtTEMP1 ++echo "Example: 1234567@foo.boo.com" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes the username is two words." >> $TMP/txtTEMP1 ++echo "Example: jerry donut" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Usally it's just your username like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 + +-dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat /tmp/txtTEMP1`" 19 64 2> /tmp/rspTEMP1 ++dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat $TMP/txtTEMP1`" 19 64 2> $TMP/rspTEMP1 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ ! -s /tmp/rspTEMP1 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP1 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No username for pap, chap, or ms-chap given." +@@ -676,119 +707,119 @@ + fi + fi + +-if [ -s /tmp/rspTEMP1 ]; then +-AUTH1="`cat /tmp/rspTEMP1`" +-echo "$AUTH1" > /tmp/txtTEMP2 +-echo "What's the password for the username above?" >> /tmp/txtTEMP2 +-echo "Example: Xpi9u87T" >> /tmp/txtTEMP2 +-dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP2`" 10 64 2> /tmp/rspTEMP2 ++if [ -s $TMP/rspTEMP1 ]; then ++AUTH1="`cat $TMP/rspTEMP1`" ++echo "$AUTH1" > $TMP/txtTEMP2 ++echo "What's the password for the username above?" >> $TMP/txtTEMP2 ++echo "Example: Xpi9u87T" >> $TMP/txtTEMP2 ++dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP2`" 10 64 2> $TMP/rspTEMP2 + +-AUTH2="`cat /tmp/rspTEMP2`" ++AUTH2="`cat $TMP/rspTEMP2`" + END="" + +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + END='""' +-echo "If you reached this part of the script, it should be because you" > /tmp/txtTEMP$$ +-echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> /tmp/txtTEMP$$ +-echo "In other words, your service provider is not using PAP, CHAP, or" >> /tmp/txtTEMP$$ +-echo "CALLBACK." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Now comes the tough part. :) I need to know what your" >> /tmp/txtTEMP$$ +-echo "service provider prints to your screen when you dial in," >> /tmp/txtTEMP$$ +-echo "and what you respond with." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Usally when you connect to your service provider you see a" >> /tmp/txtTEMP$$ +-echo "Username: or Login: prompt, and you respond with your name." >> /tmp/txtTEMP$$ +-echo "Then there's a Password: prompt and you respond with your" >> /tmp/txtTEMP$$ +-echo "password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you're not sure if it's Login: or login:, just put ogin:" >> /tmp/txtTEMP$$ +-echo "you don't have to spell the whole thing out, the end part of" >> /tmp/txtTEMP$$ +-echo "what to wait for should be enough." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo 'If they put this for example "foobar fooboo ID:", you could just' >> /tmp/txtTEMP$$ +-echo 'put ID: or you could spell the whole thing out & put "" around it.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ID:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '"foobar fooboo ID:"' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Sometimes you may want to wait for nothing, but send something." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '""' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "something" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo '"" = wait for nothing.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you don't want your password printed out put \q in front of it." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "Password:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "\qsecret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: = Login: name: = Username: word: = Password:" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This below would end up looking like this in the /etc/ppp/pppscript" >> /tmp/txtTEMP$$ +-echo "file created by pppsetup when you're done." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: jerry" >> /tmp/txtTEMP$$ +-echo "word: secret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "For example..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ogin:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "word:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "secret" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "( End by pressing Enter on an empty = blank wait for? box. )" >> /tmp/txtTEMP$$ ++echo "If you reached this part of the script, it should be because you" > $TMP/txtTEMP$$ ++echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> $TMP/txtTEMP$$ ++echo "In other words, your service provider is not using PAP, CHAP, or" >> $TMP/txtTEMP$$ ++echo "CALLBACK." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Now comes the tough part. :) I need to know what your" >> $TMP/txtTEMP$$ ++echo "service provider prints to your screen when you dial in," >> $TMP/txtTEMP$$ ++echo "and what you respond with." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Usally when you connect to your service provider you see a" >> $TMP/txtTEMP$$ ++echo "Username: or Login: prompt, and you respond with your name." >> $TMP/txtTEMP$$ ++echo "Then there's a Password: prompt and you respond with your" >> $TMP/txtTEMP$$ ++echo "password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you're not sure if it's Login: or login:, just put ogin:" >> $TMP/txtTEMP$$ ++echo "you don't have to spell the whole thing out, the end part of" >> $TMP/txtTEMP$$ ++echo "what to wait for should be enough." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'If they put this for example "foobar fooboo ID:", you could just' >> $TMP/txtTEMP$$ ++echo 'put ID: or you could spell the whole thing out & put "" around it.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ID:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '"foobar fooboo ID:"' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Sometimes you may want to wait for nothing, but send something." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '""' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "something" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo '"" = wait for nothing.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't want your password printed out put \q in front of it." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "Password:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "\qsecret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: = Login: name: = Username: word: = Password:" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This below would end up looking like this in the /etc/ppp/pppscript" >> $TMP/txtTEMP$$ ++echo "file created by pppsetup when you're done." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: jerry" >> $TMP/txtTEMP$$ ++echo "word: secret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "For example..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ogin:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "word:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "secret" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "( End by pressing Enter on an empty = blank wait for? box. )" >> $TMP/txtTEMP$$ + +-dialog --title "CHAT SCRIPT" --textbox "/tmp/txtTEMP$$" 22 72 ++dialog --title "CHAT SCRIPT" --textbox "$TMP/txtTEMP$$" 22 72 + + MESSAGE=' ' + YOUSAY=' ' + while [ ! "$MESSAGE" = "" -a ! "$YOUSAY" = "" ] + do + +-echo " End by pressing Enter on a empty = blank box." > /tmp/txtTEMP$$ +-echo " What text should I wait for?" >> /tmp/txtTEMP$$ +-dialog --backtitle "EXPECT ..." --inputbox "`cat /tmp/txtTEMP$$`" 9 60 2> /tmp/rspTEMP$$ ++echo " End by pressing Enter on a empty = blank box." > $TMP/txtTEMP$$ ++echo " What text should I wait for?" >> $TMP/txtTEMP$$ ++dialog --backtitle "EXPECT ..." --inputbox "`cat $TMP/txtTEMP$$`" 9 60 2> $TMP/rspTEMP$$ + +-MESSAGE="`cat /tmp/rspTEMP$$`" ++MESSAGE="`cat $TMP/rspTEMP$$`" + + if [ -z "$MESSAGE" ]; then + continue + fi + +-dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> /tmp/rspTEMP$$ ++dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-YOUSAY="`cat /tmp/rspTEMP$$`" ++YOUSAY="`cat $TMP/rspTEMP$$`" + +-echo "$MESSAGE $YOUSAY" >> /tmp/sayTEMP1 ++echo "$MESSAGE $YOUSAY" >> $TMP/sayTEMP1 + + if [ -z "$YOUSAY" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to send." + exit +@@ -798,22 +829,22 @@ + done + fi + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-if [ -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "You chose callback with PAP or CHAP, but answered SCRIPT to PAP or CHAP?." + exit +-elif [ ! -s /tmp/rspTEMP2 ] && [ -s /tmp/rspTEMP1 ]; then ++elif [ ! -s $TMP/rspTEMP2 ] && [ -s $TMP/rspTEMP1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No password for: $AUTH1" + exit +-elif [ ! -s /tmp/sayTEMP1 ] && [ ! -s /tmp/rspTEMP2 ]; then ++elif [ ! -s $TMP/sayTEMP1 ] && [ ! -s $TMP/rspTEMP2 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to wait for." + exit +@@ -868,9 +899,9 @@ + PATH1="pppd" + fi + +-if [ "$PATH1" != "pppd" ]; then +-chmod 4755 $PATH1 2>/dev/null +-fi ++#if [ "$PATH1" != "pppd" ]; then ++#chmod 4755 $PATH1 2>/dev/null ++#fi + + if [ -x /usr/sbin/chat ]; then + PATH2="/usr/sbin/chat" +@@ -886,14 +917,14 @@ + PATH2="chat" + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo "TIMEOUT 10" > /etc/ppp/pppscript ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo "TIMEOUT 60" > /etc/ppp/pppscript + echo "ABORT ERROR" >> /etc/ppp/pppscript + echo "ABORT BUSY" >> /etc/ppp/pppscript + echo 'ABORT "NO CARRIER"' >> /etc/ppp/pppscript + echo 'ABORT "NO DIALTONE"' >> /etc/ppp/pppscript + if [ "$INIT" = "below" ]; then +-echo '"" "AT\&FW1H0"' >> /etc/ppp/pppscript ++echo '"" "AT&FH0"' >> /etc/ppp/pppscript + echo 'OK "'$PHONENUM'"' >> /etc/ppp/pppscript + else + echo '"" '$INIT'' >> /etc/ppp/pppscript +@@ -905,8 +936,8 @@ + chmod 600 /etc/ppp/pppscript 2>/dev/null + fi + +-if [ -s /tmp/sayTEMP1 ]; then +-cat /tmp/sayTEMP1 >> /etc/ppp/pppscript ++if [ -s $TMP/sayTEMP1 ]; then ++cat $TMP/sayTEMP1 >> /etc/ppp/pppscript + echo >> /etc/ppp/pppscript + else + echo >> /etc/ppp/pppscript +@@ -948,9 +979,9 @@ + echo "# The CARRIER speed at which you connected will be reported, if it's in" >> /etc/ppp/ip-up + echo '# the /var/log/messages file. You also need the programs "tail" "cut"' >> /etc/ppp/ip-up + echo '# "tr" "grep" and "syslogd" running for this to work.' >> /etc/ppp/ip-up +-echo "# You may have to add W1 or S95=46 to your modem init string" >> /etc/ppp/ip-up ++echo "# You may have to add S95=46 to your modem init string" >> /etc/ppp/ip-up + echo "# to get your modem to report the DCE = CARRIER speed." >> /etc/ppp/ip-up +-echo "# Examples: AT&FW1 or AT&FS95=46" >> /etc/ppp/ip-up ++echo "# Example: AT&FS95=46" >> /etc/ppp/ip-up + + echo >> /etc/ppp/ip-up + echo "if [ -s /var/log/messages ] && ( ps xc 2>/dev/null | grep -q syslogd 2>/dev/null ); then" >> /etc/ppp/ip-up +@@ -986,7 +1017,8 @@ + echo >> /etc/ppp/ip-up + echo "# End..." >> /etc/ppp/ip-up + +-chmod 4755 /etc/ppp/ip-up 2>/dev/null ++#chmod 4755 /etc/ppp/ip-up 2>/dev/null ++chmod 755 /etc/ppp/ip-up 2>/dev/null + + if [ -s /etc/ppp/ip-down ]; then + mv /etc/ppp/ip-down /etc/ppp/ip-down.OLD +@@ -1022,7 +1054,7 @@ + # You'll see the modem reponse OK and date in the /etc/ppp/modem.cua?, + # modem.ttyS?, or modem.modem file. + # You need the 'modem-stats' program for this below to work. +-# ftp://sunsite.unc.edu/pub/apps/serialcomm/modem ++# ftp://metalab.unc.edu/pub/apps/serialcomm/modem + # modem-stats-1.0.1.src.elf.tar.gz + # Remove the ##### from the lines below. + +@@ -1030,7 +1062,8 @@ + } + + ipdown > /etc/ppp/ip-down +-chmod 4755 /etc/ppp/ip-down 2>/dev/null ++#chmod 4755 /etc/ppp/ip-down 2>/dev/null ++chmod 755 /etc/ppp/ip-down 2>/dev/null + + echo "#sleep 2 # Make sure the modem is really down." >> /etc/ppp/ip-down + echo '#DEV=`echo $2 | sed -e "s./dev/.."`' >> /etc/ppp/ip-down +@@ -1080,38 +1113,38 @@ + cat <<EOF + grepauth() { + +-tail -n 30 /var/log/debug 2>/dev/null | grep -i -s "rcvd" > /tmp/grep.tmp ++tail -n 30 /var/log/debug 2>/dev/null | grep -i -s "rcvd" > $TMP/grep.tmp + +-if ( grep -i -q "auth pap" /tmp/grep.tmp ); then ++if ( grep -i -q "auth pap" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting PAP = <auth pap> for authentication." + echo "I don't know if you're setup for 'PAP' or not." + echo "Did you answer 'PAP' when you ran pppsetup?" + echo +-elif ( grep -E -i -q "auth chap msoft|auth chap 80" /tmp/grep.tmp ); then ++elif ( grep -E -i -q "auth chap msoft|auth chap 80" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting MS-CHAP-80 = <auth chap 80> for authentication." + echo "I don't know if you're setup for 'MS-CHAP' or not." + echo "Did you answer 'MS-CHAP' when you ran pppsetup?" + echo +-elif ( grep -i -q "auth chap" /tmp/grep.tmp ); then ++elif ( grep -i -q "auth chap" $TMP/grep.tmp ); then + echo "They seem to be requesting CHAP = <auth chap> for authentication." + echo "I don't know if you're setup for 'CHAP' or not." + echo "Did you answer 'CHAP' when you ran pppsetup?" + echo + else +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + exit 0 + fi + +-if ( grep -i -q "callback" /tmp/grep.tmp ); then ++if ( grep -i -q "callback" $TMP/grep.tmp ); then + echo "They seem to be requesting CALLBACK." + echo "I don't know if you're setup for 'callback' or not." + echo "Did you answer 'CALLBACK' when you ran pppsetup?" + echo + fi + +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + } + EOF + } +@@ -1124,14 +1157,14 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go + fi + +-echo "read" >> /usr/sbin/ppp-go +-echo "ifconnect" >> /usr/sbin/ppp-go ++echo "#read" >> /usr/sbin/ppp-go ++echo "#ifconnect" >> /usr/sbin/ppp-go + echo "exit 0" >> /usr/sbin/ppp-go + echo "fi" >> /usr/sbin/ppp-go + +@@ -1140,10 +1173,10 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback") || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript") || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + fi + + echo "exit 0" >> /usr/sbin/ppp-go +@@ -1194,26 +1227,37 @@ + echo 'echo "USAGE: ppp-go -h <Help>"' >> /usr/sbin/ppp-go + echo "exit 1" >> /usr/sbin/ppp-go + +-chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++#chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++chmod 755 /usr/sbin/ppp-go 2>/dev/null + +-echo "lock" > /etc/ppp/options +-echo "defaultroute" >> /etc/ppp/options +-echo "noipdefault" >> /etc/ppp/options +-echo "modem" >> /etc/ppp/options +-echo "/dev/$MODEM" >> /etc/ppp/options +-echo "$BAUDRATE" >> /etc/ppp/options +-echo "crtscts" >> /etc/ppp/options +-echo "debug" >> /etc/ppp/options +-echo "passive" >> /etc/ppp/options +-echo "asyncmap 0" >> /etc/ppp/options ++cat << EOF > /etc/ppp/options ++# General configuration options for PPPD: ++lock ++defaultroute ++noipdefault ++modem ++/dev/$MODEM ++$BAUDRATE ++crtscts ++# Uncomment the line below for more verbose error reporting: ++#debug ++# If you have a default route already, pppd may require the other side ++# to authenticate itself, which most ISPs will not do. To work around this, ++# uncomment the line below. Note that this may have negative side effects ++# on system security if you allow PPP dialins. See the docs in /usr/doc/ppp* ++# for more information. ++#noauth ++passive ++asyncmap 0 ++EOF + + if [ ! -z "$CBPN" ]; then + echo 'callback "'$CBPN'"' >> /etc/ppp/options + fi + +-if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s /tmp/rspTEMP2 ]; then ++if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$MSDOMAIN\\\\$AUTH1'"' >> /etc/ppp/options +-elif [ -s /tmp/rspTEMP2 ]; then ++elif [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$AUTH1'"' >> /etc/ppp/options + fi + +@@ -1277,7 +1321,7 @@ + echo "0.0.0.0:10.10.10.10" >> /etc/ppp/options.demand + echo "demand" >> /etc/ppp/options.demand + +-if [ -s /tmp/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then + echo 'connect "'$PATH2' -v -f /etc/ppp/callback"' >> /etc/ppp/options.demand + else + echo 'connect "'$PATH2' -v -f /etc/ppp/pppscript"' >> /etc/ppp/options.demand +@@ -1352,18 +1396,18 @@ + 0.0.0.0 foobar.localnet foobar + + ~# dip -tv +-dip> port /dev/cua1 +-can't open - problems with locking cua1 ++dip> port /dev/ttyS1 ++can't open - problems with locking ttyS1 + + If you get the above message after "port /dev/modem", it means you have a +-lock file in /var/lock/LCK..cua1, remove the lock file and kill dip. ++lock file in /var/lock/LCK..ttyS1, remove the lock file and kill dip. + + ~# rm /var/lock/LCK* + # killall -9 dip + + ~# dip -tv + +-dip> port /dev/cua1 <-Where's the modem? cua0 = com1 cua1 = com2 etc.) ++dip> port /dev/ttyS1 <-Where's the modem? ttyS0 = com1 ttyS1 = com2 etc.) + dip> speed 115200 <-Modem speed: 19200 38400 57600 + dip> term + +@@ -1379,7 +1423,7 @@ + dip> default <-Use default route.) + dip> mode ppp <-Start PPP at your end.) + +-~# ping sunsite.unc.edu <-To see if you're connected.) ++~# ping metalab.unc.edu <-To see if you're connected.) + + ~# dip -k <-To kill dip and the PPP connection.) + +@@ -1393,7 +1437,7 @@ + lock + defaultroute + noipdefault +-/dev/cua1 <- cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4 ++/dev/ttyS1 <- ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4 + 57600 + modem + crtscts +@@ -1419,221 +1463,221 @@ + } + + echo "=========================================================================" > /etc/ppp/pppsetup.txt +-cat /tmp/txtTEMP01 >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP01 >> /etc/ppp/pppsetup.txt + +-echo "=========================================================================" > /tmp/txtTEMP$$ +-echo "These are your PPP configuration files and instructions..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-if [ ! -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/pppscript >> /tmp/txtTEMP$$ +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "# This is your /etc/ppp/callback script." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/callback." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-echo "# This is your /etc/ppp/options file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options >> /tmp/txtTEMP$$ ++echo "=========================================================================" > $TMP/txtTEMP$$ ++echo "These are your PPP configuration files and instructions..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++if [ ! -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/pppscript >> $TMP/txtTEMP$$ ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "# This is your /etc/ppp/callback script." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/callback." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++echo "# This is your /etc/ppp/options file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options >> $TMP/txtTEMP$$ + + if [ "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> /tmp/txtTEMP$$ +-echo "cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4" >> /tmp/txtTEMP$$ +-echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> $TMP/txtTEMP$$ ++echo "ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4" >> $TMP/txtTEMP$$ ++echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "The remotename option is required for microsoft's ms-chap-80." >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> /tmp/txtTEMP$$ +-echo "change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "The remotename option is required for microsoft's ms-chap-80." >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> $TMP/txtTEMP$$ ++echo "change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/options.demand dialing file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options.demand >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have a ethernet connection you should change the local:remote" >> /tmp/txtTEMP$$ +-echo "IP addresses in the options.demand file, to your actual local and" >> /tmp/txtTEMP$$ +-echo "remote address. Example: 215.346.117.89:312.217.187.96" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "# This in your /etc/resolv.conf file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/resolv.conf >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/options.demand dialing file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options.demand >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have a ethernet connection you should change the local:remote" >> $TMP/txtTEMP$$ ++echo "IP addresses in the options.demand file, to your actual local and" >> $TMP/txtTEMP$$ ++echo "remote address. Example: 215.346.117.89:312.217.187.96" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "# This in your /etc/resolv.conf file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/resolv.conf >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + if [ -z $DNSIP ]; then +-echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + else +-echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + fi + + if [ -z $DNSIP ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: You didn't give a IP address for your internet service" >> /tmp/txtTEMP$$ +-echo "providers nameserver, i put '207.132.116.5' but this may not work." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: You didn't give a IP address for your internet service" >> $TMP/txtTEMP$$ ++echo "providers nameserver, i put '207.132.116.5' but this may not work." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "CHAP" ] || [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/chap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/chap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> /tmp/txtTEMP$$ +-echo "the /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo "You should change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> $TMP/txtTEMP$$ ++echo "the /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo "You should change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "PAP" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/pap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/pap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH1" = "pppd" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find <pppd> on your system." >> /tmp/txtTEMP$$ +-echo "You need <pppd> on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find <pppd> on your system." >> $TMP/txtTEMP$$ ++echo "You need <pppd> on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH2" = "chat" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find <chat> on your system." >> /tmp/txtTEMP$$ +-echo "You need <chat> on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find <chat> on your system." >> $TMP/txtTEMP$$ ++echo "You need <chat> on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MSG1" = "YES" ] && [ ! "$MSG2" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> /tmp/txtTEMP$$ +-echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> $TMP/txtTEMP$$ ++echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PPPRC" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> /tmp/txtTEMP$$ +-echo ".ppprc.off, it might interfere with the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> $TMP/txtTEMP$$ ++echo ".ppprc.off, it might interfere with the PPP connection." >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "Does everything look correct? if not, run 'pppsetup' again..." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo "To connect to your service provider." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go <-Make PPP connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Does everything look correct? if not, run 'pppsetup' again..." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo "To connect to your service provider." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go <-Make PPP connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "You'll hear and see the modem dialing then once connected," >> /tmp/txtTEMP$$ +-echo "logging you in Username: or Login: and Password: etc." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You won't see a Username or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "if they're using PAP or CHAP to authenticate you." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If the connection was successful you'll see the Local IP and" >> /tmp/txtTEMP$$ +-echo "Remote IP address printed to the screen, you can press [Enter]." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you run ppp-go in X windows you probably won't see a Local" >> /tmp/txtTEMP$$ +-echo "and Remote IP address printed to the screen, you'll just see" >> /tmp/txtTEMP$$ +-echo "the connection process come to a end, wait a few seconds and" >> /tmp/txtTEMP$$ +-echo "press [Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you don't connect for whatever reason e.g. Failed No" >> /tmp/txtTEMP$$ +-echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> /tmp/txtTEMP$$ +-echo "[Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "if you have syslogd running, you can see the output messages" >> /tmp/txtTEMP$$ +-echo "from pppd and chat in the /var/log/messages and or debug file." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "Sample /var/log/messages file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You don't have a successful PPP connection until you" >> /tmp/txtTEMP$$ +-echo "receive a local & remote IP address like above." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have the X window system, you could connect in a Xterm." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # startx" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # ppp-go" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # netscape mosaic etc." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You'll hear and see the modem dialing then once connected," >> $TMP/txtTEMP$$ ++echo "logging you in Username: or Login: and Password: etc." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You won't see a Username or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "if they're using PAP or CHAP to authenticate you." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If the connection was successful you'll see the Local IP and" >> $TMP/txtTEMP$$ ++echo "Remote IP address printed to the screen, you can press [Enter]." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you run ppp-go in X windows you probably won't see a Local" >> $TMP/txtTEMP$$ ++echo "and Remote IP address printed to the screen, you'll just see" >> $TMP/txtTEMP$$ ++echo "the connection process come to a end, wait a few seconds and" >> $TMP/txtTEMP$$ ++echo "press [Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't connect for whatever reason e.g. Failed No" >> $TMP/txtTEMP$$ ++echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> $TMP/txtTEMP$$ ++echo "[Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "if you have syslogd running, you can see the output messages" >> $TMP/txtTEMP$$ ++echo "from pppd and chat in the /var/log/messages and or debug file." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "Sample /var/log/messages file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You don't have a successful PPP connection until you" >> $TMP/txtTEMP$$ ++echo "receive a local & remote IP address like above." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have the X window system, you could connect in a Xterm." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # startx" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # ppp-go" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # netscape mosaic etc." >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-off <-To end the ppp connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-off <-To end the ppp connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go -h <-For help.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go -h <-For help.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo 'There is no support in linux for "WinModems", if you have a' >> /tmp/txtTEMP$$ +-echo "WinModem you will not be able to use it in linux." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "There is support for plug n play modems, if you have a pnp" >> /tmp/txtTEMP$$ +-echo 'modem you may need "isapnptools" to get it recognized.' >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'There is no support in linux for "WinModems", if you have a' >> $TMP/txtTEMP$$ ++echo "WinModem you will not be able to use it in linux." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "There is support for plug n play modems, if you have a pnp" >> $TMP/txtTEMP$$ ++echo 'modem you may need "isapnptools" to get it recognized.' >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then +-echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> /tmp/txtTEMP$$ ++echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> $TMP/txtTEMP$$ + fi +-echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "Done... You can exit now..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "End..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Done... You can exit now..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "End..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-dialog --title "DONE" --clear --textbox "/tmp/txtTEMP$$" 22 78 ++dialog --title "DONE" --clear --textbox "$TMP/txtTEMP$$" 22 78 + + clear 2>/dev/null || echo + +-cat /tmp/txtTEMP$$ >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP$$ >> /etc/ppp/pppsetup.txt + chmod 600 /etc/ppp/pppsetup.txt 2>/dev/null + + if [ ! -s /etc/syslog.conf ]; then +@@ -1644,7 +1688,7 @@ + + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + + killall -9 syslogd 2>/dev/null + syslogd & 2>/dev/null +@@ -1659,7 +1703,7 @@ + else + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + echo + echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then diff --git a/source/n/ppp/radius.msdict b/source/n/ppp/radius.msdict new file mode 100644 index 000000000..da3a317c0 --- /dev/null +++ b/source/n/ppp/radius.msdict @@ -0,0 +1,81 @@ +# +# Microsoft's VSA's, from RFC 2548 +# +# $Id: dictionary.microsoft,v 1.1 2004/11/14 07:26:26 paulus Exp $ +# + +VENDOR Microsoft 311 Microsoft + +ATTRIBUTE MS-CHAP-Response 1 string Microsoft +ATTRIBUTE MS-CHAP-Error 2 string Microsoft +ATTRIBUTE MS-CHAP-CPW-1 3 string Microsoft +ATTRIBUTE MS-CHAP-CPW-2 4 string Microsoft +ATTRIBUTE MS-CHAP-LM-Enc-PW 5 string Microsoft +ATTRIBUTE MS-CHAP-NT-Enc-PW 6 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Policy 7 string Microsoft +# This is referred to as both singular and plural in the RFC. +# Plural seems to make more sense. +ATTRIBUTE MS-MPPE-Encryption-Type 8 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Types 8 string Microsoft +ATTRIBUTE MS-RAS-Vendor 9 integer Microsoft +ATTRIBUTE MS-CHAP-Domain 10 string Microsoft +ATTRIBUTE MS-CHAP-Challenge 11 string Microsoft +ATTRIBUTE MS-CHAP-MPPE-Keys 12 string Microsoft +ATTRIBUTE MS-BAP-Usage 13 integer Microsoft +ATTRIBUTE MS-Link-Utilization-Threshold 14 integer Microsoft +ATTRIBUTE MS-Link-Drop-Time-Limit 15 integer Microsoft +ATTRIBUTE MS-MPPE-Send-Key 16 string Microsoft +ATTRIBUTE MS-MPPE-Recv-Key 17 string Microsoft +ATTRIBUTE MS-RAS-Version 18 string Microsoft +ATTRIBUTE MS-Old-ARAP-Password 19 string Microsoft +ATTRIBUTE MS-New-ARAP-Password 20 string Microsoft +ATTRIBUTE MS-ARAP-PW-Change-Reason 21 integer Microsoft + +ATTRIBUTE MS-Filter 22 string Microsoft +ATTRIBUTE MS-Acct-Auth-Type 23 integer Microsoft +ATTRIBUTE MS-Acct-EAP-Type 24 integer Microsoft + +ATTRIBUTE MS-CHAP2-Response 25 string Microsoft +ATTRIBUTE MS-CHAP2-Success 26 string Microsoft +ATTRIBUTE MS-CHAP2-CPW 27 string Microsoft + +ATTRIBUTE MS-Primary-DNS-Server 28 ipaddr Microsoft +ATTRIBUTE MS-Secondary-DNS-Server 29 ipaddr Microsoft +ATTRIBUTE MS-Primary-NBNS-Server 30 ipaddr Microsoft +ATTRIBUTE MS-Secondary-NBNS-Server 31 ipaddr Microsoft + +#ATTRIBUTE MS-ARAP-Challenge 33 string Microsoft + + +# +# Integer Translations +# + +# MS-BAP-Usage Values + +VALUE MS-BAP-Usage Not-Allowed 0 +VALUE MS-BAP-Usage Allowed 1 +VALUE MS-BAP-Usage Required 2 + +# MS-ARAP-Password-Change-Reason Values + +VALUE MS-ARAP-PW-Change-Reason Just-Change-Password 1 +VALUE MS-ARAP-PW-Change-Reason Expired-Password 2 +VALUE MS-ARAP-PW-Change-Reason Admin-Requires-Password-Change 3 +VALUE MS-ARAP-PW-Change-Reason Password-Too-Short 4 + +# MS-Acct-Auth-Type Values + +VALUE MS-Acct-Auth-Type PAP 1 +VALUE MS-Acct-Auth-Type CHAP 2 +VALUE MS-Acct-Auth-Type MS-CHAP-1 3 +VALUE MS-Acct-Auth-Type MS-CHAP-2 4 +VALUE MS-Acct-Auth-Type EAP 5 + +# MS-Acct-EAP-Type Values + +VALUE MS-Acct-EAP-Type MD5 4 +VALUE MS-Acct-EAP-Type OTP 5 +VALUE MS-Acct-EAP-Type Generic-Token-Card 6 +VALUE MS-Acct-EAP-Type TLS 13 + diff --git a/source/n/ppp/realms b/source/n/ppp/realms new file mode 100644 index 000000000..344036404 --- /dev/null +++ b/source/n/ppp/realms @@ -0,0 +1,22 @@ +# /etc/radiusclient/realms +# +# Handle realm @netservers.co.uk on an internal RADIUS server +# (note the server must be told to strip the realm) + +#authserver netservers.co.uk 192.168.1.1:1812 +#acctserver netservers.co.uk 192.168.1.1:1813 + +# users in realm @example.com are handled by separate servers + +#authserver example.com 10.0.0.1:1812 +#acctserver example.com 10.0.0.2:1813 + +# the DEFAULT realm matches users that do not supply a realm + +#authserver DEFAULT 192.168.1.1:1812 +#acctserver DEFAULT 192.168.1.1:1813 + +# Any realms that do not match in the realms file automatically fall +# through to the standard radius plugin which uses the servers in the +# radiusclient.conf file. Note that this is different than the +# DEFAULT realm match, above. diff --git a/source/n/ppp/servers b/source/n/ppp/servers new file mode 100644 index 000000000..b061bf934 --- /dev/null +++ b/source/n/ppp/servers @@ -0,0 +1,4 @@ +#Server Name or Client/Server pair Key +#---------------- --------------- +#portmaster.elemental.net hardlyasecret +#portmaster2.elemental.net donttellanyone diff --git a/source/n/ppp/slack-desc b/source/n/ppp/slack-desc new file mode 100644 index 000000000..ddf6f37f4 --- /dev/null +++ b/source/n/ppp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ppp: ppp (Point-to-Point Protocol) +ppp: +ppp: The Point-to-Point Protocol (PPP) provides a method for transmitting +ppp: data over serial links. It's commonly used for connecting to the +ppp: Internet using a modem. This package includes the PPP daemon (pppd), +ppp: which negotiates with the peer to establish the link and sets up the +ppp: ppp network interface, and pppsetup, an easy-to-use utility for +ppp: setting up your PPP daemon. +ppp: +ppp: +ppp: diff --git a/source/n/procmail/procmail.SlackBuild b/source/n/procmail/procmail.SlackBuild new file mode 100755 index 000000000..0d7456c2a --- /dev/null +++ b/source/n/procmail/procmail.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=3.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-procmail +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_procmail.tar.gz + +cd $TMP +rm -rf procmail-$VERSION +tar xvf $CWD/procmail-$VERSION.tar.gz || exit 1 +cd procmail-$VERSION || exit 1 +zcat $CWD/procmail_3.22-5.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/procmail.lfs.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +cd src +cat formail > $PKG/usr/bin/formail +cat lockfile > $PKG/usr/bin/lockfile +cat mailstat > $PKG/usr/bin/mailstat +cat procmail > $PKG/usr/bin/procmail + +cd ../man +for file in formail.1 lockfile.1 procmail.1 ; do + gzip -9c $file > $PKG/usr/man/man1/$file.gz +done +for file in procmailex.5 procmailrc.5 procmailsc.5 ; do + gzip -9c $file > $PKG/usr/man/man5/$file.gz +done +cd .. + +mkdir -p $PKG/usr/doc/procmail-$VERSION +cp -a \ + Artistic COPYING FAQ FEATURES HISTORY INSTALL KNOWN_BUGS \ + README examples \ + $PKG/usr/doc/procmail-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/procmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/procmail/procmail.lfs.diff b/source/n/procmail/procmail.lfs.diff new file mode 100644 index 000000000..7ad42f664 --- /dev/null +++ b/source/n/procmail/procmail.lfs.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2006-09-18 23:07:40.000000000 -0500 ++++ ./Makefile 2006-09-18 23:09:54.000000000 -0500 +@@ -86,7 +86,7 @@ + #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized + + # The place to put your favourite extra cc flag +-CFLAGS0 = -O #$(GCC_WARNINGS) ++CFLAGS0 = -O -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 #$(GCC_WARNINGS) + LDFLAGS0= -s + # Read my libs :-) + LIBS= diff --git a/source/n/procmail/procmail_3.22-5.diff b/source/n/procmail/procmail_3.22-5.diff new file mode 100644 index 000000000..8e6ba5f93 --- /dev/null +++ b/source/n/procmail/procmail_3.22-5.diff @@ -0,0 +1,1026 @@ +--- procmail-3.22.orig/examples/advanced ++++ procmail-3.22/examples/advanced +@@ -251,14 +251,14 @@ + -------------------------------------------------------- + + There are many different reasons why more and more sites decide not to +-store mail in /usr/spool/mail or /usr/mail anymore. ++store mail in /var/spool/mail or /var/mail anymore. + Some of the obvious advantages when storing mail in the recipient's home + directory are: + - Mail is automatically subject to the user's quota limitations. + - Often there is more room on the home partition(s) than on that +- one /usr/mail partition. ++ one /var/mail partition. + +-The quota limitations also apply to /usr/spool/mail or /usr/mail if procmail ++The quota limitations also apply to /var/spool/mail or /var/mail if procmail + does the delivery. These quota limitations often do not work with the + regular /bin/mail since that usually writes the mailbox with root permissions + (eluding the quota restrictions). +@@ -276,7 +276,7 @@ + defined SYSTEM_MBOX to be. Some braindamaged mail programs + do not pick up the MAIL environment variable, these either + have to be patched/recompiled or you have to create symbolic +- links in /usr/mail to every person's new mailbox. ++ links in /var/mail to every person's new mailbox. + + --- + +--- procmail-3.22.orig/man/procmail.man ++++ procmail-3.22/man/procmail.man +@@ -723,6 +723,15 @@ + .fi + .ad + .PP ++Some mailers (notably exim) do not currently accept the above syntax. ++In such case use this instead: ++.PP ++.na ++.nf ++|/usr/bin/procmail ++.fi ++.ad ++.PP + Procmail can also be invoked to postprocess an already filled system + mailbox. This can be useful if you don't want to or can't use a + $HOME/@DOT_FORWARD@ file (in which case the following script could +@@ -754,7 +763,7 @@ + .SS "A sample small @PROCMAILRC@:" + .na + .nf +-PATH=/bin:/usr/bin:@BINDIR@ ++PATH=/usr/local/bin:/usr/bin:/bin + MAILDIR=$HOME/Mail #you'd better make sure it exists + DEFAULT=$MAILDIR/mbox #completely optional + LOGFILE=$MAILDIR/from #recommended +--- procmail-3.22.orig/src/comsat.c ++++ procmail-3.22/src/comsat.c +@@ -92,7 +92,7 @@ + } + if(newvalid) /* so far, so good */ + { int s; +- if(!*chp) /* no service */ ++ if(!chad||!*chp) /* no service */ + chp=BIFF_serviceport; /* new balls please! */ + s=strtol(chp,&chad,10); + if(chp!=chad) /* the service is not numeric */ +@@ -120,7 +120,7 @@ + { int s;const char*p; + if(!csvalid||!buf) /* is comat on and set to a valid address? */ + return; +- if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */ ++ if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */ + return; + if(!(p=folder?folder:cslastf)) /* do we have a folder? */ + return; +--- procmail-3.22.orig/src/memblk.c ++++ procmail-3.22/src/memblk.c +@@ -51,11 +51,11 @@ + { + #ifdef USE_MMAP + if(mb->fd>=0) +- { long len=mb->len+1; +- if(munmap(mb->p,len)) +- mmapfailed(len); /* don't want to continue here */ +- if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) +- mmapfailed(len); ++ { long mlen=mb->len+1; ++ if(munmap(mb->p,mlen)) ++ mmapfailed(mlen); /* don't want to continue here */ ++ if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) ++ mmapfailed(mlen); + close(mb->fd); + mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */ + } +@@ -77,8 +77,8 @@ + strcpy(filename,MMAP_DIR); + if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&& + (mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0)) +- { mb->filelen=len; +- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) ++ { mb->filelen=len+1; ++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + dropf: { close(mb->fd);mb->fd= -1; + if(verbose)nlog("Unable to extend or use tempfile"); + } +@@ -98,9 +98,9 @@ + } + } + if(mb->fd>=0) +- { if(len>mb->filelen) /* need to extend? */ +- { mb->filelen=len; +- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) ++ { if(len>=mb->filelen) /* need to extend? */ ++ { mb->filelen=len+1; ++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + { char*p=malloc(len+1); /* can't extend, switch to malloc */ + tmemmove(p,mb->p,mb->len); + munmap(mb->p,mb->len+1); +@@ -124,9 +124,9 @@ + } + else + mb->p=realloc(mb->p,len+1); +- mb->len=len+1; +- mb->p[len]='\0'; ++ mb->len=len; + ret1: ++ mb->p[len]='\0'; + return 1; + } + +--- procmail-3.22.orig/src/authenticate.c ++++ procmail-3.22/src/authenticate.c +@@ -39,13 +39,13 @@ + #include "authenticate.h" + + #ifndef MAILSPOOLDIR +-#define MAILSPOOLDIR "/var/spool/mail/" /* watch the trailing / */ ++#define MAILSPOOLDIR "/var/mail/" /* watch the trailing / */ + #endif + #ifndef MAILSPOOLSUFFIX + #define MAILSPOOLSUFFIX "" /* suffix to force maildir or MH style */ + #endif + #ifndef MAILSPOOLHASH +-#define MAILSPOOLHASH 0 /* 2 would deliver to /var/spool/mail/b/a/bar */ ++#define MAILSPOOLHASH 0 /* 2 would deliver to /var/mail/b/a/bar */ + #endif + /*#define MAILSPOOLHOME "/.mail" /* watch the leading / */ + /* delivers to $HOME/.mail */ +--- procmail-3.22.orig/src/autoconf ++++ procmail-3.22/src/autoconf +@@ -89,7 +89,7 @@ + # #define NOfcntl_lock + #Ok #define USElockf + #Ok #define USEflock +-#Ok #define MAILSPOOLDIR "/var/spool/mail/" ++#Ok #define MAILSPOOLDIR "/var/mail/" + #Ok #define SENDMAIL "/usr/sbin/sendmail" + # #define buggy_SENDMAIL + # #define DEFflagsendmail "" +@@ -1416,14 +1416,14 @@ + + found=no + +-for a in /var/spool/mail /usr/spool/mail /var/mail /usr/mail /spool/mail ++for a in /var/mail /var/spool/mail /usr/spool/mail /usr/mail /spool/mail + do + test -d $a -a $found != yes && + echo '#define MAILSPOOLDIR "'$a'/"' >>$ACONF && found=yes + done + if test $found != yes + then +- echo '#define MAILSPOOLDIR "/var/spool/mail/"' >>$ACONF ++ echo '#define MAILSPOOLDIR "/var/mail/"' >>$ACONF + echo Could not find the system-mailbox directory, supplied default. + fi + +@@ -1470,15 +1470,14 @@ + grep 'Mlocal.*procmail' >$DEVNULL || + echo '#define CF_no_procmail_yet' >>$ACONF + +-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | +- grep '^V' >$DEVNULL || +- echo '#define buggy_SENDMAIL' >>$ACONF ++# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | ++# grep '^V' >$DEVNULL || ++# echo '#define buggy_SENDMAIL' >>$ACONF + + lpath='/bin' + bins="/bin" + +-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \ +- /global/bin /usr/bin/X11 /usr/X*/bin ++for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin + do + if test -d $newd + then +--- procmail-3.22.orig/src/procmail.c ++++ procmail-3.22/src/procmail.c +@@ -652,8 +652,7 @@ + nrcond= -1; + if(tolock) /* clear temporary buffer for lockfile name */ + free(tolock); +- for(i=maxindex(flags);i;i--) /* clear the flags */ +- flags[i]=0; ++ bbzero(flags,sizeof(flags)); /* clear the flags */ + for(tolock=0,locknext=0;;) + { chp=skpspace(chp); + switch(i= *chp++) +--- procmail-3.22.orig/src/pipes.c ++++ procmail-3.22/src/pipes.c +@@ -145,7 +145,9 @@ + if(Stdout) + { *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */ + if(!(backblock=getenv(Stdout))) /* no current value? */ +- PRDB=PWRB= -1; ++ { PRDB=PWRB= -1; ++ backlen=0; ++ } + else + { backlen=strlen(backblock); + goto pip; +@@ -155,9 +157,7 @@ + pip: rpipe(pbackfd); + rpipe(pinfd); /* main pipes setup */ + if(!(pidchild=sfork())) /* create a sending procmail */ +- { if(Stdout&&backblock) +- backlen=strlen(backblock); +- else ++ { if(!Stdout) + backblock=source,backlen=len; + childsetup();rclose(PRDI);rclose(PRDB); + rpipe(poutfd);rclose(STDOUT); +@@ -194,7 +194,7 @@ + makeblock(&temp,Stdfilled); + tmemmove(temp.p,Stdout,Stdfilled); + readdyn(&temp,&Stdfilled,Stdfilled+backlen+1); +- Stdout=realloc(Stdout,&Stdfilled+1); ++ Stdout=realloc(Stdout,Stdfilled+1); + tmemmove(Stdout,temp.p,Stdfilled+1); + freeblock(&temp); + retStdout(Stdout,pwait&&pipw,!backblock); +--- procmail-3.22.orig/src/memblk.h ++++ procmail-3.22/src/memblk.h +@@ -1,6 +1,6 @@ + typedef struct memblk { + char*p; /* where it starts */ +- long len; /* currently allocated size */ ++ long len; /* current size, not including trailing NUL */ + #ifdef USE_MMAP + off_t filelen; /* how long is the file */ + int fd; /* file which is mmap()ed */ +--- procmail-3.22.orig/src/manconf.c ++++ procmail-3.22/src/manconf.c +@@ -233,7 +233,7 @@ + \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1"); + pc("LMTPOPT",LMTPOPT); + #else +- ps("LMTPOPTdesc","");ps("LMTPusage",""); ++ ps("LMTPOPTdesc","");ps("LMTPusage","\1"); + #endif + pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--; + pn("DEFlinebuf",DEFlinebuf); +--- procmail-3.22.orig/src/recommend.c ++++ procmail-3.22/src/recommend.c +@@ -47,7 +47,7 @@ + printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]); + else if(chmdir==1) + goto nogchmod; +- if(chmdir) ++ if(0) + printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir); + nogchmod: + return EXIT_SUCCESS; +--- procmail-3.22.orig/src/foldinfo.h ++++ procmail-3.22/src/foldinfo.h +@@ -10,7 +10,7 @@ + + #define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */ + #define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */ +-#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */ ++#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */ + #define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */ + #define ft_checkcloser(type) ((type)>ft_MH) + #define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */ +--- procmail-3.22.orig/src/mailfold.c ++++ procmail-3.22/src/mailfold.c +@@ -378,7 +378,8 @@ + dfilled=mailread=0; + else if(rhead) /* only read in a new header */ + { memblk new; +- dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0); ++ dfilled=mailread=0;makeblock(&new,0); ++ readdyn(&new,&dfilled,thebody-themail.p); + if(tobesent>dfilled&&isprivate) /* put it in place here */ + { tmemmove(themail.p+dfilled,thebody,filled-=tobesent); + tmemmove(themail.p,new.p,dfilled); +--- procmail-3.22.orig/FAQ ++++ procmail-3.22/FAQ +@@ -57,8 +57,8 @@ + Forward to |/usr/bin/procmail + or if that doesn't work, try: + Pipe to /usr/bin/procmail +- as the only line in your mail spool file (e.g. /usr/mail/$LOGNAME), as +- well as doing a "chmod 06660 /usr/mail/$LOGNAME". For more information ++ as the only line in your mail spool file (e.g. /var/mail/$LOGNAME), as ++ well as doing a "chmod 06660 /var/mail/$LOGNAME". For more information + on such systems, do a "man mail". + + If all of this doesn't work, procmail can be called on a periodical +@@ -210,14 +210,14 @@ + procmail with both the fcntl() and lockf() locking method + disabled (see config.h). + +-17. I sometimes get these `Lock failure on "/usr/mail/$LOGNAME.lock"' errors ++17. I sometimes get these `Lock failure on "/var/mail/$LOGNAME.lock"' errors + from procmail. What do I do about it? + + The problem here is that as long as procmail has not read a + $HOME/.procmailrc file, it can hang on to the sgid mail permission +- (which it needs in order to create a lockfile in /usr/mail). ++ (which it needs in order to create a lockfile in /var/mail). + I.e. if procmail delivers mail to a user without a $HOME/.procmailrc +- file, procmail *can* (and does) use the /usr/mail/$LOGNAME.lock file. ++ file, procmail *can* (and does) use the /var/mail/$LOGNAME.lock file. + + If, however, it finds a $HOME/.procmailrc file, procmail has to let go + of the sgid mail permission because otherwise any ordinary user could +@@ -226,7 +226,7 @@ + There are several solutions to this problem: + - Some systems support the sticky bit on directories (when set only + allows the owner of a file in that directory to rename or remove +- it). This enables you to make /usr/spool/mail drwxrwxrwt. It is ++ it). This enables you to make /var/mail drwxrwxrwt. It is + thus effectively world writable, but all the mailboxes in it are + protected because only the mailbox owner can remove or rename it. + - If your system did not exhibit the !@#$%^&* POSIX semantics for +@@ -245,9 +245,9 @@ + :0 + $DEFAULT + +- - You could, instead of using /usr/mail/$LOGNAME, use a file below ++ - You could, instead of using /var/mail/$LOGNAME, use a file below + your home directory as your default mailbox. +- - Or, you could still use /usr/mail/$LOGNAME as the mailbox, but ++ - Or, you could still use /var/mail/$LOGNAME as the mailbox, but + simply instruct procmail to use a different lockfile. This can + be achieved by putting following recipe at the bottom of + your .procmailrc file: +--- procmail-3.22.orig/FEATURES ++++ procmail-3.22/FEATURES +@@ -30,7 +30,7 @@ + per message, the similar MH directory folders (numbered files), + and Maildir directory folders (a multi-directory format that requires + no locking) +- + Native support for /var/spool/mail/b/a/bar type mailspools ++ + Native support for /var/mail/b/a/bar type mailspools + + Variable assignment and substitution is an extremely complete subset + of the standard /bin/sh syntax + + Provides a mail log file, which logs all mail arrival, shows +--- procmail-3.22.orig/Makefile ++++ procmail-3.22/Makefile +@@ -65,7 +65,7 @@ + # Only edit below this line if you *think* you know what you are doing # + ######################################################################## + +-#LOCKINGTEST=100 # Uncomment (and change) if you think you know ++LOCKINGTEST=100 # Uncomment (and change) if you think you know + # it better than the autoconf lockingtests. + # This will cause the lockingtests to be hotwired. + # 100 to enable fcntl() +@@ -79,7 +79,7 @@ + # -lresolv # not really needed, is it? + + # Informal list of directories where we look for the libraries in SEARCHLIBS +-LIBPATHS=/lib /usr/lib /usr/local/lib ++LIBPATHS=/lib /usr/lib + + GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \ + -Wpointer-arith -Wconversion -Waggregate-return \ +--- procmail-3.22.orig/config.h ++++ procmail-3.22/config.h +@@ -33,8 +33,8 @@ + * override those settings you should uncomment and possibly change the + * DEFSPATH and DEFPATH defines below + */ +-/*#define DEFSPATH "PATH=/bin:/usr/bin" /* */ +-/*#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin" /* */ ++#define DEFSPATH "PATH=/usr/local/bin:/usr/bin:/bin" /* */ ++#define DEFPATH "PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin" /* */ + + /* every environment variable appearing in PRESTENV will be set or wiped + * out of the environment (variables without an '=' sign will be thrown +@@ -46,7 +46,7 @@ + */ + #define PRESTENV {"IFS","ENV","PWD",0} + +-/*#define GROUP_PER_USER /* uncomment this if each ++#define GROUP_PER_USER /* uncomment this if each + user has his or her own + group and procmail can therefore trust a $HOME/.procmailrc that + is group writable or contained in a group writable home directory +@@ -98,7 +98,7 @@ + mail present. procmail automatically suppresses this when it isn't + needed or under heavy load. */ + +-/*#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if ++#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if + the autoconfigured default + SENDMAIL is not suitable. This program should quack like a sendmail: + it should accept the -oi flag (to tell it to _not_ treat a line +--- procmail-3.22.orig/debian/changelog ++++ procmail-3.22/debian/changelog +@@ -0,0 +1,278 @@ ++procmail (3.22-5) stable; urgency=medium ++ ++ * Patched pipes.c to fix a memory allocation bug (Closes: #171514). ++ ++ -- Santiago Vila <sanvila@debian.org> Thu, 26 Dec 2002 18:09:38 +0100 ++ ++procmail (3.22-4) unstable; urgency=low ++ ++ * Fixed a typo in procmail(1). Patch by the author (Closes: #142983). ++ ++ -- Santiago Vila <sanvila@debian.org> Tue, 16 Apr 2002 19:16:20 +0200 ++ ++procmail (3.22-3) unstable; urgency=medium ++ ++ * Fixed off-by-one bug in procmail.c which made the raw flag not to be ++ cleared properly. Thanks to Gregory Stark (Closes: #134341). ++ ++ -- Santiago Vila <sanvila@debian.org> Sun, 17 Feb 2002 16:43:02 +0100 ++ ++procmail (3.22-2) unstable; urgency=medium ++ ++ * Modified mailfold.c to fix a segfault problem. Patch by the author. ++ * The system-wide mail directory is /var/mail as per policy. ++ ++ -- Santiago Vila <sanvila@debian.org> Thu, 29 Nov 2001 09:39:04 +0100 ++ ++procmail (3.22-1) unstable; urgency=low ++ ++ * New upstream release, which uses the `standard' format for Maildir ++ filenames and retries on name collision. It also contains some ++ bug fixes from the 3.23pre snapshot dated 2001-09-13. ++ * Removed `sendmail' from the Recommends field, since we already ++ have `exim' (the default Debian MTA) and `mail-transport-agent'. ++ * Removed suidmanager support. Conflicts: suidmanager (<< 0.50). ++ * Added support for DEB_BUILD_OPTIONS in the source package. ++ * README.Maildir: Do not use locking on the example recipe, ++ since it's wrong to do so in this case. ++ ++ -- Santiago Vila <sanvila@debian.org> Wed, 21 Nov 2001 09:40:20 +0100 ++ ++procmail (3.15.2-1) stable; urgency=high ++ ++ * New upstream release, with improved security and robustness involving ++ signal handlers. Author recommends upgrading to this version on ++ any system where it is installed setuid or setgid. ++ * This release fixes also Bug #108417: procmail -p -m resets PATH. ++ ++ -- Santiago Vila <sanvila@debian.org> Thu, 30 Aug 2001 20:05:06 +0200 ++ ++procmail (3.15.1-4) unstable; urgency=low ++ ++ * Don't add an extra newline when delivering to a Maildir folder. ++ Please note that the MTA may still add a newline on their own. ++ Exim users should check the `suffix' variable, for example. ++ Patch by the author. Closes: #78623. ++ ++ -- Santiago Vila <sanvila@debian.org> Sat, 14 Apr 2001 17:18:29 +0200 ++ ++procmail (3.15.1-3) unstable; urgency=low ++ ++ * Clarified formail -X behaviour, patch by the author (Closes: #77388). ++ * Updated QuickStart. ++ ++ -- Santiago Vila <sanvila@debian.org> Sun, 25 Mar 2001 10:45:56 +0200 ++ ++procmail (3.15.1-2) unstable; urgency=low ++ ++ * Fixed lockfile -l endless loop (Closes: #82006). Patch by the author. ++ ++ -- Santiago Vila <sanvila@debian.org> Sun, 28 Jan 2001 19:44:49 +0100 ++ ++procmail (3.15.1-1) unstable; urgency=low ++ ++ * New upstream release. A race to create the mailspool would bounce one of ++ the messages due to an internal error. ++ ++ -- Santiago Vila <sanvila@debian.org> Mon, 8 Jan 2001 20:09:34 +0100 ++ ++procmail (3.15-3) unstable; urgency=low ++ ++ * Fixed formatting error in procmailrc(5). Patch by the author. ++ (Closes: #80437). ++ ++ -- Santiago Vila <sanvila@debian.org> Sun, 31 Dec 2000 17:20:47 +0100 ++ ++procmail (3.15-2) unstable; urgency=low ++ ++ * formail -l is now documented. Patch by the author (Closes: #72275). ++ ++ -- Santiago Vila <sanvila@debian.org> Fri, 1 Dec 2000 19:54:22 +0100 ++ ++procmail (3.15-1) unstable; urgency=low ++ ++ * New upstream release. Maildir support is now built-in. ++ * Really change default PATH to "$HOME/bin:/usr/local/bin:/usr/bin:/bin". ++ * Modified the note in QuickStart about refiltering an old mail folder. ++ * Use SEARCHLIBS="" in debian/rules clean target to speed it up. ++ * Modified ft_dotlock in src/foldinfo.h to be in compliance with ++ locking policy, following a hint by the author. ++ * Removed (versioned) dependency on debianutils, since mailstat ++ does not use temporary files anymore. ++ * Made the .forward example in procmail(1) not to depend on the build ++ environment by modifying src/autoconf so that buggy_SENDMAIL is ++ never defined. ++ ++ -- Santiago Vila <sanvila@debian.org> Mon, 28 Aug 2000 12:51:05 +0200 ++ ++procmail (3.13.1-4) stable; urgency=high ++ ++ * Fixed weird formail -rk behavior (patch from the author, backported ++ from procmail-3.15). Thanks to Ben Collins for the report. ++ * s/smail/exim/ in `Recommends:' field. ++ ++ -- Santiago Vila <sanvila@debian.org> Tue, 22 Aug 2000 13:04:50 +0200 ++ ++procmail (3.13.1-3) unstable; urgency=medium ++ ++ * Standards-Version: 3.1.1 ++ * Updated location of licenses in copyright file. ++ * LOCKINGTEST=100 again, to use fcntl() and dot-locking, as required by ++ latest policy. ++ ++ -- Santiago Vila <sanvila@ctv.es> Wed, 1 Dec 1999 12:37:35 +0100 ++ ++procmail (3.13.1-2) unstable; urgency=low ++ ++ * Modified procmail(1) and QuickStart to reflect the fact that exim does ++ not accept the exec keyword in .forward files (Bugs #33460 and #37771). ++ * Modified formail to recognize exim's Envelope-To: header (Bug#40718). ++ Patch by Philip Guenther. ++ * Standards-Version: 3.0.0. ++ ++ -- Santiago Vila <sanvila@ctv.es> Mon, 19 Jul 1999 20:09:25 +0200 ++ ++procmail (3.13.1-1) stable unstable; urgency=high ++ ++ * New upstream release, 3.13 missed a couple possible overflows. ++ * Applied `procmail-locking.patch' from Bruce Guenter, since ++ no directory delivery mechanism requires locking (Bug #35210). ++ ++ -- Santiago Vila <sanvila@ctv.es> Thu, 8 Apr 1999 13:56:33 +0200 ++ ++procmail (3.13-1) stable unstable; urgency=high ++ ++ * New upstream release. procmail 3.12 breaks smartlist (Bug #35115). ++ ++ -- Santiago Vila <sanvila@ctv.es> Fri, 2 Apr 1999 14:24:24 +0200 ++ ++procmail (3.12-1) frozen unstable; urgency=high ++ ++ * New upstream release. Fixes some security bugs. ++ * #define GROUP_PER_USER in config.h to allow writeable rcfiles when ++ the group is the user's default group. ++ * Added KNOWN_BUGS to the doc directory. ++ * suid procmail to avoid non-suidness window when upgrading. ++ ++ -- Santiago Vila <sanvila@ctv.es> Thu, 4 Mar 1999 10:28:28 +0100 ++ ++procmail (3.10.7-7) frozen unstable; urgency=medium ++ ++ * New Maildir patches from Bruce Guenter. ++ Should fix Bug #30320: procmail: maildir does not use From_ lines. ++ ++ -- Santiago Vila <sanvila@ctv.es> Thu, 31 Dec 1998 13:27:20 +0100 ++ ++procmail (3.10.7-6) frozen unstable; urgency=medium ++ ++ * Patched mailfold.c to avoid the unnecessary one second wait when ++ delivering to MH folders (patch by the author). ++ * src/locking.c: Applied a bugfix patch from the author. ++ ++ -- Santiago Vila <sanvila@ctv.es> Wed, 13 May 1998 21:50:19 +0200 ++ ++procmail (3.10.7-5) frozen unstable; urgency=medium ++ ++ * Added a patch for Maildir support. The "new" procmail should be ++ completely backwards compatible with the "previous" one, in the ++ sense that its behaviour should be just the same for already ++ existing .procmailrc files which do not use the new syntax for ++ Maildir folders. ++ * Added a small README.Maildir explaining how to use this feature. ++ ++ -- Santiago Vila <sanvila@ctv.es> Mon, 4 May 1998 19:39:55 +0200 ++ ++procmail (3.10.7-4) frozen unstable; urgency=low ++ ++ * Added a small note in QuickStart about refiltering an old mail folder. ++ * mailstat(1): The log file is truncated to zero length (Bug #21022). ++ * PATH=/usr/local/bin:/usr/bin:/bin for the example in procmail(1). ++ * Standards-Version: 2.4.1. ++ ++ -- Santiago Vila <sanvila@ctv.es> Fri, 17 Apr 1998 18:00:14 +0200 ++ ++procmail (3.10.7-3) frozen unstable; urgency=medium ++ ++ * Patched src/recommend.c so that the mail spool directory is not ++ touched. This will allow the package to be built using fakeroot. ++ * Patched mailstat so that it uses tempfile. ++ ++ -- Santiago Vila <sanvila@ctv.es> Tue, 24 Mar 1998 21:43:08 +0100 ++ ++procmail (3.10.7-2) unstable; urgency=low ++ ++ * Default PATH is now "$HOME/bin:/usr/local/bin:/usr/bin:/bin". ++ * Added "fetchmail" to the Recommends: line as one more option. ++ * Added /usr/doc/procmail/QuickStart (experimental). ++ * Compressed changelog.Debian. ++ * Removed debstd dependency. ++ * Pristine source. ++ ++ -- Santiago Vila <sanvila@ctv.es> Sat, 31 Jan 1998 20:30:06 +0100 ++ ++procmail (3.10.7-1) unstable; urgency=low ++ ++ * Upgraded to 3.11pre7. Sources are now GPLed, hurrah! ++ * Added explicit SEARCHLIBS, to avoid unneeded dependency on libdl. ++ * First libc6 release. ++ ++ -- Santiago Vila <sanvila@ctv.es> Wed, 18 Jun 1997 20:43:28 +0200 ++ ++procmail (3.10.4-2) frozen unstable; urgency=low ++ ++ * Rebuilt using latest debmake to avoid a problem with suidmanager. ++ ++ -- Santiago Vila <sanvila@ctv.es> Sat, 17 May 1997 20:52:59 +0200 ++ ++procmail (3.10.4-1) frozen unstable; urgency=low ++ ++ * Upgraded to 3.11pre4. Side effect: It can be built using libc6. ++ * Removed NFS_ATIME_HACK patch, since it is no longer needed. ++ ++ -- Santiago Vila <sanvila@ctv.es> Sat, 12 Apr 1997 19:06:46 +0200 ++ ++procmail (3.10-8) unstable; urgency=low ++ ++ * Rewritten copyright file. ++ * initmake unmodified (source). ++ * Patched to recognize NFS_ATIME_HACK variable in .procmailrc or ++ /etc/procmailrc. Default value is "yes" (i.e. wait a second). ++ * Added a small note about this in /usr/doc/procmail/README.Debian. ++ ++ -- Santiago Vila <sanvila@ctv.es> Sun, 23 Mar 1997 12:04:34 +0100 ++ ++procmail (3.10-7) unstable; urgency=low ++ ++ * Put CFLAGS settings &c in ./Makefile, not in debian/rules. ++ * Removed fix-substvars script, since it's no longer needed with ++ new libc5-5.4.20. ++ * Man page for mailstat changed slightly. ++ * Some minor debian/rules changes. ++ * Added MD5 sums. ++ ++ -- Santiago Vila <sanvila@ctv.es> Fri, 21 Feb 1997 20:53:30 +0100 ++ ++procmail (3.10-6) unstable; urgency=low ++ ++ * Use debmake. ++ * suidmanager support. ++ * Removed `mailstat' from examples, it's already in /usr/bin. ++ * Removed also `dirname' (which was "for the deprived"). ++ * Added `fix-substvars' script to depend on libc5 >= 5.4.0. ++ ++ -- Santiago Vila <sanvila@ctv.es> Mon, 23 Dec 1996 16:34:02 +0100 ++ ++procmail (3.10-5) unstable; urgency=low ++ ++ * Updated to Standards-Version 2.1.2.2. ++ * Changed "Depends: MTA" to "Recommends: MTA". ++ * Added extended package description in control file. ++ * Added the symlink changelog.gz -> HISTORY.gz. ++ * Added an "experimental" man page for mailstat. ++ * New maintainer. ++ ++ -- Santiago Vila <sanvila@ctv.es> Sat, 21 Dec 1996 23:32:11 +0100 ++ ++Local variables: ++mode: debian-changelog ++End: +--- procmail-3.22.orig/debian/control ++++ procmail-3.22/debian/control +@@ -0,0 +1,18 @@ ++Source: procmail ++Section: mail ++Priority: standard ++Maintainer: Santiago Vila <sanvila@debian.org> ++Standards-Version: 3.5.6 ++ ++Package: procmail ++Architecture: any ++Depends: ${shlibs:Depends} ++Conflicts: suidmanager (<< 0.50) ++Recommends: exim | mail-transport-agent | fetchmail ++Description: Versatile e-mail processor. ++ Can be used to create mail-servers, mailing lists, sort your incoming ++ mail into separate folders/files (real convenient when subscribing to one ++ or more mailing lists or for prioritising your mail), preprocess your ++ mail, start any programs upon mail arrival (e.g. to generate different ++ chimes on your workstation for different types of mail) or selectively ++ forward certain incoming mail automatically to someone. +--- procmail-3.22.orig/debian/copyright ++++ procmail-3.22/debian/copyright +@@ -0,0 +1,41 @@ ++This is the Debian prepackaged version of the "procmail" mail-processing ++program written by Stephen van den Berg. ++ ++This package is currently maintained by Santiago Vila <sanvila@debian.org>. ++The source for this release was downloaded from: ++ ++ftp://ftp.procmail.org/pub/procmail/procmail-3.22.tar.gz ++ ++This package was first put together by Bruce Perens <bruce@hams.com>, ++who added Debian package maintenance system files, and edited config.h ++to configure for Debian. ++ ++Copyright: ++ ++Procmail & formail mail processing package. ++Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands. ++Copyright (c) 1999-2001, Philip Guenther, The United States of America ++ ++This package is open source software; you can redistribute it and/or ++modify it under the terms of either: ++- the GNU General Public License as published by the Free Software Foundation ++ and can be found in the included file called "COPYING"; either version 2, ++ or (at your option) any later version, or ++- the "Artistic License" which can be found in the included file called ++ "Artistic". ++ ++This package 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 either the GNU General Public License or the ++Artistic License for more details. ++ ++For those of you that choose to use the GNU General Public License, ++my interpretation of the GNU General Public License is that no procmailrc ++script falls under the terms of the GPL unless you explicitly put ++said script under the terms of the GPL yourself. ++ ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in `/usr/share/common-licenses/GPL', and the complete ++text of the "Artistic License" can be found in ++`/usr/share/common-licenses/Artistic'. +--- procmail-3.22.orig/debian/mailstat.1 ++++ procmail-3.22/debian/mailstat.1 +@@ -0,0 +1,40 @@ ++.TH MAILSTAT 1 ++.SH NAME ++mailstat \- shows mail-arrival statistics ++.SH SYNOPSIS ++.B mailstat ++[\-klmots] [logfile] ++.SH DESCRIPTION ++.B mailstat ++parses a procmail-generated $LOGFILE and displays ++a summary about the messages delivered to all folders ++(total size, average size, nr of messages). ++The $LOGFILE is truncated to zero length, unless the ++.B -k ++option is used. ++Exit code 0 if mail arrived, 1 if no mail arrived. ++.SH OPTIONS ++.TP ++.I \-k ++keep logfile intact ++.TP ++.I \-l ++long display format ++.TP ++.I \-m ++merge any errors into one line ++.TP ++.I \-o ++use the old logfile ++.TP ++.I \-t ++terse display format ++.TP ++.I \-s ++silent in case of no mail ++.SH NOTES ++Customise to your heart's content, this program is only provided as a ++guideline. ++.SH AUTHOR ++This manual page was written by Santiago Vila <sanvila@debian.org> ++for the Debian GNU/Linux distribution (but may be used by others). +--- procmail-3.22.orig/debian/mk-symlinks ++++ procmail-3.22/debian/mk-symlinks +@@ -0,0 +1,28 @@ ++#!/bin/sh ++package=$1 ++debiandir=debian/tmp/DEBIAN ++if [ "$2" != "" ]; then ++ debiandir=debian/$2/DEBIAN ++fi ++if [ ! -f $debiandir/postinst ]; then ++ echo "#!/bin/sh" > $debiandir/postinst ++ echo "set -e" >> $debiandir/postinst ++ chmod 755 $debiandir/postinst ++fi ++if [ ! -f $debiandir/prerm ]; then ++ echo "#!/bin/sh" > $debiandir/prerm ++ echo "set -e" >> $debiandir/prerm ++ chmod 755 $debiandir/prerm ++fi ++cat << EOF >> $debiandir/postinst ++if [ "\$1" = "configure" ]; then ++ if [ -d /usr/doc -a ! -e /usr/doc/$package -a -d /usr/share/doc/$package ]; then ++ ln -sf ../share/doc/$package /usr/doc/$package ++ fi ++fi ++EOF ++cat << EOF >> $debiandir/prerm ++if [ \( "\$1" = "upgrade" -o "\$1" = "remove" \) -a -L /usr/doc/$package ]; then ++ rm -f /usr/doc/$package ++fi ++EOF +--- procmail-3.22.orig/debian/QuickStart ++++ procmail-3.22/debian/QuickStart +@@ -0,0 +1,97 @@ ++procmail QuickStart ++=================== ++ ++* procmail is not an `interactive' program. It has to run automatically ++when the mail arrives. Therefore the first thing to do is to tell our MTA ++that we want procmail to "eat" all our mail messages. The way of doing ++this depends on the MTA we are using. For example, if we are using ++sendmail, it will suffice to have a .forward file like this in our home ++directory: ++ ++"|exec /usr/bin/procmail" ++ ++(don't forget the quotes, they are needed in this case). ++ ++If you are using exim, use this instead as your .forward file: ++ ++|/usr/bin/procmail ++ ++The step of creating a .forward file is not needed if the MTA already ++performs the delivery using procmail. For example, Debian sendmail will ++automatically use procmail for mail delivering if the sendmail.cf is ++generated from a sendmail.mc file containing this line: ++ ++FEATURE(local_procmail)dnl ++ ++ ++* If we have a stand-alone system with no permanent net connection (like ++PPP), and we are using fetchmail to get mail from a server, we don't ++really need a MTA. Just adding --mda "formail -s procmail" to the ++fetchmail command line (or using the `mda' keyword) will tell it to ++deliver through procmail. ++ ++ ++* Next, we have to write a ~/.procmailrc file in our home directory. This ++file is a set of filtering rules, based on regular expressions. The ++complete syntax is explained in procmailrc(5). Let's see a real example ++just to get started. Let's suppose you are subscribed to the following two ++mailing lists: ++ ++linux-kernel@vger.kernel.org ++debian-user@lists.debian.org ++ ++The first list is managed by Majordomo. Messages coming from a Majordomo ++list often include a header field "Sender: " which allow easy filtering. ++ ++The second list is managed my SmartList. Messages coming from a SmartList ++list may include several headers that can be used to filter it. One of ++them (in fact, the only that it is not X-whatever) is "Resent-Sender: ". ++ ++So the following .procmailrc will first filter the mailing lists, and ++any remaining message will go to the default folder: ++ ++*--------------------------------->8------------------------------------ ++PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin ++MAILDIR=$HOME/mail # you'd better make sure it exists ++DEFAULT=$MAILDIR/mbox # completely optional ++LOGFILE=$MAILDIR/procmail.log # recommended ++ ++:0: ++* ^Sender:.*linux-kernel-owner@vger.kernel.org ++linux-kernel ++ ++:0: ++* ^Resent-Sender.*debian-user-request@lists.debian.org ++debian-user ++*--------------------------------->8------------------------------------ ++ ++From this example additional rules for mailing lists may be created ++easily. ++ ++ ++* Once you have received lots of messages you will want to know where ++did they go. That's what the LOGFILE is for. There is a tool named ++mailstat which parses this file and shows a summary: ++ ++mailstat procmail.log ++ ++The mailstat command that this package provides does really come from the ++examples directory and it is installed by default. You may have your own ++modified copy in $HOME/bin, if you like. ++ ++ ++If you have to refilter an old mail folder according to your current ++~/.procmailrc file, you may do the following: ++ ++cat mbox | formail -s procmail ++ ++But of course if your mbox file is the target of a procmail recipe you should ++do this instead: ++ ++mv mbox whatever ++cat whatever | formail -s procmail ++ ++See formail(1) for details. ++ ++ ++Santiago Vila <sanvila@debian.org> +--- procmail-3.22.orig/debian/README.Maildir ++++ procmail-3.22/debian/README.Maildir +@@ -0,0 +1,12 @@ ++This version of procmail supports Maildir folders. ++ ++To make procmail to deliver into a Maildir folder, just append ++a slash (/) to the name of the maildir folder in your ~/.procmailrc file. ++For example, the following rule: ++ ++:0 ++* ^Resent-Sender.*debian-user-request@lists.debian.org ++debian-user/ ++ ++will deliver all mail from the debian-user mailing list to the Maildir ++folder "debian-user". +--- procmail-3.22.orig/debian/rules ++++ procmail-3.22/debian/rules +@@ -0,0 +1,77 @@ ++#!/usr/bin/make -f ++ ++package = procmail ++docdir = debian/tmp/usr/share/doc/$(package) ++ ++CC = gcc ++CFLAGS0 = -O2 ++LDFLAGS0 = ++SEARCHLIBS = -lm ++STRIP = true ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++ CFLAGS0 += -g ++endif ++ ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ STRIP = strip --remove-section=.comment --remove-section=.note ++endif ++ ++build: ++ $(checkdir) ++ $(MAKE) CC="$(CC)" CFLAGS0="$(CFLAGS0)" LDFLAGS0="$(LDFLAGS0)" \ ++ SEARCHLIBS="$(SEARCHLIBS)" ++ touch build ++ ++clean: ++ $(checkdir) ++ -rm -f build ++ -$(MAKE) realclean SEARCHLIBS="" ++ -rm -f `find . -name "*~"` ++ -rm -rf debian/tmp debian/files* core debian/substvars ++ ++binary-indep: checkroot build ++ $(checkdir) ++ ++binary-arch: checkroot build ++ $(checkdir) ++ -rm -rf debian/tmp ++ install -d debian/tmp/DEBIAN $(docdir)/examples ++ cd debian/tmp && install -d usr/bin ++ $(MAKE) BASENAME=`pwd`/debian/tmp/usr install.man install-suid ++ $(STRIP) debian/tmp/usr/bin/procmail ++ $(STRIP) debian/tmp/usr/bin/lockfile ++ $(STRIP) debian/tmp/usr/bin/formail ++ cp -p debian/copyright $(docdir) ++ cp -p debian/changelog $(docdir)/changelog.Debian ++ install -m 644 debian/mailstat.1 debian/tmp/usr/man/man1 ++ cp -p FEATURES HISTORY README FAQ KNOWN_BUGS \ ++ debian/QuickStart debian/README.Maildir $(docdir) ++ cp -p examples/* $(docdir)/examples ++ cd $(docdir)/examples && rm -f dirname mailstat procmail-rpm.spec ++ cd $(docdir) && gzip -9 HISTORY changelog.Debian ++ ln -s HISTORY.gz $(docdir)/changelog.gz ++ mv debian/tmp/usr/man debian/tmp/usr/share ++ gzip -r9 debian/tmp/usr/share/man ++ dpkg-shlibdeps debian/tmp/usr/bin/* ++ sh debian/mk-symlinks $(package) ++ dpkg-gencontrol -isp ++ cd debian/tmp && md5sum `find * -type f ! -regex "DEBIAN/.*"` >DEBIAN/md5sums ++ chown -R root.root debian/tmp ++ chmod -R go=rX debian/tmp ++ chgrp mail debian/tmp/usr/bin/procmail debian/tmp/usr/bin/lockfile ++ chmod 6755 debian/tmp/usr/bin/procmail ++ chmod 2755 debian/tmp/usr/bin/lockfile ++ dpkg --build debian/tmp .. ++ ++define checkdir ++ test -f src/$(package).c -a -f debian/rules ++endef ++ ++binary: binary-indep binary-arch ++ ++checkroot: ++ $(checkdir) ++ test root = "`whoami`" ++ ++.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/source/n/procmail/slack-desc b/source/n/procmail/slack-desc new file mode 100644 index 000000000..f017ef933 --- /dev/null +++ b/source/n/procmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +procmail: procmail (mail processing and local delivery program) +procmail: +procmail: Can be used to create mail-servers, mailing lists, sort your incoming +procmail: mail into separate folders/files (real convenient when subscribing to +procmail: one or more mailing lists or for prioritizing your mail), preprocess +procmail: your mail, start any programs upon mail arrival (e.g. to generate +procmail: different chimes on your workstation for different types of mail) or +procmail: selectively forward certain incoming mail automatically to someone. +procmail: Procmail is required by sendmail to deliver the local mail. +procmail: The author of procmail is Stephen R. van den Berg. +procmail: diff --git a/source/n/proftpd/doinst.sh b/source/n/proftpd/doinst.sh new file mode 100644 index 000000000..37fe02dd9 --- /dev/null +++ b/source/n/proftpd/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ftpusers.new +config etc/proftpd.conf.new + +# Remove any old proftpd files: +rm -f var/run/proftpd/proftpd* + diff --git a/source/n/proftpd/etc/ftpusers b/source/n/proftpd/etc/ftpusers new file mode 100644 index 000000000..d08f2a1fd --- /dev/null +++ b/source/n/proftpd/etc/ftpusers @@ -0,0 +1,22 @@ +# +# ftpusers This file describes the names of the users that may +# _*NOT*_ log into the system via the FTP server. +# This usually includes "root", "uucp", "news" and the +# like, because those users have too much power to be +# allowed to do "just" FTP... +# +# +# Version: @(#)/etc/ftpusers 3.00 02/25/2001 volkerdi +# +# Original Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# +# The entire line gets matched, so no comments or extra characters on +# lines containing a username. +# +# To enable anonymous FTP, remove the "ftp" user: +ftp +root +uucp +news + +# End of ftpusers. diff --git a/source/n/proftpd/etc/proftpd.conf b/source/n/proftpd/etc/proftpd.conf new file mode 100644 index 000000000..ffb0df3fe --- /dev/null +++ b/source/n/proftpd/etc/proftpd.conf @@ -0,0 +1,74 @@ +# This is a basic ProFTPD configuration file. +# It establishes a single server and a single anonymous login. +# It assumes that you have a user/group "nobody" and "ftp" +# for normal/anonymous operation. + +ServerName "ProFTPD Default Installation" +#ServerType standalone +ServerType inetd +DefaultServer on + +# Port 21 is the standard FTP port. +Port 21 +# Umask 022 is a good standard umask to prevent new dirs and files +# from being group and world writable. +Umask 022 + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# in standalone mode, in inetd mode you should use an inetd server +# that allows you to limit maximum number of processes per service +# (such as xinetd) +MaxInstances 30 + +# Set the user and group that the server normally runs at. +User nobody +Group nogroup + +# This next option is required for NIS or NIS+ to work properly: +#PersistentPasswd off + +SystemLog /var/log/proftpd.log +TransferLog /var/log/xferlog + +# Normally, we want files to be overwriteable. +<Directory /*> + AllowOverwrite on +</Directory> + +# A basic anonymous FTP server configuration. +# To enable this, remove the user ftp from /etc/ftpusers. +<Anonymous ~ftp> + RequireValidShell off + User ftp + Group ftp + # We want clients to be able to login with "anonymous" as well as "ftp" + UserAlias anonymous ftp + + # Limit the maximum number of anonymous logins + MaxClients 50 + + # We want 'welcome.msg' displayed at login, and '.message' displayed + # in each newly chdired directory. + DisplayLogin welcome.msg + DisplayChdir .message + + # Limit WRITE everywhere in the anonymous chroot + <Limit WRITE> + DenyAll + </Limit> + + # An upload directory that allows storing files but not retrieving + # or creating directories. +# <Directory incoming/*> +# <Limit READ> +# DenyAll +# </Limit> +# +# <Limit STOR> +# AllowAll +# </Limit> +# </Directory> + +</Anonymous> diff --git a/source/n/proftpd/proftpd.SlackBuild b/source/n/proftpd/proftpd.SlackBuild new file mode 100755 index 000000000..b004745ab --- /dev/null +++ b/source/n/proftpd/proftpd.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.3.2 +DIRVER=1.3.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-proftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf proftpd-$VERSION +tar xvf $CWD/proftpd-$VERSION.tar.bz2 || exit 1 +cd proftpd-$DIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --enable-autoshadow \ + --enable-ctrls \ + --enable-ipv6 \ + --localstatedir=/var/run \ + --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap:mod_ctrls_admin \ + --build=$ARCH-slackware-linux +# This caused funny messages about "Quotas off" with every FTP command, +# and mod_wrap gets a compile error: +# --with-modules= ... mod_quota ... + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# With no library to link against, these are useless: +rm -rf $PKG/usr/include +rm -f $PKG/etc/* +rmdir $PKG/usr/libexec 2> /dev/null + +cat $CWD/etc/proftpd.conf > $PKG/etc/proftpd.conf.new +cat $CWD/etc/ftpusers > $PKG/etc/ftpusers.new +mkdir -p $PKG/home/ftp + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/proftpd-$VERSION +cp -a COPYING CREDITS INSTALL NEWS README* \ + contrib/README.mod_wrap contrib/README.ratio \ + $PKG/usr/doc/proftpd-$VERSION +head -c 93 ChangeLog > $PKG/usr/doc/proftpd-$VERSION/ChangeLog +touch -r ChangeLog $PKG/usr/doc/proftpd-$VERSION/ChangeLog +cp -a contrib/README $PKG/usr/doc/proftpd-$VERSION/README.contrib +cp -a doc sample-configurations $PKG/usr/doc/proftpd-$VERSION +# Bloat removal: +( cd $PKG/usr/doc + find . -name "*.sgml" -exec rm {} \; + find . -name "*.pdf" -exec rm {} \; +) +rmdir $PKG/usr/share/locale +rmdir $PKG/usr/share + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/proftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/proftpd/slack-desc b/source/n/proftpd/slack-desc new file mode 100644 index 000000000..5ed80ca92 --- /dev/null +++ b/source/n/proftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +proftpd: proftpd (FTP server daemon) +proftpd: +proftpd: ProFTPD is the Professional File Transfer Protocol (FTP) server +proftpd: daemon. ProFTPD grew out of the desire to have a secure and +proftpd: configurable FTP server, and out of a significant admiration of the +proftpd: Apache web server. +proftpd: +proftpd: +proftpd: +proftpd: +proftpd: diff --git a/source/n/pssh/pssh.SlackBuild b/source/n/pssh/pssh.SlackBuild new file mode 100755 index 000000000..8bb3dcbe9 --- /dev/null +++ b/source/n/pssh/pssh.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# required: package "python" version 2.2 or higher installed + +VERSION=1.3.1 +ARCH=${ARCH:-x86_64} # Note that the package will be created as 'noarch' ! +BUILD=1 + +PREFIX=/usr + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pssh +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf pssh-$VERSION +tar xvf $CWD/pssh-$VERSION.tar.gz || exit 1 +cd pssh-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +for binary in bin/* ; do + # Fix an error from the author + sed -r "s|basedir\)|basedir + \"/lib${LIBDIRSUFFIX}\")|" \ + < $binary > $binary.tmp + cp $binary.tmp $binary + rm -f $binary.tmp +done + +mkdir -p $PKG/$PREFIX/bin +cp -a bin/* $PKG/$PREFIX/bin/. + +for library in psshlib/* ; do + # This will force removepkg to remove all runtime-compiled *.pyc files + touch ${library}c +done + +mkdir -p $PKG/$PREFIX/lib${LIBDIRSUFFIX} +cp -a psshlib $PKG/$PREFIX/lib${LIBDIRSUFFIX}/. + +mkdir -p $PKG/$PREFIX/doc/pssh-$VERSION +cp -a \ + AUTHORS BUGS COPYING ChangeLog INSTALL PKG-INFO TODO \ + doc/pssh*html $PKG/$PREFIX/doc/pssh-$VERSION/. + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/pssh-$VERSION-noarch-$BUILD.txz + diff --git a/source/n/pssh/slack-desc b/source/n/pssh/slack-desc new file mode 100644 index 000000000..42d25006f --- /dev/null +++ b/source/n/pssh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pssh: pssh (tools for collective remote system management) +pssh: +pssh: Pssh, a.k.a. "parallel ssh", are Python-written wrapper scripts for +pssh: OpenSSH and rsync tools. They are useful for simultaneous control +pssh: of large number of machines, using parallel ssh sessions. Included +pssh: are parallel versions of ssh, scp, and rsync, as well as a parallel +pssh: kill command. +pssh: +pssh: Pssh has been written by Brent N. Chun, and requires the python +pssh: package installed. +pssh: diff --git a/source/n/pth/pth.SlackBuild b/source/n/pth/pth.SlackBuild new file mode 100755 index 000000000..1c2be6051 --- /dev/null +++ b/source/n/pth/pth.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PRGNAM=pth +VERSION=2.0.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Do not enable pthread here - if you do, it overwrites glibc's +# /usr/include/pthread.h, which will later cause a conflict +# when building gpgme +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --enable-shared=yes \ + --enable-static=no \ + --enable-pthread=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +# This one doesn't parallelize well. +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +if [ -d $PKG/usr/info ]; then + rm -f $PKG/usr/info/dir + gzip -9 $PKG/usr/info/*.info +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ANNOUNCE AUTHORS COPYING HACKING HISTORY INSTALL NEWS PORTING \ + README SUPPORT TESTS THANKS USERS \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/pth/slack-desc b/source/n/pth/slack-desc new file mode 100644 index 000000000..ae4bd9071 --- /dev/null +++ b/source/n/pth/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pth: pth (GNU Portable Threads) +pth: +pth: Pth is a very portable POSIX/ANSI-C based library for Unix platforms +pth: which provides non-preemptive priority-based scheduling for multiple +pth: threads of execution (aka `multithreading') inside event-driven +pth: applications. All threads run in the same address space of the +pth: server application, but each thread has its own individual +pth: program-counter, run-time stack, signal mask and errno variable. +pth: +pth: +pth: diff --git a/source/n/rdist/rdist-6.1.5-bison.diff b/source/n/rdist/rdist-6.1.5-bison.diff new file mode 100644 index 000000000..a09130abd --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-bison.diff @@ -0,0 +1,142 @@ +--- rdist-6.1.5/src/gram.y.bison 1998-11-10 05:10:42.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-06-04 16:02:19.000000000 +0200 +@@ -90,10 +90,10 @@ + struct namelist *namel; + } + +-%type <optval> OPTION, options +-%type <string> NAME, STRING +-%type <subcmd> INSTALL, NOTIFY, EXCEPT, PATTERN, SPECIAL, CMDSPECIAL, cmdlist, cmd +-%type <namel> namelist, names, opt_namelist nlist ++%type <optval> OPTION options ++%type <string> NAME STRING ++%type <subcmd> INSTALL NOTIFY EXCEPT PATTERN SPECIAL CMDSPECIAL cmdlist cmd ++%type <namel> namelist names opt_namelist nlist + + %% + +@@ -101,19 +101,19 @@ + | file command + ; + +-command: NAME '=' namelist = { ++command: NAME '=' namelist { + (void) lookup($1, INSERT, $3); + } +- | namelist ARROW namelist cmdlist = { ++ | namelist ARROW namelist cmdlist { + insert((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist ARROW namelist cmdlist = { ++ | NAME COLON namelist ARROW namelist cmdlist { + insert($1, $3, $5, $6); + } +- | namelist DCOLON NAME cmdlist = { ++ | namelist DCOLON NAME cmdlist { + append((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist DCOLON NAME cmdlist = { ++ | NAME COLON namelist DCOLON NAME cmdlist { + append($1, $3, $5, $6); + } + | error +@@ -133,10 +133,10 @@ + } + ; + +-nlist: NAME = { ++nlist: NAME { + $$ = makenl($1); + } +- | '(' names ')' = { ++ | '(' names ')' { + $$ = $2; + } + ; +@@ -144,7 +144,7 @@ + names: /* VOID */ { + $$ = last_n = NULL; + } +- | names NAME = { ++ | names NAME { + if (last_n == NULL) + $$ = last_n = makenl($2); + else { +@@ -158,7 +158,7 @@ + cmdlist: /* VOID */ { + $$ = last_sc = NULL; + } +- | cmdlist cmd = { ++ | cmdlist cmd { + if (last_sc == NULL) + $$ = last_sc = $2; + else { +@@ -169,7 +169,7 @@ + } + ; + +-cmd: INSTALL options opt_namelist ';' = { ++cmd: INSTALL options opt_namelist ';' { + register struct namelist *nl; + + $1->sc_options = $2 | options; +@@ -185,17 +185,17 @@ + } + $$ = $1; + } +- | NOTIFY namelist ';' = { ++ | NOTIFY namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | EXCEPT namelist ';' = { ++ | EXCEPT namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $$ = $1; + } +- | PATTERN namelist ';' = { ++ | PATTERN namelist ';' { + struct namelist *nl; + char *cp, *re_comp(); + +@@ -205,13 +205,13 @@ + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | SPECIAL opt_namelist STRING ';' = { ++ | SPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; + $$ = $1; + } +- | CMDSPECIAL opt_namelist STRING ';' = { ++ | CMDSPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; +@@ -219,18 +219,18 @@ + } + ; + +-options: /* VOID */ = { ++options: /* VOID */ { + $$ = 0; + } +- | options OPTION = { ++ | options OPTION { + $$ |= $2; + } + ; + +-opt_namelist: /* VOID */ = { ++opt_namelist: /* VOID */ { + $$ = NULL; + } +- | namelist = { ++ | namelist { + $$ = $1; + } + ; diff --git a/source/n/rdist/rdist-6.1.5-cleanup.diff b/source/n/rdist/rdist-6.1.5-cleanup.diff new file mode 100644 index 000000000..194291348 --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-cleanup.diff @@ -0,0 +1,2082 @@ +--- rdist-6.1.5/src/gram.y.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-12-17 11:38:16.000000000 +0100 +@@ -40,7 +40,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -170,7 +170,7 @@ + ; + + cmd: INSTALL options opt_namelist ';' { +- register struct namelist *nl; ++ struct namelist *nl; + + $1->sc_options = $2 | options; + if ($3 != NULL) { +@@ -240,11 +240,11 @@ + int yylineno = 1; + extern FILE *fin; + +-yylex() ++int yylex() + { + static char yytext[INMAX]; +- register int c; +- register char *cp1, *cp2; ++ int c; ++ char *cp1, *cp2; + static char quotechars[] = "[]{}*?$"; + + again: +@@ -409,8 +409,8 @@ + * some of the characters we use. + */ + extern int any(c, str) +- register int c; +- register char *str; ++ int c; ++ char *str; + { + while (*str) + if (c == *str++) +@@ -421,13 +421,14 @@ + /* + * Insert or append ARROW command to list of hosts to be updated. + */ ++void + insert(label, files, hosts, subcmds) + char *label; + struct namelist *files, *hosts; + struct subcmd *subcmds; + { +- register struct cmd *c, *prev, *nc; +- register struct namelist *h, *lasth; ++ struct cmd *c, *prev, *nc; ++ struct namelist *h, *lasth; + + debugmsg(DM_CALL, "insert(%s, %x, %x, %x) start, files = %s", + label == NULL ? "(null)" : label, +@@ -475,13 +476,14 @@ + * Append DCOLON command to the end of the command list since these are always + * executed in the order they appear in the distfile. + */ ++void + append(label, files, stamp, subcmds) + char *label; + struct namelist *files; + char *stamp; + struct subcmd *subcmds; + { +- register struct cmd *c; ++ struct cmd *c; + + c = ALLOC(cmd); + c->c_type = DCOLON; +@@ -501,6 +503,7 @@ + /* + * Error printing routine in parser. + */ ++void + yyerror(s) + char *s; + { +@@ -530,7 +533,7 @@ + makenl(name) + char *name; + { +- register struct namelist *nl; ++ struct namelist *nl; + + debugmsg(DM_CALL, "makenl(%s)", name == NULL ? "null" : name); + +@@ -627,7 +630,7 @@ + makesubcmd(type) + int type; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + + sc = ALLOC(subcmd); + sc->sc_type = type; +--- rdist-6.1.5/src/rdist.c.cleanup 1998-11-10 05:13:50.000000000 +0100 ++++ rdist-6.1.5/src/rdist.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -80,7 +80,7 @@ + char *name; + struct namelist **hostlist; + { +- register struct namelist *ptr, *new; ++ struct namelist *ptr, *new; + + if (!name || !hostlist) + return; +@@ -97,14 +97,15 @@ + *hostlist = new; + } + ++int + main(argc, argv, envp) + int argc; + char *argv[]; + char **envp; + { + struct namelist *hostlist = NULL; +- register int x; +- register char *cp; ++ int x; ++ char *cp; + int cmdargs = 0; + int c; + +@@ -114,7 +115,7 @@ + */ + setprogname(argv); + +- if (cp = msgparseopts(localmsglist, TRUE)) { ++ if ((cp = msgparseopts(localmsglist, TRUE))) { + error("Bad builtin log option (%s): %s.", + localmsglist, cp); + usage(); +@@ -158,7 +159,7 @@ + while ((c = getopt(argc, argv, optchars)) != -1) + switch (c) { + case 'l': +- if (cp = msgparseopts(optarg, TRUE)) { ++ if ((cp = msgparseopts(optarg, TRUE))) { + error("Bad log option \"%s\": %s.", optarg,cp); + usage(); + } +@@ -206,7 +207,7 @@ + + case 'D': + debug = DM_ALL; +- if (cp = msgparseopts("stdout=all,debug", TRUE)) { ++ if ((cp = msgparseopts("stdout=all,debug", TRUE))) { + error("Enable debug messages failed: %s.", cp); + usage(); + } +@@ -245,7 +246,7 @@ + error("No path specified to \"-P\"."); + usage(); + } +- if (cp = searchpath(optarg)) ++ if ((cp = searchpath(optarg))) + path_remsh = strdup(cp); + else { + error("No component of path \"%s\" exists.", +@@ -297,7 +298,7 @@ + else { + if (fin == NULL) + fin = opendist(distfile); +- (void) yyparse(); ++ yyparse(); + /* + * Need to keep stdin open for child processing later + */ +@@ -348,6 +349,7 @@ + /* + * Print usage message and exit. + */ ++void + usage() + { + char *sopts = "cDFnv"; +@@ -379,12 +381,13 @@ + /* + * rcp like interface for distributing files. + */ ++void + docmdargs(nargs, args) + int nargs; + char *args[]; + { +- register struct namelist *nl, *prev; +- register char *cp; ++ struct namelist *nl, *prev; ++ char *cp; + struct namelist *files, *hosts; + struct subcmd *cmds; + char *dest; +@@ -433,10 +436,10 @@ + * Get a list of NAME blocks (mostly for debugging). + */ + extern char *getnlstr(nl) +- register struct namelist *nl; ++ struct namelist *nl; + { + static char buf[16384]; +- register int count = 0, len = 0; ++ int count = 0, len = 0; + + (void) sprintf(buf, "("); + +--- rdist-6.1.5/src/client.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/client.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -84,7 +84,7 @@ + int destdir; + { + extern struct namelist *filelist; +- register char *lname, *cp; ++ char *lname, *cp; + static char buff[BUFSIZ]; + int srclen, pathlen; + char *p; +@@ -146,7 +146,7 @@ + struct namelist *list; + char *file; + { +- register struct namelist *nl; ++ struct namelist *nl; + + for (nl = list; nl != NULL; nl = nl->n_next) + if (strcmp(file, nl->n_name) == 0) +@@ -163,7 +163,7 @@ + char *rname; + int destdir; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + char *rfile; + +@@ -200,7 +200,7 @@ + { + char *rfile; + struct namelist *new; +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + int isokay = 0; + +@@ -227,7 +227,7 @@ + */ + static void freecmdspecialfiles() + { +- register struct namelist *ptr, *save; ++ struct namelist *ptr, *save; + + for (ptr = updfilelist; ptr; ) { + if (ptr->n_name) (void) free(ptr->n_name); +@@ -249,10 +249,8 @@ + char **filev; + opt_t opts; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char **cpp; +- char *file; ++ struct subcmd *sc; ++ struct namelist *f; + int first = TRUE; + + for (sc = cmd->c_cmds; sc != NULL; sc = sc->sc_next) { +@@ -294,7 +292,7 @@ + int checkfilename(name) + char *name; + { +- register char *cp; ++ char *cp; + + if (strchr(name, '\n')) { + for (cp = name; *cp; cp++) +@@ -501,7 +499,7 @@ + static int rmchk(opts) + opt_t opts; + { +- register u_char *s; ++ u_char *s; + struct stat stb; + int didupdate = 0; + int n; +@@ -618,7 +616,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || + !strcmp(dp->d_name, "..")) + continue; +@@ -631,7 +629,7 @@ + if (ptarget[-1] != '/') + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (sendit(dp->d_name, opts, destdir) > 0) +@@ -770,13 +768,13 @@ + opt_t opts; + struct stat *statp; + { +- register off_t size; +- register time_t mtime; ++ off_t size; ++ time_t mtime; + unsigned short lmode; + unsigned short rmode; + char *owner = NULL, *group = NULL; + int done, n; +- u_char *cp; ++ char *cp; + + debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp); + +@@ -1035,7 +1033,6 @@ + int destdir; + { + static struct stat stb; +- extern struct subcmd *subcmds; + char *user, *group; + int u, len; + int didupdate = 0; +@@ -1157,7 +1154,7 @@ + (void) unlink(statfile); + #endif + +- if (file = getnotifyfile()) ++ if ((file = getnotifyfile())) + (void) unlink(file); + } + +--- rdist-6.1.5/src/child.c.cleanup 1998-11-10 05:18:57.000000000 +0100 ++++ rdist-6.1.5/src/child.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -90,7 +90,7 @@ + static void removechild(child) + CHILD *child; + { +- register CHILD *pc, *prevpc; ++ CHILD *pc, *prevpc; + + debugmsg(DM_CALL, "removechild(%s, %d, %d) start", + child->c_name, child->c_pid, child->c_readfd); +@@ -148,7 +148,7 @@ + static CHILD *copychild(child) + CHILD *child; + { +- register CHILD *newc; ++ CHILD *newc; + + newc = (CHILD *) xmalloc(sizeof(CHILD)); + +@@ -167,7 +167,7 @@ + static void addchild(child) + CHILD *child; + { +- register CHILD *pc; ++ CHILD *pc; + + debugmsg(DM_CALL, "addchild() start\n"); + +@@ -280,7 +280,7 @@ + */ + static void reap() + { +- register CHILD *pc; ++ CHILD *pc; + int status = 0; + pid_t pid; + +@@ -336,7 +336,7 @@ + */ + static void childscan() + { +- register CHILD *pc, *nextpc; ++ CHILD *pc, *nextpc; + + debugmsg(DM_CALL, "childscan() start"); + +@@ -366,8 +366,8 @@ + extern void waitup() + { + #if defined(HAVE_SELECT) +- register int count; +- register CHILD *pc; ++ int count; ++ CHILD *pc; + fd_set rchildfds; + + debugmsg(DM_CALL, "waitup() start\n"); +--- rdist-6.1.5/src/docmd.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/docmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -99,10 +99,10 @@ + */ + static void notify(rhost, to, lmod) + char *rhost; +- register struct namelist *to; ++ struct namelist *to; + time_t lmod; + { +- register int fd, len; ++ int fd, len; + FILE *pf, *popen(); + struct stat stb; + static char buf[BUFSIZ]; +@@ -221,7 +221,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pcmd; ++ struct cmd *pcmd; + + for (pcmd = cmdlist; pcmd; pcmd = pcmd->c_next) { + checkcmd(pcmd); +@@ -238,7 +238,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pc; ++ struct cmd *pc; + + if (!cmd) { + debugmsg(DM_MISC, "markfailed() NULL cmd parameter"); +@@ -309,7 +309,7 @@ + static int makeconn(rhost) + char *rhost; + { +- register char *ruser, *cp; ++ char *ruser, *cp; + static char *cur_host = NULL; + extern char *locuser; + extern long min_freefiles, min_freespace; +@@ -430,9 +430,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct namelist *f; +- register struct subcmd *sc; +- register char **cpp; ++ struct namelist *f; ++ struct subcmd *sc; ++ char **cpp; + int n, ddir, destdir, opts = options; + struct namelist *files; + struct subcmd *sbcmds; +@@ -567,7 +567,6 @@ + } + } + +-done: + /* + * Run any commands for the entire cmd + */ +@@ -584,7 +583,7 @@ + notify(rhost, sc->sc_args, (time_t) 0); + + if (!nflag) { +- register struct linkbuf *nextl, *l; ++ struct linkbuf *nextl, *l; + + for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) { + nextl = l->nextp; +@@ -601,11 +600,12 @@ + setjmp_ok = FALSE; + } + ++int + okname(name) +- register char *name; ++ char *name; + { +- register char *cp = name; +- register int c, isbad; ++ char *cp = name; ++ int c, isbad; + + for (isbad = FALSE; *cp && !isbad; ++cp) { + c = *cp; +@@ -627,9 +627,9 @@ + struct subcmd *sbcmds; + char **env; + { +- register DIR *d; +- register DIRENTRY *dp; +- register char *cp; ++ DIR *d; ++ DIRENTRY *dp; ++ char *cp; + char *optarget; + int len; + +@@ -641,7 +641,7 @@ + } + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; + if (len + 1 + (int)strlen(dp->d_name) >= BUFSIZ - 1) { +@@ -651,7 +651,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + cmptime(target, sbcmds, env); +@@ -740,9 +740,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char *cp, **cpp; ++ struct subcmd *sc; ++ struct namelist *f; ++ char *cp, **cpp; + struct stat stb; + struct namelist *files = cmd->c_files; + struct subcmd *sbcmds = cmd->c_cmds; +@@ -824,8 +824,8 @@ + extern int except(file) + char *file; + { +- register struct subcmd *sc; +- register struct namelist *nl; ++ struct subcmd *sc; ++ struct namelist *nl; + + debugmsg(DM_CALL, "except(%s)", file); + +@@ -918,8 +918,8 @@ + int argc; + char **argv; + { +- register struct namelist *f; +- register int i; ++ struct namelist *f; ++ int i; + + if (argc) { + for (i = 0; i < argc; i++) { +@@ -962,9 +962,9 @@ + int argc; + char **argv; + { +- register struct cmd *c; +- register char *cp; +- register int i; ++ struct cmd *c; ++ char *cp; ++ int i; + + (void) signal(SIGHUP, sighandler); + (void) signal(SIGINT, sighandler); +@@ -1032,7 +1032,7 @@ + + if (hostlist) { + /* Do specific hosts as specified on command line */ +- register struct namelist *nlptr; ++ struct namelist *nlptr; + + for (nlptr = hostlist; nlptr; nlptr = nlptr->n_next) + /* +--- rdist-6.1.5/src/distopt.c.cleanup 1998-11-10 05:09:11.000000000 +0100 ++++ rdist-6.1.5/src/distopt.c 2003-12-17 11:38:16.000000000 +0100 +@@ -6,7 +6,7 @@ + * appropriately. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -55,7 +55,7 @@ + extern DISTOPTINFO *getdistopt(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; distoptinfo[i].do_name; ++i) + if (strcasecmp(name, distoptinfo[i].do_name) == 0) +@@ -74,7 +74,7 @@ + opt_t *optptr; + int doerrs; + { +- register char *string, *optstr; ++ char *string, *optstr; + DISTOPTINFO *distopt; + int negate; + +@@ -93,7 +93,7 @@ + * and the option starts with "no", strip "no" + * from option and retry lookup. + */ +- if (distopt = getdistopt(optstr)) { ++ if ((distopt = getdistopt(optstr))) { + FLAG_ON(*optptr, distopt->do_value); + continue; + } +@@ -116,7 +116,7 @@ + */ + extern char *getdistoptlist() + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +@@ -138,7 +138,7 @@ + extern char *getondistoptlist(opts) + opt_t opts; + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +--- rdist-6.1.5/src/expand.c.cleanup 1998-11-10 05:09:31.000000000 +0100 ++++ rdist-6.1.5/src/expand.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -81,9 +81,9 @@ + sizeof(*sortbase), argcmp), sortbase = &eargv[eargc] + + static void Cat(s1, s2) /* quote in s1 and s2 */ +- register u_char *s1, *s2; ++ u_char *s1, *s2; + { +- register char *cp; ++ char *cp; + int len = strlen((char *)s1) + strlen((char *)s2) + 2; + + if ((eargc + 1) >= MAXEARGS) { +@@ -97,12 +97,12 @@ + do { + if (*s1 == QUOTECHAR) + s1++; +- } while (*cp++ = *s1++); ++ } while ((*cp++ = *s1++)); + cp--; + do { + if (*s2 == QUOTECHAR) + s2++; +- } while (*cp++ = *s2++); ++ } while ((*cp++ = *s2++)); + } + + static void addpath(c) +@@ -131,8 +131,8 @@ + struct namelist *list; + int wh; + { +- register struct namelist *nl, *prev; +- register int n; ++ struct namelist *nl, *prev; ++ int n; + char pathbuf[BUFSIZ]; + + if (debug) +@@ -182,7 +182,7 @@ + u_char *str; + int ch; + { +- register u_char *cp; ++ u_char *cp; + + for (cp = str; cp && *cp != CNULL; ++cp) + if (ch == *cp) +@@ -194,8 +194,8 @@ + void expstr(s) + u_char *s; + { +- register u_char *cp, *cp1; +- register struct namelist *tp; ++ u_char *cp, *cp1; ++ struct namelist *tp; + u_char *tail; + u_char ebuf[BUFSIZ]; + u_char varbuff[BUFSIZ]; +@@ -302,7 +302,7 @@ + cp1 = (u_char *)pw->pw_dir; + s = cp; + } +- for (cp = (u_char *)path; *cp++ = *cp1++; ) ++ for (cp = (u_char *)path; (*cp++ = *cp1++); ) + ; + tpathp = pathp = (char *)cp - 1; + } else { +@@ -326,7 +326,7 @@ + sort(); + } + +-static ++static int + argcmp(a1, a2) + char **a1, **a2; + { +@@ -341,8 +341,8 @@ + void expsh(s) /* quote in s */ + u_char *s; + { +- register u_char *cp, *oldcp; +- register char *spathp; ++ u_char *cp, *oldcp; ++ char *spathp; + struct stat stb; + + spathp = pathp; +@@ -380,7 +380,7 @@ + char *pattern; + { + struct stat stb; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + DIR *dirp; + + dirp = opendir(path); +@@ -417,11 +417,12 @@ + yyerror(path); + } + ++int + execbrc(p, s) /* quote in p */ + u_char *p, *s; + { + u_char restbuf[BUFSIZ + 2]; +- register u_char *pe, *pm, *pl; ++ u_char *pe, *pm, *pl; + int brclev = 0; + u_char *lm, savec; + char *spathp; +@@ -507,11 +508,12 @@ + return (0); + } + ++int + match(s, p) /* quote in p */ + char *s, *p; + { +- register int c; +- register char *sentp; ++ int c; ++ char *sentp; + char sexpany = expany; + + if (*s == '.' && *p != '.') +@@ -524,11 +526,12 @@ + return (c); + } + ++int + amatch(s, p) /* quote in p */ +- register char *s; +- register u_char *p; ++ char *s; ++ u_char *p; + { +- register int scc; ++ int scc; + int ok, lc; + char *spathp; + struct stat stb; +@@ -545,7 +548,7 @@ + case '[': + ok = 0; + lc = 077777; +- while (cc = *p++) { ++ while ((cc = *p++)) { + if (cc == ']') { + if (ok) + break; +@@ -599,7 +602,7 @@ + while (*s) + addpath(*s++); + addpath('/'); +- if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) ++ if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) { + if (*p == CNULL) { + if (which & E_TILDE) + Cat((u_char *)path, +@@ -609,6 +612,7 @@ + (u_char *)tpathp); + } else + expsh(p); ++ } + pathp = spathp; + *pathp = CNULL; + return (0); +--- rdist-6.1.5/src/lookup.c.cleanup 1998-11-10 05:12:56.000000000 +0100 ++++ rdist-6.1.5/src/lookup.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -68,11 +68,12 @@ + /* + * Define a variable from a command line argument. + */ ++void + define(name) + char *name; + { +- register char *cp, *s; +- register struct namelist *nl; ++ char *cp, *s; ++ struct namelist *nl; + struct namelist *value; + + debugmsg(DM_CALL, "define(%s)", name); +@@ -137,9 +138,9 @@ + int action; + struct namelist *value; + { +- register unsigned n; +- register char *cp; +- register struct syment *s; ++ unsigned n; ++ char *cp; ++ struct syment *s; + char ebuf[BUFSIZ]; + + debugmsg(DM_CALL, "lookup(%s, %d, %x)", name, action, value); +--- rdist-6.1.5/src/isexec.c.cleanup 1998-11-10 05:11:42.000000000 +0100 ++++ rdist-6.1.5/src/isexec.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +--- rdist-6.1.5/src/signal.c.cleanup 1998-11-10 05:16:13.000000000 +0100 ++++ rdist-6.1.5/src/signal.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +--- rdist-6.1.5/src/rshrcmd.c.cleanup 1998-11-10 05:15:07.000000000 +0100 ++++ rdist-6.1.5/src/rshrcmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -10,7 +10,7 @@ + * Chris Siebenmann <cks@utcc.utoronto.ca>. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -34,6 +34,7 @@ + * program in place of a direct rcmd() function call so as to + * avoid having to be root. + */ ++int + rshrcmd(ahost, port, luser, ruser, cmd, fd2p) + char **ahost; + u_short port; +@@ -108,6 +109,7 @@ + (void) wait(0); + return sp[0]; + } ++ return -1; + /*NOTREACHED*/ + } + +--- rdist-6.1.5/src/common.c.cleanup 1998-11-10 05:09:01.000000000 +0100 ++++ rdist-6.1.5/src/common.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -87,14 +87,14 @@ + /* + * Front end to write() that handles partial write() requests. + */ +-extern WRITE_RETURN_T xwrite(fd, buf, len) ++WRITE_RETURN_T xwrite(fd, buf, len) + int fd; + void *buf; + WRITE_AMT_T len; + { + WRITE_AMT_T nleft = len; + WRITE_RETURN_T nwritten; +- register char *ptr = buf; ++ char *ptr = buf; + + while (nleft > 0) { + if ((nwritten = write(fd, ptr, nleft)) <= 0) { +@@ -110,14 +110,14 @@ + /* + * Set program name + */ +-extern void setprogname(argv) ++void setprogname(argv) + char **argv; + { +- register char *cp; ++ char *cp; + + if (!progname) { + progname = strdup(argv[0]); +- if (cp = strrchr(progname, '/')) ++ if ((cp = strrchr(progname, '/'))) + progname = cp + 1; + } + } +@@ -125,14 +125,14 @@ + /* + * Do run-time initialization + */ +-extern int init(argc, argv, envp) ++int init(argc, argv, envp) + /*ARGSUSED*/ + int argc; + char **argv; + char **envp; + { +- register int i; +- register char *cp; ++ int i; ++ char *cp; + + if (!isserver) + (void) signal(SIGSEGV, sighandler); +@@ -182,7 +182,7 @@ + /* + * Finish things up before ending. + */ +-extern void finish() ++void finish() + { + extern jmp_buf finish_jmpbuf; + +@@ -216,7 +216,7 @@ + /* + * Handle lost connections + */ +-extern void lostconn() ++void lostconn() + { + /* Prevent looping */ + (void) signal(SIGPIPE, SIG_IGN); +@@ -232,7 +232,7 @@ + /* + * Do a core dump + */ +-extern void coredump() ++void coredump() + { + error("Segmentation violation - dumping core [PID = %d, %s]", + getpid(), +@@ -245,7 +245,7 @@ + /* + * General signal handler + */ +-extern void sighandler(sig) ++void sighandler(sig) + int sig; + { + debugmsg(DM_CALL, "sighandler() received signal %d\n", sig); +@@ -325,7 +325,7 @@ + /* + * Stdarg frontend to sendcmdmsg() + */ +-extern int sendcmd(char cmd, char *fmt, ...) ++int sendcmd(char cmd, char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -345,7 +345,7 @@ + /* + * Varargs frontend to sendcmdmsg() + */ +-extern int sendcmd(va_alist) ++int sendcmd(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -372,7 +372,7 @@ + * Stupid frontend to sendcmdmsg() + */ + /*VARARGS2*/ +-extern int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) ++int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) + char cmd; + char *fmt; + { +@@ -433,13 +433,13 @@ + * errors, call cleanup() or lostconn(). In other words, unless + * the third argument is nonzero, this routine never returns failure. + */ +-extern int remline(buffer, space, doclean) +- register u_char *buffer; ++int remline(buffer, space, doclean) ++ u_char *buffer; + int space; + int doclean; + { +- register int c, left = space; +- register u_char *p = buffer; ++ int c, left = space; ++ u_char *p = buffer; + + if (rem_r < 0) { + error("Cannot read remote input: Remote descriptor not open."); +@@ -494,9 +494,9 @@ + /* + * Non-line-oriented remote read. + */ +-readrem(p, space) ++int readrem(p, space) + char *p; +- register int space; ++ int space; + { + if (remleft <= 0) { + /* +@@ -527,7 +527,7 @@ + /* + * Get the user name for the uid. + */ +-extern char *getusername(uid, file, opts) ++char *getusername(uid, file, opts) + UID_T uid; + char *file; + opt_t opts; +@@ -566,7 +566,7 @@ + /* + * Get the group name for the gid. + */ +-extern char *getgroupname(gid, file, opts) ++char *getgroupname(gid, file, opts) + GID_T gid; + char *file; + opt_t opts; +@@ -604,7 +604,7 @@ + /* + * Read a response from the remote host. + */ +-extern int response() ++int response() + { + static u_char resp[BUFSIZ]; + u_char *s; +@@ -646,6 +646,7 @@ + message(MT_FERROR, "%s", s); + finish(); + } ++ return -1; + /*NOTREACHED*/ + } + +@@ -657,11 +658,11 @@ + * user's home directory path name. Return a pointer in buf to the + * part corresponding to `file'. + */ +-extern char *exptilde(ebuf, file) ++char *exptilde(ebuf, file) + char *ebuf; +- register char *file; ++ char *file; + { +- register char *s1, *s2, *s3; ++ char *s1, *s2, *s3; + extern char *homedir; + + if (*file != '~') { +@@ -694,12 +695,12 @@ + *s3 = '/'; + s2 = pw->pw_dir; + } +- for (s1 = ebuf; *s1++ = *s2++; ) ++ for (s1 = ebuf; (*s1++ = *s2++); ) + ; + s2 = --s1; + if (s3 != NULL) { + s2++; +- while (*s1++ = *s3++) ++ while ((*s1++ = *s3++)) + ; + } + return(s2); +@@ -710,7 +711,7 @@ + * Set our effective user id to the user running us. + * This should be the uid we do most of our work as. + */ +-extern int becomeuser() ++int becomeuser() + { + int r = 0; + +@@ -732,7 +733,7 @@ + /* + * Set our effective user id to "root" (uid = 0) + */ +-extern int becomeroot() ++int becomeroot() + { + int r = 0; + +@@ -753,7 +754,7 @@ + /* + * Set access and modify times of a given file + */ +-extern int setfiletime(file, atime, mtime) ++int setfiletime(file, atime, mtime) + char *file; + time_t atime; + time_t mtime; +@@ -790,7 +791,7 @@ + /* + * Get version info + */ +-extern char *getversion() ++char *getversion() + { + static char buff[BUFSIZ]; + +@@ -811,7 +812,7 @@ + { + int fd[2], pid, i; + int status; +- register char *cp, *s; ++ char *cp, *s; + char sbuf[BUFSIZ], buf[BUFSIZ]; + + if (pipe(fd) < 0) { +@@ -933,12 +934,12 @@ + /* + * Private version of basename() + */ +-extern char *xbasename(path) ++char *xbasename(path) + char *path; + { +- register char *cp; ++ char *cp; + +- if (cp = strrchr(path, '/')) ++ if ((cp = strrchr(path, '/'))) + return(cp+1); + else + return(path); +@@ -949,11 +950,11 @@ + * search until a component of that path is found and + * return the found file name. + */ +-extern char *searchpath(path) ++char *searchpath(path) + char *path; + { +- register char *cp; +- register char *file; ++ char *cp; ++ char *file; + struct stat statbuf; + + for (; ;) { +@@ -977,8 +978,7 @@ + /* + * Set line buffering. + */ +-extern void +-mysetlinebuf(fp) ++void mysetlinebuf(fp) + FILE *fp; + { + #if SETBUF_TYPE == SETBUF_SETLINEBUF +@@ -995,8 +995,7 @@ + /* + * Our interface to system call to get a socket pair. + */ +-int +-getsocketpair(domain, type, protocol, sv) ++int getsocketpair(domain, type, protocol, sv) + int domain; + int type; + int protocol; +--- rdist-6.1.5/src/message.c.cleanup 1998-11-10 05:13:30.000000000 +0100 ++++ rdist-6.1.5/src/message.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -97,7 +97,7 @@ + */ + extern void msgprusage() + { +- register int i, x; ++ int i, x; + + (void) fprintf(stderr, "\nWhere <msgopt> is of form\n"); + (void) fprintf(stderr, +@@ -120,7 +120,7 @@ + */ + extern void msgprconfig() + { +- register int i, x; ++ int i, x; + static char buf[MSGBUFSIZ]; + + debugmsg(DM_MISC, "Current message logging config:"); +@@ -145,7 +145,7 @@ + static MSGFACILITY *getmsgfac(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; ++i) + if (strcasecmp(name, msgfacility[i].mf_name) == 0) +@@ -160,7 +160,7 @@ + static MSGTYPE *getmsgtype(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgtypes[i].mt_name; ++i) + if (strcasecmp(name, msgtypes[i].mt_name) == 0) +@@ -178,9 +178,9 @@ + char *str; + { + static char ebuf[BUFSIZ]; +- register char *cp; +- register char *strptr, *word; +- register MSGTYPE *mtp; ++ char *cp; ++ char *strptr, *word; ++ MSGTYPE *mtp; + + /* + * MF_SYSLOG is the only supported message facility for the server +@@ -240,11 +240,11 @@ + msgfac->mf_msgtypes = 0; /* Start from scratch */ + while (strptr) { + word = strptr; +- if (cp = strchr(strptr, ',')) ++ if ((cp = strchr(strptr, ','))) + *cp++ = CNULL; + strptr = cp; + +- if (mtp = getmsgtype(word)) { ++ if ((mtp = getmsgtype(word))) { + msgfac->mf_msgtypes |= mtp->mt_type; + /* + * XXX This is really a kludge until we add real +@@ -272,8 +272,8 @@ + int doset; + { + static char ebuf[BUFSIZ], msgbuf[MSGBUFSIZ]; +- register char *cp, *optstr; +- register char *word; ++ char *cp, *optstr; ++ char *word; + MSGFACILITY *msgfac; + + if (msgstr == NULL) +@@ -308,7 +308,7 @@ + if (doset) { + char *mcp; + +- if (mcp = setmsgtypes(msgfac, cp)) ++ if ((mcp = setmsgtypes(msgfac, cp))) + return(mcp); + } + } +@@ -462,8 +462,9 @@ + return; + + if (!msgfac->mf_fptr) { +- register char *cp; ++ char *cp; + char *getenv(); ++ int fd; + + /* + * Create and open a new temporary file +@@ -475,7 +476,10 @@ + (void) sprintf(tempfile, "%s/%s", cp, _RDIST_TMP); + + msgfac->mf_filename = tempfile; +- (void) mktemp(msgfac->mf_filename); ++ fd = mkstemp(msgfac->mf_filename); ++ if (fd < 0) ++ fatalerr("Cannot open notify file for writing: %s: %s.", msgfac->mf_filename, SYSERR); ++ close(fd); + if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL) + fatalerr("Cannot open notify file for writing: %s: %s.", + msgfac->mf_filename, SYSERR); +@@ -515,15 +519,15 @@ + int flags; + char *msgbuf; + { +- register int i, x; +- register char *cp; ++ int i, x; ++ char *cp; + static char mbuf[2048]; + + if (msgbuf && *msgbuf) { + /* + * Ensure no stray newlines are present + */ +- if (cp = strchr(msgbuf, '\n')) ++ if ((cp = strchr(msgbuf, '\n'))) + *cp = CNULL; + + checkhostname(); +@@ -863,7 +867,7 @@ + */ + extern char *getnotifyfile() + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; i++) + if (msgfacility[i].mf_msgfac == MF_NOTIFY && +--- rdist-6.1.5/src/setargs.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/setargs.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -66,12 +66,12 @@ + /* + * Settup things for using setproctitle() + */ +-setargs_settup(argc, argv, envp) ++void setargs_settup(argc, argv, envp) + int argc; + char **argv; + char **envp; + { +- register int i; ++ int i; + extern char **environ; + + /* Remember the User Environment */ +@@ -92,10 +92,10 @@ + /* + * Set process title + */ +-extern void _setproctitle(msg) ++void _setproctitle(msg) + char *msg; + { +- register int i; ++ int i; + char *p; + + p = Argv[0]; +@@ -119,7 +119,7 @@ + /* + * Varargs front-end to _setproctitle() + */ +-extern void setproctitle(va_alist) ++void setproctitle(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -138,7 +138,7 @@ + /* + * Stdarg front-end to _setproctitle() + */ +-extern void setproctitle(char *fmt, ...) ++void setproctitle(char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -155,7 +155,7 @@ + * Non-Varargs front-end to _setproctitle() + */ + /*VARARGS1*/ +-extern void setproctitle(fmt, a1, a2, a3, a4, a5, a6) ++void setproctitle(fmt, a1, a2, a3, a4, a5, a6) + char *fmt; + { + static char buf[BUFSIZ]; +--- rdist-6.1.5/src/rdistd.c.cleanup 1998-11-10 05:14:06.000000000 +0100 ++++ rdist-6.1.5/src/rdistd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -53,21 +53,12 @@ + + #include "defs.h" + +-/* +- * Print usage message +- */ +-static void usage() +-{ +- fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); +- exit(1); +-} +- + char localmsglist[] = "syslog=ferror"; + + /* + * The Beginning + */ +-main(argc, argv, envp) ++int main(argc, argv, envp) + int argc; + char **argv; + char **envp; +@@ -95,7 +86,8 @@ + case '?': + default: + error("Bad command line option."); +- usage(); ++ fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); ++ exit(1); + } + + if (!isserver) { +@@ -108,7 +100,7 @@ + rem_w = fileno(stdout); + + /* Set logging */ +- if (cp = msgparseopts(localmsglist, TRUE)) ++ if ((cp = msgparseopts(localmsglist, TRUE))) + fatalerr("Bad message logging option (%s): %s", + localmsglist, cp); + +--- rdist-6.1.5/src/server.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/server.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -197,7 +197,7 @@ + static UID_T last_uid = (UID_T)-2; + static GID_T last_primegid; + extern char *locuser; +- register int i; ++ int i; + UID_T uid; + GID_T gid; + GID_T primegid = (GID_T)-2; +@@ -252,7 +252,7 @@ + /* + * Invalid cached values so we need to do a new lookup. + */ +- if (gr = mygetgroup(group)) { ++ if ((gr = mygetgroup(group))) { + last_gid = gid = gr->gr_gid; + strcpy(last_group, gr->gr_name); + } else { +@@ -325,7 +325,7 @@ + { + DIR *d; + static DIRENTRY *dp; +- register char *cp; ++ char *cp; + struct stat stb; + char *optarget; + int len, failures = 0; +@@ -362,7 +362,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -376,7 +376,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -414,10 +414,10 @@ + * for extraneous files and remove them. + */ + static void doclean(cp) +- register char *cp; ++ char *cp; + { + DIR *d; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + struct stat stb; + char *optarget, *ep; + int len; +@@ -436,7 +436,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -450,7 +450,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -481,7 +481,7 @@ + * Frontend to doclean(). + */ + static void clean(cp) +- register char *cp; ++ char *cp; + { + doclean(cp); + (void) sendcmd(CC_END, NULL); +@@ -509,7 +509,7 @@ + */ + static void docmdspecial() + { +- register char *cp; ++ char *cp; + char *cmd, *env = NULL; + int n; + int len; +@@ -667,7 +667,7 @@ + char *name; + opt_t opts; + { +- register char *cp; ++ char *cp; + struct stat stb; + int r = -1; + +@@ -760,7 +760,7 @@ + { + int f, wrerr, olderrno, lastwashole = 0, wassparse = 0; + off_t i; +- register char *cp; ++ char *cp; + char *savefile = NULL; + static struct stat statbuff; + +@@ -987,7 +987,7 @@ + char *owner, *group; + { + static char lowner[100], lgroup[100]; +- register char *cp; ++ char *cp; + struct stat stb; + int s; + +@@ -1044,7 +1044,7 @@ + + o = (owner[0] == ':') ? opts & DO_NUMCHKOWNER : + opts; +- if (cp = getusername(stb.st_uid, target, o)) ++ if ((cp = getusername(stb.st_uid, target, o))) + if (strcmp(owner, cp)) + (void) strcpy(lowner, cp); + } +@@ -1053,7 +1053,7 @@ + + o = (group[0] == ':') ? opts & DO_NUMCHKGROUP : + opts; +- if (cp = getgroupname(stb.st_gid, target, o)) ++ if ((cp = getgroupname(stb.st_gid, target, o))) + if (strcmp(group, cp)) + (void) strcpy(lgroup, cp); + } +@@ -1107,8 +1107,8 @@ + if (s < 0) { + if (errno == ENOENT) { + if (mkdir(target, mode) == 0 || +- chkparent(target, opts) == 0 && +- mkdir(target, mode) == 0) { ++ (chkparent(target, opts) == 0 && ++ mkdir(target, mode) == 0)) { + message(MT_NOTICE, "%s: mkdir", target); + (void) fchog(-1, target, owner, group, mode); + ack(); +@@ -1304,7 +1304,7 @@ + static void setconfig(cmd) + char *cmd; + { +- register char *cp = cmd; ++ char *cp = cmd; + char *estr; + + switch (*cp++) { +@@ -1338,7 +1338,7 @@ + break; + + case SC_LOGGING: /* Logging options */ +- if (estr = msgparseopts(cp, TRUE)) { ++ if ((estr = msgparseopts(cp, TRUE))) { + fatalerr("Bad message option string (%s): %s", + cp, estr); + return; +@@ -1455,7 +1455,7 @@ + sptarget[catname] = ptarget; + if (catname++) { + *ptarget++ = '/'; +- while (*ptarget++ = *file++) ++ while ((*ptarget++ = *file++)) + ; + ptarget--; + } +@@ -1463,6 +1463,7 @@ + /* + * Create name of temporary file + */ ++ int fd; + if (catname && cattarget(file) < 0) { + error("Cannot set file name."); + return; +@@ -1477,7 +1478,12 @@ + (void) sprintf(new, "%s/%s", target, tempname); + *file = '/'; + } +- (void) mktemp(new); ++ fd = mkstemp(new); ++ if (fd < 0) { ++ error("Cannot set file name."); ++ return; ++ } ++ close(fd); + } + + /* +@@ -1581,8 +1587,8 @@ + extern void server() + { + static char cmdbuf[BUFSIZ]; +- register char *cp; +- register int n; ++ char *cp; ++ int n; + extern jmp_buf finish_jmpbuf; + + if (setjmp(finish_jmpbuf)) { +--- rdist-6.1.5/src/filesys.c.cleanup 1998-11-10 05:10:18.000000000 +0100 ++++ rdist-6.1.5/src/filesys.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -72,7 +72,7 @@ + static char last_pathname[MAXPATHLEN]; + static char file[MAXPATHLEN + 3]; + static struct stat filestat; +- register char *p; ++ char *p; + + /* + * Mark the statbuf as invalid to start with. +@@ -125,7 +125,7 @@ + * Normally we want to change /dir1/dir2/file + * into "/dir1/dir2/." + */ +- if (p = (char *) strrchr(file, '/')) { ++ if ((p = (char *) strrchr(file, '/'))) { + *++p = '.'; + *++p = CNULL; + } else { +@@ -183,7 +183,7 @@ + struct stat *filest; + struct mntinfo *mntinfo; + { +- register struct mntinfo *mi; ++ struct mntinfo *mi; + + for (mi = mntinfo; mi; mi = mi->mi_nxt) { + if (mi->mi_mnt->me_flags & MEFLAG_IGNORE) +@@ -202,7 +202,7 @@ + mntent_t *mnt; + struct mntinfo *mntinfo; + { +- register struct mntinfo *m; ++ struct mntinfo *m; + + for (m = mntinfo; m; m = m->mi_nxt) + if (strcmp(m->mi_mnt->me_path, mnt->me_path) == 0) +@@ -247,7 +247,7 @@ + } + + mntinfo = mi; +- while (mnt = getmountent(mfp)) { ++ while ((mnt = getmountent(mfp))) { + debugmsg(DM_MISC, "mountent = '%s' (%s)", + mnt->me_path, mnt->me_type); + +@@ -308,7 +308,7 @@ + static struct stat filestat; + struct stat *pstat; + struct mntinfo *tmpmi; +- register mntent_t *mnt; ++ mntent_t *mnt; + + /* + * Use the supplied stat buffer if not NULL or our own. +@@ -330,16 +330,16 @@ + /* + * Find the mnt that pathname is on. + */ +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + + /* + * We failed to find correct mnt, so maybe it's a newly + * mounted filesystem. We rebuild mntinfo and try again. + */ +- if (tmpmi = makemntinfo(mntinfo)) { ++ if ((tmpmi = makemntinfo(mntinfo))) { + mntinfo = tmpmi; +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + } + +--- rdist-6.1.5/src/filesys-os.c.cleanup 1998-11-10 05:09:59.000000000 +0100 ++++ rdist-6.1.5/src/filesys-os.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -314,7 +314,7 @@ + + bzero((char *)&me, sizeof(mntent_t)); + +- if (mntent = getmntent(fptr)) { ++ if ((mntent = getmntent(fptr))) { + me.me_path = mntent->mnt_dir; + me.me_type = mntent->mnt_type; + if (mntent->mnt_opts && hasmntopt(mntent, MNTOPT_RO)) +--- rdist-6.1.5/src/strcasecmp.c.cleanup 1998-11-10 05:16:52.000000000 +0100 ++++ rdist-6.1.5/src/strcasecmp.c 2003-12-17 11:38:16.000000000 +0100 +@@ -51,9 +51,9 @@ + }; + + strcasecmp(s1, s2) +- register char *s1, *s2; ++ char *s1, *s2; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +@@ -62,10 +62,10 @@ + } + + strncasecmp(s1, s2, n) +- register char *s1, *s2; +- register int n; ++ char *s1, *s2; ++ int n; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (--n >= 0 && cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +--- rdist-6.1.5/src/strtol.c.cleanup 1994-03-17 00:25:50.000000000 +0100 ++++ rdist-6.1.5/src/strtol.c 2003-12-17 11:38:16.000000000 +0100 +@@ -54,13 +54,13 @@ + strtol(nptr, endptr, base) + char *nptr; + char **endptr; +- register int base; ++ int base; + { +- register char *s = nptr; +- register unsigned long acc; +- register int c; +- register unsigned long cutoff; +- register int neg = 0, any, cutlim; ++ char *s = nptr; ++ unsigned long acc; ++ int c; ++ unsigned long cutoff; ++ int neg = 0, any, cutlim; + + /* + * Skip white space and pick up leading +/- sign if any. +--- rdist-6.1.5/src/regex.c.cleanup 1998-11-10 05:14:28.000000000 +0100 ++++ rdist-6.1.5/src/regex.c 2003-12-17 11:39:14.000000000 +0100 +@@ -142,10 +142,8 @@ + */ + char * + re_comp(sp) +- register char *sp; + { +- register int c; +- register char *ep = expbuf; ++ char *ep = expbuf; + int cclcnt, numbra = 0; + char *lastep = 0; + char bracket[NBRA]; +@@ -266,10 +264,10 @@ + */ + int + re_exec(p1) +- register char *p1; ++ char *p1; + { +- register char *p2 = expbuf; +- register int c; ++ char *p2 = expbuf; ++ int c; + int rv; + + for (c = 0; c < NBRA; c++) { +@@ -306,9 +304,9 @@ + */ + static int + advance(lp, ep) +- register char *lp, *ep; ++ char *lp, *ep; + { +- register char *curlp; ++ char *curlp; + int ct, i; + int rv; + +@@ -413,10 +411,10 @@ + } + + backref(i, lp) +- register int i; +- register char *lp; ++ int i; ++ char *lp; + { +- register char *bp; ++ char *bp; + + bp = braslist[i]; + while (*bp++ == *lp++) +@@ -427,10 +425,10 @@ + + int + cclass(set, c, af) +- register char *set, c; ++ char *set, c; + int af; + { +- register int n; ++ int n; + + if (c == 0) + return(0); +--- rdist-6.1.5/include/defs.h.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/include/defs.h 2003-12-17 11:38:16.000000000 +0100 +@@ -30,11 +30,13 @@ + #include <grp.h> + #include <syslog.h> + #include <setjmp.h> ++#include <time.h> + #include <sys/types.h> + #include <sys/param.h> + #include <sys/file.h> +-#include <sys/time.h> + #include <sys/stat.h> ++#include <sys/wait.h> ++#include <sys/socket.h> + + #include "version.h" + #include "config-def.h" +@@ -48,6 +50,9 @@ + #endif /* yacc */ + + #include <signal.h> ++#define _REGEX_RE_COMP ++#include <regex.h> ++ + + /* + * This belongs in os-svr4.h but many SVR4 OS's +@@ -321,12 +326,11 @@ + /* + * Our own declarations. + */ +-char *exptilde(); + char *makestr(); + char *xcalloc(); + char *xmalloc(); + char *xrealloc(); +-extern char *xbasename(); ++extern char *exptilde(); + extern char *getdistoptlist(); + extern char *getgroupname(); + extern char *getnlstr(); +@@ -336,44 +340,75 @@ + extern char *getversion(); + extern char *msgparseopts(); + extern char *searchpath(); ++extern char *xbasename(); ++extern int amatch(); + extern int any(); ++extern int becomeroot(); ++extern int becomeuser(); ++extern int except(); ++extern int execbrc(); ++extern int getfilesysinfo(); ++extern int getsocketpair(); + extern int init(); + extern int install(); + extern int isexec(); ++extern int is_nfs_mounted(); ++extern int is_ro_mounted(); ++extern int is_symlinked(); ++extern int match(); ++extern int okname(); + extern int parsedistopts(); ++extern int readrem(); + extern int remline(); ++extern int response(); ++extern int rshrcmd(); + extern int setfiletime(); ++extern int setnonblocking(); + extern int spawn(); ++extern int yylex(); ++extern int yyparse(); + extern struct subcmd *makesubcmd(); ++extern void append(); + extern void checkhostname(); + extern void cleanup(); + extern void complain(); ++extern void coredump(); ++extern void define(); ++extern void docmdargs(); + extern void docmds(); + extern void finish(); +-extern void log(); ++extern void freelinkinfo(); ++extern void insert(); + extern void logmsg(); + extern void lostconn(); + extern void markassigned(); ++extern void msgprconfig(); + extern void msgprusage(); ++extern void mysetlinebuf(); + extern void note(); + extern void runcmdspecial(); + extern void runcommand(); + extern void server(); ++extern void setargs_settup(); + extern void setprogname(); + extern void sighandler(); ++extern void usage(); + extern void waitup(); ++extern void yyerror(); ++extern WRITE_RETURN_T xwrite(); + struct namelist *expand(); + struct namelist *lookup(); + struct namelist *makenl(); +-extern WRITE_RETURN_T xwrite(); + + #if defined(ARG_TYPE) && ARG_TYPE == ARG_STDARG ++extern int sendcmd(char cmd, char *fmt, ...); + extern void debugmsg(int, char *, ...); + extern void error(char *, ...); + extern void fatalerr(char *, ...); + extern void message(int, char *, ...); + extern void setproctitle(char *fmt, ...); + #else ++extern int sendcmd(va_alist); + extern void debugmsg(); + extern void error(); + extern void fatalerr(); diff --git a/source/n/rdist/rdist-6.1.5-varargs.diff b/source/n/rdist/rdist-6.1.5-varargs.diff new file mode 100644 index 000000000..cf2786d2c --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-varargs.diff @@ -0,0 +1,11 @@ +--- rdist-6.1.5/config/os-linux.h.varargs 2003-06-17 17:52:33.000000000 +0200 ++++ rdist-6.1.5/config/os-linux.h 2003-06-17 17:53:07.000000000 +0200 +@@ -68,7 +68,7 @@ + /* + * Type of arg functions we have. + */ +-#define ARG_TYPE ARG_VARARGS ++#define ARG_TYPE ARG_STDARG + + /* + * Do we have select()? diff --git a/source/n/rdist/rdist-6.1.5.diff b/source/n/rdist/rdist-6.1.5.diff new file mode 100644 index 000000000..0445ca9b0 --- /dev/null +++ b/source/n/rdist/rdist-6.1.5.diff @@ -0,0 +1,107 @@ +diff -ur rdist-6.1.5.orig/Makefile rdist-6.1.5/Makefile +--- rdist-6.1.5.orig/Makefile Mon Nov 9 19:36:06 1998 ++++ rdist-6.1.5/Makefile Tue Apr 3 10:56:28 2001 +@@ -17,9 +17,10 @@ + SHELL=/bin/sh + + all install install.man: FRC +- @for t in $(TARGETS); do \ ++ @for t in $(TARGETS); do ( \ + echo Making \"$@\" in \"$$t\"; \ + (cd $$t; ${MAKE} $@); \ ++ ) || exit 1; \ + done + + clean: +diff -ur rdist-6.1.5.orig/Makefile.local rdist-6.1.5/Makefile.local +--- rdist-6.1.5.orig/Makefile.local Mon Nov 9 19:36:31 1998 ++++ rdist-6.1.5/Makefile.local Tue Apr 3 10:56:28 2001 +@@ -15,6 +15,20 @@ + # or add your own line. + # + #BIN_DIR = /usr/bin ++BIN_DIR = /usr/bin ++MAN_1_DIR = /usr/man/man1 ++MAN_8_DIR = /usr/man/man8 ++RDIST_MODE = 755 ++RDISTD_MODE = 755 ++MAN_MODE = 644 ++MAN_OWNER = root ++MAN_GROUP = root ++BIN_GROUP = root ++ ++INSTALL = install ++YACC = bison -y ++ ++OPT = -Wall -O2 -pipe + + # + # Add any local definitions you want pass to the compiler to DEFS_LOCAL +Only in rdist-6.1.5: Makefile.local~ +Only in rdist-6.1.5: Makefile~ +diff -ur rdist-6.1.5.orig/config/os-linux.h rdist-6.1.5/config/os-linux.h +--- rdist-6.1.5.orig/config/os-linux.h Mon Nov 9 19:59:59 1998 ++++ rdist-6.1.5/config/os-linux.h Tue Apr 3 10:56:28 2001 +@@ -93,8 +93,8 @@ + /* + * Our types, usually these are uid_t and gid_t. + */ +-typedef uid_t UID_T; /* Must be signed */ +-typedef gid_t GID_T; /* Must be signed */ ++typedef int UID_T; /* Must be signed */ ++typedef int GID_T; /* Must be signed */ + + /* + * Generic pointer, used by memcpy, malloc, etc. Usually char or void. +Only in rdist-6.1.5/config: os-linux.h~ +diff -ur rdist-6.1.5.orig/doc/Makefile.real rdist-6.1.5/doc/Makefile.real +--- rdist-6.1.5.orig/doc/Makefile.real Mon Nov 9 21:40:06 1998 ++++ rdist-6.1.5/doc/Makefile.real Tue Apr 3 10:56:28 2001 +@@ -16,7 +16,7 @@ + + doc: + +-install: ++install: install.man + + install.man: rdist.man rdistd.man + ${INSTALL} ${INSTALL_ARGS} rdist.man ${CLIENT_DEST} +Only in rdist-6.1.5/doc: Makefile.real~ +diff -ur rdist-6.1.5.orig/doc/rdist.man rdist-6.1.5/doc/rdist.man +--- rdist-6.1.5.orig/doc/rdist.man Mon Nov 9 21:38:53 1998 ++++ rdist-6.1.5/doc/rdist.man Tue Apr 3 10:56:28 2001 +@@ -171,7 +171,7 @@ + .I rdist + was compiled with the location of the old rdist + (usually either +-.I /usr/ucb/oldrdist ++.I /usr/bin/oldrdist + or + .I /usr/old/rdist) + and that program is available at run time. +@@ -511,7 +511,7 @@ + may be a colon seperated list of possible pathnames. + In this case, the first component of the path to exist is used. + i.e. +-.B "/usr/ucb/rsh:/usr/bin/remsh", ++.B "/usr/bin/rsh:/usr/bin/remsh", + .B /usr/bsd/rsh. + .TP + .B "\-t \fItimeout\fR" +Only in rdist-6.1.5/doc: rdist.man~ +diff -ur rdist-6.1.5.orig/src/Makefile.real rdist-6.1.5/src/Makefile.real +--- rdist-6.1.5.orig/src/Makefile.real Mon Nov 9 20:03:46 1998 ++++ rdist-6.1.5/src/Makefile.real Tue Apr 3 10:56:28 2001 +@@ -52,9 +52,9 @@ + $(COMMONOBJS) $(MISSINGOBJS) + + install: +- $(INSTALL) ${IN_ARGS} -o $(BIN_OWNER) -m ${RDIST_MODE} \ ++ $(INSTALL) ${IN_ARGS} -s -o $(BIN_OWNER) -m ${RDIST_MODE} \ + $(CLIENT_BIN) $(BIN_DIR)/$(CLIENT) +- $(INSTALL) ${IN_ARGS} -o ${BIN_OWNER} -m ${RDISTD_MODE} \ ++ $(INSTALL) ${IN_ARGS} -s -o ${BIN_OWNER} -m ${RDISTD_MODE} \ + $(SERVER_BIN) $(BIN_DIR)/$(SERVER) + + install.man: +Only in rdist-6.1.5/src: Makefile.real~ diff --git a/source/n/rdist/rdist.SlackBuild b/source/n/rdist/rdist.SlackBuild new file mode 100755 index 000000000..e2dd87cdd --- /dev/null +++ b/source/n/rdist/rdist.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=6.1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rdist +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_rdist.tar.gz + +cd $TMP +rm -rf rdist-$VERSION +tar xvf $CWD/rdist-$VERSION.tar.gz || exit 1 +cd rdist-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rdist-$VERSION.diff.gz | patch -p1 --backup +# Modern tools require patching: +zcat $CWD/rdist-6.1.5-bison.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rdist-6.1.5-cleanup.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rdist-6.1.5-varargs.diff.gz | patch -p1 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 + +cd src +strip rdist rdistd +cat rdist > $PKG/usr/bin/rdist +cat rdistd > $PKG/usr/bin/rdistd + +cd ../doc +cat rdist.man | gzip -9c > $PKG/usr/man/man1/rdist.1.gz +cat rdistd.man | gzip -9c > $PKG/usr/man/man1/rdistd.1.gz + +cd .. +mkdir -p $PKG/usr/doc/rdist-$VERSION +cp -a README $PKG/usr/doc/rdist-$VERSION +chmod 644 $PKG/usr/doc/rdist-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rdist-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rdist/slack-desc b/source/n/rdist/slack-desc new file mode 100644 index 000000000..b6e2fa789 --- /dev/null +++ b/source/n/rdist/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rdist: rdist (remote file distribution program) +rdist: +rdist: Rdist is a remote file distribution program. It is used to maintain +rdist: identical copies of files over multiple network hosts. It preserves +rdist: the owner, group, mode, and mtime of files if possible and can update +rdist: programs that are executing. +rdist: +rdist: +rdist: +rdist: +rdist: diff --git a/source/n/rp-pppoe/doinst.sh b/source/n/rp-pppoe/doinst.sh new file mode 100644 index 000000000..527dfa903 --- /dev/null +++ b/source/n/rp-pppoe/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ppp/firewall-masq.new +config etc/ppp/firewall-standalone.new +config etc/ppp/pppoe-server-options.new +config etc/ppp/pppoe.conf.new diff --git a/source/n/rp-pppoe/rp-pppoe.SlackBuild b/source/n/rp-pppoe/rp-pppoe.SlackBuild new file mode 100755 index 000000000..7dfa839c8 --- /dev/null +++ b/source/n/rp-pppoe/rp-pppoe.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=3.10 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rp-pppoe + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf rp-pppoe-$VERSION +tar xvf $CWD/rp-pppoe-$VERSION.tar.gz || exit 1 +cd rp-pppoe-$VERSION/src || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-plugin=/ppp-2.4.4 \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install docdir=/usr/doc/rp-pppoe-$VERSION DESTDIR=$PKG install || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/etc/ppp + for config in firewall-masq firewall-standalone pppoe-server-options pppoe.conf ; do + mv $config ${config}.new + done +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rp-pppoe-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rp-pppoe/slack-desc b/source/n/rp-pppoe/slack-desc new file mode 100644 index 000000000..8aed9d0c4 --- /dev/null +++ b/source/n/rp-pppoe/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rp-pppoe: rp-pppoe (Roaring Penguin PPPoE client) +rp-pppoe: +rp-pppoe: PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by +rp-pppoe: many ADSL Internet Service Providers. Roaring Penguin has a free +rp-pppoe: client for Linux systems to connect to PPPoE service providers. +rp-pppoe: +rp-pppoe: The client is a user-mode program and does not require any kernel +rp-pppoe: modifications. It is fully compliant with RFC 2516, the official +rp-pppoe: PPPoE specification. +rp-pppoe: +rp-pppoe: diff --git a/source/n/rsync/rsync.SlackBuild b/source/n/rsync/rsync.SlackBuild new file mode 100755 index 000000000..e4def4e3c --- /dev/null +++ b/source/n/rsync/rsync.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.0.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rsync +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rsync-$VERSION +tar xvf $CWD/rsync-$VERSION.tar.?z* || exit 1 +cd rsync-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat rsync > $PKG/usr/bin/rsync +chmod 755 $PKG/usr/bin/rsync + +mkdir -p $PKG/usr/man/man1 +cat rsync.1 | gzip -9c > $PKG/usr/man/man1/rsync.1.gz + +mkdir -p $PKG/usr/man/man5 +cat rsyncd.conf.5 | gzip -9c > $PKG/usr/man/man5/rsyncd.conf.5.gz + +mkdir -p $PKG/usr/doc/rsync-$VERSION/popt +cp -a \ + COPYING* INSTALL NEWS README TODO tech_report.tex \ + $PKG/usr/doc/rsync-$VERSION +( cd popt + cp -a CHANGES COPYING README README.rsync $PKG/usr/doc/rsync-$VERSION/popt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rsync-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rsync/slack-desc b/source/n/rsync/slack-desc new file mode 100644 index 000000000..23284ae6b --- /dev/null +++ b/source/n/rsync/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rsync: rsync (remote file sync) +rsync: +rsync: rsync is a replacement for rcp that has many more features. It +rsync: uses the "rsync algorithm" which provides a very fast method for +rsync: bringing remote files into sync. It does this by sending just the +rsync: differences in the files across the link, without requiring that both +rsync: sets of files are present at one of the ends of the link beforehand. +rsync: +rsync: rsync was written by Andrew Tridgell and Paul Mackerras. +rsync: +rsync: diff --git a/source/n/rt61-firmware/rt61-firmware.SlackBuild b/source/n/rt61-firmware/rt61-firmware.SlackBuild new file mode 100755 index 000000000..7734f9ee8 --- /dev/null +++ b/source/n/rt61-firmware/rt61-firmware.SlackBuild @@ -0,0 +1,60 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +CWD=$(pwd) + +PKGNAM=rt61-firmware +VERSION=${VERSION:-1.2} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf RT61_Firmware_V${VERSION} +unzip $CWD/RT61_Firmware_V${VERSION}.zip || exit 1 +cd RT61_Firmware_V${VERSION} + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install: +mkdir -p $PKG/lib/firmware +mv LICEN* $PKG/lib/firmware/LICENSE.ralink-firmware-RT61_Firmware_V${VERSION}.txt +mv * $PKG/lib/firmware + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rt61-firmware/slack-desc b/source/n/rt61-firmware/slack-desc new file mode 100644 index 000000000..584771e94 --- /dev/null +++ b/source/n/rt61-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rt61-firmware: rt61-firmware (Firmware for Ralink rt61 wireless chips) +rt61-firmware: +rt61-firmware: This is firmware for the Ralink rt61 wireless chip. +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: diff --git a/source/n/rt71w-firmware/rt71w-firmware.SlackBuild b/source/n/rt71w-firmware/rt71w-firmware.SlackBuild new file mode 100755 index 000000000..05fae27a8 --- /dev/null +++ b/source/n/rt71w-firmware/rt71w-firmware.SlackBuild @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=rt71w-firmware +VERSION=${VERSION:-1.8} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf RT71W_Firmware_V${VERSION} +unzip $CWD/RT71W_Firmware_V${VERSION}.zip || exit 1 +cd RT71W_Firmware_V${VERSION} || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install: +mkdir -p $PKG/lib/firmware +mv LICEN* $PKG/lib/firmware/LICENSE.ralink-firmware-RT71W_Firmware_V${VERSION}.txt +mv * $PKG/lib/firmware + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rt71w-firmware/slack-desc b/source/n/rt71w-firmware/slack-desc new file mode 100644 index 000000000..57fc43e97 --- /dev/null +++ b/source/n/rt71w-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rt71w-firmware: rt71w-firmware (Firmware for Ralink rt71w wireless chips) +rt71w-firmware: +rt71w-firmware: This is firmware for the Ralink rt71w wireless chip. +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: diff --git a/source/n/samba/doinst.sh b/source/n/samba/doinst.sh new file mode 100644 index 000000000..c7b358ed1 --- /dev/null +++ b/source/n/samba/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.samba.new +# This won't be needed. The point here is to preserve the permissions of the existing +# file, if there is one. I don't see major new development happening in rc.samba... ;-) +rm -f etc/rc.d/rc.samba.new diff --git a/source/n/samba/rc.samba b/source/n/samba/rc.samba new file mode 100644 index 000000000..2a28f3e52 --- /dev/null +++ b/source/n/samba/rc.samba @@ -0,0 +1,45 @@ +#!/bin/sh +# +# /etc/rc.d/rc.samba +# +# Start/stop/restart the Samba SMB file/print server. +# +# To make Samba start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.samba +# + +samba_start() { + if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then + echo "Starting Samba: /usr/sbin/smbd -D" + /usr/sbin/smbd -D + echo " /usr/sbin/nmbd -D" + /usr/sbin/nmbd -D + fi +} + +samba_stop() { + killall smbd nmbd +} + +samba_restart() { + samba_stop + sleep 2 + samba_start +} + +case "$1" in +'start') + samba_start + ;; +'stop') + samba_stop + ;; +'restart') + samba_restart + ;; +*) + # Default is "start", for backwards compatibility with previous + # Slackware versions. This may change to a 'usage' error someday. + samba_start +esac + diff --git a/source/n/samba/samba.SlackBuild b/source/n/samba/samba.SlackBuild new file mode 100755 index 000000000..e62aab09b --- /dev/null +++ b/source/n/samba/samba.SlackBuild @@ -0,0 +1,198 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-3.2.13} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-samba +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf samba-$VERSION +tar xvf $CWD/samba-$VERSION.tar.?z* || exit 1 +cd samba-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd source +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# Some of these options could be auto-detected, but declaring them +# here doesn't hurt and helps document what features we're trying to +# build in. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=/usr/lib${LIBDIRSUFFIX} \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-configdir=/etc/samba \ + --with-piddir=/var/run \ + --with-privatedir=/etc/samba/private \ + --localstatedir=/var \ + --with-lockdir=/var/cache/samba \ + --with-swatdir=/usr/share/swat \ + --with-logfilebase=/var/log/samba \ + --enable-cups \ + --enable-static=no \ + --enable-shared=yes \ + --with-acl-support=yes \ + --with-automount \ + --with-cifsmount \ + --with-quotas \ + --with-syslog \ + --with-utmp \ + --with-libsmbclient \ + --with-winbind \ + --with-ldap \ + --build=$ARCH-slackware-linux + # Using with-fhs overrides our libdir, and besides we are already hard-coding + # directories. So, now we define them all explicitly... + #--with-fhs \ + +# -j options don't seem to work... +make || exit 1 + +mkdir -p \ + $PKG/usr/doc/samba-$VERSION \ + $PKG/var/spool/samba \ + $PKG/var/log/samba \ + $PKG/etc/samba/private \ + $PKG/var/cache/samba +chmod 700 $PKG/etc/samba/private +chmod 1777 $PKG/var/spool/samba + +make install-everything DESTDIR=$PKG || exit 1 + +# Install libnss_win* libraries: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a nsswitch/libnss_winbind.so $PKG/lib${LIBDIRSUFFIX}/libnss_winbind.so.2 +cp -a nsswitch/libnss_wins.so $PKG/lib${LIBDIRSUFFIX}/libnss_wins.so.2 +( cd $PKG/lib${LIBDIRSUFFIX} + ln -sf libnss_winbind.so.2 libnss_winbind.so + ln -sf libnss_wins.so.2 libnss_wins.so +) + +## Make sure that other programs can link against libsmbclient: +#( cd $PKG/usr/lib${LIBDIRSUFFIX} +# for FILE in samba/libsmbclient.so* ; do +# ln -sf $FILE +# done +#) + +# Add some (u)mount links: +mkdir -p $PKG/sbin +( cd $PKG/sbin + # SMBFS is obsolete in the kernel now -- use mount.cifs + #rm -f mount.smbfs ; ln -sf /usr/bin/smbmount mount.smbfs + # Add a wrapper script from Debian that's included in the upstream Samba + # sources to help out people (like me ;-) who don't read every speck of + # documentation: + cat $TMP/samba-$VERSION/examples/scripts/mount/mount.smbfs > mount.smbfs + chmod 755 $PKG/sbin/mount.smbfs + # I suppose this wouldn't be the worst idea in the world, either: + ( cd $PKG/usr/bin ; ln -sf /sbin/mount.smbfs smbmount ) + rm -f mount.cifs ; ln -sf /usr/sbin/mount.cifs mount.cifs + # smbumount was giving me problems so it seems wise to play it safe + #rm -f umount.smbfs ; ln -sf /usr/bin/smbumount umount.smbfs + #rm -f umount.cifs ; ln -sf /usr/sbin/umount.cifs umount.cifs +) + +# Add a sample config file: +cat $CWD/smb.conf.default > $PKG/etc/samba/smb.conf-sample + +if [ ! -r $PKG/usr/bin/smbget ]; then + rm -f $PKG/usr/share/man/man1/smbget.1 + rm -f $PKG/usr/share/swat/help/smbget.1.html +fi + +# We'll add rc.samba to the init directory, but chmod 644 so that it doesn't +# start by default: +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.samba > $PKG/etc/rc.d/rc.samba.new +chmod 644 $PKG/etc/rc.d/rc.samba.new + +mv $PKG/usr/share/man $PKG/usr +gzip -9 $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd .. +cp -a \ + COPYING* MAINTAINERS Manifest PFIF.txt README* \ + Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \ + $PKG/usr/doc/samba-$VERSION +# These are installed elsewhere: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/htmldocs \ + $PKG/usr/doc/samba-$VERSION/docs/manpages +mkdir -p $PKG/usr/doc/samba-$VERSION/docs +( cd $PKG/usr/doc/samba-$VERSION/docs + ln -sf /usr/share/swat/help htmldocs + ln -sf /usr/share/swat/using_samba using_samba +) +# I'm sorry, but when all this info is included in HTML, adding 7MB worth of +# PDF files just to have extra artwork is more fluff than I'll agree to. +rm -f $PKG/usr/doc/samba-$VERSION/docs/*.pdf +# Also redundant also: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/docbook + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cat << EOF + +*** Be sure the package contains: + +drwx------ 2 root root 1024 Mar 12 13:21 /etc/samba/private +drwxr-xr-x 2 root root 4096 May 3 15:46 /var/cache/samba/ +drwxr-xr-x 2 root root 48 Aug 29 13:06 /var/log/samba/ +drwxrwxrwt 2 root root 1024 Mar 12 13:21 /var/spool/samba/ + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/samba-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/samba/slack-desc b/source/n/samba/slack-desc new file mode 100644 index 000000000..dc42f2b6f --- /dev/null +++ b/source/n/samba/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +samba: samba (SMB file and print server) +samba: +samba: Samba is an SMB file and print server for SMB and CIFS clients. It +samba: allows you to make file space or printers on a Samba host available to +samba: any PCs running SMB clients (such as PCs running Windows). +samba: +samba: If you have any SMB servers (such as Windows NT/2K Server), you may be +samba: able to replace them by or supplement them with Samba. One of Samba's +samba: big strengths is integration, so you can use it to tie together your +samba: Linux hosts and Windows PC clients. +samba: diff --git a/source/n/samba/smb.conf.default b/source/n/samba/smb.conf.default new file mode 100644 index 000000000..68e62f930 --- /dev/null +++ b/source/n/samba/smb.conf.default @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = <NT-Server-Name> + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /var/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/source/n/samba/smb.conf.default.orig b/source/n/samba/smb.conf.default.orig new file mode 100644 index 000000000..971ca19c8 --- /dev/null +++ b/source/n/samba/smb.conf.default.orig @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /usr/local/samba/var/log.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = <NT-Server-Name> + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /usr/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/source/n/samba/smb.conf.diff b/source/n/samba/smb.conf.diff new file mode 100644 index 000000000..553440c54 --- /dev/null +++ b/source/n/samba/smb.conf.diff @@ -0,0 +1,29 @@ +--- smb.conf.default.orig 2008-05-28 07:41:11.000000000 -0500 ++++ smb.conf.default 2008-05-28 13:53:01.000000000 -0500 +@@ -22,7 +22,7 @@ + #======================= Global Settings ===================================== + [global] + +-# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH ++# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + + # server string is the equivalent of the NT Description field +@@ -63,7 +63,7 @@ + + # this tells Samba to use a separate log file for each machine + # that connects +- log file = /usr/local/samba/var/log.%m ++ log file = /var/log/samba.%m + + # Put a capping on the size of the log files (in Kb). + max log size = 50 +@@ -184,7 +184,7 @@ + # specifically define each individual printer + [printers] + comment = All Printers +- path = /usr/spool/samba ++ path = /var/spool/samba + browseable = no + # Set public = yes to allow user 'guest account' to print + guest ok = no diff --git a/source/n/sendmail/Build b/source/n/sendmail/Build new file mode 100644 index 000000000..21950d496 --- /dev/null +++ b/source/n/sendmail/Build @@ -0,0 +1,29 @@ +#!/bin/sh +# Copyright 2004 Slackware Linux, Inc. Concord, CA 94520 +# Copyright 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# + +# A script to build .cf files from .mc files: + +for mcfile in $* ; do + /usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 $mcfile > $(basename $mcfile .mc).cf +done + diff --git a/source/n/sendmail/SlackBuild b/source/n/sendmail/SlackBuild new file mode 100755 index 000000000..462f16e9d --- /dev/null +++ b/source/n/sendmail/SlackBuild @@ -0,0 +1,3 @@ +#!/bin/sh +./SlackBuild-sendmail $* +./SlackBuild-sendmail-cf $* diff --git a/source/n/sendmail/SlackBuild-sendmail b/source/n/sendmail/SlackBuild-sendmail new file mode 100755 index 000000000..54dc0c5c2 --- /dev/null +++ b/source/n/sendmail/SlackBuild-sendmail @@ -0,0 +1,156 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=8.14.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sendmail.tar.gz +[ -n "${LIBDIRSUFFIX}" ] && mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} + +echo "+=================+" +echo "| sendmail.$VERSION |" +echo "+=================+" +OSCPU="`uname -srm | tr ' ' '.'`" +cd $TMP +rm -rf sendmail-$VERSION +tar xvf $CWD/sendmail.$VERSION.tar.gz || exit 1 +cd sendmail-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add TLS support to the sendmail binary: +cat $CWD/site.config.m4 > devtools/Site/site.config.m4 + +# Build .cf files for Linux: +cd $TMP/sendmail-$VERSION/cf/cf +cp $CWD/*.mc . +cp linux.uucp.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/linux.uucp.cf +cp sendmail-slackware.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware.cf +cp sendmail-slackware-tls.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls.cf +cp sendmail-slackware-tls-sasl.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls-sasl.cf + +# Add a sample sendmail.cf: +cat $PKG/usr/share/sendmail/sendmail-slackware.cf > $PKG/etc/mail/sendmail.cf.new +cat submit.cf > $PKG/etc/mail/submit.cf.new + +cd $TMP/sendmail-$VERSION +## All "Build" does is call make while screwing up the options :-) +## sh Build +make O="$SLKCFLAGS" +#O="$SLKCFLAGS" sh Build +cat sendmail/mailq.1 | gzip -9c > $PKG/usr/man/man1/mailq.1.gz +cat sendmail/newaliases.1 | gzip -9c > $PKG/usr/man/man1/newaliases.1.gz +mkdir -p $PKG/usr/doc/sendmail-$VERSION +cp -a \ + FAQ INSTALL KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ + $PKG/usr/doc/sendmail-$VERSION +( cd doc ; cp -a op $PKG/usr/doc/sendmail-$VERSION ) + +cd obj.$OSCPU/sendmail +cat sendmail > $PKG/usr/sbin/sendmail.new +cat aliases.5 | gzip -9c > $PKG/usr/man/man5/aliases.5.gz +cat sendmail.8 | gzip -9c > $PKG/usr/man/man8/sendmail.8.gz +cat statistics > $PKG/etc/mail/statistics +cat ../../sendmail/helpfile > $PKG/etc/mail/helpfile +cd ../makemap +cat makemap > $PKG/usr/sbin/makemap +cat makemap.8 | gzip -9c > $PKG/usr/man/man8/makemap.8.gz +cd ../mailstats +cat mailstats > $PKG/usr/sbin/mailstats +cat mailstats.8 | gzip -9c > $PKG/usr/man/man8/mailstats.8.gz +cd ../praliases +cat praliases > $PKG/usr/bin/praliases +chmod 755 $PKG/usr/bin/praliases +cat praliases.8 | gzip -9c > $PKG/usr/man/man8/praliases.8.gz +cd ../rmail +cat rmail > $PKG/usr/bin/rmail +cat rmail.8 | gzip -9c > $PKG/usr/man/man8/rmail.8.gz +cd ../smrsh +cat smrsh > $PKG/usr/sbin/smrsh +cat smrsh.8 | gzip -9c > $PKG/usr/man/man8/smrsh.8.gz +cd ../mail.local +cat mail.local > $PKG/usr/sbin/mail.local +cat mail.local.8 | gzip -9c > $PKG/usr/man/man8/mail.local.8.gz +cd ../vacation +cat vacation > $PKG/usr/bin/vacation +cat vacation.1 | gzip -9c > $PKG/usr/man/man1/vacation.1.gz +cd ../editmap +cat editmap > $PKG/usr/sbin/editmap +cat editmap.8 | gzip -9c > $PKG/usr/man/man8/editmap.8.gz + +# Add libmilter: +cd $TMP/sendmail-$VERSION/libmilter +./Build +cd .. +mkdir -p $PKG/usr/include +mkdir -p $PKG/usr/include/libmilter +cp -a include/libmilter/mfapi.h $PKG/usr/include/libmilter +cp -a include/libmilter/mfdef.h $PKG/usr/include/libmilter +cp -a obj.*/libmilter/libmilter.a $PKG/usr/lib${LIBDIRSUFFIX} +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a $PKG/usr/include/libmilter/* +mkdir -p $PKG/usr/doc/sendmail-$VERSION/libmilter +cp -a libmilter/README $PKG/usr/doc/sendmail-$VERSION/libmilter + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cat $CWD/slack-desc.sendmail > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/sendmail/SlackBuild-sendmail-cf b/source/n/sendmail/SlackBuild-sendmail-cf new file mode 100755 index 000000000..3d7fd4524 --- /dev/null +++ b/source/n/sendmail/SlackBuild-sendmail-cf @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=8.14.3 +ARCH=noarch +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail-cf + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+====================+" +echo "| sendmail.cf.$VERSION |" +echo "+====================+" +( cd $TMP/sendmail-$VERSION ; find . -name "*~" -print -exec rm {} \; ) +cd $PKG +mkdir -p usr/share/sendmail/cf +cd usr/share/sendmail/cf +cp -a $TMP/sendmail-$VERSION/cf/README . +cp -a $TMP/package-sendmail/usr/share/sendmail/README.linux . +for dir in cf domain feature hack m4 mailer ostype sh siteconfig ; do + cp -a $TMP/sendmail-$VERSION/cf/$dir . +done +# Replace the sendmail Build script with a simple (working) one: +cp -a $PKG/usr/share/sendmail/cf/cf/Build $PKG/usr/share/sendmail/cf/cf/Build.orig +zcat $CWD/Build.gz > $PKG/usr/share/sendmail/cf/cf/Build +chown -R root.root * + +mkdir -p $PKG/install +cat $CWD/slack-desc.sendmail-cf > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-cf-$VERSION-noarch-$BUILD.txz + diff --git a/source/n/sendmail/linux.uucp.mc b/source/n/sendmail/linux.uucp.mc new file mode 100644 index 000000000..ffd242bb0 --- /dev/null +++ b/source/n/sendmail/linux.uucp.mc @@ -0,0 +1,8 @@ +include(`../m4/cf.m4') +VERSIONID(`linux for setup with uucp which uses domain names')dnl +OSTYPE(linux) +FEATURE(always_add_domain)dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(uucp) +define(`SMART_HOST', uucp-dom:otheruucphost) diff --git a/source/n/sendmail/sendmail-slackware-tls-sasl.mc b/source/n/sendmail/sendmail-slackware-tls-sasl.mc new file mode 100644 index 000000000..ed5753b43 --- /dev/null +++ b/source/n/sendmail/sendmail-slackware-tls-sasl.mc @@ -0,0 +1,61 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +FEATURE(`no_default_msa')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +dnl# Allow SASL authentication/relaying: +define(`confAUTH_OPTIONS', `A p y')dnl +define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Esa')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/source/n/sendmail/sendmail-slackware-tls.mc b/source/n/sendmail/sendmail-slackware-tls.mc new file mode 100644 index 000000000..01a66775b --- /dev/null +++ b/source/n/sendmail/sendmail-slackware-tls.mc @@ -0,0 +1,56 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Es')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/source/n/sendmail/sendmail-slackware.mc b/source/n/sendmail/sendmail-slackware.mc new file mode 100644 index 000000000..4fd4620bf --- /dev/null +++ b/source/n/sendmail/sendmail-slackware.mc @@ -0,0 +1,42 @@ +dnl# This is the default sendmail .mc file for Slackware. To generate +dnl# the sendmail.cf file from this (perhaps after making some changes), +dnl# use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.cf +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`default setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl diff --git a/source/n/sendmail/site.config.m4 b/source/n/sendmail/site.config.m4 new file mode 100644 index 000000000..1f6c7f87c --- /dev/null +++ b/source/n/sendmail/site.config.m4 @@ -0,0 +1,7 @@ +APPENDDEF(`confMAPDEF', `-DNEWDB -DSTARTTLS -DSASL=2 -DTCPWRAPPERS -DNIS -DMAP_REGEX -DSOCKETMAP') +APPENDDEF(`confLIBS', `-lnsl -lssl -lcrypto -lsasl2 -lwrap -lm -ldb -lresolv') +APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER') +APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') +APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE ') +APPENDDEF(`confENVDEF', `-DBROKEN_PTHREAD_SLEEP') +APPENDDEF(`confENVDEF', `-D_FFR_TLS_1')dnl diff --git a/source/n/sendmail/slack-desc.sendmail b/source/n/sendmail/slack-desc.sendmail new file mode 100644 index 000000000..cdcc9387a --- /dev/null +++ b/source/n/sendmail/slack-desc.sendmail @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail: sendmail (mail transfer agent) +sendmail: +sendmail: Eric Allman's mail transport agent. The _Unix System Administration +sendmail: Handbook_ calls sendmail 'The most complex and complete mail delivery +sendmail: system in common use...' +sendmail: +sendmail: Ready-made configuration files are included for systems connected by +sendmail: TCP/IP (with or without a nameserver) and for systems using UUCP. +sendmail: +sendmail: The procmail package is required to handle local mail delivery. +sendmail: diff --git a/source/n/sendmail/slack-desc.sendmail-cf b/source/n/sendmail/slack-desc.sendmail-cf new file mode 100644 index 000000000..df56efdc8 --- /dev/null +++ b/source/n/sendmail/slack-desc.sendmail-cf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail-cf: sendmail-cf (configuration files for sendmail) +sendmail-cf: +sendmail-cf: These files are used to create sendmail.cf configuration files. The +sendmail-cf: m4 macro processor is also required in order to make use of these +sendmail-cf: files. +sendmail-cf: +sendmail-cf: The files and documentation in /usr/share/sendmail should make it +sendmail-cf: possible to support virtually any mail configuration. NOTE: You +sendmail-cf: probably won't need this package if you're planning to use one of the +sendmail-cf: sendmail.cf samples included in the sendmail package. +sendmail-cf: diff --git a/source/n/slrn/doinst.sh b/source/n/slrn/doinst.sh new file mode 100644 index 000000000..ad59028cd --- /dev/null +++ b/source/n/slrn/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/slrn.rc.new + diff --git a/source/n/slrn/slack-desc b/source/n/slrn/slack-desc new file mode 100644 index 000000000..bbec2dab6 --- /dev/null +++ b/source/n/slrn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slrn: slrn (s-lang read news) +slrn: +slrn: slrn is an easy to use but powerful newsreader. It is highly +slrn: customizable, supports scoring, free key bindings, and can be extended +slrn: using the s-lang macro language. +slrn: +slrn: slrn was written and is maintained by John E. Davis. +slrn: +slrn: +slrn: +slrn: diff --git a/source/n/slrn/slrn.SlackBuild b/source/n/slrn/slrn.SlackBuild new file mode 100755 index 000000000..d2a50362e --- /dev/null +++ b/source/n/slrn/slrn.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.9.9p1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slrn +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf slrn-$VERSION +tar xvf $CWD/slrn-$VERSION.tar.bz2 || exit 1 +cd slrn-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i -e 's/-lslang$/-lslang1/' -e 's/-lslang /-lslang1 /g' $(grep -lr -- '-lslang ' *) + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/slrn-$VERSION \ + --with-docdir=/usr/doc/slrn-$VERSION \ + --with-ssl \ + --with-slrnpull \ + --enable-setgid-code \ + --with-server-file=/etc/nntpserver \ + --with-slanginc=/usr/include/slang \ + --with-slanglib=/usr/lib${LIBDIRSUFFIX} \ + --with-ssl=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Docs go to the correct place already, but this one is big: +rm -f $PKG/usr/doc/slrn-$VERSION/changes.txt + +# Handle the slrnpull stuff +chown root.news $PKG/usr/bin/slrnpull +chmod 2750 $PKG/usr/bin/slrnpull +mkdir -p $PKG/var/spool/slrnpull/{data,news,out.going/rejects} +cp -a $PKG/usr/doc/slrn-$VERSION/slrnpull/slrnpull.conf $PKG/var/spool/slrnpull +chown -R news.news $PKG/var/spool/slrnpull +chmod -R 3777 $PKG/var/spool/slrnpull/out.going + +# Handle the global config +mkdir -p $PKG/etc +cp -a $PKG/usr/doc/slrn-$VERSION/slrn.rc $PKG/etc/slrn.rc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/slrn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/snownews/slack-desc b/source/n/snownews/slack-desc new file mode 100644 index 000000000..5ad21d08c --- /dev/null +++ b/source/n/snownews/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +snownews: snownews (a console RSS newsreader) +snownews: +snownews: Snownews is a console RSS/RDF news reader. It supports all versions +snownews: of RSS natively and can be expanded via plugins to support many other +snownews: other formats. +snownews: +snownews: Snownews was written and is maintained by Oliver Feiler. +snownews: +snownews: Snownews homepage: http://kiza.kcore.de/software/snownews +snownews: +snownews: diff --git a/source/n/snownews/snownews.SlackBuild b/source/n/snownews/snownews.SlackBuild new file mode 100755 index 000000000..a8ac91857 --- /dev/null +++ b/source/n/snownews/snownews.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.5.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-snownews + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf snownews-$VERSION +tar xvf $CWD/snownews-$VERSION.tar.?z || exit 1 +cd snownews-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr + +# Use ncursesw instead of regular ncurses: +sed -i 's|lncurses|lncursesw|g' platform_settings + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/man $PKG/usr +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/snownews-$VERSION +cp -a \ + AUTHOR COPYING* CREDITS Changelog INSTALL README* \ + $PKG/usr/doc/snownews-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/snownews-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/stunnel/doinst.sh b/source/n/stunnel/doinst.sh new file mode 100644 index 000000000..0d6e88963 --- /dev/null +++ b/source/n/stunnel/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/stunnel/stunnel.cnf.new diff --git a/source/n/stunnel/generate-stunnel-key.sh b/source/n/stunnel/generate-stunnel-key.sh new file mode 100644 index 000000000..e1e852808 --- /dev/null +++ b/source/n/stunnel/generate-stunnel-key.sh @@ -0,0 +1,13 @@ +#!/bin/sh +USE_DH=0 + +openssl req -new -x509 -days 365 -nodes \ + -config ./stunnel.cnf -out stunnel.pem -keyout stunnel.pem + +test $USE_DH -eq 0 || openssl gendh 512 >> stunnel.pem + +openssl x509 -subject -dates -fingerprint -noout \ + -in stunnel.pem + +chmod 600 stunnel.pem +rm -f stunnel.rnd diff --git a/source/n/stunnel/slack-desc b/source/n/stunnel/slack-desc new file mode 100644 index 000000000..f8ee5bc47 --- /dev/null +++ b/source/n/stunnel/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +stunnel: stunnel (Universal SSL tunnel) +stunnel: +stunnel: The stunnel program is designed to work as an SSL encryption wrapper +stunnel: between remote client and local (inetd-startable) or remote servers. +stunnel: The goal is to facilitate SSL encryption and authentication for +stunnel: non-SSL-aware programs. +stunnel: +stunnel: stunnel can be used to add SSL functionality to commonly used inetd +stunnel: daemons like POP-2, POP-3 and IMAP servers without any changes in the +stunnel: programs' code. +stunnel: diff --git a/source/n/stunnel/stunnel.SlackBuild b/source/n/stunnel/stunnel.SlackBuild new file mode 100755 index 000000000..187dfa526 --- /dev/null +++ b/source/n/stunnel/stunnel.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=4.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-stunnel + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf stunnel-$VERSION +tar xvf $CWD/stunnel-$VERSION.tar.gz || exit 1 +cd stunnel-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --exec-prefix= \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --sbindir=/usr/sbin \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/var/run/stunnel +# This will produce a useless key. +make -i install DESTDIR=$PKG +# Get rid of key, so nobody tries to use it: +rm -f $PKG/etc/stunnel/stunnel.pem +# Add cnf: +cat tools/stunnel.cnf > $PKG/etc/stunnel/stunnel.cnf.new +cat $CWD/generate-stunnel-key.sh > $PKG/etc/stunnel/generate-stunnel-key.sh +chmod 755 $PKG/etc/stunnel/generate-stunnel-key.sh + +mkdir -p $PKG/usr/doc/stunnel-$VERSION +mv $PKG/usr/share/doc/stunnel/* $PKG/usr/doc/stunnel-$VERSION +rmdir $PKG/usr/share/doc/stunnel +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/usr/man/pl/man8 +mv $PKG/usr/man/man8/stunnel.pl.8 $PKG/usr/man/pl/man8/stunnel.8 +mkdir -p $PKG/usr/man/fr/man8 +mv $PKG/usr/man/man8/stunnel.fr.8 $PKG/usr/man/fr/man8/stunnel.8 +gzip -9 $PKG/usr/man/*/man?/*.? $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# The 4.15 version of stunnel caused some bizarre perms, so +# we'll protect against that: +chmod 0755 $PKG/var/lib +chown root:root $PKG/var/lib + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/stunnel-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tcp_wrappers/slack-desc b/source/n/tcp_wrappers/slack-desc new file mode 100644 index 000000000..be7131e74 --- /dev/null +++ b/source/n/tcp_wrappers/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcp_wrappers: tcp_wrappers (TCP/IP daemon wrapper library and utilities) +tcp_wrappers: +tcp_wrappers: With this package you can monitor and filter incoming requests for +tcp_wrappers: network services for access control, and detection things like host +tcp_wrappers: name spoofing and host address spoofing. Nearly all the network +tcp_wrappers: daemons on Slackware are "wrapped" using this library, and most +tcp_wrappers: daemons in /etc/inetd.conf use tcp_wrappers' tcpd wrapper daemon. +tcp_wrappers: If you plan to do much networking, you will need tcp_wrappers. +tcp_wrappers: +tcp_wrappers: tcp_wrappers was written by Wietse Venema. +tcp_wrappers: diff --git a/source/n/tcp_wrappers/tcp_wrappers.SlackBuild b/source/n/tcp_wrappers/tcp_wrappers.SlackBuild new file mode 100755 index 000000000..a8cfbdcb9 --- /dev/null +++ b/source/n/tcp_wrappers/tcp_wrappers.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=7.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcp_wrappers + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tcp_wrappers-$VERSION +tar xvf $CWD/tcp_wrappers_$VERSION.tar.gz || exit 1 +cd tcp_wrappers-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sh extract-and-patch.sh +cd tcp_wrappers_$VERSION || exit 1 +make REAL_DAEMON_DIR=/usr/sbin linux +strip tcpd safe_finger tcpdchk tcpdmatch try-from +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cat libwrap.a > $PKG/usr/lib${LIBDIRSUFFIX}/libwrap.a +mkdir -p $PKG/usr/include +cat tcpd.h > $PKG/usr/include/tcpd.h +mkdir -p $PKG/usr/sbin +cat safe_finger > $PKG/usr/sbin/safe_finger +cat tcpd > $PKG/usr/sbin/tcpd +cat tcpdchk > $PKG/usr/sbin/tcpdchk +cat tcpdmatch > $PKG/usr/sbin/tcpdmatch +cat try-from > $PKG/usr/sbin/try-from +chmod 755 $PKG/usr/sbin/* +mkdir -p $PKG/usr/man/man{3,5,8} +cat hosts_access.3 | gzip -9c > $PKG/usr/man/man3/hosts_access.3.gz +cat hosts_access.5 | gzip -9c > $PKG/usr/man/man5/hosts_access.5.gz +cat hosts_options.5 | gzip -9c > $PKG/usr/man/man5/hosts_options.5.gz +cat tcpd.8 | gzip -9c > $PKG/usr/man/man8/tcpd.8.gz +cat tcpdchk.8 | gzip -9c > $PKG/usr/man/man8/tcpdchk.8.gz +cat tcpdmatch.8 | gzip -9c > $PKG/usr/man/man8/tcpdmatch.8.gz + +mkdir -p $PKG/usr/doc/tcp_wrappers_$VERSION +cp -a \ + BLURB CHANGES DISCLAIMER README README.NIS \ + $PKG/usr/doc/tcp_wrappers_$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tcp_wrappers-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tcpdump/slack-desc b/source/n/tcpdump/slack-desc new file mode 100644 index 000000000..47bab9e71 --- /dev/null +++ b/source/n/tcpdump/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcpdump: tcpdump (network monitor) +tcpdump: +tcpdump: Tcpdump is a tool for network monitoring and data acquisition. You +tcpdump: can use it to dump information on all the packets on a network that +tcpdump: match a boolean expression. Tcpdump uses libpcap, a system +tcpdump: independent interface for user-level packet capture. +tcpdump: +tcpdump: +tcpdump: +tcpdump: +tcpdump: diff --git a/source/n/tcpdump/tcpdump.SlackBuild b/source/n/tcpdump/tcpdump.SlackBuild new file mode 100755 index 000000000..ec1d39ee9 --- /dev/null +++ b/source/n/tcpdump/tcpdump.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=4.0.0 +LIBVER=1.0.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcpdump + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+================+" +echo "| libpcap-$LIBVER |" +echo "+================+" +cd $TMP +rm -rf libpcap-$LIBVER +tar xvf $CWD/libpcap-$LIBVER.tar.gz || exit 1 +cd libpcap-$LIBVER || exit 1 +find . -type d -name CVS -depth -exec rm -rf {} \; +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +CFLAGS="$(getconf LFS_CFLAGS)" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/libpcap-$LIBVER \ + --enable-ipv6 \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin # otherwise it errors out on install +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/libpcap-$LIBVER +cp -a \ + CHANGES CREDITS FILES INSTALL.txt LICENSE README README.linux TODO VERSION \ + $PKG/usr/doc/libpcap-$LIBVER + +echo "+================+" +echo "| tcpdump-$VERSION |" +echo "+================+" +cd $TMP +rm -rf tcpdump-$VERSION +tar xvf $CWD/tcpdump-$VERSION.tar.gz || exit 1 +cd tcpdump-$VERSION || exit 1 +find . -type d -name CVS -depth -exec rm -rf {} \; +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/tcpdump-$VERSION \ + --enable-ipv6 \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +# Strange, two identical files: +( cd $PKG/usr/sbin + rm -f tcpdump + ln -s tcpdump.$VERSION tcpdump +) || exit 1 +mkdir -p $PKG/usr/doc/tcpdump-$VERSION +cp -a \ + CHANGES FILES INSTALL README \ + $PKG/usr/doc/tcpdump-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tcpdump-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/telnet/netkit-telnet-0.17-ayt.patch b/source/n/telnet/netkit-telnet-0.17-ayt.patch new file mode 100644 index 000000000..943380f7b --- /dev/null +++ b/source/n/telnet/netkit-telnet-0.17-ayt.patch @@ -0,0 +1,41 @@ +--- netkit-telnet-0.17/telnetd/utility.c.ayt Wed Aug 8 16:33:01 2001
++++ netkit-telnet-0.17/telnetd/utility.c Wed Aug 8 17:20:39 2001
+@@ -56,18 +56,25 @@
+ void
+ netoprintf(const char *fmt, ...)
+ {
+- int len, maxsize;
++ int len = 0, maxsize;
+ va_list ap;
+ int done=0;
+
+ while (!done) {
+ maxsize = sizeof(netobuf) - (nfrontp - netobuf);
++ if (maxsize < 0) {
++ /* no way this is gonna fit - try to flush some */
++ netflush();
++ maxsize = sizeof(netobuf) - (nfrontp - netobuf);
++ if (maxsize < 0)
++ break;
++ }
+
+ va_start(ap, fmt);
+ len = vsnprintf(nfrontp, maxsize, fmt, ap);
+ va_end(ap);
+
+- if (len<0 || len==maxsize) {
++ if (len<=0 || len==maxsize) {
+ /* didn't fit */
+ netflush();
+ }
+--- netkit-telnet-0.17/telnetd/telnetd.c.ayt Wed Aug 8 16:33:01 2001
++++ netkit-telnet-0.17/telnetd/telnetd.c Wed Aug 8 17:21:44 2001
+@@ -1277,7 +1277,7 @@
+ return;
+ }
+ #endif
+- netoprintf("\r\n[%s : yes]\r\n", host_name);
++ netoprintf("\r\n[Yes]\r\n");
+ }
+
+ void doeof(void) {
diff --git a/source/n/telnet/netkit-telnet-0.17.diff b/source/n/telnet/netkit-telnet-0.17.diff new file mode 100644 index 000000000..ecd2ba355 --- /dev/null +++ b/source/n/telnet/netkit-telnet-0.17.diff @@ -0,0 +1,10 @@ +--- ./telnetd/utility.c.orig Sun Feb 25 18:20:41 2001 ++++ ./telnetd/utility.c Sun Feb 25 18:20:59 2001 +@@ -41,6 +41,7 @@ + + #include <stdarg.h> + #include <sys/utsname.h> ++#include <time.h> + + #ifdef AUTHENTICATE + #include <libtelnet/auth.h> diff --git a/source/n/telnet/slack-desc b/source/n/telnet/slack-desc new file mode 100644 index 000000000..89ba84c3f --- /dev/null +++ b/source/n/telnet/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +telnet: telnet (the telnet client and daemon) +telnet: +telnet: telnet supports the original DARPA telnet interactive communication +telnet: protocol. As connecting to a telnetd server transmits your password +telnet: over the network in cleartext, telnet's use as a login protocol has +telnet: been mostly superceded by the use of ssh and sshd. However, the +telnet: telnet client is still a very handy tool, and telnetd may still have +telnet: some uses on networks that are known to be secure. +telnet: +telnet: telnet and telnetd were ported from BSD. +telnet: diff --git a/source/n/telnet/telnet-OpenBSD-014_telnet.diff b/source/n/telnet/telnet-OpenBSD-014_telnet.diff new file mode 100644 index 000000000..dee7245de --- /dev/null +++ b/source/n/telnet/telnet-OpenBSD-014_telnet.diff @@ -0,0 +1,322 @@ +Apply by doing: + cd /usr/src + patch -p0 < 014_telnet.patch + +Then rebuild and install telnet: + cd usr.bin/telnet + make obj + make depend + make + make install + +Index: usr.bin/telnet/authenc.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/authenc.c,v +retrieving revision 1.6 +retrieving revision 1.6.6.1 +diff -u -p -r1.6 -r1.6.6.1 +--- usr.bin/telnet/authenc.c 3 Jun 2003 02:56:18 -0000 1.6 ++++ usr.bin/telnet/authenc.c 29 Mar 2005 19:49:10 -0000 1.6.6.1 +@@ -80,7 +80,7 @@ telnet_spin() + telnet_getenv(val) + const char *val; + { +- return((char *)env_getvalue((unsigned char *)val)); ++ return((char *)env_getvalue((unsigned char *)val, 0)); + } + + char * +Index: usr.bin/telnet/commands.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/commands.c,v +retrieving revision 1.46 +retrieving revision 1.46.4.1 +diff -u -p -r1.46 -r1.46.4.1 +--- usr.bin/telnet/commands.c 28 Dec 2003 21:53:01 -0000 1.46 ++++ usr.bin/telnet/commands.c 29 Mar 2005 19:49:10 -0000 1.46.4.1 +@@ -1821,12 +1821,13 @@ env_default(init, welldefined) + } + + unsigned char * +-env_getvalue(var) ++env_getvalue(var, exported_only) + unsigned char *var; ++ int exported_only; + { + struct env_lst *ep; + +- if ((ep = env_find(var))) ++ if ((ep = env_find(var)) && (!exported_only || ep->export)) + return(ep->value); + return(NULL); + } +Index: usr.bin/telnet/externs.h +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/externs.h,v +retrieving revision 1.13 +retrieving revision 1.13.4.1 +diff -u -p -r1.13 -r1.13.4.1 +--- usr.bin/telnet/externs.h 3 Jan 2004 23:36:14 -0000 1.13 ++++ usr.bin/telnet/externs.h 29 Mar 2005 19:49:10 -0000 1.13.4.1 +@@ -204,7 +204,7 @@ void env_unexport (unsigned char *); + void env_send (unsigned char *); + void env_list (void); + unsigned char * env_default(int init, int welldefined); +-unsigned char * env_getvalue(unsigned char *var); ++unsigned char * env_getvalue(unsigned char *var, int exported_only); + + void set_escape_char(char *s); + unsigned long sourceroute(char *arg, char **cpp, int *lenp); +@@ -336,7 +336,7 @@ void env_opt_add (unsigned char *); + void env_opt_end (int); + + unsigned char *env_default (int, int); +-unsigned char *env_getvalue (unsigned char *); ++unsigned char *env_getvalue (unsigned char *, int); + + int get_status (void); + int dosynch (void); +Index: usr.bin/telnet/telnet.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/telnet.c,v +retrieving revision 1.18 +retrieving revision 1.18.4.1 +diff -u -p -r1.18 -r1.18.4.1 +--- usr.bin/telnet/telnet.c 8 Nov 2003 19:17:29 -0000 1.18 ++++ usr.bin/telnet/telnet.c 29 Mar 2005 19:49:10 -0000 1.18.4.1 +@@ -446,7 +446,7 @@ dooption(option) + #endif + + case TELOPT_XDISPLOC: /* X Display location */ +- if (env_getvalue((unsigned char *)"DISPLAY")) ++ if (env_getvalue((unsigned char *)"DISPLAY", 0)) + new_state_ok = 1; + break; + +@@ -682,7 +682,7 @@ gettermname() + resettermname = 0; + if (tnamep && tnamep != unknown) + free(tnamep); +- if ((tname = (char *)env_getvalue((unsigned char *)"TERM")) && ++ if ((tname = (char *)env_getvalue((unsigned char *)"TERM", 0)) && + (setupterm(tname, 1, &errret) == OK)) { + tnamep = mklist(ttytype, tname); + } else { +@@ -859,7 +859,7 @@ suboption() + unsigned char temp[50], *dp; + int len; + +- if ((dp = env_getvalue((unsigned char *)"DISPLAY")) == NULL) { ++ if ((dp = env_getvalue((unsigned char *)"DISPLAY", 0)) == NULL) { + /* + * Something happened, we no longer have a DISPLAY + * variable. So, turn off the option. +@@ -1331,17 +1331,25 @@ slc_check() + } + + +-unsigned char slc_reply[128]; +-unsigned char *slc_replyp; ++static unsigned char slc_reply[2 * SUBBUFSIZE]; ++static unsigned char *slc_replyp; ++ ++ unsigned char ++slc_add(unsigned char ch) ++{ ++ if (slc_replyp == slc_reply + sizeof(slc_reply)) ++ return ch; ++ return *slc_replyp++ = ch; ++} + + void + slc_start_reply() + { + slc_replyp = slc_reply; +- *slc_replyp++ = IAC; +- *slc_replyp++ = SB; +- *slc_replyp++ = TELOPT_LINEMODE; +- *slc_replyp++ = LM_SLC; ++ slc_add(IAC); ++ slc_add(SB); ++ slc_add(TELOPT_LINEMODE); ++ slc_add(LM_SLC); + } + + void +@@ -1350,12 +1358,16 @@ slc_add_reply(func, flags, value) + unsigned char flags; + cc_t value; + { +- if ((*slc_replyp++ = func) == IAC) +- *slc_replyp++ = IAC; +- if ((*slc_replyp++ = flags) == IAC) +- *slc_replyp++ = IAC; +- if ((*slc_replyp++ = (unsigned char)value) == IAC) +- *slc_replyp++ = IAC; ++ if (slc_replyp + 6 >= slc_reply + sizeof(slc_reply)) { ++ printf("slc_add_reply: not enough room\n"); ++ return; ++ } ++ if (slc_add(func) == IAC) ++ slc_add(IAC); ++ if (slc_add(flags) == IAC) ++ slc_add(IAC); ++ if (slc_add((unsigned char)value) == IAC) ++ slc_add(IAC); + } + + void +@@ -1363,8 +1375,13 @@ slc_end_reply() + { + int len; + +- *slc_replyp++ = IAC; +- *slc_replyp++ = SE; ++ if (slc_replyp + 2 >= slc_reply + sizeof(slc_reply)) { ++ printf("slc_end_reply: not enough room\n"); ++ return; ++ } ++ ++ slc_add(IAC); ++ slc_add(SE); + len = slc_replyp - slc_reply; + if (len <= 6) + return; +@@ -1482,12 +1499,19 @@ env_opt(buf, len) + } + } + +-#define OPT_REPLY_SIZE 256 +-unsigned char *opt_reply; +-unsigned char *opt_replyp; +-unsigned char *opt_replyend; ++#define OPT_REPLY_SIZE (2 * SUBBUFSIZE) ++static unsigned char *opt_reply; ++static unsigned char *opt_replyp; ++static unsigned char *opt_replyend; + + void ++opt_add(unsigned char ch) ++{ ++ if (opt_replyp == opt_replyend) ++ return; ++ *opt_replyp++ = ch; ++} ++ void + env_opt_start() + { + unsigned char *p; +@@ -1506,10 +1530,10 @@ env_opt_start() + } + opt_replyp = opt_reply; + opt_replyend = opt_reply + OPT_REPLY_SIZE; +- *opt_replyp++ = IAC; +- *opt_replyp++ = SB; +- *opt_replyp++ = telopt_environ; +- *opt_replyp++ = TELQUAL_IS; ++ opt_add(IAC); ++ opt_add(SB); ++ opt_add(telopt_environ); ++ opt_add(TELQUAL_IS); + } + + void +@@ -1541,57 +1565,60 @@ env_opt_add(ep) + env_opt_add(ep); + return; + } +- vp = env_getvalue(ep); +- if (opt_replyp + (vp ? strlen((char *)vp) : 0) + +- strlen((char *)ep) + 6 > opt_replyend) ++ vp = env_getvalue(ep, 1); ++ if (opt_replyp + 2 * (vp ? strlen((char *)vp) : 0) + ++ 2 * strlen((char *)ep) + 6 > opt_replyend) + { +- int len; ++ size_t len; + unsigned char *p; +- opt_replyend += OPT_REPLY_SIZE; ++ + len = opt_replyend - opt_reply; ++ len += OPT_REPLY_SIZE + 2 * strlen(ep); ++ if (vp) ++ len += 2 * strlen(vp); + p = (unsigned char *)realloc(opt_reply, len); +- if (p == NULL) ++ if (p == NULL) { + free(opt_reply); +- opt_reply = p; +- if (opt_reply == NULL) { + /*@*/ printf("env_opt_add: realloc() failed!!!\n"); + opt_reply = opt_replyp = opt_replyend = NULL; + return; + } +- opt_replyp = opt_reply + len - (opt_replyend - opt_replyp); +- opt_replyend = opt_reply + len; ++ opt_replyp = p + (opt_replyp - opt_reply); ++ opt_replyend = p + len; ++ opt_reply = p; + } + if (opt_welldefined((char *)ep)) + #ifdef OLD_ENVIRON + if (telopt_environ == TELOPT_OLD_ENVIRON) +- *opt_replyp++ = old_env_var; ++ opt_add(old_env_var); + else + #endif +- *opt_replyp++ = NEW_ENV_VAR; ++ opt_add(NEW_ENV_VAR); + else +- *opt_replyp++ = ENV_USERVAR; ++ opt_add(ENV_USERVAR); ++ + for (;;) { + while ((c = *ep++)) { + switch(c&0xff) { + case IAC: +- *opt_replyp++ = IAC; ++ opt_add(IAC); + break; + case NEW_ENV_VAR: + case NEW_ENV_VALUE: + case ENV_ESC: + case ENV_USERVAR: +- *opt_replyp++ = ENV_ESC; ++ opt_add(ENV_ESC); + break; + } +- *opt_replyp++ = c; ++ opt_add(c); + } + if ((ep = vp)) { + #ifdef OLD_ENVIRON + if (telopt_environ == TELOPT_OLD_ENVIRON) +- *opt_replyp++ = old_env_value; ++ opt_add(old_env_value); + else + #endif +- *opt_replyp++ = NEW_ENV_VALUE; ++ opt_add(NEW_ENV_VALUE); + vp = NULL; + } else + break; +@@ -1619,8 +1646,8 @@ env_opt_end(emptyok) + + len = opt_replyp - opt_reply + 2; + if (emptyok || len > 6) { +- *opt_replyp++ = IAC; +- *opt_replyp++ = SE; ++ opt_add(IAC); ++ opt_add(SE); + if (NETROOM() > len) { + ring_supply_data(&netoring, opt_reply, len); + printsub('>', &opt_reply[2], len - 2); +@@ -2197,7 +2224,7 @@ telnet(user) + send_will(TELOPT_LINEMODE, 1); + send_will(TELOPT_NEW_ENVIRON, 1); + send_do(TELOPT_STATUS, 1); +- if (env_getvalue((unsigned char *)"DISPLAY")) ++ if (env_getvalue((unsigned char *)"DISPLAY", 0)) + send_will(TELOPT_XDISPLOC, 1); + if (binary) + tel_enter_binary(binary); diff --git a/source/n/telnet/telnet-OpenBSD-20020321.diff b/source/n/telnet/telnet-OpenBSD-20020321.diff new file mode 100644 index 000000000..f8b9c8293 --- /dev/null +++ b/source/n/telnet/telnet-OpenBSD-20020321.diff @@ -0,0 +1,70 @@ +--- ./telnet/commands.c.orig Thu Mar 21 20:27:13 2002 ++++ ./telnet/commands.c Thu Mar 21 20:27:42 2002 +@@ -2196,7 +2196,7 @@ + if (skiprc) + return; + +- strlcpy(m1save, m1, sizeof(m1save)); ++ strncpy(m1save, m1, sizeof(m1save)); + m1 = m1save; + + if (rcname[0] == 0) { +--- ./telnet/GNUmakefile.orig Thu Mar 21 20:22:45 2002 ++++ ./telnet/GNUmakefile Thu Mar 21 20:22:23 2002 +@@ -0,0 +1,34 @@ ++all: telnet ++ ++include ../MCONFIG ++include ../MRULES ++ ++ifeq ($(USE_GLIBC),1) ++CFLAGS += -D_GNU_SOURCE ++endif ++ ++#CFLAGS:=$(patsubst -O2, -g, $(CFLAGS)) ++ ++# -DAUTHENTICATE ++CFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE ++LIBS += $(LIBTERMCAP) ++ ++CFLAGS += -I../ ++ ++LIBTELNETOBJS = genget.o ++ ++OBJS = authenc.o commands.o main.o network.o ring.o sys_bsd.o telnet.o \ ++ terminal.o tn3270.o utilities.o $(LIBTELNETOBJS) ++ ++telnet: $(OBJS) ++ $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ ++install: telnet ++ install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) ++ install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1 ++ ++clean: ++ rm -f *.o telnet ++ ++genget.o: ../libtelnet/genget.c ++ $(CC) $(CFLAGS) $< -c +--- ./telnet/main.c.orig Thu Mar 21 20:27:27 2002 ++++ ./telnet/main.c Thu Mar 21 20:27:51 2002 +@@ -325,7 +325,7 @@ + break; + case 't': + #if defined(TN3270) && defined(unix) +- (void)strlcpy(tline, optarg, sizeof tline); ++ (void)strncpy(tline, optarg, sizeof tline); + transcom = tline; + #else + fprintf(stderr, +--- ./telnet/utilities.c.orig Thu Mar 21 20:27:22 2002 ++++ ./telnet/utilities.c Thu Mar 21 20:27:47 2002 +@@ -101,7 +101,7 @@ + if (file && (strcmp(file, "-") != 0)) { + NetTrace = fopen(file, "w"); + if (NetTrace) { +- strlcpy((char *)NetTraceFile, file, sizeof(NetTraceFile)); ++ strncpy((char *)NetTraceFile, file, sizeof(NetTraceFile)); + return; + } + fprintf(stderr, "Cannot open %s.\n", file); diff --git a/source/n/telnet/telnet.SlackBuild b/source/n/telnet/telnet.SlackBuild new file mode 100755 index 000000000..e1b182a27 --- /dev/null +++ b/source/n/telnet/telnet.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-telnet + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-telnet-$VERSION +tar xzvf $CWD/netkit-telnet-$VERSION.tar.gz +cd netkit-telnet-$VERSION +chown -R root:root . +zcat $CWD/netkit-telnet-0.17.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/netkit-telnet-0.17-ayt.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +./configure --prefix=/usr +cd telnetd +make +strip telnetd +mkdir -p $PKG/usr/sbin +cat telnetd > $PKG/usr/sbin/in.telnetd +chmod 755 $PKG/usr/sbin/in.telnetd +mkdir -p $PKG/usr/man/man8 +cat telnetd.8 | gzip -9c > $PKG/usr/man/man8/in.telnetd.8.gz +cd .. +# The OpenBSD version of the telnet client is superior. +rm -rf telnet +tar xzvf $CWD/telnet-OpenBSD-20020321.tar.gz +zcat $CWD/telnet-OpenBSD-20020321.diff.gz | patch -p1 --verbose || exit +zcat $CWD/telnet-OpenBSD-014_telnet.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +( cd telnet ; make ) +cd telnet +strip telnet +mkdir -p $PKG/bin +cat telnet > $PKG/bin/telnet +chmod 755 $PKG/bin/telnet +mkdir -p $PKG/usr/man/man1 +cat telnet.1 | gzip -9c > $PKG/usr/man/man1/telnet.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-telnet-$VERSION +cp -a README $PKG/usr/doc/netkit-telnet-$VERSION +chown root:root $PKG/usr/doc/netkit-telnet-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-telnet-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/telnet-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tftp-hpa/slack-desc b/source/n/tftp-hpa/slack-desc new file mode 100644 index 000000000..02aaa3d8f --- /dev/null +++ b/source/n/tftp-hpa/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tftp-hpa: tftp-hpa (Trivial File Transfer Protocol) +tftp-hpa: +tftp-hpa: The Trivial File Transfer Protocol (TFTP) is normally used only for +tftp-hpa: booting diskless workstations (or the Slackware installer). The tftp +tftp-hpa: package provides the user interface for TFTP, which allows users to +tftp-hpa: transfer files to and from a remote machine. This program and TFTP +tftp-hpa: provide very little security, and should not be enabled unless it is +tftp-hpa: expressly needed. +tftp-hpa: +tftp-hpa: tftp-hpa is maintained by H. Peter Anvin. +tftp-hpa: + diff --git a/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign b/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign new file mode 100644 index 000000000..0bc250608 --- /dev/null +++ b/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBFwHdCyGugalF9Dw4RArMGAJsGmXTId7KWtaaPU59qtvxfVqR2hACfV4pp +QP4kzEDqgKlRw3+FYQsQMvY= +=jnKl +-----END PGP SIGNATURE----- diff --git a/source/n/tftp-hpa/tftp-hpa.SlackBuild b/source/n/tftp-hpa/tftp-hpa.SlackBuild new file mode 100755 index 000000000..c73c882f1 --- /dev/null +++ b/source/n/tftp-hpa/tftp-hpa.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=0.48 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tftp-hpa + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tftp-hpa-$VERSION +tar xvf $CWD/tftp-hpa-$VERSION.tar.bz2 || exit 1 +cd tftp-hpa-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure --prefix=/usr +make $NUMJOBS || make || exit 1 + +cd tftp +strip --strip-unneeded tftp +mkdir -p $PKG/usr/bin +cat tftp > $PKG/usr/bin/tftp +chmod 755 $PKG/usr/bin/tftp +mkdir -p $PKG/usr/man/man{1,8} +cat tftp.1 | gzip -9c > $PKG/usr/man/man1/tftp.1.gz +cd ../tftpd +strip --strip-unneeded tftpd +mkdir -p $PKG/usr/sbin +cat tftpd > $PKG/usr/sbin/in.tftpd +chmod 755 $PKG/usr/sbin/in.tftpd +cat tftpd.8 | gzip -9c > $PKG/usr/man/man8/in.tftpd.8.gz +cd .. + +mkdir -p $PKG/usr/doc/tftp-hpa-$VERSION +cp -a \ + CHANGES INSTALL INSTALL.tftp README README.security \ + $PKG/usr/doc/tftp-hpa-$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tftp-hpa-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tin/slack-desc b/source/n/tin/slack-desc new file mode 100644 index 000000000..5479cbd26 --- /dev/null +++ b/source/n/tin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tin: tin (the Tin newsreader) +tin: +tin: Tin is a full-screen, easy-to-use Netnews reader. It can read news +tin: locally (i.e. /var/spool/news) or remotely (rtin or tin -r option) +tin: via a NNTP (Network News Transport Protocol) server. It will +tin: automatically utilize NOV (news overview) style index files if +tin: available locally or via the nntp xover command. +tin: +tin: Tin was written by Iain Lea <iain@ecrc.de> and is currently +tin: maintained by Urs Janssen <urs@tin.org>. +tin: diff --git a/source/n/tin/tin-1.8.2.tar.bz2.sign b/source/n/tin/tin-1.8.2.tar.bz2.sign new file mode 100644 index 000000000..29db525d8 --- /dev/null +++ b/source/n/tin/tin-1.8.2.tar.bz2.sign @@ -0,0 +1,9 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia + +iQCVAwUARE4WY1pJVQ60kLTRAQFBSwQA1TZP/EcytcgrNvOmpsRqmOX/LBL7Pqt8 +8aviolzsXypalr71LmTZRK1y9TtrGNioHde1B7MEYCTWsoUV4t6r87RdSE2dgU+E +/ieaHvTFOUK9vy8C3VmjvCm8rJGPNAnz7Pbh6xtpAmUIY9jKuPZ0et576gw4Fl1T +YoyxRSmzb2E= +=H2kb +-----END PGP MESSAGE----- diff --git a/source/n/tin/tin.SlackBuild b/source/n/tin/tin.SlackBuild new file mode 100755 index 000000000..1339dc37b --- /dev/null +++ b/source/n/tin/tin.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.8.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tin + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tin-$VERSION +tar xvf $CWD/tin-$VERSION.tar.bz2 || exit 1 +cd tin-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --with-metamail=/usr/bin/metamail \ + --with-ispell=/usr/bin/ispell \ + --with-defaults-dir=/etc/tin \ + --with-libdir=/var/lib/news \ + --with-ncurses +make clean +make build || exit 1 +make install DESTDIR=$PKG || exit 1 +make install_sysdefs DESTDIR=$PKG || exit 1 + +cat << EOF > $PKG/etc/tin/README + +To complete TIN setup, edit /etc/nntpserver to the name of your NNTP server, +then edit tin.defaults to set your domain name (and other options). + +Happy newsreading! :^) + +EOF + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/tin-$VERSION +cp -a \ + README doc/* tools \ + $PKG/usr/doc/tin-$VERSION +( cd $PKG/usr/doc/tin-$VERSION + rm -f CHANGES.old *.1 *.3 *.5 +) +# Clutter reduction (these are in the tools dir) +rm -f $PKG/usr/bin/metamutt \ + $PKG/usr/bin/opt-case.pl \ + $PKG/usr/bin/url_handler.sh \ + $PKG/usr/bin/w2r.pl +chmod 644 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man1 + mv opt-case.pl.1 w2r.pl.1 $PKG/usr/doc/tin-$VERSION/tools +) +gzip -9 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man1 + rm -f *.1 + ln -sf tin.1.gz rtin.1.gz +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tin-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/traceroute/slack-desc b/source/n/traceroute/slack-desc new file mode 100644 index 000000000..864112fec --- /dev/null +++ b/source/n/traceroute/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +traceroute: traceroute (IP packet route tracing utility) +traceroute: +traceroute: The traceroute utility displays the route used by IP packets on their +traceroute: way to a specified network host. Traceroute will display the IP +traceroute: number and host name (if possible) of all the machines along the route +traceroute: taken by the packets. If you're having network connectivity problems, +traceroute: traceroute can show you where the trouble is located. +traceroute: +traceroute: +traceroute: +traceroute: diff --git a/source/n/traceroute/traceroute.SlackBuild b/source/n/traceroute/traceroute.SlackBuild new file mode 100755 index 000000000..b687a436e --- /dev/null +++ b/source/n/traceroute/traceroute.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.4a12 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-traceroute + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf traceroute-$VERSION +tar xvf $CWD/traceroute-$VERSION.tar.gz || exit 1 +cd traceroute-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/traceroute_$VERSION-5.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/traceroute.no.domain.strip.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +CFLAGS="$SLKCFLAGS -Ilinux-include" ./configure --prefix=/usr +make $NUMJOBS || make || exit 1 + +strip traceroute +mkdir -p $PKG/usr/bin +cat traceroute > $PKG/usr/bin/traceroute +chmod 4711 $PKG/usr/bin/traceroute + +mkdir -p $PKG/usr/man/man8 +gzip -9c traceroute.8 > $PKG/usr/man/man8/traceroute.8.gz + +mkdir -p $PKG/usr/doc/traceroute-$VERSION +cp -a \ + CHANGES FILES INSTALL README VERSION \ + $PKG/usr/doc/traceroute-$VERSION +chmod 644 $PKG/usr/doc/traceroute-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/traceroute-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/traceroute/traceroute.no.domain.strip.diff b/source/n/traceroute/traceroute.no.domain.strip.diff new file mode 100644 index 000000000..a9af38933 --- /dev/null +++ b/source/n/traceroute/traceroute.no.domain.strip.diff @@ -0,0 +1,30 @@ +--- traceroute-1.4a12.orig/traceroute.c Tue Feb 4 11:01:05 2003 ++++ traceroute-1.4a12/traceroute.c Tue Feb 4 11:09:17 2003 +@@ -1297,8 +1297,10 @@ + register char *cp; + register struct hostent *hp; + static int first = 1; +- static char domain[MAXHOSTNAMELEN + 1], line[MAXHOSTNAMELEN + 1]; ++/* static char domain[MAXHOSTNAMELEN + 1]; */ ++ static char line[MAXHOSTNAMELEN + 1]; + ++/* + if (first && !nflag) { + first = 0; + if (gethostname(domain, sizeof(domain) - 1) < 0) +@@ -1319,12 +1321,15 @@ + } + } + } ++*/ + if (!nflag && in.s_addr != INADDR_ANY) { + hp = gethostbyaddr((char *)&in, sizeof(in), AF_INET); + if (hp != NULL) { ++/* + if ((cp = strchr(hp->h_name, '.')) != NULL && + strcmp(cp + 1, domain) == 0) + *cp = '\0'; ++*/ + (void)strncpy(line, hp->h_name, sizeof(line) - 1); + line[sizeof(line) - 1] = '\0'; + return (line); diff --git a/source/n/traceroute/traceroute_1.4a12-5.diff b/source/n/traceroute/traceroute_1.4a12-5.diff new file mode 100644 index 000000000..8cf3d1fe1 --- /dev/null +++ b/source/n/traceroute/traceroute_1.4a12-5.diff @@ -0,0 +1,1152 @@ +--- traceroute-1.4a12.orig/aclocal.m4 ++++ traceroute-1.4a12/aclocal.m4 +@@ -47,7 +47,7 @@ + AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) + AC_BEFORE([$0], [AC_LBL_DEVEL]) + AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) +- $1="-O" ++ $1="-g -O" + $2="" + if test "${srcdir}" != "." ; then + $2="-I\$\(srcdir\)" +@@ -677,12 +677,11 @@ + AC_TRY_LINK(dnl + ifelse([$2], [main], , dnl Avoid conflicting decl of main. + [/* Override any gcc2 internal prototype to avoid an error. */ +-]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus ++#ifdef __cplusplus + extern "C" + #endif +-])dnl +-[/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ + char $2(); + ]), + [$2()], +--- traceroute-1.4a12.orig/configure.in ++++ traceroute-1.4a12/configure.in +@@ -22,7 +22,7 @@ + net/if_dl.h inet/mib2.h) + + AC_REPLACE_FUNCS(strerror usleep) +-AC_CHECK_FUNCS(setlinebuf) ++AC_CHECK_FUNCS(setlinebuf snprintf) + if test $ac_cv_func_usleep = "no" ; then + AC_CHECK_FUNCS(nanosleep) + fi +@@ -44,8 +44,9 @@ + ;; + + linux*) +- V_INCLS="$V_INCLS -Ilinux-include" ++ V_INCLS="$V_INCLS -Ilinux-include -DUSE_KERNEL_ROUTING_TABLE" + AC_DEFINE(BYTESWAP_IP_HDR) ++ AC_DEFINE(HAVE_RAW_OPTIONS) + ;; + + osf3*) +--- traceroute-1.4a12.orig/findsaddr-generic.c ++++ traceroute-1.4a12/findsaddr-generic.c +@@ -82,7 +82,11 @@ + static char errbuf[132]; + + /* Get the interface address list */ ++#if HAVE_SNPRINTF ++ if ((n = ifaddrlist(&al, errbuf, sizeof(errbuf))) < 0) ++#else + if ((n = ifaddrlist(&al, errbuf)) < 0) ++#endif + return (errbuf); + + if (n == 0) +--- traceroute-1.4a12.orig/findsaddr-linux.c ++++ traceroute-1.4a12/findsaddr-linux.c +@@ -90,7 +90,11 @@ + static char errbuf[132]; + + if ((f = fopen(route, "r")) == NULL) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "open %s: %.128s", route, strerror(errno)); ++#else + sprintf(errbuf, "open %s: %.128s", route, strerror(errno)); ++#endif + return (errbuf); + } + +@@ -102,7 +106,7 @@ + ++n; + if (n == 1 && strncmp(buf, "Iface", 5) == 0) + continue; +- if ((i = sscanf(buf, "%s %x %*s %*s %*s %*s %*s %x", ++ if ((i = sscanf(buf, "%255s %x %*s %*s %*s %*s %*s %x", + tdevice, &dest, &tmask)) != 3) + return ("junk in buffer"); + if ((to->sin_addr.s_addr & tmask) == dest && +@@ -117,7 +121,11 @@ + return ("Can't find interface"); + + /* Get the interface address list */ ++#if HAVE_SNPRINTF ++ if ((n = ifaddrlist(&al, errbuf, sizeof(errbuf))) < 0) ++#else + if ((n = ifaddrlist(&al, errbuf)) < 0) ++#endif + return (errbuf); + + if (n == 0) +@@ -128,7 +136,11 @@ + if (strcmp(device, al->device) == 0) + break; + if (i <= 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "Can't find interface \"%.32s\"", device); ++#else + sprintf(errbuf, "Can't find interface \"%.32s\"", device); ++#endif + return (errbuf); + } + +--- traceroute-1.4a12.orig/findsaddr-socket.c ++++ traceroute-1.4a12/findsaddr-socket.c +@@ -114,7 +114,11 @@ + + s = socket(PF_ROUTE, SOCK_RAW, AF_UNSPEC); + if (s < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "socket: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "socket: %.128s", strerror(errno)); ++#endif + return (errbuf); + } + +@@ -134,12 +138,20 @@ + + cc = write(s, (char *)rp, size); + if (cc < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "write: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "write: %.128s", strerror(errno)); ++#endif + close(s); + return (errbuf); + } + if (cc != size) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "short write (%d != %d)", cc, size); ++#else + sprintf(errbuf, "short write (%d != %d)", cc, size); ++#endif + close(s); + return (errbuf); + } +@@ -149,7 +161,11 @@ + memset(rp, 0, size); + cc = read(s, (char *)rp, size); + if (cc < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "read: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "read: %.128s", strerror(errno)); ++#endif + close(s); + return (errbuf); + } +@@ -159,15 +175,27 @@ + + + if (rp->rtm_version != RTM_VERSION) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "bad version %d", rp->rtm_version); ++#else + sprintf(errbuf, "bad version %d", rp->rtm_version); ++#endif + return (errbuf); + } + if (rp->rtm_msglen > cc) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "bad msglen %d > %d", rp->rtm_msglen, cc); ++#else + sprintf(errbuf, "bad msglen %d > %d", rp->rtm_msglen, cc); ++#endif + return (errbuf); + } + if (rp->rtm_errno != 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "rtm_errno: %.128s", strerror(rp->rtm_errno)); ++#else + sprintf(errbuf, "rtm_errno: %.128s", strerror(rp->rtm_errno)); ++#endif + return (errbuf); + } + +--- traceroute-1.4a12.orig/ifaddrlist.c ++++ traceroute-1.4a12/ifaddrlist.c +@@ -72,7 +72,12 @@ + * Return the interface list + */ + int ++#if HAVE_SNPRINTF ++ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf, ++ size_t nerrbuf) ++#else + ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf) ++#endif + { + register int fd, nipaddr; + #ifdef HAVE_SOCKADDR_SA_LEN +@@ -89,7 +94,11 @@ + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "socket: %s", strerror(errno)); ++#else + (void)sprintf(errbuf, "socket: %s", strerror(errno)); ++#endif + return (-1); + } + ifc.ifc_len = sizeof(ibuf); +@@ -98,12 +107,23 @@ + if (ioctl(fd, SIOCGIFCONF, (char *)&ifc) < 0 || + ifc.ifc_len < sizeof(struct ifreq)) { + if (errno == EINVAL) ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, ++ "SIOCGIFCONF: ifreq struct too small (%d bytes)", ++ sizeof(ibuf)); ++#else + (void)sprintf(errbuf, + "SIOCGIFCONF: ifreq struct too small (%d bytes)", + sizeof(ibuf)); ++#endif + else ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFCONF: %s", ++ strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFCONF: %s", + strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } +@@ -135,9 +155,15 @@ + if (ioctl(fd, SIOCGIFFLAGS, (char *)&ifr) < 0) { + if (errno == ENXIO) + continue; ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFFLAGS: %.*s: %s", ++ (int)sizeof(ifr.ifr_name), ifr.ifr_name, ++ strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFFLAGS: %.*s: %s", + (int)sizeof(ifr.ifr_name), ifr.ifr_name, + strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } +@@ -155,21 +181,35 @@ + continue; + #endif + if (ioctl(fd, SIOCGIFADDR, (char *)&ifr) < 0) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFADDR: %s: %s", ++ device, strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFADDR: %s: %s", + device, strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } + + if (nipaddr >= MAX_IPADDR) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "Too many interfaces (%d)", ++ MAX_IPADDR); ++#else + (void)sprintf(errbuf, "Too many interfaces (%d)", + MAX_IPADDR); ++#endif + (void)close(fd); + return (-1); + } + sin = (struct sockaddr_in *)&ifr.ifr_addr; + al->addr = sin->sin_addr.s_addr; + al->device = strdup(device); ++ if (al->device == NULL) { ++ fputs("ifaddrlist: strdup\n", stderr); ++ exit(1); ++ } + ++al; + ++nipaddr; + } +--- traceroute-1.4a12.orig/ifaddrlist.h ++++ traceroute-1.4a12/ifaddrlist.h +@@ -26,4 +26,8 @@ + char *device; + }; + ++#if HAVE_SNPRINTF ++int ifaddrlist(struct ifaddrlist **, char *, size_t); ++#else + int ifaddrlist(struct ifaddrlist **, char *); ++#endif +--- traceroute-1.4a12.orig/traceroute.8 ++++ traceroute-1.4a12/traceroute.8 +@@ -23,7 +23,7 @@ + .na + .B traceroute + [ +-.B \-dFInrvx ++.B \-dFIlnrvx + ] [ + .B \-f + .I first_ttl +@@ -110,6 +110,10 @@ + .B \-I + Use ICMP ECHO instead of UDP datagrams. + .TP ++.B \-l ++Display the ttl value of the returned packet. This is useful for ++checking for assymetric routing. ++.TP + .B \-m + Set the max time-to-live (max number of hops) used in outgoing probe + packets. The default is 30 hops (the same default used for TCP +@@ -146,9 +150,8 @@ + multi-homed hosts (those with more than one IP + address), this option can be used to + force the source address to be something other than the IP address +-of the interface the probe packet is sent on. If the IP address +-is not one of this machine's interface addresses, an error is +-returned and nothing is sent. (See the ++of the interface the probe packet is sent on. This option can only ++be used by the super-user. (See the + .B \-i + flag for another way to do this.) + .TP +@@ -329,6 +332,9 @@ + or + .B !P + (host, network or protocol unreachable), ++.BR !A , ++.BR !C ++(access to the network or host, respectively, is prohibited), + .B !S + (source route failed), + .B !F\-<pmtu> +--- traceroute-1.4a12.orig/traceroute.c ++++ traceroute-1.4a12/traceroute.c +@@ -271,7 +271,7 @@ + struct outdata { + u_char seq; /* sequence number of this packet */ + u_char ttl; /* ttl packet left with */ +- struct timeval tv; /* time packet left */ ++ struct timeval tv __attribute__((packed)); /* time packet left */ + }; + + #ifndef HAVE_ICMP_NEXTMTU +@@ -296,8 +296,8 @@ + int s; /* receive (icmp) socket file descriptor */ + int sndsock; /* send (udp/icmp) socket file descriptor */ + +-struct sockaddr whereto; /* Who to try to reach */ +-struct sockaddr wherefrom; /* Who we are */ ++struct sockaddr_storage whereto; /* Who to try to reach */ ++struct sockaddr_storage wherefrom; /* Who we are */ + int packlen; /* total length of packet */ + int minpacket; /* min ip packet size */ + int maxpacket = 32 * 1024; /* max ip packet size */ +@@ -352,6 +352,11 @@ + int usleep(u_int); + #endif + ++#ifdef USE_KERNEL_ROUTING_TABLE ++struct ifaddrlist *search_routing_table(struct sockaddr_in *to, struct ifaddrlist *al, int n); ++#endif ++ ++ + int + main(int argc, char **argv) + { +@@ -370,8 +375,12 @@ + int tos = 0, settos = 0; + register int lsrr = 0; + register u_short off = 0; +- struct ifaddrlist *al; ++ struct ifaddrlist *al, *allist; + char errbuf[132]; ++ int ttl_flag = 0; ++ int uid; ++ ++ uid = getuid(); + + if (argv[0] == NULL) + prog = "traceroute"; +@@ -381,7 +390,7 @@ + prog = argv[0]; + + opterr = 0; +- while ((op = getopt(argc, argv, "dFInrvxf:g:i:m:p:q:s:t:w:z:")) != EOF) ++ while ((op = getopt(argc, argv, "dFIlnrvxf:g:i:m:p:q:s:t:w:z:")) != EOF) + switch (op) { + + case 'd': +@@ -397,6 +406,10 @@ + break; + + case 'g': ++ if (strlen(optarg) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice Try !\n", prog); ++ exit(-1); ++ } + if (lsrr >= NGATEWAYS) { + Fprintf(stderr, + "%s: No more than %d gateways\n", +@@ -409,12 +422,21 @@ + + case 'i': + device = optarg; ++ if (strlen(device) >= 16) { /* that is the IFNAMSIZ ++ * from kernel headers */ ++ Fprintf(stderr, "%s: Nice try !\n", prog); ++ exit(-1); ++ } + break; + + case 'I': + ++useicmp; + break; + ++ case 'l': ++ ++ttl_flag; ++ break; ++ + case 'm': + max_ttl = str2val(optarg, "max ttl", 1, 255); + break; +@@ -441,7 +463,19 @@ + * set the ip source address of the outbound + * probe (e.g., on a multi-homed host). + */ ++ if (uid) { ++ Fprintf( ++ stderr, ++ "%s: -s %s: Permission denied\n", ++ prog, optarg ++ ); ++ exit(-1); ++ } + source = optarg; ++ if (strlen(source) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice Try !\n", prog); ++ exit(-1); ++ } + break; + + case 't': +@@ -500,6 +534,10 @@ + + case 1: + hostname = argv[optind]; ++ if (strlen(hostname) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice try !\n", prog); ++ exit(-1); ++ } + hi = gethostinfo(hostname); + setsin(to, hi->addrs[0]); + if (hi->n > 1) +@@ -515,75 +553,6 @@ + usage(); + } + +-#ifdef HAVE_SETLINEBUF +- setlinebuf (stdout); +-#else +- setvbuf(stdout, NULL, _IOLBF, 0); +-#endif +- +- outip = (struct ip *)malloc((unsigned)packlen); +- if (outip == NULL) { +- Fprintf(stderr, "%s: malloc: %s\n", prog, strerror(errno)); +- exit(1); +- } +- memset((char *)outip, 0, packlen); +- +- outip->ip_v = IPVERSION; +- if (settos) +- outip->ip_tos = tos; +-#ifdef BYTESWAP_IP_HDR +- outip->ip_len = htons(packlen); +- outip->ip_off = htons(off); +-#else +- outip->ip_len = packlen; +- outip->ip_off = off; +-#endif +- outp = (u_char *)(outip + 1); +-#ifdef HAVE_RAW_OPTIONS +- if (lsrr > 0) { +- register u_char *optlist; +- +- optlist = outp; +- outp += optlen; +- +- /* final hop */ +- gwlist[lsrr] = to->sin_addr.s_addr; +- +- outip->ip_dst.s_addr = gwlist[0]; +- +- /* force 4 byte alignment */ +- optlist[0] = IPOPT_NOP; +- /* loose source route option */ +- optlist[1] = IPOPT_LSRR; +- i = lsrr * sizeof(gwlist[0]); +- optlist[2] = i + 3; +- /* Pointer to LSRR addresses */ +- optlist[3] = IPOPT_MINOFF; +- memcpy(optlist + 4, gwlist + 1, i); +- } else +-#endif +- outip->ip_dst = to->sin_addr; +- +- outip->ip_hl = (outp - (u_char *)outip) >> 2; +- ident = (getpid() & 0xffff) | 0x8000; +- if (useicmp) { +- outip->ip_p = IPPROTO_ICMP; +- +- outicmp = (struct icmp *)outp; +- outicmp->icmp_type = ICMP_ECHO; +- outicmp->icmp_id = htons(ident); +- +- outdata = (struct outdata *)(outp + 8); /* XXX magic number */ +- } else { +- outip->ip_p = IPPROTO_UDP; +- +- outudp = (struct udphdr *)outp; +- outudp->uh_sport = htons(ident); +- outudp->uh_ulen = +- htons((u_short)(packlen - (sizeof(*outip) + optlen))); +- outdata = (struct outdata *)(outudp + 1); +- } +- + cp = "icmp"; + if ((pe = getprotobyname(cp)) == NULL) { + Fprintf(stderr, "%s: unknown protocol %s\n", prog, cp); +@@ -591,12 +560,15 @@ + } + + /* Insure the socket fds won't be 0, 1 or 2 */ +- if (open(devnull, O_RDONLY) < 0 || +- open(devnull, O_RDONLY) < 0 || +- open(devnull, O_RDONLY) < 0) { +- Fprintf(stderr, "%s: open \"%s\": %s\n", +- prog, devnull, strerror(errno)); +- exit(1); ++ do { ++ if ((n = open(devnull, O_RDONLY)) < 0) { ++ Fprintf(stderr, "%s: open \"%s\": %s\n", ++ prog, devnull, strerror(errno)); ++ exit(1); ++ } ++ } while (n < 2); ++ if (n > 2) { ++ close(n); + } + if ((s = socket(AF_INET, SOCK_RAW, pe->p_proto)) < 0) { + Fprintf(stderr, "%s: icmp socket: %s\n", prog, strerror(errno)); +@@ -662,7 +634,7 @@ + #endif + #ifdef IP_HDRINCL + if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on, +- sizeof(on)) < 0) { ++ sizeof(on)) < 0 && errno != ENOPROTOOPT) { + Fprintf(stderr, "%s: IP_HDRINCL: %s\n", prog, strerror(errno)); + exit(1); + } +@@ -683,8 +655,88 @@ + (void)setsockopt(sndsock, SOL_SOCKET, SO_DONTROUTE, (char *)&on, + sizeof(on)); + ++ /* Revert to non-privileged user after opening sockets */ ++ setgid(getgid()); ++ setuid(uid); ++ ++#ifndef __GLIBC__ ++#ifdef HAVE_SETLINEBUF ++ setlinebuf (stdout); ++#else ++ setvbuf(stdout, NULL, _IOLBF, 0); ++#endif ++#endif ++ ++ outip = (struct ip *)malloc((unsigned)packlen); ++ if (outip == NULL) { ++ Fprintf(stderr, "%s: malloc: %s\n", prog, strerror(errno)); ++ exit(1); ++ } ++ memset((char *)outip, 0, packlen); ++ ++ outip->ip_v = IPVERSION; ++ if (settos) ++ outip->ip_tos = tos; ++#ifdef BYTESWAP_IP_HDR ++ outip->ip_len = htons(packlen); ++ outip->ip_off = htons(off); ++#else ++ outip->ip_len = packlen; ++ outip->ip_off = off; ++#endif ++ outp = (u_char *)(outip + 1); ++#ifdef HAVE_RAW_OPTIONS ++ if (lsrr > 0) { ++ register u_char *optlist; ++ ++ optlist = outp; ++ outp += optlen; ++ ++ /* final hop */ ++ gwlist[lsrr] = to->sin_addr.s_addr; ++ ++ outip->ip_dst.s_addr = gwlist[0]; ++ ++ /* force 4 byte alignment */ ++ optlist[0] = IPOPT_NOP; ++ /* loose source route option */ ++ optlist[1] = IPOPT_LSRR; ++ i = lsrr * sizeof(gwlist[0]); ++ optlist[2] = i + 3; ++ /* Pointer to LSRR addresses */ ++ optlist[3] = IPOPT_MINOFF; ++ memcpy(optlist + 4, gwlist + 1, i); ++ } else ++#endif ++ outip->ip_dst = to->sin_addr; ++ ++ outip->ip_hl = (outp - (u_char *)outip) >> 2; ++ ident = (getpid() & 0xffff) | 0x8000; ++ if (useicmp) { ++ outip->ip_p = IPPROTO_ICMP; ++ ++ outicmp = (struct icmp *)outp; ++ outicmp->icmp_type = ICMP_ECHO; ++ outicmp->icmp_id = htons(ident); ++ ++ outdata = (struct outdata *)(outp + 8); /* XXX magic number */ ++ } else { ++ outip->ip_p = IPPROTO_UDP; ++ ++ outudp = (struct udphdr *)outp; ++ outudp->uh_sport = htons(ident); ++ outudp->uh_ulen = ++ htons((u_short)(packlen - (sizeof(*outip) + optlen))); ++ outdata = (struct outdata *)(outudp + 1); ++ } ++ + /* Get the interface address list */ +- n = ifaddrlist(&al, errbuf); ++#if HAVE_SNPRINTF ++ n = ifaddrlist(&allist, errbuf, sizeof(errbuf)); ++#else ++ n = ifaddrlist(&allist, errbuf); ++#endif ++ al = allist; + if (n < 0) { + Fprintf(stderr, "%s: ifaddrlist: %s\n", prog, errbuf); + exit(1); +@@ -709,6 +761,15 @@ + + /* Determine our source address */ + if (source == NULL) { ++#ifdef USE_KERNEL_ROUTING_TABLE ++ /* Search the kernel routing table for a match with the ++ * destination address. Then use that interface. If ++ * there is no match, default to using the first ++ * interface found. ++ */ ++ al = search_routing_table(to, allist, n); ++ setsin(from, al->addr); ++#else + /* + * If a device was specified, use the interface address. + * Otherwise, try to determine our source address. +@@ -720,6 +781,7 @@ + prog, err); + exit(1); + } ++#endif + } else { + hi = gethostinfo(source); + source = hi->name; +@@ -751,10 +813,6 @@ + freehostinfo(hi); + } + +- /* Revert to non-privileged user after opening sockets */ +- setgid(getgid()); +- setuid(getuid()); +- + outip->ip_src = from->sin_addr; + #ifndef IP_HDRINCL + if (bind(sndsock, (struct sockaddr *)from, sizeof(*from)) < 0) { +@@ -803,9 +861,11 @@ + ++gotlastaddr; + } + Printf(" %.3f ms", deltaT(&t1, &t2)); ++ ip = (struct ip *)packet; ++ if (ttl_flag) ++ Printf(" (%d)", ip->ip_ttl); + if (i == -2) { + #ifndef ARCHAIC +- ip = (struct ip *)packet; + if (ip->ip_ttl <= 1) + Printf(" !"); + #endif +@@ -820,7 +880,6 @@ + + case ICMP_UNREACH_PORT: + #ifndef ARCHAIC +- ip = (struct ip *)packet; + if (ip->ip_ttl <= 1) + Printf(" !"); + #endif +@@ -853,8 +912,14 @@ + break; + + case ICMP_UNREACH_FILTER_PROHIB: ++ case ICMP_UNREACH_NET_PROHIB: /* misuse */ ++ ++unreachable; ++ Printf(" !A"); ++ break; ++ ++ case ICMP_UNREACH_HOST_PROHIB: + ++unreachable; +- Printf(" !X"); ++ Printf(" !C"); + break; + + case ICMP_UNREACH_HOST_PRECEDENCE: +@@ -867,6 +932,23 @@ + Printf(" !C"); + break; + ++ case ICMP_UNREACH_NET_UNKNOWN: ++ case ICMP_UNREACH_HOST_UNKNOWN: ++ ++unreachable; ++ Printf(" !U"); ++ break; ++ ++ case ICMP_UNREACH_ISOLATED: ++ ++unreachable; ++ Printf(" !I"); ++ break; ++ ++ case ICMP_UNREACH_TOSNET: ++ case ICMP_UNREACH_TOSHOST: ++ ++unreachable; ++ Printf(" !T"); ++ break; ++ + default: + ++unreachable; + Printf(" !<%d>", code); +@@ -894,7 +976,7 @@ + struct timeval now, wait; + struct timezone tz; + register int cc = 0; +- int fromlen = sizeof(*fromp); ++ socklen_t fromlen = sizeof(*fromp); + + FD_ZERO(&fds); + FD_SET(sock, &fds); +@@ -938,7 +1020,7 @@ + /* Payload */ + outdata->seq = seq; + outdata->ttl = ttl; +- outdata->tv = *tp; ++ memcpy(&outdata->tv, tp, sizeof(outdata->tv)); + + if (useicmp) + outicmp->icmp_seq = htons(seq); +@@ -1003,12 +1085,13 @@ + + #ifdef __hpux + cc = sendto(sndsock, useicmp ? (char *)outicmp : (char *)outudp, +- packlen - (sizeof(*outip) + optlen), 0, &whereto, sizeof(whereto)); ++ packlen - (sizeof(*outip) + optlen), 0, ++ (struct sockaddr *)&whereto, sizeof(whereto)); + if (cc > 0) + cc += sizeof(*outip) + optlen; + #else + cc = sendto(sndsock, (char *)outip, +- packlen, 0, &whereto, sizeof(whereto)); ++ packlen, 0, (struct sockaddr *)&whereto, sizeof(whereto)); + #endif + if (cc < 0 || cc != packlen) { + if (cc < 0) +@@ -1039,12 +1122,12 @@ + static char *ttab[] = { + "Echo Reply", "ICMP 1", "ICMP 2", "Dest Unreachable", + "Source Quench", "Redirect", "ICMP 6", "ICMP 7", +- "Echo", "ICMP 9", "ICMP 10", "Time Exceeded", ++ "Echo", "Router Advert", "Router Solicit", "Time Exceeded", + "Param Problem", "Timestamp", "Timestamp Reply", "Info Request", +- "Info Reply" ++ "Info Reply", "Mask Request", "Mask Reply" + }; + +- if (t > 16) ++ if (t > 18) + return("OUT-OF-RANGE"); + + return(ttab[t]); +@@ -1272,6 +1355,11 @@ + addr = inet_addr(hostname); + if ((int32_t)addr != -1) { + hi->name = strdup(hostname); ++ if (hi->name == NULL) { ++ Fprintf(stderr, "%s: strdup %s\n", ++ prog, strerror(errno)); ++ exit(1); ++ } + hi->n = 1; + hi->addrs = calloc(1, sizeof(hi->addrs[0])); + if (hi->addrs == NULL) { +@@ -1293,6 +1381,11 @@ + exit(1); + } + hi->name = strdup(hp->h_name); ++ if (hi->name == NULL) { ++ Fprintf(stderr, "%s: strdup %s\n", ++ prog, strerror(errno)); ++ exit(1); ++ } + for (n = 0, p = hp->h_addr_list; *p != NULL; ++n, ++p) + continue; + hi->n = n; +@@ -1381,8 +1474,96 @@ + + Fprintf(stderr, "Version %s\n", version); + Fprintf(stderr, +- "Usage: %s [-dFInrvx] [-g gateway] [-i iface] [-f first_ttl]\n" ++ "Usage: %s [-dFIlnrvx] [-g gateway] [-i iface] [-f first_ttl]\n" + "\t[-m max_ttl] [ -p port] [-q nqueries] [-s src_addr] [-t tos]\n" + "\t[-w waittime] [-z pausemsecs] host [packetlen]\n", prog); + exit(1); + } ++ ++ ++#ifdef USE_KERNEL_ROUTING_TABLE ++ ++/* This function currently only supports IPv4. Someone who knows ++ * more about multi-protocol socket stuff should take a look at this. ++ * ++ * (But does it make any sense for traceroute to support other ++ * protocols? Maybe IPv6... ++ */ ++ ++struct ifaddrlist *search_routing_table(struct sockaddr_in *to, struct ifaddrlist *al, int n) ++{ ++ struct ifaddrlist *first_if; ++ FILE *fp; ++ char buf[1024]; ++ char ifname[128]; ++ unsigned int route_dest; ++ unsigned int mask; ++ char best_name[128]; ++ unsigned int best_mask; ++ unsigned int dest_addr; ++ unsigned int convs; ++ ++ /* How come using ntohl(to->sin_addr.s_addr) doesn't work here? */ ++ dest_addr = to->sin_addr.s_addr; ++ ++ fp = fopen("/proc/net/route", "r"); ++ if (fp == NULL) { ++ return al; ++ } ++ ++ /* Skip the first line (the column headings) */ ++ if (fgets(buf, sizeof(buf), fp) == NULL) { ++ fclose(fp); ++ return al; ++ } ++ ++ best_name[0] = '\0'; ++ best_mask = 0; ++ ++ while (fgets(buf, sizeof(buf), fp) != NULL) { ++ /* Field 1: interface name ++ * Field 2: dest addr ++ * Field 8: genmask ++ */ ++ convs = sscanf(buf, "%127s %x %*s %*s %*s %*s %*s %x", ++ ifname, &route_dest, &mask); ++ if (convs != 3) { ++ /* format error .... */ ++ fclose(fp); ++ return al; ++ } ++ ++ if ((dest_addr & mask) == route_dest) { ++ /* This routing entry applies to ++ * our destination addr ++ */ ++ if ((mask > best_mask) || (best_mask == 0)) { ++ /* And it is more specific than any ++ * previous match (or is the first match) ++ */ ++ best_mask = mask; ++ strncpy(best_name, ifname, ++ sizeof(best_name) - 1); ++ best_name[sizeof(best_name) - 1] = 0; ++ } ++ } ++ } ++ ++ fclose(fp); ++ ++ /* If we don't find a match, we'll return the first entry */ ++ first_if = al; ++ ++ while (al < first_if + n) { ++ if (strcmp(best_name, al->device) == 0) { ++ /* Got a match */ ++ return al; ++ } ++ al++; ++ } ++ ++ return first_if; ++} ++ ++#endif ++ +--- traceroute-1.4a12.orig/debian/changelog ++++ traceroute-1.4a12/debian/changelog +@@ -0,0 +1,63 @@ ++traceroute (1.4a12-5) unstable; urgency=low ++ ++ * Restrict the -s option to the super-user. ++ * Updated documentation for the -s option (closes: #105362). ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 16 Jul 2001 19:28:45 +1000 ++ ++traceroute (1.4a12-4) unstable; urgency=low ++ ++ * Updated aclocal.m4 for autoconf 2.50 (closes: #98367). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 23 May 2001 18:48:59 +1000 ++ ++traceroute (1.4a12-3) unstable; urgency=low ++ ++ * Drop privileges earlier. ++ * Applied "paranoia" patch from Richard Kettlewell (closes: #85619). ++ - eliminate unbounded sprintf calls ++ - eliminate unbounded sscanf calls ++ - strncpy final-null paranoia ++ * Set HAVE_RAW_OPTIONS (closes: #78475). ++ * Added missing option to usage (Neale Banks, closes: #88892). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 9 Mar 2001 22:24:11 +1100 ++ ++traceroute (1.4a12-2) unstable; urgency=low ++ ++ * Made changes for dpkg-statoverride (closes: #83817). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 28 Jan 2001 21:49:35 +1100 ++ ++traceroute (1.4a12-1) unstable; urgency=low ++ ++ * New upstream release (closes: #79920, #81395). ++ * Use struct sockaddr_stroage (closes: #79348). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 26 Jan 2001 20:57:21 +1100 ++ ++traceroute (1.4a8-1) unstable; urgency=low ++ ++ * New upstream release. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 9 Dec 2000 14:18:00 +1100 ++ ++traceroute (1.4a5-3) stable unstable; urgency=low ++ ++ * Fixed a bug where free(3) was called on non-malloced memory. ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 24 Aug 2000 20:44:51 +1000 ++ ++traceroute (1.4a5-2) frozen unstable; urgency=low ++ ++ * Use config.* from automake, needed for building traceroute on ARM ++ (closes: #61267). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 31 Mar 2000 07:50:33 +1000 ++ ++traceroute (1.4a5-1) unstable; urgency=low ++ ++ * Initial release (closes: #34166). ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 1 Nov 1999 15:11:06 +1100 ++ +--- traceroute-1.4a12.orig/debian/control ++++ traceroute-1.4a12/debian/control +@@ -0,0 +1,22 @@ ++Source: traceroute ++Section: net ++Priority: optional ++Maintainer: Herbert Xu <herbert@debian.org> ++Standards-Version: 3.5.5 ++Build-Depends: automake, autoconf, debhelper ++ ++Package: traceroute ++Architecture: any ++Depends: ${shlibs:Depends} ++Conflicts: suidmanager (<< 0.50) ++Replaces: netstd ++Description: Traces the route taken by packets over a TCP/IP network. ++ The traceroute utility displays the route used by IP packets on their way to a ++ specified network (or Internet) host. Traceroute displays the IP number and ++ host name (if possible) of the machines along the route taken by the packets. ++ Traceroute is used as a network debugging tool. If you're having network ++ connectivity problems, traceroute will show you where the trouble is coming ++ from along the route. ++ . ++ Install traceroute if you need a tool for diagnosing network connectivity ++ problems. +--- traceroute-1.4a12.orig/debian/copyright ++++ traceroute-1.4a12/debian/copyright +@@ -0,0 +1,16 @@ ++This package was split from netstd by Herbert Xu herbert@debian.org on ++Mon, 1 Nov 1999 15:14:03 +1100. ++ ++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on ++Wed, 20 Jul 1994 17:23:21 +0200. ++ ++It was downloaded from ftp://ftp.ee.lbl.gov/. ++ ++Copyright: ++ ++Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997 ++The Regents of the University of California. All rights reserved. ++ ++The license can be found in /usr/share/common-licenses/BSD. ++ ++$Id: copyright,v 1.1 1999/11/01 04:34:49 herbert Exp $ +--- traceroute-1.4a12.orig/debian/rules ++++ traceroute-1.4a12/debian/rules +@@ -0,0 +1,96 @@ ++#!/usr/bin/make -f ++# GNU copyright 1997 to 1999 by Joey Hess. ++# Copyright (c) 1999 Herbert Xu <herbert@debian.org> ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=2 ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ++ if [ ! -f configure.old ]; then \ ++ mv configure configure.old; \ ++ mv config.guess config.guess.old; \ ++ mv config.sub config.sub.old; \ ++ mv linux-include/netinet/in_systm.h linux-include; \ ++ mv linux-include/netinet/ip.h linux-include; \ ++ mv linux-include/netinet/ip_icmp.h linux-include; \ ++ cp /usr/share/automake/config.guess .; \ ++ cp /usr/share/automake/config.sub .; \ ++ autoconf; \ ++ fi ++ if [ ! -f Makefile ]; then ./configure; fi ++ $(MAKE) CCOPT="-g -O2" ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp install-stamp ++ ++ -$(MAKE) distclean ++ if [ -f configure.old ]; then \ ++ mv configure.old configure; \ ++ mv config.guess.old config.guess; \ ++ mv config.sub.old config.sub; \ ++ mv linux-include/in_systm.h linux-include/netinet; \ ++ mv linux-include/ip.h linux-include/netinet; \ ++ mv linux-include/ip_icmp.h linux-include/netinet; \ ++ fi ++ ++ dh_clean ++ ++install: build install-stamp ++install-stamp: ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ install traceroute debian/traceroute/usr/sbin ++ cp traceroute.8 debian/traceroute/usr/share/man/man8 ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++# dh_testversion ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installemacsen ++# dh_installpam ++# dh_installinit ++ dh_installcron ++ dh_installmanpages ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs CHANGES ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ # You may want to make some executables suid here. ++ chmod u+s debian/traceroute/usr/sbin/traceroute ++# dh_makeshlibs ++ dh_installdeb ++# dh_perl ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- traceroute-1.4a12.orig/debian/traceroute.dirs ++++ traceroute-1.4a12/debian/traceroute.dirs +@@ -0,0 +1,2 @@ ++usr/sbin ++usr/share/man/man8 +--- traceroute-1.4a12.orig/debian/traceroute.docs ++++ traceroute-1.4a12/debian/traceroute.docs +@@ -0,0 +1 @@ ++README +--- traceroute-1.4a12.orig/debian/traceroute.examples ++++ traceroute-1.4a12/debian/traceroute.examples +@@ -0,0 +1,2 @@ ++mean.awk ++median.awk diff --git a/source/n/trn/config.sh b/source/n/trn/config.sh new file mode 100644 index 000000000..c202d8f47 --- /dev/null +++ b/source/n/trn/config.sh @@ -0,0 +1,220 @@ +#!/bin/sh +# +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". +# + +# Configuration time: Wed Mar 6 18:27:57 PST 2002 +# Configured by: root +# Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + +d_bsd='undef' +d_eunice='undef' +d_xenix='undef' +eunicefix=':' +Mcc='Mcc' +awk='awk' +basename='basename' +bash='bash' +cat='cat' +cp='cp' +cpp='cpp' +csh='csh' +date='date' +diff='diff' +echo='echo' +ed='ed' +egrep='egrep' +expr='expr' +grep='grep' +inews='inews' +ispell='ispell' +ksh='ksh' +less='less' +lint='' +mail='mail' +metamail='metamail' +mhn='mhn' +mkdir='mkdir' +more='more' +munpack='munpack' +mv='mv' +nroff='nroff' +pg='pg' +rm='rm' +rmail='rmail' +sed='sed' +sendmail='sendmail' +smail='smail' +sort='sort' +spell='spell' +tail='tail' +test='test' +tr='tr' +uname='uname' +uniq='uniq' +uuname='uuname' +vi='vi' +vspell='' +who='' +hint='previous' +myuname='linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 ' +srcdir='.' +vincludes='' +vpath='.' +Id='$Id' +Log='$Log' +active='none' +acttimes='nntp' +d_acttimes='define' +myactive='.falseactive' +bin='/usr/bin' +binexp='/usr/bin' +installbin='/usr/bin' +cc='gcc' +ccflags='' +cppflags='' +ldflags='-s' +lkflags='' +optimize='-O2' +cf_by='root' +cf_time='Wed Mar 6 18:27:57 PST 2002' +contains='grep' +cpplast='-' +cppminus='-' +cpprun='gcc -E' +cppstdin='gcc -E' +d_ftime='define' +aphostcmd='' +d_gethname='undef' +d_phostcmd='undef' +d_uname='undef' +d_getpwent='define' +d_getcwd='undef' +d_getwd='define' +d_havetlib='define' +termlib='-ltermcap' +d_ignoreorg='undef' +d_internet='define' +d_memcmp='define' +d_memcpy='define' +d_memset='define' +d_mimeshow='undef' +d_mimestore='undef' +mimeshow="none" +mimestore="none" +d_newsadm='define' +newsadmin='news' +d_nntp='define' +d_xdata='define' +d_genauth='define' +servername='/etc/nntpserver' +d_nolnbuf='undef' +d_normsig='define' +jobslib='' +d_novoid='undef' +void='' +d_portable='define' +d_rdchk='undef' +d_rename='define' +d_sigblock='define' +d_sighold='define' +d_sizet='undef' +d_strccmp='define' +d_strchr='define' +d_strftime='define' +strftimec='' +strftimeo='' +d_libndir='undef' +d_usendir='undef' +libndir='' +ndirc='' +ndiro='' +d_vfork='define' +d_voidsig='define' +signal_t='void' +defeditor='/usr/bin/vi' +filexp='/usr/lib/trn/filexp' +d_dirnamlen='' +i_dirent='define' +i_ptem='undef' +i_stdlib='define' +i_string='define' +strings='/usr/include/string.h' +i_sysdir='define' +d_voidtty='' +i_bsdioctl='' +i_sysfilio='undef' +i_sysioctl='define' +i_syssockio='' +i_sysndir='undef' +i_sgtty='undef' +i_termio='undef' +i_termios='define' +i_systime='define' +i_time='define' +i_unistd='define' +i_vfork='undef' +ispell_options='-x' +ispell_prg='/usr/bin/ispell' +libc='/usr/lib/libc.a' +plibpth='/usr/ccs/lib /usr/lib /usr/ucblib /usr/local/lib' +xlibpth='/usr/lib/386 /lib/386' +libs=' ' +citydist='none' +cntrydist='none' +contdist='none' +locdist='none' +multistatedist='none' +orgdist='none' +statedist='none' +mailer='/usr/sbin/sendmail' +mailfile='/var/spool/mail/%L' +installmansrc='/usr/man/man1' +manext='1' +mansrc='/usr/man/man1' +mansrcexp='/usr/man/man1' +mboxchar='F' +c='' +n='-n' +d_berknames='define' +d_passnames='define' +d_usgnames='undef' +nametype='bsd' +inewsloc='/usr/bin/inews' +newslib='/tmp' +newslibexp='/tmp' +newsspool='/tmp' +orgname='/etc/organization' +package='trn' +spackage='Trn' +pager='/bin/more' +phost='/etc/HOSTNAME' +phostcmd='' +prefshell='/bin/bash' +installprivlib='/usr/lib/trn' +privlib='/usr/lib/trn' +privlibexp='/usr/lib/trn' +rootid='0' +sharpbang='#!' +shsharp='true' +spitshell='cat' +startsh='#!/bin/sh' +sysman='/usr/man/man1' +d_usemt='define' +d_useov='define' +overviewdir='/tmp' +threaddir='/tmp' +trn_init='FALSE' +trn_select='TRUE' +nm_opt='' +runnm='true' +usenm='true' +incpath='' +mips='' +mips_type='' +usrinc='/usr/include' +PATCHLEVEL="3.6 (20 Nov 1994)" +CONFIG=true diff --git a/source/n/trn/config.x86_64.sh b/source/n/trn/config.x86_64.sh new file mode 100644 index 000000000..d6c8f5325 --- /dev/null +++ b/source/n/trn/config.x86_64.sh @@ -0,0 +1,220 @@ +#!/bin/sh +# +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". +# + +# Configuration time: Wed Mar 6 18:27:57 PST 2002 +# Configured by: root +# Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + +d_bsd='undef' +d_eunice='undef' +d_xenix='undef' +eunicefix=':' +Mcc='Mcc' +awk='awk' +basename='basename' +bash='bash' +cat='cat' +cp='cp' +cpp='cpp' +csh='csh' +date='date' +diff='diff' +echo='echo' +ed='ed' +egrep='egrep' +expr='expr' +grep='grep' +inews='inews' +ispell='ispell' +ksh='ksh' +less='less' +lint='' +mail='mail' +metamail='metamail' +mhn='mhn' +mkdir='mkdir' +more='more' +munpack='munpack' +mv='mv' +nroff='nroff' +pg='pg' +rm='rm' +rmail='rmail' +sed='sed' +sendmail='sendmail' +smail='smail' +sort='sort' +spell='spell' +tail='tail' +test='test' +tr='tr' +uname='uname' +uniq='uniq' +uuname='uuname' +vi='vi' +vspell='' +who='' +hint='previous' +myuname='linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 ' +srcdir='.' +vincludes='' +vpath='.' +Id='$Id' +Log='$Log' +active='none' +acttimes='nntp' +d_acttimes='define' +myactive='.falseactive' +bin='/usr/bin' +binexp='/usr/bin' +installbin='/usr/bin' +cc='gcc' +ccflags='' +cppflags='' +ldflags='-s' +lkflags='' +optimize='-O2 -fPIC' +cf_by='root' +cf_time='Wed Mar 6 18:27:57 PST 2002' +contains='grep' +cpplast='-' +cppminus='-' +cpprun='gcc -E' +cppstdin='gcc -E' +d_ftime='define' +aphostcmd='' +d_gethname='undef' +d_phostcmd='undef' +d_uname='undef' +d_getpwent='define' +d_getcwd='undef' +d_getwd='define' +d_havetlib='define' +termlib='-ltermcap' +d_ignoreorg='undef' +d_internet='define' +d_memcmp='define' +d_memcpy='define' +d_memset='define' +d_mimeshow='undef' +d_mimestore='undef' +mimeshow="none" +mimestore="none" +d_newsadm='define' +newsadmin='news' +d_nntp='define' +d_xdata='define' +d_genauth='define' +servername='/etc/nntpserver' +d_nolnbuf='undef' +d_normsig='define' +jobslib='' +d_novoid='undef' +void='' +d_portable='define' +d_rdchk='undef' +d_rename='define' +d_sigblock='define' +d_sighold='define' +d_sizet='undef' +d_strccmp='define' +d_strchr='define' +d_strftime='define' +strftimec='' +strftimeo='' +d_libndir='undef' +d_usendir='undef' +libndir='' +ndirc='' +ndiro='' +d_vfork='define' +d_voidsig='define' +signal_t='void' +defeditor='/usr/bin/vi' +filexp='/usr/lib64/trn/filexp' +d_dirnamlen='' +i_dirent='define' +i_ptem='undef' +i_stdlib='define' +i_string='define' +strings='/usr/include/string.h' +i_sysdir='define' +d_voidtty='' +i_bsdioctl='' +i_sysfilio='undef' +i_sysioctl='define' +i_syssockio='' +i_sysndir='undef' +i_sgtty='undef' +i_termio='undef' +i_termios='define' +i_systime='define' +i_time='define' +i_unistd='define' +i_vfork='undef' +ispell_options='-x' +ispell_prg='/usr/bin/ispell' +libc='/usr/lib64/libc.a' +plibpth='/usr/ccs/lib64 /usr/lib64 /usr/ucblib64 /usr/local/lib64' +xlibpth='/usr/lib64/x86_64 /lib64/x86_64' +libs=' ' +citydist='none' +cntrydist='none' +contdist='none' +locdist='none' +multistatedist='none' +orgdist='none' +statedist='none' +mailer='/usr/sbin/sendmail' +mailfile='/var/spool/mail/%L' +installmansrc='/usr/man/man1' +manext='1' +mansrc='/usr/man/man1' +mansrcexp='/usr/man/man1' +mboxchar='F' +c='' +n='-n' +d_berknames='define' +d_passnames='define' +d_usgnames='undef' +nametype='bsd' +inewsloc='/usr/bin/inews' +newslib='/tmp' +newslibexp='/tmp' +newsspool='/tmp' +orgname='/etc/organization' +package='trn' +spackage='Trn' +pager='/bin/more' +phost='/etc/HOSTNAME' +phostcmd='' +prefshell='/bin/bash' +installprivlib='/usr/lib64/trn' +privlib='/usr/lib64/trn' +privlibexp='/usr/lib64/trn' +rootid='0' +sharpbang='#!' +shsharp='true' +spitshell='cat' +startsh='#!/bin/sh' +sysman='/usr/man/man1' +d_usemt='define' +d_useov='define' +overviewdir='/tmp' +threaddir='/tmp' +trn_init='FALSE' +trn_select='TRUE' +nm_opt='' +runnm='true' +usenm='true' +incpath='' +mips='' +mips_type='' +usrinc='/usr/include' +PATCHLEVEL="3.6 (20 Nov 1994)" +CONFIG=true diff --git a/source/n/trn/slack-desc b/source/n/trn/slack-desc new file mode 100644 index 000000000..b6e638850 --- /dev/null +++ b/source/n/trn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +trn: trn (a threaded newsreader) +trn: +trn: A threaded news reader for reading a remote NNTP server. Compiled to +trn: use Overviews or mthreads, and to read news through your NNTP server. +trn: Be sure to set NNTPSERVER in your /etc/profile or /etc/csh.login. +trn: +trn: +trn: +trn: +trn: +trn: diff --git a/source/n/trn/trn.SlackBuild b/source/n/trn/trn.SlackBuild new file mode 100755 index 000000000..ed9b3146d --- /dev/null +++ b/source/n/trn/trn.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-trn + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_trn.tar.gz + +echo "+============================================+" +echo "| trn-$VERSION for NNTP (with mthreads/Overviews) |" +echo "+============================================+" +cd $TMP +rm -rf trn-$VERSION +tar xvf $CWD/trn-$VERSION.tar.gz || exit 1 +cd trn-$VERSION || exit 1 +#zcat $CWD/trn-$VERSION.nntp.diff.gz | patch -p1 +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/config.x86_64.sh.gz > config.sh +else + zcat $CWD/config.sh.gz > config.sh +fi +# Here, just take the defaults. If you get a "whoa there!", use +# the newly detected value, not the old one. +./Configure -f config.sh + +make clean +make || exit 1 + +cat Pnews > $PKG/usr/bin/Pnews +cat Rnmail > $PKG/usr/bin/Rnmail +cat newsetup > $PKG/usr/bin/newsetup +cat newsgroups > $PKG/usr/bin/newsgroups +cat nntplist > $PKG/usr/bin/nntplist +cat trn > $PKG/usr/bin/trn +cat trn-artchk > $PKG/usr/bin/trn-artchk +cat trn > $PKG/usr/bin/trn +cat Pnews.1 | gzip -9c > $PKG/usr/man/man1/Pnews.1.gz +cat Rnmail.1 | gzip -9c > $PKG/usr/man/man1/Rnmail.1.gz +cat newsetup.1 | gzip -9c > $PKG/usr/man/man1/newsetup.1.gz +cat newsgroups.1 | gzip -9c > $PKG/usr/man/man1/newsgroups.1.gz +cat trn.1 | gzip -9c > $PKG/usr/man/man1/trn.1.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/trn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/uucp/policy.h.diff b/source/n/uucp/policy.h.diff new file mode 100644 index 000000000..eb500b49c --- /dev/null +++ b/source/n/uucp/policy.h.diff @@ -0,0 +1,161 @@ +--- ./policy.h.orig 2003-05-28 23:08:45.000000000 -0700 ++++ ./policy.h 2003-06-05 14:46:32.000000000 -0700 +@@ -297,7 +297,7 @@ + systems the lock files are placed in /etc/locks. On some they are + placed in /usr/spool/locks. On the NeXT they are placed in + /usr/spool/uucp/LCK. */ +-/* #define LOCKDIR "/usr/spool/uucp" */ ++#define LOCKDIR "/var/lock" + /* #define LOCKDIR "/etc/locks" */ + /* #define LOCKDIR "/usr/spool/locks" */ + /* #define LOCKDIR "/usr/spool/uucp/LCK" */ +@@ -349,7 +349,7 @@ + The format for QNX lock files was made up just for Taylor UUCP. + QNX doesn't come with a version of UUCP. */ + #define HAVE_V2_LOCKFILES 0 +-#define HAVE_HDB_LOCKFILES 0 ++#define HAVE_HDB_LOCKFILES 1 + #define HAVE_SCO_LOCKFILES 0 + #define HAVE_SVR4_LOCKFILES 0 + #define HAVE_SEQUENT_LOCKFILES 0 +@@ -467,7 +467,7 @@ + configuration files will be read first, followed by the V2 + configuration files, followed by the HDB configuration files. */ + #define HAVE_V2_CONFIG 0 +-#define HAVE_HDB_CONFIG 0 ++#define HAVE_HDB_CONFIG 1 + + /* Exactly one of the following macros must be set to 1. The exact + format of the spool directories is explained in unix/spool.c. +@@ -485,10 +485,10 @@ + #define SPOOLDIR_V2 0 + #define SPOOLDIR_BSD42 0 + #define SPOOLDIR_BSD43 0 +-#define SPOOLDIR_HDB 0 ++#define SPOOLDIR_HDB 1 + #define SPOOLDIR_ULTRIX 0 + #define SPOOLDIR_SVR4 0 +-#define SPOOLDIR_TAYLOR 1 ++#define SPOOLDIR_TAYLOR 0 + + /* The status file generated by UUCP can use either the traditional + HDB upper case comments or new easier to read lower case comments. +@@ -536,9 +536,9 @@ + have shell scripts which expect the files to have a particular + format. If you have none, choose whichever format you find more + appealing. */ +-#define HAVE_TAYLOR_LOGGING 1 ++#define HAVE_TAYLOR_LOGGING 0 + #define HAVE_V2_LOGGING 0 +-#define HAVE_HDB_LOGGING 0 ++#define HAVE_HDB_LOGGING 1 + + /* If QNX_LOG_NODE_ID is set to 1, log messages will include the QNX + node ID just after the process ID. This is a policy decision +@@ -567,21 +567,21 @@ + exist when a new message is written out, it will be created. + Setting CLOSE_LOGFILES to 1 will obviously require slightly more + processing time. */ +-#define CLOSE_LOGFILES 0 ++#define CLOSE_LOGFILES 1 + + /* The name of the default spool directory. If HAVE_TAYLOR_CONFIG is + set to 1, this may be overridden by the ``spool'' command in the + configuration file. */ +-#define SPOOLDIR "/usr/spool/uucp" +-/* #define SPOOLDIR "/var/spool/uucp" */ ++/* #define SPOOLDIR "/usr/spool/uucp" */ ++#define SPOOLDIR "/var/spool/uucp" + + /* The name of the default public directory. If HAVE_TAYLOR_CONFIG is + set to 1, this may be overridden by the ``pubdir'' command in the + configuration file. Also, a particular system may be given a + specific public directory by using the ``pubdir'' command in the + system file. */ +-#define PUBDIR "/usr/spool/uucppublic" +-/* #define PUBDIR "/var/spool/uucppublic" */ ++/* #define PUBDIR "/usr/spool/uucppublic" */ ++#define PUBDIR "/var/spool/uucppublic" + + /* The default command path. This is a space separated list of + directories. Remote command executions requested by uux are looked +@@ -628,7 +628,7 @@ + ``remote-receive'') + the command will be rejected. By default, any argument is + permitted. */ +-#define ALLOW_FILENAME_ARGUMENTS 1 ++#define ALLOW_FILENAME_ARGUMENTS 0 + + /* If you set FSYNC_ON_CLOSE to 1, all output files will be forced out + to disk using the fsync system call when they are closed. This can +@@ -644,23 +644,23 @@ + /* The default log file when using HAVE_TAYLOR_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' + command in the configuration file. */ +-#define LOGFILE "/usr/spool/uucp/Log" ++/* #define LOGFILE "/usr/spool/uucp/Log" */ + /* #define LOGFILE "/var/spool/uucp/Log" */ +-/* #define LOGFILE "/var/log/uucp/Log" */ ++#define LOGFILE "/var/log/uucp/Log" + + /* The default statistics file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``statfile'' command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/Stats" ++/* #define STATFILE "/usr/spool/uucp/Stats" */ + /* #define STATFILE "/var/spool/uucp/Stats" */ +-/* #define STATFILE "/var/log/uucp/Stats" */ ++#define STATFILE "/var/log/uucp/Stats" + + /* The default debugging file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``debugfile'' command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/Debug" ++/* #define DEBUGFILE "/usr/spool/uucp/Debug" */ + /* #define DEBUGFILE "/var/spool/uucp/Debug" */ +-/* #define DEBUGFILE "/var/log/uucp/Debug" */ ++#define DEBUGFILE "/var/log/uucp/Debug" + + #endif /* HAVE_TAYLOR_LOGGING */ + +@@ -669,17 +669,17 @@ + /* The default log file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' + command in the configuration file. */ +-#define LOGFILE "/usr/spool/uucp/LOGFILE" ++#define LOGFILE "/var/log/uucp/LOGFILE" + + /* The default statistics file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' + command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/SYSLOG" ++#define STATFILE "/var/log/uucp/SYSLOG" + + /* The default debugging file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' + command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/DEBUG" ++#define DEBUGFILE "/var/log/uucp/DEBUG" + + #endif /* HAVE_V2_LOGGING */ + +@@ -692,16 +692,16 @@ + be replaced by the system name (if there is no appropriate system, + "ANY" will be used). No other '%' character may appear in the + string. */ +-#define LOGFILE "/usr/spool/uucp/.Log/%s/%s" ++#define LOGFILE "/var/log/uucp/.Log/%s/%s" + + /* The default statistics file when using HAVE_HDB_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' + command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/.Admin/xferstats" ++#define STATFILE "/var/log/uucp/.Admin/xferstats" + + /* The default debugging file when using HAVE_HDB_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' + command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/.Admin/audit.local" ++#define DEBUGFILE "/var/log/uucp/.Admin/audit.local" + + #endif /* HAVE_HDB_LOGGING */ diff --git a/source/n/uucp/slack-desc b/source/n/uucp/slack-desc new file mode 100644 index 000000000..a54bccae4 --- /dev/null +++ b/source/n/uucp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +uucp: uucp (Taylor UUCP) +uucp: +uucp: Ian Taylor's Unix to Unix copy: mail and news over modem lines. +uucp: This is the standard UUCP package of the Free Software Foundation. +uucp: +uucp: Configured to use HoneyDanBer and/or Taylor configuration files. +uucp: +uucp: +uucp: +uucp: +uucp: diff --git a/source/n/uucp/uucp.SlackBuild b/source/n/uucp/uucp.SlackBuild new file mode 100755 index 000000000..431bfd12b --- /dev/null +++ b/source/n/uucp/uucp.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.07 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-uucp + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_uucp.tar.gz + +cd $TMP +rm -rf uucp-$VERSION +tar xvf $CWD/uucp-$VERSION.tar.gz || exit 1 +cd uucp-$VERSION || exit 1 +zcat $CWD/policy.h.diff.gz | patch -p1 --verbose || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --with-oldconfigdir=/etc/uucp/oldconfig \ + --with-newconfigdir=/etc/uucp + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +strip --strip-unneeded $PKG/usr/bin/* $PKG/usr/sbin/* + +gzip -9 $PKG/usr/man/man?/* +gzip -9 $PKG/usr/info/* +rm -f $PKG/usr/info/dir.gz + +# Setuid uucp binaries may only be run by members of the uucp group: +( cd $PKG/usr/bin + chgrp uucp cu uucp uuname uustat uux + chmod 4554 cu uucp uuname uustat uux + cd ../sbin + chgrp uucp uucico uuxqt + chmod 4554 uucico uuxqt +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/uucp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vlan/slack-desc b/source/n/vlan/slack-desc new file mode 100644 index 000000000..23dcc65d0 --- /dev/null +++ b/source/n/vlan/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vlan: vlan (VLAN (802.1q) configuration program) +vlan: +vlan: The vlan package contains the vconfig program, which allows you to +vlan: create and remove VLAN devices on a VLAN enabled kernel. VLAN +vlan: devices are virtual Ethernet devices which represent virtual LANs on +vlan: the physical LAN. +vlan: +vlan: vlan is primarily the work of Alex Zeffertt, Cambridge Broadband Ltd, +vlan: extensively rewritten by Ben Greear. +vlan: +vlan: diff --git a/source/n/vlan/vlan.SlackBuild b/source/n/vlan/vlan.SlackBuild new file mode 100755 index 000000000..1b1064a86 --- /dev/null +++ b/source/n/vlan/vlan.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=1.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vlan + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf vlan +tar xvf $CWD/vlan.1.9.tar.bz2 || exit 1 +cd vlan + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make clean +make vconfig || exit 1 + +strip --strip-unneeded vconfig +mkdir -p $PKG/sbin +cp vconfig $PKG/sbin +chmod 755 $PKG/sbin/vconfig + +mkdir -p $PKG/usr/man/man8 +cat vconfig.8 | gzip -9c > $PKG/usr/man/man8/vconfig.8.gz + +mkdir -p $PKG/usr/doc/vlan-1.9 +cp -a \ + README howto.html vlan.html \ + $PKG/usr/doc/vlan-1.9 + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/vlan-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vsftpd/doinst.sh b/source/n/vsftpd/doinst.sh new file mode 100644 index 000000000..f915774f4 --- /dev/null +++ b/source/n/vsftpd/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/vsftpd.conf.new +config etc/logrotate.d/vsftpd.new +rm -f etc/logrotate.d/vsftpd.new + diff --git a/source/n/vsftpd/slack-desc b/source/n/vsftpd/slack-desc new file mode 100644 index 000000000..82b9f521e --- /dev/null +++ b/source/n/vsftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vsftpd: vsftpd (Very Secure FTP Daemon) +vsftpd: +vsftpd: vsftpd is an FTP server, or daemon. The 'vs' stands for Very Secure. +vsftpd: Obviously this is not a guarantee, but a reflection that the entire +vsftpd: codebase was written with security in mind, and carefully designed to +vsftpd: be resilient to attack (as well as extremely fast and scalable). +vsftpd: +vsftpd: The vsftpd homepage is http://vsftpd.beasts.org/ +vsftpd: +vsftpd: The Very Secure FTP Daemon was written by Chris Evans. +vsftpd: diff --git a/source/n/vsftpd/vsftpd.SlackBuild b/source/n/vsftpd/vsftpd.SlackBuild new file mode 100755 index 000000000..c202e392d --- /dev/null +++ b/source/n/vsftpd/vsftpd.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.1.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vsftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf vsftpd-$VERSION +tar xvf $CWD/vsftpd-$VERSION.tar.?z* || exit 1 +cd vsftpd-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This allows the libfinder script to find stuff in */lib64 +if [ "$LIBDIRSUFFIX" = "64" ]; then + zcat $CWD/vsftpd.vsf_findlibs.sh.diff.gz | patch -p1 --verbose || exit 1 +fi + +zcat $CWD/vsftpd.builddefs.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/vsftpd.conf.diff.gz | patch -p1 --verbose || exit 1 + +sed -i -e "s#lib/#lib${LIBDIRSUFFIX}/#g" vsf_findlibs.sh + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/sbin +cp vsftpd $PKG/usr/sbin +chmod 755 $PKG/usr/sbin/vsftpd +strip --strip-unneeded $PKG/usr/sbin/vsftpd + +mkdir -p $PKG/usr/man/man{5,8} +cat vsftpd.conf.5 | gzip -9c > $PKG/usr/man/man5/vsftpd.conf.5.gz +cat vsftpd.8 | gzip -9c > $PKG/usr/man/man8/vsftpd.8.gz + +mkdir -p $PKG/etc +cat vsftpd.conf > $PKG/etc/vsftpd.conf.new + +mkdir -p $PKG/etc/logrotate.d +zcat $CWD/vsftpd.log.gz > $PKG/etc/logrotate.d/vsftpd.new + +mkdir -p $PKG/usr/share/empty +mkdir -p $PKG/home/ftp + +mkdir -p $PKG/usr/doc/vsftpd-$VERSION +cp -a \ + AUDIT BENCHMARKS BUGS COPYING* COPYRIGHT Changelog EXAMPLE FAQ \ + INSTALL LICENSE README* REFS REWARD SECURITY SIZE SPEED TODO TUNING \ + $PKG/usr/doc/vsftpd-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vsftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vsftpd/vsftpd.builddefs.diff b/source/n/vsftpd/vsftpd.builddefs.diff new file mode 100644 index 000000000..ea9081391 --- /dev/null +++ b/source/n/vsftpd/vsftpd.builddefs.diff @@ -0,0 +1,15 @@ +--- ./builddefs.h.orig 2004-07-02 07:36:59.000000000 -0700 ++++ ./builddefs.h 2004-09-03 11:25:13.000000000 -0700 +@@ -1,9 +1,9 @@ + #ifndef VSF_BUILDDEFS_H + #define VSF_BUILDDEFS_H + +-#undef VSF_BUILD_TCPWRAPPERS +-#define VSF_BUILD_PAM +-#undef VSF_BUILD_SSL ++#define VSF_BUILD_TCPWRAPPERS ++#undef VSF_BUILD_PAM ++#define VSF_BUILD_SSL + + #endif /* VSF_BUILDDEFS_H */ + diff --git a/source/n/vsftpd/vsftpd.conf.diff b/source/n/vsftpd/vsftpd.conf.diff new file mode 100644 index 000000000..230d858c8 --- /dev/null +++ b/source/n/vsftpd/vsftpd.conf.diff @@ -0,0 +1,48 @@ +--- ./vsftpd.conf.orig 2008-12-17 14:31:40.000000000 -0600 ++++ ./vsftpd.conf 2009-03-29 22:09:21.000000000 -0500 +@@ -19,7 +19,7 @@ + # + # Default umask for local users is 077. You may wish to change this to 022, + # if your users expect that (022 is used by most other ftpd's) +-#local_umask=022 ++local_umask=022 + # + # Uncomment this to allow the anonymous FTP user to upload files. This only + # has an effect if the above global write enable is activated. Also, you will +@@ -48,11 +48,11 @@ + # + # You may override where the log file goes if you like. The default is shown + # below. +-#xferlog_file=/var/log/vsftpd.log ++xferlog_file=/var/log/vsftpd.log + # + # If you want, you can have your log file in standard ftpd xferlog format. + # Note that the default log file location is /var/log/xferlog in this case. +-#xferlog_std_format=YES ++xferlog_std_format=YES + # + # You may change the default value for timing out an idle session. + #idle_session_timeout=600 +@@ -100,14 +100,17 @@ + # default to avoid remote users being able to cause excessive I/O on large + # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume + # the presence of the "-R" option, so there is a strong case for enabling it. +-#ls_recurse_enable=YES ++ls_recurse_enable=YES + # +-# When "listen" directive is enabled, vsftpd runs in standalone mode and +-# listens on IPv4 sockets. This directive cannot be used in conjunction +-# with the listen_ipv6 directive. +-listen=YES ++# When "listen" directive is enabled, vsftpd runs in standalone mode (rather ++# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone ++# mode rather than with inetd, either change the line below to 'listen=YES' ++# or comment it out. This directive cannot be used in conjunction with the ++# listen_ipv6 directive. ++listen=NO + # + # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 + # sockets, you must run two copies of vsftpd whith two configuration files. + # Make sure, that one of the listen options is commented !! + #listen_ipv6=YES ++ diff --git a/source/n/vsftpd/vsftpd.log b/source/n/vsftpd/vsftpd.log new file mode 100644 index 000000000..d338de811 --- /dev/null +++ b/source/n/vsftpd/vsftpd.log @@ -0,0 +1,5 @@ +/var/log/vsftpd.log { + # ftpd doesn't handle SIGHUP properly + nocompress + missingok +} diff --git a/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff b/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff new file mode 100644 index 000000000..147ee7426 --- /dev/null +++ b/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff @@ -0,0 +1,87 @@ +diff -Nur vsftpd-2.1.2.orig/vsf_findlibs.sh vsftpd-2.1.2/vsf_findlibs.sh +--- vsftpd-2.1.2.orig/vsf_findlibs.sh 2009-05-21 15:43:11.000000000 -0500 ++++ vsftpd-2.1.2/vsf_findlibs.sh 2009-05-31 00:41:38.308704816 -0500 +@@ -6,61 +6,61 @@ + + if find_func hosts_access tcpwrap.o; then + echo "-lwrap"; +- locate_library /lib/libnsl.so && echo "-lnsl"; ++ locate_library /lib64/libnsl.so && echo "-lnsl"; + fi + + # Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the + # crypt library. + if find_func pam_start sysdeputil.o; then +- locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0"; +- locate_library /usr/lib/libpam.so && echo "-lpam"; ++ locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0"; ++ locate_library /usr/lib64/libpam.so && echo "-lpam"; + # HP-UX ends shared libraries with .sl +- locate_library /usr/lib/libpam.sl && echo "-lpam"; ++ locate_library /usr/lib64/libpam.sl && echo "-lpam"; + # AIX ends shared libraries with .a +- locate_library /usr/lib/libpam.a && echo "-lpam"; ++ locate_library /usr/lib64/libpam.a && echo "-lpam"; + else +- locate_library /lib/libcrypt.so && echo "-lcrypt"; +- locate_library /usr/lib/libcrypt.so && echo "-lcrypt"; ++ locate_library /lib64/libcrypt.so && echo "-lcrypt"; ++ locate_library /usr/lib64/libcrypt.so && echo "-lcrypt"; + fi + + # Look for the dynamic linker library. Needed by older RedHat when + # you link in PAM +-locate_library /lib/libdl.so && echo "-ldl"; ++locate_library /lib64/libdl.so && echo "-ldl"; + + # Look for libsocket. Solaris needs this. +-locate_library /lib/libsocket.so && echo "-lsocket"; ++locate_library /lib64/libsocket.so && echo "-lsocket"; + + # Look for libnsl. Solaris needs this. +-locate_library /lib/libnsl.so && echo "-lnsl"; ++locate_library /lib64/libnsl.so && echo "-lnsl"; + + # Look for libresolv. Solaris needs this. +-locate_library /lib/libresolv.so && echo "-lresolv"; ++locate_library /lib64/libresolv.so && echo "-lresolv"; + + # Look for libutil. Older FreeBSD need this for setproctitle(). +-locate_library /usr/lib/libutil.so && echo "-lutil"; ++locate_library /usr/lib64/libutil.so && echo "-lutil"; + + # For older HP-UX... +-locate_library /usr/lib/libsec.sl && echo "-lsec"; ++locate_library /usr/lib64/libsec.sl && echo "-lsec"; + + # Look for libcap (capabilities) +-if locate_library /lib/libcap.so.1; then +- echo "/lib/libcap.so.1"; +-elif locate_library /lib/libcap.so.2; then +- echo "/lib/libcap.so.2"; ++if locate_library /lib64/libcap.so.1; then ++ echo "/lib64/libcap.so.1"; ++elif locate_library /lib64/libcap.so.2; then ++ echo "/lib64/libcap.so.2"; + else +- locate_library /usr/lib/libcap.so && echo "-lcap"; +- locate_library /lib/libcap.so && echo "-lcap"; ++ locate_library /usr/lib64/libcap.so && echo "-lcap"; ++ locate_library /lib64/libcap.so && echo "-lcap"; + fi + + # Solaris needs this for nanosleep().. +-locate_library /lib/libposix4.so && echo "-lposix4"; +-locate_library /usr/lib/libposix4.so && echo "-lposix4"; ++locate_library /lib64/libposix4.so && echo "-lposix4"; ++locate_library /usr/lib64/libposix4.so && echo "-lposix4"; + + # Tru64 (nanosleep) + locate_library /usr/shlib/librt.so && echo "-lrt"; + + # Solaris sendfile +-locate_library /usr/lib/libsendfile.so && echo "-lsendfile"; ++locate_library /usr/lib64/libsendfile.so && echo "-lsendfile"; + + # OpenSSL + if find_func SSL_library_init ssl.o; then diff --git a/source/n/wget/doinst.sh b/source/n/wget/doinst.sh new file mode 100644 index 000000000..dd81eb507 --- /dev/null +++ b/source/n/wget/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/wgetrc.new + diff --git a/source/n/wget/slack-desc b/source/n/wget/slack-desc new file mode 100644 index 000000000..d023ea373 --- /dev/null +++ b/source/n/wget/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wget: wget (a non-interactive network retriever) +wget: +wget: GNU Wget is a free network utility to retrieve files from the +wget: World Wide Web using HTTP and FTP, the two most widely used Internet +wget: protocols. It works non-interactively, thus enabling work in the +wget: background after having logged off. +wget: +wget: The author of Wget is Hrvoje Niksic <hniksic@srce.hr>. +wget: +wget: +wget: diff --git a/source/n/wget/wget.SlackBuild b/source/n/wget/wget.SlackBuild new file mode 100755 index 000000000..23fbe7342 --- /dev/null +++ b/source/n/wget/wget.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.11.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wget + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf wget-$VERSION +tar xvf $CWD/wget-$VERSION.tar.?z* || exit 1 +cd wget-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/wget-$VERSION \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/wgetrc $PKG/etc/wgetrc.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/wget-$VERSION +cp -a \ + AUTHORS COPYING* MAILING-LIST NEWS PATCHES README* TODO \ + $PKG/usr/doc/wget-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wget-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/whois/slack-desc b/source/n/whois/slack-desc new file mode 100644 index 000000000..a357ec064 --- /dev/null +++ b/source/n/whois/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +whois: whois (whois directory client) +whois: +whois: This is an enhanced whois (RFC 954) client derived from the BSD and +whois: RIPE whois programs. It can automatically select the appropriate +whois: whois server for most queries. +whois: +whois: This version of whois was written by Marco d'Itri +whois: For more information, see: http://www.linux.it/~md/software/ +whois: +whois: +whois: diff --git a/source/n/whois/whois.SlackBuild b/source/n/whois/whois.SlackBuild new file mode 100755 index 000000000..26baacf8c --- /dev/null +++ b/source/n/whois/whois.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=4.7.26 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-whois + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf whois-$VERSION +tar xvf $CWD/whois_$VERSION.tar.gz || exit 1 +cd whois-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit + +mkdir -p $PKG/usr/bin +cat whois > $PKG/usr/bin/whois +chmod 755 $PKG/usr/bin/whois + +( cd po + make + for n in *.mo ; do \ + l=`basename $n .mo`; \ + /usr/bin/install -c -m 755 -d $PKG/usr/share/locale/$l; \ + /usr/bin/install -c -m 755 -d $PKG/usr/share/locale/$l/LC_MESSAGES; \ + /usr/bin/install -c -m 644 $n $PKG/usr/share/locale/$l/LC_MESSAGES/whois.mo; \ + done +) + +mkdir -p $PKG/usr/man/man1 +cat whois.1 | gzip -9c > $PKG/usr/man/man1/whois.1.gz + +mkdir -p $PKG/usr/doc/whois-$VERSION +cp -a \ + COPYING* README \ + $PKG/usr/doc/whois-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/whois-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/wireless-tools/doinst.sh b/source/n/wireless-tools/doinst.sh new file mode 100644 index 000000000..ec61a630a --- /dev/null +++ b/source/n/wireless-tools/doinst.sh @@ -0,0 +1,26 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.wireless.conf.new + +# This is a kludge, but it's because there's no --reference option +# on busybox's 'chmod': +if [ -e etc/rc.d/rc.wireless ]; then + if [ -x etc/rc.d/rc.wireless ]; then + chmod 755 etc/rc.d/rc.wireless.new + else + chmod 644 etc/rc.d/rc.wireless.new + fi +fi +# Then config() it: +config etc/rc.d/rc.wireless.new + diff --git a/source/n/wireless-tools/scripts/rc.wireless b/source/n/wireless-tools/scripts/rc.wireless new file mode 100644 index 000000000..baa148dc7 --- /dev/null +++ b/source/n/wireless-tools/scripts/rc.wireless @@ -0,0 +1,333 @@ +#!/bin/sh +# /etc/rc.d/rc.wireless +# $Id: rc.wireless,v 1.13 2007/04/13 14:14:43 eha Exp eha $ +# +# Wireless network card setup. +# +# This script sets up PCI, USB, and 32-bit Cardbus wireless devices +# NOT 16-bit PCMCIA cards! Those are configured in /etc/pcmcia/. +# Single parameter to this script is the name of a network interface. +# Normally this script is called from rc.inet1 rather than run +# directly. +# +# This script is a modified '/etc/pcmcia/wireless' script +# 09/apr/2004 by Eric Hameleers +# 16/sep/2004 * Eric Hameleers * Fixed iwspy and iwpriv commands +# 08/apr/2005 * Eric Hameleers * Allow per-interface overrides of the wireless +# parameters (see /etc/rc.d/rc.inet1.conf) +# 11/apr/2005 * Eric Hameleers * Tune wpa_supplicant interactions. +# 23/apr/2005 * Eric Hameleers * First configure card with iwconfig, +# before starting wpa_supplicant +# 27/apr/2005 * Eric Hameleers * Multiple 'iwpriv $INTERFACE set' commands. +# 14/feb/2006 * Eric Hameleers * Better error messages; alternative way of +# getting HWADDR; parametrized WPA_WAIT value. +# Don't kill an already running wpa_supplicant. +# 29/apr/2006 * Pat Volkerding * Reverted HWADDR change, since it relies on +# a binary (macaddr) that is not built or +# installed by default since it is not +# compatible with all interfaces. +# 15/aug/2006 * Eric Hameleers * Added missing "" around $ESSID, which broke +# ESSIDs that contain a space character. +# 10/oct/2006 * Eric Hameleers * Added default empty values for all parameters. +# This makes a second wireless card leave +# wpa_supplicant alone if WPA is not configured. +# 15/oct/2006 * Eric Hameleers * Swapped the calls to "key <key>" and +# "key restricted" since that might be needed +# for WEP to work reliably. +# 09/jan/2007 * Eric Hameleers * Add explicit default values to wireless params; +# also set the ESSID before IWPRIV commands, +# needed for some RaLink cards; +# use /proc/net/wireless instead of calling +# iwconfig to determine if a card is wireless. +# 13/apr/2007 * Eric Hameleers * Use of the IWPRIV variable was broken. +# NOTE: if you need to enter multiple parameters +# in IWPRIV, you must separate them with the pipe +# (|) character - this used to be a space char! +# See the example in rc.inet1.conf. +# 16/apr/2008 * Pat Volkerding * Make sure that HWADDR is all upper case. +# 23/apr/2008 * Pat Volkerding * Increase sleep time after bringing up an +# interface to 3 seconds. Some drivers +# need this additional time to initalize. +# ------------------------------------------------------------------------------ + +LOGGER=${LOGGER:-cat} + +if [ -z $IFNAME ] ; then + echo "WARNING: The script 'rc.wireless' must be executed by 'rc.inet1'!" | $LOGGER + echo " You should run the command \"/etc/rc.d/rc.inet1 <your_interface>_start\" yourself." | $LOGGER + return 1 2> /dev/null || exit 1 +fi + +INTERFACE=$1 + +# Find the path where wireless tools are installed +for IWPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do + if [ -x $IWPATH/iwconfig ] ; then break ; fi +done + +# The same for wpa_supplicant (needed for WPA support) +for SUPPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do + if [ -x $SUPPATH/wpa_supplicant ] ; then break ; fi +done + +# Set all desired settings through the wireless tools +IWCOMMAND="$IWPATH/iwconfig ${INTERFACE}" +IWPRIVCMD="$IWPATH/iwpriv ${INTERFACE}" +IWSPYCMD="$IWPATH/iwspy ${INTERFACE}" +IFCOMMAND="/sbin/ifconfig ${INTERFACE}" + +is_wireless_device () +{ + #[ -x $IWPATH/iwconfig ] || return 1 + #LC_ALL=C $IWPATH/iwconfig $1 2>&1 | \ + # grep -Eiq "no wireless extensions|no such device" || return 0 + #return 1 + if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/wireless 1> /dev/null ; then + # no wireless interface + return 1 + else + # interface has wireless extensions + return 0 + fi +} + +############### +# EXIT POINTS # +############### + +# Is the device wireless? If not, exit this script. +is_wireless_device ${INTERFACE} || return 0 2> /dev/null || exit 0 + +# If we stop a wireless interface using wpa_supplicant, +# we'll kill its wpa_supplicant daemon too and exit this script: +if [ "$2" = "stop" ]; then + WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '` + [ ${WPAPID} ] && kill ${WPAPID} + return 0 +fi + +# ----------------------------------------------------- +# Continue with the script - bringing the interface UP. +# ----------------------------------------------------- + +# Bring interface up - for determining the HWADDR +$IFCOMMAND up +sleep 3 + +# Get the MAC address for the interface +HWADDR=`/sbin/ifconfig ${INTERFACE} | sed -ne 's/.*\(..:..:..:..:..:..\).*/\1/p' | tr [a-f] [A-F]` + +# Empty all wireless parameters- some of them could still be set for a previous interface: +# when rc.inet1 is sourced from rc.M all scripts are run in the same shell. +CHANNEL="" +ESSID="" +FREQ="" +FRAG="" +IWCONFIG="" +IWPRIV="" +IWSPY="" +KEY="" +MODE="" +NICKNAME="" +NWID="" +RATE="" +RTS="" +SENS="" +WPA="" +WPADRIVER="" +WPACONF="" +WPAWAIT="" +# Read the configuration information for the card with address $HWADDR +# from /etc/rc.d/rc.wireless.conf: +[[ -r /etc/rc.d/rc.wireless.conf ]] && . /etc/rc.d/rc.wireless.conf + +# Let any per-interface overrides (the WLAN_xxxx parameters) that are set +# in /etc/rc.d/rc.inet1.conf have precedence. +# The reason: you might have multiple wireless cards of the same brand, or +# connecting to multiple networks. +# Position 'i' of this interface in the IFNAME array was determined in rc.inet1 +CHANNEL=${WLAN_CHANNEL[$i]:-${CHANNEL}} +ESSID=${WLAN_ESSID[$i]:-${ESSID}} +FREQ=${WLAN_FREQ[$i]:-${FREQ}} +FRAG=${WLAN_FRAG[$i]:-${FRAG}} +IWCONFIG=${WLAN_IWCONFIG[$i]:-${IWCONFIG}} +IWPRIV=${WLAN_IWPRIV[$i]:-${IWPRIV}} +IWSPY=${WLAN_IWSPY[$i]:-${IWSPY}} +KEY=${WLAN_KEY[$i]:-${KEY}} +MODE=${WLAN_MODE[$i]:-${MODE}} +NICKNAME=${WLAN_NICKNAME[$i]:-${NICKNAME}} +NWID=${WLAN_NWID[$i]:-${NWID}} +RATE=${WLAN_RATE[$i]:-${RATE}} +RTS=${WLAN_RTS[$i]:-${RTS}} +SENS=${WLAN_SENS[$i]:-${SENS}} +WPA=${WLAN_WPA[$i]:-${WPA}} +# The "ext" interface will be default if not explicitly set +WPADRIVER=${WLAN_WPADRIVER[$i]:-${WPADRIVER:="wext"}} +# The default config file as installed by the wpa_supplicant package: +WPACONF=${WLAN_WPACONF[$i]:-${WPACONF:="/etc/wpa_supplicant.conf"}} +WPAWAIT=${WLAN_WPAWAIT[$i]:-${WPAWAIT:="60"}} + + +[ -n "$VERBOSE" -a -n "$INFO" ] && echo "$0: $1 information: '$INFO'" + +################### +# WIRELESS CONFIG # +################### + +# Mode needs to be first : some settings apply only in a specific mode! +if [ -n "$MODE" ] ; then + echo "$0: $IWCOMMAND mode $MODE" | $LOGGER + # if $IWCOMMAND fails, try taking the interface down to run it. + # Some drivers require this. + if ! $IWCOMMAND mode $MODE 2> /dev/null ; then + $IFCOMMAND down + $IWCOMMAND mode $MODE + $IFCOMMAND up + sleep 3 + fi +fi +# This is a bit hackish, but should do the job right... +if [ ! -n "$NICKNAME" ] ; then + NICKNAME=`/bin/hostname` +fi +if [ -n "$ESSID" -o -n "$MODE" ] ; then + echo "$0: $IWCOMMAND nick $NICKNAME" | $LOGGER + $IWCOMMAND nick $NICKNAME +fi +# Regular stuff... +if [ -n "$NWID" ] ; then + echo "$0: $IWCOMMAND nwid $NWID" | $LOGGER + $IWCOMMAND nwid $NWID +fi +if [ -n "$FREQ" ] ; then + echo "$0: $IWCOMMAND freq $FREQ" | $LOGGER + $IWCOMMAND freq $FREQ +elif [ -n "$CHANNEL" ] ; then + echo "$0: $IWCOMMAND channel $CHANNEL" | $LOGGER + $IWCOMMAND channel $CHANNEL +fi + +# WEP keys (non-WPA) +if [ -n "$KEY" -a ! -n "$WPA" ] ; then + if [ "$KEY" = "off" ]; then + echo "$0: $IWCOMMAND key open" | $LOGGER + $IWCOMMAND key open + echo "$0: $IWCOMMAND key off" | $LOGGER + $IWCOMMAND key off + else + echo "$0: $IWCOMMAND key ************" | $LOGGER + $IWCOMMAND key $KEY + if ! echo "$KEY" | egrep -qw "restricted|open" ; then + # Set "restricted" as the default security mode: + echo "$0: $IWCOMMAND key restricted" | $LOGGER + $IWCOMMAND key restricted + fi + fi +fi +if [ -n "$SENS" ] ; then + echo "$0: $IWCOMMAND sens $SENS" | $LOGGER + $IWCOMMAND sens $SENS +fi +if [ -n "$RATE" ] ; then + echo "$0: $IWCOMMAND rate $RATE" | $LOGGER + $IWCOMMAND rate $RATE +fi +if [ -n "$RTS" ] ; then + echo "$0: $IWCOMMAND rts $RTS" | $LOGGER + $IWCOMMAND rts $RTS +fi +if [ -n "$FRAG" ] ; then + echo "$0: $IWCOMMAND frag $FRAG" | $LOGGER + $IWCOMMAND frag $FRAG +fi +# More specific parameters +if [ -n "$IWCONFIG" ] ; then + echo "$0: $IWCOMMAND $IWCONFIG" | $LOGGER + $IWCOMMAND $IWCONFIG +fi +if [ -n "$IWSPY" ] ; then + echo "$0: $IWSPYCMD $IWSPY" | $LOGGER + $IWSPYCMD $IWSPY +fi +# For RaLink cards, the SSID must be set right before configuring WPAPSK/TKIP parameters +# using iwpriv commands in order to generate the wpapsk password. This should not hurt other cards: +if [ -n "$ESSID" ] ; then + echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER + $IWCOMMAND essid "$ESSID" +fi +# The iwpriv can set one private IOCTL at the time, so if the $IWPRIV +# variable contains multiple pipe ('|') separated settings, we split them here: +# WARNING: if your iwpriv commands contain a WEP/WPA key, these can be logged +# in /var/log/messages! +if [ -n "$IWPRIV" ] ; then + echo "${IWPRIV}|" | \ + while read -d '|' iwi; do + if [ -n "$iwi" ]; then + echo "$0: '$IWPRIVCMD $iwi'" | $LOGGER + $IWPRIVCMD $iwi + fi + done +fi + +################## +# WPA_SUPPLICANT # +################## + +# Support for WPA (wireless protected access) is provided by wpa_supplicant +# for those drivers that support it (and it looks like wpa_supplicant is +# the future for WPA support in Linux anyway) +if [ "$WPA" = "wpa_supplicant" ] || [ "$WPA" = "wpaxsupplicant" ] && [ -x ${SUPPATH}/wpa_supplicant ]; then + # Interface down, so wpa_supplicant can associate with the AP + $IFCOMMAND down + #WPACONF=${WPACONF:-/etc/wpa_supplicant.conf} + WPA_OPTIONS="" + [ ${WPADRIVER} ] && WPA_OPTIONS="-D${WPADRIVER}" # specify the driver + [ ${WPA} = "wpaxsupplicant" ] && WPA_OPTIONS="${WPA_OPTIONS} -e" # Use external xsupplicant (disables the internal supplicant) + + # We leave a running wpa_supplicant process in peace: + WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '` + if [ ${WPAPID} ]; then + echo "$0: wpa_supplicant found running already" | $LOGGER + else + echo "$0: wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE" | $LOGGER + ${SUPPATH}/wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE + fi + + # Buy wpa_supplicant some time to authenticate before bringing the + # interface back up... but we don't wait forever: + # You can increase this value in rc.inet1.conf (WLAN_WPAWAIT) or rc.wireless.conf (WPAWAIT) + # if your card takes longer to associate: + WPAWAIT=${WPAWAIT:-10} + wi=0 + while [ $wi -lt $WPAWAIT ]; do + wi=$(($wi+1)); sleep 1 + if (grep -q "^ctrl_interface=" ${WPACONF}); then + if (LC_ALL=C ${SUPPATH}/wpa_cli -i$INTERFACE status|grep -q "^wpa_state=COMPLETED"); then break; fi + else + if (LC_ALL=C ${IWCOMMAND}|grep -Eq "Encryption key:....-"); then break; fi + fi + done + if [ $wi -eq $WPAWAIT ]; then + echo "WPA authentication did not complete, try running '/etc/rc.d/rc.inet1 ${INTERFACE}_start' in a few seconds." | $LOGGER + fi + # Bring interface up to avoid 'not ready' errors when calling iwconfig + $IFCOMMAND up + sleep 3 + +else + + # ESSID need to be last: most devices re-perform the scanning/discovery + # when this is set, and things like encryption keys had better be + # defined if we want to discover the right set of APs/nodes. + # NOTE: when automatic association does not work, but you manage to get + # an IP address by manually setting the ESSID and then calling dhcpcd, + # then the cause might be the incorrect definition of your ESSID="bla" + # parameter in rc.wireless.conf. + # Debug your wireless problems by running 'iwevent' while the card + # is being configured. + if [ -n "$ESSID" ] ; then + echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER + $IWCOMMAND essid "$ESSID" + fi + +fi diff --git a/source/n/wireless-tools/scripts/rc.wireless.conf b/source/n/wireless-tools/scripts/rc.wireless.conf new file mode 100644 index 000000000..d02d7c2cc --- /dev/null +++ b/source/n/wireless-tools/scripts/rc.wireless.conf @@ -0,0 +1,225 @@ +# Wireless LAN adapter configuration +# +# Theory of operation : +# +# The script attempts to match a block of settings to the specific wireless +# card inserted, the *first* block matching the card is used. +# The address format is "hwaddr", with * as a wildcard. +# 'hwaddr' is the unique MAC address identifier of the wireless card. +# The MAC address is usually printed on the card, or can be found via ifconfig. +# Some examples here use only half of the MAC address with a wildcard to +# match a whole family of cards... +# +# All the Wireless specific configuration is done through the Wireless +# Extensions, so we will just call 'iwconfig' with the right parameters +# defined below. +# Of course, you need to have iwconfig installled on your system. +# To download iwconfig, or for more info on Wireless Extensions : +# http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html +# +# Note : you don't need to fill all parameters, leave them blank, in most +# cases the driver will initialise itself with sane defaults values or +# automatically figure out the value... And no drivers do support all +# possible settings... +# +# -- This is a modified '/etc/pcmcia/wireless.opts' script -- +# -- I added sections for Prism/GT and Atheros based cards -- +# -- (supported by the prism54 and madwifi drivers) -- +# -- 16/sep/2004 * Eric Hameleers -- +# + +VERBOSE=1 + +case "$HWADDR" in + +## NOTE : Comment out the following five lines to activate the samples below ... +## --------- START SECTION TO REMOVE ----------- +## Pick up any Access Point, should work on most 802.11 cards +*) + INFO="Any ESSID" + ESSID="any" + ;; +## ---------- END SECTION TO REMOVE ------------ + + +# Here are a few examples with a few Wireless LANs supported... +# The matching is done on the first 3 bytes of the MAC address + +# SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter +00:04:E2:*) + INFO="SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter" + # ESSID (extended network name) : My Network, any + ESSID="any" + # NWID/Domain (cell identifier) : 89AB, 100, off + NWID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="Managed" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="7" + # Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm) + SENS="" + # Bit rate : auto, 1M, 11M,54M + RATE="auto" + # Encryption key : 4567-89AB-CD, s:password + # Example for 40-bit encryption: + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + # Example for 104-bit encryption (aka 128-bit WEP): + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="" + # RTS threshold : off, 500 + RTS="" + # Fragmentation threshold : off, 1000 + FRAG="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" +;; + +# Multiband Atheros based 802.11a/b/g universal NIC cards +00:05:4E:*) + INFO="Multiband Atheros based 802.11a/b/g universal NIC" + # ESSID (extended network name) : My Network, any + ESSID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="Managed" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="7" + # Bit rate : auto, 1M, 11M,54M + RATE="auto" + # Encryption key : 4567-89AB-CD, s:password + # Example for 40-bit encryption: + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + # Example for 104-bit encryption (aka 128-bit WEP): + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" + ;; + +# Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA) +# Note : wvlan_cs driver only, and version 1.0.4+ for encryption support +00:60:1D:*|00:02:2D:*) + INFO="Wavelan IEEE example (Lucent default settings)" + ESSID="Wavelan Network" + MODE="Managed" + #RATE="auto" + KEY="s:secu1" + # To set all four keys, use : + #KEY="s:secu1 [1] key s:secu2 [2] key s:secu3 [3] key s:secu4 [4] key [1]" + # For the RG 1000 Residential Gateway: The ESSID is the identifier on + # the unit, and the default key is the last 5 digits of the same. + #ESSID="084d70" + #KEY="s:84d70" + ;; + +# Cisco/Aironet 4800/3x0 +# Note : MPL driver only (airo/airo_cs), version 1.3 or later +00:40:96:*|00:02:8A:*) + INFO="Cisco/Aironet example (Cisco default settings)" + ESSID="any" + # To set all four ESSID, use iwconfig v21 and the same trick as above + MODE="Managed" + #RATE="11M auto" + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="off" + ;; + +# Samsung MagicLan (+ some other PrismII cards) +# Note : Samsung binary library driver, version 1.20 or later +00:00:F0:*|00:02:78:*) + INFO="Samsung MagicLan example (Samsung default settings)" + ESSID="any" + MODE="Managed" + CHANNEL="4" + RATE="auto" + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + #IWCONFIG="power on" + ;; + +# Raytheon Raylink/WebGear Aviator2.4 +# Note : doesn't work yet, please use for debugging only :-( +00:00:8F:*|00:00:F1:*) + INFO="Raylink/Aviator2.4 example (Aviator default ad-hoc setting)" + ESSID="ADHOC_ESSID" + MODE="Ad-Hoc" + RATE="auto" + IWPRIV="set_framing 1" + ;; + +# Old Lucent Wavelan +08:00:0E:*) + INFO="Wavelan example (Lucent default settings)" + NWID="0100" + MODE="Ad-Hoc" + FREQ="2.425G" + KEY="off" + ;; + +# Netwave (Xircom Netwave/Netwave Airsurfer) +00:80:C7:*) + INFO="Netwave example (Netwave default settings)" + NWID="100" + KEY="00" + ;; + +# Proxim RangeLan2/Symphony (what is the MAC address ???) +XX:XX:XX:*) + INFO="Proxim RangeLan2/Symphony example" + NWID="0" + MODE="Master" + CHANNEL="15" + IWPRIV="setsubchan 1" + ;; + +# No Wires Needed Swallow 550 and 1100 setting (what is the MAC address ???) +XX:XX:XX:*) + INFO="NWN Swallow example" + ESSID="session" + KEY="0000-0000-00 open" + ;; + +# Symbol Spectrum24 setting (what is the MAC address ???) +XX:XX:XX:*) + INFO="Symbol Spectrum24 example" + ESSID="Essid string" + ;; + +# Generic example (decribe all possible settings) +*) + INFO="Fill with your own settings..." + # ESSID (extended network name) : My Network, any + ESSID="" + # NWID/Domain (cell identifier) : 89AB, 100, off + NWID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="" + # Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm) + SENS="" + # Bit rate : auto, 1M, 11M + RATE="" + # Encryption key : 4567-89AB-CD, s:password + KEY="" + # RTS threshold : off, 500 + RTS="" + # Fragmentation threshold : off, 1000 + FRAG="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" + ;; +esac diff --git a/source/n/wireless-tools/slack-desc b/source/n/wireless-tools/slack-desc new file mode 100644 index 000000000..7b2ca529b --- /dev/null +++ b/source/n/wireless-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wireless-tools: wireless-tools (utilities for wireless networking) +wireless-tools: +wireless-tools: This package contains tools and a library used for configuring +wireless-tools: wireless networking interfaces: +wireless-tools: iwconfig (the main wireless tool), iwlist (display more detailed +wireless-tools: information than iwconfig), iwspy (get stats per MAC address and +wireless-tools: more), iwpriv (set driver private ioctls), iwgetid (show the +wireless-tools: ESSID or NWID of a device), iwevent (display wireless events), +wireless-tools: ifrename (rename a network interface). +wireless-tools: +wireless-tools: The wireless-tools were written by Jean Tourrilhes. diff --git a/source/n/wireless-tools/wireless_tools.SlackBuild b/source/n/wireless-tools/wireless_tools.SlackBuild new file mode 100755 index 000000000..049fb47e0 --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=29 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wireless-tools +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf wireless_tools.$VERSION +tar xvf $CWD/wireless_tools.$VERSION.tar.gz || exit 1 +cd wireless_tools.$VERSION +zcat $CWD/wireless_tools.nowhine.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 +zcat $CWD/wireless_tools.static.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +mkdir -p $PKG/sbin +cp -a ifrename iwconfig iwevent iwgetid iwlist iwpriv iwspy $PKG/sbin +chmod 755 $PKG/sbin/* +# The library seems to be used by kdenetwork, but since the .soname in the shared library +# doesn't seem to be forward-thinking we'll leave that out still: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libiw.a $PKG/usr/lib${LIBDIRSUFFIX} + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/include +cp -a iwlib.h wireless.h $PKG/usr/include +chmod 644 $PKG/usr/include/*.h + +mkdir -p $PKG/usr/man/man5 +cat iftab.5 | gzip -9c > $PKG/usr/man/man5/iftab.5.gz +mkdir -p $PKG/usr/man/man7 +cat wireless.7 | gzip -9c > $PKG/usr/man/man7/wireless.7.gz +mkdir -p $PKG/usr/man/man8 +for file in *.8 ; do + cat $file | gzip -9c > $PKG/usr/man/man8/$file.gz +done + +mkdir -p $PKG/usr/doc/wireless-tools-$VERSION +cp -a \ + COPYING INSTALL *.txt README* \ + $PKG/usr/doc/wireless-tools-$VERSION +chmod 644 $PKG/usr/doc/wireless-tools-$VERSION/* + +# Add init scripts from Eric Hameleers: +mkdir -p $PKG/etc/rc.d +cat $CWD/scripts/rc.wireless > $PKG/etc/rc.d/rc.wireless.new +chmod 755 $PKG/etc/rc.d/rc.wireless.new +# This might contain a secret key, so we'll use chmod 600: +cat $CWD/scripts/rc.wireless.conf > $PKG/etc/rc.d/rc.wireless.conf.new +chmod 600 $PKG/etc/rc.d/rc.wireless.conf.new + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wireless-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/wireless-tools/wireless_tools.nowhine.diff b/source/n/wireless-tools/wireless_tools.nowhine.diff new file mode 100644 index 000000000..71d4d16fa --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.nowhine.diff @@ -0,0 +1,11 @@ +--- ./iwlib.c.orig 2004-10-27 13:55:17.000000000 -0700 ++++ ./iwlib.c 2005-07-13 22:20:33.000000000 -0700 +@@ -102,7 +102,7 @@ + "Monitor" }; + + /* Disable runtime version warning in iw_get_range_info() */ +-int iw_ignore_version = 0; ++int iw_ignore_version = 1; + + /************************ SOCKET SUBROUTINES *************************/ + diff --git a/source/n/wireless-tools/wireless_tools.static.diff b/source/n/wireless-tools/wireless_tools.static.diff new file mode 100644 index 000000000..71f4ec3fa --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.static.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2004-10-11 15:16:15.000000000 -0700 ++++ ./Makefile 2005-07-25 00:18:46.000000000 -0700 +@@ -17,7 +17,7 @@ + ## Uncomment this to build tools using static version of the library + ## Mostly useful for embedded platforms without ldd, or to create + ## a local version (non-root). +-# BUILD_STATIC = y ++BUILD_STATIC = y + + ## Uncomment this to build without using libm (less efficient) + ## This is mostly useful for embedded platforms without maths. diff --git a/source/n/wpa_supplicant/README.slackware b/source/n/wpa_supplicant/README.slackware new file mode 100644 index 000000000..7ab40a289 --- /dev/null +++ b/source/n/wpa_supplicant/README.slackware @@ -0,0 +1,55 @@ +================================================= +How do I get my card to use WPA-PSK in Slackware? +================================================= + +First off: wpa_supplicant REQUIRES the AP to broadcast the SSID. When the AP +hides its SSID, all you will get out of wpa_supplicant is the message: +"No suitable AP found" + +Also, read the MADwifi FAQ (http://madwifi.sourceforge.net/dokuwiki/doku.php) +since it contains a wealth of information. + +This being said, you'll have to do the following (as root): +Edit the file named /etc/wpa_supplicant.conf and add these lines: + +network={ + scan_ssid=0 + proto=WPA + key_mgmt=WPA-PSK + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 +} + +Then execute: + +/usr/sbin/wpa_passphrase YOURSSID passphrase + +with the SSID of your AP and the passphrase you've entered in its WPA-PSK configuration. You'll receive an output, which looks like this: + +network={ + ssid="YOURSSID" + #psk="passphrase" + +psk=66a4bfb03de5656cf26cfa03a116097546046f4aea11ee044b841171207d8308 +} + +Copy the three lines within the network-tag into your own entry in wpa_supplicant.conf and change the permissions after you've finished editing: + +chmod 640 /etc/wpa_supplicant.conf + +To get your network device up and running, execute: + +### /usr/sbin/wpa_supplicant -Bw -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi ### +### you don't have to run the above command by hand, because it will ### +### be executed by the rc.inet1 command that you run: ### + +/etc/rc.d/rc.inet1 ath0_start + +In case you want to see the wpa_supplicant in action, start it on the command line before enabling the wireless device, by running: +/usr/sbin/wpa_supplicant -dw -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi +The terminal where you've started the wpa_supplicant should now show the communication between your wlan card and the AP. If you got everything up and running you can let Slackware's init script take over by killing wpa_supplicant and running: + +/etc/rc.d/rc.inet1 ath0_restart + +Studying the wpa_supplicant README is also highly recommended for further insight! + diff --git a/source/n/wpa_supplicant/slack-desc b/source/n/wpa_supplicant/slack-desc new file mode 100644 index 000000000..4313b3783 --- /dev/null +++ b/source/n/wpa_supplicant/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +wpa_supplicant: wpa_supplicant (WPA/WPA2/IEEE 802.1X Supplicant) +wpa_supplicant: +wpa_supplicant: wpa_supplicant is a WPA Supplicant for Linux with support for WPA and +wpa_supplicant: WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE 802.1X/WPA +wpa_supplicant: component that is used in the client stations. It implements key +wpa_supplicant: negotiation with a WPA Authenticator and it controls the roaming and +wpa_supplicant: IEEE 802.11 authentication/association of the wlan driver. +wpa_supplicant: +wpa_supplicant: More info: http://hostap.epitest.fi/wpa_supplicant/ +wpa_supplicant: +wpa_supplicant: diff --git a/source/n/wpa_supplicant/wpa_gui.png b/source/n/wpa_supplicant/wpa_gui.png Binary files differnew file mode 100644 index 000000000..a72f35691 --- /dev/null +++ b/source/n/wpa_supplicant/wpa_gui.png diff --git a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild new file mode 100755 index 000000000..a38fed35b --- /dev/null +++ b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild @@ -0,0 +1,248 @@ +#!/bin/sh + +# Copyright 2004-2008 Eric Hameleers, Eindhoven, NL +# Copyright 2008-2009 Patrick J. Volkerding, Sebeka, MN, USA +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- + +PRGNAM=wpa_supplicant +VERSION=${VERSION:-0.6.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +DOCS="ChangeLog ../COPYING README README-WPS *.txt examples wpa_supplicant.conf.sample" + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +# Support for some of the wireless drivers needs the header files of those +# drivers. +# Change these *_INCLUDES variables to where _your_ driver include directory +# is located. If any of these directories is found, support for the driver +# will be added to wpa_supplicant. +# My madwifi package for Slackware installs the headers here: +MADWIFI_INCLUDES="/usr/include/madwifi" +HERMES_INCLUDES="" +BROADCOM_INCLUDES="" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +if ! [ -f $CWD/${PRGNAM}.defconfig ]; then + echo "Could not find ${PRGNAM}.defconfig!" + exit 1 +fi + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 || exit 1 +cd ${PRGNAM}-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +#sed -i -e \ +# "s/^#define VERSION_STR \"\(.*\)\"/#define VERSION_STR \"\1_$VERSION\"/" \ +# src/common/version.h + +# The source code has been re-organized: +cd wpa_supplicant + +# Create the configuration file for building wpa_supplicant: +cat $CWD/${PRGNAM}.defconfig > .config +if [ ! -z $MADWIFI_INCLUDES -a -d $MADWIFI_INCLUDES ]; then + echo "Adding madwifi driver (Atheros) support" + cat <<-EOT >> .config + CONFIG_DRIVER_MADWIFI=y + CFLAGS += -I${MADWIFI_INCLUDES} + EOT +fi +if [ ! -z $HERMES_INCLUDES -a -d $HERMES_INCLUDES ]; then + echo "Adding hermes driver (Agere) support" + cat <<-EOT >> .config + CONFIG_DRIVER_HERMES=y + CFLAGS += -I${HERMES_INCLUDES} + EOT +fi +if [ ! -z $BROADCOM_INCLUDES -a -d $BROADCOM_INCLUDES ]; then + echo "Adding broadcom driver support" + cat <<-EOT >> .config + CONFIG_DRIVER_BROADCOM=y + CFLAGS += -I${BROADCOM_INCLUDES} + EOT +fi +make $NUMJOBS || make || exit 1 + +# Build the Qt4 GUI client +make wpa_gui-qt4 || exit 1 + +# Make man pages if needed +( cd doc/docbook + if ! ls *.? >/dev/null 2>&1 ; then + make man + fi +) + +# Do not build the developer docs: +#PATH=".:$PATH" make docs + +# This goes into the doc directory later on: +cp wpa_supplicant.conf wpa_supplicant.conf.sample + +# Install binaries: +mkdir -p $PKG/usr/sbin $PKG/usr/bin +cp wpa_supplicant wpa_passphrase wpa_cli $PKG/usr/sbin/ +cp wpa_gui-qt4/wpa_gui $PKG/usr/bin/ + +# Install dbus configuration file: +mkdir -p $PKG/etc/dbus-1/system.d/ +cp dbus-wpa_supplicant.conf \ + $PKG/etc/dbus-1/system.d/dbus-wpa_supplicant.conf.new + +# Install a .desktop file for wpa_gui: +mkdir -p $PKG/usr/share/applications +cat <<EOT > $PKG/usr/share/applications/wpa_gui.desktop +[Desktop Entry] +Name=wpa_gui +Comment[en]=Wpa_supplicant management +Exec=kdesu wpa_gui +Icon=wpa_gui +Type=Application +Categories=Qt;Network; +EOT + +# The icon used for the menu (converted from the wpa_gui.svg in the source) +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/wpa_gui.png $PKG/usr/share/pixmaps/ + +# Install man pages: +for m in 5 8; do + mkdir -p $PKG/usr/man/man${m} + cp doc/docbook/*.${m} $PKG/usr/man/man${m}/ +done + +# Install a default configuration file: +mkdir -p $PKG/etc +cat <<-_EOT_ > $PKG/etc/wpa_supplicant.conf.new + # See /usr/doc/${PRGNAM}-${VERSION}/wpa_supplicant.conf.sample + # for many more options that you can use in this file. + + # This line enables the use of wpa_cli which is used by rc.wireless + # if possible (to check for successful association) + ctrl_interface=/var/run/wpa_supplicant + # By default, only root (group 0) may use wpa_cli + ctrl_interface_group=0 + eapol_version=1 + ap_scan=1 + fast_reauth=1 + #country=US + + # WPA protected network, supply your own ESSID and WPAPSK here: + network={ + scan_ssid=0 + ssid="your_essid_here" + proto=WPA RSN + key_mgmt=WPA-PSK + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 + psk=your_64_char_psk_here + priority=10 + } + + # Plaintext connection (no WPA, no IEEE 802.1X), + # nice for hotel/airport types of WiFi network. + network={ + key_mgmt=NONE + priority=0 + } + _EOT_ + +# Create the 'doinst.sh' script: +mkdir -p $PKG/install 2>/dev/null +cat <<EOINS > $PKG/install/doinst.sh +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} +config etc/wpa_supplicant.conf.new +config etc/dbus-1/system.d/dbus-wpa_supplicant.conf.new + +EOINS + +# Add the documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $CWD/README.slackware $PKG/usr/doc/${PRGNAM}-${VERSION}/ +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION/* + +# This should only be read/write by root: +chmod 600 $PKG/etc/wpa_supplicant.conf.new + +# Compress the man page(s): +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +if [ -f $CWD/doinst.sh ]; then + cat $CWD/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/n/wpa_supplicant/wpa_supplicant.defconfig b/source/n/wpa_supplicant/wpa_supplicant.defconfig new file mode 100644 index 000000000..4241be9f7 --- /dev/null +++ b/source/n/wpa_supplicant/wpa_supplicant.defconfig @@ -0,0 +1,25 @@ +CONFIG_DRIVER_HOSTAP=y +CONFIG_DRIVER_NDISWRAPPER=y +CONFIG_DRIVER_ATMEL=y +CONFIG_DRIVER_IPW=y +CONFIG_DRIVER_RALINK=y +CONFIG_DRIVER_WEXT=y +CONFIG_DRIVER_NL80211=y +CONFIG_DRIVER_WIRED=y +CONFIG_IEEE8021X_EAPOL=y +CONFIG_EAP_MD5=y +CONFIG_EAP_MSCHAPV2=y +CONFIG_EAP_TLS=y +CONFIG_EAP_PEAP=y +CONFIG_EAP_TTLS=y +CONFIG_EAP_GTC=y +CONFIG_EAP_OTP=y +CONFIG_EAP_LEAP=y +CONFIG_WPS=y +CONFIG_PKCS12=y +CONFIG_SMARTCARD=y +CONFIG_CTRL_IFACE=y +CONFIG_READLINE=y +CONFIG_BACKEND=file +CONFIG_PEERKEY=y +CONFIG_CTRL_IFACE_DBUS=y diff --git a/source/n/yptools/nsswitch.conf-nis b/source/n/yptools/nsswitch.conf-nis new file mode 100644 index 000000000..8f0805f00 --- /dev/null +++ b/source/n/yptools/nsswitch.conf-nis @@ -0,0 +1,45 @@ +# +# /etc/nsswitch.conf +# +# This is an example Name Service Switch config file with NIS+ and NIS +# enabled. If you use these services, you can simply copy this file to +# /etc/nsswitch.conf instead of doing a lot of editing. +# +# This file should be sorted with the most-used services at the beginning. +# +# The entry '[NOTFOUND=return]' means that the search for an +# entry should stop if the search in the previous entry turned +# up nothing. Note that if the search failed due to some other reason +# (like no NIS server responding) then the search continues with the +# next entry. +# +# Legal entries are: +# +# nisplus or nis+ Use NIS+ (NIS version 3) +# nis or yp Use NIS (NIS version 2), also called YP +# dns Use DNS (Domain Name Service) +# files Use the local files +# [NOTFOUND=return] Stop searching if not found so far +# + +passwd: files nisplus nis +shadow: files nisplus nis +group: files nisplus nis + +hosts: files nisplus nis dns + +services: nisplus [NOTFOUND=return] files +networks: nisplus [NOTFOUND=return] files +protocols: nisplus [NOTFOUND=return] files +rpc: nisplus [NOTFOUND=return] files +ethers: nisplus [NOTFOUND=return] files +netmasks: nisplus [NOTFOUND=return] files +bootparams: nisplus [NOTFOUND=return] files + +netgroup: nisplus + +publickey: nisplus + +automount: files nisplus +aliases: files nisplus + diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp new file mode 100644 index 000000000..4c3b8decf --- /dev/null +++ b/source/n/yptools/rc.yp @@ -0,0 +1,58 @@ +#!/bin/sh +# /etc/rc.d/rc.yp +# +# Start NIS (Network Information Service). NIS provides network-wide +# distribution of hostname, username, and other information databases. +# After configuring NIS, you will need to uncomment the parts of this +# script that you want to run. +# +# NOTE: for detailed information about setting up NIS, see the +# documentation in /usr/doc/yp-tools, /usr/doc/ypbind, +# /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO. + +# # First, we must setup the NIS domainname. NOTE: this is not necessarily +# # the same as your DNS domainname, set in /etc/resolv.conf. The NIS +# # domainname is the name of a domain served by your NIS server. +# +# if [ -r /etc/defaultdomain ]; then +# nisdomainname `cat /etc/defaultdomain` +# fi +# +# # NIS SERVER CONFIGURATION: +# # If you are the master server for the NIS domain, you must run ypserv to +# # service clients on the domain. +# if [ -x /usr/sbin/ypserv ]; then +# echo "Starting NIS server: /usr/sbin/ypserv" +# /usr/sbin/ypserv +# fi +# +# # If you are the master server for the NIS domain, you must also run +# # rpc.yppasswdd, which is the RPC server that lets users change their +# # passwords. You might also want users to be able to change their shell +# # and GECOS information, in which case you should comment out the first +# # yppasswdd line and uncomment out the second one. +# if [ -x /usr/sbin/rpc.yppasswdd ]; then +# echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd" +# /usr/sbin/rpc.yppasswdd +# # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn" +# # /usr/sbin/rpc.yppasswdd -e chsh -e chfn +# fi +# +# # If you have NIS slave servers, you might also want to start up +# # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers. +# # Alternatively, rpc.ypxfrd can be run out of inetd. +# if [ -x /usr/sbin/rpc.ypxfrd ]; then +# echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd" +# /usr/sbin/rpc.ypxfrd +# fi +# +# # NIS CLIENT CONFIGURATION: +# # If you are a NIS client, all you need to do is run ypbind, which will +# # broadcast across the network to find a server. Your NIS server might +# # also be a client. +# if [ -d /var/yp ]; then +# echo "Starting NIS services: /usr/sbin/ypbind -broadcast" +# /usr/sbin/ypbind -broadcast +# fi +# +# # Done setting up NIS. diff --git a/source/n/yptools/slack-desc b/source/n/yptools/slack-desc new file mode 100644 index 000000000..bedfb39e6 --- /dev/null +++ b/source/n/yptools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +yptools: yptools (NIS servers and clients) +yptools: +yptools: NIS stands for Network Information Service. NIS is usually used to +yptools: provide /etc/passwd and /etc/group information throughout the network. +yptools: Most Sun-based networks run NIS, and Linux machines can take full +yptools: advantage of existing NIS service or provide NIS service themselves. +yptools: +yptools: +yptools: +yptools: +yptools: diff --git a/source/n/yptools/yp-tools-2.9.tar.bz2.sign b/source/n/yptools/yp-tools-2.9.tar.bz2.sign new file mode 100644 index 000000000..2eaf4b97d --- /dev/null +++ b/source/n/yptools/yp-tools-2.9.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.1 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBA1tX5yGugalF9Dw4RApxKAJ4wnAJLtV+fLyqydt6C7/jlHI0S+ACeN8d9 +z4e9NxBySBZBdFi8xwGxHTo= +=JakC +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign b/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign new file mode 100644 index 000000000..183edfaed --- /dev/null +++ b/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBCyRFDyGugalF9Dw4RAlOUAJ4kDj2kmYi2cVZqf0dLBlwexfqWhwCfTORG +5qMKKLSrKQ8Mx/1l/ffOmDk= +=zaLU +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/ypserv-2.18.tar.bz2.sign b/source/n/yptools/ypserv-2.18.tar.bz2.sign new file mode 100644 index 000000000..017a6d21c --- /dev/null +++ b/source/n/yptools/ypserv-2.18.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBC3lhmyGugalF9Dw4RArUaAJwP88PBcrq6A8W7600Aa1MOIeySugCfW02y +jYf0vlXo93Vs13VQWcCzzo0= +=ZIYE +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/yptools.SlackBuild b/source/n/yptools/yptools.SlackBuild new file mode 100755 index 000000000..96f217245 --- /dev/null +++ b/source/n/yptools/yptools.SlackBuild @@ -0,0 +1,272 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +# Package version number: +VERSION=2.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +YPTOOLS=$VERSION +YPBINDMT=1.19.1 +#YPMAKE=0.11 +YPSERV=2.18 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-yptools +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+==============+" +echo "| yp-tools-$YPTOOLS |" +echo "+==============+" +cd $TMP +mkdir -p $PKG/etc +# Add etc/nsswitch.conf-nis as a full NIS+ example config file: +zcat $CWD/nsswitch.conf-nis.gz > $PKG/etc/nsswitch.conf-nis.new +rm -rf yp-tools-$YPTOOLS +tar xvf $CWD/yp-tools-$YPTOOLS.tar.bz2 || exit 1 +cd yp-tools-$YPTOOLS || exit 1 +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-domainname \ + $ARCH-slackware-linux +# Don't ask +make clean +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-domainname \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/var/yp +cat etc/nicknames > $PKG/var/yp/nicknames.new +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat po/de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/yp-tools.mo +cd src +mkdir -p $PKG/usr/bin +cat ypcat > $PKG/usr/bin/ypcat +cat ypmatch > $PKG/usr/bin/ypmatch +cat yppasswd > $PKG/usr/bin/yppasswd +cat ypwhich > $PKG/usr/bin/ypwhich +( cd $PKG/usr/bin + chmod 755 ypcat ypmatch yppasswd ypwhich ) +( cd $PKG/usr/bin + rm -rf ypchfn ypchsh + ln -sf yppasswd ypchfn + ln -sf yppasswd ypchsh ) +mkdir -p $PKG/usr/sbin +cat yppoll > $PKG/usr/sbin/yppoll +cat ypset > $PKG/usr/sbin/ypset +( cd $PKG/usr/sbin + chmod 755 yppoll ypset ) +cd ../man +mkdir -p $PKG/usr/man/man{1,5,8} +cat nicknames.5 | gzip -9c > $PKG/usr/man/man5/nicknames.5.gz +for file in *.1 ; do + cat $file | gzip -9c > $PKG/usr/man/man1/$file.gz +done +for file in *.8 ; do + cat $file | gzip -9c > $PKG/usr/man/man8/$file.gz +done +cd .. +mkdir -p $PKG/usr/doc/yp-tools-$YPTOOLS +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/yp-tools-$YPTOOLS +chown -R root:root $PKG/usr/doc/yp-tools-$YPTOOLS +chmod 644 $PKG/usr/doc/yp-tools-$YPTOOLS/* + +echo "+================+" +echo "| ypbind-mt-$YPBINDMT |" +echo "+================+" +cd $TMP +rm -rf ypbind-mt-$YPBINDMT +tar xvf $CWD/ypbind-mt-$YPBINDMT.tar.bz2 || exit 1 +cd ypbind-mt-$YPBINDMT || exit 1 +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux +# Hard to believe how sloppy these tarballs are. This is why I got complaints +# that YP didn't work but it was "fixed with a simple recompile." +make clean +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/etc +cat etc/yp.conf > $PKG/etc/yp.conf.new +cat src/ypbind > $PKG/usr/sbin/ypbind +chmod 755 $PKG/usr/sbin/ypbind +cat man/yp.conf.5 | gzip -9c > $PKG/usr/man/man5/yp.conf.5.gz +cat man/ypbind.8 | gzip -9c > $PKG/usr/man/man8/ypbind.8.gz +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat po/de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/ypbind-mt.mo +mkdir -p $PKG/usr/doc/ypbind-mt-$YPBINDMT +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/ypbind-mt-$YPBINDMT +chown root:root $PKG/usr/doc/ypbind-mt-$YPBINDMT/* +chmod 644 $PKG/usr/doc/ypbind-mt-$YPBINDMT/* + +# OBSOLETE (I don't see anyone packaging this anymore... inform me if it still +# works and you use and care about it) +#echo "+=============+" +#echo "| ypmake-$YPMAKE |" +#echo "+=============+" +#cd $TMP +#rm -rf ypmake-$YPMAKE +#tar xvf $CWD/ypmake-$YPMAKE.tar.bz2 || exit 1 +#cd ypmake-$YPMAKE || exit 1 +#./configure +## I'm just not taking chances with the cleanliness of these sources anymore... +#make clean +#./configure +#make +#cat ypmake > $PKG/usr/sbin/ypmake +#chmod 755 $PKG/usr/sbin/ypmake +#mkdir -p $PKG/usr/lib/yp/ypmake +#install -o root -g root -m 644 aliases arrays automount config ethers group \ + #gshadow hosts netgroup netid networks passwd protocols publickey rpc \ + #services shadow ypservers $PKG/usr/lib/yp/ypmake +#cat ypmake.conf.sample > $PKG/var/yp/ypmake.conf.new +#cat ypmake.conf.man | gzip -9c > $PKG/usr/man/man5/ypmake.conf.5.gz +#cat ypmake.man | gzip -9c > $PKG/usr/man/man8/ypmake.8.gz +#mkdir -p $PKG/usr/doc/ypmake-$YPMAKE +#cp -a CHANGES README TODO $PKG/usr/doc/ypmake-$YPMAKE +#chmod 644 $PKG/usr/doc/ypmake-$YPMAKE/* +#chown root:root $PKG/usr/doc/ypmake-$YPMAKE/* + +echo "+============+" +echo "| ypserv-$YPSERV |" +echo "+============+" +cd $TMP +rm -rf ypserv-$YPSERV +tar xvf $CWD/ypserv-$YPSERV.tar.bz2 || exit 1 +cd ypserv-$YPSERV || exit 1 +# --with-ndbm=yes +# Support for this was discontinued upstream +# --enable-tcp-wrapper +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-fqdn \ + --enable-yppasswd \ + $ARCH-slackware-linux +make clean +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-fqdn \ + --enable-yppasswd \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/yp +( cd scripts + for file in create_printcap match_printcap pwupdate ypinit ypxfr_1perday ypxfr_1perhour ypxfr_2perday ; do + cat $file > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file + chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file + done + for file in pwupdate.8 ypinit.8 ; do + gzip -9c $file > $PKG/usr/man/man8/$file.gz + done ) +for FILE in makedbm mknetid revnetgroup yphelper ypxfr ; do + ( cd $FILE + cat $FILE > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$FILE + chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$FILE + cat ${FILE}.8 | gzip -9c > $PKG/usr/man/man8/${FILE}.8.gz ) +done +cat rpc.ypxfrd/ypxfrd.8 | gzip -9c > $PKG/usr/man/man8/ypxfrd.8.gz +for FILE in ypserv rpc.yppasswdd rpc.ypxfrd yppush ; do + ( cd $FILE + cat $FILE > $PKG/usr/sbin/$FILE + chmod 755 $PKG/usr/sbin/$FILE + cat ${FILE}.8 | gzip -9c > $PKG/usr/man/man8/${FILE}.8.gz ) +done +cat rpc.yppasswdd/yppasswdd.8 | gzip -9c > $PKG/usr/man/man8/yppasswdd.8.gz +cat scripts/ypMakefile > $PKG/var/yp/Makefile.new +cat etc/securenets > $PKG/var/yp/securenets.new +echo "# This file is part of the YP server package -- see 'man netgroup'" \ + > $PKG/etc/netgroup.new +cat etc/netgroup >> $PKG/etc/netgroup.new +cat etc/netgroup.5 | gzip -9c > $PKG/usr/man/man5/netgroup.5.gz +cat etc/ypserv.conf.5 | gzip -9c > $PKG/usr/man/man5/ypserv.conf.5.gz +mkdir -p $PKG/usr/include/rpcsvc +cat lib/ypxfrd.x > $PKG/usr/include/rpcsvc/ypxfrd.x +mkdir -p $PKG/usr/doc/ypserv-$YPSERV +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/ypserv-$YPSERV +chmod 644 $PKG/usr/doc/ypserv-$YPSERV/* +chown root:root $PKG/usr/doc/ypserv-$YPSERV/* + +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.yp.gz > $PKG/etc/rc.d/rc.yp.new +chmod 755 $PKG/etc/rc.d/rc.yp.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# install script and package description: +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +config() { + NEW="\$1" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/nsswitch.conf-nis.new +config etc/netgroup.new +config etc/yp.conf.new +config etc/rc.d/rc.yp.new +config var/yp/nicknames.new +config var/yp/Makefile.new +config var/yp/securenets.new +rm -f etc/nsswitch.conf.new etc/nsswitch.conf-nis.new etc/netgroup.new etc/yp.conf.new var/yp/nicknames.new var/yp/Makefile.new var/yp/securenets.new +EOF + +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/yptools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ytalk/doinst.sh b/source/n/ytalk/doinst.sh new file mode 100644 index 000000000..b3014c36e --- /dev/null +++ b/source/n/ytalk/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ytalkrc.new diff --git a/source/n/ytalk/slack-desc b/source/n/ytalk/slack-desc new file mode 100644 index 000000000..d666b2782 --- /dev/null +++ b/source/n/ytalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ytalk: ytalk (multi-user chat program) +ytalk: +ytalk: YTalk is a multi-user chat program. It works almost exactly like the +ytalk: UNIX talk program and even communicates with the same talk daemon, but +ytalk: YTalk allows for multiple connections. +ytalk: +ytalk: +ytalk: +ytalk: +ytalk: +ytalk: diff --git a/source/n/ytalk/ytalk.SlackBuild b/source/n/ytalk/ytalk.SlackBuild new file mode 100755 index 000000000..07c147b04 --- /dev/null +++ b/source/n/ytalk/ytalk.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=${VERSION:-3.3.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ytalk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ytalk-$VERSION +tar xvf $CWD/ytalk-$VERSION.tar.bz2 || exit 1 +cd ytalk-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-x=no \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/ytalkrc $PKG/etc/ytalkrc.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/ytalk-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL README \ + $PKG/usr/doc/ytalk-$VERSION + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ytalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/zd1211-firmware/zd1211-firmware.SlackBuild b/source/n/zd1211-firmware/zd1211-firmware.SlackBuild new file mode 100755 index 000000000..430565dc0 --- /dev/null +++ b/source/n/zd1211-firmware/zd1211-firmware.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=zd1211-firmware +VERSION=${VERSION:-1.4} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM} || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware/zd1211 +cp -a * $PKG/lib/firmware/zd1211 + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a README COPYING $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +zd1211-firmware: zd1211-firmware (Firmware for zd1211 USB wireless) +zd1211-firmware: +zd1211-firmware: This distribution contains the firmware files for the ZD1211 chip, +zd1211-firmware: which is used in WLAN USB sticks. The files are generated from C +zd1211-firmware: header files distributed in the original ZyDAS ZD1211 driver. The +zd1211-firmware: GPL-licensed header files used to produce the firmware blobs are also +zd1211-firmware: present in this distribution. +zd1211-firmware: +zd1211-firmware: The full source of the original ZYDAS driver is available from +zd1211-firmware: http://zd1211.wiki.sourceforge.net/VendorDriver +zd1211-firmware: + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + |