diff options
Diffstat (limited to 'source/a')
441 files changed, 114596 insertions, 0 deletions
diff --git a/source/a/aaa_base/aaa_base.SlackBuild b/source/a/aaa_base/aaa_base.SlackBuild new file mode 100755 index 00000000..3d1a7305 --- /dev/null +++ b/source/a/aaa_base/aaa_base.SlackBuild @@ -0,0 +1,56 @@ +#!/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=13.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-aaa_base + +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_aaa_base.tar.gz + +echo "+======================+" +echo "| repackaging aaa_base |" +echo "+======================+" + +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/slackware-version > $PKG/etc/slackware-version + +# Add lib64 directories on x86_64: +if [ "$ARCH" = "x86_64" ]; then + mkdir -p $PKG/lib64 $PKG/usr/lib64 $PKG/usr/local/lib64 +fi + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/aaa_base-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $PKG +fi diff --git a/source/a/aaa_base/slack-desc b/source/a/aaa_base/slack-desc new file mode 100644 index 00000000..011f90fb --- /dev/null +++ b/source/a/aaa_base/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------------------------------------------------------| +aaa_base: aaa_base (Basic Linux filesystem package) +aaa_base: +aaa_base: Sets up the empty directory tree for Slackware and adds an email to +aaa_base: root's mailbox welcoming them to Linux. :) This package should be +aaa_base: installed first, and never uninstalled. +aaa_base: +aaa_base: +aaa_base: +aaa_base: +aaa_base: +aaa_base: diff --git a/source/a/aaa_base/slackware-version b/source/a/aaa_base/slackware-version new file mode 100644 index 00000000..0c779cf8 --- /dev/null +++ b/source/a/aaa_base/slackware-version @@ -0,0 +1 @@ +Slackware 13.0.0.0.0 diff --git a/source/a/aaa_elflibs/aaa_elflibs.SlackBuild b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild new file mode 100755 index 00000000..fd5ade86 --- /dev/null +++ b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild @@ -0,0 +1,73 @@ +#!/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=aaa_elflibs +VERSION=${VERSION:-13.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +cat $CWD/symlinks-to-tracked-libs \ + | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \ + -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \ + | while read library ; do + ( [ ! -e $library ] && continue + echo "Adding $library" + mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + rm -f $(readlink $library) + cp -a $(dirname $library)/$(readlink $library) . + ) +done +cat $CWD/tracked-files \ + | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \ + -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \ + | while read library ; do + ( [ ! -e $library ] && continue + echo "Adding $library" + mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + ) +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/a/aaa_elflibs/slack-desc b/source/a/aaa_elflibs/slack-desc new file mode 100644 index 00000000..29a6c8fb --- /dev/null +++ b/source/a/aaa_elflibs/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------------------------------------------------------| +aaa_elflibs: aaa_elflibs (shared libraries needed by many programs) +aaa_elflibs: +aaa_elflibs: This is a collection of shared libraries needed to run Linux programs. +aaa_elflibs: ELF (Executable and Linking Format) is the standard Linux binary +aaa_elflibs: format. These libraries are gathered from other Slackware packages +aaa_elflibs: and are intended to give a fairly complete initial set of libraries. +aaa_elflibs: This package should be not upgraded or reinstalled (it could copy +aaa_elflibs: over newer library versions). +aaa_elflibs: +aaa_elflibs: +aaa_elflibs: diff --git a/source/a/aaa_elflibs/symlinks-to-tracked-libs b/source/a/aaa_elflibs/symlinks-to-tracked-libs new file mode 100644 index 00000000..b8c2c758 --- /dev/null +++ b/source/a/aaa_elflibs/symlinks-to-tracked-libs @@ -0,0 +1,55 @@ +/lib/libacl.so.1 +/lib/libattr.so.1 +/lib/libbz2.so.1 +/lib/libbz2.so.1.0 +/lib/libcap.so.2 +/lib/libdm.so.0 +/lib/libfuse.so.2 +/lib/libgpm.so.1 +/lib/libncurses.so.5 +/lib/libncursesw.so.5 +/lib/libsysfs.so.2 +/lib/libtermcap.so.2 +/usr/lib/libasound.so.2 +/usr/lib/libcurl.so.2 +/usr/lib/libcurl.so.3 +/usr/lib/libcurl.so.4 +/usr/lib/libexpat.so.0 +/usr/lib/libexpat.so.1 +/usr/lib/libform.so.5 +/usr/lib/libformw.so.5 +/usr/lib/libfreetype.so.6 +/usr/lib/libgdbm.so.2 +/usr/lib/libgdbm.so.3 +/usr/lib/libglib-2.0.so.0 +/usr/lib/libgmodule-2.0.so.0 +/usr/lib/libgmp.so.3 +/usr/lib/libgmpxx.so.3 +/usr/lib/libgobject-2.0.so.0 +/usr/lib/libgthread-2.0.so.0 +/usr/lib/libhistory.so.4 +/usr/lib/libhistory.so.5 +/usr/lib/libidn.so.11 +/usr/lib/libjpeg.so.62 +/usr/lib/liblber-2.3.so.0 +/usr/lib/libldap-2.3.so.0 +/usr/lib/libmenu.so.5 +/usr/lib/libmenuw.so.5 +/usr/lib/libmm.so.14 +/usr/lib/libmp.so.3 +/usr/lib/libpanel.so.5 +/usr/lib/libpanelw.so.5 +/usr/lib/libpcre.so.0 +/usr/lib/libpcreposix.so.0 +/usr/lib/libpng.so.3 +/usr/lib/libpng12.so.0 +/usr/lib/libpopt.so.0 +/usr/lib/libreadline.so.4 +/usr/lib/libreadline.so.5 +/usr/lib/libslang.so.1 +/usr/lib/libslang.so.2 +/usr/lib/libtiff.so.3 +/usr/lib/libusb-0.1.so.4 +/usr/lib/libvga.so.1 +/usr/lib/libvgagl.so.1 +/usr/lib/libz.so.1 diff --git a/source/a/aaa_elflibs/tracked-files b/source/a/aaa_elflibs/tracked-files new file mode 100644 index 00000000..16b731ba --- /dev/null +++ b/source/a/aaa_elflibs/tracked-files @@ -0,0 +1,8 @@ +/lib/libdb-3.1.so +/lib/libdb-3.3.so +/lib/libdb-4.2.so +/lib/libdb-4.4.so +/lib/libdevmapper.so.1.02 +/usr/lib/libcups.so.2 +/usr/lib/libcupsimage.so.2 +/usr/lib/libgcc_s.so.1 diff --git a/source/a/aaa_terminfo/aaa_terminfo.SlackBuild b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild new file mode 100755 index 00000000..a1e7d288 --- /dev/null +++ b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh +# Copyright 2006, 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. + + +PKGNAM=aaa_terminfo +# Note the version of ncurses in use: +VERSION=${VERSION:-5.7} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +# Best do this on a machine with the terminfo +# updated already. ;-) +cd $PKG + +# I wonder if anything still looks here? +mkdir -p usr/lib${LIBDIRSUFFIX} +( cd usr/lib${LIBDIRSUFFIX} + rm -rf terminfo + ln -sf /usr/share/terminfo terminfo +) + +# This has been the tradition starter collection since forever. +for dir in l n u v x ; do + mkdir -p usr/share/terminfo/$dir + ( cd usr/share/terminfo/$dir + cp -a /usr/share/terminfo/$dir/* . + ) +done + +# Remove dangling symlinks: +( cd usr/share/terminfo + for file in $(find . -type l) ; do + if [ "$(readlink -e $file)" = "" ]; then + rm --verbose $file + fi + done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/aaa_terminfo/slack-desc b/source/a/aaa_terminfo/slack-desc new file mode 100644 index 00000000..d393062f --- /dev/null +++ b/source/a/aaa_terminfo/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------------------------------------------------------| +aaa_terminfo: aaa_terminfo (a basic collection of terminfo entries) +aaa_terminfo: +aaa_terminfo: This is a starter set of files from the terminfo database, which +aaa_terminfo: should be enough in most cases. The complete set (from which this +aaa_terminfo: is derived) can be found in the ncurses package. +aaa_terminfo: +aaa_terminfo: The terminfo database describes the characteristics of terminals, so +aaa_terminfo: don't try to log in without this package. :-) +aaa_terminfo: +aaa_terminfo: +aaa_terminfo: diff --git a/source/a/acl/acl.SlackBuild b/source/a/acl/acl.SlackBuild new file mode 100755 index 00000000..7ad70d04 --- /dev/null +++ b/source/a/acl/acl.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2005-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.2.47-1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acl + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf acl-$(echo $VERSION | cut -f 1 -d '-') +tar xzvf $CWD/acl_$VERSION.tar.gz +cd acl-$(echo $VERSION | cut -f 1 -d '-') + +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 DESTDIR support and improve docs install location: +zcat $CWD/acl.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv acl acl-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +cp -a \ + README doc/COPYING doc/PORTING \ + $PKG/usr/doc/acl-$VERSION + +( 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 +) +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libacl.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib${LIBDIRSUFFIX}/libacl.so a symlink to /lib${LIBDIRSUFFIX}: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libacl.so + ln -sf /lib${LIBDIRSUFFIX}/libacl.so.1 libacl.so +) +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/acl-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/a/acl/acl.destdir.diff b/source/a/acl/acl.destdir.diff new file mode 100644 index 00000000..df284724 --- /dev/null +++ b/source/a/acl/acl.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-09-10 21:00:47.000000000 -0500 ++++ ./include/buildmacros 2008-03-31 23:58:16.000000000 -0500 +@@ -27,7 +27,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-09-10 21:00:47.000000000 -0500 ++++ ./include/builddefs.in 2008-03-31 23:58:16.000000000 -0500 +@@ -27,14 +27,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@ +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@ ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/a/acl/slack-desc b/source/a/acl/slack-desc new file mode 100644 index 00000000..9609c585 --- /dev/null +++ b/source/a/acl/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------------------------------------------------------| +acl: acl (tools for using POSIX Access Control Lists) +acl: +acl: This package contains a set of tools and libraries for manipulating +acl: POSIX Access Control Lists. POSIX Access Control Lists (defined in +acl: POSIX 1003.1e draft standard 17) are used to define more fine-grained +acl: discretionary access rights for files and directories. +acl: +acl: +acl: +acl: +acl: diff --git a/source/a/acpid/acpi_handler.sh b/source/a/acpid/acpi_handler.sh new file mode 100644 index 00000000..386fa8d0 --- /dev/null +++ b/source/a/acpid/acpi_handler.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Default acpi script that takes an entry for all actions + +IFS=${IFS}/ +set $@ + +case "$1" in + button) + case "$2" in + power) /sbin/init 0 + ;; + *) logger "ACPI action $2 is not defined" + ;; + esac + ;; + *) + logger "ACPI group $1 / action $2 is not defined" + ;; +esac diff --git a/source/a/acpid/acpid.SlackBuild b/source/a/acpid/acpid.SlackBuild new file mode 100755 index 00000000..3010e013 --- /dev/null +++ b/source/a/acpid/acpid.SlackBuild @@ -0,0 +1,74 @@ +#!/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.0.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acpid + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf acpid-$VERSION +tar xvf $CWD/acpid-$VERSION.tar.?z* || exit 1 +cd acpid-$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 || exit 1 +strip acpid acpi_listen +mkdir -p $PKG/usr/sbin +cat acpid > $PKG/usr/sbin/acpid +chmod 755 $PKG/usr/sbin/acpid +mkdir -p $PKG/usr/bin +cat acpi_listen > $PKG/usr/bin/acpi_listen +chmod 755 $PKG/usr/bin/acpi_listen +mkdir -p $PKG/usr/man/man8 +cat acpid.8 | gzip -9c > $PKG/usr/man/man8/acpid.8.gz +cat acpi_listen.8 | gzip -9c > $PKG/usr/man/man8/acpi_listen.8.gz +mkdir -p $PKG/usr/doc/acpid-$VERSION +cp -a Changelog README \ + $PKG/usr/doc/acpid-$VERSION +cp -a samples $PKG/usr/doc/acpid-$VERSION +mkdir -p $PKG/etc/acpi/events +zcat $CWD/acpi_handler.sh.gz > $PKG/etc/acpi/acpi_handler.sh.new +chmod 755 $PKG/etc/acpi/acpi_handler.sh.new +zcat $CWD/default.gz > $PKG/etc/acpi/events/default +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.acpid.gz > $PKG/etc/rc.d/rc.acpid +chmod 755 $PKG/etc/rc.d/rc.acpid +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/acpid-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/acpid/default b/source/a/acpid/default new file mode 100644 index 00000000..db123390 --- /dev/null +++ b/source/a/acpid/default @@ -0,0 +1,18 @@ +# This is the ACPID default configuration, it takes all +# events and passes them to /etc/acpi/default.sh for further +# processing. + +# event keeps a regular expression matching the event. To get +# power events only, just use something like "event=button power.*" +# to catch it. +# action keeps the command to be executed after an event occurs +# In case of the power event above, your entry may look this way: +#event=button power.* +#action=/sbin/init 0 + +# Optionally you can specify the placeholder %e. It will pass +# through the whole kernel event message to the program you've +# specified. + +event=.* +action=/etc/acpi/acpi_handler.sh %e diff --git a/source/a/acpid/doinst.sh b/source/a/acpid/doinst.sh new file mode 100644 index 00000000..c090b9fe --- /dev/null +++ b/source/a/acpid/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/acpi/acpi_handler.sh.new diff --git a/source/a/acpid/rc.acpid b/source/a/acpid/rc.acpid new file mode 100644 index 00000000..32486d17 --- /dev/null +++ b/source/a/acpid/rc.acpid @@ -0,0 +1,36 @@ +#!/bin/sh +# Start/stop/restart acpid. + +# Start acpid: +acpid_start() { + if [ -x /usr/sbin/acpid -a -d /proc/acpi ]; then + echo "Starting ACPI daemon: /usr/sbin/acpid" + /usr/sbin/acpid + fi +} + +# Stop acpid: +acpid_stop() { + killall acpid +} + +# Restart acpid: +acpid_restart() { + acpid_stop + sleep 1 + acpid_start +} + +case "$1" in +'start') + acpid_start + ;; +'stop') + acpid_stop + ;; +'restart') + acpid_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/a/acpid/slack-desc b/source/a/acpid/slack-desc new file mode 100644 index 00000000..b72ac8e6 --- /dev/null +++ b/source/a/acpid/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------------------------------------------------------| +acpid: acpid (ACPI daemon) +acpid: +acpid: Most modern computers support the Advanced Configuration and Power +acpid: Interface (ACPI) standard to allow intelligent power management. +acpid: This package contains acpid, which is the user-space daemon needed in +acpid: order to make the Linux ACPI support completely functional. +acpid: +acpid: ACPI must be compiled into the kernel to run acpid. +acpid: +acpid: +acpid: diff --git a/source/a/apmd/apmd.SlackBuild b/source/a/apmd/apmd.SlackBuild new file mode 100755 index 00000000..13e47273 --- /dev/null +++ b/source/a/apmd/apmd.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=${VERSION:-3.2.2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apmd + +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 apmd-$VERSION +tar xvf $CWD/apmd-$VERSION.tar.bz2 || exit 1 +cd apmd-$VERSION + +if [ "$ARCH" = "x86_64" ]; then + sed -i -e "s#/lib#/lib64#" Makefile +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 {} \; + +CFLAGS="$SLKCFLAGS" make $NUMJOBS || exit 1 +CFLAGS="$SLKCFLAGS" make install DESTDIR=$PKG + +( cd xbattery + cp ../.libs/libapm.a .. + xmkmf + make -j3 +) + +mkdir -p $PKG/usr/bin +cat xapm > $PKG/usr/bin/xapm +cat xbattery/xbattery > $PKG/usr/bin/xbattery +chmod 755 $PKG/usr/bin/{xapm,xbattery} + +( 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/usr/man/man1 +cat xbattery/xbattery.man | gzip -9c > $PKG/usr/man/man1/xbattery.1.gz +for page in apm.1 apmsleep.1 on_ac_power.1 xapm.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/${page}.gz +done +mkdir -p $PKG/usr/man/man8 +cat apmd.8 | gzip -9c > $PKG/usr/man/man8/apmd.8.gz +mkdir -p $PKG/usr/man/fr/man1 +cat apmsleep.fr.1 | gzip -9c > $PKG/usr/man/fr/man1/apmsleep.1.gz + +mkdir -p $PKG/usr/doc/apmd-$VERSION +cp -a \ + AUTHORS COPYING LSM README apmlib.COPYING apmsleep.README \ + $PKG/usr/doc/apmd-$VERSION +cp -a xbattery/README $PKG/usr/doc/apmd-$VERSION/README.xbattery + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -c n -l y $TMP/apmd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/apmd/slack-desc b/source/a/apmd/slack-desc new file mode 100644 index 00000000..a6f5c9a6 --- /dev/null +++ b/source/a/apmd/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------------------------------------------------------| +apmd: apmd (Advanced Power Management daemon) +apmd: +apmd: apmd is an APM monitoring daemon, and works in conjunction with the +apmd: APM BIOS driver in the kernel. Apmd (and the included tools) handle +apmd: tasks such as automatically putting a laptop into suspend when the +apmd: power level drop below a certain point. This package also includes +apmd: the graphical power management tools xapm and xbattery. +apmd: +apmd: The apmd tools were written by Rik Faith and are maintained by +apmd: Avery Pennarun. xbattery was written by Nathan Sidwell. +apmd: diff --git a/source/a/attr/attr.SlackBuild b/source/a/attr/attr.SlackBuild new file mode 100755 index 00000000..9c16a8d6 --- /dev/null +++ b/source/a/attr/attr.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2005-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.4.43-1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-attr + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf attr-$(echo $VERSION | cut -f 1 -d '-') +tar xzvf $CWD/attr_$VERSION.tar.gz +cd attr-$(echo $VERSION | cut -f 1 -d '-') +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 DESTDIR support and improve docs install location: +zcat $CWD/attr.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# The 1/2 assed job has begun... the onus of running autoconf should never +# be placed on packagers. They may not have the same autotools versions. +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv attr attr-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +rm -rf $PKG/usr/doc/attr-$VERSION/ea-conv +cp -a \ + README doc/COPYING doc/PORTING doc/ea-conv \ + $PKG/usr/doc/attr-$VERSION + +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}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libattr.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib${LIBDIRSUFFIX}/libattr.so a symlink to /lib${LIBDIRSUFFIX}: +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; rm -f libattr.so ; ln -sf /lib${LIBDIRSUFFIX}/libattr.so.1 libattr.so ) +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/attr-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/a/attr/attr.destdir.diff b/source/a/attr/attr.destdir.diff new file mode 100644 index 00000000..ced69eef --- /dev/null +++ b/source/a/attr/attr.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-09-10 21:00:49.000000000 -0500 ++++ ./include/buildmacros 2008-03-31 23:54:02.000000000 -0500 +@@ -27,7 +27,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-09-10 21:00:49.000000000 -0500 ++++ ./include/builddefs.in 2008-03-31 23:54:02.000000000 -0500 +@@ -27,14 +27,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@/attr +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@/attr ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/a/attr/build b/source/a/attr/build new file mode 100644 index 00000000..52b6039a --- /dev/null +++ b/source/a/attr/build @@ -0,0 +1,7 @@ +I think I used this build order... -P. + +1. attr +2. acl +3. xfsprogs +4. dmapi +5. xfsdump diff --git a/source/a/attr/slack-desc b/source/a/attr/slack-desc new file mode 100644 index 00000000..e9220f2f --- /dev/null +++ b/source/a/attr/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------------------------------------------------------| +attr: attr (tools for using extended attributes on filesystems) +attr: +attr: This package contains a set of tools for manipulating extended +attr: attributes (name:value pairs associated permanently with files and +attr: directories) on filesystem objects, and the library and header files +attr: needed to develop programs which make use of extended attributes. +attr: Extended attributes are used to provide additional functionality to +attr: a filesystem. For example, Access Control Lists (ACLs) are +attr: implemented using extended attributes. +attr: +attr: diff --git a/source/a/bash/bash.SlackBuild b/source/a/bash/bash.SlackBuild new file mode 100755 index 00000000..04c8ff95 --- /dev/null +++ b/source/a/bash/bash.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2005-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=3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bash + +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 + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine bash patchlevel: +PATCHLEVEL=`( cd $CWD/patches ; /bin/ls *gz | tail -1 | cut -f 2 -d - | cut -f 1 -d . 2> /dev/null )` +if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=0 +fi + +cd $TMP +rm -rf bash-$VERSION +tar xzvf $CWD/bash-$VERSION.tar.gz || exit 1 +cd bash-$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 {} \; + +for patch in $CWD/patches/bash* ; do + zcat $patch | patch -p0 --verbose || exit 1 +done +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr $ARCH-slackware-linux +make -j3 || exit 1 +make install DESTDIR=$PKG +mkdir -p $PKG/bin +mv $PKG/usr/bin/bash $PKG/bin/bash2.new +strip --strip-unneeded $PKG/bin/bash2.new +# We don't include the "bashbug" script. +rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1 +gzip -9 $PKG/usr/man/man1/* +mkdir -p $PKG/usr/doc/bash-$VERSION +cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \ + README Y2K doc/FAQ doc/INTRO $PKG/usr/doc/bash-$VERSION +cd doc +groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt +# bash.1 is already installed by "make install" +for page in builtins.1 rbash.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +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 +makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bash-$VERSION + rm -rf $PKG +fi diff --git a/source/a/bash/doinst.sh b/source/a/bash/doinst.sh new file mode 100644 index 00000000..21760838 --- /dev/null +++ b/source/a/bash/doinst.sh @@ -0,0 +1,18 @@ +if [ -r bin/bash ]; then + mv bin/bash bin/bash.old +fi +mv bin/bash2.new bin/bash +if [ -f bin/bash.old ]; then + rm -f bin/bash.old +fi +if [ ! -r etc/shells ]; then + touch etc/shells + chmod 644 etc/shells +fi +if fgrep "/bin/bash" etc/shells 1> /dev/null 2> /dev/null ; then + true +else + echo "/bin/bash" >> etc/shells +fi +( cd usr/bin ; rm -rf bash ) +( cd usr/bin ; ln -sf /bin/bash bash ) diff --git a/source/a/bash/patches/bash31-001 b/source/a/bash/patches/bash31-001 new file mode 100644 index 00000000..4a10a02c --- /dev/null +++ b/source/a/bash/patches/bash31-001 @@ -0,0 +1,104 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-001 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html + +Bug-Description: + +There are parsing problems with compound assignments in several contexts, +including as arguments to builtins like `local', `eval', and `let', and +as multiple assignments in a single command. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Fri Dec 16 20:43:07 2005 +*************** +*** 3696,3700 **** + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; + } + +--- 3696,3702 ---- + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; +! else if (STREQ (token, "eval") || STREQ (token, "let")) +! parser_state |= PST_ASSIGNOK; + } + +*************** +*** 4687,4691 **** + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size; + char *saved_token, *ret; + +--- 4689,4693 ---- + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size, orig_last_token, assignok; + char *saved_token, *ret; + +*************** +*** 4693,4696 **** +--- 4695,4699 ---- + orig_token_size = token_buffer_size; + orig_line_number = line_number; ++ orig_last_token = last_read_token; + + last_read_token = WORD; /* WORD to allow reserved words here */ +*************** +*** 4699,4702 **** +--- 4702,4707 ---- + token_buffer_size = 0; + ++ assignok = parser_state&PST_ASSIGNOK; /* XXX */ ++ + wl = (WORD_LIST *)NULL; /* ( */ + parser_state |= PST_COMPASSIGN; +*************** +*** 4741,4745 **** + } + +! last_read_token = WORD; + if (wl) + { +--- 4746,4750 ---- + } + +! last_read_token = orig_last_token; /* XXX - was WORD? */ + if (wl) + { +*************** +*** 4753,4756 **** +--- 4758,4765 ---- + if (retlenp) + *retlenp = (ret && *ret) ? strlen (ret) : 0; ++ ++ if (assignok) ++ parser_state |= PST_ASSIGNOK; ++ + return ret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-002 b/source/a/bash/patches/bash31-002 new file mode 100644 index 00000000..fac9a99a --- /dev/null +++ b/source/a/bash/patches/bash31-002 @@ -0,0 +1,239 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation: It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** ../bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005 +--- doc/bash.1 Wed Dec 28 19:58:54 2005 +*************** +*** 7,16 **** + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" + .\" + .\" There's some problem with having a `@' +--- 7,16 ---- + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Wed Dec 28 19:58:45 EST 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" + .\" + .\" There's some problem with having a `@' +*************** +*** 678,683 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 678,683 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (\fB==\fP) or does not match +! (\fB!=\fP) the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 808,811 **** +--- 808,817 ---- + .B Pathname Expansion + below). ++ The \fIword\fP is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, process substitution and quote removal. ++ Each \fIpattern\fP examined is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, and process substitution. + If the shell option + .B nocasematch +*************** +*** 8485,8489 **** + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +--- 8485,8489 ---- + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +*************** +*** 8524,8527 **** +--- 8524,8530 ---- + The maximum size of files created by the shell + .TP ++ .B \-i ++ The maximum number of pending signals ++ .TP + .B \-l + The maximum size that may be locked into memory +*************** +*** 8537,8540 **** +--- 8540,8546 ---- + The pipe size in 512-byte blocks (this may not be set) + .TP ++ .B \-q ++ The maximum number of bytes in POSIX message queues ++ .TP + .B \-s + The maximum stack size +*************** +*** 8548,8551 **** +--- 8554,8560 ---- + .B \-v + The maximum amount of virtual memory available to the shell ++ .TP ++ .B \-x ++ The maximum number of file locks + .PD + .PP +*** ../bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005 +--- doc/bashref.texi Fri Dec 30 10:50:39 2005 +*************** +*** 962,967 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 962,967 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (@samp{==}) or does not +! match (@samp{!=})the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 2599,2603 **** + or inconvenient to obtain with separate utilities. + +! This section briefly the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +--- 2597,2601 ---- + or inconvenient to obtain with separate utilities. + +! This section briefly describes the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +*************** +*** 3834,3838 **** + @btindex ulimit + @example +! ulimit [-acdflmnpstuvSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +--- 3834,3838 ---- + @btindex ulimit + @example +! ulimit [-acdfilmnpqstuvxSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +*************** +*** 3858,3861 **** +--- 3858,3864 ---- + The maximum size of files created by the shell. + ++ @item -i ++ The maximum number of pending signals. ++ + @item -l + The maximum size that may be locked into memory. +*************** +*** 3870,3873 **** +--- 3873,3879 ---- + The pipe buffer size. + ++ @item -q ++ The maximum number of bytes in POSIX message queues. ++ + @item -s + The maximum stack size. +*************** +*** 3882,3885 **** +--- 3888,3894 ---- + The maximum amount of virtual memory available to the process. + ++ @item -x ++ The maximum number of file locks. ++ + @end table + +*************** +*** 4090,4095 **** + + @item -x +! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP +! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +--- 4103,4108 ---- + + @item -x +! Print a trace of simple commands, @code{for} commands, @code{case} +! commands, @code{select} commands, and arithmetic @code{for} commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +*** ../bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005 +--- doc/version.texi Fri Dec 30 10:50:58 2005 +*************** +*** 3,10 **** + @end ignore + +! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 + +! @set EDITION 3.1-beta1 +! @set VERSION 3.1-beta1 +! @set UPDATED 5 September 2005 +! @set UPDATED-MONTH September 2005 +--- 3,10 ---- + @end ignore + +! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 + +! @set EDITION 3.1 +! @set VERSION 3.1 +! @set UPDATED 30 December 2005 +! @set UPDATED-MONTH December 2005 +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-003 b/source/a/bash/patches/bash31-003 new file mode 100644 index 00000000..cd36dc83 --- /dev/null +++ b/source/a/bash/patches/bash31-003 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-003 + +Bug-Reported-by: Adam Buraczewski <adamb@nor.pl> +Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html + +Bug-Description: + +A missing #define guard causes bash to not compile when readline is not +configured in, either as the result of explicit disabling or when the +`--enable-minimal-config' option is given to configure. + +Patch: + +*** ../bash-3.1/variables.c Sat Nov 12 21:22:37 2005 +--- variables.c Mon Dec 26 13:34:03 2005 +*************** +*** 861,867 **** +--- 863,871 ---- + char val[INT_STRLEN_BOUND(int) + 1], *v; + ++ #if defined (READLINE) + /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ + if (winsize_assignment) + return; ++ #endif + + v = inttostr (lines, val, sizeof (val)); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-004 b/source/a/bash/patches/bash31-004 new file mode 100644 index 00000000..4f9d578e --- /dev/null +++ b/source/a/bash/patches/bash31-004 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-004 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html + +Bug-Description: + +A local array variable declared at function scope that shadows a variable +of the same name declared in a previous scope did not create a separate +variable instance, but used the previous one. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 2188,2192 **** + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +--- 2188,2192 ---- + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0 || v->context != variable_context) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-005 b/source/a/bash/patches/bash31-005 new file mode 100644 index 00000000..b6d5cdca --- /dev/null +++ b/source/a/bash/patches/bash31-005 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-005 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When tilde expansion fails, POSIX leaves it unspecified whether or not the +word undergoes the additional word expansions. Bash-3.1 as distributed +skipped the rest of the expansions; this patch restores the bash-3.0 behavior. + +This means that something like + USER=ratbert + echo ~$USER + +will echo `~ratbert' rather than `~$USER'. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 6796,6799 **** +--- 6823,6832 ---- + { + temp1 = bash_tilde_expand (temp, tflag); ++ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) ++ { ++ FREE (temp); ++ FREE (temp1); ++ goto add_character; /* tilde expansion failed */ ++ } + free (temp); + temp = temp1; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-006 b/source/a/bash/patches/bash31-006 new file mode 100644 index 00000000..8d749938 --- /dev/null +++ b/source/a/bash/patches/bash31-006 @@ -0,0 +1,58 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-006 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html + +Bug-Description: + +Under some circumstances, Bash can use an incorrect setting for the flag +that indicates whether or not the terminal can auto-wrap, resulting in line- +wrapping errors. + +Patch: + +*** ../bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005 +--- lib/readline/terminal.c Tue Jan 31 10:57:54 2006 +*************** +*** 123,127 **** + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap; + + /* Non-zero means that this terminal has a meta key. */ +--- 126,130 ---- + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap = -1; + + /* Non-zero means that this terminal has a meta key. */ +*************** +*** 275,278 **** +--- 278,284 ---- + int rows, cols; + { ++ if (_rl_term_autowrap == -1) ++ _rl_init_terminal_io (rl_terminal_name); ++ + if (rows > 0) + _rl_screenheight = rows; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-007 b/source/a/bash/patches/bash31-007 new file mode 100644 index 00000000..6233786c --- /dev/null +++ b/source/a/bash/patches/bash31-007 @@ -0,0 +1,121 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-007 + +Bug-Reported-by: Tim Waugh <twaugh@redhat.com>, Laird Breyer <laird@lbreyer.com> +Bug-Reference-ID: <20060105174434.GY16000@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695 + +Bug-Description: + +When the number of saved jobs exceeds the initial size of the jobs array +(4096 slots), the array must be compacted and reallocated. An error in +the code to do that could cause a segmentation fault. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 845,851 **** + { + sigset_t set, oset; +! int nsize, i, j; + JOB **nlist; + + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +--- 888,895 ---- + { + sigset_t set, oset; +! int nsize, i, j, ncur, nprev; + JOB **nlist; + ++ ncur = nprev = NO_JOB; + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +*************** +*** 855,869 **** + + BLOCK_CHILD (set, oset); +! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! nlist[j++] = jobs[i]; + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1: 0; + js.j_jobslots = nsize; + +! free (jobs); +! jobs = nlist; + + UNBLOCK_CHILD (oset); +--- 899,947 ---- + + BLOCK_CHILD (set, oset); +! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); +! + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! { +! if (i == js.j_current) +! ncur = j; +! if (i == js.j_previous) +! nprev = j; +! nlist[j++] = jobs[i]; +! } +! +! #if defined (DEBUG) +! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); +! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); +! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); +! #endif + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1 : 0; +! js.j_njobs = j; + js.j_jobslots = nsize; + +! /* Zero out remaining slots in new jobs list */ +! for ( ; j < nsize; j++) +! nlist[j] = (JOB *)NULL; +! +! if (jobs != nlist) +! { +! free (jobs); +! jobs = nlist; +! } +! +! if (ncur != NO_JOB) +! js.j_current = ncur; +! if (nprev != NO_JOB) +! js.j_previous = nprev; +! +! /* Need to reset these */ +! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) +! reset_current (); +! +! #ifdef DEBUG +! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); +! #endif + + UNBLOCK_CHILD (oset); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-008 b/source/a/bash/patches/bash31-008 new file mode 100644 index 00000000..3427b64e --- /dev/null +++ b/source/a/bash/patches/bash31-008 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-008 + +Bug-Reported-by: Ingemar Nilsson <init@kth.se> +Bug-Reference-ID: <43C38D35.7020404@kth.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html + +Bug-Description: + +In some cases, bash inappropriately allows SIGINT from the terminal to +reach background processes. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 2199,2203 **** + wait_sigint_received = 0; + if (job_control == 0) +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + + termination_state = last_command_exit_value; +--- 2298,2306 ---- + wait_sigint_received = 0; + if (job_control == 0) +! { +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +! if (old_sigint_handler == SIG_IGN) +! set_signal_handler (SIGINT, old_sigint_handler); +! } + + termination_state = last_command_exit_value; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-009 b/source/a/bash/patches/bash31-009 new file mode 100644 index 00000000..8ef22958 --- /dev/null +++ b/source/a/bash/patches/bash31-009 @@ -0,0 +1,66 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com> +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly. This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 620,625 **** + * the parent gives it away. + * + */ +! if (job_control && newjob->pgrp) + give_terminal_to (newjob->pgrp, 0); + } +--- 634,642 ---- + * the parent gives it away. + * ++ * Don't give the terminal away if this shell is an asynchronous ++ * subshell. ++ * + */ +! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) + give_terminal_to (newjob->pgrp, 0); + } +*************** +*** 1656,1660 **** + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp) + give_terminal_to (pipeline_pgrp, 0); + +--- 1743,1747 ---- + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) + give_terminal_to (pipeline_pgrp, 0); + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-010 b/source/a/bash/patches/bash31-010 new file mode 100644 index 00000000..066a3242 --- /dev/null +++ b/source/a/bash/patches/bash31-010 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-010 + +Bug-Reported-by: vw@vonwolff.de +Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html + +Bug-Description: + +There is a difference in behavior between bash-3.0 and bash-3.1 involving +parsing of single- and double-quoted strings occurring in old-style +command substitution. The difference has to do with how backslashes are +processed. This patch restores a measure of backwards compatibility while +the question of POSIX conformance and ultimately correct behavior is discussed. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2899,2903 **** + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } +--- 2901,2909 ---- + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! /* Add P_ALLOWESC so backslash quotes the next character and +! shell_getc does the right thing with \<newline>. We do this for +! a measure of backwards compatibility -- it's not strictly the +! right POSIX thing. */ +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC); + goto add_nestret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-011 b/source/a/bash/patches/bash31-011 new file mode 100644 index 00000000..025b8390 --- /dev/null +++ b/source/a/bash/patches/bash31-011 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-011 + +Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com> +Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html + +Bug-Description: + +A change in bash-3.1 caused the single quotes to be stripped from ANSI-C +quoting inside double-quoted command substitutions. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2908,2912 **** + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +--- 2914,2918 ---- + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-012 b/source/a/bash/patches/bash31-012 new file mode 100644 index 00000000..b0ddb3a4 --- /dev/null +++ b/source/a/bash/patches/bash31-012 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-012 + +Bug-Reported-by: Alexander Kshevetskiy <alex@dgap.mipt.ru> +Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html + +Bug-Description: + +There is a parsing problem involving parentheses in assignment statements +that causes words to be terminated prematurely. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 3579,3583 **** + all_digit_token = 0; + compound_assignment = 1; +! #if 0 + goto next_character; + #else +--- 3584,3588 ---- + all_digit_token = 0; + compound_assignment = 1; +! #if 1 + goto next_character; + #else +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-013 b/source/a/bash/patches/bash31-013 new file mode 100644 index 00000000..93c7c8fc --- /dev/null +++ b/source/a/bash/patches/bash31-013 @@ -0,0 +1,44 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-013 + +Bug-Reported-by: Bob Rossi <bob@brasko.net> +Bug-Reference-ID: <43F60606.80708@case.edu> +Bug-Reference-URL: + +Bug-Description: + +In some cases, readline will reference freed memory when attempting to +display a portion of the prompt. + +Patch: + +*** ../bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005 +--- lib/readline/readline.c Fri Feb 17 22:54:22 2006 +*************** +*** 282,287 **** +--- 282,288 ---- + { + FREE (rl_prompt); + rl_prompt = prompt ? savestring (prompt) : (char *)NULL; ++ rl_display_prompt = rl_prompt ? rl_prompt : ""; + + rl_visible_prompt_length = rl_expand_prompt (rl_prompt); + return 0; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-014 b/source/a/bash/patches/bash31-014 new file mode 100644 index 00000000..82ff9b40 --- /dev/null +++ b/source/a/bash/patches/bash31-014 @@ -0,0 +1,105 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-014 + +Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com> +Bug-Reference-ID: <20060203191607.GC27614@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html + +Bug-Description: + +The displayed search prompt is corrupted when using non-incremental +searches in vi and emacs mode if the prompt contains non-printing +characters or spans multiple lines. The prompt is expanded more than +once; the second time without the escape sequences that protect non- +printing characters from the length calculations. + +Patch: + +*** ../bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005 +--- lib/readline/display.c Sat Feb 18 12:14:58 2006 +*************** +*** 1983,1993 **** + int pchar; + { + int len; +! char *pmt; + + rl_save_prompt (); + +! if (saved_local_prompt == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +--- 1998,2012 ---- + int pchar; + { + int len; +! char *pmt, *p; + + rl_save_prompt (); + +! /* We've saved the prompt, and can do anything with the various prompt +! strings we need before they're restored. We want the unexpanded +! portion of the prompt string after any final newline. */ +! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; +! if (p == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +*************** +*** 1998,2016 **** + } + else + { +! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, saved_local_prompt); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! local_prompt = savestring (pmt); +! prompt_last_invisible = saved_last_invisible; +! prompt_visible_length = saved_visible_length + 1; +! } + + prompt_physical_chars = saved_physical_chars + 1; +- + return pmt; + } + +--- 2017,2033 ---- + } + else + { +! p++; +! len = strlen (p); + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, p); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! } + ++ /* will be overwritten by expand_prompt, called from rl_message */ + prompt_physical_chars = saved_physical_chars + 1; + return pmt; + } + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-015 b/source/a/bash/patches/bash31-015 new file mode 100644 index 00000000..deb9eed5 --- /dev/null +++ b/source/a/bash/patches/bash31-015 @@ -0,0 +1,106 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-015 + +Bug-Reported-by: Benoit Vila +Bug-Reference-ID: <43FCA614.1090108@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html + +Bug-Description: + +A problem with the extended globbing code prevented dots from matching +filenames when used in some extended matching patterns. + +Patch: + +*** ../bash-3.1-patched/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005 +--- lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006 +*************** +*** 639,643 **** + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2; + + #if DEBUG_MATCHING +--- 638,642 ---- + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2, xflags; /* xflags = flags passed to recursive matches */ + + #if DEBUG_MATCHING +*************** +*** 645,648 **** +--- 644,648 ---- + fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); + fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); ++ fprintf(stderr, "extmatch: flags = %d\n", flags); + #endif + +*************** +*** 678,683 **** + multiple matches of the pattern. */ + if (m1) +! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); + if (m1 && m2) + return (0); +--- 678,687 ---- + multiple matches of the pattern. */ + if (m1) +! { +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); +! } + if (m1 && m2) + return (0); +*************** +*** 705,710 **** + for ( ; srest <= se; srest++) + { + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 709,716 ---- + for ( ; srest <= se; srest++) + { ++ /* if srest > s, we are not at start of string */ ++ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*************** +*** 727,731 **** + break; + } +! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 733,739 ---- + break; + } +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-016 b/source/a/bash/patches/bash31-016 new file mode 100644 index 00000000..fa0ffe1c --- /dev/null +++ b/source/a/bash/patches/bash31-016 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-016 + +Bug-Reported-by: Nikita Danilov <nikita@clusterfs.com> +Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html + +Bug-Description: + +Bash will dump core when attempting to perform globbing in directories with +very large numbers of files. + +Patch: + +*** ../bash-3.1-patched/lib/glob/glob.c Thu Mar 24 12:42:27 2005 +--- lib/glob/glob.c Fri Mar 3 16:54:12 2006 +*************** +*** 361,364 **** +--- 361,365 ---- + + firstmalloc = 0; ++ nalloca = 0; + + /* If PAT is empty, skip the loop, but return one (empty) filename. */ +*************** +*** 547,550 **** +--- 551,556 ---- + tmplink = lastlink; + } ++ else ++ tmplink = 0; + free (lastlink->name); + lastlink = lastlink->next; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-017 b/source/a/bash/patches/bash31-017 new file mode 100644 index 00000000..84f89155 --- /dev/null +++ b/source/a/bash/patches/bash31-017 @@ -0,0 +1,131 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-017 + +Bug-Reported-by: syphir@syphir.sytes.net +Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net> +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831 + +Bug-Description: + +Array expansion fails with an arithmetic syntax error when the subscript +appears within double quotes. For example: ${a["4"]}. + +Patch: + +*** ../bash-3.1-patched/subst.c Wed Apr 12 08:47:08 2006 +--- subst.c Wed Apr 12 08:49:02 2006 +*************** +*** 2576,2579 **** +--- 2576,2586 ---- + } + ++ char * ++ expand_arith_string (string, quoted) ++ char *string; ++ { ++ return (expand_string_if_necessary (string, quoted, expand_string)); ++ } ++ + #if defined (COND_COMMAND) + /* Just remove backslashes in STRING. Returns a new string. */ +*************** +*** 5249,5253 **** + t = (char *)0; + +! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); + *e1p = evalexp (temp1, &expok); + free (temp1); +--- 5256,5260 ---- + t = (char *)0; + +! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); +*************** +*** 5294,5298 **** + t++; + temp2 = savestring (t); +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + t[-1] = ':'; +--- 5301,5305 ---- + t++; + temp2 = savestring (t); +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; +*************** +*** 6436,6440 **** + + /* Expand variables found inside the expression. */ +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + +--- 6443,6447 ---- + + /* Expand variables found inside the expression. */ +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +*************** +*** 6478,6482 **** + + /* Do initial variable expansion. */ +! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); + + goto arithsub; +--- 6485,6489 ---- + + /* Do initial variable expansion. */ +! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; +*** ../bash-3.1-patched/subst.h Sun Nov 7 15:12:28 2004 +--- subst.h Mon Mar 27 09:10:38 2006 +*************** +*** 152,155 **** +--- 152,158 ---- + extern char *expand_assignment_string_to_string __P((char *, int)); + ++ /* Expand an arithmetic expression string */ ++ extern char *expand_arith_string __P((char *, int)); ++ + /* De-quoted quoted characters in STRING. */ + extern char *dequote_string __P((char *)); +*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005 +--- arrayfunc.c Mon Mar 27 09:10:47 2006 +*************** +*** 593,601 **** + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! #if 0 +! t = expand_string_to_string (exp, 0); +! #else +! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); +! #endif + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +--- 591,595 ---- + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! t = expand_arith_string (exp, 0); + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/slack-desc b/source/a/bash/slack-desc new file mode 100644 index 00000000..f2fdb929 --- /dev/null +++ b/source/a/bash/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------------------------------------------------------| +bash: bash (sh-compatible shell) +bash: +bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command +bash: interpreter that executes commands read from the standard input or +bash: from a file. Bash also incorporates useful features from the Korn +bash: and C shells (ksh and csh). Bash is ultimately intended to be a +bash: conformant implementation of the IEEE Posix Shell and Tools +bash: specification (IEEE Working Group 1003.2). +bash: +bash: Bash must be present for the system to boot properly. +bash: diff --git a/source/a/bin/bin.SlackBuild b/source/a/bin/bin.SlackBuild new file mode 100755 index 00000000..69995acc --- /dev/null +++ b/source/a/bin/bin.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2005-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=11.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bin + +# These don't need to be real recent, as we only require a couple +# of things such as 'mktemp' and 'tempfile'. +DUTILS=2.7 + +# The fbset package +FBSET=2.1 + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+=============+" +echo "| debianutils |" +echo "+=============+" +cd $TMP +rm -rf debianutils-$DUTILS +tar xzvf $CWD/debianutils_$DUTILS.tar.gz +cd debianutils-$DUTILS +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +## We use our own very simple run-parts script +## in the dcron package instead. +#cat run-parts > $PKG/usr/bin/run-parts +#cat run-parts.8 | gzip -9c > $PKG/usr/man/man8/run-parts.8.gz +mkdir -p $PKG/usr/bin $PKG/usr/man/man{1,8} +cat mktemp > $PKG/usr/bin/mktemp +cat mktemp.1 | gzip -9c > $PKG/usr/man/man1/mktemp.1.gz +cat savelog > $PKG/usr/bin/savelog +cat savelog.8 | gzip -9c > $PKG/usr/man/man8/savelog.8.gz +cat tempfile > $PKG/usr/bin/tempfile +cat tempfile.1 | gzip -9c > $PKG/usr/man/man1/tempfile.1.gz +chmod 755 $PKG/usr/bin/* +mkdir -p $PKG/usr/doc/debianutils-$DUTILS +cp -a debian/copyright $PKG/usr/doc/debianutils-$DUTILS + +echo "+===========+" +echo "| fbset-${FBSET} |" +echo "+===========+" +cd $TMP +rm -rf fbset-${FBSET} +tar xzvf $CWD/fbset-${FBSET}.tar.gz +cd fbset-${FBSET} +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/sbin +cat fbset > $PKG/usr/sbin/fbset +chmod 755 $PKG/usr/sbin/fbset +mkdir -p $PKG/etc +cat etc/fb.modes.ATI > $PKG/etc/fb.modes +mkdir -p $PKG/usr/man/man5 +cat fb.modes.5 | gzip -9c > $PKG/usr/man/man5/fb.modes.5.gz +mkdir -p $PKG/usr/man/man8 +cat fbset.8 | gzip -9c > $PKG/usr/man/man8/fbset.8.gz +mkdir -p $PKG/usr/doc/fbset-${FBSET} +cp -a \ + INSTALL etc/* \ + $PKG/usr/doc/fbset-${FBSET} +rm -r $PKG/usr/doc/fbset-${FBSET}/CVS + +echo "+=========+" +echo "| banners |" +echo "+=========+" +cd $TMP +rm -rf banners +tar xzvf $CWD/banners.tar.gz +cd banners +chown -R root:root . +make || exit 1 +cat bban > $PKG/usr/bin/bban +cat sysvbanner > $PKG/usr/bin/sysvbanner +chmod 755 $PKG/usr/bin/{bban,sysvbanner} + +echo "+===============+" +echo "| todos/fromdos |" +echo "+===============+" +cd $TMP +rm -rf todos +tar xzvf $CWD/todos.tar.gz +cd todos +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/bin +cat todos > $PKG/usr/bin/todos +cat fromdos > $PKG/usr/bin/fromdos +chmod 755 $PKG/usr/bin/*dos +mkdir -p $PKG/usr/man/man1 +cat todos.1.gz > $PKG/usr/man/man1/todos.1.gz +cat fromdos.1.gz > $PKG/usr/man/man1/fromdos.1.gz + +# These are a couple of really old scripts that might still +# be useful for a couple more years. :-) +zcat $CWD/scripts/diskcopy.gz > $PKG/usr/bin/diskcopy +zcat $CWD/scripts/xx.gz > $PKG/usr/bin/xx +chmod 755 $PKG/usr/bin/diskcopy +chmod 755 $PKG/usr/bin/xx + +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bin-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/bin/debianutils_2.7.dsc b/source/a/bin/debianutils_2.7.dsc new file mode 100644 index 00000000..25a643a7 --- /dev/null +++ b/source/a/bin/debianutils_2.7.dsc @@ -0,0 +1,21 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Format: 1.0 +Source: debianutils +Version: 2.7 +Binary: debianutils +Maintainer: Clint Adams <schizo@debian.org> +Architecture: any +Standards-Version: 3.6.1 +Files: + e966d93a3ee20068197104049ebd7d70 165590 debianutils_2.7.tar.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) +Comment: Debian! + +iD8DBQFAO4b85m0u66uWM3ARAotWAKCE/B4HoDVZ5rHi4AISWwHO59cEgwCgqQ6d +Rt+5nuJdAgkcQgKDQu52RwI= +=2QDD +-----END PGP SIGNATURE----- diff --git a/source/a/bin/scripts/diskcopy b/source/a/bin/scripts/diskcopy new file mode 100644 index 00000000..9f3cc586 --- /dev/null +++ b/source/a/bin/scripts/diskcopy @@ -0,0 +1,9 @@ +#!/bin/sh +echo -n "Insert source disk in first floppy drive, then hit enter" +read ans; +MCOOKIE=`mcookie` +dd if=/dev/fd0 of=/tmp/dcopy.$MCOOKIE +echo -n "Remove source disk and insert destination disk, then hit enter" +read ans; +dd of=/dev/fd0 if=/tmp/dcopy.$MCOOKIE +/bin/rm -f /tmp/dcopy.$MCOOKIE diff --git a/source/a/bin/scripts/xx b/source/a/bin/scripts/xx new file mode 100644 index 00000000..4116c209 --- /dev/null +++ b/source/a/bin/scripts/xx @@ -0,0 +1,21 @@ +# +# A script to extract binary files from uudecoded files. Ignores all headers +# and irrelevant stuff. Has shortfalls like all such scripts/programs but works +# (almost) 100% of the time. We tested it against many such tools available +# at many ftp sites and found it having higher success rate. There are +# a few c-programs out there and it is slower as compared to them but it +# works even in those cases when they fail to work. +# The only time it will not work is that if uuencoded source file is cut up +# in many pieces and LAST part contains LESS THAN 3 SOURCE lines in it and +# we know that such cases (almost) never arise....guarenteed....:) +# +# Written by Tahir Zia Khawaja and +# Nasir Ahmed Noor +#umnoor@ccu.umanitoba.ca +#umkhawaj@ccu.umanitoba.ca +# +awk '$0 ~ /^begin / {print $0; exit}' $1 > $$gifile +egrep "^M[^a-z]" $1 >> $$gifile +awk 'NR > 2 {sl=lr; lr=pr; pr=$0} $1 ~ /^end/ {print sl; print lr; print pr; exit}' $1 >> $$gifile +uudecode $$gifile +rm $$gifile diff --git a/source/a/bin/slack-desc b/source/a/bin/slack-desc new file mode 100644 index 00000000..de9e307d --- /dev/null +++ b/source/a/bin/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------------------------------------------------------| +bin: bin (some command-line utilities) +bin: +bin: The bin package is a collection of miscellaneous command-line +bin: utilities. Some of these (such as 'tempfile') are used in system +bin: scripts. +bin: +bin: +bin: +bin: +bin: +bin: diff --git a/source/a/bzip2/bzip2-1.0.4.saneso.diff b/source/a/bzip2/bzip2-1.0.4.saneso.diff new file mode 100644 index 00000000..edbf1ad0 --- /dev/null +++ b/source/a/bzip2/bzip2-1.0.4.saneso.diff @@ -0,0 +1,20 @@ +--- ./Makefile-libbz2_so.orig 2007-01-02 20:00:55.000000000 -0600 ++++ ./Makefile-libbz2_so 2007-01-23 22:02:29.000000000 -0600 +@@ -35,13 +35,13 @@ + bzlib.o + + all: $(OBJS) +- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.4 $(OBJS) ++ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.4 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.4 +- rm -f libbz2.so.1.0 +- ln -s libbz2.so.1.0.4 libbz2.so.1.0 ++ rm -f libbz2.so.1 ++ ln -s libbz2.so.1.0.4 libbz2.so.1 + + clean: +- rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1.0 bzip2-shared ++ rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1 bzip2-shared + + blocksort.o: blocksort.c + $(CC) $(CFLAGS) -c blocksort.c diff --git a/source/a/bzip2/bzip2.SlackBuild b/source/a/bzip2/bzip2.SlackBuild new file mode 100755 index 00000000..465f75e0 --- /dev/null +++ b/source/a/bzip2/bzip2.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2005-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.0.5 +SOLIB=1.0.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bzip2 + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bzip2-$VERSION +tar xzvf $CWD/bzip2-$VERSION.tar.gz +cd bzip2-$VERSION +chown -R root:root . +# This should be ok, since libbz2.so.1.0 will still exist. +zcat $CWD/bzip2-1.0.4.saneso.diff.gz | patch -p1 || exit +make -f Makefile-libbz2_so || exit 1 +make || exit 1 +mkdir -p $PKG/usr/include +cp -a bzlib.h $PKG/usr/include +chown root:root $PKG/usr/include/bzlib.h +chmod 644 $PKG/usr/include/bzlib.h +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libbz2.a $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a libbz2.so.$SOLIB $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +chmod 755 $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +mkdir -p $PKG/bin +cat bzip2-shared > $PKG/bin/bzip2 +cat bzip2recover > $PKG/bin/bzip2recover +mkdir -p $PKG/usr/man/man1 +cat bzip2.1 | gzip -9c > $PKG/usr/man/man1/bzip2.1.gz +echo '.so man1/bzip2.1' | gzip -9c > $PKG/usr/man/man1/bzip2recover.1.gz +mkdir -p $PKG/usr/doc/bzip2-$VERSION +cp -a CHANGES LICENSE README README.COMPILATION.PROBLEMS Y2K_INFO \ + bzip2.txt *.html $PKG/usr/doc/bzip2-$VERSION +chmod 644 $PKG/usr/doc/bzip2-$VERSION/* +# Link up them links +( cd $PKG + ( cd lib${LIBDIRSUFFIX} + rm -f libbz2.so.1.0 libbz2.so.1 + ln -sf libbz2.so.$SOLIB libbz2.so.1.0 + ln -sf libbz2.so.1.0 libbz2.so.1 + ) + ( cd usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libbz2.so.1 libbz2.so + ) + ( cd bin ; ln -sf bzip2 bunzip2 ) + ( cd bin ; ln -sf bzip2 bzcat ) + mkdir -p usr/bin + ( cd usr/bin + ln -sf ../../bin/bzip2 . + ln -sf ../../bin/bzip2 bunzip2 + ln -sf ../../bin/bzip2 bzcat + ln -sf bzmore bzless + ) +) +# Here are some optional scripts: +for file in bzdiff bzgrep bzmore ; do + cat $file > $PKG/usr/bin/$file + cat ${file}.1 | gzip -9c > $PKG/usr/man/man1/${file}.1.gz +done +( 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 +) +chmod 755 $PKG/bin/* $PKG/usr/bin/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bzip2-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bzip2-$VERSION + rm -rf $PKG +fi diff --git a/source/a/bzip2/slack-desc b/source/a/bzip2/slack-desc new file mode 100644 index 00000000..8026e755 --- /dev/null +++ b/source/a/bzip2/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------------------------------------------------------| +bzip2: bzip2 (a block-sorting file compressor) +bzip2: +bzip2: Bzip2 compresses files using the Burrows-Wheeler block sorting text +bzip2: compression algorithm, and Huffman coding. Compression is generally +bzip2: considerably better than that achieved by more conventional LZ77/LZ78- +bzip2: based compressors, and approaches the performance of the PPM family of +bzip2: statistical compressors. +bzip2: +bzip2: Julian Seward <jseward@acm.org> is the author of bzip2. +bzip2: +bzip2: diff --git a/source/a/coreutils/DIR_COLORS b/source/a/coreutils/DIR_COLORS new file mode 100644 index 00000000..2556aa01 --- /dev/null +++ b/source/a/coreutils/DIR_COLORS @@ -0,0 +1,202 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. + +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# (see the scripts in /etc/profile.d/coreutils-dircolors.* to change default +# options in the Slackware aliases) + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM linux +TERM linux-c +TERM mach-color +TERM console +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cygwin +TERM dtterm +TERM putty +TERM xterm +TERM xterm-color +TERM xterm-debian +TERM rxvt +TERM screen +TERM screen-bce +TERM screen-w +TERM vt100 +TERM Eterm + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +# RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +# HARDLINK 44;37 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +EXEC 01;32 # This is for files with execute permission: + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') + +# DOS-style executables (bright green) +.bat 01;32 +.BAT 01;32 +.btm 01;32 +.BTM 01;32 +.cmd 01;32 +.CMD 01;32 +.com 01;32 +.COM 01;32 +.dll 01;32 +.DLL 01;32 +.exe 01;32 +.EXE 01;32 + +# archives or compressed (bright red) +.7z 01;31 +.ace 01;31 +.arj 01;31 +.bz2 01;31 +.cpio 01;31 +.deb 01;31 +.dz 01;31 +.gz 01;31 +.jar 01;31 +.lzh 01;31 +.lzma 01;31 +.rar 01;31 +.RAR 01;31 +.rpm 01;31 +.rz 01;31 +.tar 01;31 +.taz 01;31 +.tb2 01;31 +.tbz2 01;31 +.tbz 01;31 +.tgz 01;31 +.tlz 01;31 +.trz 01;31 +.txz 01;31 +.tz 01;31 +.tz2 01;31 +.xz 01;31 +.z 01;31 +.Z 01;31 +.zip 01;31 +.ZIP 01;31 +.zoo 01;31 + +# multimedia (video/image/sound) file formats +.aac 00;35 +.anx 01;35 +.asf 01;35 +.ASF 01;35 +.au 00;35 +.axa 00;35 +.axv 01;35 +.avi 01;35 +.AVI 01;35 +.bmp 01;35 +.BMP 01;35 +.flac 01;35 +.FLAC 01;35 +.gif 01;35 +.GIF 01;35 +.jpg 01;35 +.JPG 01;35 +.jpeg 01;35 +.JPEG 01;35 +.m2a 01;35 +.M2A 01;35 +.m2v 01;35 +.M2V 01;35 +.m4a 01;35 +.M4A 01;35 +.m4p 01;35 +.M4P 01;35 +.m4v 01;35 +.M4V 01;35 +.mid 00;35 +.midi 00;35 +.mka 00;35 +.mov 01;35 +.MOV 01;35 +.mp3 01;35 +.MP3 01;35 +.mp4 01;35 +.mp4v 01;35 +.mpc 01;35 +.MPC 01;35 +.mpeg 01;35 +.MPEG 01;35 +.mpg 01;35 +.MPG 01;35 +.nuv 01;35 +.oga 00;35 +.ogv 01;35 +.ogx 01;35 +.ogg 01;35 +.OGG 01;35 +.pbm 01;35 +.pgm 01;35 +.png 01;35 +.PNG 01;35 +.ppm 01;35 +.qt 01;35 +.ra 00;35 +.ram 01;35 +.RAM 01;35 +.rm 01;35 +.RM 01;35 +.spx 00;35 +.svg 01;35 +.svgz 01;35 +.tga 01;35 +.TGA 01;35 +.tif 01;35 +.TIF 01;35 +.tiff 01;35 +.TIFF 01;35 +.vob 01;35 +.wav 01;35 +.WAV 01;35 +.wma 01;35 +.WMA 01;35 +.wmv 01;35 +.WMV 01;35 +.xbm 01;35 +.xcf 01;35 +.xpm 01;35 +.xspf 00;35 +.xwd 01;35 +.XWD 01;35 + diff --git a/source/a/coreutils/coreutils-dircolors.csh b/source/a/coreutils/coreutils-dircolors.csh new file mode 100644 index 00000000..38d73ca2 --- /dev/null +++ b/source/a/coreutils/coreutils-dircolors.csh @@ -0,0 +1,48 @@ +# Slackware color ls profile script for /bin/csh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +setenv OPTIONS "-F -b -T 0" + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +setenv COLOR auto + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +setenv LS_OPTIONS " $OPTIONS --color=$COLOR " +unset COLOR +unset OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +alias ls '/bin/ls $LS_OPTIONS'; +alias dir '/bin/ls $LS_OPTIONS --format=vertical'; +alias vdir '/bin/ls $LS_OPTIONS --format=long'; +alias d dir; +alias v vdir; +unset noglob; + +# Set up the LS_COLORS environment: +[ -f $HOME/.dir_colors ] +if ($status == 0) then + eval `/bin/dircolors -c $HOME/.dir_colors` +endif +[ -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c /etc/DIR_COLORS` +endif +[ ! -f $HOME/.dir_colors -a ! -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c` +endif + diff --git a/source/a/coreutils/coreutils-dircolors.sh b/source/a/coreutils/coreutils-dircolors.sh new file mode 100644 index 00000000..728ea745 --- /dev/null +++ b/source/a/coreutils/coreutils-dircolors.sh @@ -0,0 +1,65 @@ +# Slackware color ls profile script for /bin/sh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +if [ "$SHELL" != "/bin/zsh" ]; then + # Edit options below for all sh-like shells except zsh: + OPTIONS="-F -b -T 0" +else + # If you use zsh, edit the options below instead: + OPTIONS=( -F -b -T 0 ) +fi + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +COLOR=auto + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +if [ "$SHELL" = "/bin/zsh" ]; then + LS_OPTIONS=( $OPTIONS --color=$COLOR ); +else + LS_OPTIONS=" $OPTIONS --color=$COLOR "; +fi +export LS_OPTIONS; +unset COLOR +unset OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +# Assume shell aliases are supported. Ash is going to freak out +# when it sees zsh syntax anyway, so whatever. +alias ls='/bin/ls $LS_OPTIONS'; +alias dir='/bin/ls $LS_OPTIONS --format=vertical'; +alias vdir='/bin/ls $LS_OPTIONS --format=long'; +alias d=dir; +alias v=vdir; + +# Just for fun, here are the old sh/ash style shell functions. +# this script isn't currently working with ash (and makes some noisy +# error messages), but perhaps these will still be of use to +# someone... +#ls () { /bin/ls $LS_OPTIONS "$@" ; }; +#dir () { /bin/ls $LS_OPTIONS --format=vertical "$@" ; }; +#vdir () { /bin/ls $LS_OPTIONS --format=long "$@" ; }; +#d () { dir "$@" ; }; +#v () { vdir "$@" ; }; + +# Set up the LS_COLORS environment: +if [ -f $HOME/.dir_colors ]; then + eval `/bin/dircolors -b $HOME/.dir_colors` +elif [ -f /etc/DIR_COLORS ]; then + eval `/bin/dircolors -b /etc/DIR_COLORS` +else + eval `/bin/dircolors -b` +fi + diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild new file mode 100755 index 00000000..bc043427 --- /dev/null +++ b/source/a/coreutils/coreutils.SlackBuild @@ -0,0 +1,168 @@ +#!/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. + +PRGNAM=coreutils +VERSION=${VERSION:-7.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +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 + +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 {} \; + +# Patch in the uname for Linux enhancements +zcat $CWD/$PRGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Compilation with glibc version later than 2.3.2 needs the environment +# variable DEFAULT_POSIX2_VERSION set to 199209. +# Without the next line, the coreutils will start complaining about 'obsolete' +# command switches, like "tail -20" will be considered obsolete. +# This behaviour breaks many other packages... the 'obsolete' parameters are +# too commonly used to disregard them. Better to stick with the older more +# widely accepted standards until things begin to demand the new way. + +CFLAGS="$SLKCFLAGS" \ +DEFAULT_POSIX2_VERSION=199209 \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --sysconfdir=/etc \ + --build=$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 + +# We have had the mktemp from debianutils included with Slackware for quite a +# long time, and certain options are changed here, like changing -u to mean a +# dry-run rather than to unlink the tempfile when finished. Since this could +# break existing scripts, unless someone can tell me a good reason why we +# should start using a new version of mktemp, we will continue to use the +# one we've been using. If the new one starts to become expected, let me know. +# We'll figure out what the best options are and go from there. +mv $PKG/bin/mktemp $PKG/bin/mktemp-gnu +mv $PKG/usr/man/man1/mktemp.1 $PKG/usr/man/man1/mktemp-gnu.1 + +# This seems wrong, and it stomps on files in the ksh93 package, though I'm +# not sure the placement of those is correct, either... The ksh93 package +# installs them as flat text files, while coreutils installs empty directories +# Oh well, this is what we've done for years, and nobody's complained... +rm -rf $PKG/usr/share/locale/*/LC_TIME + +# These are important enough that they should probably all go into /bin at this +# point... Having some of them unavailable when /usr isn't mounted is just a +# source of unending bug reports for various third party applications. +# Time to end those reports. :-) +mkdir -p $PKG/bin $PKG/usr/bin +( cd $PKG/usr/bin + for file in ../../bin/* ; do + ln --verbose -sf $file . + done +) + +# Add some defaults, although a very slack-like set of default options are built +# into /bin/ls now anyway: +mkdir -p $PKG/etc +zcat $CWD/DIR_COLORS.gz > $PKG/etc/DIR_COLORS.new + +# Since dircolors no longer provides any default aliases these scripts +# will be needed for ls to act as expected: +mkdir -p $PKG/etc/profile.d +zcat $CWD/coreutils-dircolors.csh.gz > $PKG/etc/profile.d/coreutils-dircolors.csh +zcat $CWD/coreutils-dircolors.sh.gz > $PKG/etc/profile.d/coreutils-dircolors.sh +chmod 755 $PKG/etc/profile.d/* + +# Remove things that are provided by other Slackware packages: +for dupe in hostname kill su uptime ; do + rm -f $PKG/bin/${dupe} $PKG/usr/bin/${dupe} \ + $PKG/usr/sbin/${dupe} $PKG/usr/man/man?/${dupe}.* ; +done + +# Add ginstall links (there's still a lot of stuff that needs this to compile): +( cd $PKG/bin ; ln -sf install ginstall ) +( cd $PKG/usr/bin ; ln -sf ../../bin/ginstall ginstall ) +( cd $PKG/usr/man/man1 ; ln -sf install.1 ginstall.1 ) + +( 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/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* NEWS README THANKS THANKS-to-translators TODO \ + $PKG/usr/doc/$PRGNAM-$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/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/coreutils/coreutils.uname.diff b/source/a/coreutils/coreutils.uname.diff new file mode 100644 index 00000000..bd39221c --- /dev/null +++ b/source/a/coreutils/coreutils.uname.diff @@ -0,0 +1,161 @@ +Submitted By: Jim Gifford <jim at linuxfromscratch dot org> +Date: 2006-08-24 +Initial Package Version: 5.97 +Upstream Status: Not Accepted +Origin: Gentoo - http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils +Description: Display CPU Information from /proc/cpuinfo or /proc/sysinfo + +Original Patch by - Matthew Burgess and Scot McPherson + +diff -Nur coreutils-7.1.orig/src/uname.c coreutils-7.1/src/uname.c +--- coreutils-7.1/src/uname.c 2008-09-18 02:06:57.000000000 -0500 ++++ coreutils-7.1/src/uname.c 2009-02-22 21:23:02.209219703 -0600 +@@ -50,6 +50,11 @@ + # include <mach-o/arch.h> + #endif + ++#if defined (__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -155,6 +160,106 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++} ++ ++static int __linux_procinfo (int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(bfin) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -302,10 +407,14 @@ + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -358,9 +467,13 @@ + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/source/a/coreutils/doinst.sh b/source/a/coreutils/doinst.sh new file mode 100644 index 00000000..b1a6112f --- /dev/null +++ b/source/a/coreutils/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/DIR_COLORS.new + diff --git a/source/a/coreutils/slack-desc b/source/a/coreutils/slack-desc new file mode 100644 index 00000000..57e562d3 --- /dev/null +++ b/source/a/coreutils/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------------------------------------------------------| +coreutils: coreutils (core GNU utilities) +coreutils: +coreutils: These are the GNU core utilities, the basic command line programs +coreutils: such as 'mkdir', 'ls', and 'rm' that are needed for the system to +coreutils: run. This package is the union of the GNU fileutils, sh-utils, and +coreutils: textutils packages. Most of these programs have significant +coreutils: advantages over their Unix counterparts, such as greater speed, +coreutils: additional options, and fewer arbitrary limits. +coreutils: +coreutils: +coreutils: diff --git a/source/a/cpio/cpio-2.9.gcc43.diff b/source/a/cpio/cpio-2.9.gcc43.diff new file mode 100644 index 00000000..cfe02d7f --- /dev/null +++ b/source/a/cpio/cpio-2.9.gcc43.diff @@ -0,0 +1,30 @@ +--- ./lib/argp-fmtstream.h.orig 2006-01-21 04:37:18.000000000 -0600 ++++ ./lib/argp-fmtstream.h 2009-03-15 15:17:22.000000000 -0500 +@@ -198,8 +198,12 @@ + #endif + + #ifndef ARGP_FS_EI ++#ifdef __GNUC_STDC_INLINE__ ++#define ARGP_FS_EI extern inline __attribute__((__gnu_inline__)) ++#else + #define ARGP_FS_EI extern inline + #endif ++#endif + + ARGP_FS_EI size_t + __argp_fmtstream_write (argp_fmtstream_t __fs, +--- ./lib/argp.h.orig 2007-03-30 11:20:19.000000000 -0500 ++++ ./lib/argp.h 2009-03-15 15:16:34.000000000 -0500 +@@ -580,7 +580,11 @@ + # endif + + # ifndef ARGP_EI +-# define ARGP_EI extern __inline__ ++# if defined __GNUC_STDC_INLINE__ ++# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__)) ++# else ++# define ARGP_EI extern __inline__ ++# endif + # endif + + ARGP_EI void diff --git a/source/a/cpio/cpio.SlackBuild b/source/a/cpio/cpio.SlackBuild new file mode 100755 index 00000000..9cb6054b --- /dev/null +++ b/source/a/cpio/cpio.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/sh + +# Copyright 2006, 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. + +PKGNAM=cpio +VERSION=${VERSION:-2.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" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$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 + +zcat $CWD/cpio-2.9.gcc43.diff.gz | patch -p1 --verbose || 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 {} \; + +# Use the rmt provided by the tar package +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/${PKGNAM}-$VERSION \ + --enable-mt \ + --with-rmt=/sbin/rmt \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG INSTALL="install -p" || exit 1 + +# Remove an empty directory +rmdir $PKG/usr/libexec + +# Do not clash with the 'mt' which is part of tar: +mv $PKG/bin/mt{,-GNU} +mv $PKG/usr/man/man1/mt{,-GNU}.1 + +# Strip stuff: +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 pages: +rm -f $PKG/usr/info/dir +gzip -9f $PKG/usr/info/* + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/cpio-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog NEWS README THANKS TODO \ + $PKG/usr/doc/cpio-$VERSION +chmod 644 $PKG/usr/doc/cpio-$VERSION/* + +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/a/cpio/slack-desc b/source/a/cpio/slack-desc new file mode 100644 index 00000000..90f820c2 --- /dev/null +++ b/source/a/cpio/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------------------------------------------------------| +cpio: cpio (backup and archiving utility) +cpio: +cpio: This is GNU cpio, a program to manage archives of files. This package +cpio: also includes mt, a tape drive control program. cpio copies files into +cpio: or out of a cpio or tar archive, which is a file that contains other +cpio: files plus information about them, such as their pathname, owner, +cpio: timestamps, and access permissions. The archive can be another file on +cpio: the disk, a magnetic tape, or a pipe. +cpio: +cpio: +cpio: diff --git a/source/a/cryptsetup/cryptsetup.SlackBuild b/source/a/cryptsetup/cryptsetup.SlackBuild new file mode 100755 index 00000000..7a7f3a8b --- /dev/null +++ b/source/a/cryptsetup/cryptsetup.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/sh + +# Copyright (c) 2007, 2009 Eric Hameleers <alien@slackware.com> +# Copyright (c) 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. + +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers <alien@slackware.com> +# For: cryptsetup +# Descr: Utility for setting up encrypted filesystems +# URL: http://luks.endorphin.org/dm-crypt +# +# ----------------------------------------------------------------------------- + +PRGNAM=cryptsetup +VERSION=${VERSION:-1.0.7} +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-cryptsetup + +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf cryptsetup-$VERSION +tar xvf $CWD/cryptsetup-$VERSION.tar.bz2 || exit 1 +cd cryptsetup-$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 {} \; + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-libgcrypt \ + --enable-libdevmapper \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make +make DESTDIR=$PKG install + +# +# Next, make the static version that we will use for mkinitrd: +# + +make clean +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-libgcrypt \ + --enable-libdevmapper \ + --enable-static \ + --disable-shared \ + --disable-shared-library \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make + +# I have to do one old-school thing to leave a mark here: +mkdir -p $PKG/sbin +cat src/cryptsetup > $PKG/sbin/cryptsetup.static +chmod 755 $PKG/sbin/cryptsetup.static + +mv $PKG/usr/sbin/cryptsetup $PKG/usr/sbin/cryptsetup.dynamic +# Replace with a link: +( cd $PKG/usr/sbin ; ln -sf cryptsetup.dynamic cryptsetup ) +# In /sbin, use the static version as /usr *might* not be mounted yet. +# However, note that some cryptsetup operations cause the static +# version to segfault, so for things like formatting you'll want +# to use the dynamic one. That's what should be in the $PATH first. +( cd $PKG/sbin ; ln -sf cryptsetup.static cryptsetup ) + +# Remove unneeded empty directory: +#rmdir $PKG/usr/lib/cryptsetup + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; || true + +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/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/a/cryptsetup/slack-desc b/source/a/cryptsetup/slack-desc new file mode 100644 index 00000000..fbc0035b --- /dev/null +++ b/source/a/cryptsetup/slack-desc @@ -0,0 +1,21 @@ +# 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------------------------------------------------------| +cryptsetup: cryptsetup (utility for setting up encrypted filesystems) +cryptsetup: +cryptsetup: LUKS is a standard for cross-platform hard disk encryption. +cryptsetup: It provides secure management of multiple userpasswords and +cryptsetup: stores setup information in the partition header. +cryptsetup: LUKS for dm-crypt is now implemented in cryptsetup replacing the +cryptsetup: original cryptsetup. It provides all the functionally of the +cryptsetup: original version plus all LUKS features. +cryptsetup: +cryptsetup: cryptsetup home: http://luks.endorphin.org/dm-crypt +cryptsetup: + + diff --git a/source/a/cups/cups.SlackBuild b/source/a/cups/cups.SlackBuild new file mode 100755 index 00000000..5ae07095 --- /dev/null +++ b/source/a/cups/cups.SlackBuild @@ -0,0 +1,171 @@ +#!/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. + +# CUPS build script by volkerdi@slackware.com. + +VERSION=1.3.11 +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-cups + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cups-$VERSION +tar xvf $CWD/cups-$VERSION-source.tar.?z* || exit 1 +cd cups-$VERSION + +zcat $CWD/cups.firefox.desktop.diff.gz | patch -p1 --verbose || exit 1 + +sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-ssl \ + --enable-openssl=yes \ + --enable-gnutls=no \ + --enable-cdsassl=no \ + --docdir=/usr/doc \ + --without-php \ + --disable-pam \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +mkdir -p $PKG/etc/cups +mkdir -p $PKG/var/spool +make BUILDROOT=$PKG install || exit 1 + +# I've added so many things like /etc/init.d/ to Slackware that CUPS +# is now installing init scripts to the Red Hat locations. We'll move +# them to the usual locations: +mkdir -p $PKG/etc/rc.d +# Handle this as a config file, and non-executable in a default install: +mv $PKG/etc/init.d/cups $PKG/etc/rc.d/rc.cups.new +chmod 644 $PKG/etc/rc.d/rc.cups.new +# Clear out the additions: +rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d + +# I'm not sure if overwriting this blindly could have ill effects, +# but it never hurts to play it safe. According to the dbus-daemon +# manpage, only files ending in .conf will be used, so there won't +# be any unintended doubling up. +mv $PKG/etc/dbus-1/system.d/cups.conf $PKG/etc/dbus-1/system.d/cups.conf.new + +# For full CUPS SMB support, you'll need to install the cups-samba +# package from the source in this directory. There's no easy way +# to add that to a package build, and the requests aren't pouring in, +# so you'll have to install it yourself. It's easy to do. + +# However, this will get you the most useful SMB support for free. +# Thanks to Boris Kurktchiev for the tip. :-) +( cd $PKG/usr/lib${LIBDIRSUFFIX}/cups/backend + if [ ! -e smb ]; then + ln -sf /usr/bin/smbspool smb + fi +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Remove preformatted manpages and move the manpages to /usr/man: +( cd $PKG/usr/share/man + find . -type d -name "cat*" | xargs rm -rf + cd .. + mv man .. +) + +# Adjust/expand docs: +( mkdir -p $PKG/usr/doc + mv $PKG/usr/share/doc/cups $PKG/usr/doc/cups-$VERSION + rmdir $PKG/usr/share/doc + cd $PKG/usr/doc + ln -sf cups-$VERSION cups ) + +# I'm sorry, but PDF files are almost as bloated and annoying as +# MS Word documents. We'll retain the HTML files in /usr/doc. +( cd $PKG/usr/doc + find . -name "*.pdf" -exec rm -f {} \; ) + +# Apply no-clobber fix to conffiles: +( cd $PKG/etc/cups + for file in * ; do + if [ -f $file ]; then + mv $file $file.new + fi + done ) + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Use symlinks to certain binaries so that CUPS and LPRng can coexist: +SUFFIX=cups +for file in \ +usr/bin/cancel \ +usr/bin/lp \ +usr/bin/lpq \ +usr/bin/lpr \ +usr/bin/lprm \ +usr/bin/lpstat \ +usr/sbin/lpc ; do + ( cd $PKG + mv ${file} ${file}-${SUFFIX} + ( cd `dirname ${file}` ; ln -sf `basename ${file}`-${SUFFIX} `basename ${file}` ) + ) +done +# Now fix the associated man pages: +mv $PKG/usr/man/man1/cancel.1.gz $PKG/usr/man/man1/cancel-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lp.1.gz $PKG/usr/man/man1/lp-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpq.1.gz $PKG/usr/man/man1/lpq-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpr.1.gz $PKG/usr/man/man1/lpr-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lprm.1.gz $PKG/usr/man/man1/lprm-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpstat.1.gz $PKG/usr/man/man1/lpstat-${SUFFIX}.1.gz +mv $PKG/usr/man/man8/lpc.8.gz $PKG/usr/man/man8/lpc-${SUFFIX}.8.gz +( cd $PKG/usr/man/man1 + ln -sf cancel-${SUFFIX}.1.gz cancel.1.gz + ln -sf lp-${SUFFIX}.1.gz lp.1.gz + ln -sf lpq-${SUFFIX}.1.gz lpq.1.gz + ln -sf lpr-${SUFFIX}.1.gz lpr.1.gz + ln -sf lprm-${SUFFIX}.1.gz lprm.1.gz + ln -sf lpstat-${SUFFIX}.1.gz lpstat.1.gz +) +( cd $PKG/usr/man/man8 + ln -sf lpc-${SUFFIX}.8.gz lpc.8.gz +) + +# Add the doinst.sh that installs the .new conffiles: +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/cups-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/cups/cups.firefox.desktop.diff b/source/a/cups/cups.firefox.desktop.diff new file mode 100644 index 00000000..96affd5a --- /dev/null +++ b/source/a/cups/cups.firefox.desktop.diff @@ -0,0 +1,11 @@ +diff -u -r --new-file cups-1.3.11.orig/desktop/cups.desktop cups-1.3.11/desktop/cups.desktop +--- cups-1.3.11.orig/desktop/cups.desktop 2008-09-05 19:30:39.000000000 -0500 ++++ cups-1.3.11/desktop/cups.desktop 2009-08-21 20:18:23.604682681 -0500 +@@ -1,6 +1,6 @@ + [Desktop Entry] + Categories=System;Printing;HardwareSettings;X-Red-Hat-Base; +-Exec=htmlview http://localhost:631/ ++Exec=firefox http://localhost:631/ + Icon=cups + StartupNotify=false + Terminal=false diff --git a/source/a/cups/doinst.sh b/source/a/cups/doinst.sh new file mode 100644 index 00000000..3f56dab3 --- /dev/null +++ b/source/a/cups/doinst.sh @@ -0,0 +1,28 @@ +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... +} +for file in etc/cups/*.new ; do + config $file +done +config etc/dbus-1/system.d/cups.conf.new + +# Leave any new rc.cups with the same permissions as the old one: +# This is a kludge, but it's because there's no --reference option +# on busybox's 'chmod': +if [ -e etc/rc.d/rc.cups ]; then + if [ -x etc/rc.d/rc.cups ]; then + chmod 755 etc/rc.d/rc.cups.new + else + chmod 644 etc/rc.d/rc.cups.new + fi +fi +# Then config() it: +config etc/rc.d/rc.cups.new diff --git a/source/a/cups/slack-desc b/source/a/cups/slack-desc new file mode 100644 index 00000000..c2e1643c --- /dev/null +++ b/source/a/cups/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------------------------------------------------------| +cups: CUPS (Common UNIX Printing System) +cups: +cups: The Common UNIX Printing System provides a portable printing layer for +cups: UNIX(R)-like operating systems. It has been developed by Easy Software +cups: Products to promote a standard printing solution for all UNIX vendors +cups: and users. CUPS uses the Internet Printing Protocol ("IPP") as the +cups: basis for managing print jobs and queues. The CUPS package includes +cups: System V and Berkeley command-line interfaces, a PostScript RIP +cups: package for supporting non-PostScript printer drivers, and tools for +cups: creating additional printer drivers and other CUPS services. +cups: diff --git a/source/a/cxxlibs/cxxlibs.SlackBuild b/source/a/cxxlibs/cxxlibs.SlackBuild new file mode 100755 index 00000000..025a6494 --- /dev/null +++ b/source/a/cxxlibs/cxxlibs.SlackBuild @@ -0,0 +1,57 @@ +#!/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=cxxlibs +VERSION=${VERSION:-6.0.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +cat $CWD/symlinks-to-tracked-libs${LIBDIRSUFFIX} | while read library ; do + ( mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + rm -f $(readlink $library) + cp -a $(dirname $library)/$(readlink $library) . + ) +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/a/cxxlibs/oldgcc/oldgcc.build b/source/a/cxxlibs/oldgcc/oldgcc.build new file mode 100755 index 00000000..471fefa1 --- /dev/null +++ b/source/a/cxxlibs/oldgcc/oldgcc.build @@ -0,0 +1,73 @@ +#!/bin/sh +# GCC package build script (written by volkerdi@slackware.com) +# +# Copyright 2003, 2005 Slackware Linux, Inc., Concord, California, 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. +# + +# NOTE - THIS DOESN'T MAKE PACKAGES! IT JUST BUILDS GCC AND G++ +# this is for the purpose of getting libstdc++.so.5 +VERSION=3.3.6 +ARCH=${ARCH:-x86_64} +TARGET=${TARGET:-$ARCH-slackware-linux} +BUILD=${BUILD:-1} + +CWD=`pwd` +# Temporary build location. This should *NOT* be a directory +# path a non-root user could create later... +TMP=/gcc-build-$(mcookie) + +# Clear the build locations: +if [ -d $TMP ]; then + rm -rf $TMP +fi + +EXTRA=--disable-multilib + +mkdir -p $TMP +cd $TMP +tar xjvf $CWD/gcc-$VERSION.tar.bz2 +# install docs +( cd gcc-$VERSION + # Fix perms/owners + chown -R root.root . + find . -perm 777 -exec chmod 755 {} \; + find . -perm 775 -exec chmod 755 {} \; + find . -perm 754 -exec chmod 755 {} \; + find . -perm 664 -exec chmod 644 {} \; +) +# build gcc +( mkdir gcc.build.lnx; + cd gcc.build.lnx; + CFLAGS="-O2 -fPIC" \ + ../gcc-$VERSION/configure \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-languages=c,c++ \ + --disable-checking \ + --with-gnu-ld \ + --verbose \ + --target=${TARGET} \ + --host=${TARGET} \ + $EXTRA + # Include all debugging info (for now): + make #bootstrap; +) 2>&1 | tee $TMP/gcc.build.log diff --git a/source/a/cxxlibs/slack-desc b/source/a/cxxlibs/slack-desc new file mode 100644 index 00000000..c1428f94 --- /dev/null +++ b/source/a/cxxlibs/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------------------------------------------------------| +cxxlibs: cxxlibs (C++ shared library compatibility package) +cxxlibs: +cxxlibs: This package contains the shared libraries needed to run dynamically +cxxlibs: linked C++ binaries linked with older versions of libstdc++. +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs b/source/a/cxxlibs/symlinks-to-tracked-libs new file mode 100644 index 00000000..e4f67cf6 --- /dev/null +++ b/source/a/cxxlibs/symlinks-to-tracked-libs @@ -0,0 +1,5 @@ +/usr/i486-slackware-linux/lib/libstdc++-libc6.1-2.so.3 +/usr/i486-slackware-linux/lib/libstdc++-libc6.2-2.so.3 +/usr/i486-slackware-linux/lib/libstdc++.so.4 +/usr/i486-slackware-linux/lib/libstdc++.so.5 +/usr/lib/libstdc++.so.6 diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs64 b/source/a/cxxlibs/symlinks-to-tracked-libs64 new file mode 100644 index 00000000..3a348cf1 --- /dev/null +++ b/source/a/cxxlibs/symlinks-to-tracked-libs64 @@ -0,0 +1,2 @@ +/usr/lib64/libstdc++.so.5 +/usr/lib64/libstdc++.so.6 diff --git a/source/a/dbus/dbus.SlackBuild b/source/a/dbus/dbus.SlackBuild new file mode 100755 index 00000000..c761ce54 --- /dev/null +++ b/source/a/dbus/dbus.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh +# Copyright 2007, 2008 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=dbus +VERSION=1.2.14 +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.xz || 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-shared=yes \ + --enable-static=no \ + --with-system-pid-file=/var/run/dbus/dbus.pid \ + --with-system-socket=/var/run/dbus/system_bus_socket \ + --with-init-scripts=slackware \ + --build=$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 + +( 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 +) + +# Install a custom init script for dbus - the included one is not good for us +rm $PKG/etc/rc.d/* +zcat $CWD/rc.messagebus.gz > $PKG/etc/rc.d/rc.messagebus.new +chmod 0755 $PKG/etc/rc.d/rc.messagebus.new + +# Let's not clobber existing config files +mv $PKG/etc/dbus-1/session.conf $PKG/etc/dbus-1/session.conf.new +mv $PKG/etc/dbus-1/system.conf $PKG/etc/dbus-1/system.conf.new + +# Fix some directory ownership +chown messagebus $PKG/var/lib/dbus + +# Add documentation +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL NEWS README doc/*.{txt,html,dtd} \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \; + +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/a/dbus/doinst.sh b/source/a/dbus/doinst.sh new file mode 100644 index 00000000..71c3d7a0 --- /dev/null +++ b/source/a/dbus/doinst.sh @@ -0,0 +1,24 @@ +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.messagebus.new: +if [ -e etc/rc.d/rc.messagebus ]; then + cp -a etc/rc.d/rc.messagebus etc/rc.d/rc.messagebus.new.incoming + cat etc/rc.d/rc.messagebus.new > etc/rc.d/rc.messagebus.new.incoming + mv etc/rc.d/rc.messagebus.new.incoming etc/rc.d/rc.messagebus.new +fi + +config etc/dbus-1/session.conf.new +config etc/dbus-1/system.conf.new +config etc/rc.d/rc.messagebus.new + diff --git a/source/a/dbus/rc.messagebus b/source/a/dbus/rc.messagebus new file mode 100644 index 00000000..7b27eb59 --- /dev/null +++ b/source/a/dbus/rc.messagebus @@ -0,0 +1,80 @@ +#!/bin/sh +# +# messagebus: The D-BUS systemwide message bus +# +# description: This is a daemon which broadcasts notifications of system events \ +# and other messages. See http://www.freedesktop.org/software/dbus/ +# +# processname: dbus-daemon +# pidfile: /var/run/dbus/pid + +# This is a modified version of the rc.messagebus script distributed with the +# dbus sources. Thanks to Don Tanner of the GWare <http://gware.org> Project +# for most of the work involved --Robby Workman <rworkman@slackware.com> + + +PIDFILE=/var/run/dbus/dbus.pid + +start() { + if ! ps axc | grep -w dbus-daemon ; then + rm -f $(dirname $PIDFILE)/* + if [ -x /usr/bin/dbus-uuidgen -a -x /usr/bin/dbus-daemon ] ; then + echo "Starting system message bus: /usr/bin/dbus-uuidgen --ensure ; /usr/bin/dbus-daemon --system" + /usr/bin/dbus-uuidgen --ensure + /usr/bin/dbus-daemon --system 1> /dev/null + fi + fi +} + +stop() { + if [ -e "$PIDFILE" ]; then + echo "Stopping system message bus..." + pid=$(cat $PIDFILE) + kill $pid 1> /dev/null 2> /dev/null + # Just in case: + killall dbus-daemon 1> /dev/null 2> /dev/null + rm -f $PIDFILE + fi +} + +reload() { + echo "Reloading system message bus configuration..." + if [ -e "$PIDFILE" ]; then + pid=$(cat $PIDFILE) + kill -HUP $pid + else + killall -HUP dbus-daemon + fi +} + +status() { + if ps axc | grep -wq dbus-daemon 2>/dev/null ; then + echo "dbus-daemon is running." + else + echo "dbus is stopped." + fi +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + reload + ;; + status) + status + ;; + *) + echo $"Usage: $0 {start|stop|restart|reload|status}" + ;; +esac + diff --git a/source/a/dbus/slack-desc b/source/a/dbus/slack-desc new file mode 100644 index 00000000..0610ab8d --- /dev/null +++ b/source/a/dbus/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------------------------------------------------------| +dbus: dbus (D-Bus message bus system) +dbus: +dbus: D-Bus supplies both a system daemon (for events such as "new hardware +dbus: device added" or "printer queue changed") and a per user login +dbus: session daemon (for general IPC needs among user applications). +dbus: Also, the message bus is built on top of a general one-to-one message +dbus: passing framework, which can be used by any two apps to communicate +dbus: directly (without going through the message bus daemon). +dbus: +dbus: +dbus: diff --git a/source/a/dcron/dcron-2.3.3.crontab.diff4 b/source/a/dcron/dcron-2.3.3.crontab.diff4 new file mode 100644 index 00000000..30d0501a --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.crontab.diff4 @@ -0,0 +1,19 @@ +--- ./crontab.c.orig Wed Feb 20 14:31:32 2002 ++++ ./crontab.c Wed Feb 20 14:33:13 2002 +@@ -197,14 +197,14 @@ + int n; + + snprintf(path, sizeof(path), "%s.new", pas->pw_name); +- if ((fd = open(path, O_CREAT|O_TRUNC|O_EXCL|O_APPEND|O_WRONLY, 0600)) >= 0) { ++ if ((fd = open(path, O_CREAT|O_TRUNC|O_APPEND|O_WRONLY, 0600)) >= 0) { + while ((n = read(repFd, buf, sizeof(buf))) > 0) { + write(fd, buf, n); + } + close(fd); + rename(path, pas->pw_name); + } else { +- fprintf(stderr, "unable to create %s/%s\n", CDir, buf); ++ fprintf(stderr, "unable to create %s/%s\n", CDir, path); + } + close(repFd); + } diff --git a/source/a/dcron/dcron-2.3.3.diff b/source/a/dcron/dcron-2.3.3.diff new file mode 100644 index 00000000..22806de3 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff @@ -0,0 +1,40 @@ +--- ./defs.h.orig Fri Sep 5 14:44:32 1997 ++++ ./defs.h Thu Aug 26 16:56:10 1999 +@@ -29,7 +29,7 @@ + #define CRONTABS "/var/spool/cron/crontabs" + #endif + #ifndef TMPDIR +-#define TMPDIR "/tmp" ++#define TMPDIR "/var/spool/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 +--- ./subs.c.orig Mon Feb 16 13:35:10 1998 ++++ ./subs.c Thu Aug 26 16:57:21 1999 +@@ -15,7 +15,7 @@ + Prototype int ChangeUser(const char *user, short dochdir); + Prototype void vlog(int level, int fd, const char *ctl, va_list va); + Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate); +-Prototype char *strdup(const char *); ++Prototype char *xx_strdup(const char *); + + void + log9(const char *ctl, ...) +@@ -80,7 +80,7 @@ + + buf[0] = 0; + if (useDate) +- strftime(buf, 128, "%d-%b-%y %H:%M ", tp); ++ strftime(buf, 128, "%d-%b-%Y %H:%M ", tp); + vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va); + return(strlen(buf)); + } +@@ -132,7 +132,7 @@ + } + + char * +-strdup(const char *str) ++xx_strdup(const char *str) + { + char *ptr = malloc(strlen(str) + 1); + diff --git a/source/a/dcron/dcron-2.3.3.diff2 b/source/a/dcron/dcron-2.3.3.diff2 new file mode 100644 index 00000000..8eb8242c --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff2 @@ -0,0 +1,477 @@ +--- ./CHANGES:1.1 Fri Jan 7 18:15:59 2000 ++++ ./CHANGES Thu Apr 20 12:10:36 2000 +@@ -1,3 +1,15 @@ ++20/03/00 - TEMHOTA <temnota@kmv.ru> ++ Adding SIGHUP signal handler. crond die when init send to it SIGHUP. ++ Rewrtited all loging code. Added logging through syslog and normal ++ logging to file. ++ ++ Technical details: ++ + logging through syslog used facility LOG_CRON ++ + log_err - now *always* write message to logger (if selected logging ++ through syslog - message send as LOG_ERR). ++ + log9 - sends message hrough syslog loglevel LOG_WARNING ++ + for all other log levels - default syslog loglevel LOG_NOTICE ++ + 02/16/98 - Jordan Mendelson (jordy@wserv.com) + + Numerous people have reported a problem with logging. I'm sorry +--- ./Makefile:1.1 Fri Jan 7 18:15:59 2000 ++++ ./Makefile Thu Apr 20 12:24:40 2000 +@@ -27,7 +27,7 @@ + rm -f crond crontab + + cleano: +- rm -f *.o dcron.tgz $(PROTOS) ++ rm -f *.o dcron.tgz $(PROTOS) *~ + + install: crond crontab + install -o root -g root -m 0755 crond /usr/sbin +--- ./crontab.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./crontab.c Sun Mar 19 15:03:36 2000 +@@ -15,6 +15,9 @@ + char *CDir = CRONTABS; + int UserId; + short LogLevel = 9; ++short DebugOpt = 0; ++short LoggerOpt = 0; ++char *LogFile = LOG_FILE; + + void EditFile(const char *user, const char *file); + int GetReplaceStream(const char *user, const char *file); +@@ -136,7 +139,7 @@ + */ + + if (chdir(CDir) < 0) { +- fprintf(stderr, "cannot change diir to %s: %s\n", CDir, strerror(errno)); ++ fprintf(stderr, "cannot change dir to %s: %s\n", CDir, strerror(errno)); + exit(1); + } + +--- ./defs.h:1.1 Fri Jan 7 18:15:59 2000 ++++ ./defs.h Sun Mar 19 15:03:36 2000 +@@ -17,6 +17,9 @@ + #include <pwd.h> + #include <unistd.h> + #include <grp.h> ++#include <syslog.h> ++#include <signal.h> ++#include <getopt.h> + #include <sys/ioctl.h> + #include <sys/wait.h> + #include <sys/stat.h> +@@ -30,6 +33,9 @@ + #endif + #ifndef TMPDIR + #define TMPDIR "/var/spool/cron" ++#endif ++#ifndef LOG_FILE ++#define LOG_FILE "/var/log/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 +--- ./job.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./job.c Thu Apr 20 12:10:36 2000 +@@ -16,7 +16,7 @@ + { + char mailFile[128]; + int mailFd; +- ++ + line->cl_Pid = 0; + line->cl_MailFlag = 0; + +@@ -57,14 +57,6 @@ + log(5, "Child Running %s\n", line->cl_Shell); + + /* +- * Setup close-on-exec descriptor in case exec fails +- */ +- +- dup2(2, 8); +- fcntl(8, F_SETFD, 1); +- fclose(stderr); +- +- /* + * stdin is already /dev/null, setup stdout and stderr + */ + +@@ -73,13 +65,13 @@ + dup2(mailFd, 2); + close(mailFd); + } else { +- logfd(8, "unable to create mail file user %s file %s, output to /dev/null\n", ++ log_err("unable to create mail file user %s file %s, output to /dev/null\n", + file->cf_User, + mailFile + ); + } + execl("/bin/sh", "/bin/sh", "-c", line->cl_Shell, NULL, NULL); +- logfd(8, "unable to exec, user %s cmd /bin/sh -c %s\n", ++ log_err("unable to exec, user %s cmd /bin/sh -c %s\n", + file->cf_User, + line->cl_Shell + ); +@@ -89,7 +81,7 @@ + /* + * PARENT, FORK FAILED + */ +- log9("couldn't fork, user %s\n", file->cf_User); ++ log_err("couldn't fork, user %s\n", file->cf_User); + line->cl_Pid = 0; + remove(mailFile); + } else { +@@ -158,6 +150,7 @@ + if (mailFd < 0) { + return; + } ++ + if (fstat(mailFd, &sbuf) < 0 || + sbuf.st_uid != DaemonUid || + sbuf.st_nlink != 0 || +@@ -182,15 +175,6 @@ + exit(0); + + /* +- * create close-on-exec log descriptor in case exec fails +- */ +- +- dup2(2, 8); +- fcntl(8, F_SETFD, 1); +- +- fclose(stderr); +- +- /* + * run sendmail with mail file as standard input, only if + * mail file exists! + */ +@@ -200,7 +184,7 @@ + close(mailFd); + + execl(SENDMAIL, SENDMAIL, SENDMAIL_ARGS, NULL, NULL); +- logfd(8, "unable to exec %s %s, user %s, output to sink null", ++ log_err("unable to exec %s %s, user %s, output to sink null", + SENDMAIL, + SENDMAIL_ARGS, + file->cf_User +@@ -210,7 +194,7 @@ + /* + * PARENT, FORK FAILED + */ +- log9("unable to fork, user %s", file->cf_User); ++ log_err("unable to fork, user %s", file->cf_User); + line->cl_Pid = 0; + } else { + /* +--- ./main.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./main.c Sun Mar 19 15:03:36 2000 +@@ -15,14 +15,18 @@ + Prototype short DebugOpt; + Prototype short LogLevel; + Prototype short ForegroundOpt; +-Prototype char *CDir; +-Prototype int DaemonUid; ++Prototype short LoggerOpt; ++Prototype char *CDir; ++Prototype char *LogFile; ++Prototype uid_t DaemonUid; + + short DebugOpt; + short LogLevel = 8; +-short ForegroundOpt; ++short ForegroundOpt = 0; ++short LoggerOpt; + char *CDir = CRONTABS; +-int DaemonUid; ++char *LogFile = LOG_FILE; ++uid_t DaemonUid; + + int + main(int ac, char **av) +@@ -35,48 +39,49 @@ + + DaemonUid = getuid(); + +- for (i = 1; i < ac; ++i) { +- char *ptr = av[i]; ++ opterr = 0; /* disable getopt 'errors' message.*/ + +- if (*ptr == '-') { +- ptr += 2; +- +- switch(ptr[-1]) { ++ while ((i = getopt(ac,av,"d:l:L:fbSc:")) != EOF){ ++ ++ switch (i){ + case 'l': +- LogLevel = (*ptr) ? strtol(ptr, NULL, 0) : 1; +- continue; ++ LogLevel = atoi(optarg); ++ break; + case 'd': +- DebugOpt = (*ptr) ? strtol(ptr, NULL, 0) : 1; ++ DebugOpt = atoi(optarg); + LogLevel = 0; + /* fall through */ ++ break; + case 'f': + ForegroundOpt = 1; +- continue; ++ break; + case 'b': + ForegroundOpt = 0; +- continue; ++ break; ++ case 'S': /* select logging to syslog */ ++ LoggerOpt = 0; ++ break; ++ case 'L': /* select internal file logger */ ++ LoggerOpt = 1; ++ if (*optarg != 0) LogFile = optarg; ++ break; + case 'c': +- CDir = (*ptr) ? ptr : av[++i]; +- continue; ++ if (*optarg != 0) CDir = optarg; ++ break; + default: ++ /* ++ * parse error ++ */ ++ printf("dcron " VERSION "\n"); ++ printf("dcron -d [#] -l [#] -S -L logfile -f -b -c dir\n"); ++ printf("-d num\tdebug level\n-l num\tlog level (8 - default)\n-S\tlog to syslod (defualt)\n"); ++ printf("-L file\tlog to file\n-f\trun in fordeground\n"); ++ printf("-b\trun in background (default)\n-c dir\tworking dir\n"); ++ exit(1); + break; +- } +- } +- break; /* error */ +- } +- +- /* +- * check for parse error +- */ +- +- if (i != ac) { +- if (i > ac) +- puts("expected argument for option"); +- printf("dcron " VERSION "\n"); +- printf("dcron -d[#] -l[#] -f -b -c dir\n"); +- exit(1); ++ } + } +- ++ + /* + * change directory + */ +@@ -87,14 +92,15 @@ + } + + /* +- * close stdin and stdout (stderr normally redirected by caller). +- * close unused descriptors ++ * close stdin and stdout, stderr. ++ * close unused descriptors - don't need. + * optional detach from controlling terminal + */ + + fclose(stdin); + fclose(stdout); +- ++ fclose(stderr); ++ + i = open("/dev/null", O_RDWR); + if (i < 0) { + perror("open: /dev/null:"); +@@ -102,15 +108,14 @@ + } + dup2(i, 0); + dup2(i, 1); ++ dup2(i, 2); + +- for (i = 3; i < OPEN_MAX; ++i) { +- close(i); +- } +- + if (ForegroundOpt == 0) { + int fd; + int pid; +- ++ if (setsid() < 0) ++ perror("setsid"); ++ + if ((fd = open("/dev/tty", O_RDWR)) >= 0) { + ioctl(fd, TIOCNOTTY, 0); + close(fd); +@@ -125,13 +130,17 @@ + if (pid > 0) + exit(0); + } +- ++ ++ (void)startlogger(); /* need if syslog mode selected */ ++ (void)initsignals(); /* set some signal handlers */ ++ + /* + * main loop - synchronize to 1 second after the minute, minimum sleep + * of 1 second. + */ ++ ++ log(9,"%s " VERSION " dillon, started, log level %d\n", av[0], LogLevel); + +- log9("%s " VERSION " dillon, started\n", av[0]); + SynchronizeDir("."); + + { +--- ./subs.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./subs.c Sun Mar 19 15:03:36 2000 +@@ -10,43 +10,62 @@ + + Prototype void log(int level, const char *ctl, ...); + Prototype void log9(const char *ctl, ...); +-Prototype void logfd(int fd, const char *ctl, ...); ++Prototype void log_err(const char *ctl, ...); + Prototype void fdprintf(int fd, const char *ctl, ...); +-Prototype int ChangeUser(const char *user, short dochdir); +-Prototype void vlog(int level, int fd, const char *ctl, va_list va); +-Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate); ++Prototype void vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va); ++Prototype int ChangeUser(const char *user, short dochdir); + Prototype char *xx_strdup(const char *); ++Prototype void startlogger(void); ++Prototype void initsignals(void); + ++/* ++ set log_level=9 and log messages ++*/ ++ + void + log9(const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(9, 2, ctl, va); ++ vlog(9, LOG_WARNING, ctl, va); + va_end(va); + } + ++/* ++ normal logger call point. ++*/ ++ + void + log(int level, const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(level, 2, ctl, va); ++ vlog(level, LOG_NOTICE, ctl, va); + va_end(va); + } + ++/* ++ Original: void ++ logfd(int fd, const char *ctl, ...) ++ Updated to: log_error (used by jobs.c) ++*/ ++ + void +-logfd(int fd, const char *ctl, ...) ++log_err(const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(9, fd, ctl, va); ++ vlog(20, LOG_ERR, ctl, va); + va_end(va); + } + ++/* ++ used by jobs.c (write to temp file..) ++*/ ++ + void + fdprintf(int fd, const char *ctl, ...) + { +@@ -60,32 +79,28 @@ + } + + void +-vlog(int level, int fd, const char *ctl, va_list va) ++vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va) + { + char buf[1024]; +- short n; +- static short useDate = 1; ++ int logfd; + + if (level >= LogLevel) { +- write(fd, buf, n = slog(buf, sizeof(buf), ctl, va, useDate)); +- useDate = (n && buf[n-1] == '\n'); ++ ++ vsnprintf(buf,sizeof(buf), ctl, va); ++ if (DebugOpt) fprintf(stderr,"%s",buf); ++ else ++ if (LoggerOpt == 0) syslog(MLOG_LEVEL, "%s",buf ); ++ else { ++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0){ ++ write(logfd, buf, strlen(buf)); ++ close(logfd); ++ } else ++ fprintf(stderr,"Can't open log file. Err: %s",strerror(errno)); ++ } + } + } + + int +-slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate) +-{ +- time_t t = time(NULL); +- struct tm *tp = localtime(&t); +- +- buf[0] = 0; +- if (useDate) +- strftime(buf, 128, "%d-%b-%Y %H:%M ", tp); +- vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va); +- return(strlen(buf)); +-} +- +-int + ChangeUser(const char *user, short dochdir) + { + struct passwd *pas; +@@ -141,3 +156,28 @@ + return(ptr); + } + ++ ++void ++startlogger(void){ ++int logfd; ++ ++ if (LoggerOpt == 0) ++ openlog("crond",LOG_CONS|LOG_PID,LOG_CRON); ++ ++ else { /* test logfile */ ++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0) ++ close(logfd); ++ else ++ printf("Failed to open log file '%s' reason: %s",LogFile,strerror(errno)); ++ } ++} ++ ++ ++void ++initsignals(void){ ++ ++ signal(SIGHUP,SIG_IGN); /* hmm.. but, if kill -HUP original ++ * version - his died. ;( ++ */ ++ ++} diff --git a/source/a/dcron/dcron-2.3.3.diff3 b/source/a/dcron/dcron-2.3.3.diff3 new file mode 100644 index 00000000..25c72fc9 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff3 @@ -0,0 +1,11 @@ +--- ./defs.h.orig Wed May 30 14:13:05 2001 ++++ ./defs.h Wed May 30 14:13:13 2001 +@@ -41,7 +41,7 @@ + #define OPEN_MAX 256 + #endif + #ifndef SENDMAIL +-#define SENDMAIL "/usr/lib/sendmail" ++#define SENDMAIL "/usr/sbin/sendmail" + #endif + #ifndef SENDMAIL_ARGS + #define SENDMAIL_ARGS "-t", "-oem", "-i" diff --git a/source/a/dcron/dcron-2.3.3.lsm b/source/a/dcron/dcron-2.3.3.lsm new file mode 100644 index 00000000..5c161b50 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.lsm @@ -0,0 +1,17 @@ +Begin3 +Title: DCron - yet another cron +Version: 2.3.3 +Entered-date: 17Feb98 +Description: A multi-user cron written from scratch by the author, + similar to vixie-cron but with significant differences. + Attention paid less to feature creep and more to usability + and reliability +Keywords: cron crontab dcron +Author: dillon@apollo.west.oic.com (Matthew Dillon) +Maintained-by: dillon@apollo.west.oic.com (Matthew Dillon) +Primary-site: sunsite.unc.edu /pub/Linux/system/daemons/cron +Alternate-site: +Original-site: +Platforms: +Copying-policy: GPL +End diff --git a/source/a/dcron/dcron-2.3.3.version.diff b/source/a/dcron/dcron-2.3.3.version.diff new file mode 100644 index 00000000..1b65a0c9 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.version.diff @@ -0,0 +1,11 @@ +--- ./defs.h.orig Tue Apr 9 01:07:07 2002 ++++ ./defs.h Tue Apr 9 01:07:15 2002 +@@ -51,7 +51,7 @@ + #endif + + +-#define VERSION "2.3.2" ++#define VERSION "2.3.3" + + typedef struct CronFile { + struct CronFile *cf_Next; diff --git a/source/a/dcron/dcron.SlackBuild b/source/a/dcron/dcron.SlackBuild new file mode 100755 index 00000000..c9bb62ff --- /dev/null +++ b/source/a/dcron/dcron.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=2.3.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dcron + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_dcron.tar.gz + +cd $TMP +rm -rf dcron-$VERSION +tar xzvf $CWD/dcron-$VERSION.tar.gz +cd dcron-$VERSION +mkdir -p $PKG/usr/doc/dcron-$VERSION +cp -a CHANGES README dcron-$VERSION.lsm $PKG/usr/doc/dcron-2.3.3 +chown root:root $PKG/usr/doc/dcron-$VERSION/* +chmod 644 $PKG/usr/doc/dcron-$VERSION/* +zcat $CWD/dcron-$VERSION.diff.gz | patch -p1 -E --verbose --backup || exit +# Added signal handling/logging patch from TEMHOTA <temnota@kmv.ru>: +zcat $CWD/dcron-$VERSION.diff2.gz | patch -p1 -E --verbose --backup || exit +# Use /usr/sbin/sendmail, not /usr/lib/sendmail. Fixes cron working +# with Postfix. Suggested by Big Brother. +zcat $CWD/dcron-$VERSION.diff3.gz | patch -p1 -E --verbose --backup || exit +# Fix problem where user creates /var/spool/cron/crontabs/<user>.new +# using 'crontab -', exits with control-c, and then crontab refuses to +# overwrite the junk file: +zcat $CWD/dcron-$VERSION.crontab.diff4.gz | patch -p1 -E --verbose --backup || exit +# Dcron reports wrong version: +zcat $CWD/dcron-2.3.3.version.diff.gz | patch -p1 || exit +# Keep dcron from improperly forking in some circumstances. +# Thanks to Henrik Carlqvist for the patch. +zcat $CWD/dcron.fork.diff.gz | patch -p1 +make +strip crond crontab +cat crond > $PKG/usr/sbin/crond +cat crontab > $PKG/usr/bin/crontab +zcat $CWD/run-parts.gz > $PKG/usr/bin/run-parts +cat crontab.1 | gzip -9c > $PKG/usr/man/man1/crontab.1.gz +cat crond.8 | gzip -9c > $PKG/usr/man/man8/crond.8.gz +cat $CWD/run-parts.8.gz > $PKG/usr/man/man8/run-parts.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/dcron-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/dcron/dcron.fork.diff b/source/a/dcron/dcron.fork.diff new file mode 100644 index 00000000..b3aefc05 --- /dev/null +++ b/source/a/dcron/dcron.fork.diff @@ -0,0 +1,11 @@ +--- ./job.c.orig 2005-09-11 16:36:43.000000000 -0700 ++++ ./job.c 2005-09-11 16:37:51.000000000 -0700 +@@ -51,7 +51,7 @@ + */ + + if (ChangeUser(file->cf_User, 1) < 0) +- return; ++ exit(0); + + if (DebugOpt) + log(5, "Child Running %s\n", line->cl_Shell); diff --git a/source/a/dcron/dcron.tmpdir.diff b/source/a/dcron/dcron.tmpdir.diff new file mode 100644 index 00000000..3946fede --- /dev/null +++ b/source/a/dcron/dcron.tmpdir.diff @@ -0,0 +1,11 @@ +--- defs.h.orig Mon May 2 10:27:40 1994 ++++ defs.h Sun Apr 4 22:09:00 1999 +@@ -29,7 +29,7 @@ + #define CRONTABS "/var/spool/cron/crontabs" + #endif + #ifndef TMPDIR +-#define TMPDIR "/tmp" ++#define TMPDIR "/var/spool/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 diff --git a/source/a/dcron/run-parts b/source/a/dcron/run-parts new file mode 100644 index 00000000..dd6b59b3 --- /dev/null +++ b/source/a/dcron/run-parts @@ -0,0 +1,49 @@ +#!/bin/sh +# run-parts: Runs all the scripts found in a directory. + +# keep going when something fails +set +e + +if [ $# -lt 1 ]; then + echo "Usage: run-parts <directory>" + exit 1 +fi + +if [ ! -d $1 ]; then + echo "Not a directory: $1" + echo "Usage: run-parts <directory>" + exit 1 +fi + +# There are several types of files that we would like to +# ignore automatically, as they are likely to be backups +# of other scripts: +IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp" + +# Main loop: +for SCRIPT in $1/* ; do + # If this is not a regular file, skip it: + if [ ! -f $SCRIPT ]; then + continue + fi + # Determine if this file should be skipped by suffix: + SKIP=false + for SUFFIX in $IGNORE_SUFFIXES ; do + if [ ! "`basename $SCRIPT $SUFFIX`" = "`basename $SCRIPT`" ]; then + SKIP=true + break + fi + done + if [ "$SKIP" = "true" ]; then + continue + fi + # If we've made it this far, then run the script if it's executable: + if [ -x $SCRIPT ]; then + echo "$SCRIPT:" + echo + $SCRIPT 2>&1 + echo + fi +done + +exit 0 diff --git a/source/a/dcron/run-parts.8 b/source/a/dcron/run-parts.8 new file mode 100644 index 00000000..2d5e5f6a --- /dev/null +++ b/source/a/dcron/run-parts.8 @@ -0,0 +1,36 @@ +.\" -*- 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 RUN-PARTS 8 "14 Apr 2002" "Slackware Version 8.1.0 +.SH NAME +run-parts \- run scripts found in a directory +.SH SYNOPSIS +.B run-parts <directory> +.LP +.SH DESCRIPTION +.B run-parts +is a utility that will run scripts that are found in a directory. For example, +it might be useful to create an /etc/cron.daily directory and put scripts in +there for daily cron jobs. Then +.B run-parts +can be called once a day from root's crontab to run all the scripts found in +/etc/cron.daily: + +40 4 * * * run-parts /etc/cron.daily + +.B run-parts +automatically skips files with certain suffixes that are generally associated +with backup or extra files. Any file that ends in one of these will be silently +ignored: ~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com>, with ideas borrowed from the +Red Hat and Debian versions of this utility. +.SH "SEE ALSO" +.BR crond(8), +.BR crontab(8). diff --git a/source/a/dcron/slack-desc b/source/a/dcron/slack-desc new file mode 100644 index 00000000..d56e6087 --- /dev/null +++ b/source/a/dcron/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------------------------------------------------------| +dcron: dcron (Dillon's Cron daemon) +dcron: +dcron: The cron daemon runs in the background and executes tasks on behalf of +dcron: users at the appropriate time. Many timed system tasks are started +dcron: with cron, such as the nightly indexing with updatedb. +dcron: +dcron: dcron was written entirely from scratch by Matthew Dillon. +dcron: +dcron: +dcron: +dcron: diff --git a/source/a/device-mapper/64-device-mapper.rules b/source/a/device-mapper/64-device-mapper.rules new file mode 100644 index 00000000..7e9a235d --- /dev/null +++ b/source/a/device-mapper/64-device-mapper.rules @@ -0,0 +1,37 @@ +# device mapper links hook into "change" events, when the dm table +# becomes available; some table-types must be ignored + +KERNEL=="device-mapper", NAME="mapper/control" + +KERNEL!="dm-*", GOTO="device_mapper_end" +ACTION!="add|change", GOTO="device_mapper_end" + +# lookup device name +# use dmsetup, until devmap_name is provided by sys-fs/device-mapper +PROGRAM=="/sbin/dmsetup -j %M -m %m --noopencount --noheadings -c -o name info", + ENV{DM_NAME}="%c" + +# do not do anything if dmsetup does not provide a name +ENV{DM_NAME}=="", NAME="", OPTIONS="ignore_device" + +# ignore luks crypt devices while not fully up +ENV{DM_NAME}=="temporary-cryptsetup-*", NAME="", OPTIONS="ignore_device" + +# use queried name +ENV{DM_NAME}=="?*", NAME="mapper/$env{DM_NAME}" + +SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}" +SYMLINK+="disk/by-name/$env{DM_NAME}" + +PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end" +ENV{DM_TYPE}="%c{3}" + +ENV{DM_TYPE}=="|*error*", GOTO="device_mapper_end" + +IMPORT{program}="vol_id --export $tempnode" +OPTIONS="link_priority=50" +ENV{DM_TYPE}=="*snapshot-origin*", OPTIONS="link_priority=60" +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" +ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" + +LABEL="device_mapper_end" diff --git a/source/a/device-mapper/device-mapper.SlackBuild b/source/a/device-mapper/device-mapper.SlackBuild new file mode 100755 index 00000000..d770deed --- /dev/null +++ b/source/a/device-mapper/device-mapper.SlackBuild @@ -0,0 +1,115 @@ +#!/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.02.28 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-device-mapper + +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 device-mapper.$VERSION +tar xvf $CWD/device-mapper.$VERSION.tar.bz2 || exit 1 +cd device-mapper.$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 \ + --libdir=/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static_link \ + --enable-pkgconfig \ + --enable-dmeventd \ + --disable-selinux \ + --with-device-uid=0 \ + --with-device-gid=6 \ + --with-device-mode=0660 \ + --build=$ARCH-slackware-linux + # I tried adding --enable-compat but that failed to compile + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# On x86_64 the pkgconfig files are installed to the wrong directory, but +# the .pc content is correct, so we just move them over: +if [ ! -d $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ]; then + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} + mv $PKG/usr/lib/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX}/ + rmdir $PKG/usr/lib || exit 1 +fi + +mkdir -p $PKG/lib/udev/rules.d +cat $CWD/64-device-mapper.rules > $PKG/lib/udev/rules.d/64-device-mapper.rules + +( 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/usr/doc/device-mapper.$VERSION +cp -a \ + COPYING* INSTALL INTRO README* VERSION WHATS_NEW \ + $PKG/usr/doc/device-mapper.$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 +makepkg -l y -c n $TMP/device-mapper-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/device-mapper/slack-desc b/source/a/device-mapper/slack-desc new file mode 100644 index 00000000..2708a39f --- /dev/null +++ b/source/a/device-mapper/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------------------------------------------------------| +device-mapper: device-mapper (device-mapper for logical volume management) +device-mapper: +device-mapper: The goal of device-mapper is to support volume management. The +device-mapper: driver enables the definition of new block devices composed of +device-mapper: ranges of sectors of existing devices. This can be used to define +device-mapper: disk partitions or logical volumes. +device-mapper: +device-mapper: device-mapper is required by LVM2, the Logical Volume Manager. +device-mapper: +device-mapper: +device-mapper: + diff --git a/source/a/devs/devs.SlackBuild b/source/a/devs/devs.SlackBuild new file mode 100755 index 00000000..61ddf33b --- /dev/null +++ b/source/a/devs/devs.SlackBuild @@ -0,0 +1,62 @@ +#!/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.3.1 +ARCH=noarch +BUILD=${BUILD:-25} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-devs + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_devs.tar.gz + +cd $TMP +rm -r MAKEDEV-${VERSION} +tar xzvf $CWD/makedev_${VERSION}.orig.tar.gz +cd MAKEDEV-${VERSION} +zcat $CWD/makedev_2.3.1-46.2.diff.gz | patch -p1 -E +#zcat $CWD/makedev_.slack.diff.gz | patch -p1 -E +# Add many more IDE devices: +zcat $CWD/makedev_2.3.1.hd.diff.gz | patch -p1 -E +# Still not enough: +zcat $CWD/makedev.hd.diff.gz | patch -p1 -E +cat MAKEDEV > $PKG/dev/MAKEDEV +cat README > $PKG/dev/README.MAKEDEV +gzip -9c MAKEDEV.man > $PKG/usr/man/man8/MAKEDEV.8.gz +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/devs-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/MAKEDEV-${VERSION} + rm -rf $PKG +fi diff --git a/source/a/devs/makedev.hd.diff b/source/a/devs/makedev.hd.diff new file mode 100644 index 00000000..7276c1dc --- /dev/null +++ b/source/a/devs/makedev.hd.diff @@ -0,0 +1,92 @@ +--- ./MAKEDEV.orig 2002-06-09 12:31:22.000000000 -0700 ++++ ./MAKEDEV 2002-06-09 12:31:51.000000000 -0700 +@@ -914,7 +914,7 @@ + base=`index ab $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major `math $base + $part` $disk + done +@@ -925,7 +925,7 @@ + base=`index cd $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -936,7 +936,7 @@ + base=`index ef $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -947,7 +947,7 @@ + base=`index gh $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -958,7 +958,7 @@ + base=`index ij $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -969,7 +969,7 @@ + base=`index kl $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -980,7 +980,7 @@ + base=`index mn $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -991,7 +991,7 @@ + base=`index op $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -1002,7 +1002,7 @@ + base=`index qr $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -1013,7 +1013,7 @@ + base=`index st $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 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 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done diff --git a/source/a/devs/makedev_2.3.1-46.2.diff b/source/a/devs/makedev_2.3.1-46.2.diff new file mode 100644 index 00000000..87ad22f8 --- /dev/null +++ b/source/a/devs/makedev_2.3.1-46.2.diff @@ -0,0 +1,2952 @@ +--- makedev-2.3.1.orig/MAKEDEV.man ++++ makedev-2.3.1/MAKEDEV.man +@@ -124,8 +124,7 @@ + .BI ttyC x + and the corresponding dial-out device is + .BI cub x +-By default devices for 7 lines are created, but this can be changed to +-15 by removing the comment. ++Devices for 32 lines are created. + .TP + .B Pseudo Terminals + .TP +@@ -387,4 +386,4 @@ + Linux Allocated Devices, maintained by H.\ Peter Anvin, + <Peter.Anvin@linux.org>. + .SH AUTHOR +-Nick Holloway, <Nick.Hollowa +\ No newline at end of file ++Nick Holloway, <Nick.Hollowa +--- makedev-2.3.1.orig/MAKEDEV ++++ makedev-2.3.1/MAKEDEV +@@ -10,25 +10,38 @@ + # system, and you may change the permissions to suit your preference. These + # lines _must_ be of the format "user group perm". + +- public=" root sys 666" +- system=" root sys 660" +- kmem=" root kmem 660" +- tty=" root tty 666" +- cons=" root tty 622" # 622 for console? +- vcs=" root sys 600" +-dialout=" root uucp 660" +- mouse=" root sys 666" +-printer=" root daemon 660" +- floppy=" root floppy 660" +- disk=" root disk 660" +- scsi=" root sys 600" +- cdrom=" root disk 660" +- tape=" root disk 660" +- audio=" root sys 666" +- ibcs2=" root sys 666" +-scanner=" root sys 666" ++ public=" root root 0666" ++private=" root root 0600" ++ system=" root root 0660" ++ kmem=" root kmem 0640" ++ tty=" root tty 0666" ++ cons=" root tty 0622" ++ vcs=" root root 0600" ++dialout=" root dialout 0660" ++ mouse=" root root 0660" ++printer=" root lp 0660" ++ floppy=" root floppy 0660" ++ disk=" root disk 0660" ++ scsi=" root root 0600" ++ cdrom=" root cdrom 0660" ++ tape=" root tape 0660" ++ audio=" root audio 0660" ++ video=" root video 0660" ++ ibcs2=" root root 0666" ++scanner=" root root 0666" ++ coda=" root root 0600" ++ ipsec=" root root 0200" ++readable=" root root 0444" + +-MAXVT=8 ++MAXVT=63 ++ ++# defaults for $major_* ++major_ide0=3 ++major_ide1=22 ++major_sd=8 ++major_lp=6 ++ ++# Remark: OSS/Linux becomes major_OSSLinux + + #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +@@ -94,41 +107,30 @@ + + #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +-# For bash and ksh, we can use faster builtin routines to do manipulation, +-# otherwise (ash) fall back to slower method using `expr'. +-# The extra level of indirection using `eval' is necessary a) for ksh, and +-# b) to get past ash. ++# Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it! + +-if [ "$RANDOM" != "$RANDOM" ] +-then +- math () { +- eval echo "\$(($*))" +- } +- index () { # index string c +- eval "I=\${1%$2*}" +- eval echo "\${#I}" +- } +- suffix () { +- eval echo "\${1#$2}" +- } +- strip () { +- eval echo "\${1% $2 *} \${1#* $2 }" +- } +-else +- math () { +- expr "$@" +- } +- index () { # index string c +- expr $1 : ".*$2" - 1 +- } +- suffix () { +- expr "$1" : "$2\(.*\)" +- } +- strip () { +- echo "[$1][$2]" >&2 +- echo "`expr \"$1\" : \"\(.*\) $2 \"` `expr \"$1\" : \".* $2 \(.*\)\"`" +- } +-fi ++math () { ++ eval echo "\$(($*))" ++} ++index () { # index string c ++ eval "I=\${1%$2*}" ++ eval echo "\${#I}" ++} ++suffix () { ++ eval echo "\${1#$2}" ++} ++strip () { ++ eval echo "\${1% $2 *} \${1#* $2 }" ++} ++first () { ++ eval echo "\${1:0:1}" ++} ++second () { ++ eval echo "\${1:1:1}" ++} ++substr () { ++ echo $1 | cut -c $2 ++} + + #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +@@ -140,6 +142,7 @@ + exec 3<$procfs/devices + while read major device <&3 + do ++ device=`echo $device|tr -d /` + case "$major" in + Character|Block|'') + ;; +@@ -166,7 +169,7 @@ + while [ $# -ne 0 ] + do + case "$1" in +- mem|tty|ttyp|cua|cub) ;; ++ mem|tty|ttyp|cua|cub|cui) ;; + hd) (for d in a b c d e f g h ; do + echo -n hd$d " " + done) ; echo +@@ -175,13 +178,16 @@ + ide1) echo hdc hdd ;; + ide2) echo hde hdf ;; + ide3) echo hdg hdh ;; +- sd) echo sda sdb ;; +- sr) echo scd0 ;; ++ sd) echo sda sdb sdc sdd ;; ++ sg) echo sg ;; ++ sr) echo scd ;; + st) echo st0 ;; + xd) echo xda xdb ;; ++ ad) echo ada adb ;; + fd) echo fd0 fd1 ;; + lp) echo lp ;; + mt) echo ftape ;; ++ qft) echo ftape ;; + loop) echo loop ;; + md) echo md ;; + ibcs2) echo ibcs2 ;; +@@ -191,13 +197,31 @@ + ac4096) echo ac4096 ;; + hw) echo helloworld ;; + sbpcd | sbpcd[123]) echo $1 ;; +- Joystick) echo js ;; ++ joystick) echo js ;; + apm_bios) echo apm ;; + dcf) echo dcf ;; + aztcd) echo aztcd ;; ++ cm206cd) echo cm206cd ;; ++ gscd) echo gscd ;; + pcmcia) ;; # taken care of by its own driver + ttyC) echo cyclades ;; ++ isdn) echo isdnmodem isdnbri dcbri ;; + vcs) ;; ++ pty) echo pty ;; ++ misc) echo misc ;; ++ 3dfx) echo 3dfx ;; ++ agpgart) echo agpgart ;; ++ ipmi|ipmikcs) echo ipmi ;; ++ fb) echo fb ;; ++ nb) echo nb0 nb1 ;; ++ netlink) echo netlink ;; ++ hamradio) echo hamradio ;; ++ snd) ;; ++ ptm) ;; ++ pts) ;; ++ ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ;; ++ ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;; ++ ircomm|irlpt) irda ;; + *) echo "$0: don't know what \"$1\" is" >&2 ;; + esac + shift +@@ -206,20 +230,148 @@ + + for arg + do ++# case `cvt $arg` in + case $arg in + generic) ++ # pick the right generic-<arch> using dpkg's knowledge ++ case `dpkg --print-installation-architecture` in ++ alpha) ++ $0 $opts generic-alpha ++ ;; ++ arm) ++ $0 $opts generic-arm ++ ;; ++ i386) ++ $0 $opts generic-i386 ++ ;; ++ m68k) ++ $0 $opts generic-m68k ++ ;; ++ powerpc) ++ $0 $opts generic-powerpc ++ ;; ++ sparc) ++ $0 $opts generic-sparc ++ ;; ++ *) ++ echo "$0: no support for generic-$arg" >&2 ++ exit 1 ++ ;; ++ esac ++ ;; ++ generic-alpha) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 +- $0 $opts hda hdb ++ $0 $opts hda hdb hdc hdd ++ $0 $opts xda xdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-arm) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0 fd1 ++ $0 $opts hda hdb hdc hdd ++ $0 $opts xda xdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-i386) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0 fd1 ++ $0 $opts hda hdb hdc hdd + $0 $opts xda xdb +- $0 $opts sda sdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 + $0 $opts busmice + $0 $opts lp + $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-m68k) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts sg ++ $0 $opts ada adb ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS5 ++ $0 $opts m68k-mice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts nvram ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-powerpc) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb hdc hdd ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts nvram ++ $0 $opts audio ++ $0 $opts adb ++ $0 $opts fb ++ $0 $opts rtc ++ ;; ++ generic-sparc) ++ $0 $opts std ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts fb ++ $0 $opts rtc ++ makedev kbd c 11 0 $cons ++ makedev sunmouse c 10 6 $mouse ++ symlink sunmouse mouse ++ makedev openprom c 10 139 $private + ;; + local) + $0.local $opts +@@ -232,22 +384,71 @@ + makedev zero c 1 5 $public + symlink core $procfs/kcore + makedev full c 1 7 $public +- $0 ram ++ makedev random c 1 8 $readable ++ makedev urandom c 1 9 $readable + makedev tty c 5 0 $tty ++ $0 $opts ram ++ $0 $opts loop ++ ;; ++ hamradio) ++ $0 $opts scc ++ $0 $opts bc ++ ;; ++ scc) ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev scc$unit c 34 $unit $system ++ done ++ ;; ++ bc) ++ for unit in 0 1 2 3 ++ do ++ makedev bc$unit c 51 $unit $system ++ done ++ ;; ++ random) ++ makedev random c 1 8 $readable ++ ;; ++ urandom) ++ makedev urandom c 1 9 $readable + ;; + ram) +- for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do ++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do + makedev ram$i b 1 $i $disk + done +- ln -sf ram1 ram ++ symlink ram ram1 + ;; +- console) +- major=`Major vcs` # not fatal +- # console ++ ram[0-9]|ram1[0-6]) ++ unit=`suffix $arg ram` ++ makedev ram$unit b 1 $unit $disk ++ ;; ++ initrd) ++ makedev initrd b 1 250 $disk ++ ;; ++ consoleonly) + makedev tty0 c 4 0 $cons +- symlink console tty0 ++ # new kernels need a device, old ones a symlink... sigh ++ kern_rev1=`uname -r | awk -F'.' '{print $1}'` ++ kern_rev2=`uname -r | awk -F'.' '{print $2}'` ++ if [ $kern_rev1 -gt 2 ] ++ then ++ makedev console c 5 1 $cons ++ else ++ if [ $kern_rev1 -eq 2 -a $kern_rev2 -ge 1 ] ++ then ++ makedev console c 5 1 $cons ++ else ++ symlink console tty0 ++ fi ++ fi ++ ;; ++ console) ++ $0 $opts consoleonly ++ major=`Major vcs 7` # not fatal + [ "$major" ] && makedev vcs0 c $major 0 $vcs +- [ "$major" ] && makedev vcsa c $major 128 $vcs ++ symlink vcs vcs0 ++ [ "$major" ] && makedev vcsa0 c $major 128 $vcs ++ symlink vcsa vcsa0 + # individual vts + line=1 + while [ $line -le $MAXVT -a $line -le 63 ] +@@ -258,6 +459,32 @@ + line=`math $line + 1` + done + ;; ++ adb) ++ # pick the right arch device using dpkg's knowledge ++ case `dpkg --print-installation-architecture` in ++ powerpc) ++ # ADB bus devices (char) ++ makedev adb c 56 0 $mouse ++ makedev adbmouse c 10 10 $mouse ++ ;; ++ m68k) ++ # ACSI disk 2, whole device (block) ++ makedev adb b 28 16 $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( 16 + $part )) ++ makedev adb$part b 28 $minor $disk ++ done ++ ;; ++ *) ++ echo "no support for adb on $arg" >&2 ++ exit 1 ++ ;; ++ esac ++ ;; ++ nvram) ++ makedev nvram c 10 144 $kmem ++ ;; + tty[1-9]|tty[1-5][0-9]|tty[6][0-3]) + line=`suffix $arg tty` + makedev tty$line c 4 $line $tty +@@ -265,8 +492,7 @@ + ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3]) + line=`suffix $arg ttyS` + minor=`math 64 + $line` +- makedev ttyS$line c 4 $minor $tty +- makedev cua$line c 5 $minor $dialout ++ makedev ttyS$line c 4 $minor $dialout + ;; + pty[a-ep-z]) + bank=`suffix $arg pty` +@@ -285,42 +511,350 @@ + do + ptysufs="$ptysufs pty$i" + done +- $0 $opts $ptysufs ++ $0 $opts $ptysufs ptmx + ;; +- cyclades) +- major1=`Major ttyC` || continue +- major2=`Major cub` || continue ++ ptmx) ++ # master pty multiplexer for 2.1 kernels ++ makedev ptmx c 5 2 $tty ++ ;; ++ cyclades|ttyC) ++ major1=`Major ttyC 19` || continue ++ #major2=`Major cub 20` || continue + for i in 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 26 27 28 29 30 31 32 ++ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ++ do ++ makedev ttyC$i c $major1 $i $dialout ++ #makedev cub$i c $major2 $i $dialout ++ done ++ ;; ++ stallion|ttyE) ++ major1=`Major ttyE 24` || continue ++ #major2=`Major cue 25` || continue ++ majorc=28 ++ minor=0 ++ until [ $minor -gt 256 ] ++ do ++ makedev ttyE$minor c $major1 $minor $dialout ++ #makedev cue$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ for i in 0 1 2 3 ++ do ++ makedev staliomem$i c $majorc $i $private ++ done ++ ;; ++ chase|ttyH) ++ major1=`Major ttyH 17` || continue ++ #major2=`Major cuh 18` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyH$minor c $major1 $minor $dialout ++ #makedev cuh$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ rocketport|ttyR) ++ major1=`Major ttyR 46` || continue ++ #major2=`Major cur 47` || continue ++ minor=0 ++ until [ $minor -gt 64 ] # tell me if 64 is wrong ++ do ++ makedev ttyR$minor c $major1 $minor $dialout ++ #makedev cur$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ ttyV) ++ major1=`Major ttyV 105` || continue ++ #major2=`Major cuv 106` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyV$minor c $major1 $minor $dialout ++ #makedev cuv$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ digi|ttyD) ++ major1=`Major ttyD 22` || continue ++ #major2=`Major cud 23` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyD$minor c $major1 $minor $dialout ++ #makedev cud$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ specialix|ttyX) ++ major1=`Major ttyX 32` || continue ++ #major2=`Major cux 33` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyX$minor c $major1 $minor $dialout ++ #makedev cux$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ specialixIO8|ttyW) ++ major1=`Major ttyW 75` || continue ++ #major2=`Major cuw 76` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyW$minor c $major1 $minor $dialout ++ #makedev cuw$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ PAM|ttyM) ++ major1=`Major ttyM 79` || continue ++ #major2=`Major cum 80` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyM$minor c $major1 $minor $dialout ++ #makedev cum$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ riscom|ttyL) ++ major=`Major ttyL 48` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyL$minor c $major $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ computone|ttyF) ++ major=`Major ttyF 71` || continue ++ #major2=`Major cuf 72` || continue ++ minor=0 ++ until [ $minor -gt 255 ] ++ do ++ makedev ttyF$minor c $major $minor $dialout ++ #makedev cuf$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ major=73 ++ for i in 0 4 8 12 ++ do ++ makedev ip2ipl$i c $major $i $private ++ makedev ip2stat$i c $major `math $i + 1` $private ++ done ++ ;; ++ ESP|ttyP) ++ major=`Major ttyP 57` || continue ++ #major2=`Major cup 58` || continue ++ minor=0 ++ until [ $minor -gt 4 ] # tell me if 4 is wrong ++ do ++ makedev ttyP$minor c $major $minor $dialout ++ #makedev cup$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ COMX|comx) ++ major=`Major comx 88` || continue ++ minor=0 ++ until [ $minor -gt 4 ] # tell me if 4 is wrong ++ do ++ makedev comx$minor c $major $minor $private ++ minor=`math $minor + 1` ++ done ++ ;; ++ isdnmodem|ttyI) ++ major1=`Major ttyI 43` || continue ++ #major2=`Major cui 44` || continue ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev ttyI$minor c $major1 $minor $dialout ++ #makedev cui$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ isdnbri) ++ major=45 ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev isdn$minor c $major $minor $private ++ makedev isdnctrl$minor c $major `math $minor + 64` $private ++ makedev ippp$minor c $major `math $minor + 128` $private ++ minor=`math $minor + 1` ++ done ++ makedev isdninfo c $major 255 $private ++ ;; ++ dcbri) ++ major=52 ++ for i in 0 1 2 3 ++ do ++ makedev dcbri$i c $major $i $private ++ done ++ ;; ++ capi) ++ major=68 ++ makedev capi20 c $major 0 $private ++ for i in 0 1 2 3 4 5 6 7 8 9 ++ do ++ makedev capi20.0$i c $major `math $i + 1` $private ++ done ++ for i in 10 11 12 13 14 15 16 17 18 19 ++ do ++ makedev capi20.$i c $major `math $i + 1` $private ++ done ++ ;; ++ fb) ++ for i in 0 1 2 3 4 5 6 7 ++ do ++ makedev fb$i c 29 `math 32 \* $i` $cons ++ makedev fb${i}current c 29 `math 32 \* $i` $cons ++ makedev fb${i}autodetect c 29 `math 32 \* $i + 1` $cons ++ done ++ ;; ++ fb[0-7]) ++ dev=`suffix $arg fb` ++ base=`math 32 \* $dev` ++ makedev fb$dev c 29 $base $cons ++ makedev fb${dev}current c 29 $base $cons ++ makedev fb${dev}autodetect c 29 `math $base + 1` $cons ++ for i in 0 1 2 3 4 5 6 7 + do +- makedev ttyC$i c $major1 $i $tty +- makedev cub$i c $major2 $i $dialout ++ makedev fb${dev}user$i c 29 `math $base + 24 + $i` $cons ++ done ++ ;; ++ netlink) ++ makedev route c 36 0 $coda ++ makedev skip c 36 1 $coda ++ makedev fwmonitor c 36 3 $coda ++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev tap$i c 36 `math $i + 16` $coda + done + ;; + lp) +- major=`Major lp` || continue ++ major=`Major lp 6` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; + par) +- major=`Major lp` || continue ++ major=`Major lp 6` || continue ++ makedev ${arg}0 c $major 0 $printer ++ makedev ${arg}1 c $major 1 $printer ++ makedev ${arg}2 c $major 2 $printer ++ ;; ++ parport) ++ major=`Major parport 99` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; ++ slm) ++ major=`Major slm 28` || continue ++ for i in 0 1 2 3 ++ do ++ makedev slm c $major $i $printer ++ done ++ ;; + busmice) + major=`Major mouse 10` || continue +- makedev logimouse c $major 0 $mouse +- makedev psmouse c $major 1 $mouse +- makedev msmouse c $major 2 $mouse +- makedev atimouse c $major 3 $mouse +- makedev jmouse c $major 4 $mouse ++ makedev logibm c $major 0 $mouse ++ makedev psaux c $major 1 $mouse ++ makedev inportbm c $major 2 $mouse ++ makedev atibm c $major 3 $mouse ++ makedev jbm c $major 4 $mouse ++ makedev usbmouse c $major 32 $mouse ++ ;; ++ m68k-mice) ++ major=`Major mouse 10` || continue ++ makedev amigamouse c $major 4 $mouse ++ makedev atarimouse c $major 5 $mouse ++ makedev amigamouse1 c $major 7 $mouse ++ makedev adbmouse c $major 10 $mouse ++ ;; ++ 3dfx) ++ major=`Major $arg 107` || continue ++ makedev $arg c $major 0 $video ++ ;; ++ agpgart) ++ major=`Major $arg 10` || continue ++ makedev $arg c $major 175 $video ++ ;; ++ ipmi|ipmikcs) ++ major=`Major ipmikcs 10` || continue ++ makedev ipmikcs c $major 173 $private ++ ;; ++ irda) ++ for i in 0 1 ++ do ++ makedev ircomm$i c 161 $i $mouse ++ makedev irlpt$i c 161 `math $i + 16` $mouse ++ done ++ ;; ++ misc) ++ major=`Major mouse 10` || continue ++ makedev logibm c $major 0 $mouse ++ makedev psaux c $major 1 $mouse ++ makedev inportbm c $major 2 $mouse ++ makedev atibm c $major 3 $mouse ++ makedev jbm c $major 4 $mouse ++ makedev amigamouse c $major 4 $mouse ++ makedev atarimouse c $major 5 $mouse ++ makedev sunmouse c $major 6 $mouse ++ makedev amigamouse1 c $major 7 $mouse ++ makedev smouse c $major 8 $mouse ++ makedev pc110pad c $major 9 $mouse ++ makedev adbmouse c $major 10 $mouse ++ makedev beep c $major 128 $mouse ++ makedev modreq c $major 129 $mouse ++ makedev watchdog c $major 130 $mouse ++ makedev temperature c $major 131 $mouse ++ makedev hwtrap c $major 132 $mouse ++ makedev exttrp c $major 133 $mouse ++ makedev apm_bios c $major 134 $mouse ++ makedev rtc c $major 135 $mouse ++ makedev openprom c $major 139 $mouse ++ makedev relay8 c $major 140 $mouse ++ makedev relay16 c $major 141 $mouse ++ makedev msr c $major 142 $mouse ++ makedev pciconf c $major 143 $mouse ++ makedev nvram c $major 144 $mouse ++ makedev hfmodem c $major 145 $mouse ++ makedev led c $major 151 $mouse ++ makedev mergemem c $major 153 $mouse ++ makedev pmu c $major 154 $mouse ++ ;; ++ smapi|thinkpad) ++ major=`Major mouse 10` || continue ++ makedev smapi c $major 170 $mouse ++ symlink smapi thinkpad ++ ;; ++ rtc) ++ major=`Major mouse 10` || continue ++ makedev rtc c $major 135 $mouse + ;; + js) +- major=`Major Joystick` || continue +- makedev js0 c $major 0 $mouse +- makedev js1 c $major 1 $mouse ++ major=`Major Joystick 15` || continue ++ for unit in 0 1 2 3 ++ do ++ makedev js$unit c $major $unit $readable ++ makedev djs$unit c $major `math $unit + 128` $readable ++ done ++ ;; ++ fd[0-7]-bare) ++ sarg="${arg%-bare}" ++ major=`Major fd 2` || continue ++ base=`suffix $sarg fd` ++ if [ $base -ge 4 ] ++ then ++ base=`math $base + 124` ++ fi ++ makedev ${sarg} b $major $base $floppy + ;; + fd[0-7]) + major=`Major fd 2` || continue +@@ -332,39 +866,47 @@ + makedev ${arg} b $major $base $floppy + makedev ${arg}d360 b $major `math $base + 4` $floppy + makedev ${arg}h1200 b $major `math $base + 8` $floppy +- makedev ${arg}D360 b $major `math $base + 12` $floppy +- makedev ${arg}D720 b $major `math $base + 16` $floppy ++ makedev ${arg}u360 b $major `math $base + 12` $floppy ++ makedev ${arg}u720 b $major `math $base + 16` $floppy + makedev ${arg}h360 b $major `math $base + 20` $floppy + makedev ${arg}h720 b $major `math $base + 24` $floppy +- makedev ${arg}H1440 b $major `math $base + 28` $floppy +- makedev ${arg}E2880 b $major `math $base + 32` $floppy ++ makedev ${arg}u1440 b $major `math $base + 28` $floppy ++ makedev ${arg}u2880 b $major `math $base + 32` $floppy + makedev ${arg}CompaQ b $major `math $base + 36` $floppy + +- symlink ${arg}H360 ${arg}D360 +- symlink ${arg}H720 ${arg}D720 +- + makedev ${arg}h1440 b $major `math $base + 40` $floppy +- makedev ${arg}H1680 b $major `math $base + 44` $floppy ++ makedev ${arg}u1680 b $major `math $base + 44` $floppy + makedev ${arg}h410 b $major `math $base + 48` $floppy +- makedev ${arg}H820 b $major `math $base + 52` $floppy ++ makedev ${arg}u820 b $major `math $base + 52` $floppy + makedev ${arg}h1476 b $major `math $base + 56` $floppy +- makedev ${arg}H1722 b $major `math $base + 60` $floppy ++ makedev ${arg}u1722 b $major `math $base + 60` $floppy + makedev ${arg}h420 b $major `math $base + 64` $floppy +- makedev ${arg}H830 b $major `math $base + 68` $floppy ++ makedev ${arg}u830 b $major `math $base + 68` $floppy + makedev ${arg}h1494 b $major `math $base + 72` $floppy +- makedev ${arg}H1743 b $major `math $base + 76` $floppy ++ makedev ${arg}u1743 b $major `math $base + 76` $floppy + makedev ${arg}h880 b $major `math $base + 80` $floppy +- makedev ${arg}D1040 b $major `math $base + 84` $floppy +- makedev ${arg}D1120 b $major `math $base + 88` $floppy ++ makedev ${arg}u1040 b $major `math $base + 84` $floppy ++ makedev ${arg}u1120 b $major `math $base + 88` $floppy + makedev ${arg}h1600 b $major `math $base + 92` $floppy +- makedev ${arg}H1760 b $major `math $base + 96` $floppy +- makedev ${arg}H1920 b $major `math $base + 100` $floppy +- makedev ${arg}E3200 b $major `math $base + 104` $floppy +- makedev ${arg}E3520 b $major `math $base + 108` $floppy +- makedev ${arg}E3840 b $major `math $base + 112` $floppy +- makedev ${arg}H1840 b $major `math $base + 116` $floppy +- makedev ${arg}D800 b $major `math $base + 120` $floppy +- makedev ${arg}H1600 b $major `math $base + 124` $floppy ++ makedev ${arg}u1760 b $major `math $base + 96` $floppy ++ makedev ${arg}u1920 b $major `math $base + 100` $floppy ++ makedev ${arg}u3200 b $major `math $base + 104` $floppy ++ makedev ${arg}u3520 b $major `math $base + 108` $floppy ++ makedev ${arg}u3840 b $major `math $base + 112` $floppy ++ makedev ${arg}u1840 b $major `math $base + 116` $floppy ++ makedev ${arg}u800 b $major `math $base + 120` $floppy ++ makedev ${arg}u1600 b $major `math $base + 124` $floppy ++ ;; ++ ed[a-b]) ++ major=`Major ed 36` || continue ++ unit=`suffix $arg ed` ++ base=`index ab $unit` ++ base=`math $base \* 64` ++ makedev ed$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev ed$unit$part b $major `math $base + $part` $disk ++ done + ;; + hd[a-b]) + major=`Major ide0` || major=`Major hd 3` || continue +@@ -372,7 +914,7 @@ + base=`index ab $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do + makedev hd$unit$part b $major `math $base + $part` $disk + done +@@ -383,9 +925,9 @@ + base=`index cd $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[e-f]) +@@ -394,9 +936,9 @@ + base=`index ef $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[g-h]) +@@ -405,18 +947,47 @@ + base=`index gh $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[i-j]) ++ major=`Major ide4 56` || continue ++ unit=`suffix $arg hd` ++ base=`index ij $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; +- ht) ++ hd[k-l]) ++ major=`Major ide4 57` || continue ++ unit=`suffix $arg hd` ++ base=`index kl $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ ht0) + major=`Major ht0 37` || continue + # Only one IDE tape drive is currently supported; ht0. + makedev ht0 c $major 0 $tape +- makedev ht0 c $major 0 $tape + makedev nht0 c $major 128 $tape + ;; ++ pt) ++ major=`Major pt 96` || continue ++ for i in 0 1 2 3 ++ do ++ makedev pt$i c $major $i $tape ++ makedev npt$i c $major `math $i + 128` $tape ++ done ++ ;; + xd[a-d]) + major=`Major xd 13` || continue + unit=`suffix $arg xd` +@@ -425,31 +996,139 @@ + makedev xd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev xd$unit$part b $major `expr $base + $part` $disk ++ makedev xd$unit$part b $major $(( $base + $part )) $disk + done + ;; +- sd[a-h]) ++ sd[a-z]) + major=`Major sd 8` || continue + unit=`suffix $arg sd` +- base=`index abcdefgh $unit` +- base=`math $base \* 16` ++ base=`index abcdefghijklmnopqrstuvwxyz $unit` ++ base=$(( $base * 16 )) ++ if [ $base -lt 256 ]; then ++ major=8 ++ else ++ major=65 ++ base=$(( $base - 256 )) ++ fi ++ makedev sd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( $base + $part )) ++ makedev sd$unit$part b $major $minor $disk ++ done ++ ;; ++ sd[a-d][a-z]) ++ unit=`suffix $arg sd` ++ unitmaj=`first $unit` ++ unitmin=`second $unit` ++ basemaj=`index Xabcd $unitmaj` ++ basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin` ++ basemaj=`math $basemaj \* 416` ++ basemin=`math $basemin \* 16` ++ base=`math $basemaj + $basemin` ++ basemaj=`math $base / 256` ++ base=`math $base % 256` ++ major=`math basemaj \+ 64` ++ if [ $major -gt 71 ]; then ++ echo "$0: don't know how to make device \"$arg\"" >&2 ++ exit 0 ++ fi + makedev sd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do +- minor=`expr $base + $part` ++ minor=$(( $base + $part )) + makedev sd$unit$part b $major $minor $disk + done ++ ;; ++ ad[a-p]) ++ major=`Major ad 28` || continue ++ unit=`suffix $arg ad` ++ base=`index abcdefghijklmnop $unit` ++ base=`math $base \* 16` ++ makedev ad$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( $base + $part )) ++ makedev ad$unit$part b $major $minor $disk ++ done ++ ;; ++ dac960) ++ for ctr in 0 1 2 3 4 5 6 7 ++ do ++ $0 $opts dac960.$ctr ++ done ++ ;; ++ dac960.[0-7]) ++ [ -d rd ] || { ++ mkdir rd ++ chown root.root rd ++ chmod 755 rd ++ } ++ unit=`suffix $arg dac960.` ++ major=`math 48 + $unit` ++ minor=0 ++ for ld in 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 26 27 28 29 30 31 ++ do ++ makedev rd/c${unit}d${ld} b $major $minor $disk ++ minor=`math $minor + 1` ++ for part in 1 2 3 4 5 6 7 ++ do ++ makedev rd/c${unit}d${ld}p$part b $major $minor $disk ++ minor=`math $minor + 1` ++ done ++ done ++ ;; ++ ida) ++ for ctr in 0 1 2 # 3 4 5 6 7 ++ do ++ $0 $opts ida.$ctr ++ done ++ ;; ++ ida.[0-7]) ++ [ -d ida ] || { ++ mkdir ida ++ chown root.root ida ++ chmod 755 ida ++ } ++ unit=`suffix $arg ida.` ++ major=`math 72 + $unit` ++ minor=0 ++ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev ida/c${unit}d${ld} b $major $minor $disk ++ minor=`math $minor + 1` ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev ida/c${unit}d${ld}p$part b $major $minor $disk ++ minor=`math $minor + 1` ++ done ++ done ++ ;; ++ rom) ++ major=`Major rom 31` ++ for i in 0 1 2 3 4 5 6 7 ++ do ++ makedev rom$i b $major $i $disk ++ makedev rrom$i b $major `math $i +8` $disk ++ makedev flash$i b $major `math $i +16` $disk ++ makedev rflash$i b $major `math $i +24` $disk ++ done ++ ;; ++ nb[0-7]) ++ major=`Major nbd 43` || continue ++ minor=`suffix $arg nb` ++ makedev nb$minor b $major $minor $disk + ;; + loop) +- major=`Major loop` || continue + for part in 0 1 2 3 4 5 6 7 + do +- makedev loop$part b $major $part $disk ++ makedev loop$part b 7 $part $disk + done + ;; + md) +- major=`Major md` || continue +- for part in 0 1 2 3 ++ major=`Major md 9` || continue ++ for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev md$part b $major $part $disk + done +@@ -457,42 +1136,129 @@ + st[0-7]) + major=`Major st 9` + unit=`suffix $arg st` +- makedev st$unit c $major $unit $tape +- makedev nst$unit c $major `math 128 + $unit` $tape ++ makedev st${unit} c $major $unit $tape ++ makedev nst${unit} c $major `math 128 + $unit` $tape ++ ++ makedev st${unit}l c $major `math 32 + $unit` $tape ++ makedev nst${unit}l c $major `math 160 + $unit` $tape ++ ++ makedev st${unit}m c $major `math 64 + $unit` $tape ++ makedev nst${unit}m c $major `math 192 + $unit` $tape ++ ++ makedev st${unit}a c $major `math 96 + $unit` $tape ++ makedev nst${unit}a c $major `math 224 + $unit` $tape + ;; + qic) + major=`Major tpqic02 12` ++ makedev ntpqic11 c $major 2 $tape ++ makedev tpqic11 c $major 3 $tape ++ makedev ntpqic24 c $major 4 $tape ++ makedev tpqic24 c $major 5 $tape ++ makedev ntpqic120 c $major 6 $tape ++ makedev tpqic120 c $major 7 $tape ++ makedev ntpqic150 c $major 8 $tape ++ makedev tpqic150 c $major 9 $tape + makedev rmt8 c $major 6 $tape + makedev rmt16 c $major 8 $tape + makedev tape-d c $major 136 $tape + makedev tape-reset c $major 255 $tape ++ $0 $opts qft + ;; + ftape) +- major=`Major mt 27` || continue ++ major=`Major qft 27` || continue + for unit in 0 1 2 3 + do +- makedev rft$unit c $major $unit $tape +- makedev nrft$unit c $major `math $unit + 4` $tape ++ makedev qft$unit c $major $unit $tape ++ makedev nqft$unit c $major `math $unit + 4` $tape ++ makedev zqft$unit c $major `math $unit + 16` $tape ++ makedev nzqft$unit c $major `math $unit + 20` $tape ++ makedev rawqft$unit c $major `math $unit + 32` $tape ++ makedev nrawqft$unit c $major `math $unit + 36` $tape ++ done ++ symlink ftape qft0 ++ symlink nftape nqft0 ++ ;; ++ sr|scd|scd-all) ++ major=`Major sr 11` || continue ++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ++ do ++ makedev scd$unit b $major $unit $cdrom ++ symlink sr$unit scd$unit + done +- symlink ftape rft0 +- symlink nftape nrft0 + ;; +- scd[0-7]) ++ cfs0) ++ makedev cfs0 c 67 0 $coda ++ ;; ++ scd[0-9]|scd[0-1][0-9]) + major=`Major sr 11` || continue + unit=`suffix $arg scd` + makedev scd$unit b $major $unit $cdrom ++ ln -f scd$unit sr$unit ++ ;; ++ ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3]) ++ major=43 ++ unit=`suffix $arg ttyI` ++ makedev ttyI$unit c $major $unit $dialout ++ ;; ++ ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3]) ++ major=45 ++ unit=`suffix $arg ippp` ++ minor=`math $unit + 128` ++ makedev ippp$unit c $major $minor $dialout ++ ;; ++ isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3]) ++ major=45 ++ unit=`suffix $arg isdn` ++ minor=`math $unit + 0` ++ makedev isdn$unit c $major $minor $dialout ++ ;; ++ isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3]) ++ major=45 ++ unit=`suffix $arg isdnctrl` ++ minor=`math $unit + 64` ++ makedev isdnctrl$unit c $major $minor $dialout ++ ;; ++ isdninfo) ++ makedev isdninfo c 45 255 $dialout ++ ;; ++ isdn-tty) ++ major=43 ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev ttyI$unit c $major $unit $dialout ++ done ++ ;; ++ isdn-ippp) ++ major=45 ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev ippp$unit c $major `math $unit + 128` $dialout ++ done ++ ;; ++ isdn-io) ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev isdn$unit c 45 $unit $dialout ++ makedev isdnctrl$unit c 45 `math $unit + 64` $dialout ++ makedev ippp$unit c 45 `math $unit + 128` $dialout ++ done ++ makedev isdninfo c 45 255 $dialout + ;; + sonycd) +- major=`Major cdu31a` || continue ++ major=`Major sonycd 15` || continue + makedev $arg b $major 0 $cdrom + ;; + mcd) + major=`Major mcd 23` || continue + makedev $arg b $major 0 $cdrom + ;; +- mcdx) +- major=`Major mcdx 20` || continue +- makedev $arg b $major 0 $cdrom ++ mcdx|mcdx[0-4]) ++ major=`Major $arg 20` || continue ++ for unit in 0 1 2 3 4 ++ do ++ makedev mcdx$unit b $major $unit $cdrom ++ done ++ test -r mcdx || symlink mcdx mcdx0 + ;; + cdu535) + makedev $arg b 24 0 $cdrom +@@ -501,28 +1267,51 @@ + makedev $arg b 24 0 $cdrom + ;; + sbpcd|sbpcd[123]) +- major=`Major $arg` || continue ++ major=`Major $arg 25` || continue + base=`suffix ${arg}0 sbpcd` +- # base=`expr ${arg}0 : "sbpcd\(.\)"` + for minor in 0 1 2 3 + do + # XXX +- unit=`expr substr 0123456789abcdef \( $base \* 4 + $minor + 1 \) 1` ++ unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) ) + makedev sbpcd$unit b $major $minor $cdrom + done + [ $arg = sbpcd ] && symlink $arg ${arg}0 + ;; + aztcd) +- major=`Major $arg` || continue ++ major=`Major $arg 29` || continue ++ makedev ${arg}0 b $major 0 $cdrom ++ ;; ++ cm206cd) ++ major=`Major $arg 30` || continue ++ makedev ${arg}0 b $major 0 $cdrom ++ ;; ++ gscd) ++ major=`Major $arg 16` || continue + makedev ${arg}0 b $major 0 $cdrom + ;; + bpcd) + makedev $arg b 41 0 $cdrom + ;; ++ optcd) ++ makedev $arg b 17 0 $cdrom ++ ;; ++ sjcd) ++ makedev $arg b 18 0 $cdrom ++ ;; ++ cfs|coda) ++ makedev cfs0 c 67 0 $private ++ ;; ++ xfs|arla) ++ makedev xfs0 c 103 0 $private ++ ;; + logiscan) + major=`Major logiscan` || continue + makedev $arg c $major 0 $scanner + ;; ++ toshiba) ++ major=`Major $arg 10` || continue ++ makedev $arg c $major 181 root root 0666 ++ ;; + m105scan) + major=`Major m105` || continue + makedev $arg c $major 0 $scanner +@@ -534,34 +1323,119 @@ + audio) + major=`Major sound 14` + makedev mixer c $major 0 $audio ++ makedev mixer1 c $major 16 $audio ++ makedev mixer2 c $major 32 $audio ++ makedev mixer3 c $major 48 $audio + makedev sequencer c $major 1 $audio + makedev midi00 c $major 2 $audio +- makedev dsp c $major 3 $audio +- makedev audio c $major 4 $audio +- makedev sndstat c $major 6 $audio +-# makedev sequencer2 c $major 8 $audio +- makedev mixer1 c $major 16 $audio +-# makedev patmgr0 c $major 17 $audio + makedev midi01 c $major 18 $audio +- makedev dsp1 c $major 19 $audio +- makedev audio1 c $major 20 $audio +-# makedev patmgr1 c $major 33 $audio + makedev midi02 c $major 34 $audio + makedev midi03 c $major 50 $audio ++ makedev dsp c $major 3 $audio ++ makedev dsp1 c $major 19 $audio ++ makedev dsp2 c $major 35 $audio ++ makedev dsp3 c $major 51 $audio ++ makedev audio c $major 4 $audio ++ makedev audio1 c $major 20 $audio ++ makedev audio2 c $major 36 $audio ++ makedev audio3 c $major 52 $audio ++ makedev sndstat c $major 6 $audio ++ makedev audioctl c $major 7 $audio ++ major=31 ++ makedev mpu401data c $major 0 $audio ++ makedev mpu401stat c $major 1 $audio ++ major=35 ++ for i in 0 1 2 3 ++ do ++ makedev midi$i c $major $i $audio ++ makedev rmidi$i c $major `math $i + 64` $audio ++ makedev smpte$i c $major `math $i + 128` $audio ++ done + ;; + pcaudio) +- major=`Major pcsp` || continue ++ major=`Major pcsp 13` || continue + makedev pcmixer c $major 0 $audio + makedev pcsp c $major 3 $audio + makedev pcaudio c $major 4 $audio + ;; +- sg) ++ video|video4linux|v4l|radio) ++ # video4linux api includes radio, teletext, etc. ++ major=`Major video 81` || continue ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev video$minor c $major $minor $video ++ makedev radio$minor c $major `math $minor + 64` $video ++ minor=`math $minor + 1` ++ done ++ symlink radio radio0 ++ minor=0 ++ until [ $minor -gt 31 ] ++ do ++ makedev vtx$minor c $major `math $minor + 192` $video ++ makedev vbi$minor c $major `math $minor + 224` $video ++ minor=`math $minor + 1` ++ done ++ symlink video video0 ++ symlink vbi vbi0 ++ major=82 ++ minor=0 ++ until [ $minor -gt 1 ] ++ do ++ makedev winradio$minor c $major $minor $video ++ minor=`math $minor + 1` ++ done ++ major=83 ++ makedev vtx c $major 0 $video ++ makedev vttuner c $major 16 $video ++ ;; ++ i2c) ++ major=`Major i2c 89` || continue ++ minor=0 ++ until [ $minor -gt 1 ] # tell me if 1 is wrong... ++ do ++ makedev i2c-$minor c $major $minor $private ++ minor=`math $minor + 1` ++ done ++ ;; ++ tlk) ++ major=102 ++ minor=0 ++ until [ $minor -gt 3 ] # tell me if 3 is wrong... ++ do ++ makedev tlk$minor c $major $minor $video ++ minor=`math $minor + 1` ++ done ++ ;; ++ srnd) ++ makedev srnd0 c 110 0 $video ++ makedev srnd1 c 110 1 $video ++ ;; ++ fgrab) ++ makedev mmetfgrab c 40 0 $video ++ makedev wvisfgrab c 26 0 $video ++ for i in 0 1 # more? ++ do ++ makedev iscc$i c 93 $i $video ++ makedev isccctl$i c 93 `math $i + 128` $video ++ done ++ for i in 0 1 # more? ++ do ++ makedev dcxx$i c 94 $i $video ++ done ++ ;; ++ sg|sg-all) + major=`Major sg 21` +- for unit in a b c d e f g h ++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + do +- minor=`index abcdefgh $unit` +- # minor=`expr abcdefgh : ".*$unit" - 1` +- makedev $arg$unit c $major $minor $scsi ++ makedev sg$unit c $major $unit $scsi ++ done ++ ;; ++ pg) ++ major=`Major pg 97` ++ for unit in 0 1 2 3 ++ do ++ makedev pg$unit c $major $unit $scsi + done + ;; + fd) +@@ -572,15 +1446,34 @@ + symlink stderr fd/2 + ;; + ibcs2) +- major=`Major ibcs2` || continue ++ major=`Major ibcs2 30` || continue + makedev socksys c $major 0 $ibcs2 + symlink nfsd socksys + makedev spx c $major 1 $ibcs2 + symlink X0R null + ;; ++ netlink) ++ major=36 ++ makedev route c $major 0 $private ++ makedev skip c $major 1 $private ++ ;; ++ enskip) ++ major=64 ++ makedev enskip c $major 0 $private ++ ;; ++ ipfilt*) ++ major=95 ++ makedev ipl c $major 0 $private ++ makedev ipnat c $major 1 $private ++ makedev ipstate c $major 2 $private ++ makedev ipauth c $major 3 $private ++ ;; ++ qng) ++ makedev qng c 77 0 $private ++ ;; + apm) +- major=`Major apm_bios` || continue +- makedev $arg c $major 0 $system ++ major=`Major mouse 10` || continue ++ makedev apm_bios c $major 134 $mouse + ;; + dcf) + major=`Major dcf` || continue +@@ -590,6 +1483,11 @@ + major=`Major hw` || continue + makedev helloworld c $major 0 $public + ;; ++ ipsec) ++ # For the Free S/WAN (http://www.xs4all.nl/~freeswan/) ++ # implementation of IPSEC ++ makedev ipsec c 36 10 $ipsec ++ ;; + update) + if [ ! "$devices" ] + then +@@ -619,7 +1517,6 @@ + create="$create "`cvt $device` + fi + devs=`strip " $devs " $device` +- # devs=`expr "$devs" : "\(.*\) $device"``expr "$devs" : ".* $device\(.*\)"` + done + exec 3<&- + fi +@@ -637,6 +1534,7 @@ + ;; + *) + echo "$0: don't know how to make device \"$arg\"" >&2 ++ exit 1 + ;; + esac + done +--- makedev-2.3.1.orig/Makefile ++++ makedev-2.3.1/Makefile +@@ -1,14 +1,15 @@ + # $Id: Makefile,v 2.2 1995/05/21 17:45:18 alfie Exp $ + ++BINDIR = $(ROOT)/sbin + DEVDIR = $(ROOT)/dev +-MANDIR = $(ROOT)/usr/man ++MANDIR = $(ROOT)/usr/share/man + MANEXT = 8 + + default: + @echo Nothing to make. + + install: +- install -m 755 MAKEDEV $(DEVDIR) ++ install -m 755 MAKEDEV $(BINDIR) + install -m 644 MAKEDEV.man $(MANDIR)/man$(MANEXT)/MAKEDEV.$(MANEXT) + + clean: +--- makedev-2.3.1.orig/debian/old/README.debian ++++ makedev-2.3.1/debian/old/README.debian +@@ -0,0 +1,95 @@ ++makedev for DEBIAN ++================== ++ ++The /etc/makedev.cfg and /etc/devinfo files are rewritten to fit the ++Debian /dev layout. ++ ++Security : all mouse devices are changed to mode 600. Only serial ++devices are mode 660 root:dialout. It's possible to crash x11 and ++console with writing random bytes to a mouse device. ++ ++Serial console : ++/dev/console should be a symlink to your real console device. ++If it does not exist, or is not a symlink, it will be replaced with a ++symlink console -> tty0. ++ ++This version of makedev will check /dev for tty*/pty* devices, and if ++there are some with the old major number, it will create a ++/etc/rc.boot/makedev script. This will script will change the ++master/slave devices the next time you boot. ++ ++serial devices should be owned by user "uucp" and group "dialout". ++former they were owned by root. new devices are created with uucp as ++owner, but you will have to change old devices to user uucp on your own. ++It's new policy to have all serial devices owned by uucp, but the last ++word in this discussion isn't said... ++ ++some device names have changed. please read ++/usr/doc/makedev/devices.{txt|html} ++ ++the permissions should be secure enough, but if you find any bugs, or ++unfounded hard permissions, please let me know (i don't know much about ++the right permissions for devices, i yust used the value, everybody else ++was using, and made read & write only available for root, whenever i ++found nothing better. ++ ++/dev/console is now a symlink to /dev/tty0. for more infomation, please ++look at a new 2.1 linux kernel : Documentation/devices.txt. That is the ++"Linux Allocated Device" paper, the official list of linux devices. ++If your boot console is a serial device, you will have to change that ++symlink. ++ ++MAKEDEV-C will not work with any kernel with mcdx support, if ++/proc/devices contains "Mitsumi CD-ROM". if so, patch ++/usr/src/linux/driver/cdrom/mcdx.c : ++1149c1149 ++< if (unregister_blkdev(MAJOR_NR, "mcdx") != 0) { ++--- ++> if (unregister_blkdev(MAJOR_NR, DEVICE_NAME) != 0) { ++1270c1270 ++< if (register_blkdev(MAJOR_NR, "mcdx", &mcdx_fops) != 0) { ++--- ++> if (register_blkdev(MAJOR_NR, DEVICE_NAME, &mcdx_fops) != 0) { ++ ++ ++about call out devices (/dev/cu*) : ++ ++ /dev/ttySxx devices are fully POSIX-compliant TTY devices. If you ++ are only going to be using one set of tty devices, you should be ++ using /dev/ttySxx. ++ ++ /dev/cuaXX devices are different from /dev/ttySXX in two ways --- ++ first of all, they will allow you to open the device even if ++ CLOCAL is not set and the O_NONBLOCK flag was not given to the ++ open device. This allows programs that don't use the ++ POSIX-mondated interface for opening /dev/ttySxx devices to be ++ able to use /dev/cuaXX to make outgoing phone calls on their modem ++ (cu stands for "callout", and is taken from SunOS). ++ ++ The second way in which /dev/cuaXX differs from /dev/ttySXX is ++ that if they are used, they will trigger a simplistic kernel-based ++ locking scheme: If /dev/ttySXX is opened by one or more processes, ++ then an attempt to open /dev/cuaXX will return EAGAIN. If ++ /dev/cuaXX is opened by one or more processes, then an attempt to ++ open /dev/ttySXX will result the open blocking until /dev/cuaXX is ++ closed, and the carrier detect line goes high. the open blocking ++ until /dev/cuaXX is closed, and the carrier detect line goes high. ++ ++ While this will allow for simple lockouts between a user using a ++ modem for callout and a getty listening on the line for logins, it ++ doesn't work if you need to arbitrate between multiple programs ++ wanting to do dialout --- for example, users wanting to do dialout ++ and UUCP. ++ ++ I originally implemented the cuaXX/ttySXX lockout mechanism back ++ before FSSTND established a standard convention for the use of tty ++ lock files. Now that it's there, people should use the tty lock ++ files and not try using /dev/cuaXX. The only reason why ++ /dev/cuaXX hasn't disappeared yet is for backwards compatibility ++ reasons. -- Theodore Ts'o <tytso@mit.edu> ++ ++ ++debian has no /dev/cu* devices. But you can create them, if you need ++them. Read devices.txt for details. ++ ++Andreas Jellinghaus <aj@debian.org>, Sun, 13 Apr 1997 21:05:58 +0200 +--- makedev-2.3.1.orig/debian/old/devices.sgml ++++ makedev-2.3.1/debian/old/devices.sgml +@@ -0,0 +1,294 @@ ++<!doctype linuxdoc system> ++ ++<article> ++ ++<title>devices created by makedev ++<author> Andreas Jellinghaus <tt>aj@debian.org</tt> ++<date> version 0.3, based on Linux allocated device 2.1.62 ++<abstract> ++ some devices are created by default, some are left out on boot ++ floppies, other devices are only created on demand and some ++ devices are obsolete or have new names. ++</abstract> ++ ++<sect> batches <p> ++ ++call out devices are not generated by default. however if you need them, ++you can generate them (see below). ++ ++<descrip> ++<tag/generic/all standard batches for normal Linux\/i386 systems. ++ (standard misc devices, ttyS[0-3], mouse, printer, tapes ++ (scsi, qic, qic117), audio, scsi generic, standard disk, cdroms ++ and ttys) ++<tag/generic-m68k/all generic devices for m68k (additional ++ framebuffer, some mouse devices and m68k scsi disk devices are ++ included, ++ but busmouse devices and qic and qic117 are left out). ++<tag/boot-floppy/a subset of generic. (no audio, less ttys) ++<tag/std-hd/standard hard disks (hd[a-h,xd[ab],sd[a-h],ram disk,md,loop) ++<tag/std-cdrom/standard cdroms (scsi, old non-scsi non-atapi cdroms) ++<tag/compatiblity/collection of old devices. It is usefull to remove them, but ++make sure, that you have generated the new ones, and that you know, what ++you are doing ! serial-cu, printer-old, mouse-old, sr-old, ++qic-old, misc-old, sg-old ++<tag/update/special tag : reads \/proc\/devices and generates new devices ++ found there. ++</descrip> ++ ++<sect> Limits (standard devices) <p> ++ ++There are some limits in this version of devinfo : it will only create a ++special number of devices (e.g. ramdisks, hda partitions). If one of ++these limits is unrealistic, please tell me. Most limits have no good ++reason, I just didn't want to create hundreds of devices, so I only ++created a few. If a limit is too low for you : a) please tell me and b) ++modify /etc/devinfo (should be easy). <p> ++ ++<descrip> ++<tag/ramdisks/8 devices ram[0-7] ++<tag/ide harddisks/20 partitions each (devices hd[a-h]) ++<tag/xt harddisks/20 partitions each (devices xd[ab] ++<tag/loopback/8 devices loop[0-7] ++<tag/metadisk/4 devices md[0-3] ++<tag/scsi cdrom/scd: 8 devices scd[0-7] ++<tag/scsi cdrom/scd-all : 16 devices scd[0-15] ++<tag/scsi generic/sg : 8 devices sg[0-7] ++<tag/scsi generic/sg-all : 16 devices sg[0-15] ++<tag/scsi tapes/8 devices st[0-7] ++<tag/mscdex/4 cdrom devices dos_cd[0-3] ++<tag/joysticks/2 devices each js[0-1] djs[0-1] ++<tag/other cdroms/only one device created : sonycd, gscd, optcd, sjcd, ++hitcd, mcd, cdu535, aztcd, cm206cd, bpcd (if there are several cdroms ++possible : please tell me !) ++<tag/serial/default bootdisks and base system will only have ttyS[0-3], ++but you can create all possible devices ttyS[0-63] with "MAKEDEV serial" ++or several additional devices with "MAKEDEV ttyS4 ttyS5 ...". ++</descrip> ++ ++<sect> additional devices <p> ++ ++you can create these devices with "MAKEDEV name" and delete them with ++"MAKEDEV -d name". you can either use the name listed here (this will ++create all possible devices), or individual devices (use the device ++name) e.g. "serial" will create all 64 serial devices ttyS[0-63] but ++"ttyS0" will only create this one. ++ ++<sect1> serial devices <p> ++ ++<descrip> ++<tag/isdn-tty/isdn terminal devices. 8 devices : ttyI[0-7] ++<tag/isdn-tty-all/isdn terminal devices. 64 devices : ttyI[0-63] ++ ++<tag/isdn-ppp/isdn sync ppp network devices. 8 devices : ippp[0-7] ++<tag/isdn-ppp-all/isdn sync ppp network devices. 64 devices : ippp[0-63] ++ ++<tag/isdn-io/isdn raw and control devices. 18 devices : ++ isdn[0-7] isdnctrl[0-7] isdnctrl isdninfo ++<tag/isdn-io-all/isdn raw and control devices. 130 devices : ++ isdn[0-63] isdnctrl[0-63] isdnctrl isdninfo ++ ++<tag/serial-cu/serial callout devices. they are only for compatibility, ++most people don't need them. 64 devices : cua[0-63] ++ ++<tag/isdn-cu/isdn call out devices. they are only for compatibility, ++most people don't need them. 64 devices : cui[0-7] ++<tag/isdn-cu-all/isdn call out devices. they are only for compatibility, ++most people don't need them. 64 devices : cui[0-63] ++ ++<tag/chase{-cu}/devices for chase serial card (append -cu to create ++call out devices). 32 devices ttyH[0-31] (cuh[0-31]) ++ ++<tag/cyclades{-cu}/devices for cyclades serial card (append -cu to create ++call out devices). 32 devices ttyC[0-31] (cub[0-31]) ++ ++<tag/digiboard{-cu}/devices for digiboard serial card (append -cu to create ++call out devices). 32 devices ttyD[0-31] (cud[0-31]) ++ ++<tag/stallion{-cu}/devices for stallion serial card (append -cu to create ++callout devices). 32 devices ttyE[0-31] (cue[0-31]) ++ ++<tag/stallion-mem/devices to access stallion serial card. 4 devices ++stallionmem[0-3] ++ ++<tag/specialix{-cu}/devices for specialix serial card (append -cu to create ++call out devices). 32 devices ttyX[0-31] (cux[0-31]) ++ ++<tag/rockport{-cu}/devices for rockport serial card (append -cu to create ++call out devices). 32 devices ttyR[0-31] (cur[0-31]) ++ ++<tag/riscom{-cu}/devices for riscom serial card (append -cu to create ++call out devices). 32 devices ttyL[0-31] (cul[0-31]) ++ ++<tag/hayes{-cu}/devices for hayes serial card (append -cu to create ++call out devices). 32 devices ttyP[0-31] (cup[0-31]) ++ ++<tag/baycom/devices for baycom radio modem. 32 devices bc[0-31] ++ ++<tag/computone{-cu}/devices for computone intelliport II serial card ++(append -cu to create call out devices). 32 devices ttyF[0-31] ++(cuf[0-31]) ++ ++<tag/computone-ctrl/devices to access computone intelliport II serial ++card. 8 devices ip2ipl[0-3] and ip2stat[0-3] ++ ++<tag/dcbri/spellcaster datacomm\/bri isdn card. 4 devices dcbri[0-3] ++<tag/specialix{-cu}/devices for specialix IO8+ serial card. 32 devices ++ttyW[0-31] (cuw[0-32]) ++<tag/pam{-cu}/devices for PAM Software's mulitmodem boards. 32 devices ++ttyM[0-31] (cum[0-31]) ++</descrip> ++ ++<sect1> misc devices <p> ++ ++<descrip> ++<tag/pty[p-za-e]/master pty devices. 16 devices pty?[0-9a-f] each ++<tag/tty[p-za-e]/slave tty devices. 16 devices pty?[0-9a-f] each ++<tag/floppy-all/generic only includes the fd0 and fd1 devices. this way ++you can generate devices for the 3rd ... 8th floppies. i recommend to ++install fdutils and use MAKEFLOPPIES to create the floppy devices you ++need. 30 devices each fd[0-7]* ++ ++<tag/framebuffer/universal frame buffer (68k,sparc). ++ 22 devices fb0* fb1* ++<tag/other-arch/amigamouse, atarimouse, sunmouse, openprom, kbd ++<tag/double/"double" compressed disk. 16 devices [c]double[0-7] ++<tag/ez[a-d]/syquest ex135 parallel port removable drive. ++ 20 partitions each ++<tag/ed[ab]/mca esdi hard disk. 20 partitions ed?* each ++ ++<tag/sbpcd[234]/2nd,3rd,4th sound blaster cdrom controller. 4 devices sbpcdXX each ++<tag/mscdex/MSCDEX CD-ROM callback support. 4 devices dos_cd[0-3] ++<tag/cm205cd/cm205 cdrom devices (not supported in 2.x). ++ 2 device cm205cd lmscd ++<tag/ad[a-p]/acsi disc\/cdrom (68k\/atari). 16 devices ad?* each ++<tag/gs4500/genius 4500 handheld scanner. 1 device gs4500 ++<tag/slm/atari sm asci laser printer (68k\/atari). 4 devices slm[0-3] ++<tag/ht/ide tape. 2 devices ht0 nht0 ++<tag/z2ram/zorro II ramdisk. 1 device z2ram ++<tag/cfs/coda network file-system. ++ 1 device cfs0 ++<tag/dtlk/DoubleTalk PC speech synthesizer, from RC Systems. 1 device dtlk ++ ++<tag/ibcs2/ibcs2 devices as described in "Linux Allocated Devices". ++you need to create the directory /dev/inet before running makedev. ++ibcs2-unoff has lots more devices (i don't know if all are needed, or ++not. in doubt use ibcs2-unoff). 9 devices (socksys spx nfsd X0R inet/*). ++ ++<tag/ibcs2-unoff/ibcs2 devices as described in the ibcs2 package. you ++need to create the directories "X" and "inet" before creating these ++devices. 74 devices (arp egp ggp icmp ip ipip pup rawip rip tcp udp nfsd ++X0R socksys spx pty[10-47] inet/* X/*) ++ ++<tag/nvram/some special m68k hardware ? 1 device nvram ++ ++<tag/system-sgi/devices for linux/sgi. 5 devices graphics opengl gfx ++input/mouse input/keyboard ++ ++<tag/nb/network block devices. 8 devices nb* ++<tag/ftl/flash translatio layer (FTL) filesystems. max. 16 drives a-p ++with each 15 partitions (like scsi disks sd*). ++<tag/qng/Quantum Noice Generator. 1 device qng ++<tag/at200/Photometrics AT200 CCD camera. 1 device at200 ++<tag/bttv/Brooktree Bt848 frame grabbers. 12 devices bttv[0-3] ++bttvc[0-3] bttv-vbi[0-3] ++<tag/winradio/WiNRADiO communications receiver card. 4 devices ++winradio[0-3] ++<tag/videotext/Teletext/videotext interfaces 2 devices vtx vttuner ++<tag/ihcp/ikon 1011[57] Versatec Greensheet Interface. 2devices ihcp[0-1] ++<tag/shimq/Linux/SGI shared memory input queue. 5 devices shmiq ++qcntl[0-3] ++<tag/sch/SCSI media changer. 8 devices sch[0-7] ++<tag/controla/Sony control-a1 stereo control bus. ++</descrip> ++ ++<sect1> sound <p> ++<descrip> ++<tag/mpu401/mpu401 MIDI data & status ports. ++ 2 devices mpu401{data,stat} ++<tag/tclmidi/tclmidi midi driver. ++ 12 devices midi[0-3] rmidi[0-3] smpte[0-3] ++</descrip> ++ ++<sect1> misc <p> ++<descrip> ++<tag/wvisfgrab/quanta winvision frame grabber. ++ 1 device wvisfrab ++<tag/mmetfgrab/matrox meteor frame grabber. ++ 1 device mmetfgrab ++<tag/ml16p[abc]/ml-16p experimental i\/o board. ++ 20 device ml16p?* each ++<tag/scc/Z8530 HDLC driver. 8 devices scc[0-7] ++<tag/rom/rom\/flash memory card. ++ 32 devices rom[0-7] rrom[0-7] flash[0-7] rflash[0-7] ++<tag/netlink/netlink support. 2 devices route skip ++<tag/mlanai/myricom pci myrinet board. 8 devices mlanai[0-7] ++<tag/yamm/yet another micro monitor. 1 device yamm ++<tag/bdm/bdm interface for remote debugging MC683xx mc. ++ 6 devices pd_bdm[0-2] icd_bdm[0-2] ++<tag/holter/electrocardiognosis holter serial port. ++ 3 devices holter[0-2] ++<tag/dsp56k/dsp56001 digital signal processor. ++ 1 device dsp56k ++<tag/adbus/apple desktop bus. this was disabled, because it clashes with ++ab[b], the second acsi device (m68k/atari acsi disk). ++ 1 device adb ++<tag/firewall/sf firewall package. ++ 1 device firewall ++<tag/plink/sundance plink transputer boards. ++ 12 devices [r]plink[0-3][d] ++<tag/enskip/enskip kernel encryption package ++<tag/yppcpci/yarc powerpc pci coprocessor card ++<tag/capi20/CAPI 2.0 interface. ++ 21 devices capi20 capi20.[01-19] ++<tag/ma16/ma16 numeric accelerator card ++<tag/aps/spellcaster protocol service interface. ++ 7 devices aps* ++<tag/sci/dolphin interconnect solutions' pci-sci bridge. ++ 4 devices SCI\/[0-3] ++</descrip> ++ ++<sect> compatibility <p> ++ ++not all devices have a standard device name shared by all linux ++distributions, and many names have changed in the past. here is a list, ++so you can find new names, create the old devices (if you want), or ++remove them (to get rid of duplicates). ++ ++<descrip> ++<tag/call out devices/cu* devices are not created by default. but you ++can create or remove them : serial-cu chase-cu cyclades-cu digiboard-cu ++stallion-cu specialix-cu isdn-cu rockport-cu riscom-cu hayes-cu ++computone-cu ++<tag/printer-old/parallel port devices, standard name is lp[0-3], not par[0-3] ++<tag/mouse-old/(bus-)mouse devices : logimouse(logibm) psmouse(psaux) ++msmouse(inportbm) atimouse(atibm) jmouse(jbm) ++<tag/sr-old/scsi cdrom devices (now called scd) ++<tag/qic-old/qic streamer devices : nqt qt nqt11 qt11 nqt24 qt24 nqt120 ++qt120 nqt150 qt150 qt-reset ++<tag/misc-old/for standardized names, some devices got renamed. old : ++midi, sbpcd, aztcd0, vcs0, lmscd, ramdisk ++new : midi00, sbpcd0, aztcd, vcs, ram0, cm205cd, ram0 ++<tag/sg-old/scsi generic devices now use numbers (sg[0-7]), not letters ++sg[a-h]) ++<tag/isdn-old/an old version created ipp* devices. this was a typo, they ++are called ippp* ++</descrip> ++ ++i left some links : even if they are for compatibility, removing them ++might break existing software. ++ ++<descrip> ++<tag/isdnctrl/link to "isdnctrl0" ++<tag/mfd0/m68k amiga hd floppy device ++</descrip> ++ ++<sect> note about console and tty0 <p> ++ ++New standard is : /dev/tty0 is a device (char,4,0). ++console should be a symlink : to tty0, or whatever your console is. ++If it is not a symlink, makedev will replace it with a symlink to tty0. ++Someday there will be a kernel managed device /dev/console to handle ++this (it will be char 5 1). ++ ++</article> +--- makedev-2.3.1.orig/debian/changelog ++++ makedev-2.3.1/debian/changelog +@@ -0,0 +1,747 @@ ++makedev (2.3.1-46.2) stable unstable; urgency=low ++ ++ * non-maintainer update ++ * argh, target stable and unstable ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 14:01:16 -0400 ++ ++makedev (2.3.1-46.1) unstable; urgency=low ++ ++ * non-maintainer update ++ * 'symlink mcdx mcdx0' was reversed (one line patch) ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 04:36:30 -0400 ++ ++makedev (2.3.1-46) stable unstable; urgency=medium ++ ++ * fix silly symlink loop between ram and ram1, closes: #69475, #69351 ++ * fix similar symlink reversal between scd and sr devices, and make 'sr' ++ a valid target, not just when using 'update', closes: #69500 ++ * change agpart to agpgart as per devices.txt, closes: #69319 ++ * add sg* devices to generic targets that include SCSI, closes: #69231 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 29 Aug 2000 01:13:30 -0600 ++ ++makedev (2.3.1-45) stable unstable; urgency=low ++ ++ * incorporates work done by Martin Schulze <joey@finlandia.infodrom.north.de> ++ with my profound thanks. ++ * Added gscd and cm206cd device files, closes: #69057 ++ * Corrected mcdx drivers, support all five drives, closes: #69058 ++ * Corrected symlink creation (i.e. use symlink() instead of ln -s) ++ * Added /dev/toshiba (Toshiba laptop SMM support), closes: #54729, #59242 ++ * Added sdc and sdd to generic-m68k since they were missing, closes: #61027 ++ * Made joystick devices readable by everybody (closes: Bug#61499) ++ * Added '$opts' whenever $0 aka MAKEDEV gets called, thus `-n' is passed ++ to the child properly, closes: #63159 ++ * Added hyphen `-' between i2c and the number as described by devices.txt, ++ closes: #63523 ++ * Fixed wrong creation of hdi hdj hdk and hdl, closes: #64881 ++ * Added hdc and hdd to generic-powerpc since they were missing, ++ closes: #65852 ++ * Added support for ttyI and cui (ignored) to 'update' target by ++ modifying cvt(), closes: #66838 ++ * Corrected a whole bunch of math errors where a `$' was missing, trying ++ to add 1 to 'minor', closes: #68915 ++ * Fixed /proc/devices-parser to ignore slashes, closes: #31854 ++ * Removed out-dated Replaces, closes: #61256 ++ * Added audioctl, closes: #60755 ++ * Added agpart, closes: #61084 ++ * Adjusted 3dfx to have file mode $video instead of $audio ++ * Added ipmikcs (Intelligent Platform Management) with mode 0600 (mode ++ may be unpracticable), closes: #67431 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 15 Aug 2000 21:52:23 -0600 ++ ++makedev (2.3.1-44) frozen unstable; urgency=low ++ ++ * patch from tausq for a case I missed when converting expr to $(( )), ++ fixes problem creating sbpcd devices. Target frozen since this was ++ marked release-critical. Closes: #63585 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 6 May 2000 20:24:40 -0600 ++ ++makedev (2.3.1-43) frozen unstable; urgency=low ++ ++ * add invocation of '/sbin/MAKEDEV std' to postinst to ensure key devices ++ have proper owner/group/perms on upgrades, closes: #61367 ++ * replace /dev/MAKEDEV references with /sbin/MAKEDEV references in the ++ postinst ++ * target frozen since broken perms on /dev/tty keeps xterm from working ++ which is very confusing and frustrating on upgrades. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 3 May 2000 14:27:04 -0600 ++ ++makedev (2.3.1-42) frozen unstable; urgency=low ++ ++ * eliminate the use of expr, since it is in /usr, which may not be mounted ++ during system recovery when makedev is often needed. Target frozen since ++ this was tagged release critical, closes: #62925 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 24 Apr 2000 22:27:18 -0600 ++ ++makedev (2.3.1-41) frozen unstable; urgency=low ++ ++ * Arrange for all scd* devices to have hardlinked sr* counterparts as per ++ devices.txt. Target frozen since this is release critical, closes: #61862 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Apr 2000 20:01:39 -0600 ++ ++makedev (2.3.1-40) frozen unstable; urgency=low ++ ++ * fix flakey code for discovering proper major numbers for several device ++ types. This broke the raidtools postinst in some cases, which I think ++ makes this worth adding to frozen, even though there's no bug in the BTS ++ about it (problem reported and fixed during an IRC session). There are ++ still a few potential major number problems in MAKEDEV, but they're all ++ for obscure devices that are not in devices.txt, and which I'll therefore ++ probably remove entirely when rewriting makedev for woody. ++ * fix type, smtpe should be smpte, closes: #59061 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 19 Mar 2000 20:28:30 -0700 ++ ++makedev (2.3.1-39) frozen unstable; urgency=low ++ ++ * add missing major number clause to thinkpad/smapi device, closes: #57381 ++ target frozen since this is clearly release-critical ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 9 Feb 2000 12:07:07 -0700 ++ ++makedev (2.3.1-38) frozen unstable; urgency=low ++ ++ * target frozen since 56724 was tagged release-critical ++ * rework ftape stuff to match 2.2 kernel device definitions, closes: #56724 ++ * add code to create /dev/smapi and symlink it as /dev/thinkpad. This can ++ be called as either smapi or thinkpad. Closes: #54714 ++ * add /dev/radio symlink to radio0, closes: #55649 ++ * update the netlink target to create fwmonitor and the tap* devices, ++ closes: #54772 ++ * add IRDA device support, closes: #47296 ++ ++ -- Bdale Garbee <bdale@gag.com> Thu, 3 Feb 2000 23:51:58 -0700 ++ ++makedev (2.3.1-37) unstable; urgency=low ++ ++ * add openprom entry for Sparc systems, closes: #54296 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 20:03:00 -0700 ++ ++makedev (2.3.1-36) unstable; urgency=low ++ ++ * fix cyclades target to make 32 instead of 33 devices, and update man page ++ to match what the code does, closes: #51892 ++ * add st0/st1/scd0/scd1 to generic-i386 and generic-alpha to improve the ++ consistency across platforms, closes: #52871 ++ * create an initial generic-arm target, anticipating the need as debian-arm ++ struggles to get ready to release with potato. ++ * update handling of network block devices (nb) so that specifying a single ++ device works as expected. calling for 'nb' will give nb0 and nb1. ++ Closes: #53781 ++ * support digital joysticks (djs) in joystick/js target, closes: #53314 ++ * update to current policy rev, add Build-Depends. ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 02:14:24 -0700 ++ ++makedev (2.3.1-35) unstable; urgency=low ++ ++ * change group of video4linux devices to new group video appearing in ++ base-passwd 3.0.4, closes: 51429 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 28 Nov 1999 20:00:12 -0700 ++ ++makedev (2.3.1-34) unstable; urgency=low ++ ++ * re-craft 'ida' target the same way we did dac960 to allow the boot-floopies ++ folks to create just one or two cards worth. Closes: #51341 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 26 Nov 1999 17:54:56 -0700 ++ ++makedev (2.3.1-33) unstable; urgency=low ++ ++ * add usbmouse support to busmice target, closes: #50326 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 16 Nov 1999 03:20:03 -0700 ++ ++makedev (2.3.1-32) unstable; urgency=low ++ ++ * add 'audio' to the targets for generic-i386, closes: #49935 ++ * craft an initial generic-alpha target to make the boot-floppies stuff ++ work right. For now, just clone the i386 target since I have no idea ++ what is really needed... closes: #49934 ++ * add support for creating ramN devices one at a time, closes: #49853 ++ * add target 'consoleonly' that creates the minimum number of devices to ++ support /dev/console, and recraft the 'console' target to use it and then ++ add all the vcs* devices, et al. Closes: #49852 ++ * re-craft 'dac960' target to be a loop around targets dac960.[0-7] so that ++ boot-floppies creators can create just one or two cards worth of devices ++ instead of having to do them all. Closes: #49864 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 15 Nov 1999 22:38:43 -0700 ++ ++makedev (2.3.1-31) unstable; urgency=low ++ ++ * fixes for major numbers on some oddball CDROM types, needed for boot disks ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Nov 1999 23:58:56 -0700 ++ ++makedev (2.3.1-30) unstable; urgency=low ++ ++ * fill in a few more audio devices, closes: #49107 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 3 Nov 1999 20:28:54 -0700 ++ ++makedev (2.3.1-29) unstable; urgency=low ++ ++ * the /dev/vcs* handling is correct, closes: #42035 ++ * fix case construct for ht0, closes: #42519 ++ * fix major number determination for several devices, closes: #43560 ++ * add js2, js3 to joystick device creation, but leave owner/group/mode ++ the same as for mice until/unless some more compelling argument is ++ presented, closes: #43790 ++ * improve consistency of vcs device creation, making vcs0 and vcsa0, with ++ symlinks for vcs and vcsa, closes: #45698 ++ * add support for /dev/3dfx, closes: #48734 ++ * /dev/sr* is obsolete, use /dev/scd*, closes: #32723 ++ * RH 2.5 was merged as of 2.3.1-24, closes: #45153 ++ * FHS compliance ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 30 Oct 1999 16:53:32 -0600 ++ ++makedev (2.3.1-28) unstable; urgency=medium ++ ++ * /o\ oops... -27 was broken badly. Close 42355, 42359, 42361. ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 3 Aug 1999 02:38:06 -0600 ++ ++makedev (2.3.1-27) unstable; urgency=medium ++ ++ * fix loop's major number, closes 38559. ++ * fix group of scd* to be cdrom, not disk. Closes 41227, 41812. ++ * add vbi symlink, closes 39406 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Aug 1999 00:59:19 -0600 ++ ++makedev (2.3.1-26) unstable; urgency=medium ++ ++ * fix another syntax error introduced in -25... /o\ ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 29 May 1999 03:12:32 -0600 ++ ++makedev (2.3.1-25) unstable; urgency=medium ++ ++ * fix *ugly* typos introduced in -24, closes 38489, 38465. ++ * update MAKEDEV to install the mouse -> sunmouse link in generic-sparc, ++ in addition to making it in the postinst if needed. Closes 38432. ++ * have MAKEDEV exit with error 1 if we hit a "don't know how to make device" ++ situation. I'm a bit concerned about this since it *might* break a ++ package postinst somewhere. However, it is clearly the right thing to do ++ on a purely conceptual level. Closes 29974. ++ * add support for Free S/WAN (IPSEC) device, closes 38372. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600 ++ ++makedev (2.3.1-24) unstable; urgency=low ++ ++ * fold in patch from Espy to provide all the functionality of the RedHat ++ makedev 2.5. Leave our version number as 2.3.1-XX for now, since we're ++ not actually cleanly derived from the 2.5 RedHat bits. Closes 37795, 28616. ++ * make 'scd' act like 'scd-all', closes 37071 ++ * patch for postinst typo, closes 37612 ++ * move MAKEDEV to /sbin, create an init.d fragment to put a symlink in the ++ /dev directory at boot time. This should allow devfs to do its thing, ++ closing 37795, 33025. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600 ++ ++makedev (2.3.1-23) stable unstable; urgency=low ++ ++ * fix problems with st* and adb pointed out by Hartmut ++ ++ -- Bdale Garbee <bdale@gag.com> Thu, 15 Apr 1999 08:39:39 -0600 ++ ++makedev (2.3.1-22) unstable; urgency=low ++ ++ * add 'hamradio' as a target, which is a macro for the new scc[0-7] and ++ bc[0-3] targets, closes 34773. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:55:46 -0600 ++ ++makedev (2.3.1-21) stable unstable; urgency=low ++ ++ * make /dev/mouse a symlink to /dev/sunmouse on sparc, closes 35616 ++ * have postinst create audio devices, closes 35646 ++ * also create [alm] suffix versions for st* devices, closes 33041 ++ * add support for hd[ijkl]... noticed while investigating bug 33798 ++ * use the same owner/group/perms for nvram that we use for kmem, closes 34111 ++ * add loop to the std device set, closes 34899 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:13:47 -0600 ++ ++makedev (2.3.1-20) stable unstable; urgency=medium ++ ++ * release-critical fixes from Hartmut for powerpc, closes 34004 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Mar 1999 07:51:08 -0700 ++ ++makedev (2.3.1-19) frozen unstable; urgency=medium ++ ++ * fix identification of 'sg' in update, closes the part of 33752 (grave) ++ that I can duplicate on i386 in -18 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 23 Feb 1999 07:44:30 -0700 ++ ++makedev (2.3.1-18) frozen unstable; urgency=medium ++ ++ * as requested by Wichert, have the postinst force /dev/kmem owner, group, ++ and permissions since this is a security issue, closes 33703. ++ * another patch needed for m68k slink boot floppies from Michael Schmitz ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 22 Feb 1999 22:56:47 -0700 ++ ++makedev (2.3.1-17) frozen unstable; urgency=low ++ ++ * Wichert points out that /dev/kmem doesn't need to be group writeable. ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 20 Feb 1999 16:12:29 -0700 ++ ++makedev (2.3.1-16) frozen unstable; urgency=medium ++ ++ * apply patch for m68k that is release-critical for slink ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 19 Feb 1999 20:07:05 -0700 ++ ++makedev (2.3.1-15) frozen unstable; urgency=medium ++ ++ * fix major number for sunmouse as per Eric Delaunay, closes 33425 ++ * tighten default permission on mouse and joystick devices, closes 32378 ++ * change audio devices to root.audio 660, closes 32849 ++ * apply patch from Eric Delaunay to fix problem with scsi devices and 2.2 ++ kernels, closes 32999 ++ * target 'frozen' since the sunmouse fix at the very least should be in ++ slink... ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 17 Feb 1999 16:53:41 -0700 ++ ++makedev (2.3.1-14) frozen unstable; urgency=low ++ ++ * additions from Eric Delaunay needed for sparc frozen, closes 32458 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 27 Jan 1999 13:54:31 -0700 ++ ++makedev (2.3.1-13) frozen unstable; urgency=low ++ ++ * make random/urandom available separately, not just in std, closes 32145 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 19 Jan 1999 21:27:14 -0700 ++ ++makedev (2.3.1-12) frozen unstable; urgency=low ++ ++ * add random/urandom to the std target, closes 31562 and 29193 ++ * update manpage to indicate the manpage is out of date, I need to make a ++ chunk of time at some point to give it a thorough review/update. ++ * don't make /dev/cua*, fix group on /dev/ttyS*, closes 30867 ++ * change postinst to use syntax that isn't bash-specific, closes 18807 ++ and 30849 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 9 Jan 1999 00:39:25 -0700 ++ ++makedev (2.3.1-11) frozen unstable; urgency=low ++ ++ * allow 16 sd's instead of 8, as the kernel does. closes 30555. ++ * create hdc and hdd in generic-i386, and create 20 partitions per hd ++ instead of 4, closes 30522. ++ * go back (forward?) to using 'u' instead of '[DHE]' in fd entries, ++ closes 30438. ++ * add 'fb' to both the generic-i386 and generic-powerpc clauses, closes ++ 29228 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 12 Dec 1998 08:10:22 -0700 ++ ++makedev (2.3.1-10) frozen unstable; urgency=low ++ ++ * instead of having the postinst explicitly link /dev/console, have it ++ call MAKEDEV if console doesn't exist. Update MAKEDEV to know how to ++ link it for 2.0 kernels and prior, and create the explicit device for ++ 2.1 and later running kernels. Building this based on running kernel ++ revision doesn't feel clean, but I see no better way. ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700 ++ ++makedev (2.3.1-9) frozen unstable; urgency=low ++ ++ * fix postinst to cd to /dev so that devices don't end up in /, now that ++ we don't do the cd in MAKEDEV itself ++ * move 'generic' to 'generic-i386', and have 'generic' use dpkg to determine ++ which generic-<arch> to use... this paves the way for fixing support for ++ other architectures. ++ * Several changes per drow on IRC: ++ change MAXVT from 8 to 63 ++ change sd[ab] to create 15 instead of 8 subdevices ++ fix char->block on one scd instance ++ diffs to add support for powerpc machines ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700 ++ ++makedev (2.3.1-8) frozen unstable; urgency=low ++ ++ * add support for ram0 to the ram* list (0 was omitted), part of 28933. ++ * device 'rtc' was part of 'misc', give it a top-level entry too to reduce ++ possible confusion. Part of 28933. ++ * add an entry for 'initrd', closes 28933 (slink release-critical). ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 10:18:37 -0700 ++ ++makedev (2.3.1-7) frozen unstable; urgency=low ++ ++ * now that MAKEDEV is a script, this can be an 'all' package instead of ++ an 'any'. Thanks to Hartmut Koptein for pointing this out. ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 6 Nov 1998 11:42:58 -0700 ++ ++makedev (2.3.1-6) frozen unstable; urgency=low ++ ++ * add ttyS entry so update works with recent 2.1 kernels ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Nov 1998 21:47:34 -0700 ++ ++makedev (2.3.1-5) frozen unstable; urgency=low ++ ++ * fix typo affecting fb devices, closes 28742 ++ * fix syntax used for wildcarded devices, part of closing 28769 ++ * fix error in minor numbers for isdn-ippp, part of closing 28769 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 1 Nov 1998 23:09:45 -0700 ++ ++makedev (2.3.1-4) frozen unstable; urgency=low ++ ++ * add support for additional scd and sg devices, closes 28029. ++ * change device names for busmice back to what we used in makedev-1.*, which ++ is also what the kernel documentation uses. Closes 28143. ++ * add support for various devices in contemporary kernels, closes 27720. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 28 Oct 1998 23:41:58 -0700 ++ ++makedev (2.3.1-3) unstable; urgency=low ++ ++ * use 'dialout' instead of 'serial' to select owner/group/perms for ISDN ++ devices, closes 27536 ++ * use 'dialout' as group for serial devices instead of 'uucp' to be ++ compatible with prior Debian makedev packages. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 7 Oct 1998 22:50:36 -0600 ++ ++makedev (2.3.1-2) unstable; urgency=low ++ ++ * fix scd-all and sg-all entry points. The latter is just an alias for 'sg', ++ but the former was genuinely missing. Switch sg devices to numeric suffix ++ to comply with kernel's devices.txt. Closes 27490. ++ * close 26586, since I'm pretty sure it's a weirdy not caused by the package. ++ * add ISDN devices, closes 26971. ++ * add cfs0 for CODA, closes 23815. ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 6 Oct 1998 00:33:59 -0600 ++ ++makedev (2.3.1-1) unstable; urgency=low ++ ++ * New upstream version. This is a *significant* change! ++ This is a move (back?) from the short-lived makedev that depended on a ++ non-free parser to the one that is just a shell script. We will now be ++ more like other Linux distributions, no longer depending on a non-free ++ hunk of code to build the makedev package, and some porting and other ++ issues will get better. ++ * With the major change in upstream code, several bugs are not relevant ++ any more. Therefore, close 12949, 18037, 18807, 20665, 22648, 22868, ++ 23771, 23898, 24477, 24572, 25660, 25840, 26058. ++ * add support for /dev/ptmx, built as part of pty*, closes 23612. ++ * add support for /dev/ed[ab], closes 23887. ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 6 Sep 1998 21:21:32 -0600 ++ ++makedev (1.6-32) frozen unstable; urgency=medium ++ ++ * serial devices now owned by root.dialout, closes 22297 (important) ++ * tape devices now owned by root.tape, closes 11910 ++ * be explicit about which 'ls' we're calling, closes 22225 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 22 May 1998 23:52:58 -0600 ++ ++makedev (1.6-31) unstable; urgency=low ++ ++ * add powerpc support, closes 21949 ++ * lose the menu entry ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 2 May 1998 01:29:06 -0600 ++ ++makedev (1.6-30) unstable; urgency=low ++ ++ * change from debmake to debhelper ++ * fix errors and warnings reported by lintian ++ * deliver devices.sgml instead of trying to build the .txt and .html files, ++ closes bug 16953 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 9 Feb 1998 22:31:43 -0700 ++ ++makedev (1.6-29) unstable; urgency=low ++ ++ * add arpd device, on request of Elie Rosenblum <erosenbl@nyx.net>. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Jan 1998 09:42:14 -0700 ++ ++makedev (1.6-28) unstable; urgency=low ++ ++ * new maintainer ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 5 Dec 1997 23:22:57 -0700 ++ ++makedev (1.6-27) unstable; urgency=low ++ ++ * changed /dev/console handling. ++ * updated devinfo to kernel 2.1.62 device list. ++ * changed all device with group "sys" to group "root". ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sat, 8 Nov 1997 11:56:18 +0100 ++ ++makedev (1.6-26) unstable; urgency=low ++ ++ * fixed bug #13787 : amigamouse1 was not corrected by postinst. ++ * fixed ad devices. ++ * added nvram device, added ad* to std-hd-m68k, added ttyS4 and ttyS6 ++ to m68k boot-floppies and m68k generic ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 16 Oct 1997 20:09:14 +0200 ++ ++makedev (1.6-25) unstable; urgency=low ++ ++ * bug #9077 is obsolete (kernel bug, fixed in kernel). ++ * libc6 release : closes bugs #12791 and #13122. ++ * fixed bug #12158 : added sr* and sg* devices. ++ * fixed bug #12385 : wrong standard number. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 19 Sep 1997 16:12:32 +0200 ++ ++makedev (1.6-24) unstable; urgency=low ++ ++ * removed support for old floppy devices. ++ * only create generic floppy devices. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 10 Sep 1997 10:31:53 +0200 ++ ++makedev (1.6-23) unstable; urgency=low ++ ++ * renamed isdn batches : isdn-xx is 8 devices, isdn-xx-all are 64 ++ devices (isdn-io, isdn-tty, isdn-ippp, isdn-cu). ++ * increased numer to 5500 devices. (makedev is getting too large). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:40:11 +0200 ++ ++makedev (1.6-22) unstable; urgency=low ++ ++ * bugfix with cvstree (i forgot to commit befor tagging :-() ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:30:08 +0200 ++ ++makedev (1.6-21) unstable; urgency=low ++ ++ * bugfix : out of memory. aarrgg : makedev has fixed size tables. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:28:24 +0200 ++ ++makedev (1.6-20) unstable; urgency=low ++ ++ * corrected problem with my own cvs tree ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:54:10 +0200 ++ ++makedev (1.6-19) unstable; urgency=low ++ ++ * changed /dev/full to mode 0622 (0666 was a security hole, as ++ discussed on linux-kernel). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:22:27 +0200 ++ ++makedev (1.6-18) unstable; urgency=low ++ ++ * added isdn-*-small devices (only 8 devices, not 64). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 22 Aug 1997 12:57:20 +0200 ++ ++makedev (1.6-17) unstable; urgency=low ++ ++ * close bug 6541 (missing audio device) : not reproduceable ++ * generate random and urandom, if missing (bug #12134) ++ * enabled makedev to create more sg* and sr* devices (bug #12158) ++ * changed doubletalkt to dtlk as requested ++ * sd[a-h]16 removed (bug, sda16 = sdb, scsi only supports 15 ++ partitions) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 17 Aug 1997 19:19:33 +0200 ++ ++makedev (1.6-16) stable unstable; urgency=low ++ ++ * security bug fixed : all mouse devices are now mode 600. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 30 Jul 1997 10:31:04 +0200 ++ ++makedev (1.6-15) unstable; urgency=low ++ ++ * ibcs2 removed from generic set. revised ibcs2-unoff. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 29 Jul 1997 13:13:43 +0200 ++ ++makedev (1.6-14) unstable; urgency=low ++ ++ * bug in postinst : type "MAKDEV" and "/dev/tty0" instead of "tty0" (#11441) ++ * stable version (libc5 compiled) for isdnutils ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 25 Jul 1997 10:12:14 +0200 ++ ++makedev (1.6-13) unstable; urgency=low ++ ++ * fixed menu entry (thanks to Abdallah Chatila <acha@poboxes.com>) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 21:33:55 +0200 ++ ++makedev (1.6-12) unstable; urgency=low ++ ++ * bug fix (changed doubletalk to class audio). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 09:45:38 +0200 ++ ++makedev (1.6-11) unstable; urgency=low ++ ++ * Fixed isdn devices (ippp were missing). ++ * No longer create isdn device as default (that is done by isdnutils). ++ * Added doubletalk device. Added more ibcs2 stuff. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 8 Jul 1997 19:04:45 +0200 ++ ++makedev (1.6-10) unstable stable; urgency=low ++ ++ * fixed console device, added documentation. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 25 Jun 1997 13:20:46 +0200 ++ ++makedev (1.6-9) unstable stable; urgency=low ++ ++ * Added comment about cua devices. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 24 Jun 1997 09:21:20 +0200 ++ ++makedev (1.6-8) unstable stable; urgency=low ++ ++ * changed /dev/console to be a symlink to /dev/tty0. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 22 Jun 1997 21:42:35 +0200 ++ ++makedev (1.6-7) unstable stable; urgency=low ++ ++ * fixed bug with possible /dev/console symlink. ++ * fixed bug with not always creating /dev/tty0. (xfree 3.3 need this) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 19 Jun 1997 22:38:46 +0200 ++ ++makedev (1.6-6) unstable; urgency=low ++ ++ * fixed documentation (thanks to David Welton <davidw@efn.org>) ++ * patch for m68k from frank neumann included ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 9 Jun 1997 15:45:00 +0200 ++ ++makedev (1.6-5) unstable; urgency=low ++ ++ * libc6 release ++ * added postinst script to change tty/pty devices to new major ++ numbers (the next time you boot). ++ * changed all serial devices from root.dialout to uucp.dialout ++ * added generic-ARCH batches ++ * changed (u)random permissions from 444 to 644 ++ * corrected mcd/mcdx handling. ++ * small bugfix in manpages. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 24 Apr 1997 19:12:58 +0200 ++ ++makedev (1.6-4) unstable frozen; urgency=low ++ ++ * fixed manpage, added generic-m68k, added mfd0, changed framebuffer ++ create both : fb[01] and fb[01]current, changed framebuffer ++ class to mode 664. disabled adb (apple desktob bus). ++ this fixes bug #9053 ++ * fixed mitsumi cdrom detection. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 23 Apr 1997 16:23:50 +0200 ++ ++makedev (1.6-3) unstable frozen; urgency=low ++ ++ * bug fixed : st?l devices (nor st?1). ++ * only create fd0 and fd1 with generic ++ * seperated old device names to "-old" groups ++ * not generating cm205cd by default ++ * "boot-floppy" added with less devices ++ * documentation in sgml and txt format ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 16 Apr 1997 12:58:56 +0200 ++ ++makedev (1.6-2) unstable frozen; urgency=high ++ ++ * new maintainer Andreas Jellinghaus <aj@debian.org> ++ * rewrote devinfo (according to linux allocated devices, 2.0.30,2.1.31 ++ * this fixes bug #8396 (isdn devices) ++ * this fixes bug #8399 (don't generate cu* devices) ++ * this fixes bug #7144 (device for goldstar cdrom - gscd) ++ * this fixes bug #8173 (new names for floppy devices fd*) ++ * this fixes bug #8068 (hd[efgh] devises added : now ide[0123]) ++ (this includes: renamed all floppy device (bug #8173), ++ * this fixes bug #3493 (isdn devices) ++ * this fixes bug #5542 (ttyS* group dialout, cu* not generated) ++ * this fixes bug #6926 (loop back devices corrected) ++ * this fixes bug #6983 (loop back devices creatable) ++ * this fixes bug #7038 (mcd device creatable (only one)) ++ * this fixes bug #7754 (sr* devices are created for compatibility) ++ * this fixes parts of bug #7783 (only new tty/pty are created) ++ * bug #7755 obsolete (old cat file ? current man page is ok) ++ * bug #8009 obsolete (disks 1997-04-04 are ok) ++ * remove from generic : cua[0-3] lmscd ram sbpcd[9-15] vcs0 ++ added to generic: X0R aztcd beep bpcd cm205cd cm206cd exttrp gscd ++ hd[efgh]* hitcd hwtrap initrd ippp* jbm loop* mcd md* modreq nsfd ++ nst*[1am] optcd ram[0-7] ramdisk relay16 relay8 rtc sd[abcdefgh][9-16] ++ sequence2 sg[0-7] sjcd socksys spx sr[0-7] st*[1am] tpqic* tty[13-63] ++ ttyI[0-63] urandom vcs vcs[13-63] vcsa vcsa[13-63] watchdog ++ (ca. + 600 devices, size + 11 k in a ext2fs) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 13 Apr 1997 21:06:14 +0200 ++ ++makedev (1.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Bruce Perens <bruce@pixar.com> Wed, 19 Mar 1997 20:40:17 -0800 ++ ++makedev (1.5-4) unstable; urgency=low ++ ++ * Add devices. Increase the maximum size of a batch from 32 to 1024. ++ ++ -- Bruce Perens <bruce@pixar.com> Tue, 17 Dec 1996 20:34:06 -0800 ++ ++makedev (1.5-3) unstable; urgency=low ++ ++ * Make hd[a-d][8-20] and sd[a-h][8-20]. Remove bad empty "omit" from ++ makedev.cfg ++ ++ -- Bruce Perens <bruce@pixar.com> Sun, 8 Dec 1996 09:42:18 -0800 ++ ++makedev (1.5-2) unstable; urgency=low ++ ++ * Change class of ttySn devices to dialout. ++ * Add ISDN. ++ ++ -- Bruce Perens <bruce@pixar.com> Fri, 6 Dec 1996 21:17:12 -0800 ++ ++makedev (1.5-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Bruce Perens <bruce@pixar.com> Wed, 30 Oct 1996 20:36:44 -0800 ++ ++Local variables: ++mode: debian-changelog ++End: +--- makedev-2.3.1.orig/debian/conffiles ++++ makedev-2.3.1/debian/conffiles +@@ -0,0 +1 @@ ++/etc/init.d/makedev +--- makedev-2.3.1.orig/debian/control ++++ makedev-2.3.1/debian/control +@@ -0,0 +1,13 @@ ++Source: makedev ++Section: base ++Priority: required ++Maintainer: Bdale Garbee <bdale@gag.com> ++Build-Depends: debhelper ++Standards-Version: 3.1.1.1 ++ ++Package: makedev ++Architecture: all ++Depends: base-passwd (>= 3.0.4) ++Description: Creates special device files in /dev. ++ The MAKEDEV executable is used to populate the /dev directory with device ++ files. +--- makedev-2.3.1.orig/debian/copyright ++++ makedev-2.3.1/debian/copyright +@@ -0,0 +1,45 @@ ++This package is maintained for Debian by Bdale Garbee, <bdale@gag.com>. ++ ++It was downloaded from ftp.redhat.com, as a source .rpm from the 5.1 release ++tree. ++ ++Copyright: ++ ++No explicit copyright is asserted. Nick Holloway is the earliest author ++recorded in the sourcecode. I queried him for an explicit statement ++regarding the license status of this work, and this is his reply: ++ ++ Date: Tue, 21 Jul 1998 19:57:10 +0100 ++ From: Nick Holloway <Nick.Holloway@alfie.demon.co.uk> ++ Message-Id: <199807211857.TAA19068@alfie.demon.co.uk> ++ To: Bdale Garbee <bdale@gag.com> ++ Subject: Re: makedev license? ++ ++ > I maintain the makedev package for Debian GNU/Linux. I am about to move ++ > from the ill-fated makedev-1.6 to the makedev-2.3.1 derived from your work ++ > by the folks at Redhat. I don't see any evidence of a copyright assertion ++ > or explicit license statement in the source. Your name appears to be the ++ > earliest attached to the current sourcecode. Am I correct in assuming the ++ > GPL? We try to be meticulous about having our base system be compliant ++ > with our Debian Free Software Guidelines, so I'd like an explicit statement. ++ ++ It was never explictly released as GPL, as that would have required ++ including the file COPYING which would have been much larger than the ++ actual MAKEDEV script (I was also too lazy to find out what incantations ++ needed to be made). However, it is intended to be used as anyone sees ++ fit, and the statement under "Copying Policy" is "Freely Redistributable" ++ (see MAKEDEV.lsm from any of the releases I made). ++ ++ The more recent modifications were done by Michael K. Johnson at ++ Redhat. I think the understanding was that he would be taking over the ++ maintenance of MAKEDEV (our discussion took place last September). ++ ++ The only previous history was (according to an old posting to ++ comp.os.linux) that I started with Jim Winstead's script. ++ ++ So, as far as I am concerned, it is consistentwith the Debian FSG. ++ ++ -- ++ `O O' | Home: Nick.Holloway@alfie.demon.co.uk http://www.alfie.demon.co.uk/ ++ // ^ \\ | Work: Nick.Holloway@parallax.co.uk ++ +--- makedev-2.3.1.orig/debian/dirs ++++ makedev-2.3.1/debian/dirs +@@ -0,0 +1,2 @@ ++sbin ++usr/share/man/man8 +--- makedev-2.3.1.orig/debian/init.d ++++ makedev-2.3.1/debian/init.d +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin ++ ++set -e ++ ++case "$1" in ++ start) ++ ln -fs /sbin/MAKEDEV /dev/MAKEDEV ++ ;; ++ stop|reload|restart|force-reload) ++ ;; ++ *) ++ N=/etc/init.d/makedev ++ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 ++ echo "Usage: $N {start|stop|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- makedev-2.3.1.orig/debian/postinst ++++ makedev-2.3.1/debian/postinst +@@ -0,0 +1,62 @@ ++#!/bin/sh ++ ++set +e ++ ++#DEBHELPER# ++ ++cd /dev ++ ++/sbin/MAKEDEV std ++ ++test -e /dev/console || /sbin/MAKEDEV console ++test -e /dev/tty0 || /sbin/MAKEDEV tty0 ++test -e /dev/random || /sbin/MAKEDEV random ++test -e /dev/urandom || /sbin/MAKEDEV urandom ++test -e /dev/full && chmod 0622 /dev/full ++test -e /dev/audio || /sbin/MAKEDEV audio ++ ++[ ! -f /dev/mouse -a -f /dev/sunmouse ] && ln -s sunmouse mouse ++ ++for A in sda16 sdb16 sdc16 sdd16 sde16 sdf16 sdg16 sdh16 \ ++ ada16 adb16 adc16 add16 ade16 adf16 adg16 adh16 ++do ++ test -e /dev/$A && rm /dev/$A ++done ++ ++for A in logibm psaux inportbm atibm jbm smouse logimouse psmouse \ ++msmouse atimouse jmouse amigamouse atarimouse sunmouse amigamouse1 ++do ++ test -e /dev/$A && chmod 600 /dev/$A ++done ++ ++# fix security hole caused by group-write permissions on kmem ++test -e /dev/kmem && chown root.kmem /dev/kmem && chmod 0640 /dev/kmem ++ ++LIST="" ++ ++for TYPE in tty pty ; do ++ for LETTER in p q r s t u v w x y z a b c d e ; do ++ if [ -e /dev/$TYPE$LETTER"0" ]; then ++ MAJOR="`/bin/ls -l /dev/$TYPE$LETTER"0"|cut -c33-36`" ++ if [ "$MAJOR" = 4 ] ; then ++ LIST="$LIST $TYPE$LETTER" ++ fi ++ fi ++ done ++done ++ ++if [ -n "$LIST" ]; then ++ cat > /etc/rc.boot/makedev << EOF ++#!/bin/sh ++ ++echo "Creating new console devices" ++/sbin/MAKEDEV $LIST ++ ++rm /etc/rc.boot/makedev ; exit 0 ++EOF ++ ++chmod 755 /etc/rc.boot/makedev ++ ++fi ++ ++exit 0 +--- makedev-2.3.1.orig/debian/preinst ++++ makedev-2.3.1/debian/preinst +@@ -0,0 +1,5 @@ ++#!/bin/sh ++ ++rm -f /usr/man/man8/MAKEDEV.8 /usr/man/man8/MAKEDEV-C.8 \ ++ /usr/man/man8/MAKEDEV-C.8.gz ++exit 0 +--- makedev-2.3.1.orig/debian/rules ++++ makedev-2.3.1/debian/rules +@@ -0,0 +1,56 @@ ++#!/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 ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ -$(MAKE) clean ++ -rm -f debian/devices.txt debian/devices*html ++ 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 ++ ++ ROOT=debian/tmp $(MAKE) install ++ ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installinit ++ dh_installcron ++ dh_installmanpages ++ dh_undocumented ++ dh_installchangelogs ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_suidregister ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++# dh_makeshlibs ++ 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 diff --git a/source/a/devs/makedev_2.3.1.hd.diff b/source/a/devs/makedev_2.3.1.hd.diff new file mode 100644 index 00000000..4f5058b2 --- /dev/null +++ b/source/a/devs/makedev_2.3.1.hd.diff @@ -0,0 +1,71 @@ +--- ./MAKEDEV.orig Sun Feb 24 15:46:03 2002 ++++ ./MAKEDEV Sun Feb 24 16:12:18 2002 +@@ -147,7 +147,7 @@ + Character|Block|'') + ;; + *) +- eval "major_$device=$major" ++ # eval "major_$device=$major" + devices="$devices $device" + ;; + esac +@@ -964,7 +964,7 @@ + done + ;; + hd[k-l]) +- major=`Major ide4 57` || continue ++ major=`Major ide5 57` || continue + unit=`suffix $arg hd` + base=`index kl $unit` + base=`math $base \* 64` +@@ -974,6 +974,50 @@ + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; ++ hd[m-n]) ++ major=`Major ide6 88` || continue ++ unit=`suffix $arg hd` ++ base=`index mn $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[o-p]) ++ major=`Major ide7 89` || continue ++ unit=`suffix $arg hd` ++ base=`index op $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[q-r]) ++ major=`Major ide8 90` || continue ++ unit=`suffix $arg hd` ++ base=`index qr $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[s-t]) ++ major=`Major ide9 91` || continue ++ unit=`suffix $arg hd` ++ base=`index st $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; + ht0) + major=`Major ht0 37` || continue + # Only one IDE tape drive is currently supported; ht0. diff --git a/source/a/devs/makedev_2.3.1.slack.diff b/source/a/devs/makedev_2.3.1.slack.diff new file mode 100644 index 00000000..8a199856 --- /dev/null +++ b/source/a/devs/makedev_2.3.1.slack.diff @@ -0,0 +1,19 @@ +--- ./MAKEDEV.orig 2004-05-20 19:27:42.000000000 -0700 ++++ ./MAKEDEV 2004-05-20 19:28:47.000000000 -0700 +@@ -17,14 +17,14 @@ + tty=" root tty 0666" + cons=" root tty 0622" + vcs=" root root 0600" +-dialout=" root dialout 0660" ++dialout=" root uucp 0660" + mouse=" root root 0660" + printer=" root lp 0660" + floppy=" root floppy 0660" + disk=" root disk 0660" + scsi=" root root 0600" + cdrom=" root cdrom 0660" +- tape=" root tape 0660" ++ tape=" root disk 0660" + audio=" root audio 0660" + video=" root video 0660" + ibcs2=" root root 0666" diff --git a/source/a/devs/slack-desc b/source/a/devs/slack-desc new file mode 100644 index 00000000..e8b5d1d5 --- /dev/null +++ b/source/a/devs/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------------------------------------------------------| +devs: devs (system device files) +devs: +devs: This package creates special files in the /dev directory that +devs: represent your system's hardware, and a tool (/dev/MAKEDEV) for +devs: creating new device files. These files are required to access +devs: hardware on a Linux system. +devs: +devs: +devs: +devs: +devs: diff --git a/source/a/dialog/dialog.SlackBuild b/source/a/dialog/dialog.SlackBuild new file mode 100755 index 00000000..9c9bd3f6 --- /dev/null +++ b/source/a/dialog/dialog.SlackBuild @@ -0,0 +1,119 @@ +#!/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=dialog +VERSION=${VERSION:-1.1-20080819} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +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" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/dialog.smaller.min.height.diff.gz | patch -p1 --verbose || 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 \ + --disable-static \ + --enable-nls \ + --with-ncursesw \ + --enable-widec \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Keep the old traditional looknfeel :-) +mkdir -p $PKG/etc +cat samples/slackware.rc > $PKG/etc/dialogrc + +mkdir -p $PKG/bin +mv $PKG/usr/bin/dialog $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/dialog . +) + +# 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 \ + CHANGES COPYING README VERSION dialog.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/a/dialog/dialog.smaller.min.height.diff b/source/a/dialog/dialog.smaller.min.height.diff new file mode 100644 index 00000000..c9a327af --- /dev/null +++ b/source/a/dialog/dialog.smaller.min.height.diff @@ -0,0 +1,22 @@ +--- ./checklist.c.orig 2008-06-20 15:58:21.000000000 -0500 ++++ ./checklist.c 2009-04-22 19:00:18.000000000 -0500 +@@ -31,7 +31,7 @@ + + static int list_width, check_x, item_x, checkflag; + +-#define MIN_HIGH (1 + (5 * MARGIN)) ++#define MIN_HIGH 4 + + #define LLEN(n) ((n) * CHECKBOX_TAGS) + #define ItemData(i) &items[LLEN(i)] +--- ./menubox.c.orig 2008-06-19 19:54:16.000000000 -0500 ++++ ./menubox.c 2009-04-22 19:00:07.000000000 -0500 +@@ -35,7 +35,7 @@ + Editing + } Mode; + +-#define MIN_HIGH (1 + (5 * MARGIN)) ++#define MIN_HIGH 4 + + #define INPUT_ROWS 3 /* rows per inputmenu entry */ + diff --git a/source/a/dialog/slack-desc b/source/a/dialog/slack-desc new file mode 100644 index 00000000..8c20026f --- /dev/null +++ b/source/a/dialog/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------------------------------------------------------| +dialog: dialog (display dialog boxes from shell scripts) +dialog: +dialog: Dialog is a program to present a variety of questions or display +dialog: messages using dialog boxes from a shell script. The Slackware +dialog: package management script "pkgtool" uses this, as do various other +dialog: menu-driven console scripts. +dialog: +dialog: Dialog was originally contributed to Slackware by Savio Lam, and has +dialog: been contributed to by many. Dialog is currently maintained by +dialog: Thomas E. Dickey. +dialog: diff --git a/source/a/dosfstools/dosfstools.SlackBuild b/source/a/dosfstools/dosfstools.SlackBuild new file mode 100755 index 00000000..ebe99c68 --- /dev/null +++ b/source/a/dosfstools/dosfstools.SlackBuild @@ -0,0 +1,74 @@ +#!/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=2.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dosfstools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dosfstools-$VERSION +tar xzvf $CWD/dosfstools-$VERSION.src.tar.gz +cd dosfstools-$VERSION +chown -R root:root . +make -j4 || exit 1 + +( cd mkdosfs + mkdir -p $PKG/sbin + cat mkdosfs > $PKG/sbin/mkdosfs + chmod 755 $PKG/sbin/mkdosfs + mkdir -p $PKG/usr/man/man8 + cat mkdosfs.8 | gzip -9c > $PKG/usr/man/man8/mkdosfs.8.gz +) +( cd $PKG/sbin ; rm -f mkfs.msdos ; ln -sf mkdosfs mkfs.msdos ) +( cd dosfsck + cat dosfsck > $PKG/sbin/dosfsck + chmod 755 $PKG/sbin/dosfsck + cat dosfsck.8 | gzip -9c > $PKG/usr/man/man8/dosfsck.8.gz +) +mkdir -p $PKG/usr/doc/dosfstools-$VERSION +cp -a \ + CHANGES README.Atari TODO \ + $PKG/usr/doc/dosfstools-$VERSION +mkdir -p $PKG/usr/doc/dosfstools-$VERSION/mkdosfs +( cd mkdosfs ; cp -a ANNOUNCE COPYING README mkdosfs-ygg-0.3b.lsm $PKG/usr/doc/dosfstools-$VERSION/mkdosfs ) +mkdir -p $PKG/usr/doc/dosfstools-$VERSION/dosfsck +( cd dosfsck ; cp -a CHANGES COPYING README $PKG/usr/doc/dosfstools-$VERSION/dosfsck ) + +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/dosfstools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/dosfstools/slack-desc b/source/a/dosfstools/slack-desc new file mode 100644 index 00000000..b070c1e2 --- /dev/null +++ b/source/a/dosfstools/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------------------------------------------------------| +dosfstools: dosfstools (tools for working with FAT filesystems) +dosfstools: +dosfstools: Utilities for creating FAT filesystems (mkdosfs), and for checking +dosfstools: and repairing them (dosfsck). +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: diff --git a/source/a/e2fsprogs/doinst.sh b/source/a/e2fsprogs/doinst.sh new file mode 100644 index 00000000..c47d7e84 --- /dev/null +++ b/source/a/e2fsprogs/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/mke2fs.conf.new + +if [ -x /usr/bin/install-info ]; then + install-info --info-dir=/usr/info /usr/info/libext2fs.info.gz 2> /dev/null +fi + diff --git a/source/a/e2fsprogs/e2fsprogs.SlackBuild b/source/a/e2fsprogs/e2fsprogs.SlackBuild new file mode 100755 index 00000000..c57cea4f --- /dev/null +++ b/source/a/e2fsprogs/e2fsprogs.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=${VERSION:-1.41.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +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-e2fsprogs + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf e2fsprogs-$VERSION +tar xvf $CWD/e2fsprogs-$VERSION.tar.?z* || exit 1 +cd e2fsprogs-$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 {} \; + +# Disable --uuidd builds the same functionality into libuuid.*. +# It's better that way. +# Keep the included libblkid and libuuid for now, but we'll be using the +# system-wide one from util-linux-ng sooner or later... +# fsck.* will also be moving to u-l-ng +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + --libdir=/lib${LIBDIRSUFFIX} \ + --bindir=/usr/bin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/e2fsprogs-$VERSION \ + --enable-elf-shlibs \ + --enable-libblkid \ + --enable-libuuid \ + --disable-uuidd \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-libs DESTDIR=$PKG || exit 1 + +# I guess Ted would rather not have this included, so we won't. +# ( cd misc +# make findsuper +# cat findsuper > $PKG/sbin/findsuper +# chmod 0755 $PKG/sbin/findsuper ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Don't clobber an existing config file +mv $PKG/etc/mke2fs.conf $PKG/etc/mke2fs.conf.new + +# Fix up package: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +mv $PKG/lib${LIBDIRSUFFIX}/pkgconfig $PKG/lib${LIBDIRSUFFIX}/*.so \ + $PKG/usr/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for i in *.so ; do + ln -sf /lib${LIBDIRSUFFIX}/$(readlink $i) $i ; + done +) +( cd $PKG/sbin + rm -f \ + mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev \ + fsck.ext2 fsck.ext3 fsck.ext4dev e2label findfs + ln -sf mke2fs mkfs.ext2 + ln -sf mke2fs mkfs.ext3 + ln -sf mke2fs mkfs.ext4 + ln -sf mke2fs mkfs.ext4dev + ln -sf tune2fs e2label + ln -sf tune2fs findfs + cat << EOF > fsck.ext2 +#!/bin/sh +exec /sbin/e2fsck -C 0 \$* +EOF + chmod 0755 fsck.ext2 + # Why won't symlinks work here? --RW + # Because $0 will always be "fsck.ext2" in that case. --PJV + cp -a fsck.ext2 fsck.ext3 + cp -a fsck.ext2 fsck.ext4 + cp -a fsck.ext2 fsck.ext4dev +) +( cd $PKG/usr/man/man3 + rm -f uuid_generate_random.3 uuid_generate_time.3 + ln -sf uuid_generate.3 uuid_generate_random.3 + ln -sf uuid_generate.3 uuid_generate_time.3 +) +( cd $PKG/usr/man/man8 + rm -f fsck.ext2.8 fsck.ext3.8 mkfs.ext2.8 mkfs.ext3.8 \ + mkfs.ext4.8 mkfs.ext4dev.8 + ln -sf e2fsck.8 fsck.ext2.8 + ln -sf e2fsck.8 fsck.ext3.8 + ln -sf e2fsck.8 fsck.ext4.8 + ln -sf e2fsck.8 fsck.ext4dev.8 + ln -sf mke2fs.8 mkfs.ext2.8 + ln -sf mke2fs.8 mkfs.ext3.8 + ln -sf mke2fs.8 mkfs.ext4.8 + ln -sf mke2fs.8 mkfs.ext4dev.8 +) + +# Compress and link manpages +( 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/usr/doc/e2fsprogs-$VERSION +cp -a \ + COPYING* INSTALL INSTALL.elfbin README* RELEASE-NOTES SHLIBS \ + $PKG/usr/doc/e2fsprogs-$VERSION +chmod 644 $PKG/usr/doc/e2fsprogs-$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/e2fsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/e2fsprogs/slack-desc b/source/a/e2fsprogs/slack-desc new file mode 100644 index 00000000..e35c02a2 --- /dev/null +++ b/source/a/e2fsprogs/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------------------------------------------------------| +e2fsprogs: e2fsprogs (ext2 and ext3 filesystems utilities) +e2fsprogs: +e2fsprogs: Utilities needed to create and maintain ext2 and ext3 filesystems. +e2fsprogs: +e2fsprogs: These utilities were written by Remy Card (the developer and +e2fsprogs: maintainer of the ext2 fs) and Theodore T'so. +e2fsprogs: +e2fsprogs: +e2fsprogs: +e2fsprogs: +e2fsprogs: diff --git a/source/a/ed/ed.SlackBuild b/source/a/ed/ed.SlackBuild new file mode 100755 index 00000000..534ca116 --- /dev/null +++ b/source/a/ed/ed.SlackBuild @@ -0,0 +1,115 @@ +#!/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=ed +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +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 . +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 \ + --infodir=/usr/info \ + --mandir=/usr/man + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +if [ ! -r $PKG/usr/man/man1/ed.1 ]; then + mkdir -p $PKG/usr/man/man1 + cat doc/ed.1 > $PKG/usr/man/man1/ed.1 +fi + +# Traditional: +( mkdir $PKG/bin + rm $PKG/usr/bin/red + mv $PKG/usr/bin/ed $PKG/bin + cd $PKG/bin + ln -sf ed red + cd $PKG/usr/bin + ln -sf ../../bin/ed . + ln -sf ed red +) + +# 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 TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/ed/slack-desc b/source/a/ed/slack-desc new file mode 100644 index 00000000..b0121daa --- /dev/null +++ b/source/a/ed/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------------------------------------------------------| +ed: ed (text editor) +ed: +ed: GNU ed is an 8-bit clean, more or less POSIX-compliant implementation +ed: of the standard Unix line editor. These days, full-screen editors +ed: have rendered 'ed' mostly of historical interest. Nonetheless, it +ed: appeals to a handful of aging programmers who still believe that +ed: "Small is Beautiful". +ed: +ed: +ed: +ed: diff --git a/source/a/eject/eject.SlackBuild b/source/a/eject/eject.SlackBuild new file mode 100755 index 00000000..56d1e79f --- /dev/null +++ b/source/a/eject/eject.SlackBuild @@ -0,0 +1,107 @@ +#!/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=eject +VERSION=${VERSION:-2.1.5} +ARCH=${ARCH:-x86_64} +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" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 +cd ${PKGNAM} + +# 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 \ + $ARCH-slackware-linux + +# Build and install: +make -j4 || 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 + +# 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 NEWS PORTING PROBLEMS README TODO eject-$VERSION.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/eject/slack-desc b/source/a/eject/slack-desc new file mode 100644 index 00000000..624b05b7 --- /dev/null +++ b/source/a/eject/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------------------------------------------------------| +eject: eject (a tool to eject removable media) +eject: +eject: Eject allows removable media (typically a DVD, CD, floppy disk, tape, +eject: etc.) to be ejected under software control. The command can also +eject: control some multi-disc changers, the auto-eject feature supported by +eject: some devices, and can close the disc tray of some drives. +eject: +eject: The 'eject' program was written by Jeff Tranter. +eject: +eject: +eject: diff --git a/source/a/elvis/elvis.SlackBuild b/source/a/elvis/elvis.SlackBuild new file mode 100755 index 00000000..3bb83ba7 --- /dev/null +++ b/source/a/elvis/elvis.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2005-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.2_0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-elvis + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf elvis-$VERSION +tar xjvf $CWD/elvis-$VERSION.tar.bz2 +cd elvis-$VERSION +chown -R root:root . +# Time for a kludge (i.e. don't suggest this kind of thing be +# done as a rule... I don't know why I'm crazy today). +# First we build and install this with a bogus --prefix, and +# then build it again and replace the binaries. +# (to prevent compiling in /tmp/package-elvis/ paths) +./configure \ + --without-x \ + --without-gnome \ + --bindir=$PKG/usr/bin \ + --datadir=$PKG/usr/share/elvis-$VERSION \ + --docdir=$PKG/usr/share/elvis-$VERSION/doc \ + --verbose +make +make install +# Now we make the real binaries: +make clean +./configure \ + --without-x \ + --without-gnome \ + --bindir=/usr/bin \ + --datadir=/usr/share/elvis-$VERSION \ + --docdir=/usr/share/elvis-$VERSION/doc \ + --verbose +make +# And install them: +cat elvis > $PKG/usr/bin/elvis +cat elvtags > $PKG/usr/bin/elvtags +cat ref > $PKG/usr/bin/ref +# Turn off color highlighting by default. I can't imagine editing files like +# that all day... (this coming from the inventor of /etc/(DIR|LS)_COLORS ;-) +cp -a $CWD/elvis.clr* $PKG/usr/share/elvis-$VERSION +chown root:root $PKG/usr/share/elvis-$VERSION/elvis.clr* +( 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 +) +# Install the man pages: +mkdir -p $PKG/usr/man/man1 +( cd doc + cat ctags.man | gzip -9c > $PKG/usr/man/man1/elvtags.1.gz + cat elvfmt.man | gzip -9c > $PKG/usr/man/man1/elvfmt.1.gz + cat elvis.man | gzip -9c > $PKG/usr/man/man1/elvis.1.gz + cat ref.man | gzip -9c > $PKG/usr/man/man1/ref.1.gz +) +cp -a \ + BUGS COPYING INSTALL README.html \ + $PKG/usr/share/elvis-$VERSION +# If this is actually useful for anything, fill me in on what it's for: +rm -f $PKG/usr/share/elvis-$VERSION/tags +rm -f $PKG/usr/share/elvis-$VERSION/doc/*.man +rm -f $PKG/usr/share/elvis-$VERSION/doc/printdoc.bat + +# Add /usr/bin/ex and /usr/bin/vi symlinks. +( cd $PKG/usr/bin ; ln -sf elvis ex ; ln -sf elvis vi ) +mkdir $PKG/usr/doc +( cd $PKG/usr/doc ; ln -sf /usr/share/elvis-$VERSION . ) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/elvis-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/elvis/elvis.clr b/source/a/elvis/elvis.clr new file mode 100644 index 00000000..6b906afa --- /dev/null +++ b/source/a/elvis/elvis.clr @@ -0,0 +1,56 @@ +switch gui +case windows +case x11 { +" color normal black on gray90 +" color argument like keyword green or dark green +" color bottom like normal +" color comment italic dark green or light green +" color cursor blue on navyblue +" color fixed gray35 or gray80 +" color function Red4 or pink +" color guide white +" color hexheading gray70 +" color hlsearch boxed +" color keyword bold +" color libt like keyword italic +" color linenumber gray +" color link like formatted underlined blue or light blue +" color number Blue4 or light blue +" color other like keyword +" color prep bold Blue4 or light blue +" color prepquote like string +" color scroll like tool +" color scrollbar like toolbar +" color selection on tan +" color spell on pink +" color status like tool +" color statusbar like toolbar +" color string tan4 or tan1 +" color tool black on gray75 +" color toolbar white on gray40 +" color variable Gray15 or palegoldenrod +} +case vio +case termcap { +" color normal yellow or black +" color char like string +" color comment italic light green or green +" color fixed white or gray +" color function light cyan or cyan +" color hexheading gray +" color hlsearch bold +" color keyword bold white or black +" color libt like keyword +" color linenumber gray +" color link underlined blue or light cyan +" color number light cyan or blue +" color other like keyword +" color prep bold magenta or blue +" color prepquote like string +" color regexp like string +" color ruler blue or light cyan +" color showmode green boxed +" color spell red or light magenta +" color string white or brown +" color variable like normal +} diff --git a/source/a/elvis/elvis.clr.orig b/source/a/elvis/elvis.clr.orig new file mode 100644 index 00000000..d132c673 --- /dev/null +++ b/source/a/elvis/elvis.clr.orig @@ -0,0 +1,56 @@ +switch gui +case windows +case x11 { + color normal black on gray90 + color argument like keyword green or dark green + color bottom like normal + color comment italic dark green or light green + color cursor blue on navyblue + color fixed gray35 or gray80 + color function Red4 or pink + color guide white + color hexheading gray70 + color hlsearch boxed + color keyword bold + color libt like keyword italic + color linenumber gray + color link like formatted underlined blue or light blue + color number Blue4 or light blue + color other like keyword + color prep bold Blue4 or light blue + color prepquote like string + color scroll like tool + color scrollbar like toolbar + color selection on tan + color spell on pink + color status like tool + color statusbar like toolbar + color string tan4 or tan1 + color tool black on gray75 + color toolbar white on gray40 + color variable Gray15 or palegoldenrod +} +case vio +case termcap { + color normal yellow or black + color char like string + color comment italic light green or green + color fixed white or gray + color function light cyan or cyan + color hexheading gray + color hlsearch bold + color keyword bold white or black + color libt like keyword + color linenumber gray + color link underlined blue or light cyan + color number light cyan or blue + color other like keyword + color prep bold magenta or blue + color prepquote like string + color regexp like string + color ruler blue or light cyan + color showmode green boxed + color spell red or light magenta + color string white or brown + color variable like normal +} diff --git a/source/a/elvis/slack-desc b/source/a/elvis/slack-desc new file mode 100644 index 00000000..f60d350d --- /dev/null +++ b/source/a/elvis/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------------------------------------------------------| +elvis: elvis (text editor) +elvis: +elvis: Elvis is a text editor. It is intended to be a modern replacement +elvis: for the classic ex/vi editor of UNIX fame. Elvis supports many new +elvis: features, including multiple edit buffers, multiple windows, and a +elvis: variety of display modes. +elvis: +elvis: As elvis is Slackware's default vi, this is a required package. +elvis: +elvis: +elvis: diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild new file mode 100755 index 00000000..6c708883 --- /dev/null +++ b/source/a/etc/etc.SlackBuild @@ -0,0 +1,50 @@ +#!/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. + +VERSION=13.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-etc +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_etc.tar.gz +# Fix for ARCH: +sed -i -e "s#/i486-slackware-linux#/${ARCH}-slackware-linux#" etc/ld.so.conf.new +cp -a $CWD/termcap-BSD.gz etc/termcap-BSD.gz +gzip -d --force etc/termcap-BSD.gz +chown root:root etc/termcap-BSD +chmod 644 etc/termcap-BSD +zcat $CWD/nsswitch.conf.gz > $PKG/etc/nsswitch.conf.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/etc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/etc/nsswitch.conf b/source/a/etc/nsswitch.conf new file mode 100644 index 00000000..3d993afc --- /dev/null +++ b/source/a/etc/nsswitch.conf @@ -0,0 +1,42 @@ +# +# /etc/nsswitch.conf +# +# An example Name Service Switch config file. 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 nis +# shadow: files nis +# group: files nis + +passwd: compat +group: compat + +hosts: files dns +networks: files + +services: files +protocols: files +rpc: files +ethers: files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files + diff --git a/source/a/etc/slack-desc b/source/a/etc/slack-desc new file mode 100644 index 00000000..9d9d9bbd --- /dev/null +++ b/source/a/etc/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------------------------------------------------------| +etc: etc (system configuration files) +etc: +etc: System configuration files. The /etc directory is traditionally the +etc: location where configuration files are found. +etc: +etc: +etc: +etc: +etc: +etc: +etc: diff --git a/source/a/etc/termcap-BSD b/source/a/etc/termcap-BSD new file mode 100644 index 00000000..01094d60 --- /dev/null +++ b/source/a/etc/termcap-BSD @@ -0,0 +1,16470 @@ +######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE +# +# Version 11.0.1 +# $Date: 2000/03/02 15:51:11 $ +# termcap syntax +# +# Eric S. Raymond (current maintainer) +# John Kunze, Berkeley +# Craig Leres, Berkeley +# +# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu +# address is no longer valid. The latest version can always be found at +# <http://www.tuxedo.org/terminfo>. +# +# PURPOSE OF THIS FILE: +# +# This file describes the capabilities of various character-cell terminals, +# as needed by software such as screen-oriented editors. +# +# Other terminfo and termcap files exist, supported by various OS vendors +# or as relics of various older versions of UNIX. This one is the longest +# and most comprehensive one in existence. It subsumes not only the entirety +# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL +# termcap file, but also large numbers of vendor-maintained termcap and +# terminfo entries more complete and carefully tested than those in historical +# termcap/terminfo versions. +# +# Pointers to related resources (including the ncurses distribution) may +# be found at <http://www.tuxedo.org/terminfo>. +# +# INTERNATIONALIZATION: +# +# This file uses only the US-ASCII character set (no ISO8859 characters). +# +# This file assumes a US-ASCII character set. If you need to fix this, start +# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers +# for your character set. \E(A and \E)A enables the British character set +# with the pound sign at position 2/3. +# +# In a Japanese-processing environment using EUC/Japanese or Shift-JIS, +# C1 characters are considered the first-byte set of the Japanese encodings, +# so \E)0 should be avoided in <enacs> and initialization strings. +# +# FILE FORMAT: +# +# The version you are looking at may be in any of three formats: master +# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell +# which by the format given in the header above. +# +# The master format is accepted and generated by the terminfo tools in the +# ncurses suite; it differs from stock (System V-compatible) terminfo only +# in that it admits a group of capabilities (prefixed `OT') equivalent to +# various obsolete termcap capabilities. You can, thus, convert from master +# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if +# you have ncurses `tic -I' is nicer (among other things, it automatically +# outputs entries in a canonical form). +# +# The termcap version is generated automatically from the master version +# using tic -C. This filtering leaves in the OT capabilities under their +# original termcap names. All translated entries fit within the 1023-byte +# string-table limit of archaic termcap libraries except where explicitly +# noted below. Note that the termcap translation assumes that your termcap +# library can handle multiple tc capabilities in an entry. 4.4BSD has this +# capability. Older versions of GNU termcap, through 1.3, do not. +# +# For details on these formats, see terminfo(5) in the ncurses distribution, +# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD +# curses has been declared obsolete by the caretakers of the 4.4BSD sources +# as of June 1995; they are encouraging everyone to migrate to ncurses. +# +# Note: unlike some other distributed terminfo files (Novell Unix & SCO's), +# no entry in this file has embedded comments. This is so source translation +# to termcap only has to carry over leading comments. Also, no name field +# contains embedded whitespace (such whitespace confuses rdist). +# +# Further note: older versions of this file were often installed with an editor +# script (reorder) that moved the most common terminal types to the front of +# the file. This should no longer be necessary, as the file is now ordered +# roughly by type frequency with ANSI/VT100 and other common types up front. +# +# Some information has been merged in from terminfo files distributed by +# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information +# comes from vendors who maintain official terminfos for their hardware +# (notably DEC and Wyse). +# +# A detailed change history is included at the end of this file. +# +# FILE ORGANIZATION: +# +# Comments in this file begin with # - they cannot appear in the middle +# of a terminfo/termcap entry (this feature had to be sacrificed in order +# to allow standard terminfo and termcap syntax to be generated cleanly from +# the master format). Individual capabilities are commented out by +# placing a period between the colon and the capability name. +# +# The file is divided up into major sections (headed by lines beginning with +# the string "########") and minor sections (beginning with "####"); do +# +# grep "^####" <file> | more +# +# to see a listing of section headings. The intent of the divisions is +# (a) to make it easier to find things, and (b) to order the database so +# that important and frequently-encountered terminal types are near the +# front (so that you'll get reasonable search efficiency from a linear +# search of the termcap form even if you don't use reorder). Minor sections +# usually correspond to manufacturers or standard terminal classes. +# Parenthesized words following manufacturer names are type prefixes or +# product line names used by that manufacturers. +# +# HOW TO READ THE ENTRIES: +# +# The first name in an entry is the canonical name for the model or +# type, last entry is a verbose description. Others are mnemonic synonyms for +# the terminal. +# +# Terminal names look like <manufacturer> <model> - <modes/options> +# The part to the left of the dash, if a dash is present, describes the +# particular hardware of the terminal. The part to the right may be used +# for flags indicating special ROMs, extra memory, particular terminal modes, +# or user preferences. +# +# All names should be in lower case, for consistency in typing. +# +# The following are conventionally used suffixes: +# -2p Has two pages of memory. Likewise 4p, 8p, etc. +# -am Enable auto-margin. +# -m Monochrome. Suppress color support +# -mc Magic-cookie. Some terminals (notably older Wyses) can +# only support one attribute without magic-cookie lossage. +# Their base entry is usually paired with another that +# uses magic cookies to support multiple attributes. +# -nam No auto-margin - suppress :am: capability +# -nl No labels - suppress soft labels +# -ns No status line - suppress status line +# -rv Terminal in reverse video mode (black on white) +# -s Enable status line. +# -vb Use visible bell (:vb:) rather than :bl:. +# -w Wide - in 132 column mode. +# If a name has multiple suffixes and one is a line height, that one should +# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'. +# +# Entries with embedded plus signs are designed to be included through use/tc +# capabilities, not used as standalone entries. +# +# To avoid search clashes, some older all-numeric names for terminals have +# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621). +# All primary names of terminals now have alphanumeric prefixes. +# +# Comments marked "esr" are mostly results of applying the termcap-compiler +# code packaged with ncurses and contemplating the resulting error messages. +# In many cases, these indicated obvious fixes to syntax garbled by the +# composers. In a few cases, I was able to deduce corrected forms for garbled +# capabilities by looking at context. All the information in the original +# entries is preserved in the comments. +# +# In the comments, terminfo capability names are bracketed with <> (angle +# brackets). Termcap capability names are bracketed with :: (colons). +# +# INTERPRETATION OF USER CAPABILITIES +# +# The System V Release 4 and XPG4 terminfo format defines ten string +# capabilities for use by applications, <u0>...<u9>. In this file, we use +# certain of these capabilities to describe functions which are not covered +# by terminfo. The mapping is as follows: +# +# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA) +# u8 terminal answerback description +# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6) +# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR) +# +# The terminal enquire string <u9> should elicit an answerback response +# from the terminal. Common values for <u9> will be ^E (on older ASCII +# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals). +# +# The cursor position request (<u7>) string should elicit a cursor position +# report. A typical value (for VT100 terminals) is \E[6n. +# +# The terminal answerback description (u8) must consist of an expected +# answerback string. The string may contain the following scanf(3)-like +# escapes: +# +# %c Accept any character +# %[...] Accept any number of characters in the given set +# +# The cursor position report (<u6>) string must contain two scanf(3)-style +# %d format elements. The first of these must correspond to the Y coordinate +# and the second to the %d. If the string contains the sequence %i, it is +# taken as an instruction to decrement each value after reading it (this is +# the inverse sense from the cup string). The typical CPR value is +# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals). +# +# These capabilities are used by tac(1m), the terminfo action checker +# (distributed with ncurses 5.0). +# +# TABSET FILES +# +# All the entries in this file have been edited to assume that the tabset +# files directory is /usr/share/tabset, in conformance with the File Hierarchy +# Standard for Linux and open-source BSD systems. Some vendors (notably Sun) +# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset. +# +# No curses package we know of actually uses these files. If their location +# is an issue, you will have to hand-patch the file locations before compiling +# this file. +# +# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL +# +# As the ANSI/ECMA-48 standard and variants take firmer hold, and as +# character-cell terminals are increasingly replaced by X displays, much of +# this file is becoming a historical document (this is part of the reason for +# the new organization, which puts ANSI types, xterm, Unix consoles, +# and vt100 up front in confidence that this will catch 95% of new hardware). +# +# For the terminal types still alive, I'd like to have manufacturer's +# contact data (Internet address and/or snail-mail + phone). +# +# I'm also interested in enriching the comments so that the latter portions of +# the file do in fact become a potted history of VDT technology as seen by +# UNIX hackers. Ideally, I'd like the headers for each manufacturer to +# include its live/dead/out-of-the-business status, and for as many +# terminal types as possible to be tagged with information like years +# of heaviest use, popularity, and interesting features. +# +# I'm especially interested in identifying the obscure entries listed under +# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal +# wisdom about them gets lost. If you know a lot about obscure old terminals, +# please go to the terminfo resource page, grab the UFO file (ufo.ti), and +# eyeball it for things you can identify and describe. +# +# If you have been around long enough to contribute, please read the file +# with this in mind and send me your annotations. +# +# COPYRIGHTS AND OTHER DELUSIONS +# +# The BSD ancestor of this file had a standard Regents of the University of +# California copyright with dates from 1980 to 1993. +# +# Some information has been merged in from a terminfo file SCO distributes. +# It has an obnoxious boilerplate copyright which I'm ignoring because they +# took so much of the content from the ancestral BSD versions of this file +# and didn't attribute it, thereby violating the BSD Regents' copyright. +# +# Not that anyone should care. However many valid functions copyrights may +# serve, putting one on a termcap/terminfo file with hundreds of anonymous +# contributors makes about as much sense as copyrighting a wall-full of +# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous. +# +# This file deliberately has no copyright. It belongs to no one and everyone. +# If you claim you own it, you will merely succeed in looking like a fool. +# Use it as you like. Use it at your own risk. Copy and redistribute freely. +# There are no guarantees anywhere. Svaha! +# + +######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES +# +# This section describes terminal classes and brands that are still +# quite common. +# + +#### Specials +# +# Special "terminals". These are used to label tty lines when you don't +# know what kind of terminal is on it. The characteristics of an unknown +# terminal are the lowest common denominator - they look about like a ti 700. +# + +dumb|80-column dumb tty:\ + :am:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:sf=^J: +unknown|unknown terminal type:\ + :gn:tc=dumb: +lpr|printer|line printer:\ + :bs:hc:os:\ + :co#132:li#66:\ + :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J: +glasstty|classic glass tty interpreting ASCII control characters:\ + :am:bs:\ + :co#80:\ + :bl=^G:cl=^L:cr=^M:do=^J:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I: +vanilla:\ + :bs:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities +# +# See the end-of-file comment for more on these. +# + +# ANSI capabilities are broken up into pieces, so that a terminal +# implementing some ANSI subset can use many of them. +ansi+local1:\ + :do=\E[B:le=\E[D:nd=\E[C:up=\E[A: +ansi+local:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:tc=ansi+local1: +ansi+tabs:\ + :bt=\E[Z:ct=\E[2g:st=\EH:ta=^I: +ansi+inittabs:\ + :it#8:tc=ansi+tabs: +ansi+erase:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J: +ansi+rca:\ + :ch=\E[%+^AG:cv=\E[%+^Ad: +ansi+cup:\ + :cm=\E[%i%d;%dH:ho=\E[H: +ansi+rep:\ + :..rp=%p1%c\E[%p2%{1}%-%db: +ansi+idl1:\ + :al=\E[L:dl=\E[M: +ansi+idl:\ + :AL=\E[%dL:DL=\E[%dM:tc=ansi+idl1: +ansi+idc:\ + :IC=\E[%d@:dc=\E[P:ei=\E6:ic=\E[@:im=\E6: +ansi+arrows:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A: +ansi+sgr|ansi graphic renditions:\ + :mb=\E[5m:me=\E[0m:mk=\E[8m:mr=\E[7m: +ansi+sgrso|ansi standout only:\ + :se=\E[m:so=\E[7m: +ansi+sgrul|ansi underline only:\ + :ue=\E[m:us=\E[4m: +ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim:\ + :md=\E[1m:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul: +ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold:\ + :mh=\E[2m:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul: +ansi+pp|ansi printer port:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i: +ansi+csr|ansi scroll-region plus cursor save & restore:\ + :cs=\E[%i%d;%dr:rc=\E8:sc=\E7: + +# The IBM PC alternate character set. Plug this into any Intel console entry. +# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the +# ROM graphics for control characters such as the diamond, up- and down-arrow. +# This works with the System V, Linux, and BSDI consoles. It's a safe bet this +# will work with any Intel console, they all seem to have inherited \E[11m +# from the ANSI.SYS de-facto standard. +klone+acs|alternate character set for ansi.sys displays:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :ae=\E[10m:as=\E[11m: + +# Highlight controls corresponding to the ANSI.SYS standard. Most +# console drivers for Intel boxes obey these. Makes the same assumption +# about \E[11m as klone+acs. True ANSI/ECMA-48 would have :se=\E[27m:, +# :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS. +klone+sgr|attribute control for ansi.sys displays:\ + :S2=\E[11m:S3=\E[10m:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mk=\E[8m:mr=\E[7m:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\ + :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=klone+acs: + +# Highlight controls corresponding to the ANSI.SYS standard. *All* +# console drivers for Intel boxes obey these. Does not assume \E[11m will +# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS +# diamond and arrow characters under curses. +klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m):\ + :as=\E[12m:mb=\E[5m:md=\E[1m:me=\E[0;10m:mk=\E[8m:\ + :mr=\E[7m:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m:\ + :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=klone+acs: + +# KOI8-R (RFC1489) acs (alternate character set) +# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996. +klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset:\ + :ac=+\020\054\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225:\ + :ae=\E[10m:as=\E[11m: + +# ANSI.SYS color control. The setab/setaf caps depend on the coincidence +# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer +# but equivalent strings that don't rely on that coincidence: +# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard. +# They match a subset of ECMA-48. +klone+color|color control for ansi.sys and ISO6429-compatible displays:\ + :Co#8:NC#3:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[37;40m: + +# This is better than klone+color, it doesn't assume white-on-black as the +# default color pair, but many `ANSI' terminals don't grok the <op> cap. +ecma+color|color control for ECMA-48-compatible terminals:\ + :Co#8:NC#3:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[39;49m: + +# Attribute control for ECMA-48-compatible terminals +ecma+sgr|attribute capabilities for true ECMA-48 terminals:\ + :se=\E[27m:ue=\E[24m:\ + :tc=klone+sgr: + +# For comparison, here are all the capabilities implied by the Intel +# Binary Compatibility Standard (level 2) that fit within terminfo. +# For more detail on this rather pathetic standard, see the comments +# near the end of this file. +ibcs2|Intel Binary Compatibility Standard prescriptions:\ + :AL=\E[%dL:DC=\E[%dP:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RA=\E[?7l:RI=\E[%dC:S1=\E=%p1%dg:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:bt=\E[Z:ch=\E[%i%dG:cl=\Ec:\ + :cm=\E[%i%d;%dH:ct=\E[g:cv=\E[%i%dd:ec=\E[%dX:ei=:im=:\ + :rc=\E7:sc=\E7:st=\EH: + +#### ANSI/ECMA-48 terminals and terminal emulators +# +# See near the end of this file for details on ANSI conformance. +# Don't mess with these entries! Lots of other entries depend on them! +# +# This section lists entries in a least-capable to most-capable order. +# if you're in doubt about what `ANSI' matches yours, try them in that +# order and back off from the first that breaks. + +# ansi-mr is for ANSI terminals with ONLY relative cursor addressing +# and more than one page of memory. It uses local motions instead of +# direct cursor addressing, and makes almost no assumptions. It does +# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen. +ansi-mr|mem rel cup ansi:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1: + +# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but +# beware of screen size problems and memory relative cursor addressing. +ansi-mini|minimum ansi standard terminal:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase: + +# ansi-mtabs adds relative addressing and minimal tab support +ansi-mtabs|any ansi terminal with pessimistic assumptions:\ + :it#8:\ + :ta=^I:tc=ansi+local1:tc=ansi-mini: + +# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL +# +# The following is an entry for the full ANSI 3.64 (1977). It lacks +# padding, but most terminals using the standard are "fast" enough +# not to require any -- even at 9600 bps. If you encounter problems, +# try including the padding specifications. +# +# Note: the :as: and :ae: specifications are not implemented here, for +# the available termcap documentation does not make clear WHICH alternate +# character set to specify. ANSI 3.64 seems to make allowances for several. +# Please make the appropriate adjustments to fit your needs -- that is +# if you will be using alternate character sets. +# +# There are very few terminals running the full ANSI 3.64 standard, +# so I could only test this entry on one verified terminal (Visual 102). +# I would appreciate the results on other terminals sent to me. +# +# Please report comments, changes, and problems to: +# +# U.S. MAIL: Hugh Hansard +# Box: 22830 +# Emory University +# Atlanta, GA. 30322. +# +# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh. +# +# (Added vt100 :rc:,:sc: to quiet a tic warning --esr) +ansi77|ansi 3.64 standard 1977 version:\ + :am:bs:mi:\ + :co#80:it#8:li#24:\ + :al=5*\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=5*\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOR:k4=\EOS:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +# Procomm and some other ANSI emulations don't recognize all of the ANSI- +# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and +# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:, +# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to +# 5.03 doesn't recognize these. Finally, we delete :rp: and :sr:, which seem +# to confuse many emulators. On the other hand, we can count on these programs +# doing :ae:/:as:/:sa:. Older versions of this entry featured +# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under +# ANSI.SYS influence. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995 +pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode):\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ho=\E[H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:nd=\E[C:sf=^J:st=\EH:ta=^I:up=\E[A:\ + :tc=klone+sgr-dumb: +pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode):\ + :li#25:tc=pcansi-m: +pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode):\ + :li#33:tc=pcansi-m: +pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode):\ + :li#43:tc=pcansi-m: +# The color versions. All PC emulators do color... +pcansi|ibm-pc terminal programs claiming to be ansi:\ + :tc=klone+color:tc=pcansi-m: +pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines:\ + :li#25:tc=pcansi: +pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines:\ + :li#33:tc=pcansi: +pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines:\ + :li#43:tc=pcansi: + +# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color. +# If you want pound signs rather than dollars, replace `B' with `A' +# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995 +ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes:\ + :5i:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :cb=\E[1K:ch=\E[%i%dG:ct=\E[2g:cv=\E[%i%dd:ec=\E[%dX:ei=:\ + :im=:kB=\E[Z:kI=\E[L:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\ + :nw=\r\E[S:pf=\E[4i:po=\E[5i:..rp=%p1%c\E[%p2%{1}%-%db:\ + :s0=\E(B:s1=\E)B:s2=\E*B:s3=\E+B:ta=\E[I:\ + :tc=pcansi-m: + +# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in +# standard terminfo. Assumes ANSI.SYS-compatible attributes and color. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995 +ansi|ansi/pc-term compatible with color:\ + :u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\ + :u9=\E[c:\ + :tc=ecma+color:tc=klone+sgr:tc=ansi-m: + +# ansi-generic is a vanilla ANSI terminal. This is assumed to implement +# all the normal ANSI stuff with no extensions. It assumes +# insert/delete line/char is there, so it won't work with +# vt100 clones. It assumes video attributes for bold, blink, +# underline, and reverse, which won't matter much if the terminal +# can't do some of those. Padding is assumed to be zero, which +# shouldn't hurt since xon/xoff is assumed. +ansi-generic|generic ansi standard terminal:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+csr:tc=ansi+cup:\ + :tc=ansi+rca:tc=ansi+erase:tc=ansi+tabs:tc=ansi+local:\ + :tc=ansi+idc:tc=ansi+idl:tc=ansi+rep:tc=ansi+sgrbold:\ + :tc=ansi+arrows: + +#### Linux consoles +# + +# This entry is good for the 1.2.13 or later version of the Linux console. +# +# *************************************************************************** +# * * +# * WARNING: * +# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * +# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * +# * character. Here are the keymap replacement lines that will set this up: * +# * * +# keycode 15 = Tab Tab +# alt keycode 15 = Meta_Tab +# shift keycode 15 = F26 +# string F26 ="\033[Z" +# * * +# * This has to use a key slot which is unfortunate (any unused one will * +# * do, F26 is the higher-numbered one). The change ought to be built * +# * into the kernel tables. * +# * * +# *************************************************************************** +# +# The 1.3.x kernels add color-change capabilities; if yours doesn't have this +# and it matters, turn off <ccc>. The %02x escape used to implement this is +# not back-portable to SV curses and not supported in ncurses versions before +# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size +# themselves; this entry assumes that capability. +# +# This entry is good for the 1.2.13 or later version of the Linux console. +# +# *************************************************************************** +# * * +# * WARNING: * +# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * +# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * +# * character. Here are the keymap replacement lines that will set this up: * +# * * +# keycode 15 = Tab Tab +# alt keycode 15 = Meta_Tab +# shift keycode 15 = F26 +# string F26 ="\033[Z" +# * * +# * This has to use a key slot which is unfortunate (any unused one will * +# * do, F26 is the higher-numbered one). The change ought to be built * +# * into the kernel tables. * +# * * +# *************************************************************************** +# +# The 1.3.x kernels add color-change capabilities; if yours doesn't have this +# and it matters, turn off <ccc>. The %02x escape used to implement this is +# not back-portable to SV curses and not supported in ncurses versions before +# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size +# themselves; this entry assumes that capability. +# +# The 2.2.x kernels add a private mode that sets the cursor type; use that to +# get a block cursor for cvvis. +# reported by Frank Heckenbach <frank@g-n-u.de>. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +linux|linux console:\ + :am:eo:mi:ms:xn:xo:\ + :it#8:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:K2=\E[G:al=\E[L:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[[A:k2=\E[[B:\ + :k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\ + :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\ + :sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h\E[?0c:vi=\E[?25l\E[?1c:\ + :vs=\E[?25h\E[?8c:\ + :tc=klone+sgr:tc=ecma+color: +linux-m|Linux console no color:\ + :Co@:pa@:\ + :AB@:AF@:Sb@:Sf@:tc=linux: +linux-c-nc|linux console 1.3.x hack for ncurses only:\ + :cc:\ + :..Ic=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x:\ + :oc=\E]R:\ + :tc=linux: +# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996 +linux-c|linux console 1.3.6+ with private palette for each virtual console:\ + :cc:\ + :Co#8:pa#64:\ + :..Ic=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p3%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p4%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;:\ + :oc=\E]R:\ + :tc=linux: + +# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +linux-nic|linux with ich/ich1 suppressed for non-curses programs:\ + :IC@:ei=:ic@:im=:\ + :tc=linux: + +# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts. +# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997. +linux-koi8|linux with koi8 alternate character set:\ + :ac=+\020\054\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224:tc=linux:\ + :tc=klone+koi8acs: + +# Another entry for KOI8-r with Qing Long's acsc. +# (which one better complies with the standard?) +linux-koi8r|linux with koi8-r alternate character set:\ + :tc=linux:tc=klone+koi8acs: + +# Entry for the latin1 and latin2 fonts +linux-lat|linux with latin1 or latin2 alternate character set:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376:\ + :tc=linux: + +#### NetBSD consoles +# +# pcvt termcap database entries (corresponding to release 3.31) +# Author's last edit-date: [Fri Sep 15 20:29:10 1995] +# +# (For the terminfo master file, I translated these into terminfo syntax. +# Then I dropped all the pseudo-HP entries. we don't want and can't use +# the :Xs: flag. Then I split :is: into a size-independent :i1: and a +# size-dependent :is:. Finally, I added <rmam>/<smam> -- esr) + +# NOTE: :ic: has been taken out of this entry. for reference, it should +# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below. +# (esr: added :vi: and :ve: to resolve NetBSD Problem Report #4583) +pcvtXX|pcvt vt200 emulator (DEC VT220):\ + :am:km:mi:ms:xn:\ + :it#8:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:im=\E[4h:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :r1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\ + :ve=\E[?25h:vi=\E[?25l: + +# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries; 80 columns +pcvt25|dec vt220 emulation with 25 lines:\ + :co#80:li#25:\ + :is=\E[1;25r\E[25;1H:tc=pcvtXX: +pcvt28|dec vt220 emulation with 28 lines:\ + :co#80:li#28:\ + :is=\E[1;28r\E[28;1H:tc=pcvtXX: +pcvt35|dec vt220 emulation with 35 lines:\ + :co#80:li#35:\ + :is=\E[1;35r\E[35;1H:tc=pcvtXX: +pcvt40|dec vt220 emulation with 40 lines:\ + :co#80:li#40:\ + :is=\E[1;40r\E[40;1H:tc=pcvtXX: +pcvt43|dec vt220 emulation with 43 lines:\ + :co#80:li#43:\ + :is=\E[1;43r\E[43;1H:tc=pcvtXX: +pcvt50|dec vt220 emulation with 50 lines:\ + :co#80:li#50:\ + :is=\E[1;50r\E[50;1H:tc=pcvtXX: + +# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries; 132 columns +pcvt25w|dec vt220 emulation with 25 lines and 132 cols:\ + :co#132:li#25:\ + :is=\E[1;25r\E[25;1H:tc=pcvtXX: +pcvt28w|dec vt220 emulation with 28 lines and 132 cols:\ + :co#132:li#28:\ + :is=\E[1;28r\E[28;1H:tc=pcvtXX: +pcvt35w|dec vt220 emulation with 35 lines and 132 cols:\ + :co#132:li#35:\ + :is=\E[1;35r\E[35;1H:tc=pcvtXX: +pcvt40w|dec vt220 emulation with 40 lines and 132 cols:\ + :co#132:li#40:\ + :is=\E[1;40r\E[40;1H:tc=pcvtXX: +pcvt43w|dec vt220 emulation with 43 lines and 132 cols:\ + :co#132:li#43:\ + :is=\E[1;43r\E[43;1H:tc=pcvtXX: +pcvt50w|dec vt220 emulation with 50 lines and 132 cols:\ + :co#132:li#50:\ + :is=\E[1;50r\E[50;1H:tc=pcvtXX: + +# Terminfo entries to enable the use of the ncurses library in colour on a +# NetBSD-arm32 console (only tested on a RiscPC). +# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98 +# modified codes for setf/setb to setaf/setab, then to klone+color, corrected +# typo in invis - TD +arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480):\ + :am:ms:ut:xn:xo:\ + :co#80:it#8:li#30:\ + :@8=\E[M:DO=\E[%dB:K1=\E[q:K2=\E[r:K3=\E[s:K4=\E[p:K5=\E[n:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\E[y:k1=\E[P:k2=\E[Q:k3=\E[R:\ + :k4=\E[S:k5=\E[t:k6=\E[u:k7=\E[v:k8=\E[l:k9=\E[w:k;=\E[x:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mk=\E[8m:\ + :mr=\E[6m:nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m:\ + :tc=ecma+sgr:tc=klone+color: +arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768):\ + :co#132:li#50:tc=arm100: + +# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine +# manufactured by Sharp for the Japenese market. +# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996 +x68k|x68k-ite|NetBSD/x68k ITE:\ + :co#96:li#32:\ + :%1=\E[28~:kC=\E[9~:tc=vt220: + +# <tv@pobox.com>: +# Entry for the DNARD OpenFirmware console, close to ANSI but not quite. +# +# (still unfinished, but good enough so far.) +ofcons:\ + :bw:\ + :co#80:li#30:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :LE=\233%dD:RI=\233%dC:UP=\233%dA:al=\233L:bl=^G:cd=\233J:\ + :ce=\233K:cl=^L:cm=\233%i%d;%dH:cr=^M:dc=\233P:dl=\233M:\ + :do=\233B:ei=:ic=\233@:im=:k1=\2330P:k2=\2330Q:k3=\2330W:\ + :k4=\2330x:k5=\2330t:k6=\2330u:k7=\2330q:k8=\2330r:\ + :k9=\2330p:k;=\2330M:kD=\233P:kN=\233/:kP=\233?:kb=^H:\ + :kd=\233B:kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\ + :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\ + :nd=\233C:nw=^M^J:se=\2330m:sf=^J:ta=^I:ue=\2330m:up=\233A:\ + :vb=^G: + +# NetBSD "wscons" emulator in vt220 mode +# These are micro-minimal and probably need to be redone for real +# after the manner of the pcvt entries. +wsvt25|NetBSD wscons in 25 line DEC VT220 mode:\ + :co#80:li#25:tc=vt220: + +wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta:\ + :km:\ + :co#80:li#25:tc=vt220: + +# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and +# DECstation/pmax. +rcons|BSD rasterconsole:\ + :tc=sun-il: +# Color version of above. Color currenly only provided by NetBSD. +rcons-color|BSD rasterconsole with ANSI color:\ + :ut:\ + :Co#8:pa#64:\ + :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:tc=rcons: + +#### FreeBSD console entries +# +# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996 +# Andrey Chernov maintains the FreeBSD termcap distributions. +# +# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade +# or comment out the :cb: capability in the console entry. +# +# Alexander Lukyanov reports: +# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there. +# Now el1 clears not only to the line beginning, but also a large chunk +# of previous line. But there is another bug - ech does not work at all. +# + +# for syscons +# common entry without semigraphics +# Bug: The <op> capability resets attributes. +# Bug? The ech and el1 attributes appear to move the cursor in some cases; for +# instance el1 does if the cursor is moved to the right margin first. Removed +# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K) +# +# Setting colors turns off reverse; we cannot guarantee order, so use ncv. +# Note that this disables standout with color. +cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode):\ + :NP:am:bw:eo:ms:ut:\ + :Co#8:NC#21:co#80:it#8:li#25:pa#64:\ + :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:DC=\E[%dP:\ + :DL=\E[%dM:DO=\E[%dB:F1=\E[W:F2=\E[X:IC=\E[%d@:K2=\E[E:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cv=\E[%i%dd:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:\ + :k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ + :k;=\E[V:kB=\E[Z:kD=\177:kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mh=\E[30;1m:mr=\E[7m:nd=\E[C:nw=\E[E:\ + :op=\E[x:r1=\E[x\E[m\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\ + :ta=^I:up=\E[A:ve=\E[=0C:vs=\E[=1C: +cons25|ansis|ansi80x25|freebsd console (25-line ansi mode):\ + :ac=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode):\ + :Co@:pa@:\ + :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25: +cons30|ansi80x30|freebsd console (30-line ansi mode):\ + :li#30:tc=cons25: +cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode):\ + :li#30:tc=cons25-m: +cons43|ansi80x43|freebsd console (43-line ansi mode):\ + :li#43:tc=cons25: +cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode):\ + :li#43:tc=cons25-m: +cons50|ansil|ansi80x50|freebsd console (50-line ansi mode):\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode):\ + :li#50:tc=cons25-m: +cons60|ansi80x60|freebsd console (60-line ansi mode):\ + :li#60:tc=cons25: +cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode):\ + :li#60:tc=cons25-m: +cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic:\ + :ac=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225:\ + :tc=cons25w: +cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono):\ + :Co@:pa@:\ + :AB@:AF@:op@:ue=\E[m:us=\E[4m:tc=cons25r: +cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines):\ + :li#50:tc=cons25r: +cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono):\ + :li#50:tc=cons25r-m: +cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines):\ + :li#60:tc=cons25r: +cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono):\ + :li#60:tc=cons25r-m: +# ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars:\ + :ac=+\253\054\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237:\ + :tc=cons25w: +cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono):\ + :Co@:pa@:\ + :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25l1: +cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines):\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono):\ + :li#50:tc=cons25l1-m: +cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines):\ + :li#60:tc=cons25l1: +cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono):\ + :li#60:tc=cons25l1-m: + +#### 386BSD and BSD/OS Consoles +# + +# This was the original 386BSD console entry (I think). +# Some places it's named oldpc3|oldibmpc3. +# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu> +origpc3|origibmpc3|IBM PC 386BSD Console:\ + :am:bw:eo:xo:\ + :co#80:li#25:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\ + :kd=\E[B:kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[7m:\ + :me=\E[m\E[1;0x\E[2;7x:nd=\E[C:se=\E[1;0x\E[2;7x:\ + :sf=\E[S:so=\E[1;7x\E[2;0x:sr=\E[T:ue=\E[1;0x\E[2;7x:\ + :up=\E[A:us=\E[1;7x\E[2;0x: + +# description of BSD/386 console emulator in version 1.0 (supplied by BSDI) +oldpc3|oldibmpc3|old IBM PC BSD/386 Console:\ + :km:\ + :li#25:\ + :al=\E[L:bl=^G:cr=^M:dl=\E[M:do=^J:kH=\E[F:kI=\E[L:kN=\E[G:\ + :kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :md=\E[=15F:me=\E[=R:mh=\E[=8F:nw=^M^J:sf=^J:ta=^I: + +# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1 +# Note, the emulator supports many of the additional console features +# listed in the iBCS2 (e.g. character-set selection) though not all +# are described here. This entry really ought to be upgraded. +# Also note, the console will also work with fewer lines after doing +# "stty rows NN", e.g. to use 24 lines. +# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) +# Bug: The <op> capability resets attributes. +bsdos-pc-nobold|BSD/OS PC console w/o bold:\ + :am:eo:km:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\ + :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:kH=\E[F:\ + :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:rc=\E8:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\ + :sc=\E7:sf=^J:ta=^I:up=\E[A:\ + :tc=klone+sgr:tc=klone+color: +bsdos-pc|IBM PC BSD/OS Console:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:tc=bsdos-pc-nobold: + +# Old names for BSD/OS PC console used in releases before 4.1. +pc3|BSD/OS on the PC Console:\ + :tc=bsdos-pc-nobold: +ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\ + :tc=bsdos-pc: + +# BSD/OS on the SPARC +bsdos-sparc|Sun SPARC BSD/OS Console:\ + :tc=sun: + +# BSD/OS on the PowerPC +bsdos-ppc|PowerPC BSD/OS Console:\ + :tc=bsdos-pc: + +#### DEC VT100 and compatibles +# +# DEC terminals from the vt100 forward are collected here. Older DEC terminals +# and micro consoles can be found in the `obsolete' section. More details on +# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be +# found near the end of this file. +# +# Except where noted, these entries are DEC's official terminfos. +# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support +# Engineering for more information. Updated terminfos and termcaps +# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. +# +# In October 1995 DEC sold its terminals business, including the VT and Dorio +# line and trademark, to SunRiver Data Systems. SunRiver has since changed +# its name to Boundless Technologies; see http://www.boundless.com. +# + +# NOTE: Any VT100 emulation, whether in hardware or software, almost +# certainly includes what DEC called the `Level 1 editing extension' codes; +# only the very oldest VT100s lacked these and there probably aren't any of +# those left alive. To capture these, use one of the VT102 entries. +# +# Note that the :xn: glitch in vt100 is not quite the same as on the Concept, +# since the cursor is left in a different position while in the +# weird state (concept at beginning of next line, vt100 at end +# of this line) so all versions of vi before 3.7 don't handle +# :xn: right on vt100. The correct way to handle :xn: is when +# you output the char in column 80, immediately output CR LF +# and then assume you are in column 1 of the next line. If :xn: +# is on, am should be on too. +# +# I assume you have smooth scroll off or are at a slow enough baud +# rate that it doesn't matter (1200? or less). Also this assumes +# that you set auto-nl to "on", if you set it off use vt100-nam +# below. +# +# The padding requirements listed here are guesses. It is strongly +# recommended that xon/xoff be enabled, as this is assumed here. +# +# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the +# tab settings are in non-volatile memory and don't need to be +# reset upon login. Also setting the number of columns glitches +# the screen annoyingly. You can type "reset" to get them set. +# +# The VT100 series terminals have cursor ("arrows") keys which can operate +# in two different modes: Cursor Mode and Application Mode. Cursor Mode +# is the reset state, and is assumed to be the normal state. Application +# Mode is the "set" state. In Cursor Mode, the cursor keys transmit +# "Esc [ {code}" sequences, conforming to ANSI standards. In Application +# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode +# was provided primarily as an aid to the porting of VT52 applications. It is +# assumed that the cursor keys are normally in Cursor Mode, and expected that +# applications such as vi will always transmit the :ks: string. Therefore, +# the definitions for the cursor keys are made to match what the terminal +# transmits after the :ks: string is transmitted. If the :ks: string +# is a null string or is not defined, then cursor keys are assumed to be in +# "Cursor Mode", and the cursor keys definitions should match that assumption, +# else the appication may fail. It is also expected that applications will +# always transmit the :ke: string to the terminal before they exit. +# +# The VT100 series terminals have an auxilliary keypad, commonly referred to as +# the "Numeric Keypad", because it is a cluster of numeric and function keys. +# The Numeric Keypad which can operate in two different modes: Numeric Mode and +# Application Mode. Numeric Mode is the reset state, and is assumed to be +# the normal state. Application Mode is the "set" state. In Numeric Mode, +# the numeric and punctuation keys transmit ASCII 7-bit characters, and the +# Enter key transmits the same as the Return key (Note: the Return key +# can be configured to send either LF (\015) or CR LF). In Application Mode, +# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys +# always send the same "Esc O {code}" sequences. It is assumed that the keypad +# is normally in Numeric Mode. If an application requires that the keypad be +# in Application Mode then it is expected that the user, or the application, +# will set the TERM environment variable to point to a terminfo entry which has +# defined the :ks: string to include the codes that switch the keypad into +# Application Mode, and the terminfo entry will also define function key +# fields to match the Application Mode control codes. If the :ks: string +# is a null string or is not defined, then the keypad is assumed to be in +# Numeric Mode. If the :ks: string switches the keypad into Application +# Mode, it is expected that the :ke: string will contain the control codes +# necessary to reset the keypad to "Normal" mode, and it is also expected that +# applications which transmit the :ks: string will also always transmit the +# :ke: string to the terminal before they exit. +# +# Here's a diagram of the VT100 keypad keys with their bindings. +# The top line is the name of the key (some DEC keyboards have the keys +# labelled somewhat differently, like GOLD instead of PF1, but this is +# the most "official" name). The second line is the escape sequence it +# generates in Application Keypad mode (where "$" means the ESC +# character). The third line contains two items, first the mapping of +# the key in terminfo, and then in termcap. +# _______________________________________ +# | PF1 | PF2 | PF3 | PF4 | +# | $OP | $OQ | $OR | $OS | +# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| +# | 7 8 9 - | +# | $Ow | $Ox | $Oy | $Om | +# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________| +# | 4 | 5 | 6 | , | +# | $Ot | $Ou | $Ov | $Ol | +# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_| +# | 1 | 2 | 3 | | +# | $Oq | $Or | $Os | enter | +# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM | +# | 0 | . | | +# | $Op | $On | | +# |___kc1_______K4____|_kc3__K5_|_kent_@8_| +# +# And here, for those of you with orphaned VT100s lacking documentation, is +# a description of the soft switches invoked when you do `Set Up'. +# +# Scroll 0-Jump Shifted 3 0-# +# | 1-Smooth | 1-British pound sign +# | Autorepeat 0-Off | Wrap Around 0-Off +# | | 1-On | | 1-On +# | | Screen 0-Dark Bkg | | New Line 0-Off +# | | | 1-Light Bkg | | | 1-On +# | | | Cursor 0-Underline | | | Interlace 0-Off +# | | | | 1-Block | | | | 1-On +# | | | | | | | | +# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings +# | | | | | | | | +# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz +# | | | 1-On | | | 1-50 Hz +# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits +# | | 1-ANSI | | 1-8 Bits +# | Keyclick 0-Off | Parity 0-Off +# | 1-On | 1-On +# Margin Bell 0-Off Parity Sense 0-Odd +# 1-On 1-Even +# +# The following SET-UP modes are assumed for normal operation: +# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS +# WRAP_AROUND_ON JUMP_SCROLL_OFF +# Other SET-UP modes may be set for operator convenience or communication +# requirements; I recommend +# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_# +# Unless you have a graphics add-on such as Digital Engineering's VT640 +# (and even then, whenever it can be arranged!) you should set +# INTERLACE_OFF +# +# (vt100: I added <rmam>/<smam> based on the init string, also :bs:. -- esr) +vt100|vt100-am|dec vt100 (w/advanced video):\ + :am:bs:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +vt100nam|vt100-nam|vt100 no automargins:\ + :am@:xn@:tc=vt100-am: +vt100-vb|dec vt100 (w/advanced video) & no beep:\ + :bl@:vb=\E[?5h\E[?5l:tc=vt100: + +# Ordinary vt100 in 132 column ("wide") mode. +vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video):\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am: +vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin):\ + :co#132:li#14:vt@:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-nam: + +# vt100 with no advanced video. +vt100-nav|vt100 without advanced video option:\ + :sg#1:\ + :mb@:md@:me@:mr@:sa@:se=\E[m:so=\E[7m:ue@:us@:tc=vt100: +vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option):\ + :co#132:li#14:tc=vt100-nav: + +# vt100 with one of the 24 lines used as a status line. +# We put the status line on the top. +vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline:\ + :es:hs:\ + :li#23:\ + :cl=\E[2;1H\E[J:cm=\E[%i%+^A;%dH:cs=\E[%i%i%d;%dr:\ + :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\ + :ts=\E7\E[1;%p1%dH\E[1K:\ + :tc=vt100-am: + +# Status line at bottom. +# Clearing the screen will clobber status line. +vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\ + :es:hs:\ + :li#23:\ + :ds=\E7\E[1;24r\E8:fs=\E8:is=\E[1;23r\E[23;1H:\ + :ts=\E7\E[24;%p1%dH\E[1K:\ + :tc=vt100-am: + +# Most of the `vt100' emulators out there actually emulate a vt102 +# This entry (or vt102-nsgr) is probably the right thing to use for +# these. +vt102|dec vt102:\ + :mi:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100: +vt102-w|dec vt102 in wide mode:\ + :co#132:\ + :r3=\E[?3h:tc=vt102: + +# Many brain-dead PC comm programs that pretend to be `vt100-compatible' +# fail to interpret the ^O and ^N escapes properly. Symptom: the :me: +# string in the canonical vt100 entry above leaves the screen littered +# with little snowflake or star characters (IBM PC ROM character \017 = ^O) +# after highlight turnoffs. This entry should fix that, and even leave +# ACS support working, at the cost of making multiple-highlight changes +# slightly more expensive. +# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995 +vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\ + :me=\E[m:sa@:\ + :tc=vt102: + +# VT125 Graphics CRT. Clear screen also erases graphics +vt125|vt125 graphics terminal:\ + :cl=\E[H\E[2J\EPpS(E)\E\:tc=vt100: + +# This isn't a DEC entry, it came from University of Wisconsin. +# (vt131: I added <rmam>/<smam> based on the init string, also :bs: -- esr) +vt131|dec vt131:\ + :am:bs:xn:\ + :co#80:it#8:li#24:vt#3:\ + :RA=\E[?7h:SA=\E[?7h:bl=^G:cd=50\E[J:ce=3\E[K:\ + :cl=50\E[;H\E[2J:cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :do=^J:ho=\E[H:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:\ + :me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=^M^J:\ + :r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :se=2\E[m:so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:\ + :us=2\E[4m: + +# vt132 - like vt100 but slower and has ins/del line and such. +# I'm told that :im:/:ei: are backwards in the terminal from the +# manual and from the ANSI standard, this describes the actual +# terminal. I've never actually used a vt132 myself, so this +# is untested. +# +vt132|DEC vt132:\ + :xn:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4h:im=\E[4l:ip=:sf=\n:tc=vt100: + +# This vt220 description maps F5--F9 to the second block of function keys +# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict +# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping. +# PF1--PF4 are used as F1--F4. +# +vt220-old|vt200-old|DEC VT220 in vt100 emulation mode:\ + :am:bs:mi:pt:xn:xo:\ + :co#80:li#24:vt#3:\ + :@7=\E[4~:RA=\E[?7l:SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\ + :k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\ + :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ + :sc=\E7:se=\E[27m:sf=20\ED:so=\E[7m:sr=14\EM:ta=^I:\ + :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: + +# A much better description of the VT200/220; used to be vt220-8 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt220|vt200|dec vt220:\ + :am:bs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E[?7h\E[>\E[?1h\E F\E[?4l:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l: +vt220-w|vt200-w|DEC vt220 in wide mode:\ + :co#132:\ + :r3=\E[?3h:tc=vt220: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode:\ + :am:bs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :LE=\233%dD:RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:\ + :bl=^G:cd=\233J:ce=\233K:cl=\233H\233J:cm=\233%i%d;%dH:\ + :cr=^M:cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\ + :ec=\233%dX:ei=\2334l:ho=\233H:\ + :if=/usr/share/tabset/vt100:im=\2334h:\ + :is=\233?7h\233>\233?1h\E F\233?4l:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:k8=\23319~:\ + :k9=\23320~:kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\233B:\ + :kh=\233H:kl=\233D:kr=\233C:ku=\233A:le=^H:mb=\2335m:\ + :md=\2331m:me=\233m:mr=\2337m:nd=\233C:nw=\EE:rc=\E8:\ + :sc=\E7:se=\23327m:sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:\ + :ue=\23324m:up=\233A:us=\2334m:vb=\233?5h\233?5l: + +# +# vt220d: +# This vt220 description regards F6--F10 as the second block of function keys +# at the top of the keyboard. This mapping follows the description given +# in the VT220 Programmer Reference Manual and agrees with the labeling +# on some terminals that emulate the vt220. There is no support for an F5. +# See vt220 for an alternate mapping. +# +vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:k5@:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :tc=vt220-old: + +vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins:\ + :am@:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: + +# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko +# (not an official DEC entry!) +# The problem with real vt220 terminals is they don't send escapes when in +# in vt220 mode. This can be gotten around two ways. 1> don't send +# escapes or 2> put the vt220 into vt100 mode and use all the nifty +# features of vt100 advanced video which it then has. +# +# This entry takes the view of putting a vt220 into vt100 mode so +# you can use the escape key in emacs and everything else which needs it. +# +# You probably don't want to use this on a VMS machine since VMS will think +# it has a vt220 and will get fouled up coming out of emacs +# +# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996 +# (Added vt100 :rc:,:sc: to quiet a tic warning -- esr) +vt200-js|vt220-js|dec vt200 series with jump scroll:\ + :am:\ + :co#80:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:dm=:do=^J:ed=:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\ + :so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m: + + +# This was DEC's vt320. Use the purpose-built one below instead +#vt320|DEC VT320 in vt100 emulation mode, +# use=vt220, + +# +# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam. +# +vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\ + :am@:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: + +# These entries are not DEC's official ones, they were purpose-built for the +# VT320. Here are the designer's notes: +# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to +# 'Erase to End of Field'... since nothing seems to use 'end' anyways... +# khome is Home on a PC kbd. Actually 'FIND' on a VT. +# Things that use <knxt> usually use tab anyways... and things that don't use +# tab usually use <knxt> instead... +# kprv is same as tab - Backtab is useless... +# I left out :sa: because of its RIDICULOUS complexity, +# and the resulting fact that it causes the termcap translation of the entry +# to SMASH the 1k-barrier... +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +# (vt320: uncommented :fs:, comnmmented out <kslt> to avoid a conflict --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt320|vt300|dec vt320 7 bit terminal:\ + :am:es:hs:mi:ms:xn:\ + :co#80:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[1$}\E[H\E[K:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy:\ + :am@:\ + :is=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320: +# We have to init 132-col mode, not 80-col mode. +vt320-w|vt300-w|dec vt320 wide 7 bit terminal:\ + :co#132:ws#132:\ + :is=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320: +vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am:\ + :am@:\ + :is=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320-w: + +# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals +# which are pretty much a superset of the VT320. They have the +# host writable status line, yet another different DRCS matrix size, +# and such, but they add the DEC Technical character set, Multiple text +# pages, selectable length pages, and the like. The difference between +# the vt330 and vt340 is that the latter has only 2 planes and a monochrome +# monitor, the former has 4 planes and a color monitor. These terminals +# support VT131 and ANSI block mode, but as with much of these things, +# termcap/terminfo doesn't deal with these features. +# +# Note that this entry is are set up in what was the standard way for GNU +# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +# keys were switched into application mode at the same time the numeric pad +# is switched into application mode. This changes the definitions of the +# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# your termcap or terminfo entry, +# +# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +# (vt340: string capability "sb=\E[M" corrected to "sr"; +# also, added <rmam>/<smam> based on the init string -- esr) +vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\ + :fs=\E[$}:ho=\E[H:im=\E[4h:\ + :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\ + :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# DEC doesn't supply a vt400 description, so we add Daniel Glasser's +# (originally written with vt420 as its primary name, and usable for it). +# +# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple +# text pages and long text pages with selectable length of the vt340, along +# with left and right margins, rectangular area text copy, fill, and erase +# operations, selected region character attribute change operations, +# page memory and rectangle checksums, insert/delete column, reception +# macros, and other features too numerous to remember right now. TERMCAP +# can only take advantage of a few of these added features. +# +# Note that this entry is are set up in what was the standard way for GNU +# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +# keys were switched into application mode at the same time the numeric pad +# is switched into application mode. This changes the definitions of the +# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# your termcap entry, +# +# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:"; +# also, added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:\ + :cd=10\E[J:ce=4\E[K:cl=10\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:fs=\E[$}:ho=\E[H:\ + :ic=\E[@:im=\E[4h:\ + :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# (vt420: I removed :k0:, it collided with <kf10>. I also restored +# a missing :sc: -- esr) +vt420|DEC VT420:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: + +# +# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx) +# takes two parameters, the key and the string. Translating the key is +# straightforward (keys 1-5 are not defined on real terminals, though some +# emulators define these): +# +# if (key < 16) then value = key; +# else if (key < 21) then value = key + 1; +# else if (key < 25) then value = key + 2; +# else if (key < 27) then value = key + 3; +# else if (key < 30) then value = key + 4; +# else value = key + 5; +# +# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". +# There's no provision in terminfo for emitting a string in this format, so the +# application has to know it. +# +vt420pc|DEC VT420 w/PC keyboard:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[11;2~:F4=\E[12;2~:\ + :F5=\E[13;2~:F6=\E[14;2~:F7=\E[15;2~:F8=\E[17;2~:\ + :F9=\E[18;2~:FA=\E[19;2~:FB=\E[20;2~:FC=\E[21;2~:\ + :FD=\E[23;2~:FE=\E[24;2~:FF=\E[23~:FG=\E[24~:FH=\E[25~:\ + :FI=\E[26~:FJ=\E[28~:FK=\E[29~:FL=\E[31~:FM=\E[32~:\ + :FN=\E[33~:FO=\E[34~:FP=\E[35~:FQ=\E[36~:FR=\E[23;2~:\ + :FS=\E[24;2~:FT=\E[25;2~:FU=\E[26;2~:FV=\E[28;2~:\ + :FW=\E[29;2~:FX=\E[31;2~:FY=\E[32;2~:FZ=\E[33;2~:\ + :Fa=\E[34;2~:Fb=\E[35;2~:Fc=\E[36;2~:\ + :S6=USR_TERM\072vt420pcdos\072:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\177:kh=\E[H:\ + :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\:tc=vt420: + +vt420pcdos|DEC VT420 w/PC for DOS Merge:\ + :li#25:\ + :S1=%?%p2%{19}%=%t\E\023\021%e%p2%{32}%<%t\E%p2%c%e%p2%{127}%=%t\E\177%e%p2%c%;:\ + :S4=\E[?1;2r\E[34h:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:S6@:\ + :me=\E[m:sa@:\ + :tc=vt420pc: + +vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :kD=\177:kh=\E[H:l1=\EOP:l2=\EOQ:l3=\EOR:l4=\EOS:\ + :tc=vt420: + +vt510|DEC VT510:\ + :tc=vt420: +vt510pc|DEC VT510 w/PC keyboard:\ + :tc=vt420pc: +vt510pcdos|DEC VT510 w/PC for DOS Merge:\ + :tc=vt420pcdos: + +# VT520/VT525 +# +# The VT520 is a monochrome text terminal capable of managing up to +# four independent sessions in the terminal. It has multiple ANSI +# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console) +# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950, +# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only. +# +# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or +# [Alt]/[Print Screen] depending upon which keyboard and which +# terminal mode is being used. If Set-Up has been disabled or +# assigned to an unknown key, Set-Up may be entered by pressing +# [F3] as the first key after power up, regardless of keyboard type. +# (vt520: I added <rmam>/<smam> based on the init string, also :sc: -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +vt520|DEC VT520:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\ + :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +# (vt525: I added <rmam>/<smam> based on the init string; +# removed :se:=\E[m, :ue:=\E[m, added :sc: -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +vt525|DEC VT525:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\ + :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +#### VT100 emulations +# + +# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows +# (the best Windows telnet as of September 1995) presents the name `dec-vt100' +# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us +# that this works best with a stock vt100 entry. +dec-vt100|EWAN telnet's vt100 emulation:\ + :tc=vt100: + +# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996 +dec-vt220|DOS tnvt200 terminal emulator:\ + :am@:tc=vt220: + +# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to +# anyone who needs PC VT340 emulation. (or anything below that level, for +# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's +# RDBM systems, it includes ReGIS and SiXel support! I'm impressed... +# I can send the address if requested. +# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr) +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +z340|zstem vt340 terminal emulator 132col 42line:\ + :li#42:\ + :is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\ + :tc=vt320-w: +z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins):\ + :am@:\ + :is=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\ + :tc=z340: + +# CRT is shareware. It implements some xterm features, including mouse. +crt|crt-vt220|CRT 2.3 emulating VT220:\ + :ms:ut:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:Sb=\E[4%dm:Sf=\E[3%dm:\ + :op=\E[39;49m:st=\EH:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:\ + :u9=\E[c:\ + :tc=vt220: + +# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by +# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator +# (communication program) which supports: +# +# - Serial port connections. +# - TCP/IP (telnet) connections. +# - VT100 emulation, and selected VT200/300 emulation. +# - TEK4010 emulation. +# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and +# Quick-VAN). +# - Scripts using the "Tera Term Language". +# - Japanese and Russian character sets. +# +# The program does not come with terminfo or termcap entries. However, the +# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no +# vt52 or doublesize character support; blinking is done with color). Besides +# the HPA, VPA extensions it also implements CPL and CNL. +# +# All of the function keys can be remapped. This description shows the default +# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys +# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad +# is laid out like vt220, rather than the face codes on the PC keyboard, i.e, +# kfnd Insert +# kslt Delete +# kich1 Home +# kdch1 PageUp +# kpp End +# knp PageDown +# +# ANSI colors are implemented, but cannot be combined with video attributes +# except for reverse. +# +# No fonts are supplied with the program, so the acsc string is chosen to +# correspond with the default Microsoft terminal font. +# +# Tera Term recognizes some xterm sequences, including those for setting and +# retrieving the window title, and for setting the window size (i.e., using +# "resize -s"), though it does not pass SIGWINCH to the application if the +# user resizes the window with the mouse. +teraterm|Tera Term Pro:\ + :km:xo@:\ + :NC#43:vt@:\ + :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :al=\E[L:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cv=\E[%i%dd:dc=\E[P:dl=\E[M:ec=\E[%dX:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:op=\E[100m:se=\E[27m:so=\E[7m:\ + :sr=\EM:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\ + :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l:\ + :tc=klone+color:tc=vt100: + +# Tested with WinNT 4.0, the telnet application assumes the screensize is +# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters. +ms-vt100|MS telnet imitating dec vt100:\ + :li#25:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :ct@:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?6c:u9=\E[c:\ + :tc=vt100: + +#### X terminal emulators +# +# You can add the following line to your .Xdefaults to change the terminal type +# set by the xterms you start up to my-xterm: +# +# *termName: my-xterm +# +# System administrators can change the default entry for xterm instances +# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either +# case, xterm will detect and reject an invalid terminal type, falling back +# to the default of xterm. +# + +# X10/6.6 11/7/86, minus alternate screen, plus (csr) +# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string; +# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E) +# as these seem not to work -- esr) +x10term|vs100-x10|xterm terminal emulator (X10 window system):\ + :am:bs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#65:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:is=\E\E[m\E[?7h\E[?1;4l:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +# Compatible with the R5 xterm +# (from the XFree86 3.2 distribution, <blink=@> removed) +# added khome/kend, rmir/smir, rmul/smul based on the R5 xterm code - TD +# corrected typos in rs2 string - TD +xterm-r5|xterm R5 version:\ + :am:bs:km:ms:xn:\ + :co#80:it#8:li#24:\ + :@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\E[23~:F2=\E[24~:IC=\E[%d@:Km=\E[M:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:\ + :im=\E[4h:k0=\EOq:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kA=\E[30~:kD=\E[3~:kE=\E[8~:kI=\E[2~:kL=\E[31~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H:\ + :rc=\E8:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +# Compatible with the R6 xterm +# (from XFree86 3.2 distribution, <acsc> and :it: added, <blink@> removed) +# added khome/kend - TD +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-r6|xterm-old|xterm X11R6 version:\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up. +# The name has been changed and some aliases have been removed. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System):\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\177:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\ + :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\ + :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100 +# codes for F1-F4 except while in VT220 mode. +xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System):\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :tc=xterm-xf86-v32: + +# This version was released in XFree86 3.3.3 (November 1998). +# Besides providing printer support, it exploits a new feature that allows +# xterm to use terminfo-based descriptions with the titeInhibit resource. +xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System):\ + :5i:\ + :*6@:@0@:@7=\E[4~:ei=:ic@:im=:is=\E[\041p\E[?3;4l\E[4l\E>:\ + :kD=\E[3~:kh=\E[1~:mb=\E[5m:mk=\E[8m:pf=\E[4i:po=\E[5i:\ + :ps=\E[i:r1=\Ec:r2=\E[\041p\E[?3;4l\E[4l\E>:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ + :te=\E[?1047l\E[?1048l:ti=\E[?1048h\E[?1047h:\ + :tc=xterm-xf86-v33: + +# This beta version will probably be released in XFree86 4.0. +xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System):\ + :@7=\EOF:K1=\EOH:K2=\EOE:K3=\E[5~:K4=\EOF:K5=\E[6~:kD=\177:\ + :kh=\EOH:te=\E[?1049l:ti=\E[?1049h:\ + :tc=xterm-xf86-v333: + +xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System):\ + :tc=xterm-xf86-v40: + +# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997 +xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1:\ + :se=\E[m:ue=\E[m:\ + :tc=xterm-xf86-v33: + +# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey) +xterm-16color|xterm with 16 colors like aixterm:\ + :Co#16:NC#32:pa#256:\ + :AB=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:\ + :AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm:\ + :..Sb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\ + :..Sf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\ + :tc=xterm-xf86-v40: + +# This is another variant, for XFree86 4.0 xterm (T.Dickey) +# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color. +# To use it, your decTerminalID resource must be set to 200 or above. +# +# HTS \E H \210 +# RI \E M \215 +# SS3 \E O \217 +# CSI \E [ \233 +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-8bit|xterm terminal emulator 8-bit controls (X Window System):\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :K1=\217w:K2=\217y:K3=\217u:K4=\217q:K5=\217s:LE=\233%dD:\ + :RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:bl=^G:bt=\233Z:\ + :cd=\233J:ce=\233K:cl=\233H\2332J:cm=\233%i%d;%dH:cr=^M:\ + :cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\ + :ec=\233%dX:ei=\2334l:ho=\233H:im=\2334h:\ + :is=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>:\ + :k1=\23311~:k2=\23312~:k3=\23313~:k4=\23314~:k5=\23315~:\ + :k6=\23317~:k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:\ + :kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\217B:\ + :ke=\233?1l\E>:kh=\2331~:kl=\217D:kr=\217C:ks=\233?1h\E=:\ + :ku=\217A:le=^H:mb=\2335m:md=\2331m:me=\233m^O:mr=\2337m:\ + :nd=\233C:rc=\E8:sc=\E7:se=\23327m:sf=^J:so=\2337m:sr=\215:\ + :st=\210:ta=^I:te=\233?1049l:ti=\233?1049h:ue=\23324m:\ + :up=\233A:us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:\ + :vi=\233?25l:vs=\233?25h: + +xterm-24|vs100|xterms|xterm terminal emulator (X Window System):\ + :li#24:tc=xterm: + +# This is xterm for ncurses. +xterm|xterm terminal emulator (X Window System):\ + :Km=\E[M:\ + :ac=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\ + :tc=xterm-r6: + +# These entries allow access to the X titlebar and icon name as a status line. +# Note that twm (and possibly window managers descended from it such as tvtwm, +# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess +# with it. +xterm+sl|access X title line and icon name:\ + :hs:\ + :ws#40:\ + :ds=\E]0;\007:fs=^G:ts=\E]0;:tc=xterm: +xterm+sl-twm|access X title line (pacify twm-descended window managers):\ + :hs:\ + :ws#40:\ + :ds=\E]2;\007:fs=^G:ts=\E]2;:tc=xterm: + +# +# The following xterm variants don't depend on your base version +# +# xterm with bold instead of underline +xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold:\ + :so=\E[7m:us=\E[1m:\ + :tc=xterm: +# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr) +# (kterm should not invoke DEC Graphics as the alternate character set +# -- Kenji Rikitake) +kterm|kterm kanji terminal emulator (X window system):\ + :es:hs:\ + :Km=\E[M:ac@:ae@:as@:cs=\E[%i%d;%dr:ds=\E[?H:eA@:fs=\E[?F:\ + :op=\E[39;49m:rc=\E8:sc=\E7:ts=\E[?E\E[?%i%dT:\ + :tc=xterm-r6:tc=klone+color: +# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\ + :IC@:ei=:ic@:im=:\ + :tc=xterm: +# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 +xterm1|xterm terminal emulator ignoring the alternate screen buffer:\ + :te@:ti@:\ + :tc=xterm: + +# This describes the capabilities of color_xterm, an xterm variant from +# before ECMA-64 color support was folded into the main-line xterm release. +# This entry is straight from color_xterm's maintainer. +# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996 +# The README's with the distribution also say that it supports SGR 21, 24, 25 +# and 27, but they are not present in the terminfo or termcap. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +color_xterm|cx|cx100|color_xterm color terminal emulator for X:\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#65:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :i1=\E[r\E[m\E[?7h\E[?4;6l\E[4l:im=\E[4h:k1=\E[11~:\ + :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:kh=\E[7~:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:ta=^I:te=\E>\E[?41;1r:\ + :ti=\E[?1;41s\E[?1;41h\E=:ue=\E[24m:up=\E[A:us=\E[4m: + +# The 'nxterm' distributed with Redhat Linux is a slight rehack of +# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support +# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This +# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except +# that each of those implements the home, end, delete keys differently. +nxterm|xterm-color|generic color xterm:\ + :NC@:\ + :op=\E[m:tc=xterm-r6:tc=klone+color: + +# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997 +# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997 +# Notes: +# rxvt 2.21b uses +# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O, +# but some applications don't work with that. +# It also has an AIX extension +# box2=lqkxjmwuvtn, +# and +# ech=\E[%p1%dX, +# but the latter does not work correctly. +# +# The distributed terminfo says it implements hpa and vpa, but they are not +# implemented correctly, using relative rather than absolute positioning. +# +# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. +# Since rxvt is not really compatible with xterm, it should be configured as +# "rxvt" (monochrome) and "rxvt-color". +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +rxvt|rxvt terminal base (X Window System):\ + :am:bs:eo:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\ + :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\ + :k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ + :kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[0m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h: +rxvt-color|rxvt terminal emulator (X Window System):\ + :Co#8:pa#64:\ + :AB=\E[%p1%{40}%+%dm:AF=\E[%p1%{30}%+%dm:me=\E[m\017:\ + :op=\E[39;49m:\ + :tc=rxvt: + +# These (xtermc and xtermm) are distributed with Solaris. They refer to a +# variant of xterm which is apparently no longer supported, but are interesting +# because they illustrate SVr4 curses mouse controls - T.Dickey +# (untranslatable capabilities removed to fit entry within 1023 bytes) +xtermm|xterm terminal emulator (monocrome):\ + :am:bs:km:mi:ms:xn:\ + :BT#3:co#80:it#8:li#24:\ + :@7=\E[Y:@8=\EOM:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\EOZ:F2=\EOA:Gm=\E[%p1%dY:IC=\E[%d@:K1=\EOq:K2=\EOr:\ + :K3=\EOs:K4=\EOp:K5=\EOn:Km=\E[^_:LE=\E[%dD:RI=\E[%dC:\ + :RQ=\E[492Z:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k;=\EOY:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:\ + :le=\E[1D:mb=@:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\ + :r1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E@0\E[?4r:\ + :ti=\E@0\E[?4s\E[?4h\E@1:up=\E[A: + +xtermc|xterm terminal emulator (color):\ + :Co#8:NC#7:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:\ + :..Sb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ + :..Sf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ + :op=\E[100m:\ + :tc=xtermm: + +# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995 +# Here's a termcap entry I've been using for xterm_color, which comes +# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the +# color stuff, I also have a status line defined as the window manager +# title bar. [I have translated it to terminfo -- ESR] +xterm-pcolor|xterm with color used for highlights and status line:\ + :md=\E[1m\E[43m:mr=\E[7m\E[34m:so=\E[7m\E[31m:\ + :us=\E[4m\E[42m:\ + :tc=xterm+sl:tc=xterm-r6: + +# HP ships this, except for the pb#9600 which was merged in from BSD termcap. +# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr) +hpterm|X-hpterm|hp X11 terminal emulator:\ + :am:da:db:mi:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:pb#9600:sg#0:\ + :LF=\E&j@:LO=\E&jB:ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:\ + :cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:\ + :cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:\ + :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:\ + :kA=\EL:kC=\EJ:kD=\EP:kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:\ + :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:\ + :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:\ + :ku=\EA:le=^H:md=\E&dB:me=\E&d@:mh=\E&dH:ml=\El:mr=\E&dB:\ + :mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\ + :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\ + :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\ + :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\ + :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:\ + :up=\EA:us=\E&dD: + +# This entry describes an xterm with Sun-style function keys enabled +# via the X resource setting "xterm*sunFunctionKeys:true" +# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same. +# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z> +# because we want it to be seen as <kcpy>. +# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance +# with their Sun keyboard labels instead. +# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996 +xterm-sun|xterm with sunFunctionKeys true:\ + :%1=\E[196z:&8=\E[195z:@0=\E[200z:@5=\E[197z:@7=\E[220z:\ + :F1=\E[192z:F2=\E[193z:F3=\E[194z:F4=\E[195z:F5=\E[196z:\ + :F7=\E[198z:F8=\E[199z:F9=\E[200z:FA=\E[201z:FL=\E[208z:\ + :FM=\E[209z:FN=\E[210z:FO=\E[211z:FP=\E[212z:FQ=\E[213z:\ + :FS=\E[215z:FU=\E[217z:FW=\E[219z:FY=\E[221z:K2=\E[218z:\ + :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\ + :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\ + :kI=\E[2z:kN=\E[222z:kP=\E[216z:kh=\E[214z:\ + :tc=xterm: +xterms-sun|small (80x24) xterm with sunFunctionKeys true:\ + :co#80:li#24:tc=xterm-sun: + +# This is for the extensible terminal emulator on the X11R6 contrib tape. +emu|emu native mode:\ + :mi:ms:xo:\ + :Co#15:co#80:it#8:li#24:pa#64:vt#200:\ + :*6=\Esel:@0=\Efind:@8=^M:AB=\Es%i%p1%d;:AF=\Er%i%p1%d;:\ + :AL=\EQ%d;:DC=\EI%d;:DL=\ER%d;:DO=\Ep%d;:F1=\EF11:\ + :F2=\EF12:F3=\EF13:F4=\EF14:F5=\EF15:F6=\EF16:F7=\EF17:\ + :F8=\EF18:F9=\EF19:FA=\EF20:LE=\Eq-%d;:RI=\Eq%d;:\ + :UP=\Ep-%d;:\ + :ac=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244:\ + :ae=\0:al=\EQ1;:as=\0:bl=^G:cb=\EL:cd=\EN:ce=\EK:\ + :cl=\EP\EE0;0;:cm=\EE%d;%d;:cr=^M:cs=\Ek%d;%d;:ct=\Ej:\ + :dc=\EI1;:dl=\ER1;:do=\EB:eA=\0:ec=\Ej%d;:ei=\EX:\ + :ho=\EE0;0;:im=\EY:is=\ES\Er0;\Es0;:k0=\EF00:k1=\EF01:\ + :k2=\EF02:k3=\EF03:k4=\EF04:k5=\EF05:k6=\EF06:k7=\EF07:\ + :k8=\EF08:k9=\EF09:k;=\EF10:kD=\177:kI=\Eins:kN=\Enext:\ + :kP=\Eprior:kb=^H:kd=\EB:kl=\EC:kr=\ED:ku=\EA:le=^H:\ + :mb=\ES\EW:md=\ES\EU:me=\ES:mr=\ES\ET:nd=\ED:\ + :oc=\Es0;\Er0;:r2=\ES\Es0;\Er0;:se=\ES:sf=\EG:so=\ES\ET:\ + :sr=\EF:st=\Eh:ta=^I:ue=\ES:up=\EA:us=\ES\EV:ve=\Ea:vi=\EZ:\ + :vs=\Ea: + +######## COMMERCIAL WORKSTATION CONSOLES +# + +#### Alpha consoles +# + +# This is from the OSF/1 Release 1.0 termcap file +pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation:\ + :am:xo:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:se=\E[m:so=\E[7m:ta=^I:up=\E[A: + +#### AT&T consoles +# + +# This actually describes the generic SVr4 display driver for Intel boxes. +# The :mh=\E[2m: isn't documented and therefore may not be reliable. +# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995 +att6386|at386|386at|AT&T WGS 6386 console:\ + :am:bw:eo:xo:\ + :co#80:it#8:li#25:\ + :@7=\E[Y:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOZ:\ + :F2=\EOA:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\E[10m:al=\E[1L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:ch=\E[%i%dG:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[2g:cv=\E[%i%dd:dc=\E[P:dl=\E[1M:do=\E[B:ec=\E[%dX:\ + :ei=:ho=\E[H:ic=\E[1@:im=:is=\E[0;10;39m:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\ + :k;=\EOY:kB=^]:kD=\E[P:kI=\E[@:kM=\E0:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[0;10m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:\ + :nw=\r\E[S:rc=\E8:\ + :..sa=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m:\ + :sc=\E7:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=1C:vi=\E[=C:\ + :tc=klone+color: +# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr) +pc6300plus|AT&T 6300 plus:\ + :am:bs:xo:\ + :co#80:li#24:\ + :al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\ + :cm=\E[%i%2;%2H:cr=^M:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\ + :ei=:ho=\E[H:ic=\E[1@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:\ + :k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\EOk:k;=\EOu:kb=^H:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[m:sf=^J:so=\E[7m:st=\EH:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[=1C:vi=\E[=C: + +# From: Benjamin C. W. Sittler <bsittler@nmt.edu> +# +# I have a UNIX PC which I use as a terminal attached to my Linux PC. +# Unfortunately, the UNIX PC terminfo entry that comes with ncurses +# is broken. All the special key sequences are broken, making it unusable +# with Emacs. The problem stems from the following: +# +# The UNIX PC has a plethora of keys (103 of them, and there's no numeric +# keypad!), loadable fonts, and strange highlighting modes ("dithered" +# half-intensity, "smeared" bold, and real strike-out, for example.) It also +# uses resizable terminal windows, but the bundled terminal program always +# uses an 80x24 window (and doesn't support seem to support a 132-column +# mode.) +# +# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a +# library which was a superset of SVr3.5 curses (called tam, for "terminal +# access method".) tam includes support for real, overlapping windows, +# onscreen function key labels, and bitmap graphics. But since the primary +# user interface on the UNIX PC was a GUI program (ua, for "user +# assistant",) and remote administration was considered important for the +# machine, tam also supported VT100-compatible terminals attached to the +# serial port or used across the StarLan network. To simulate the extra keys +# not present on a VT100, users could press ESC and a two-letter sequence, +# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences, +# however, were not the same as those sent by the actual Undo key. The +# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example. +# (If you're interested in adding some of the tam calls to ncurses, btw, I +# have the full documentation and several programs which use tam. It also +# used an extended terminfo format to describe key sequences, special +# highlighting modes, etc.) +# +# KEYS: This means that ncurses would quite painful on the UNIX PC, since +# there are two sequences for every key-modifier combination (local keyboard +# sequence and remote "VT100" sequence.) But I doubt many people are trying +# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the +# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) +# seem to have been built from the manual describing the VT100 sequences. +# This means it doesn't work for a real live UNIX PC. +# +# FONTS: The UNIX PC also has a strange interpretation of "alternate +# character set". Rather than the VT100 graphics you might expect, it allows +# up to 8 custom fonts to be loaded at any given time. This means that +# programs expecting VT100 graphics will usually be disappointed. For this +# reason I have disabled the smacs/rmacs sequences, but they could easily be +# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) +# manpage), should you wish to do so: +# +# SGR10 - Select font 0 - ESC [ 10 m or SO +# SGR11 - Select font 1 - ESC [ 11 m or SI +# SGR12 - Select font 2 - ESC [ 12 m +# ... (etc.) +# SGR17 - Select font 7 - ESC [ 17 m +# +# Graphics for line drawing are not reliably found at *any* character +# location because the UNIX PC has dynamically reloadable fonts. I use font +# 0 for regular text and font 1 for italics, but this is by no means +# universal. So ASCII line drawing is in order if smacs/rmacs are enabled. +# +# MISC: The cursor visible/cursor invisible sequences were swapped in the +# distributed terminfo. +# +# To ameliorate these problems (and fix a few highlighting bugs) I rewrote +# the UNIX PC terminfo entry. The modified version works great with Lynx, +# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC +# attached by serial cable. In Emacs, even the Undo key works, and many +# applications can now use the F1-F8 keys. +# +# esr's notes: +# Terminfo entry for the AT&T Unix PC 7300 +# from escape(7) in Unix PC 7300 Manual. +# Somewhat similar to a vt100-am (but different enough +# to redo this from scratch.) +# +# /*************************************************************** +# * +# * FONT LOADING PROGRAM FOR THE UNIX PC +# * +# * This routine loads a font defined in the file ALTFONT +# * into font memory slot #1. Once the font has been loaded, +# * it can be used as an alternative character set. +# * +# * The call to ioctl with the argument WIOCLFONT is the key +# * to this routine. For more information, see window(7) in +# * the PC 7300 documentation. +# ***************************************************************/ +# #include <string.h> /* needed for strcpy call */ +# #include <sys/window.h> /* needed for ioctl call */ +# #define FNSIZE 60 /* font name size */ +# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */ +# /* +# * The file /usr/lib/wfont/special.8.ft comes with the +# * standard PC software. It defines a graphics character set +# * similar to that of the Teletype 5425 terminal. To view +# * this or other fonts in /usr/lib/wfont, use the command +# * cfont <filename>. For further information on fonts see +# * cfont(1) in the PC 7300 documentation. +# */ +# +# struct altfdata /* structure for alt font data */ +# { +# short altf_slot; /* memory slot number */ +# char altf_name[FNSIZE]; /* font name (file name) */ +# }; +# ldfont() +# { +# int wd; /* window in which altfont will be */ +# struct altfdata altf; +# altf.altf_slot=1; +# strcpy(altf.altf_name,ALTFONT); +# for (wd =1; wd < 12; wd++) { +# ioctl(wd, WIOCLFONT,&altf); +# } +# } +# +# (att7300: added :vi:/:ve:/:ic:/<invis> from the BSDI entry, +# they're confirmed by the man page for the System V display---esr) +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:bl=^G:bt=\E^I:cd=\E[0J:ce=\E[0K:\ + :cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ho=\E[H:i1=\017\E[=1w:ic=\E[@:im=:k1=\EOc:\ + :k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ + :kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[9m:md=\E[1m:\ + :me=\E[0;10m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=0C:\ + :vi=\E[=1C: + +#### Hewlett-Packard consoles +# +# These are descriptions for the HP700 series, the workstations formerly +# known as Apollos. HP terminals are described elsewhere in the file +# + +# From: Victor Duchovni <vic@fine.princeton.edu> +# (hp700-wy: removed obsolete ":nl=^J:"; +# replaced /usr/share/tabset/hp700-wy with std because :it#8:,:st=\E1: -- esr) +hp700-wy|HP700/41 emulating wyse30:\ + :am:bs:bw:mi:ms:\ + :co#80:it#8:li#24:sg#1:\ + :al=0.7*\EE:bt=\EI:cd=\EY:ce=10\ET:cl=^Z:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ei=\Er:ho=^^:\ + :i1=\E~"\EC\Er\E(\EG0\003\E`9\E`1:\ + :if=/usr/share/tabset/stdcrt:im=\Eq:kB=\EI:kC=^Z:kE=\ET:\ + :kI=\Eq:kM=\Er:kS=\EY:kT=\EI:kb=\177:kd=^V:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:ll=^^^K:me=10\EG0:nd=^L:se=10\EG0:so=10\EG4:\ + :sr=\Ej:st=\E1:ta=^I:ue=10\EG0:up=^K:us=10\EG8: +hp70092|hp70092a|hp70092A|HP 700/92:\ + :am:da:db:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:\ + :LF=\E&j@:LO=\E&jB:ac=0cjgktlrmfn/q\054t5u6v8w7x.:ae=^O:\ + :al=\EL:as=^N:bl=^G:bt=\Ei:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\ + :md=\E&dB:me=\E&d@:mh=\E&dH:mr=\E&dB:nd=\EC:se=\E&d@:\ + :so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: + +# HP 700/44 Setup parameters: +# Terminal Mode HP-PCterm +# Inhibit Auto Wrap NO +# Status Line Host Writable +# PC Character Set YES +# Twenty-Five Line Mode YES +# XON/XOFF @128 or 64 (sc) +# Keycode Mode NO or YES (sc) +# Backspace Key BS or BS/DEL +# +# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; +# \E\\? does not turn off keycode mode +# <smsc> sets alternate start/stop; keycode on +hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\ + :am:eo:xn:xo:\ + :co#80:li#25:\ + :@7=\E[4~:RA=\E[?7l:S4=\E[>11h\EPO**x0/65;1/67\E\:\ + :S5=\E[>11l\EP1**x0/11;1/13\E[m\E\:SA=\E[?7h:XF=g:XN=e:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:\ + :is=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:\ + :kB=\E[Z:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: + +#### Iris consoles +# + +# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is +# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes +# for the application keypad mode. We have added iris-ansi-ap rather than +# change the original to keypad mode. +# +# (iris-ansi: added rmam/smam based on init string -- esr) +# +# This entry, and those derived from it, is used in xwsh (also known as +# winterm). Some capabilities that do not fit into the terminfo model +# include the shift- and control-functionkeys: +# +# F1-F12 generate different codes when shift or control modifiers are used. +# For example: +# F1 \E[001q +# shift F1 \E[013q +# control-F1 \E[025q +# +# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e., +# \EOP to \EOS. The shifted and control modifiers still do the same thing. +# +# The cursor keys also have different codes: +# control-up \E[162q +# control-down \E[165q +# control-left \E[159q +# control-right \E[168q +# +# shift-up \E[161q +# shift-down \E[164q +# shift-left \E[158q +# shift-right \E[167q +# +# control-tab \[072q +# +# iris-ansi-net alias helps with IRIX does when you rsh to a remote system. +iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100):\ + :am:\ + :co#80:it#8:li#40:\ + :!2=\E[218q:#2=\E[143q:#4=\E[158q:%9=\E[209q:%f=\E[210q:\ + :%i=\E[167q:&7=\E[217q:*4=\E[P:*7=\E[147q:@7=\E[146q:\ + :@8=^M:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:F1=\E[011q:\ + :F2=\E[012q:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\ + :ho=\E[H:is=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8:\ + :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ + :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k;=\E[010q:\ + :kB=\E[Z:kD=\177:kI=\E[139q:kM=\E[146q:kN=\E[154q:\ + :kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :pk=\EP101;%d.y%s\E\:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[1;7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[9/y\E[12/y\E[=6l:vs=\E[10/y\E[=1h\E[=2l\E[=6h: +iris-ansi-ap|IRIS ANSI in application-keypad mode:\ + :@8=\EOM:F1=\E[011q:F2=\E[012q:is=\E[?1l\E=\E[?7h:\ + :k9=\E[009q:k;=\E[010q:\ + :tc=iris-ansi: + +# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX +# (T.Dickey 98/1/24) +iris-color|xwsh|IRIX ANSI with color:\ + :NC#33:\ + :DC=\E[%dP:IC=\E[%d@:ZH=\E[3m:ZR=\E[23m:cs=\E[%i%d;%dr:\ + :ec=\E[%dX:ei=:im=:mh=\E[2m:r1=\Ec:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[24m:\ + :tc=klone+color:tc=iris-ansi-ap: + +# (wsiris: this had extension capabilities +# :HS=\E7F2:HE=\E7F7:\ +# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: +# See the note on Iris extensions near the end of this file. +# Finally, removed suboptimal :cl:=\EH\EJ and added :do: & +# :vb: from BRL -- esr) +wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\ + :am:bs:nc:pt:\ + :co#80:it#8:kn#3:li#40:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :dl=\EM:\ + :do=\EB:ho=\EH:is=\E7B0\E7F7\E7C2\E7R3:k0=\E0:k1=\E1:\ + :k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\E7F7:mh=\E7F2:nd=\EC:\ + :nl=\EB:se=\E0@:sf=^J:so=\E9P:sr=\EI:ta=^I:ue=\E7R3\E0@:\ + :up=\EA:us=\E7R2\E9P:vb=\E7F4\E7B1\013\E7F7\E7B0:ve=\E>:\ + :vs=\E;: + +#### NeWS consoles +# +# Console terminal windows under the NeWS (Sun's Display Postscript windowing +# environment). Note: these have nothing to do with Sony's News workstation +# line. +# + +# Entry for NeWS's psterm from Eric Messick & Hugh Daniel +# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr) +psterm|psterm-basic|NeWS psterm-80x34:\ + :am:bs:hs:km:ul:\ + :co#80:it#8:li#34:\ + :al=\EA:cd=\EB:ce=\EC:cl=^L:cm=\E%d;%d;:cs=\EE%d;%d;:\ + :dc=\EF:dl=\EK:do=\EP:ei=\ENi:fs=\ENl:ho=\ER:i1=\EN*:\ + :im=\EOi:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\ET:ll=\EU:\ + :mb=\EOb:md=\EOd:me=\EN*:mr=\EOr:nd=\EV:rc=^\:sc=^]:se=\ENo:\ + :sf=\EW:so=\EOo:sr=\EX:ta=^I:te=\ENt:ti=\EOt:ts=\EOl:\ + :ue=\ENu:up=\EY:us=\EOu:vb=\EZ: +psterm-96x48|NeWS psterm 96x48:\ + :co#96:li#48:tc=psterm: +psterm-90x28|NeWS psterm 90x28:\ + :co#90:li#28:tc=psterm: +psterm-80x24|NeWS psterm 80x24:\ + :co#80:li#24:tc=psterm: +# This is a faster termcap for psterm. Warning: if you use this termcap, +# some control characters you type will do strange things to the screen. +# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr) +psterm-fast|NeWS psterm fast version (flaky ctrl chars):\ + :am:bs:hs:km:ul:\ + :co#80:it#8:li#34:\ + :al=^A:cd=^B:ce=^C:cl=^L:cm=\004%d;%d;:cs=\005%d;%d;:dc=^F:\ + :dl=^K:do=^P:ei=^Ni:fs=^Nl:ho=^R:i1=^N*:im=^Oi:kd=\E[B:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^T:ll=^U:mb=^Ob:md=^Od:me=^N*:\ + :mr=^Or:nd=^V:rc=^\:sc=^]:se=^No:sf=^W:so=^Oo:sr=^X:ta=^I:\ + :te=^Nt:ti=^Ot:ts=^Ol:ue=^Nu:up=^Y:us=^Ou:vb=^Z: + +#### NeXT consoles +# +# Use `glasstty' for the Workspace application +# + +# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995 +next|NeXT console:\ + :am:xt:\ + :co#80:it#8:li#24:\ + :bl=^G:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:do=^J:ho=\E[H:\ + :kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:nd=\E[C:nw=^M^J:se=\E[4;1m:\ + :sf=^J:so=\E[4;2m:ta=^I:up=\E[A: +nextshell|NeXT Shell application:\ + :am:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I: + +#### SCO consoles +# + +# SCO console and SOS-Syscons console for 386bsd +# (scoansi: had unknown capabilities +# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\ +# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C: +# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\ +# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\ +# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\ +# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based +# on the :as:=\E[12m -- esr) +# SCO function keys and <acsc> corrected by Thomas Dickey. +# In this description based on SCO's keyboard(HW) manpage list of default function key +# values: +# F13-F24 are shifted F1-F12 +# F25-F36 are control F1-F12 +# F37-F48 are shift+control F1-F12 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +scoansi|SCO Extended ANSI standard crt:\ + :am:eo:xo:\ + :Co#8:co#80:it#8:li#25:pa#64:\ + :@1=\E[E:@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:F1=\E[W:\ + :F2=\E[X:F3=\E[Y:F5=\E[a:F6=\E[b:F7=\E[c:F8=\E[d:F9=\E[e:\ + :FA=\E[f:FB=\E[g:FC=\E[h:FD=\E[i:FE=\E[j:FF=\E[k:FG=\E[l:\ + :FH=\E[m:FI=\E[n:FJ=\E[o:FK=\E[p:FL=\E[q:FM=\E[r:FN=\E[s:\ + :FO=\E[t:FP=\E[u:FQ=\E[v:FR=\E[w:FS=\E[x:FT=\E[y:FU=\E[z:\ + :FV=\E[@:FW=\E[[:FX=\E[\:FY=\E[]:FZ=\E[\136:Fa=\E[_:\ + :Fb=\E[`:Fc=\E[{:\ + :ac=0[5566778899\072\072;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`ja0fxgqh2jYk?lZm@nEqDtCu4vAwBx3~y:\ + :ae=\E[10m:al=\E[L:as=\E[12m:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\ + :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:\ + :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mk=\E[8m:mr=\E[7m:nd=\E[C:op=\E[37;40m:se=\E[m:sf=\E[S:\ + :so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +#### Sun consoles +# + +# :is1: resets scrolling region in case a previous user had used "tset vt100" +oldsun|Sun Microsystems Workstation console:\ + :am:bs:km:mi:ms:\ + :co#80:it#8:li#34:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:i1=\E[1r:ic=\E[@:im=:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A: +# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995 +# :li: capability later corrected by J.T. Conklin <jtc@cygnus.com> +# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998) +sun-il|Sun Microsystems console with working insert-line:\ + :am:km:ms:\ + :co#80:li#34:\ + :%7=\E[194z:&5=\E[193z:&8=\E[195z:@7=\E[220z:AL=\E[%dL:\ + :DC=\E[%dP:DL=\E[%dM:F1=\E[234z:F2=\E[235z:IC=\E[%d@:\ + :K2=\E[218z:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ic=\E[@:im=:\ + :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\ + :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\ + :kD=\177:kN=\E[222z:kP=\E[216z:kb=^H:kd=\E[B:kh=\E[214z:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md@:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E[s:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\ + :se=\E[m:sf=^J:so=\E[7m:ta=^I:u8=\E[1t:u9=\E[11t:ue@:\ + :up=\E[A:us@: +# On a SparcStation 5, :al:/:AL: flake out on the last line. +# Unfortunately, without them the terminal has no way to scroll. +sun-ss5|Sun SparcStation 5 console:\ + :AL@:al@:tc=sun-il: +# If you are using an SS5, change the sun definition to use sun-ss5. +sun|sun1|sun2|Sun Microsystems Inc. workstation console:\ + :tc=sun-il: + +# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985 +sun-s|Sun Microsystems Workstation window with status line:\ + :hs:\ + :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun: +sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\ + :hs:\ + :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun-e: +sun-48|Sun 48-line window:\ + :co#80:li#48:tc=sun: +sun-34|Sun 34-line window:\ + :co#80:li#34:tc=sun: +sun-24|Sun 24-line window:\ + :co#80:li#24:tc=sun: +sun-17|Sun 17-line window:\ + :co#80:li#17:tc=sun: +sun-12|Sun 12-line window:\ + :co#80:li#12:tc=sun: +sun-1|Sun 1-line window for sysline:\ + :es:hs:\ + :co#80:li#1:\ + :ds=^L:fs=\E[K:ts=^M:tc=sun: +sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\ + :ei@:ic@:im@:\ + :tc=sun: +sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\ + :li#35:\ + :te=\E[>4h:ti=\E[>4l:tc=sun: + +#### Common Desktop Environment +# + +# This ships with Sun's CDE in Solaris 2.5 +# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net> +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +dtterm|CDE desktop terminal:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#0:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E F\E>\E[?1l\E[?7h\E[?45l:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :rc=\E8:sc=\E7:se=\E[22;27m:sf=\ED:so=\E[2;7m:sr=\EM:\ + :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: + +#### Mach +# + +# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk> +mach|Mach Console:\ + :am:km:\ + :co#80:it#8:li#25:\ + :@7=\E[Y:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\ + :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\ + :k9=\EOX:k;=\EOY:kD=\E[9:kH=\E[F:kI=\E[@:kN=\E[U:kP=\E[V:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[0m:sf=^J:so=\E[7m:ta=^I:up=\E[A: +mach-bold|Mach Console with bold instead of underline:\ + :ue=\E[0m:us=\E[1m:\ + :tc=mach: + +#### OSF Unix +# + +# OSF/1 1.1 Snapshot 2 +pmcons|pmconsole|PMAX console:\ + :am:\ + :co#128:li#57:\ + :bl=^G:cl=^L:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K: + +######## UNIX VIRTUAL TERMINALS AND TELNET CLIENTS +# + +#### FSF virtual terminal types +# + +# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 +eterm|gnu emacs term.el terminal emulation:\ + :am:mi:xn:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:se=\E[m:\ + :sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# Entries for use by the `screen' program by Juergen Weigert, +# Michael Schroeder, Oliver Laumann. The screen and +# screen-w entries came with version 3.7.1. The screen2 and screen3 entries +# come from University of Wisconsin and may be older. +# (screen: added :ve: on ANSI model -- esr) +# (screen: added <el1> -- TD) + +screen|VT 100/ANSI X3.64 virtual terminal:\ + :am:km:mi:ms:xn:\ + :Co#8:co#80:it#8:li#24:pa#64:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ + :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:r2=\Ec:rc=\E8:sc=\E7:se=\E[23m:\ + :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\EM:\ + :us=\E[4m:vb=\Eg:ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l:\ + :tc=ecma+color: + +screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols:\ + :co#132:tc=screen: + +screen2|old VT 100/ANSI X3.64 virtual terminal:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ic=:im=\E[4h:k0=\E~:\ + :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:\ + :k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\ + :me=\E[m:nd=\E[C:nw=^M^J:r1=\Ec:rc=\E8:sc=\E7:se=\E[23m:\ + :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\ + :us=\E[4m: +# (screen3: removed unknown ":xv:LP:G0:" -- esr) +screen3|older VT 100/ANSI X3.64 virtual terminal:\ + :km:mi:ms:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E>:kl=\EOD:kr=\EOC:ks=\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r1=\Ec:\ + :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[24m:up=\EM:us=\E[4m: + +# Francesco Potorti <F.Potorti@cnuce.cnr.it>: +# NCSA telnet is one of the most used telnet clients for the Macintosh. It has +# been maintained until recently by the National Center for Supercomputer +# Applications, and it is feature rich, stable and free. It can be downloaded +# from www.ncsa.edu. This terminfo description file is based on xterm-vt220, +# xterm+sl, and the docs at NCSA. It works well. +# +# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode +# The terminal options should be set as follows: +# Xterm sequences ON +# use VT wrap mode ON +# use Emacs arrow keys OFF +# CTRL-COMND is Emacs meta ON +# 8 bit mode ON +# answerback string: "ncsa-vt220-8" +# setup keys: all disabled +# +# Application mode is not used. +# +# Other special mappings: +# Apple VT220 +# HELP Find +# HOME Insert here +# PAGEUP Remove +# DEL Select +# END Prev Screen +# PAGEDOWN Next Screen +# +# Though it supports ANSI color, NCSA Telnet uses color to represent blinking +# text. +# +# The status-line manipulation is a mapping of the xterm-compatible control +# sequences for setting the window-title. So you must use tsl and fsl in +# pairs, since the latter ends the string that is loaded to the window-title. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\ + :am:hs:km:mi:ms:xn:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E]0;\007:ei=\E[4l:fs=^G:ho=\E[H:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>:k1=\E[17~:\ + :k2=\E[18:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E23~:\ + :k7=\E[24~:k8=\E[25~:k9=\E[26~:kD=\E[4~:kN=\E[6~:kP=\E[3~:\ + :kb=^H:kd=\E[B:kh=\E[2~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[2J\E8:ti=\E7:ts=\E]0;:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l: +ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\ + :tc=ncsa-m:tc=klone+color: +ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\ + :hs@:\ + :ds@:fs@:ts@:tc=ncsa: +ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\ + :hs@:\ + :ds@:fs@:ts@:tc=ncsa-m: +# alternate -TD: +# The documented function-key mapping refers to the Apple Extended Keyboard +# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style +# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on +# some keyboards and many applications require these as F1-F4. +# +ncsa-vt220|NCSA Telnet using vt220-compatible function keys:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :tc=ncsa: + +#### Pilot Pro Palm-Top +# + +# From: Jason Downs <downsj@downsj.com>, 15 Jun 1997 (Top Gun Telnet's author) +pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional:\ + :am:xn:\ + :co#39:li#16:\ + :bl=^G:cl=\Ec:cm=\Em%+ %+ :cr=^M:do=^J:ho=\Em :kN=^L:kP=^K:\ + :kb=^H:kd=^J:kl=^H:le=^H:nw=\Em~ :se=\EB:sf=^J:so=\Eb:ta=^I: + +######## NON-UNIX CONSOLES +# + +#### MGR +# +# MGR is a Bell Labs window system lighter-weight than X. +# These entries describe MGR's xterm-equivalent. +# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 +# + +mgr|Bellcore MGR (non X) window system terminal emulation:\ + :am:km:\ + :AL=\E%da:DC=\E%dE:DL=\E%dd:IC=\E%dA:RA=\E5S:SA=\E5s:\ + :al=\Ea:bl=^G:cd=\EC:ce=\Ec:cl=^L:cm=\E%r%d;%dM:cr=^M:\ + :cs=\E%d;%dt:dc=\EE:dl=\Ed:do=\Ef:ei=:hd=\E1;2f:hu=\E1;2u:\ + :ic=\EA:im=:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :md=\E2n:me=\E0n:mr=\E1n:nd=\Er:nw=^M^J:se=\E0n:sf=^J:\ + :so=\E1n:ta=^I:ue=\E0n:up=\Eu:us=\E4n:ve=\Eh:vi=\E9h:\ + :vs=\E0h: +mgr-sun|Mgr window with Sun keyboard:\ + :%1=\E[207z:%6=\E[198z:&8=\E[195z:@0=\E[200z:@5=\E197z:\ + :@7=\E[220z:@8=\E[250z:F1=\E[234z:F2=\E[235z:K1=\E[214z:\ + :K2=\E[218z:K3=\E[216z:K4=\E[220z:K5=\E[222z:k1=\E[224z:\ + :k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:k6=\E[229z:\ + :k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:kN=\E[222z:\ + :kP=\E[216z:kh=\E[214z:\ + :tc=mgr: +mgr-linux|Mgr window with Linux keyboard:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:K1=\E[H:K2=\E[G:K3=\E[5~:\ + :K4=\E[Y:K5=\E[6~:k0=\E[[J:k1=\E[[A:k2=\E[[B:k3=\E[[C:\ + :k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:k;=\E[21~:kD=\E[3~:kN=\E[6~:kP=\E[5~:kh=\E[1~:tc=mgr: + +#### BeOS +# +# BeOS entry for Terminal program Seems to be almost ANSI +beterm|BeOS Terminal:\ + :am:eo:mi:ms:xn:xo:\ + :Co#8:NC#5:co#80:it#8:li#25:pa#64:\ + :&7=^Z:@7=\E[4~:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:\ + :DC=\E[%dP:DL=\E[%dM:F1=\E[21~:F2=\E[22~:IC=\E[%d@:\ + :Sb=\E[%+(m:Sf=\E[%+^^m:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[16~:k7=\E[17~:\ + :k8=\E[18~:k9=\E[19~:k;=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:md=\E[1m:me=\E[0;10m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :op=\E[m:r1=\Ec:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:ue=\E[24m:up=\E[A:\ + :us=\E[4m: + +#### QNX +# + +# QNX 4.0 Console +# Michael's original version of this entry had <am@>, :ti=\Ei:, +# :te=\Eh\ER:; this was so terminfo applications could write the lower +# right corner without triggering a scroll. The ncurses terminfo library can +# handle this case with the :ic: capability, and prefers :am: for better +# optimization. Bug: The <op> capability resets attributes. +# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996 +# (removed: :sa=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,:) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +qnx|qnx4|qnx console:\ + :km:mi:ms:xt:\ + :co#80:it#4:li#25:\ + :al=\EE:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ + :dc=\Ef:dl=\EF:do=^J:ei=:ho=\EH:ic=\Ee:im=:k1=\377\201:\ + :k2=\377\202:k3=\377\203:k4=\377\204:k5=\377\205:\ + :k6=\377\206:k7=\377\207:k8=\377\210:k9=\377\211:\ + :kD=\377\254:kI=\377\253:kN=\377\252:kP=\377\242:\ + :kd=\377\251:kh=\377\240:kl=\377\244:kr=\377\246:\ + :ku=\377\241:le=^H:mb=\E{:md=\E<:me=\E}\E]\E>\E):mr=\E(:\ + :nd=\EC:rp=\Eg%r%+ %.:se=\E):sf=^J:so=\E(:sr=\EI:ta=^I:\ + :te=\Eh\ER:ti=\Ei:ue=\E]:up=\EA:us=\E[:ve=\Ey1:vi=\Ey0:\ + :vs=\Ey2: + +# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998 +# (esr: commented out <scp> and :te: to avoid warnings.) +# (TD: derive from original qnx4 entry) +qnxt2|qnx 2.15 serial terminal:\ + :am:\ + :!3@:%h@:%j@:&7@:Sb@:Sf@:dc@:ei=:ic@:im=:rp@:se=\E>:so=\E<:te@:ti@:\ + :ve@:vi@:vs@:\ + :tc=qnx4: + +#### DOS ANSI.SYS variants +# +# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS +# documentation (except for the keyboard key reassignment feature, which +# doen't fit the <pfkey> model well). The klone+acs sequences were valid +# though undocumented. The <pfkey> capability is untested but should work for +# keys F1-F10 (%p1 values outside this range will yield unpredictable results). +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995 +ansi.sys-old|ANSI.SYS under PC-DOS 2.1:\ + :am:bs:mi:ms:xo:\ + :co#80:li#25:\ + :RA=\E[?7l:SA=\E[?7h:ce=\E[k:cl=\E[2J:cm=\E[%i%d;%dH:\ + :do=\E[B:ho=\E[H:is=\E[m\E[?7h:kd=^J:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=\E[C:pk=\E[0;%+:;"%s":rc=\E[u:sc=\E[s:\ + :u6=\E[%i%d;%dR:u7=\E[6n:up=\E[A:\ + :tc=klone+color:tc=klone+sgr: +ansi.sys|ANSI.SYS 3.1 and later versions:\ + :ce=\E[K:tc=ansi.sys-old: + +# +# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS. +# This should only be used when the terminal emulator cannot redefine the keys. +# Since redefining keys with ansi.sys also affects PC-DOS programs, the key +# definitions must be restored. If the terminal emulator is quit while in vi +# or others using :ks:/:ke:, the keypad will not be defined as per PC-DOS. +# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix +# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it +# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab. +# Note that :kl: is always BS, because PC-dos can tolerate this change. +# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi. +# Consequently the End keypad key could not be set (it is relatively safe and +# actually useful because it sends ^@ O, which beeps and opens a line above). +ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi:\ + :is=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\ + :ke=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p:\ + :ks=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p:\ + :tc=ansi.sys: +# +# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer. +nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS:\ + :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ + :is=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n:tc=ansi.sys: +# +# See ansi.sysk and nansi.sys above. +nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi:\ + :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ + :is=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:tc=ansi.sysk: + +#### OS/2 +# + +# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b, +# a Unix-style environment used on OS/2. (Note that the suffix makes some +# names longer than 14 characters, the nominal maximum). +# +# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs. +ansi-emx|ANSI.SYS color:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[1;33;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\E[1;33;44m:mr=\E[5;37;41m:nd=\E[C:nw=^M^J:\ + :r1=\Ec:se=\E[0;44m\E[1;33m:sf=^J:so=\E[0;31;47m:st=\EH:\ + :ta=^I:u8=\E[?6c:u9=\E[c:ue=\E[0;44m\E[1;33m:up=\E[A:\ + :us=\E[1;31;44m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l: +ansi-color-2-emx|ANSI.SYS color 2:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[0;37;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;37;44m:\ + :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;44m:\ + :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\ + :ue=\E[0;37;44m:up=\E[A:us=\E[1;36;44m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: +ansi-color-3-emx|ANSI.SYS color 3:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[0;37;40m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;40m:\ + :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\ + :ue=\E[0;37;40m:up=\E[A:us=\E[0;36;40m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: +mono-emx|stupid monochrome ansi terminal with only one kind of emphasis:\ + :am:\ + :co#80:it#8:li#24:\ + :K2=\E[G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\ + :ho=\E[H:k0=\0D:k1=\0;:k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:\ + :k7=\0A:k8=\0B:k9=\0C:kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:\ + :kd=\0P:kh=\0G:kl=\0K:kr=\0M:ku=\0H:le=\E[D:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:ta=^I:up=\E[A: + +# Use this for cygwin32 (tested with beta 19.1) +# underline is colored bright magenta +# shifted kf1-kf12 are kf11-kf22 +cygwin|ansi emulation for cygwin32:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\ + :FA=\E[34~:RA@:SA@:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:\ + :k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:\ + :kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=ansi.sys: + + +#### Windows NT +# +# This entry fits the Windows NT console when the _POSIX_TERM environment +# variable is set to 'on'. While the Windows NT POSIX console is seldom used, +# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP +# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating +# systems is not, and (surprise!) they match very well. +# +# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up +# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only +# are the installation instructions a pile of mind-numbing bureaucratese, +# but the termcap entry is actually broken and unusable as given; the :do: +# capability is misspelled "d". +# +# To use this, you need to a bunch of environment variables: +# +# SET _POSIX_TERM=on +# SET TERM=ansi +# SET TERMCAP=location of termcap file in POSIX file format +# which is case-sensitive. +# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap +# SET TMP=//C/TEMP +# +# Important note: setting the TMP environment variable in POSIX style renders +# it incompatible with a lot of other applications, including Visual C++. So +# you should have a separate command window just for vi. All the other +# variables may be permanently set in the Control Panel\System applet. +# +# You can find out more about the restrictions of this facility at +# <http://www.nentug.org/unix-to-nt/ntposix.htm>. +# +# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997 +ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode:\ + :am:bw:ms:\ + :co#80:it#8:li#25:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :ho=\E[H:kb=^H:kd=\E[V:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:nw=\r\E[S:rc=\E[u:sc=\E[s:\ + :se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:up=\E[A: +# From: jew@venus.sunquest.com +# Date: 19 Feb 93 23:41:07 GMT +# Here's a combination of ansi and vt100 termcap +# entries that works nearly perfectly for me +# (Gateway 2000 Handbook and Microsoft Works 3.0): +pcmw|PC running Microsoft Works:\ + :am:xn:\ + :co#80:it#8:li#24:vt#3:\ + :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:ct=2\E[3g:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=2\E[5m:\ + :md=2\E[1m:me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=5\r\ED:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/lib/tabset/vt100:sc=\E7:se=2\E[m:sf=5\ED:\ + :so=2\E[7m:sr=5\EM:st=2\EH:ta=^I:ue=2\E[m:up=2\E[A:\ + :us=2\E[4m: + +######## COMMON TERMINAL TYPES +# +# This section describes terminal classes and maker brands that are still +# quite common, but have proprietary command sets not blessed by ANSI. +# + +#### Lear-Siegler (adm) +# +# These guys are long since out of the terminals business, but +# in 1995 many current terminals still have an adm type as one of their +# emulations (usually their stupidest, and usually labeled adm3, though +# these `adm3' emulations normally have adm3a+ capabilities). +# +# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a +# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator') +# was being held to ground would trigger a send of the top line on the screen. +# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22 +# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>, +# for clearing up this point.) +# + +adm1a|adm1|lsi adm1a:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cl=\E;:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:nd=^L:\ + :sf=^J:up=^K: +adm2|lsi adm2:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# (adm3: removed obsolete ":ma=^K^P:" -- esr) +adm3|lsi adm3:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^Z:cr=^M:do=^J:le=^H:sf=^J: +# The following ADM-3A switch settings are assumed for normal operation: +# SPACE U/L_DISP CLR_SCRN 24_LINE +# CUR_CTL LC_EN AUTO_NL FDX +# Other switches may be set for operator convenience or communication +# requirements. I recommend +# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF +# ETX_OFF EOT_OFF +# Most of these terminals required an option ROM to support lower case display. +# Open the case and look at the motherboard; if you see an open 24-pin DIP +# socket, you may be out of luck. +# +# (adm3a: some capabilities merged in from BRl entry -- esr) +adm3a|lsi adm3a:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=1\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kd=^J:kl=^H:\ + :kr=^L:ku=^K:le=^H:ma=^K^P:nd=^L:nl=^J:r1=^N:rs=^N:sf=^J:\ + :up=^K: +adm3a+|adm3a plus:\ + :kb=^H:tc=adm3a: +# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr) +adm5|lsi adm5:\ + :sg#1:\ + :bl=^G:cd=\EY:ce=\ET:cr=^M:do=^J:kb=^H:kh=^^:se=\EG:so=\EG:tc=adm3a+: +# A lot of terminals other than adm11s use these. Wherever you see +# use=adm+sgr with some of its capabilities disabled, try the +# disabled ones. They may well work but not have been documented or +# expressed in the using entry. We'd like to cook up an :sa: but the +# :ae:/:as: sequences of the using entries vary too much. +adm+sgr|adm style highlight capabilities:\ + :me=\EG0:mk=\EG1:mr=\EG4:se=\EG0:so=\EG4:ue=\EG0:us=\EG8: +# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL +# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs> +# :kh: from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. :cl: could also +# be ^Z, according to his entry. +# (adm11: :us:=\EG4 was obviously erroneous because it also said +# :mr:=\EG4. Looking at other ADMs confirms this -- esr) +adm11|LSI ADM-11:\ + :am:bs:hs:\ + :co#80:kn#8:li#24:\ + :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ds=\Eh:\ + :fs=\E(\r:ho=^^:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:nd=^L:nl=^J:nw=^M^J:ta=^I:\ + :ts=\EF\E):up=^K:\ + :tc=adm+sgr: +# From: Andrew Scott Beals <bandy@lll-crg.ARPA> +# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995 +# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996 +# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had +# :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost> +# via BRL. That entry asserted :sg#1:, but I've left that out because +# neither earlier nor later ADMSs have it -- esr) +# +# You will need to get into the supervisor setup before you can set +# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should +# see a lot more setup options. +# +# While in supervisor setup you can also use following codes: +# +# Ctrl-P Personality character selections (configure for example what +# arrow keys send, if I recall correctly) +# Ctrl-T tabs 1-80 use left&right to move and up to set and +# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor +# Ctrl-B Binary setup (probably not needed. I think that everything can +# be set using normal setup) +# Ctrl-A Answerback mode (enter answerback message) +# Ctrl-U User friendly mode (normal setup) +# Ctrl-D Defaults entire setup and function keys from EPROM tables +# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds. +# Ctrl-R Reads both setup and functions keys from NVM. +# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status +# +# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to +# RTS/CTS used nowadays with virtually every modem and computer. 19200 +# bps works fine with hardware flow control. +# +# The following null-modem cable should fix this and enable you to use +# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also +# set ADM-12+ for DTR handshaking from supervisor setup. +# +# PC Serial ADM-12+ +# -------- ------- +# 2 - 3 +# 3 - 2 +# 4 - 5 +# 5 - 20 +# 6,8 - 4 +# 7 - 7 +# 20 - 6,8 +# +adm12|lsi adm12:\ + :am:bs:mi:pt:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E0:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:ic=\EQ:im=\Eq:\ + :is=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1:\ + :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\ + :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=^L:st=\E1:up=^K:\ + :tc=adm+sgr: +# (adm20: removed obsolete ":kn#7:" -- esr) +adm20|lear siegler adm20:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%i%r%+^_%+^_:cr=^M:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:\ + :im=:k1=^A:k2=^B:k3=^W:k4=^D:k5=^E:k6=^X:k7=^Z:le=^H:me=\E(:\ + :nd=^L:se=\E(:so=\E):ta=^I:up=^K: +adm21|lear siegler adm21:\ + :sg#1:\ + :al=30*\EE:bl=^G:cd=\EY:ce=\ET:cr=^M:dc=\EW:dl=30*\ER:do=^J:\ + :ei=:ic=\EQ:im=:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:mk@:sf=^J:\ + :tc=adm+sgr:tc=adm3a: +# (adm22: ":em=:" was an obvious typo for ":ei=:"; also, +# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :"; +# removed bogus-looking \200 from before :cm:. -- esr) +adm22|lsi adm22:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ + :is=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:l1=F1:l2=F2:\ + :l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:le=^H:me=\E(:nd=^L:se=\E(:\ + :so=\E):ta=\Ei:up=^K: +# ADM 31 DIP Switches +# +# This information comes from two versions of the manual for the +# Lear-Siegler ADM 31. +# +# Main board: +# rear of case +# +-||||-------------------------------------+ +# + S1S2 ||S + +# + ||3 + +# + + +# + ||S + +# + ||4 + +# + + +# + + +# + + +# + + +# + + +# +-+ +-+ +# + + +# + S5 S6 S7 + +# + == == == + +# +----------------------------------------------+ +# front of case (keyboard) +# +# S1 - Data Rate - Modem +# S2 - Data Rate - Printer +# ------------------------ +# Data Rate Setting +# ------------------- +# 50 0 0 0 0 +# 75 1 0 0 0 +# 110 0 1 0 0 +# 134.5 1 1 0 0 +# 150 0 0 1 0 +# 300 1 0 1 0 +# 600 0 1 1 0 +# 1200 1 1 1 0 +# 1800 0 0 0 1 +# 2000 1 0 0 1 +# 2400 0 1 0 1 +# 3600 1 1 0 1 +# 4800 0 0 1 1 +# 7200 1 0 1 1 +# 9600 0 1 1 1 +# x 1 1 1 1 +# +# S3 - Interface/Printer/Attributes +# --------------------------------- +# Printer Busy Control +# sw1 sw2 sw3 +# --------------- +# off off off Busy not active, CD disabled +# off off on Busy not active, CD enabled +# off on off Busy active on J5-20, CD disabled +# on off off Busy active on J5-19, CD disabled - Factory Set. +# on off on Busy active on J5-19, CD enabled +# +# sw4 Used in conjuction with S4 for comm interface control - Fact 0 +# +# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0 +# +# sw6 ON enables printer BUSY active LOW - Factory Setting +# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses +# +# sw7 ON - steady cursor - Factory Setting +# OFF - blinking cursor +# +# sw8 ON causes selected attribute character to be displayed +# OFF causes SPACE to be displayed instead - Factory Setting +# +# S4 - Interface +# -------------- +# Modem Interface +# S3 S4 S4 S4 S4 +# sw4 sw1 sw2 sw3 sw4 +# --------------------------- +# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and +# Current Loop disabled - Factory Setting +# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect +# disabled +# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and +# Current Loop Disabled +# +# sw5 ON disables dot stretching mode - Factory Setting +# OFF enables dot stretching mode +# sw6 ON enables blanking function +# OFF enables underline function - Factory Setting +# sw7 ON causes NULLS to be displayed as NULLS +# OFF causes NULLS to be displayed as SPACES - Factory Setting +# +# S5 - Word Structure +# ------------------- +# sw1 ON enables BREAK key - Factory Setting +# OFF disables BREAK key +# sw2 ON selects 50Hz monitor refresh rate +# OFF selects 60Hz monitor refresh rate - Factory Setting +# +# Modem Port Selection +# sw3 sw4 sw5 +# --------------- +# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits +# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits +# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set. +# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit +# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits +# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit +# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit +# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit +# +# sw6 ON sends bit 8 a 1 (mark) +# OFF sends bit 8 as 0 (space) - Factory Setting +# sw7 ON selects Block Mode +# OFF selects Conversation Mode - Factory Setting +# sw8 ON selects Full Duplex operation +# OFF selects Half Duplex operation - Factory Setting +# +# S6 - Printer +# ------------ +# sw1, sw2, sw6, sw7 Reserved - Factory 0 +# +# Printer Port Selection +# same as Modem above, bit 8 (when 8 DATA bits) is always = 0 +# +# sw8 ON enables Printer Port +# OFF disables Printer Port - Factory Setting +# +# S7 - Polling Address +# -------------------- +# sw1-7 Establish ASCII character which designates terminal polling address +# ON = logic 0 +# OFF = logic 1 - Factory Setting +# sw8 ON enables Polling Option +# OFF disables Polling Option - Factory Setting +# +# +# On some older adm31s, S4 does not exist, and S5-sw6 is not defined. +# +# This adm31 entry uses underline as the standout mode. +# If the adm31 gives you trouble with standout mode, check the DIP switch in +# position 6, bank @c11, 25% from back end of the circuit board. Should be +# OFF. If there is no such switch, you have an old adm31 and must use oadm31. +# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) +adm31|lsi adm31 with sw6 set for underline mode:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E0:k0=^A0\r:\ + :k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:k6=^A6\r:\ + :k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:\ + :me=\EG0:nd=^L:se=\EG0:sf=^J:so=\EG1:ue=\EG0:up=^K:us=\EG1: +adm31-old|o31|old adm31:\ + :so=\EG4:ue@:us@:tc=adm31: +# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL +adm36|LSI ADM36:\ + :bs:pt:\ + :kn#4:\ + :if=/usr/lib/tabset/vt100:\ + :is=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l:tc=vt100: +# (adm42: removed obsolete ":ma=^K^P:" -- esr) +adm42|lsi adm42:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\ + :up=^K:us@:vs=\EC\E3 \E3(:\ + :tc=adm+sgr: +# The following termcap for the Lear Siegler ADM-42 leaves the +# "system line" at the bottom of the screen blank (for those who +# find it distracting otherwise) +adm42-ns|lsi adm-42 with no system line:\ + :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\ + :ce=\ET\EF \011:cl=\E;\EF \011:cm=\E=%+ %+ \EF \011:\ + :dc=\EW\EF \011:dl=\ER\EF \011:ei=\Er\EF \011:\ + :im=\Eq\EF \011:tc=adm42: +# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985. +# The insert mode of this terminal is commented out because it's broken for our +# purposes in that it will shift the position of every character on the page, +# not just the cursor line! +# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996 +adm1178|1178|lsi adm1178:\ + :am:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ho=^^:ip=6*:kb=^H:kd=^J:kl=^H:\ + :le=^H:md=\E(:me=\E):mr=\EG4:nd=^L:nw=^M^J:pc=\177:se=\EG0:\ + :sf=^J:so=\EG4:ta=^I:ue=\EG0:up=^K:us=\EG1:vs=\EC\E3 \E3(: + +#### Qume (qvt) +# +# Qume, Inc. +# 3475-A North 1st Street +# San Jose CA 95134 +# Vox: (800)-457-4447 +# Fax: (408)-473-1510 +# Net: josed@techsupp.wyse.com (Jose D'Oliveira) +# +# Qume was bought by Wyse, but still (as of early 1995) has its own support +# group and production division. +# +# Discontinued Qume models: +# +# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+ +# built to replace them, and a qvt119+ which was a 101+ with available wide +# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations +# and an ANSI-compatible qvt203 that replaced it. Qume started producing +# ANSI-compatible terminals with the qvt323 and qvt61. +# +# Current Qume models (as of February 1995): +# +# All current Qume terminals have ANSI-compatible operation modes. +# Qume is still producing the qvt62, which features emulations for other +# popular lines such as ADDS, and dual-host capabilities. The qvt82 is +# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal +# with many emulations including Wyse370, Wyse 325, etc. Their newest +# model is the qvt520, which is vt420-compatible. +# +# There are some ancient printing Qume terminals under `Daisy Wheel Printers' +# +# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its +# setup mode. Shift-s should be a configuration save to NVRAM. + +qvt101|qvt108|qume qvt 101 and QVT 108:\ + :sg#1:tc=qvt101+: + +# This used to have :vs=\E.2: but no :ve: or :vi:. The BSD termcap +# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked +# both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E). +# What seems to be going on here is that this entry was designed so that +# the normal highlight is bold and standout is dim plus something else +# (reverse-video maybe? But then, are there two :mr: sequences?) +qvt101+|qvt101p|qume qvt 101 PLUS product:\ + :am:bw:hs:ul:\ + :co#80:li#24:sg#0:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ + :ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=:fs=^M:ho=^^:\ + :ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ + :kB=\EI:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\EA:po=\E@:se=\E(:sf=^J:\ + :so=\E0P\E):st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:\ + :tc=adm+sgr: +qvt102|qume qvt 102:\ + :ve=\E.:tc=qvt101: +# (qvt103: added <rmam>/<smam> based on init string -- esr) +qvt103|qume qvt 103:\ + :am:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +qvt103-w|qume qvt103 132 cols:\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt103: +qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals:\ + :am:hs:mi:ms:\ + :co#80:li#24:sg#0:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*1:cm=\E=%+ %+ :\ + :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:\ + :ho=^^:im=\Eq:is=\EDF\EC\EG0\Er\E(\E%EX:k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:sf=^J:sr=\EJ:st=\E1:ta=^I:\ + :ts=\Eg\Ef:up=^K:us=\EG8:vb=\En0\En1:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr: +qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines:\ + :li#25:tc=qvt119+: +qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode:\ + :co#132:\ + :is=\EDF\EC\EG0\Er\E(\E%\EX\En4:tc=qvt119+: +qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25:\ + :li#25:tc=qvt119+: +qvt203|qvt203+|qume qvt 203 Plus:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:ip=:k0=\E[29~:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[28~:sf=\n:\ + :tc=qvt103: +qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video):\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt203: +# +# Since a command is present for enabling 25 data lines, +# a specific terminfo entry may be generated for the 203. +# If one is desired for the QVT 119 PLUS then 25 lines must +# be selected in the status line (setup line 9). +# +qvt203-25|QVT 203 PLUS with 25 by 80 column mode:\ + :co#80:li#25:\ + :is=\E[=40h\E[?3l:tc=qvt203: +qvt203-25-w|QVT 203 PLUS with 25 by 132 columns:\ + :co#132:li#25:\ + :r2=\E[?3h\E[=40h:tc=qvt203: + +#### Televideo (tvi) +# +# TeleVideo +# 550 East Brokaw Road +# PO Box 49048 95161 +# San Jose CA 95112 +# Vox: (408)-954-8333 +# Fax: (408)-954-0623 +# +# +# There are some tvi terminals that require incredible amounts of padding and +# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and +# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding. +# +# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer +# Televideo terminals are ANSI and PC-ANSI compatible. + +tvi803|televideo 803:\ + :cl=\E*:tc=tvi950: + +# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86 +# Switch settings are: +# +# S1 1 2 3 4 +# D D D D 9600 +# D D D U 50 +# D D U D 75 +# D D U U 110 +# D U D D 135 +# D U D U 150 +# D U U D 300 +# D U U U 600 +# U D D D 1200 +# U D D U 1800 +# U D U D 2400 +# U D U U 3600 +# U U D D 4800 +# U U D U 7200 +# U U U D 9600 +# U U U U 19200 +# +# S1 5 6 7 8 +# U D X D 7N1 (data bits, parity, stop bits) (X means ignored) +# U D X U 7N2 +# U U D D 7O1 +# U U D U 7O2 +# U U U D 7E1 +# U U U U 7E2 +# D D X D 8N1 +# D D X U 8N2 +# D U D D 8O1 +# D U U U 8E2 +# +# S1 9 Autowrap +# U on +# D off +# +# S1 10 CR/LF +# U do CR/LF when CR received +# D do CR when CR received +# +# S2 1 Mode +# U block +# D conversational +# +# S2 2 Duplex +# U half +# D full +# +# S2 3 Hertz +# U 50 +# D 60 +# +# S2 4 Edit mode +# U local +# D duplex +# +# S2 5 Cursor type +# U underline +# D block +# +# S2 6 Cursor down key +# U send ^J +# D send ^V +# +# S2 7 Screen colour +# U green on black +# D black on green +# +# S2 8 DSR status (pin 6) +# U disconnected +# D connected +# +# S2 9 DCD status (pin 8) +# U disconnected +# D duplex +# +# S2 10 DTR status (pin 20) +# U disconnected +# D duplex +# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added :kh:, :le:, :do:, +# :sf:, <hpa>, <vpa>, :am:, :ms: from SCO entry -- esr) +tvi910|televideo model 910:\ + :am:bs:ms:\ + :co#80:it#8:li#24:sg#1:\ + :bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :\ + :cr=^M:cv=\E[%+ :do=^J:ho=\E=\001\001:\ + :if=/usr/share/tabset/stdcrt:k0=^AI\r:k1=^A@\r:k2=^AA\r:\ + :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ + :k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:\ + :sf=^J:ta=^I:up=^K:\ + :tc=adm+sgr: +# From: Alan R. Rogers <rogers%albany@csnet-relay> +# as subsequently hacked over by someone at SCO +# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr) +# +# Here are the 910+'s DIP switches (U = up, D = down, X = don't care): +# +# S1 1 2 3 4: +# D D D D 9600 D D D U 50 D D U D 75 D D U U 110 +# D U D D 135 D U D U 150 D U U D 300 D U U U 600 +# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600 +# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200 +# +# S1 5 6 7 8: +# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2 +# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2 +# D U D D 8O1 D U U U 8E2 +# +# S1 9 Autowrap (U = on, D = off) +# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received) +# S2 1 Mode (U = block, D = conversational) +# S2 2 Duplex (U = half, D = full) +# S2 3 Hertz (U = 50, D = 60) +# S2 4 Edit mode (U = local, D = duplex) +# S2 5 Cursor type (U = underline, D = block) +# S2 6 Cursor down key (U = send ^J, D = send ^V) +# S2 7 Screen colour (U = green on black, D = black on green) +# S2 8 DSR status (pin 6) (U = disconnected, D = connected) +# S2 9 DCD status (pin 8) (U = disconnected, D = connected) +# S2 10 DTR status (pin 20) (U = disconnected, D = connected) +# +tvi910+|televideo 910+:\ + :al=\EE:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:im=:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:ll=\E=7 :\ + :tc=tvi910: + +# (tvi912: removed obsolete ":ma=^K^P^L :", added :vb: and +# :kh: from BRL entry -- esr) +tvi912|tvi914|tvi920|old televideo 912/914/920:\ + :am:bs:ms:pt:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\Ey:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:k0=^AI\r:k1=^A@\r:\ + :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ + :k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:\ + :vb=\Eb\Ed: +# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r". +# The 920 has this plus real function keys that xmit different things. +# Terminfo makes you use the funct key on the 912 but the real keys on the 920. +tvi912c|tvi912b|new televideo 912:\ + :al=\EE:dl=\ER:tc=tvi912: +# set to page 1 when entering curses application (\E-17 ) +# reset to page 0 when exiting curses application (\E-07 ) +tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\ + :te=\E-07 :ti=\E-17 :tc=tvi912: +# We got some new tvi912c terminals that act really weird on the regular +# termcap, so one of our gurus worked this up. Seems that cursor +# addressing is broken. +tvi912cc|tvi912 at cowell college:\ + :cm@:tc=tvi912c: + +# Here are the switch settings for the tvi920c: +# +# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down: +# 2: 9600 3: 4800 4: 2400 5: 1200 +# 6: 600 7: 300 8: 150 9: 75 +# 10: 110 +# +# S2 UART/Terminal options: +# Up Down +# 1: Not used Not allowed +# 2: Alternate character set Standard character set +# 3: Full duplex Half duplex +# 4: 50 Hz refresh 60 Hz refresh +# 5: No parity Send parity +# 6: 2 stop bits 1 stop bit +# 7: 8 data bits 7 data bits +# 8: Not used Not allowed on Rev E or lower +# 9: Even parity Odd parity +# 10: Steady cursor Blinking cursor +# (On Rev E or lower, use W25 instead of switch 10.) +# +# S5 UART/Terminal options: +# Open Closed +# 1: P3-6 Not connected DSR received on P3-6 +# 2: P3-8 Not connected DCD received on P3-8 +# +# 3 Open, 4 Open: P3-20 Not connected +# 3 Open, 4 Closed: DTR on when terminal is on +# 3 Closed, 4 Open: DTR is connected to RTS +# 3 Closed, 4 Closed: Not allowed +# +# 5 Closed: HDX printer (hardware control) Rev. K with extension port off, +# all data transmitted out of the modem port (P3) will also be +# transmitted out of the printer port (P4). +# +# 6 Open, 7 Open: Not allowed +# 6 Open, 7 Closed: 20ma current loop input +# 6 Closed, 7 Open: RS232 input +# 6 Closed, 7 Closed: Not allowed +# +# Jumper options: +# If the jumper is installed, the effect will occur (the next time the terminal +# is switched on). +# +# S4/W31: Enables automatic LF upon receipt of CR from +# remote or keyboard. +# S4/W32: Enables transmission of EOT at the end of Send. If not +# installed, a carriage return is sent. +# S4/W33: Disables automatic carriage return in column 80. +# S4/W34: Selects Page Print Mode as initial condition. If not +# installed, Extension Mode is selected. +# +tvi920b|tvi920c|new televideo 920:\ + :al=\EE:dl=\ER:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :tc=tvi912: + +# Televideo 921 and variants +# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995 +# (tvi921: removed :ko=bt: before translation, I see no backtab cap; +# also added empty <acsc> to suppress tic warning -- esr) +tvi921|televideo model 921 with sysline same as page & real vi function:\ + :am:bs:hs:pt:xn:xs:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\ + :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\ + :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:ve=\E.3:\ + :vs=\E.2:\ + :tc=adm+sgr: +# without the beeper +# (tvi92B: removed :ko=bt: before translation, I see no backtab cap; +# also added empty <acsc> to suppress tic warning -- esr) +tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper:\ + :am:hs:xn:xs:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\ + :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\ + :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:vb=\Eb\Ed:\ + :ve=\E.3:vs=\E.2:\ + :tc=adm+sgr: +# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr) +tvi92D|tvi92B with DTR instead of XON/XOFF & better padding:\ + :al=2*\EE:dl=2*\ER:is=\El\E"\EF1\E.3\016\EA\E<:kA=2*\EE:\ + :kL=2*\ER:\ + :tc=tvi92B: + +# (tvi924: This used to have :ds=\Es0:, :fs=\031:. I put the new strings +# in from a BSD termcap file because it looks like they do something the +# old ones skip -- esr) +tvi924|televideo tvi924:\ + :am:bw:hs:in:mi:ms:xn:xo:\ + :co#80:it#8:li#24:sg#0:ws#80:\ + :F1=^AK\r:F2=^AL\r:F3=^AM\r:F4=^AN\r:F5=^AO\r:al=\EE:bl=^G:\ + :bt=\EI:cd=\Ey:ce=\Et:cl=\E*0:cm=\E=%+ %+ :cr=^M:\ + :cs=\E_%+ %+ :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Es0\Ef\031:\ + :ei=:fs=\031\Es1:ho=^^:\ + :i1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:k;=^AJ\r:kA=\EE:kC=\E*0:kD=\EW:kE=\Et:\ + :kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:\ + :l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:\ + :la=F11:le=^H:mb=\EG2:mk@:nd=^L:pk=\E|%+1%s\031:sf=^J:\ + :sr=\Ej:st=\E1:ta=^I:ts=\Ef:up=^K:vb=\Eb\Ed:ve=\E.3:vi=\E.0:\ + :vs=\E.1:\ + :tc=adm+sgr: + +# TVI925 DIP switches. In each of these, D = Down and U = Up, +# +# Here are the settings for the external (baud) switches (S1): +# +# Position Baud +# 7 8 9 10 [Printer] +# 1 2 3 4 [Main RS232] +# ----------------------------------------------------- +# D D D D 9600 +# D D D U 50 +# D D U D 75 +# D D U U 110 +# D U D D 135 +# D U D U 150 +# D U U D 300 +# D U U U 600 +# U D D D 1200 +# U D D U 1800 +# U D U D 2400 +# U D U U 3600 +# U U D D 4800 +# U U D U 7200 +# U U U D 9600 +# U U U U 19200 +# +# +# Settings for word length and stop-bits (S1) +# +# Position Description +# 5 6 +# --------------------------- +# U - 7-bit word +# D - 8-bit word +# - U 2 stop bits +# - D 1 stop bit +# +# +# S2 (external) settings +# +# Position Up Dn Description +# -------------------------------------------- +# 1 X Local edit +# X Duplex edit (transmit editing keys) +# -------------------------------------------- +# 2 X 912/920 emulation +# X 925 +# -------------------------------------------- +# 3 X +# 4 X No parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Odd parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Even parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Mark parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Space parity +# 5 X +# -------------------------------------------- +# 6 X White on black display +# X Black on white display +# -------------------------------------------- +# 7 X Half Duplex +# 8 X +# -------------------------------------------- +# 7 X Full Duplex +# 8 X +# -------------------------------------------- +# 7 X Block mode +# 8 X +# -------------------------------------------- +# 9 X 50 Hz +# X 60 Hz +# -------------------------------------------- +# 10 X CR/LF (Auto LF) +# X CR only +# +# S3 (internal switch) settings: +# +# Position Up Dn Description +# -------------------------------------------- +# 1 X Keyclick off +# X Keyclick on +# -------------------------------------------- +# 2 X English +# 3 X +# -------------------------------------------- +# 2 X German +# 3 X +# -------------------------------------------- +# 2 X French +# 3 X +# -------------------------------------------- +# 2 X Spanish +# 3 X +# -------------------------------------------- +# 4 X Blinking block cursor +# 5 X +# -------------------------------------------- +# 4 X Blinking underline cursor +# 5 X +# -------------------------------------------- +# 4 X Steady block cursor +# 5 X +# -------------------------------------------- +# 4 X Steady underline cursor +# 5 X +# -------------------------------------------- +# 6 X Screen blanking timer (ON) +# X Screen blanking timer (OFF) +# -------------------------------------------- +# 7 X Page attributes +# X Line attributes +# -------------------------------------------- +# 8 X DCD disconnected +# X DCD connected +# -------------------------------------------- +# 9 X DSR disconnected +# X DSR connected +# -------------------------------------------- +# 10 X DTR Disconnected +# X DTR connected +# -------------------------------------------- +# +# (tvi925: BSD has :cl=\E*:. I got :is: and :sr: from there -- esr) +tvi925|televideo 925:\ + :am:bs:bw:hs:ul:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ + :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Eh:ei=:fs=^M\Eg:ho=^^:ic=\EQ:\ + :im=:is=\El\E":k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :kA=\EE:kC=^Z:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:\ + :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:sf=^J:sr=\Ej:st=\E1:\ + :ta=^I:ts=\Eh\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr: +# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL +# to avoid "magic cookie" standout glitch: +tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ + :sg@:\ + :kb=^H:kd=^J:kl=^H:se=\E(:so=\E):tc=tvi925: + +# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993 +# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82 +# for additional capabilities, +# The following tvi descriptions from B:pjphar and virus!mike +# is for all 950s. It sets the following attributes: +# full duplex (\EDF) write protect off (\E() +# conversation mode (\EC) graphics mode off (\E%) +# white on black (\Ed) auto page flip off (\Ew) +# turn off status line (\Eg) clear status line (\Ef\r) +# normal video (\E0) monitor mode off (\EX or \Eu) +# edit mode (\Er) load blank char to space (\Ee\040) +# line edit mode (\EO) enable buffer control (^O) +# protect mode off (\E\047) duplex edit keys (\El) +# program unshifted send key to send line all (\E016) +# program shifted send key to send line unprotected (\E004) +# set the following to nulls: +# field delimiter (\Ex0\200\200) +# line delimiter (\Ex1\200\200) +# start-protected field delimiter (\Ex2\200\200) +# end-protected field delimiter (\Ex3\200\200) +# set end of text delimiter to carriage return/null (\Ex4\r\200) +# +# TVI 950 Switch Setting Reference Charts +# +# TABLE 1: +# +# S1 1 2 3 4 5 6 7 8 9 10 +# +-----------------------+-----+-----+-----------------------+ +# | Computer Baud Rate |Data |Stop | Printer Baud Rate | +# | |Bits |Bits | | +# +------+-----------------------+-----+-----+-----------------------+ +# | Up | See | 7 | 2 | See | +# +------+-----------------------+-----+-----+-----------------------+ +# | Down | TABLE 2 | 8 | 1 | TABLE 2 | +# +------+-----------------------+-----+-----+-----------------------+ +# +# +# S2 1 2 3 4 5 6 7 8 9 10 +# +-----+-----+-----------------+-----+-----------+-----+-----+ +# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click| +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# | Up | Dplx|Blink| See |GonBk| See | 60 | Off | +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On | +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# +# TABLE 2: +# +# +-----------+-----+-----+-----+-----+-----------+ +# | Display | 1 | 2 | 3 | 4 | Baud | +# +-----------+-----+-----+-----+-----+ | +# | Printer | 7 | 8 | 9 | 10 | Rate | +# +-----------+-----+-----+-----+-----+-----------+ +# | D | D | D | D | 9600 | +# | U | D | D | D | 50 | +# | D | U | D | D | 75 | +# | U | U | D | D | 110 | +# | D | D | U | D | 135 | +# | U | D | U | D | 150 | +# | D | U | U | D | 300 | +# | U | U | U | D | 600 | +# | D | D | D | U | 1200 | +# | U | D | D | U | 1800 | +# | D | U | D | U | 2400 | +# | U | U | D | U | 3600 | +# | D | D | U | U | 4800 | +# | U | D | U | U | 7200 | +# | D | U | U | U | 9600 | +# | U | U | U | U | 19200 | +# +-----+-----+-----+-----+-----------+ +# +# TABLE 3: +# +-----+-----+-----+-----------+ +# | 3 | 4 | 5 | Parity | +# +-----+-----+-----+-----------+ +# | X | X | D | None | +# | D | D | U | Odd | +# | D | U | U | Even | +# | U | D | U | Mark | +# | U | U | U | Space | +# +-----+-----+-----+-----------+ +# X = don't care +# +# CHART: +# +-----+-----+-----------------+ +# | 7 | 8 | Communication | +# +-----+-----+-----------------+ +# | D | D | Half Duplex | +# | D | U | Full Duplex | +# | U | D | Block | +# | U | U | Local | +# +-----+-----+-----------------+ +# +# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". +# I also inserted :ic: and :kI:; the :ko: string indicated that :IC: +# should be present and all tvi native modes use the same string for this. +# Finally, note that BSD has cud1=^V. -- esr) +tvi950|televideo 950:\ + :am:bs:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:sg#1:\ + :ac=b\011c\014d\re\ni\013:ae=^X:al=\EE:as=^U:bl=^G:bt=\EI:\ + :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:\ + :dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:ic=\EQ:im=\Eq:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r:\ + :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:\ + :kD=\EW:kE=\Et:kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\Ea:po=\E`:sf=^J:sr=\Ej:\ + :st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\ + :tc=adm+sgr: +# +# is for 950 with two pages adds the following: +# set 48 line page (\E\\2) +# place cursor at page 0, line 24, column 1 (\E-07 ) +# set local (no send) edit keys (\Ek) +# +# two page 950 adds the following: +# when entering ex, set 24 line page (\E\\1) +# when exiting ex, reset 48 line page (\E\\2) +# place cursor at 0,24,1 (\E-07 ) +# set duplex (send) edit keys (\El) when entering vi +# set local (no send) edit keys (\Ek) when exiting vi +# +tvi950-2p|televideo950 w/2 pages:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 \011:\ + :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :\ + :tc=tvi950: +# +# is for 950 with four pages adds the following: +# set 96 line page (\E\\3) +# place cursor at page 0, line 24, column 1 (\E-07 ) +# +# four page 950 adds the following: +# when entering ex, set 24 line page (\E\\1) +# when exiting ex, reset 96 line page (\E\\3) +# place cursor at 0,24,1 (\E-07 ) +# +tvi950-4p|televideo950 w/4 pages:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 \011:\ + :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :\ + :tc=tvi950: +# +# :is: for reverse video 950 changes the following: +# set reverse video (\Ed) +# +# set vb accordingly (\Ed ...delay... \Eb) +# +tvi950-rv|televideo950 rev video:\ + :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0:\ + :vb=\Ed\Eb:\ + :tc=tvi950: + +# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv +tvi950-rv-2p|televideo950 rev video w/2 pages:\ + :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 :\ + :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\ + :tc=tvi950: + +# tvi950-rv uses the appropriate entries from 950-4p and 950-rv +tvi950-rv-4p|televideo950 rev video w/4 pages:\ + :is=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 :\ + :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\ + :tc=tvi950: +# From: Andreas Stolcke <stolcke@icsi.berkeley.edu> +# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H"; +# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in +# the :rs: string, inserted the :IC: implied by the termcap :ko: string. Note +# the :ko: string had :cl: in it, which means that one of the original +# :cl=\E*:, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what +# the 950 has. Finally, corrected the <kel> string to match the 950 and what +# ko implies -- esr) +# If the BSD termcap file was right, :cm=\E=%p1%{32}%+%c%p2%{32}%+%c: would +# also work. +tvi955|televideo 955:\ + :5i:bs:ms@:\ + :it#8:sg@:\ + :RA=\E[=7l:RX=^N:SA=\E[=7h:SX=^O:\ + :ac=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ:ae=\E%:as=\E$:\ + :cm=\E[%i%d;%dH:do=^V:is=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El:\ + :kM=\EQ:kN=\EK:kP=\EJ:kT=\E1:ka=\E3:kt=\E2:mb=\EG2:\ + :me=\EG0\E[=5l:mh=\E[=5h:mk=\EG1:ps=\EP:\ + :r1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r:\ + :sf@:ve=\E.2:vi=\E.0:vs=\E.1:\ + :tc=tvi950: +tvi955-w|955-w|televideo955 w/132 cols:\ + :co#132:\ + :is=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El:tc=tvi955: +# use half-intensity as normal mode, full intensity as :md: +tvi955-hb|955-hb|televideo955 half-bright:\ + :is=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El:md=\E[=5l:\ + :me=\EG0\E[=5h:mh@:tc=tvi955: +# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin +# (tvi970: removed ":sg#0:"; removed :se:=\E[m, :ue:=\E[m; +# added :am:/:cs:/:ho:/<hpa>/<vpa>/:ti:/:te: from BRL. +# According to BRL we could have :ke:=\E>, :ks:=\E= but I'm not sure what +# it does to the function keys. I deduced <rmam>/<smam>. +# also added empty <acsc> to suppress tic warning, -- esr) +tvi970|televideo 970:\ + :am:bs:da:db:mi:ms:pt:\ + :co#80:it#8:li#24:\ + :RA=\E[?7h:SA=\E[?7l:ac=:ae=\E(B:al=\E[L:as=\E(B:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[2J:cm=\E[%i%d;%df:\ + :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=\ED:\ + :ds=\Eg\Ef\r:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J:k1=\E?a:\ + :k2=\E?b:k3=\E?c:k4=\E?d:k5=\E?e:k6=\E?f:k7=\E?g:k8=\E?h:\ + :k9=\E?i:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:te=:\ + :ti=\E[?20l\E[?7h\E[1Q:ue=\E[m:up=\EM:us=\E[4m:\ + :vb=\E[5m\E[m:vs=\E[1Q: +tvi970-vb|televideo 970 with visual bell:\ + :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:tc=tvi970: +tvi970-2p|televideo 970 with using 2 pages of memory:\ + :te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:\ + :tc=tvi970: +# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars +# per line (rather than 40), Esc K chooses the normal character set. Not sure +# padding is needed, but adapted from the tvi920c termcap. The :so: and +# :us: strings are klutzy, but at least use no screen space. +# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>, +# its absence means <smam>=\Ev isn't safe to use. -- esr) +# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. +# The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says: +# F1 and F2 should be programmed as ^A and ^B; required for UNIFY. +tvipt|televideo personal terminal:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dl=\ER:\ + :ho=^^:if=/usr/share/tabset/stdcrt:is=\Ev\Eu\EK:k0=^A:\ + :k1=^B:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:pf=^T:\ + :po=^R:se=\EF:so=\EG1@A\EH:ue=\EF:up=^K:us=\EG1B@\EH: +# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +tvi9065|televideo 9065:\ + :am:bw:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#25:lm#0:ma#4:vt#0:ws#30:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E%:\ + :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%+ %+ :cr=^M:cs=\E[%i%d;%dr:ct=\E3:dc=\EW:dl=\ER:\ + :dm=\Er:do=^V:ds=\E_30\r:ec=\E[%d@:ed=\0:ei=\Er:fs=^M:ho=^^:\ + :i1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er:\ + :i2=\E<\E[=4l\E[=8h:if=/usr/share/tabset/stdcrt:im=\Eq:\ + :ip=:is=\EF2\EG0\E\L:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kb=^H:\ + :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E[25;1H:mb=\EG2:\ + :md=\EG\054:me=\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^M^J:\ + :rp=\E[%r%db%.:se=\EG0:sf=^J:so=\EGt:sr=\Ej:st=\E1:ta=^I:\ + :te=\E.3\Er\E[1;25r\E[25;0H:ti=\E.2:ts=\E[4;1v\E_30:\ + :uc=\EG8\EG0:ue=\EG0:up=^K:us=\EG8:vb=\Eb\Ed:ve=\E.3:\ + :vi=\E.0:vs=\E.2: + +#### Visual (vi) +# +# In September 1993, Visual Technology of Westboro, Massachusetts, +# merged with White Pine Software of Nashua, New Hampshire. +# +# White Pine Software may be contacted at +1 603/886-9050. +# Or visit White Pine on the World Wide Web at URL http://www.wpine.com. +# + +# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs> +# Recently I hacked together the following termcap for Visual +# Technology's Visual 50 terminal. It's a slight modification of +# the vt52 termcap. +# It's intended to run when the Visual 50 is in vt52 emulation mode +# (I know what you're thinking; if it's emulating a vt52, then why +# another termcap? Well, it turns out that the Visual 50 can handle +# :dl: and db(?) among other things, which the vt52 can't) +# The termcap works OK for the most part. The only problem is on +# character inserts. The whole line gets painfully redrawn for each +# character typed. Any suggestions? +# Beau's entry is combined with the vi50 entry from University of Wisconsin. +# Note especially the :al: function. :k4:-:k6: are really l4-l6 in +# disguise; :k7:-:k9: are really l1-l3. +vi50|visual 50:\ + :am:bs:da:db:ms:pt:\ + :co#80:it#8:li#24:\ + :al=\EL:bl=^G:bt=4\Ez:cd=\EJ:ce=16\EK:cl=\EH\EJ:\ + :cm=\EY%+ %+ :cr=^M:dl=3*\EM:do=\EB:ho=\EH:k1=\EP:k2=\EQ:\ + :k3=\ER:k4=\EV:k5=\EE:k6=\E]:k7=\EL:k8=\Ev:k9=\EM:kb=^H:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:nl=^J:\ + :nw=^M^J:se=\ET:sf=^J:so=\EU:sr=\EI:ta=^I:ue=\EW:up=\EA:\ + :us=\ES: +# this one was BSD & SCO's vi50 +vi50adm|visual 50 in adm3a mode:\ + :am:ms:\ + :co#80:it#8:li#24:\ + :al=\EL:bl=^G:cd=\Ek:ce=\EK:cl=^Z:cm=\E=%+ %+ :cr=^M:dl=\EM:\ + :do=^J:ho=\EH:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\ + :nd=^L:se=\ET:sf=^J:so=\EU:ta=^I:up=^K: +# From: Jeff Siegal <jbs@quiotix.com> +vi55|Visual 55:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :cs=\E_%+A%+A:\ + :dc=\Ew:dl=\EM:do=^J:ei=\Eb:ho=\EH:im=\Ea:\ + :is=\Ev\E_AX\Eb\EW\E9P\ET:kb=^H:kd=\EB:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:nd=\EC:se=\ET:so=\EU:sr=\EI:ta=^I:up=\EA: + +# Visual 200 from BRL +# The following switch settings are assumed for normal operation: +# FULL_DUPLEX SCROLL CR +# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE +# Other switches may be set for operator convenience or communication +# requirements. +# Character insertion is kludged in order to get around the "beep" misfeature. +# (This cap is commented out because :im:/:ei: is more efficient -- esr) +# Supposedly "4*" delays should be used for :al:, :cd:, :cl:, :dc:, +# and :dl: strings, but we seem to get along fine without them. +vi200|visual 200:\ + :am:bs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :ac=:ae=\EG:al=\EL:as=\EF:bl=^G:bt=\Ez:cd=\Ey:ce=\Ex:cl=\Ev:\ + :cm=\EY%+ %+ :cr=^M:ct=\Eg:dc=\EO:dl=\EM:do=^J:ho=\EH:\ + :k0=\E?p:k1=\E?q:k2=\E?r:k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:\ + :k7=\E?w:k8=\E?x:k9=\E?y:kA=\EL:kC=\Ev:kD=\EO:kE=\Et:kI=\Ei:\ + :kL=\EM:kM=\Ej:kS=\EJ:kT=\E1:kb=^H:kd=\EB:ke=\E>:kh=\EH:\ + :kl=\ED:kr=\EC:ks=\E=:kt=\E2:ku=\EA:le=^H:me=\E3\Eb:mh=\E4:\ + :mk=\Ea:nd=\EC:pf=\EX:po=\EW:ps=\EH\E]:\ + :r1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX:se=\E3:sf=^J:so=\E4:\ + :sr=\EI:st=\E1:ta=^I:up=\EA:ve=\Ec:vs=\Ed: +# The older Visuals didn't come with function keys. This entry uses +# :ks: and :ke: so that the keypad keys can be used as function keys. +# If your version of vi doesn't support function keys you may want +# to use vi200-f. +vi200-f|visual 200 no function keys:\ + :is=\E3\Eb\Ej\E\\El\EG\Ed\Ek:k0=\E?p:k1=\E?q:k2=\E?r:\ + :k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:k7=\E?w:k8=\E?x:k9=\E?y:\ + :ke=\E>:ks=\E=:se@:so@:\ + :tc=vi200: +vi200-rv|visual 200 reverse video:\ + :se=\E3:so=\E4:sr@:ve@:vs@:tc=vi200: + +# the function keys are programmable but we don't reprogram them to their +# default values with :is: because programming them is very verbose. maybe +# an initialization file should be made for the 300 and they could be stuck +# in it. +# (vi300: added <rmam>/<smam> based on init string -- esr) +vi300|visual 300 ansi x3.64:\ + :am:bw:mi:xn:\ + :co#80:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s:\ + :k1=\E_A\E\:k2=\E_B\E\:k3=\E_C\E\:k4=\E_D\E\:k5=\E_E\E\:\ + :k6=\E_F\E\:k7=\E_G\E\:k8=\E_H\E\:k9=\E_I\E\:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\ + :se=\E[m:sf=^J:so=\E[1m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# some of the vi300s have older firmware that has the command +# sequence for setting editing extent reversed. +vi300-old|visual 300 with old firmware (set edit extent reversed):\ + :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s:\ + :tc=vi300: + +# Visual 500 prototype entry from University of Wisconsin. +# The best place to look for the escape sequences is page A1-1 of the +# Visual 500 manual. The initialization sequence given here may be +# overkill, but it does leave out some of the initializations which can +# be done with the menus in set-up mode. +# The :xp: line below is so that emacs can understand the padding requirements +# of this slow terminal. :xp: is 10 time the padding factor. +# (vi500: removed unknown :xp#4: termcap; +# also added empty <acsc> to suppress tic warning -- esr) +vi500|visual 500:\ + :am:mi:ms:\ + :co#80:it#8:li#33:\ + :ac=:ae=^O:al=3*\EL\Ex:as=^N:bt=4\Ez:cd=3*\Ey:ce=16\Ex:\ + :cl=6*\Ev:cm=\EY%+ %+ :cr=^M:cs=\E(%+ %+ :dc=3*\EO:\ + :dl=3*\EM:do=\EB:ei=\Ej:ho=\EH:im=\Ei:\ + :is=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\:\ + :kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :nw=^M^J:se=\E^G:sf=^J:so=\E^H:ta=8\011:ue=\E^C:up=\EA:\ + :us=\E^D: + +# The visual 550 is a visual 300 with tektronix graphics, +# and with 33 lines. clear screen is modified here to +# also clear the graphics. +vi550|visual 550 ansi x3.64:\ + :li#33:\ + :cl=\030\E[H\E[2J:tc=vi300: + +vi603|visual603|visual 603:\ + :hs:mi:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:ds=\EP2;1~\E\:ei=\E[4l:\ + :fs=\E\:i1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r:\ + :im=\E[4h:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ts=\EP2~:ue=\E[24m:\ + :up=\E[A:us=\E[4m:\ + :tc=vt100: + +#### Wyse (wy) +# +# Wyse Technology +# 3471 North First Street +# San Jose, CA 95134 +# Vox: (408)-473-1200 +# Fax: (408) 473-1222 +# Web: http://www.wyse.com +# +# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at +# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the +# obvious address, <http://www.wyse.com>. They keep terminfo entries at +# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>. +# +# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995. +# They now own the Qume and Amdek brands, too. So these are the people to +# talk with about all Link, Qume, and Amdek terminals. +# +# These entries include a few small fixes. +# I canceled the bel capacities in the vb entries. +# I made two trivial syntax fixes in the wyse30 entry. +# I made some entries relative to adm+sgr. +# +# +# Note: The wyse75, wyse85, and wyse99 have been discontinued. + +# Although the Wyse 30 can support more than one attribute +# it requires magic cookies to do so. Many applications do not +# function well with magic cookies. The following terminfo uses +# the protect mode to support one attribute (dim) without cookies. +# If more than one attribute is needed then the wy30-mc terminfo +# should be used. +# +wy30|wyse30|Wyse 30:\ + :5i:am:bw:hs:mi:ms:xo:\ + :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\ + :#2=\E{:&3=\Er:@8=\E7:LF=\EA11:LO=\EA10:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ + :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\ + :ho=^^:im=\Eq:ip=:is=\E'\E(\E\1363\E`9\016\024:k1=^A@\r:\ + :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ + :k8=^AG\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:\ + :kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :ll=^^^K:me=\E(\EH\003:mh=\E`7\E):mp=\E`7\E):nd=^L:\ + :nw=^M^J:pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:\ + :..sa=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\E(:sf=\n:so=\E`7\E):sr=\Ej:st=\E1:ta=\011:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +# (wy30-mc: added :ti: to suppress tic warning --esr) +wy30-mc|wyse30-mc|wyse 30 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ + :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):\ + :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\EG0:so=\EG4:te=\EG0:ti=:\ + :tc=wy30:tc=adm+sgr: +# The mandatory pause used by :vb: does not work with +# older versions of terminfo. If you see this effect then +# unset xon and delete the / from the delay. +# i.e. change $<100/> to $<100> +wy30-vb|wyse30-vb|wyse 30 visible bell:\ + :bl@:tc=wy30: +# +# The Wyse 50 can support one attribute (e.g. Dim, Inverse, +# Normal) without magic cookies by using the protect mode. +# The following description uses this feature, but when more +# than one attribute is put on the screen at once, all attributes +# will be changed to be the same as the last attribute given. +# The Wyse 50 can support more attributes when used with magic +# cookies. The wy50-mc terminal description uses magic cookies +# to correctly handle multiple attributes on a screen. +# +wy50|wyse50|Wyse 50:\ + :5i:am:bw:hs:mi:ms:xo:\ + :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ + :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\ + :ho=^^:i1=\E`\072\E`9:im=\Eq:ip=:is=\016\024\E'\E(:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\ + :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:mh=\E`7\E):\ + :mp=\E`7\E):mr=\E`6\E):nd=^L:nw=^M^J:pf=^T:pn=\Ez%+/%s\r:\ + :po=^X:ps=\EP:px=\Ez%+?%s\177:\ + :..sa=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\E(:sf=\n:so=\E`6\E):sr=\Ej:st=\E1:ta=^I:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +# The mandatory pause used by flash does not work with some +# older versions of terminfo. If you see this effect then +# unset :xo: and delete the / from the delay. +# i.e. change $<100/> to $<100> +# (wy50-mc: added :ti: to suppress tic warning --esr) +wy50-mc|wyse50-mc|wyse 50 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ + :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):mr=\EG4:\ + :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\EG0:so=\EGt:te=\EG0:ti=:\ + :tc=wy50:tc=adm+sgr: +wy50-vb|wyse50-vb|wyse 50 visible bell:\ + :bl@:tc=wy50: +wy50-w|wyse50-w|wyse 50 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy50: +wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\ + :bl@:\ + :tc=wy50-w: +# +# The Wyse 350 is a Wyse 50 with color. +# Unfortunately this means that it has magic cookies. +# The color attributes are designed to overlap the reverse, dim and +# underline attributes. This is nice for monochrome applications +# because you can make underline stuff green (or any other color) +# but for true color applications it's not so hot because you cannot +# mix color with reverse, dim or underline. +# To further complicate things one of the attributes must be +# black (either the foreground or the background). In reverse video +# the background changes color with black letters. In normal video +# the foreground changes colors on a black background. +# This terminfo uses some of the more advanced features of curses +# to display both color and blink. In the final analysis I am not +# sure that the wy350 runs better with this terminfo than it does +# with the wy50 terminfo (with user adjusted colors). +# +# The mandatory pause used by flash does not work with +# older versions of terminfo. If you see this effect then +# unset xon and delete the / from the delay. +# i.e. change $<100/> to $<100> +# +# Bug: The <op> capability resets attributes. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +wy350|wyse350|Wyse 350:\ + :5i:am:bw:hs:mi:xo:\ + :Co#8:NC#55:Nl#8:co#80:lh#1:li#24:lw#8:pa#8:sg#1:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:Sb=:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EG0\EH\003:al=\EE:\ + :as=\EG0\EH\002:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\E`\072\E`9:i2=\E%?:im=\Eq:ip=:\ + :is=\016\024\E'\E(:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ + :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:\ + :mb=\EG2:me=\EG0\E(\EH\003%{0}%PA%{0}%PC:mh=\EGp:\ + :mp=\EG0\E):nd=^L:nw=^M^J:oc=\E%?:op=\EG0:pf=^T:\ + :pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:sf=\n:sr=\Ej:\ + :st=\E1:ta=^I:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +wy350-vb|wyse350-vb|wyse 350 visible bell:\ + :bl@:tc=wy350: +wy350-w|wyse350-w|wyse 350 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy350: +wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell:\ + :bl@:\ + :tc=wy350-w: +# +# This terminfo description is untested. +# The wyse100 emulates an adm31, so the adm31 entry should work. +# +wy100|wyse 100:\ + :hs:mi:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ds=\EA31:ei=\Er:fs=^M:im=\Eq:is=\Eu\E0:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=\E{:kl=^H:kr=^L:ku=^K:\ + :le=^H:mk@:nd=^L:sf=^J:ts=\EF:up=^K:\ + :tc=adm+sgr: +# +# The Wyse 120/150 has most of the features of the Wyse 60. +# This terminal does not need padding up to 9600 baud! +# :ms: should be set but the clear screen fails when in +# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +# then set :ms:. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy120|wyse120|wy150|wyse150|Wyse 120/150:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:it#8:li#24:pb#9601:ws#45:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy120: +# +wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy120: +# +wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy120-w: +# +wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell:\ + :bl@:\ + :tc=wy120: +# +wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell:\ + :bl@:\ + :tc=wy120-w: +# +# The Wyse 60 is like the Wyse 50 but with more padding. +# The reset strings are slow and the pad times very depending +# on other parameters such as font loading. I have tried +# to follow the following outline: +# +# <rs1> -> set personality +# <rs2> -> set number of columns +# <rs3> -> set number of lines +# :i1: -> select the proper font +# :is: -> do the initialization +# :i3: -> set up display memory (2 pages) +# +# The Wyse 60's that have vt100 emulation are slower than the +# older Wyse 60's. This change happened mid-1987. +# The capabilities effected are :dc: :dl: :al: :sf: :sr: +# +# The meta key is only half right. This terminal will return the +# high order bit set when you hit CTRL-function_key +# +# It may be useful to assign two function keys with the +# values \E=(\s look at old data in page 1 +# \E=W, look at bottom of page 1 +# where \s is a space ( ). +# +# Note: +# The Wyse 60 runs faster when the XON/XOFF +# handshake is turned off. +# +# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid +# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy60|wyse60|Wyse 60:\ + :am:bw:hs:km:mi:ms:\ + :co#80:li#24:ws#45:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy60-w|wyse60-w|wyse 60 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy60: +# +wy60-25|wyse60-25|wyse 60 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy60: +wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy60-w: +# +wy60-42|wyse60-42|wyse 60 80-column 42-lines:\ + :li#42:\ + :al=\EE:cd=\Ey:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:\ + :i1=\EcB2\EcC3:ip=:nw=\r\n:r3=\Ee*:sf=\n:sr=\Ej:tc=wy60: +wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ho=\036:ip=:nw=\r\n:\ + :r2=\EeF\E`;:\ + :tc=wy60-42: +# +wy60-43|wyse60-43|wyse 60 80-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy60-42: +wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy60-42-w: +# +wy60-vb|wyse60-vb|Wyse 60 visible bell:\ + :bl@:tc=wy60: +wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell:\ + :bl@:\ + :tc=wy60-w: + +# The Wyse-99GT looks at lot like the Wyse 60 except that it +# does not have the 42/43 line mode. In the Wyse-60 the "lines" +# setup parameter controls the number of lines on the screen. +# For the Wyse 99GT the "lines" setup parameter controls the +# number of lines in a page. The screen can display 25 lines max. +# The Wyse-99GT also has personalities for the VT220 and +# Tektronix 4014. But this has no bearing on the native mode. +# +# (msgr) should be set but the clear screen fails when in +# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +# then set msgr, else use msgr@. +# +# u0 -> enter Tektronix mode +# u1 -> exit Tektronix mode +# +wy99gt|wyse99gt|Wyse 99gt:\ + :ms@:\ + :al=\EE:cd=\Ey:ce=\Et:cl=\E+:dc=\EW:dl=\ER:i2=\Ew0:ip=:nw@:\ + :r2=\E`\072:sf=\n:sr=\Ej:ta=\011:te=\Ew0:ti=\Ew1:\ + :u0=\E~>\E8:u1=\E[42h:vb=\E`8\E`9:tc=wy60: +# +wy99gt-w|wyse99gt-w|wyse 99gt 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy99gt: +# +wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r2=\E`\072:r3=\EwG\Ee):tc=wy99gt: +# +wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r2=\E`;:tc=wy99gt-w: +# +wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell:\ + :bl@:tc=wy99gt: +# +wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell:\ + :bl@:\ + :tc=wy99gt-w: +# +# The Wyse 160 is combination of the WY-60 and the WY-99gt. +# The reset strings are slow and the pad times very depending +# on other parameters such as font loading. I have tried +# to follow the following outline: +# +# <rs1> -> set personality +# <rs2> -> set number of columns +# <rs3> -> set number of lines +# :i1: -> select the proper font +# :is: -> do the initialization +# :i3: -> set up display memory (2 pages) +# +# The display memory may be used for either text or graphics. +# When "Display Memory = Shared" the terminal will have more pages +# but garbage may be left on the screen when you switch from +# graphics to text. If "Display Memory = Unshared" then the +# text area will be only one page long. +# +# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid +# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy160|wyse160|Wyse 160:\ + :am:bw:hs:km:mi:ms:\ + :co#80:li#24:ws#38:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:ti=\Ew1:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy160-w|wyse160-w|wyse 160 132-column:\ + :Nl#16:co#132:lw#7:ws#90:\ + :cm=\Ea%i%dR%dC:dc=\EW:r2=\EeF\E`;:tc=wy160: +# +wy160-25|wyse160-25|wyse 160 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy160: +wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy160-w: +# +wy160-42|wyse160-42|wyse 160 80-column 42-lines:\ + :li#42:\ + :al=\EE:cd=\Ey:cl=\E+:dl=\ER:i1=\EcB2\EcC3:nw=\r\n:r3=\Ee*:\ + :sf=\n:sr=\Ej:\ + :tc=wy160: +wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines:\ + :Nl#16:co#132:lw#7:ws#90:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy160-42: +# +wy160-43|wyse160-43|wyse 160 80-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy160-42: +wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy160-42-w: +# +wy160-vb|wyse160-vb|Wyse 160 visible bell:\ + :bl@:tc=wy160: +wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell:\ + :bl@:\ + :tc=wy160-w: +# +# The Wyse 75 is a vt100 lookalike without advanced video. +# +# The Wyse 75 can support one attribute (e.g. Dim, Inverse, +# Underline) without magic cookies. The following description +# uses this capability, but when more than one attribute is +# put on the screen at once, all attributes will be changed +# to be the same as the last attribute given. +# The Wyse 75 can support more attributes when used with magic +# cookies. The wy75-mc terminal description uses magic cookies +# to correctly handle multiple attributes on a screen. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy75|wyse75|wyse 75:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:ma#1:pb#1201:ws#78:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[>\054\001\001\E[>-\001\001:ec=\E[%dX:ei=\E[4l:\ + :fs=^A:ho=\E[H:\ + :i1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h:i2=\E[m:\ + :im=\E[4h:ip=:is=\E>\E(B\E)0\017:k1=\E[?5i:k2=\E[?3i:\ + :k3=\E[2i:k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kI=\E[@:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[?1l\E[?7h\E=:ku=\E[A:le=^H:\ + :me=\E[m\017:mh=\E[0t\E[2m:mr=\E[1t\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[m:sf=\n:so=\E[1t\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[>\054\001:ue=\E[m:up=\E[A:us=\E[2t\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +wy75-mc|wyse75-mc|wyse 75 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\E[0p\017:as=\E[0p\016:i2=\E[m\E[p:mb=\E[2p:\ + :me=\E[0p\017:mh=\E[1p:mk=\E[4p:mr=\E[16p:\ + :..sa=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;:\ + :se=\E[0p:so=\E[17p:ue=\E[0p:us=\E[8p:\ + :tc=wy75: +wy75-vb|wyse75-vb|wyse 75 with visible bell:\ + :pb@:\ + :bl@:tc=wy75: +wy75-w|wyse75-w|wyse 75 in 132 column mode:\ + :co#132:ws#130:\ + :r2=\E[35h\E[?3h:tc=wy75: +wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns:\ + :pb@:\ + :bl@:tc=wy75-w: +# +# Wyse 85 emulating a vt220 7 bit mode. +# 24 line screen with status line. +# +# The vt220 mode permits more function keys but it wipes out +# the escape key. I strongly recommend that <f11> be set to +# escape (esc). +# The terminal may have to be set for 8 data bits and 2 stop +# bits for the arrow keys to work. +# The Wyse 85 runs faster with XON/XOFF enabled. Also the +# :DC: and :IC: work best when XON/XOFF is set. :IC: and +# :DC: leave trash on the screen when used without XON/XOFF. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy85|wyse85|wyse 85:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\ + :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: +# +# Wyse 85 with visual bell. +wy85-vb|wyse85-vb|wyse 85 with visible bell:\ + :bl@:vb=\E[30h\E\054\E[30l:tc=wy85: +# +# Wyse 85 in 132-column mode. +wy85-w|wyse85-w|wyse 85 in 132-column mode:\ + :co#132:ws#132:\ + :r2=\E[35h\E[?3h:tc=wy85: +# +# Wyse 85 in 132-column mode with visual bell. +wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\ + :bl@:\ + :tc=wy85-w: +# +# Wyse 185 emulating a vt320 7 bit mode. +# +# This terminal always displays 25 lines. These lines may be used +# as 24 data lines and a terminal status line (top or bottom) or +# 25 data lines. The 48 and 50 line modes change the page size +# and not the number of lines on the screen. +# +# The Compose Character key can be used as a meta key if changed +# by set-up. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy185|wyse185|wyse 185:\ + :am:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E7\E[99;0H\E[K\E8:ec=\E[%dX:ei=\E[4l:\ + :fs=\E[1;24r\E8:ho=\E[H:i1=\E[?5W:\ + :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\ + :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[ R:ti=\E[ Q:\ + :ts=\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h\E[34l: +# +# Wyse 185 with 24 data lines and top status (terminal status) +wy185-24|wyse185-24|wyse 185 with 24 data lines:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy185: +# +# Wyse 185 with visual bell. +wy185-vb|wyse185-vb|wyse 185+flash:\ + :bl@:tc=wy185: +# +# Wyse 185 in 132-column mode. +wy185-w|wyse185-w|wyse 185 in 132-column mode:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy185: +# +# Wyse 185 in 132-column mode with visual bell. +wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols:\ + :bl@:tc=wy185-w: + +# wy325 terminfo entries +# Done by Joe H. Davis 3-9-92 + +# lines 25 columns 80 +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +wy325|wyse325|Wyse epc:\ + :5i:am:bw:hs:mi:\ + :Nl#8:co#80:lh#1:li#24:lw#8:pb#9601:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:RA=\Ed.:\ + :SA=\Ed/:\ + :ac=+/\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\ + :is=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\ + :kE=\ET:kI=\Eq:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:pf=^T:\ + :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\ + :px=\EZ1%+?%s\177:r1=\E~\041\E~4:r2=\EeF\E`\072:\ + :r3=\EwG\Ee(:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:\ + :ti=\Ew1:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: + +# +# lines 24 columns 80 vb +# +wy325-vb|wyse325-vb|wyse-325 with visual bell:\ + :bl@:tc=wy325: + +# +# lines 24 columns 132 +# +wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy325: +# +# lines 25 columns 80 +# +wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325: +# +# lines 25 columns 132 +# +wy325-25w|wyse325-25w|wy325 132 columns:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 25 columns 132 vb +# +wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\ + :bl@:\ + :tc=wy325-w: + +# +# lines 42 columns 80 +# +wy325-42|wyse325-42|wyse-325 42 lines:\ + :Nl@:lh@:li#42:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325: +# +# lines 42 columns 132 +# +wy325-42w|wyse325-42w|wyse-325 42 lines wide mode:\ + :Nl@:lh@:li#42:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 42 columns 132 vb +# +wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\ + :bl@:\ + :tc=wy325-w: +# +# lines 43 columns 80 +# +wy325-43|wyse325-43|wyse-325 43 lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:tc=wy325: +# +# lines 43 columns 132 +# +wy325-43w|wyse325-43w|wyse-325 43 lines wide mode:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 43 columns 132 vb +# +wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\ + :bl@:\ + :tc=wy325-w: + +# Wyse 370 -- 24 line screen with status line. +# +# The terminal may have to be set for 8 data bits and 2 stop +# bits for the arrow keys to work. +# +# If you change keyboards the terminal will send different +# escape sequences. +# The following definition is for the basic terminal without +# function keys. +# +# <u0> -> enter Tektronix 4010/4014 mode +# <u1> -> exit Tektronix 4010/4014 mode +# <u2> -> enter ASCII mode (from any ANSI mode) +# <u3> -> exit ASCII mode (goto native ANSI mode) +# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode) +# <u5> -> exit Tek 4207 mode (goto native ANSI mode) +# +# Bug: The <op> capability resets attributes. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy370-nk|wyse 370 without function keys:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[90;1"p\E[?5W:i2=\E>\017\E)0\E(B\E[63;0w\E[m:\ + :im=\E[4h:ip=:\ + :is=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h:\ + :ke=\E>:ks=\E[?1l\E=:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=\011:te=\E[ R:ti=\E[ Q:\ + :ts=\E[40l\E[40h\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:\ + :vi=\E[?25l:vs=\E[?25h\E[34l: +# +# Function key set for the ASCII (wy-50 compatible) keyboard +# This is the default 370. +# +wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard:\ + :@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:k1=\E[?4i:k2=\E[?3i:k3=\E[2i:k4=\E[@:\ + :k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kA=\EOP:kB=\E[Z:kD=\EOQ:kI=\EOP:kL=\EOQ:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=wy370-nk: +# +# Function key set for the VT-320 (and wy85) compatible keyboard +# +wy370-105k|Wyse 370 with 105 key keyboard:\ + :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:\ + :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\ + :F8=\E[32~:F9=\E[33~:FA=\E[34~:K1=\EOw:K2=\EOu:K3=\EOy:\ + :K4=\EOq:K5=\EOs:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[26~:\ + :kl=\E[D:kr=\E[C:ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:\ + :tc=wy370-nk: +# +# Function key set for the PC compatible keyboard +# +wy370-EPC|Wyse 370 with 102 key keyboard:\ + :@7=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:kN=\E[U:kP=\E[V:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=wy370-nk: +# +# Wyse 370 with visual bell. +wy370-vb|Wyse 370 with visible bell:\ + :bl@:tc=wy370: +# +# Wyse 370 in 132-column mode. +wy370-w|Wyse 370 in 132-column mode:\ + :co#132:ws#132:\ + :r2=\E[35h\E[?3h:tc=wy370: +# +# Wyse 370 in 132-column mode with visual bell. +wy370-wvb|Wyse 370 with visible bell 132-columns:\ + :vb=\E[30h\E\054\E[30l:tc=wy370-w: +wy370-rv|Wyse 370 reverse video:\ + :r3=\E[32h\E[?5h:tc=wy370: +# +# Wyse 99gt Tektronix 4010/4014 emulator, +# +wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator:\ + :am:os:\ + :co#74:li#35:\ + :bl=^G:cl=\E^L:\ + :..cm=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\ + :cr=^M:do=^J:ff=^L:\ + :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ + :ho=^]7`x @\037:\ + :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ + :is=\E8:le=^H:nd= :nw=^M^J:u0=\E~>\E8:u1=\E[42h:up=^K: +# +# Wyse 160 Tektronix 4010/4014 emulator, +# +wy160-tek|Wyse 160 Tektronix 4010/4014 emulator:\ + :..cm=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\ + :ho=^]8`g @\037:\ + :tc=wy99gt-tek: +# +# Wyse 370 Tektronix 4010/4014 emulator, +# +wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\ + :am:os:\ + :co#80:li#36:\ + :bl=^G:cl=\E^L:\ + :..cm=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037:\ + :cr=^M:do=^J:ff=^L:\ + :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ + :ho=^]8g @\037:\ + :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ + :is=\E8:kb=^H:kd=^J:kl=^H:kr=^I:ku=^K:le=^H:nd= :nw=^M^J:\ + :u0=\E[?38h\E8:u1=\E[?38l\E)0:up=^K: + +# Vendor-supplied Wyse entries end here. + +# Can't set tabs! Other bugs (ANSI mode only): +# - can't redefine function keys (anyway, key redefinition in ANSI mode +# is too much complex to be described); +# - meta key can't be described (the terminal forgets it when reset); +# The xon-xoff handshaking can't be disabled while in ansi personality, so +# emacs can't work at speed greater than 9600 baud. No padding is needed at +# this speed. +# dch1 has been commented out because it causes annoying glittering when +# vi deletes one character at the beginning of a line with tabs in it. +# dch makes sysgen(1M) have a horrible behaviour when deleting +# a screen and makes screen(1) behave badly, so it is disabled too. The nice +# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are +# not, so smir and rmir are commented out as well. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard):\ + :am:km:mi:ms:xn:\ + :co#80:it#8:li#25:vt#3:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dl=\E[M:do=\ED:ec=\E[%dX:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:\ + :is=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h:ku=\EOA:le=\010:ll=\E[24E:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017\E["q:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\n:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[24m:up=\EM:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l\E[?25h: + +# This is the american terminal. Here tabs work fine. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard):\ + :ct=\E[3g:i2=\E[?5l:r3=\E[?5l:st=\EH:\ + :tc=wy99-ansi: + +# This terminal (firmware version 02) has a lot of bugs: +# - can't set tabs; +# - other bugs in ANSI modes (see above). +# This description disables handshaking when using cup. This is because +# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal +# cannot be used at speeds greater than 9600 baud, because at greater +# speeds handshaking is needed even for character sending. If you use +# DTR handshaking, you can use even greater speeds. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard):\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:it#8:li#25:ws#46:\ + :K1=^^:K3=\EJ:K4=\ET:K5=\EK:ae=\EcD:al=\EE:as=\EcE:bl=^G:\ + :bt=\EI:cd=\EY:ce=\ET:cl=\E'\E(\032:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=\Ej:ds=\EF\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\ + :is=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\1360\E`1\E`4\Ee.\E`\072\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:\ + :le=^H:mb=\EG2:me=\E(\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^_:\ + :se=\EG0:sf=^J:so=\EG4:sr=\Ej:ta=^I:te=\Ec21\Ec31:\ + :ti=\Ec20\Ec30:ts=\EF:up=^K:vb=\E\1361\E\1360:\ + :ve=\E`4\E`1:vi=\E`0:vs=\E`2\E`1: + +# This is the american terminal. Here tabs work. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard):\ + :ct=\E0:st=\E1:\ + :tc=wy99f: + +# +#TITLE: TERMINFO ENTRY WY520 +#DATE: 8/5/93 +# The WY520 terminfo is based on the WY285 entry published on the WYSE +# BBS with the addition of more function keys and special keys. +# +# rs1 -> set personality +# rs2 -> set number of columns +# rs3 -> set number of lines +# is1 -> select the proper font +# is2 -> do the initialization +# is3 -> If this string is empty then rs3 gets sent. +# +# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard +# - The BS key is programmed to generate BS in smcup since +# is2 doesn't seem to work. +# - Remove and shift/Remove: delete a character +# - Insert : enter insert mode +# - Find : delete to end of file +# - Select : clear a line +# - F11, F12, F13: send default sequences (not ESC, BS, LF) +# - F14 : Home key +# - Bottom status line (host writable line) is used. +# - smkx,rmkx are removed because this would put the numeric +# keypad in Dec application mode which doesn't seem to work +# with SCO applications. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy520|wyse520|wyse 520:\ + :am:hs:km:mi:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[0$~:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:i1=\E[?5W:\ + :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kh=\E[26~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[ R:ti=\E[ Q\E[?67;8h:ts=\E[2$~\E[1$}\E[%i%p1%d`:\ + :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h\E[34l: +# +# Wyse 520 with 24 data lines and status (terminal status) +wy520-24|wyse520-24|wyse 520 with 24 data lines:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520: +# +# Wyse 520 with visual bell. +wy520-vb|wyse520-vb|wyse 520 with visible bell:\ + :vb=\E[30h\E\054\E[30l:tc=wy520: +# +# Wyse 520 in 132-column mode. +wy520-w|wyse520-w|wyse 520 in 132-column mode:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520: +# +# Wyse 520 in 132-column mode with visual bell. +wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-w: +# +# +# Wyse 520 emulating a vt420 7 bit mode. +# The DEL key is programmed to generate BS in is2. +# With EPC keyboard. +# - 'End' key will clear till end of line on EPC keyboard +# - Shift/End : ignored. +# - Insert : enter insert mode. +# - Delete : delete a character (have to change interrupt character +# to CTRL-C: stty intr '^c') for it to work since the +# Delete key sends 7FH. +wy520-epc|wyse520-epc|wyse 520 with EPC keyboard:\ + :@7=\E[4~:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:\ + :k4=\E[14~:k5=\E[15~:kD=\177:kE=\E[4~:kh=\E[H:\ + :tc=wy520: +# +# Wyse 520 with 24 data lines and status (terminal status) +# with EPC keyboard. +wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520-epc: +# +# Wyse 520 with visual bell. +wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-epc: +# +# Wyse 520 in 132-column mode. +wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520-epc: +# +# Wyse 520 in 132-column mode with visual bell. +wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-epc-w: +# +# Wyse 520 in 80-column, 36 lines +wy520-36|wyse520-36|wyse 520 with 36 data lines:\ + :hs@:\ + :li#36:\ + :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520: +# +# Wyse 520 in 80-column, 48 lines +wy520-48|wyse520-48|wyse 520 with 48 data lines:\ + :hs@:\ + :li#48:\ + :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520: +# +# Wyse 520 in 132-column, 36 lines +wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36: +# +# Wyse 520 in 132-column, 48 lines +wy520-48w|wyse520-48w|wyse 520 with 48 data lines:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48: +# +# +# Wyse 520 in 80-column, 36 lines with EPC keyboard +wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard:\ + :hs@:\ + :li#36:\ + :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520-epc: +# +# Wyse 520 in 80-column, 48 lines with EPC keyboard +wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard:\ + :hs@:\ + :li#48:\ + :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520-epc: +# +# Wyse 520 in 132-column, 36 lines with EPC keyboard +wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36pc: +# +# Wyse 520 in 132-column, 48 lines with EPC keyboard +wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48pc: + +# From: John Gilmore <hoptoad!gnu@lll-crg.arpa> +# (wyse-vp: removed :if=/usr/share/tabset/wyse-adds:, there's no such +# file and we don't know what :st: is -- esr) +wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EM:bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EW:\ + :dl=\El:do=^J:ei=\Er:ho=^A:im=\Eq:is=\E`\072\E`9\017\Er:\ + :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A^Z:me=^O:\ + :nd=^F:nw=^M^J:r1=\E`\072\E`9\017\Er:se=^O:sf=^J:so=^N:\ + :ta=^I:ue=^O:up=^Z:us=^N: + +wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad:\ + :is=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=:kb=^H:\ + :kd=\EOB:ke=10\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\ + :ks=10\E[?1h\E=:ku=\EOA:tc=wy75: + +# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998 +# This copes with an apparent firmware bug in the wy85. He writes: +# "What I did was change leave the terminal cursor keys set to Normal +# (instead of application), and change \E[ to \233 for all the keys in +# terminfo. At one point, I found some reference indicating that this +# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just +# me), but I can't find that and the server under my bookmark to "Wyse +# Technical" isn't responding. So there's the question of wether the wy85 +# terminfo should reflect the manufactuer's intended behaviour of the terminal +# or the actual." +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:\ + :k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:kN=\2336~:\ + :kP=\2335~:kb=^H:kd=\233B:ke=\E>:kh=\23326~:kl=\233D:\ + :kr=\233C:ks=\E[?1l\E=:ku=\233A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: + +# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu> +wy100q|Wyse 100 for Quotron:\ + :bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\ + :is=\E`\072\0\EC\EDF\E0\E'\E(\EA21:kd=^J:kl=^H:kr=^L:\ + :ku=^K:le=^H:mk@:nd=^L:sr=\Ej:up=^K:\ + :tc=adm+sgr: + +#### Kermit terminal emulations +# +# Obsolete Kermit versions may be listed in the section describing obsolete +# non-ANSI terminal emulators later in the file. +# + +# KERMIT standard all versions. +# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 9-25-84 +kermit|standard kermit:\ + :bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :ho=\EH:\ + :is=K0 Standard Kermit 9-25-84\n:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:nd=\EC:up=\EA: +kermit-am|standard kermit plus auto-margin:\ + :am:\ + :is=K1 Standard Kermit plus Automatic Margins\n:tc=kermit: +# IBMPC Kermit 1.2. +# Bugs: :cd:, :ce:: do not work except at beginning of line! :cl: does +# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of +# line). +# From: greg small <gts@populi.berkeley.edu> 8-30-84 +pckermit|pckermit12|UCB IBMPC Kermit 1.2:\ + :am:\ + :li#25:\ + :cd@:ce@:cl=\EH\EJ:\ + :is=K2 UCB IBMPC Kermit 1.2 8-30-84\n:tc=kermit: +# IBMPC Kermit 1.20 +# Cannot use line 25, now acts funny like ansi special scrolling region. +# Initialization must escape from that region by cursor position to line 24. +# Cannot use character insert because 1.20 goes crazy if insert at col 80. +# Does not use :am: because autowrap is lost when kermit dropped and restarted. +# From: greg small <gts@populi.berkeley.edu> 12-19-84 +pckermit120|UCB IBMPC Kermit 1.20:\ + :it#8:li#24:\ + :al=\EL:dc=\EN:dl=\EM:do=\EB:ei@:im@:\ + :is=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n:\ + :se=\Eq:so=\Ep:ta=^I:vs=\EO\Eq\EEK3:\ + :tc=kermit: +# MS-DOS Kermit 2.27 for the IBMPC +# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +# Cannot use line 25, now acts funny like ansi special scrolling region. +# Initialization must escape from that region by cursor position to line 24. +# Does not use am: because autowrap is lost when kermit dropped and restarted. +# Reverse video for standout like H19. +# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC:\ + :am@:bs:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dc=\EN:dl=\EM:\ + :do=\EB:ei=\EO:ho=\EH:im=\E@:\ + :is=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=\EC:rc=\Ek:sc=\Ej:\ + :se=\Eq:so=\Ep:ta=^I:up=\EA:vs=\EO\Eq\EG\EwK4: +# MS-DOS Kermit 2.27 with automatic margins +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins:\ + :am:\ + :is=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n:\ + :vs=\EO\Eq\EG\EvK5:\ + :tc=msk227: +# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC +# Automatic margins now default. Use ansi :sa: for highlights. +# Define function keys. +# (msk22714: removed obsolete ":kn#10:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC:\ + :am:\ + :is=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n:\ + :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:\ + :k8=\E8:k9=\E9:md=\E[1m:me=\E[m:mr=\E[7m:se=\E[m:so=\E[1m:\ + :ue=\E[m:us=\E[4m:vs=\EO\Eq\EG\EvK6:\ + :tc=mskermit227: +# This was designed for a VT320 emulator, but it is probably a good start +# at support for the VT320 itself. +# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. +# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt320-k3|MS-Kermit 3.00's vt320 emulation:\ + :am:es:hs:km:mi:ms:xn:\ + :co#80:it#8:li#49:pb#9600:vt#3:\ + :AL=\E[%dL:CC=\E:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SR=\E[%dL:UP=\E[%dA:ae=\E(B:al=\E[L:\ + :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[0$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E F\E[?1l\E[?7h\E[r\E[2$~:k0=\E[21~:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:\ + :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[1$}\r\E[K:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l:ve=\E[?25h:\ + :vi=\E[?25l: +# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991 +# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996 +# (I removed a bogus boolean :mo: and added :ms:, <smam>, <rmam> -- esr) +vt320-k311|dec vt320 series as defined by kermit 3.11:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=3\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\ + :fs=\E[$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\ + :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# +######## ---------------- TERMINFO FILE CAN BE SPLIT HERE ------------------- +# This cut mark helps make life less painful for people running ncurses tic +# on machines with relatively little RAM. The file can be broken in half here +# cleanly and compiled in sections -- no `use' references cross this cut +# going forward. +# + +######## OLDER TERMINAL TYPES +# +# This section is devoted to older commercial terminal brands that are now +# discontinued, but known to be still in use or represented by emulations. +# + +#### AT&T (att, tty) +# +# This section also includes Teletype-branded VDTs. +# +# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now +# Boundless Technologies); for details, see the header comment on the ADDS +# section. +# +# These are AT&T's official terminfo entries. All-caps aliases have been +# removed. +# +att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode:\ + :am:eo:mi:ms:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[11r:\ + :F2=\E[12r:F3=\E[13r:F4=\E[14r:F5=\E[15r:F6=\E[16r:\ + :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:\ + :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :k1=\E[1r:k2=\E[2r:k3=\E[3r:k4=\E[4r:k5=\E[5r:k6=\E[6r:\ + :k7=\E[7r:k8=\E[8r:k9=\E[9r:k;=\E[10r:kA=\E[L:kB=\E[Z:\ + :kC=\E[J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:nd=\E[C:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[m:sf=^J:so=\E[7m:ta=^I:\ + :up=\E[A: +att2350|AT&T 2350 Video Information Terminal 80 column mode:\ + :pf@:po@:ps@:\ + :tc=att2300: + +# Must setup RETURN KEY - CR, REC'VD LF - INDEX. +# Seems upward compatible with vt100, plus ins/del line/char. +# On sgr, the protection parameter is ignored. +# No check is made to make sure that only 3 parameters are output. +# standout= reverse + half-intensity = 3 | 5. +# bold= reverse + underline = 2 | 3. +# note that half-bright blinking doesn't look different from normal blinking. +# NOTE:you must program the function keys first, label second! +# (att4410: a BSD entry has been seen with the following capabilities: +# :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:, +# :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1:\ + :am:hs:mi:ms:xo:\ + :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\ + :ac=++\054\054--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:fs=\E8:ho=\E[H:i1=\E[?3l\E)0:\ + :i2=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW:\ + :ic=\E[@:im=:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\ + :k6=\EOU:k7=\EOV:k8=\EOW:kC=\E[2J:kH=\E[24;1H:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mk=\E[8m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ts=\E7\E[25;%p1%{1}%+%dH:ue=\E[m:up=\E[A:us=\E[4m: + +att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1:\ + :co#132:ws#132:\ + :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att5410v1: + +att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2:\ + :bs:\ + :..px=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s:tc=att5410v1: + +att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode:\ + :co#132:ws#132:\ + :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att4410: + +# 5410 in terms of a vt100 +# (v5410: added <rmam>/<smam> based on init string -- esr) +v5410|att5410 in terms of a vt100:\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:RA=\E[?7l:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:\ + :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# +# Teletype Model 5420 -- A souped up 5410, with multiple windows, +# even! the 5420 has three modes: scroll, window or page mode +# this terminfo should work in scroll or window mode, but doesn't +# take advantage of any of the differences between them. +# +# Has memory below (2 lines!) +# 3 pages of memory (plus some spare) +# The 5410 sequences for :cm:, :vs:, :DC:, :DL:, :ec:, :vb:, :ho:, +# <hpa>, :st: would work for these, but these work in both scroll and window +# mode... Unset insert character so insert mode works +# :i1: sets 80 column mode, +# :is: escape sequence: +# 1) turn off all fonts +# 2) function keys off, keyboard lock off, control display off, +# insert mode off, erasure mode off, +# 3) full duplex, monitor mode off, send graphics off, nl on lf off +# 4) reset origin mode +# 5) set line wraparound +# 6) exit erasure mode, positional attribute mode, and erasure extent mode +# 7) clear margins +# 8) program ENTER to transmit ^J, +# We use \212 to program the ^J because a bare ^J will get translated by +# UNIX into a CR/LF. The enter key is needed for AT&T uOMS. +# 1 2 3 4 5 6 7 8 +# :i3: set screen color to black, +# No representation in terminfo for the delete word key: kdw1=\Ed +# Key capabilities assume the power-up send sequence... +# This :te: is not strictly necessary, but it helps maximize +# memory usefulness: :te=\Ez:, +# Alternate sgr0: :me=\E[m\EW^O:, +# Alternate sgr: :sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:, +# smkx programs the SYS PF keys to send a set sequence. +# It also sets up labels f1, f2, ..., f8, and sends edit keys. +# This string causes them to send the strings :k1:-:k8: +# when pressed in SYS PF mode. +# (att4415: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att4415|tty5420|att5420|AT&T 4415/5420 80 cols:\ + :bs:db:mi:xo:\ + :Nl#8:lh#2:lm#78:lw#8:ws#55:\ + :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:\ + :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E|:\ + :LO=\E~:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dE:SR=\E[%dF:\ + :UP=\E[%dA:bt=\E[Z:ch=\E[%+^AG:cl=\E[x\E[J:\ + :cm=\E[%i%d;%dx:ct=\E[3g:cv=\E[%+^Ad:ec=\E[%ds\E[%dD:\ + :ei=\E[4l:ho=\E[x:i1=\E[?3l:i2=\E[?5l:ic@:im=\E[4h:\ + :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\E[2K:kF=\E[T:kH=\Eu:\ + :kI=\E[4h:kL=\E[M:kN=\E[U:kP=\E[V:kR=\E[S:\ + :ke=\E[19;0j\E[21;1j\212:ks=\E[19;1j\E[21;4j\Eent:\ + :l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:ll=\Ew:\ + :me=\E[m\017:mp=\EV:pf=\E[?9i:po=\E[?4i:ps=\E[?2i:st=\EH:\ + :ts=\E7\E[25;%p1%{8}%+%dH:vb=\E[?5h\E[?5l:ve=\E[11;0j:\ + :vs=\E[11;1j:\ + :tc=att4410: + +att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:tc=att4415: + +att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv:\ + :i2=\E[?5h:vb=\E[?5l\E[?5h:\ + :tc=att4415: + +att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415: + +# Note that this mode permits programming USER PF KEYS and labels +# However, when you program user pf labels you have to reselect +# user pf keys to make them appear! +att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :..pn=\E[%p1%d;0;0;1q%p2%:-16.16s:\ + :..px=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s: + +att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415: + +att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-rv: + +att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-w: + +att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-w-rv: + +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5420_2|AT&T 5420 model 2 80 cols:\ + :am:db:hs:mi:ms:xo:\ + :co#80:it#8:li#24:lm#78:ws#55:\ + :AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:DC=\E[%dP:DL=\E[%dM:\ + :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:\ + :UP=\E[%dA:ae=^O:al=\E[L:as=^N:bt=\E[1Z:cd=\E[0J:ce=\E[0K:\ + :cl=\EH\EJ:cm=\E[%i%d;%dH:cr=\EG:cs=\E[%i%d;%dr:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[1B:ec=\E[%ds\E[%dD:ei=:fs=\E8:\ + :ho=\E[H:\ + :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\ + :ic=\E[@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ + :k6=\EOh:k7=\EOi:k8=\EOj:kD=\E[P:kH=\Eu:kI=\E[4h:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:ke=\E[19;0j:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[19;1j:ku=\E[A:le=^H:ll=\Ew:mb=\E[5m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[1C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[11;0j:vs=\E[11;1j: +att5420_2-w|AT&T 5420 model 2 in 132 column mode:\ + :co#132:\ + :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:tc=att5420_2: + +att4418|att5418|AT&T 5418 80 cols:\ + :am:xo:\ + :co#80:li#24:\ + :@8=\E[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[n:\ + :F2=\E[o:F3=\E[H:F4=\E[I:F5=\E[J:F8=\E[K:F9=\E[L:FA=\E[E:\ + :FB=\E[_:FC=\E[M:FD=\E[N:FE=\E[O:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[1L:as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :i1=\E[?3l:ic=\E[1@:im=:is=\E)0\E?6l\E?5l:k1=\E[h:k2=\E[i:\ + :k3=\E[j:k6=\E[k:k7=\E[l:k8=\E[f:k9=\E[w:k;=\E[m:kC=\E[%:\ + :kd=\EU:kh=\Ec:kl=\E@:kr=\EA:ku=\ES:le=\E[D:mb=\E[5m:\ + :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: +att4418-w|att5418-w|AT&T 5418 132 cols:\ + :co#132:\ + :i1=\E[?3h:tc=att5418: + +att4420|tty4420|teletype 4420:\ + :bs:da:db:eo:ms:ul:xo:\ + :co#80:li#24:lm#72:\ + :al=\EL:bl=^G:cd=\EJ:ce=\Ez:cl=\EH\EJ:cm=\EY%+ %+ :cr=\EG:\ + :dc=\EP:dl=\EM:dm@:do=\EB:ed@:ho=\EH:k0=\EU:k3=\E@:kA=\EL:\ + :kB=\EO:kC=\EJ:kD=\EP:kF=\ES:kI=\E\136:kL=\EM:kR=\ET:kd=\EB:\ + :kh=\EH:kl=^H:kr=\EC:ku=\EA:l0=segment advance:\ + :l3=cursor tab:le=\ED:nd=\EC:se=\E~:sf=\EH\EM\EY7 :so=\E}:\ + :ue=\EZ:up=\EA:us=\E\: + +# The following is a terminfo entry for the Teletype 4424 +# asynchronous keyboard-display terminal. It supports +# the vi editor. The terminal must be set up as follows, +# +# HIGHLIGHT DEFINITION 3-TONE +# DISPLAY FUNCTION GROUP III +# +# The second entry below provides limited (a la adm3a) +# operation under GROUP II. +# +# This must be used with DISPLAY FUNCTION GROUP I or III +# and HIGHLIGHT DEFINITION 3-TONE +# The terminal has either bold or blink, depending on options +# +# (att4424: commented out :ti:=\E[1m, we don't need bright locked on -- esr) +att4424|tty4424|teletype 4424:\ + :am:bs:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\EL:as=\E(0:bl=^G:bt=\EO:cd=\EJ:ce=\Ez:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\EF:\ + :dc=\EP:dl=\EM:do=\EB:ei=:ho=\E[H:ic=\E\136:im=:\ + :is=\E[20l\E[?7h:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kC=\EJ:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E3:\ + :md=\E3:me=\EX\E~\EZ\E4\E(B:mh=\EW:mr=\E}:nd=\EC:nw=\EE:\ + :..sa=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m:\ + :se=\E~:sf=^J:so=\E}:sr=\ET:st=\EH:ta=^I:ue=\EZ:up=\EA:\ + :us=\E\: + +att4424-1|tty4424-1|teletype 4424 in display function group I:\ + :kC@:kd=\EB:kh@:kl=\ED:kr=\EC:ku=\EA:\ + :tc=att4424: + +# This entry is not one of AT&T's official ones, it was translated from the +# 4.4BSD termcap file. The highlight strings are different from att4424. +# I have no idea why this is -- older firmware version, maybe? +# The following two lines are the comment originally attached to the entry: +# This entry appears to avoid the top line - I have no idea why. +# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp +att4424m|tty4424m|teletype 4424M:\ + :am:da:db:mi:\ + :co#80:it#8:li#23:\ + :al=\EL:bl=^G:ce=\E[K:cl=\E[2;H\E[J:cm=\E[%i%2;%2H\E[B:\ + :cr=^M:dc=\EP:dl=\EM:do=^J:ei=:ic=\E\136:im=:ip=2:\ + :is=\E[m\E[2;24r:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:\ + :nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# The Teletype 5425 is really version 2 of the Teletype 5420. It +# is quite similar, except for some minor differences. No page +# mode, for example, so all of the :cm: sequences used above have +# to change back to what's being used for the 5410. Many of the +# option settings have changed their numbering as well. +# +# This has been tested on a preliminary model. +# +# (att5425: added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5425|tty5425|att4425|AT&T 4425/5425:\ + :am:da:db:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#78:ws#55:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%ds\E[%dD:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E<\E[?3l:i2=\E[?5l:im=\E[4h:\ + :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:kD=\E[P:kI=\E[4h:kb=^H:kd=\E[B:\ + :ke=\E[21;0j\E[25;1j\212:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[21;1j\E[25;4j\Eent\E~:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:st=\EH:ta=^I:ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:\ + :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[12;0j:\ + :vs=\E[12;1j: + +att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels:\ + :ks=\E[21;1j\E[25;4j\Eent:\ + :tc=att4425: + +att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:tc=tty5425: + +# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. +# I also added <rmam>/<smam> -- esr) +att4426|tty4426|teletype 4426S:\ + :am:da:db:xo:\ + :co#80:li#24:lm#48:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\EL:as=\E(0:bl=^G:cd=\E[J:ce=\E[0K:ch=\E[%dG:\ + :cl=\E[H\E[2J\E[1U\E[H\E[2J\E[1V:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[3g:cv=\E[%dd:dc=\EP:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :i1=\Ec\E[?7h:ic=\E\136:im=:is=\E[m\E[1;24r:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\ + :kB=\EO:kC=\E[2J:kH=\E[24;1H:kb=^H:kd=\EB:kh=\E[H:kl=\ED:\ + :kr=\EC:ku=\EA:le=\E[D:ll=\E[24H:md=\E[5m:me=\E[m\E(B:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[5m:sr=\ET:st=\E1:ta=^I:ue=\E[m:\ + :up=\EA:us=\E[4m: + +# Terminfo entry for the AT&T 510 A Personal Terminal +# Function keys 9 - 16 are available only after the +# screen labeled (soft keys/action blocks) are labeled. Function key +# 9 corresponds to the leftmost touch target on the screen, +# function key 16 corresponds to the rightmost. +# +# This entry is based on one done by Ernie Rice at Summit, NJ and +# changed by Anne Gallup, Skokie, IL, ttrdc!anne +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att510a|bct510a|AT&T 510A Personal Terminal:\ + :am:mi:ms:xn:xo:\ + :Nl#8:co#80:lh#2:li#24:lw#7:\ + :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:F6=\EOj:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:\ + :ac=+g\054h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[1B:eA=\E(B\E)1:ff=^L:ho=\E[H:\ + :i1=\E(B\E)1\E[2l:i2=\E[21;1|\212:k1=\EOm:k2=\EOV:\ + :k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:\ + :k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:kb=^H:kd=\E[B:ke=\E[19;0|:\ + :kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :pf=\E[?8i:po=\E[?4i:ps=\E[0i:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[11;3|:vi=\E[11;0|:vs=\E[11;2|: + +# Terminfo entry for the AT&T 510 D Personal Terminal +# Function keys 9 through 16 are accessed by bringing up the +# system blocks. +# Function key 9 corresponds to the leftmost touch target on the screen, +# function key 16 corresponds to the rightmost. +# +# There are problems with soft key labeling. These are due to +# strangenesses in the native terminal that are impossible to +# describe in a terminfo. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att510d|bct510d|AT&T 510D Personal Terminal:\ + :am:da:db:mi:ms:xn:xo:\ + :co#80:li#24:lm#48:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[1B:\ + :ei=\E[4l:ff=^L:ho=\E[H:i1=\E(B\E)1\E[5;0|:\ + :i2=\E[21;1|\212:im=\E[4h:k1=\EOm:k2=\EOV:k3=\EOu:k4=\ENj:\ + :k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:kb=^H:kd=\E[B:\ + :ke=\E[19;0|:kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:\ + :ll=\E#2:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[11;3|:vs=\E[11;2|: + +# (att500: I merged this with the att513 entry, att500 just used att513 -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att500|att513|AT&T 513 using page mode:\ + :am:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :i1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l:\ + :im=\E[4h:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\ + :k7=\EOi:k8=\EOj:kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:ke=\E[19;0|\E[21;1|\212:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[19;1|\E[21;4|\Eent:ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:\ + :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;0|:vs=\E[11;1|: + +# 01-07-88 +# printer must be set to EMUL ANSI to accept ESC codes +# :up: stops at top margin +# :i1: sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font +# and alt font ascii,wrap on,tabs cleared +# :is: disables newline on LF,Emphasized off +# The <u0> capability sets form length +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5310|att5320|AT&T Model 53210 or 5320 matrix printer:\ + :co#132:it#8:li#66:\ + :DO=\E[%de:RI=\E[%da:cr=^M:do=^J:ff=^L:i1=\Ec:is=\E[20l\r:\ + :nd= :ta=^I:up=\EM: + +# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL +# The following SET-UP modes are assumed for normal operation: +# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL +# Other SET-UP modes may be set for operator convenience or communication +# requirements. This termcap description is for the Resident Terminal Mode. +# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# The BRL entry also said: UNSAFE :ll=\E[70H: +att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs:\ + :am:xo:\ + :co#88:it#8:li#70:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\ + :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\ + :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:r1=\Ec:\ + :rc=\E8:sc=\E7:sf=^J:sr=\E[T:ta=^I:up=\E[A: + +# 5620 terminfo (2.0 or later ROMS with char attributes) +# The following SET-UP modes are assumed for normal operation: +# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR +# Other SET-UP modes may be set for operator convenience or communication +# requirements. This termcap description is for Resident Terminal Mode. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# assumptions: :sf: (scroll forward one line) is only done at screen bottom +# Be aware that older versions of the dmd have a firmware bug that affects +# parameter defaulting; for this terminal, the 0 in \E[0m is not optional. +# :ms: is from an otherwise inferior BRL for this terminal. That entry +# also has :ll:=\E[70H commented out and marked unsafe. +# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>. +att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns:\ + :NL:NP:am:bs:ms:xo:\ + :co#88:it#8:li#70:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\ + :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[2m:me=\E[0m:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^J:..px=\E[%p1%d;%p2%l%dq%p2%s:\ + :r1=\Ec:rc=\E8:sc=\E7:se=\E[0m:sf=\E[S:so=\E[7m:sr=\E[T:\ + :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer:\ + :li#24:tc=att5620: +att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer:\ + :li#34:tc=att5620: +# 5620 layer running the "S" system's downloaded graphics handler: +att5620-s|tty5620-s|layer|vitty|5620 S layer:\ + :am:bs:pt:\ + :co#80:it#8:li#72:\ + :al=\EI:bl=^G:ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dl=\ED:\ + :do=^J:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:vb=\E^G: + +# Entries for <kf15> thru <kf28> refer to the shifted system pf keys. +# +# Entries for <kf29> thru <kf46> refer to the alternate keypad mode +# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att605|AT&T 605 80 column 102key keyboard:\ + :am:eo:xo:\ + :co#80:li#24:ws#80:\ + :DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:ae=^O:al=\E[L:as=\E)0\016:\ + :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\ + :i1=\E[8;0|\E[?\E[13;20l\E[?\E[12h:ic=\E[@:im=\E[4h:\ + :is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ + :k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\ + :us=\E[4m: +att605-pc|ATT 605 in pc term mode:\ + :@7=\E[F:AL=\E[L:S4=250\E[?11l\E[50;1|:S5=400\E[50;0|:\ + :XF=g:XN=e:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :al=\E[L:bt=\E[Z:dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:\ + :k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:kD=\E[P:kI=\E[@:kL=\E[M:\ + :kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:nd=\E[C:up=\E[A:\ + :tc=att605: +att605-w|AT&T 605-w 132 column 102 key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0:tc=att605: +# (att610: I added <rmam>/<smam> based on the init string. I also +# added :SF: and :SR: because the BSD file says the att615s have them, +# and the 615 is like a 610 with a big keyboard, and most of their other +# smart terminals support the same sequence -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att610|AT&T 610; 80 column; 98key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ + :ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att610-w|AT&T 610; 132 column; 98key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610: + +att610-103k|AT&T 610; 80 column; 103key keyboard:\ + :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\ + :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\ + :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\ + :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\ + :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\ + :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ + :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\ + :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:k9@:k;@:kD=\ENf:\ + :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\ + :tc=att610: +att610-103k-w|AT&T 610; 132 column; 103key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610-103k: +att615|AT&T 615; 80 column; 98key keyboard:\ + :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\ + :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\ + :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\ + :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\ + :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\ + :tc=att610: +att615-w|AT&T 615; 132 column; 98key keyboard:\ + :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\ + :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\ + :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\ + :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\ + :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\ + :tc=att610-w: +att615-103k|AT&T 615; 80 column; 103key keyboard:\ + :#4=\E[ A:%i=\E[ @:\ + :tc=att610-103k: +att615-103k-w|AT&T 615; 132 column; 103key keyboard:\ + :#4=\E[ A:%i=\E[ @:\ + :tc=att610-103k-w: +# (att620: I added <rmam>/<smam> based on the init string and +# :SR:/:SF: from a BSD termcap -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att620|AT&T 620; 80 column; 98key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :ae=\E(B\017:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\E(B\017:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att620-w|AT&T 620; 132 column; 98key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620: +att620-103k|AT&T 620; 80 column; 103key keyboard:\ + :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\ + :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\ + :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\ + :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\ + :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\ + :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ + :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\ + :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:F5@:F6@:F7@:F8@:\ + :F9@:FA@:FB@:FC@:FD@:FE@:FF@:FG@:FH@:FI@:FJ@:FK@:FL@:FM@:FN@:FO@:FP@:\ + :FQ@:FR@:FS@:FT@:FU@:FV@:FW@:FX@:FY@:FZ@:Fa@:k9@:k;@:kD=\ENf:\ + :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\ + :tc=att620: + +att620-103k-w|AT&T 620; 132 column; 103key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620-103k: + +# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal +# The following SETUP modes are assumed for normal operation: +# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF +# Font_Size=Large Non-Layers_Window_Cols=80 +# Non-Layers_Window_Rows=60 +# Other SETUP modes may be set for operator convenience or communication +# requirements. Some capabilities assume a printer attached to the Aux EIA +# port. This termcap description is for the Fixed Non-Layers Window. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# (att630: added :ic:, :mb: and :mh: from a BSD termcap file -- esr) +att630|AT&T 630 windowing terminal:\ + :NP:am:bs:da:db:mi:ms:xo:\ + :co#80:it#8:li#60:lm#0:\ + :@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\ENq:\ + :F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:F6=\ENv:F7=\ENw:F8=\ENx:\ + :F9=\ENy:FA=\ENz:FB=\EN{:FC=\EN|:FD=\EN}:FE=\EN~:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:is=\E[m:k9=\ENo:k;=\ENp:\ + :kA=\E[L:kB=\E[Z:kC=\E[2J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?4i:\ + :po=\E[?5i:..px=\E[%p1%d;%p2%l%dq%p2%s:r2=\Ec:rc=\E8:\ + :..sa=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\ + :li#24:tc=att630: + +# This is the att700 entry for 700 native emulation of the AT&T 700 +# terminal. Comments are relative to changes from the 605V2 entry and +# att730 on which the entry is based. Comments show the terminfo +# capability name, termcap name, and description. +# +# Here is what's going onm in the init string: +# ESC [ 50;4| set 700 native mode (really is 605) +# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) +# ESC [ 53;0| set GenFlow to Xon/Xoff +# ESC [ 8 ;0| set CR on NL +# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) +# ESC [ ? 4 l jump scroll +# ESC [ ? 5 l/h video: normal (l); reverse (h) +# ESC [ ?13 l Labels on +# ESC [ ?15 l parity check = no +# ESC [ 13 l monitor mode off +# ESC [ 20 l LF on NL (not CRLF on NL) +# ESC [ ? 7 h autowrap on +# ESC [ 12 h local echo off +# ESC ( B GO = ASCII +# ESC ) 0 G1 = Special Char & Line Drawing +# ESC [ ? 31 l Set 7 bit controls +# +# Note: Most terminals, especially the 600 family use Reverse Video for +# standout mode. DEC also uses reverse video. The VT100 uses bold in addition +# Assume we should stay with reverse video for 70.. However, the 605V2 exits +# standout mode with \E[m (all normal attributes). The 730 entry simply +# exits reverse video which would leave other current attributes intact. It +# was assumed the 730 entry to be more correct so rmso has changed. The +# 605V2 has no sequences to turn individual attributes off, thus its setting +# and the rmso/smso settings from the 730. +# +# Note: For the same reason as above in rmso I changed exit under-score mode +# to specifically turn off underscore, rather than return to all normal +# attributes +# +# Note: The following pkey_xmit is taken from the 605V2 which contained the +# capability as pfxl. It was changed here to pfx since pfxl +# will only compile successfully with Unix 4.0 tic. Also note that pfx only +# allows strings to be parameters and label values must be programmed as +# constant strings. Supposedly the pfxl of Version 4.0 allows both labels +# and strings to be parameters. The 605V2 pfx entry should be examined later +# in this regard. For reference the 730 pfxl entry is shown here for comparison +# 730 pfx entry: +# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s +# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s, +# +# (for 4.0 tic) +# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, +# +# (for <4.0 tic) +# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, +# +# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9 +# +# Port1 Interface +# +# modular 10 pin Connector +# Left side Right side +# Pin 1 2 3 4 5 6 7 8 9 10 +# +# Key (notch) at bottom +# +# Pin 1 DSR +# 3 DCD +# 4 DTR +# 5 Sig Ground +# 6 RD +# 7 SD +# 8 CTS +# 9 RTS +# 10 Frame Ground +# +# The manual is 189 pages and is loaded with details about the escape codes, +# etc..... Available from AT&T CIC 800-432-6600... +# ask for Document number 999-300-660.. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att700|AT&T 700 24x80 column display w/102key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :fs=\E8:ho=\E[H:i2=\E(B\E)0:im=\E[4h:\ + :is=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:ts=\E7\E[99;%i%p1%dx:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: + +# This entry was modified 3/13/90 by JWE. +# fixes include additions of <enacs>, correcting :rp:, and modification +# of <kHOM>. (See comments below) +# att730 has status line of 80 chars +# These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:, +# the <kf25> and up keys are used for shifted system Fkeys +# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is +# currently the same as :kh: (unshifted HOME or \E[H). On the 102, 102+1 +# and 122 key keyboards, the 730's translation is \E[2J. For consistency +# <kHOM> has been commented out. The user can uncomment <kHOM> if using the +# 102, 102+1, or 122 key keyboards +# kHOM=\E[2J, +# (att730: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att730|AT&T 730 windowing terminal:\ + :am:da:db:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#60:lm#0:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\ + :ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kI=\E[@:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :ta=^I:ts=\E7\E[;%i%p1%dx:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att730-41|730MTG-41|AT&T 730-41 windowing terminal Version:\ + :li#41:tc=att730: +att730-24|730MTG-24|AT&T 730-24 windowing terminal Version:\ + :li#24:tc=att730: +att730r|730MTGr|AT&T 730 rev video windowing terminal Version:\ + :i1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B:\ + :vb=\E[?5l\E[?5h:\ + :tc=att730: +att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version:\ + :li#41:tc=att730r: +att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\ + :li#24:tc=att730r: + +# The following represents the screen layout along with the associated +# bezel buttons for the 5430/pt505 terminal. The "kf" designations do +# not appear on the screen but are shown to reference the bezel buttons. +# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate +# position relative to the screen. +# +# +# +# +----------------------------------------------------------------+ +# | | +# XXXX | kf0 kf24 | XXXX +# | | +# | | +# XXXX | kf1 kf23 | XXXX +# | | +# | | +# XXXX | kf2 kf22 | XXXX +# | | +# | | +# XXXX | kf3 kf21 | XXXX +# | | +# | | +# XXXX | kf4 kf20 | XXXX +# | | +# | | +# XXXX | kf5 kf19 | XXXX +# | | +# | | +# XXXX | kf6 kf18 | XXXX +# | | +# | | +# XXXX | | XXXX +# | | +# | | +# +----------------------------------------------------------------+ +# +# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +# +# Note: XXXX represents the screen buttons +# CMD REDRAW +# +# MAIL +# +# version 1 note: +# The character string sent by key 'kf26' may be user programmable +# to send either \E[16s, or \E[26s. +# The character string sent by key 'krfr' may be user programmable +# to send either \E[17s, or \E[27s. +# +# Depression of the "CMD" key sends \E! (kcmd) +# Depression of the "MAIL" key sends \E[26s (kf26) +# "REDRAW" same as "REFRESH" (krfr) +# +# "kf" functions adds carriage return to output string if terminal is in +# 'new line' mode. +# +# The following are functions not covered in the table above: +# +# Set keyboard character (SKC): \EPn1;Pn2w +# Pn1= 0 Back Space key +# Pn1= 1 Break key +# Pn2= Program char (hex) +# +# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t +# Pn1= Window number (1-39) +# Pn2-Pn5= Y;X;Y;X coordinates +# +# Screen Selection (SSL): \E[Pnu +# Pn= Window number +# +# Set Terminal Modes (SM): \E[Pnh +# Pn= 3 Graphics mode +# Pn= > Cursor blink +# Pn= < Enter new line mode +# Pn= = Enter reverse insert/replace mode +# Pn= ? Enter no scroll mode +# +# Reset Terminal Mode (RM): \E[Pnl +# Pn= 3 Exit graphics mode +# Pn= > Exit cursor blink +# Pn= < Exit new line mode +# Pn= = Exit reverse insert/replace mode +# Pn= ? Exit no scroll mode +# +# Screen Status Report (SSR): \E[Pnp +# Pn= 0 Request current window number +# Pn= 1 Request current window dimensions +# +# Device Status Report (DSR): \E[6n Request cursor position +# +# Call Status Report (CSR): \E[Pnv +# Pn= 0 Call failed +# Pn= 1 Call successful +# +# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string +# Pn1= Button number to be loaded +# Pn2= Character count of "string" +# Pn3= Key mode being loaded: +# 0= Unshifted +# 1= Shifted +# 2= Control +# String= Text string (15 chars max) +# +# Screen Number Report (SNR): \E[Pnp +# Pn= Screen number +# +# Screen Dimension Report (SDR): \E[Pn1;Pn2r +# Pn1= Number of rows available in window +# Pn2= Number of columns available in window +# +# Cursor Position Report (CPR): \E[Pn1;Pn2R +# Pn1= "Y" Position of cursor +# Pn2= "X" Position of cursor +# +# Request Answer Back (RAB): \E[c +# +# Answer Back Response (ABR): \E[?;*;30;VSV +# *= 0 No printer available +# *= 2 Printer available +# V= Software version number +# SV= Software sub version number +# (printer-available field not documented in v1) +# +# Screen Alignment Aid: \En +# +# Bell (lower pitch): \E[x +# +# Dial Phone Number: \EPdstring\ +# string= Phone number to be dialed +# +# Set Phone Labels: \EPpstring\ +# string= Label for phone buttons +# +# Set Clock: \EPchour;minute;second\ +# +# Position Clock: \EPsY;X\ +# Y= "Y" coordinate +# X= "X" coordinate +# +# Delete Clock: \Epr\ +# +# Programming The Function Buttons: \EPfPn;string\ +# Pn= Button number (00-06, 18-24) +# (kf00-kf06, kf18-kf24) +# string= Text to sent on button depression +# +# The following in version 2 only: +# +# Request For Local Directory Data: \EPp12;\ +# +# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\ +# +# Request for Local Directory Data in print format: \EPp13;\ +# +# Enable 'Prt on Line' mode: \022 (DC2) +# +# Disable 'Prt on Line' mode: \024 (DC4) +# + +# 05-Aug-86: +# The following Terminfo entry describes functions which are supported by +# the AT&T 5430/pt505 terminal software version 2 and later. +att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :&2=\E[27s:@4=\E\041:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:\ + :FC=\E[22s:FD=\E[23s:FE=\E24s:FG=\E26s:LE=\E[%dD:\ + :RA=\E[11;1j:RI=\E[%dC:SA=\E[11;0j:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cb=\E2K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:\ + :i1=\EPr\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l:\ + :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\ + :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:r1=\Ec:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[1m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[>l:vs=\E[>h: + +# The following Terminfo entry describes functions which are supported by +# the AT&T 5430/pt505 terminal software version 1. +att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines:\ + :li#24:\ + :RA@:SA@:pf@:po@:rc@:sc@:tc=att505: +tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines:\ + :li#22:tc=att505: + +#### Ampex (Dialogue) +# +# Yes, these are the same people who are better-known for making audio- and +# videotape. I'm told they are located in Redwood City, CA. +# + +# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981 +# (ampex80: some capabilities merged in from SCO's entry -- esr) +ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80:\ + :am:bs:bw:ul:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:ic=\EQ:im=:is=\EA:le=^H:\ + :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El: +# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote: +ampex175|ampex d175:\ + :am:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:is=\EX\EA\EF:\ + :kA=\EE:kD=\EW:kI=\EQ:kL=\ER:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\ + :le=^H:ll=^^^K:nd=^L:se=\Ek:sf=^J:so=\Ej:te=\EF:ti=\EN:\ + :ue=\Em:up=^K:us=\El: +# No backspace key in the main QWERTY cluster. Fortunately, it has a +# NEWLINE/PAGE key just above RETURN that sends a strange single-character +# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS +# mode), this key can be used as the erase key; I find I like this. Because +# some people and some systems may not, there is another termcap ("ampex175") +# that suppresses this little eccentricity by omitting the relevant capability. +ampex175-b|ampex d175 using left arrow for erase:\ + :kb=^_:\ + :tc=ampex175: +# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu> +# (ampex210: removed obsolete ":kn#10:" -- esr) +ampex210|a210|ampex a210:\ + :am:bs:hs:xn:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:ei=:fs=\E.2:ho=^^:ic=\EQ:if=/usr/share/tabset/std:\ + :im=:is=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En:\ + :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\ + :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^V:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\E.0\Eg\E}\Ef:up=^K:\ + :vb=\EU\EX\EU\EX\EU\EX\EU\EX:\ + :tc=adm+sgr: +# (ampex219: I added <rmam>/<smam> based on the init string, added :vs: +# from ampex219w, added :ve:=\E[?3l, irresistibly suggested by :vs:, +# and moved the padding to be *after* the caps -- esr) +ampex219|ampex-219|amp219|Ampex with Automargins:\ + :hs:xn:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%2;%2r:\ + :do=\E[B:ho=\E[H:\ + :is=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=\E[21~:\ + :k1=\E[7~:k2=\E[8~:k3=\E[9~:k4=\E[10~:k5=\E[11~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kd=\E[B:ke=\E>:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mh=\E[1m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?3l:vs=\E[?3h: +ampex219w|ampex-219w|amp219w|Ampex 132 cols:\ + :co#132:li#24:\ + :bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :sf=^J:\ + :tc=ampex219: +# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr) +ampex232|ampex-232|Ampex Model 232:\ + :am:\ + :co#80:li#24:sg#1:\ + :al=5*\EE:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:\ + :dl=5*\ER:do=^V:ei=:ic=\EQ:im=:is=\Eg\El:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:\ + :tc=adm+sgr: +# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr) +ampex232w|Ampex Model 232 / 132 columns:\ + :co#132:li#24:\ + :is=\E\034Eg\El:tc=ampex232: + +#### Ann Arbor (aa) +# +# Ann Arbor made dream terminals for hackers -- large screen sizes and huge +# numbers of function keys. At least some used monitors in portrait mode, +# allowing up to 76-character screen heights! They were reachable at: +# +# Ann Arbor Terminals +# 6175 Jackson Road +# Ann Arbor, MI 48103 +# (313)-663-8000 +# +# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor +# can't be found on the Web; I fear they're long dead. R.I.P. +# + + +# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs. +# Highly modified 6/22 by Mike O'Brien. +# split out into several for the various screen sizes by dave-yost@rand +# Modifications made 3/82 by Mark Horton +# Modified by Tom Quarles at UCB for greater efficiency and more diversity +# status line moved to top of screen, :vb: removed 5/82 +# Some unknown person at SCO then hacked the init strings to make them more +# efficient. +# +# assumes the following setup: +# A menu: 0000 1010 0001 0000 +# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +# C menu: 56 66 0 0 9600 0110 1100 +# D menu: 0110 1001 1 0 +# +# Briefly, the settings are for the following modes: +# (values are for bit set/clear with * indicating our preference +# and the value used to test these termcaps) +# Note that many of these settings are irrelevent to the terminfo +# and are just set to the default mode of the terminal as shipped +# by the factory. +# +# A menu: 0000 1010 0001 0000 +# Block/underline cursor* +# blinking/nonblinking cursor* +# key click/no key click* +# bell/no bell at column 72* +# +# key pad is cursor control*/key pad is numeric +# return and line feed/return for :cr: key * +# repeat after .5 sec*/no repeat +# repeat at 25/15 chars per sec. * +# +# hold data until pause pressed/process data unless pause pressed* +# slow scroll/no slow scroll* +# Hold in area/don't hold in area* +# functions keys have default*/function keys disabled on powerup +# +# show/don't show position of cursor during page transmit* +# unused +# unused +# unused +# +# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +# Baud rate (9600*) +# +# 2 bits of parity - 00=odd,01=even*,10=space,11=mark +# 1 stop bit*/2 stop bits +# parity error detection off*/on +# +# keyboard local/on line* +# half/full duplex* +# disable/do not disable keyboard after data transmission* +# +# transmit entire page/stop transmission at cursor* +# transfer/do not transfer protected characters* +# transmit all characters/transmit only selected characters* +# transmit all selected areas/transmit only 1 selected area* +# +# transmit/do not transmit line separators to host* +# transmit/do not transmit page tab stops tabs to host* +# transmit/do not transmit column tab stop tabs to host* +# transmit/do not transmit graphics control (underline,inverse..)* +# +# enable*/disable auto XON/XOFF control +# require/do not require receipt of a DC1 from host after each LF* +# pause key acts as a meta key/pause key is pause* +# unused +# +# unused +# unused +# unused +# unused +# +# XON character (17*) +# XOFF character (19*) +# +# C menu: 56 66 0 0 9600 0110 1100 +# number of lines to print data on (printer) (56*) +# +# number of lines on a sheet of paper (printer) (66*) +# +# left margin (printer) (0*) +# +# number of pad chars on new line to printer (0*) +# +# printer baud rate (9600*) +# +# printer parity: 00=odd,01=even*,10=space,11=mark +# printer stop bits: 2*/1 +# print/do not print guarded areas* +# +# new line is: 01=LF,10=CR,11=CRLF* +# unused +# unused +# +# D menu: 0110 1001 1 0 +# LF is newline/LF is down one line, same column* +# wrap to preceding line if move left from col 1*/don't wrap +# wrap to next line if move right from col 80*/don't wrap +# backspace is/is not destructive* +# +# display*/ignore DEL character +# display will not/will scroll* +# page/column tab stops* +# erase everything*/erase unprotected only +# +# editing extent: 0=display,1=line*,2=field,3=area +# +# unused +# + +annarbor4080|aa4080|ann arbor 4080:\ + :am:bs:\ + :co#80:li#40:\ + :bl=^G:cl=\014:\ + :..cm=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c:\ + :cr=^M:ct=^^P^P:do=^J:ho=^K:kb=^^:kd=^J:kh=^K:kl=^H:kr=^_:\ + :ku=^N:le=^H:nd=^_:sf=^J:st=^]^P1:ta=^I:up=^N: + +# Strange Ann Arbor terminal from BRL +aas1901|Ann Arbor K4080 w/S1901 mod:\ + :am:\ + :co#80:li#40:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:kb=^H:kd=^J:kl=^H:le=^H:\ + :ll=^O\0c:nd=^_:nw=^M^J:sf=^J:ta=^I:up=^N: + +# If you're using the GNU termcap library, add +# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp: +# to these capabilities. This is the nonstandard GNU termcap scrolling +# capability, arguments are: +# 1. Total number of lines on the screen. +# 2. Number of lines above desired scroll region. +# 3. Number of lines below (outside of) desired scroll region. +# 4. Total number of lines on the screen, the same as the first parameter. +# The generic Ann Arbor entry is the only one that uses this. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly):\ + :am:bs:km:mi:xo:\ + :co#80:it#8:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[2g:dc=\E[P:dl=\E[M:do=^K:ei=:ho=\E[H:\ + :i1=\E[m\E7\E[H\E9\E8:i2=\E[1Q\E[>20;30l\EP`+x~M\E\:\ + :ic=\E[@:im=:k1=\EOA:k2=\EOB:k3=\EOC:k4=\EOD:k5=\EOE:\ + :k6=\EOF:k7=\EOG:k8=\EOH:k9=\EOI:kD=\E[P:kI=\E[@:kb=^H:\ + :kd=\E[B:\ + :ke=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\:\ + :kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mm=\E[>52h:\ + :mo=\E[>52l:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=^K:\ + :so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +aaa+rv|ann arbor ambassador in reverse video:\ + :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ + :me=\E[7m\016:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ + :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ + :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: +# Ambassador with the DEC option, for partial vt100 compatibility. +aaa+dec|ann arbor ambassador in dec vt100 mode:\ + :ac=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}:\ + :ae=^N:as=^O:cs=\E[%i%d;%dr:eA=\E(0:\ + :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;: +aaa-18|ann arbor ambassador/18 lines:\ + :li#18:\ + :is=\E7\E[60;0;0;18p\E8:te=\E[60;0;0;18p\E[60;1H\E[K:\ + :ti=\E[18;0;0;18p:\ + :tc=aaa+unk: +aaa-18-rv|ann arbor ambassador/18 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-18: +aaa-20|ann arbor ambassador/20 lines:\ + :li#20:\ + :is=\E7\E[60;0;0;20p\E8:te=\E[60;0;0;20p\E[60;1H\E[K:\ + :ti=\E[20;0;0;20p:\ + :tc=aaa+unk: +aaa-22|ann arbor ambassador/22 lines:\ + :li#22:\ + :is=\E7\E[60;0;0;22p\E8:te=\E[60;0;0;22p\E[60;1H\E[K:\ + :ti=\E[22;0;0;22p:\ + :tc=aaa+unk: +aaa-24|ann arbor ambassador/24 lines:\ + :li#24:\ + :is=\E7\E[60;0;0;24p\E8:te=\E[60;0;0;24p\E[60;1H\E[K:\ + :ti=\E[24;0;0;24p:\ + :tc=aaa+unk: +aaa-24-rv|ann arbor ambassador/24 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-24: +aaa-26|ann arbor ambassador/26 lines:\ + :li#26:\ + :is=\E7\E[60;0;0;26p\E8:te=\E[60;0;0;26p\E[26;1H\E[K:\ + :ti=\E[H\E[J\E[26;0;0;26p:\ + :tc=aaa+unk: +aaa-28|ann arbor ambassador/28 lines:\ + :li#28:\ + :is=\E7\E[60;0;0;28p\E8:te=\E[60;0;0;28p\E[28;1H\E[K:\ + :ti=\E[H\E[J\E[28;0;0;28p:\ + :tc=aaa+unk: +aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status:\ + :es:hs:\ + :li#29:\ + :ds=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ + :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;30p\E8:\ + :te=\E[60;1;0;30p\E[29;1H\E[K:\ + :ti=\E[H\E[J\E[30;1;0;30p\E[30;1H\E[K:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: +aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video:\ + :tc=aaa+rv:tc=aaa-30-s: +aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context:\ + :te=\E[60;1;0;30p\E[59;1H\E[K:\ + :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s: +aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video:\ + :te=\E[60;1;0;30p\E[59;1H\E[K:\ + :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s-rv: +aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\ + :li#30:\ + :is=\E7\E[60;0;0;30p\E8:te=\E[60;0;0;30p\E[30;1H\E[K:\ + :ti=\E[H\E[J\E[30;0;0;30p:\ + :tc=aaa+unk: +aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video:\ + :tc=aaa+rv:tc=aaa-30: +aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context:\ + :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\ + :tc=aaa-30: +aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context:\ + :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\ + :tc=aaa+rv:tc=aaa-30: +aaa-36|ann arbor ambassador/36 lines:\ + :li#36:\ + :is=\E7\E[60;0;0;36p\E8:te=\E[60;0;0;36p\E[36;1H\E[K:\ + :ti=\E[H\E[J\E[36;0;0;36p:\ + :tc=aaa+unk: +aaa-36-rv|ann arbor ambassador/36 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-36: +aaa-40|ann arbor ambassador/40 lines:\ + :li#40:\ + :is=\E7\E[60;0;0;40p\E8:te=\E[60;0;0;40p\E[40;1H\E[K:\ + :ti=\E[H\E[J\E[40;0;0;40p:\ + :tc=aaa+unk: +aaa-40-rv|ann arbor ambassador/40 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-40: +aaa-48|ann arbor ambassador/48 lines:\ + :li#48:\ + :is=\E7\E[60;0;0;48p\E8:te=\E[60;0;0;48p\E[48;1H\E[K:\ + :ti=\E[H\E[J\E[48;0;0;48p:\ + :tc=aaa+unk: +aaa-48-rv|ann arbor ambassador/48 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-48: +aaa-60-s|ann arbor ambassador/59 lines+status:\ + :es:hs:\ + :li#59:\ + :ds=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ + :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;60p\E8:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: +aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video:\ + :tc=aaa+rv:tc=aaa-60-s: +aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video:\ + :tc=aaa+dec:tc=aaa+rv:tc=aaa-60-s: +aaa-60|ann arbor ambassador/60 lines:\ + :li#60:\ + :is=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8:tc=aaa+unk: +aaa-60-rv|ann arbor ambassador/60 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-60: +aaa-db|ann arbor ambassador 30/destructive backspace:\ + :bs@:\ + :i2=\E[1Q\E[m\E[>20l\E[>30h:le=\E[D:tc=aaa-30: + +guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols:\ + :li#33:\ + :i2=\E[>59l:is=\E7\E[255;0;0;33;80;80p\E8\E[J:\ + :te=\E[255p\E[255;1H\E[K:ti=\E[33p:vb=\E[>59h\E[>59l:\ + :tc=aaa+unk: +guru+rv|guru changes for reverse video:\ + :i2=\E[>59h:vb=\E[>59l\E[>59h: +guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video:\ + :tc=guru+rv:tc=guru-33: +guru+s|guru status line:\ + :es:hs:\ + :ds=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K:fs=\E[>51l:\ + :te=\E[255;1p\E[255;1H\E[K:ti=:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K: +guru-nctxt|guru with no saved context:\ + :ti=\E[H\E[J\E[33p\E[255;1H\E[K:tc=guru: +guru-s|guru-33-s|ann arbor guru/33 lines+status:\ + :li#32:\ + :is=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J:\ + :ti=\E[33;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-24|ann arbor guru 24 lines:\ + :co#80:li#24:\ + :is=\E7\E[255;0;0;24;80;80p\E8\E[J:ti=\E[24p:tc=guru+unk: +guru-44|ann arbor guru 44 lines:\ + :co#97:li#44:\ + :is=\E7\E[255;0;0;44;97;100p\E8\E[J:ti=\E[44p:tc=guru+unk: +guru-44-s|ann arbor guru/44 lines+status:\ + :li#43:\ + :is=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J:\ + :ti=\E[44;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-76|guru with 76 lines by 89 cols:\ + :co#89:li#76:\ + :is=\E7\E[255;0;0;76;89;100p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-s|ann arbor guru/76 lines+status:\ + :co#89:li#75:\ + :is=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J:\ + :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-76-lp|guru-lp|guru with page bigger than line printer:\ + :co#134:li#76:\ + :is=\E7\E[255;0;0;76;134;134p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-w|guru 76 lines by 178 cols:\ + :co#178:li#76:\ + :is=\E7\E[255;0;0;76;178;178p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-w-s|ann arbor guru/76 lines+status+wide:\ + :co#178:li#75:\ + :is=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J:\ + :ti=\E[76;1p\E[255;1H\E[K:\ + :tc=guru+s:tc=guru+unk: +guru-76-wm|guru 76 lines by 178 cols with 255 cols memory:\ + :co#178:li#76:\ + :is=\E7\E[255;0;0;76;178;255p\E8\E[J:ti=\E[76p:tc=guru+unk: +aaa-rv-unk|ann arbor unknown type:\ + :Nl#0:lh#0:lw#0:\ + :ho=\E[H:i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ + :me=\E[7m:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ + :..sa=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ + :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: + +#### Applied Digital Data Systems (adds) +# +# ADDS itself is long gone. ADDS was bought by NCR, and the same group made +# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for +# terminals was merged again. Then AT&T sold the terminal business to +# SunRiver, which later changed its name to Boundless Technologies. The +# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there +# as of early 1995) are at: +# +# Boundless Technologies +# 100 Marcus Boulevard +# Hauppauge, NY 11788-3762 +# Vox: (800)-231-5445 +# Fax: (516)-342-7378 +# Web: http://boundless.com +# +# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". +# In 1995 Boundless acquired DEC's terminals business. +# + +# Regent: lowest common denominator, works on all regents. +# (regent: renamed ":bc:" to ":le:" -- esr) +regent|Adds Regent Series:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=\EY :le=^U:ll=^A:nd=^F:sf=^J:\ + :up=^Z: +# Regent 100 has a bug where if computer sends escape when user is holding +# down shift key it gets confused, so we avoid escape. +regent100|Adds Regent 100:\ + :sg#1:\ + :bl=^G:cm=\013%+ %B\020%.:k0=^B1\r:k1=^B2\r:k2=^B3\r:\ + :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:\ + :l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\ + :ue=\E0@:us=\E0`:\ + :tc=regent: +regent20|Adds Regent 20:\ + :bl=^G:cd=\Ek:ce=\EK:cm=\EY%+ %+ :tc=regent: +regent25|Adds Regent 25:\ + :bl=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:tc=regent20: +regent40|Adds Regent 40:\ + :sg#1:\ + :al=\EM:bl=^G:dl=\El:k0=^B1\r:k1=^B2\r:k2=^B3\r:k3=^B4\r:\ + :k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:l2=F3:\ + :l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\ + :ue=\E0@:us=\E0`:\ + :tc=regent25: +regent40+|Adds Regent 40+:\ + :is=\EB:tc=regent40: +regent60|regent200|Adds Regent 60:\ + :dc=\EE:ei=\EF:im=\EF:is=\EV\EB:kD=\EE:kI=\EF:kM=\EF:\ + :se=\ER\E0@\EV:so=\ER\E0P\EV:\ + :tc=regent40+: +# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981 +# (viewpoint: added :kr:, function key, and :dl: capabilities -- esr) +viewpoint|addsviewpoint|adds viewpoint:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dl=\El:do=^J:\ + :is=\017\E0`:k0=^B1:k2=^B2:k3=^B\041:k4=^B":k5=^B#:kd=^J:\ + :kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:me=^O:nd=^F:se=^O:sf=^J:\ + :so=^N:ue=^O:up=^Z:us=^N:ve=\017\E0`:vs=\017\E0P: +# Some viewpoints have bad ROMs that foo up on ^O +screwpoint|adds viewpoint with ^O bug:\ + :se@:so@:ue@:us@:vs@:tc=viewpoint: + +# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92 +# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs. +# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000, +# underline=01100000, rev=01010000, blink=01000010,dim=01000001, +# invis=01000100 and %c is the logical or of desired attributes. +# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(. +vp3a+|viewpoint3a+|adds viewpoint 3a+:\ + :am:bw:\ + :co#80:it#8:li#24:\ + :cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kb=^H:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:me=\E(:nd=^L:nw=^M^J:\ + :..sa=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E):\ + :se=\E(:sf=^J:so=\E0Q\E):ta=^I:up=^K:ve=^X:vi=^W: +vp60|viewpoint60|addsvp60|adds viewpoint60:\ + :tc=regent40: +# +# adds viewpoint 90 - from cornell +# Note: emacs sends ei occasionally to insure the terminal is out of +# insert mode. This unfortunately puts the viewpoint90 IN insert +# mode. A hack to get around this is :ic=\EF\s\EF^U:. (Also, +# - :ei=:im=: must be present in the termcap translation.) +# - :xs: indicates glitch that attributes stick to location +# - :ms: means it's safe to move in standout mode +# - :cl=\EG\Ek:: clears screen and visual attributes without affecting +# the status line +# Function key and label capabilities merged in from SCO. +vp90|viewpoint90|adds viewpoint 90:\ + :bs:bw:ms:xs:\ + :co#80:li#24:\ + :cd=\Ek:ce=\EK:cl=\EG\Ek:cm=\EY%+ %+ :dc=\EE:dl=\El:do=^J:\ + :ei=:ho=\EY :ic=\EF \EF\025:im=:k0=^B1\r:k1=^B2\r:\ + :k2=^B3\r:k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:\ + :k8=^B9\r:k9=^B\072\r:k;=^B;\r:kb=^H:kd=^J:kh=^A:kl=^U:\ + :kr=^F:ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:\ + :l8=F9:l9=F10:la=F11:le=^H:ll=^A:me=\ER\E0@\EV:nd=^F:\ + :se=\ER\E0@\EV:sf=^J:so=\ER\E0Q\EV:ta=^I:ue=\ER\E0@\EV:\ + :up=^Z:us=\ER\E0`\EV: +# Note: if return acts weird on a980, check internal switch #2 +# on the top chip on the CONTROL pc board. +adds980|a980|adds consul 980:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E\016:bl=^G:cl=\014\013@:cm=\013%+@\E\005%2:cr=^M:\ + :dl=\E\017:do=^J:k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:\ + :k6=\E6:k7=\E7:k8=\E8:k9=\E9:le=^H:me=^O:nd=\E^E01:se=^O:\ + :sf=^J:so=^Y^^^N: + +# Beehive documentation is undated and marked Preliminary and has no figures +# so we must have early Superbee2 (Model 600, according to phone conversation +# with mfr.). It has proved reliable except for some missing padding +# (notably after \EK and <nl> at bottom of screen). +# +# The key idea is that AEP mode is poison for :cm: & that US's in +# the local memory should be avoided like the plague. That means +# that the 2048 character local buffer is used as 25 lines of 80 +# characters, period. No scrolling local memory, folks. It also +# appears that we cannot use naked INS LINE feature since it uses +# US. The sbi fakes :al: with an 80-space insert that may be too +# slow at low speeds; also spaces get converted to \040 which is +# too long for some programs (not vi). DEL LINE is ok but slow. +# +# The <nl> string is designed for last line of screen ONLY; cup to +# 25th line corrects the motion inherent in scrolling to Page 1. +# +# There is one understood bug. It is that the screen appears to +# pop to a new (blank) page after a :nw:, or leave a half-line +# ellipsis to a quad that is the extra 48 memory locations. The +# data received is dumped into memory but not displayed. Not to +# worry if :cm: is being used; the lines not displayed will be, +# whenever the cursor is moved up there. Since :cm: is addressed +# relative to MEMORY of window, nothing is lost; but beware of +# relative cursor motion (:up:,:do:,:nd:,:le:). Recommended, +# therefore, is setenv MORE -c . +# +# WARNING: Not all features tested. +# +# Timings are assembled from 3 sources. Some timings may reflect +# SB2/Model 300 that were used if more conservative. +# Tested on a Model 600 at 1200 and 9600 bd. +# +# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly +# placed on the keyboard and useless because of AEP, is made +# into a backspace key. In use ESC must be pressed twice (to send) +# and sending ^C must be prefixed by ESC to avoid that weird +# transmit mode associated with ENTER key. +# +# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across +# the screen, then it has dropped into ENTER mode; hit +# RESET--ONLINE--!tset. +# +# As delivered this machine has a FATAL feature that will throw +# it into that strange transmit state (SPOW) if the space bar is +# hit after a CR is received, but before receiving a LF (or a +# few others). +# +# The circuits MUST be modified to eliminate the SPOW latch. +# This is done by strapping on chip A46 of the I/O board; cut +# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that +# chip. This mod has been checked out on a Mod 600 of Superbee II. +# With this modification absurdly high timings on cr are +# unnecessary. +# +# NOTE WELL that the rear panel switch should be set to CR/LF, +# not AEP! +# +sb1|beehive superbee:\ + :am:bs:bw:da:db:mi:ul:xb:\ + :co#80:li#25:sg#1:\ + :al=\EN\EL\EQ \EP \EO\ER\EA:\ + :bl=^G:bt=\E`:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%03%03:cr=\r:\ + :ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:ho=\EH:im=\EQ\EO:\ + :is=\EE\EX\EZ\EO\Eb\Eg\ER:k0=\E2:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\E1:kE=\EK:kI=\EQ\EO:\ + :kL=\EM:kM=\ER:kS=\EJ:kb=^_:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:l0=TAB CLEAR:l9=TAB SET:le=^H:me=\E_3:nd=\EC:\ + :se=\E_3:sf=^J:so=\E_1:st=\E1:ta=^I:te=:ti=\EO:ue=\E_3:\ + :up=\EA:us=\E_0: +sbi|superbee|beehive superbee at Indiana U.:\ + :xb:\ + :al=1\EN\EL\EQ \EP \EO\ER\EA:cr=\r:tc=sb1: +# Alternate (older) description of Superbee - f1=escape, f2=^C. +# Note: there are at least 3 kinds of superbees in the world. The sb1 +# holds onto escapes and botches ^C's. The sb2 is the best of the 3. +# The sb3 puts garbage on the bottom of the screen when you scroll with +# the switch in the back set to CRLF instead of AEP. This description +# is tested on the sb2 but should work on all with either switch setting. +# The f1/f2 business is for the sb1 and the :xb: can be taken out for +# the other two if you want to try to hit that tiny escape key. +# This description is tricky: being able to use cup depends on there being +# 2048 bytes of memory and the hairy <nl> string. +superbee-xsb|beehive super bee:\ + :am:da:db:xb:\ + :co#80:it#8:li#25:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%3%3:cr=\r:ct=\E3:dc=\EP:\ + :dl=\EM:do=^J:ho=\EH:is=\EH\EJ:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:\ + :k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:me=\E_3:nd=\EC:se=\E_3:\ + :sf=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET:so=\E_1:st=\E1:\ + :ta=^I:up=\EA:ve=^J: +# This loses on lines > 80 chars long, use at your own risk +superbeeic|super bee with insert char:\ + :ei=\ER:ic=:im=\EQ:tc=superbee-xsb: +sb2|sb3|fixed superbee:\ + :xb@:tc=superbee: + +#### Beehive Medical Electronics +# +# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999): +# Regarding your question though; Beehive terminals weren't made by Harris. +# They were made by Beehive Medical Electronics in Utah. They went out of +# business in the early '80s. +# +# (OK, then, I don't know why a couple of these say "harris beehive".) +# + +# Reports are that most of these Beehive entries (except superbee) have not +# been tested and do not work right. :se: is a trouble spot. Be warned. + +# (bee: :ic: was empty, which is obviously bogus -- esr) +beehive|bee|harris beehive:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\EL:bt=\E>:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :dc=\EP:\ + :dl=\EM:do=\EB:ei=\E@:ho=\EH:im=\EQ:kA=\EL:kB=\E>:kC=\EE:\ + :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kM=\E@:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:se=\Ed@:so=\EdP:\ + :ue=\Ed@:up=\EA:us=\Ed`: +# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs. +# good grief - does this entry make :sg:/:ug: when it doesn't have to? +# look at those spaces in :se:/:so:. Seems strange to me... +# (beehive: :if=/usr/share/tabset/beehive: removed, no such file. If you +# really care, cook up one using ^F -- esr) +beehive3|bh3m|beehiveIIIm|harris beehive 3m:\ + :am:bs:\ + :co#80:it#8:li#20:\ + :al=\023:bl=^G:cd=^R:ce=^P:cl=^E^R:cr=^M:dl=\021:do=^J:ho=^E:\ + :le=^H:ll=^E^K:nd=^L:se= ^_:sf=^J:so=^] :st=^F:ta=^I:up=^K: +beehive4|bh4|beehive 4:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cr=^M:do=^J:ho=\EH:le=\ED:nd=\EC:\ + :sf=^J:up=\EA: +# There was an early Australian kit-built computer called a "Microbee". +# It's not clear whether this is for one of those or for a relative +# of the Beehive. +microb|microbee|micro bee series:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :cr=^M:do=^J:k1=\Ep:\ + :k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\Ex:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:\ + :se=\Ed@:sf=^J:so= \EdP:ta=^I:ue=\Ed@:up=\EA:us=\Ed`: + +#### C. Itoh Electronics +# +# As of 1995 these people no longer make terminals (they're still in the +# printer business). Their terminals were all clones of the DEC VT series. +# They're located in Orange County, CA. +# + +# CIT 80 - vt-52 emulator, the termcap has been modified to remove +# the delay times and do an auto tab set rather than the indirect +# file used in vt100. +cit80|cit-80|citoh 80:\ + :am:bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\E[H\EJ:cm=\E[%i%2;%2H:cr=^M:ff=^L:\ + :is=\E>:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:nd=\E[C:sf=^J:up=\E[A: +# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985 +# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr) +cit101|citc|C.itoh fast vt100:\ + :am:bs:xn:\ + :co#80:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:\ + :im=:is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\ + :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:\ + :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[V\E8:vs=\E7\E[U: +# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL +# The following termcap entry was created from the Callan cd100 entry. The +# last two lines (with the capabilities in caps) are used by RM-cobol to allow +# full selection of combinations of reverse video, underline, and blink. +# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\ +# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\ +# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr) +cit101e|C. Itoh CIT-101e:\ + :am:bs:mi:ms:pt:\ + :co#80:it#8:li#24:\ + :ac=:ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%2;%2H:cs=\E[%i%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:if=/usr/share/tabset/vt100:im=\E[4h:k0=\EOT:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOm:k6=\EOl:k7=\EOM:\ + :k8=\EOn:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:\ + :nd=\E[C:rc=\E8:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=:vs=\E[?1l\E[?4l\E[?7h: +# From: David S. Lawyer, June 1997: +# The CIT 101-e was made in Japan in 1983-4 and imported by CIE +# Terminals in Irvine, CA. It was part of CITOH Electronics. In the +# late 1980's CIT Terminals went out of business. +# There is no need to use the initialization string is=... (by invoking +# tset or setterm etc.) provided that the terminal has been manually set +# up (and the setup saved with ^S) to be compatible with this termcap. To be +# compatible it should be in ANSI mode (not VT52). A set-up that +# works is to set all the manually setable stuff to factory defaults +# by pressing ^D in set-up mode. Then increse the brighness with the +# up-arrow key since the factory default will likely be dim on an old +# terminal. Then change any options you want (provided that they are +# compatible with the termcap). For my terminal I set: Screen +# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver: +# on. I also set up mine for parity (but you may not need it). Then +# save the setup with ^S. +# (cit101e-rv: added empty :te: to suppress a tic warning. --esr) +cit101e-rv|Citoh CIT-101e (sets reverse video):\ + :am:eo:mi:ms:xn:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:ic=\E[@:\ + :im=\E[4h:\ + :is=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=\177:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nl=\EM:nw=\EE:r1=\Ec\E[?7h\E[>5g:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=:\ + :ti=\E[>5g\E[?7h\E[?5h:u6=\E[%i%d;%dR:u7=\E[6n:\ + :u8=\E[?6c:u9=\E[c:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5l\E[?5h:ve=\E[0;3;4v:vi=\E[1v:vs=\E[3;5v: +cit101e-n|CIT-101e w/o am:\ + :am@:\ + :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e: +cit101e-132|CIT-101e with 132 cols:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:tc=cit101e: +cit101e-n132|CIT-101e with 132 cols w/o am:\ + :am@:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e: +# CIE Terminals CIT-500 from BRL +# The following SET-UP modes are assumed for normal operation: +# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF +# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES +# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF +# Other SET-UP modes may be set for operator convenience or communication +# requirements. +# Hardware tabs are assumed to be set every 8 columns; they can be set up +# by the "reset", "tset", or "tabs" utilities. No delays are specified; use +# "stty ixon -ixany" to enable DC3/DC1 flow control! +# (cit500: I added <rmam>/<smam> based on the init string -- esr) +cit500|CIE Terminals CIT-500:\ + :bs:mi:ms:pt:xo:\ + :co#80:it#8:kn#10:li#64:vt#3:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:\ + :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:\ + :bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E<\E)0:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:k4=\EOU:k5=\EOV:k6=\EOW:k7=\EOX:k8=\EOY:\ + :k9=\EOZ:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\EK:kI=\E[4h:kL=\E[M:\ + :kM=\E[4l:kS=\EJ:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:\ + :l3=PF4:l4=F15:l5=F16:l6=F17:l7=F18:l8=F19:l9=F20:le=^H:\ + :ll=\E[64H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:\ + :r1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m: + +# C. Itoh printers begin here +citoh|ci8510|8510|c.itoh 8510a:\ + :co#80:it#8:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073.:\ + :le@:md=\E\041:me=\E"\EY:rp=\ER%r%03%.:sr=\Er:ue=\EY:\ + :us=\EX:\ + :tc=lpr: +citoh-pica|citoh in pica:\ + :i1=\EN:tc=citoh: +citoh-elite|citoh in elite:\ + :co#96:\ + :i1=\EE:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089.:tc=citoh: +citoh-comp|citoh in compressed:\ + :co#136:\ + :i1=\EQ:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089\054097\054105\054113\054121\054129.:tc=citoh: +# citoh has infinite cols because we don't want lp ever inserting \n\t**. +citoh-prop|citoh-ps|ips|citoh in proportional spacing mode:\ + :co#32767:\ + :i1=\EP:tc=citoh: +citoh-6lpi|citoh in 6 lines per inch mode:\ + :i2=\EA:tc=citoh: +citoh-8lpi|citoh in 8 lines per inch mode:\ + :li#88:\ + :i2=\EB:tc=citoh: + +#### Control Data (cdc) +# + +cdc456|cdc 456 terminal:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%+ %+ :cr=^M:dl=\EJ:\ + :do=^J:ho=^Y:le=^H:nd=^L:sf=^J:up=^Z: + +# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick) +cdc721|CDC Viking:\ + :am:bs:\ + :co#80:li#24:\ + :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\ + :ku=^W:nd=^X:up=^W: +cdc721ll|CDC Vikingll:\ + :am:bs:\ + :co#132:li#24:\ + :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\ + :ku=^W:nd=^X:up=^W: +# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out +cdc752|CDC 752:\ + :am:bs:bw:xs:\ + :co#80:li#24:\ + :bl=^G:ce=^V:cl=\030\E1 :cm=\E1%r%+ %+ :cr=^M:do=^J:\ + :ho=\E1 :le=^H:ll=^Y:nd=^U:r1=\E1 \030\002\003\017:\ + :sf=^J:up=^Z: +# CDC 756 +# The following switch/key settings are assumed for normal operation: +# 96 chars SCROLL FULL duplex not BLOCK +# Other switches may be set according to communication requirements. +# Insert/delete-character cannot be used, as the whole display is affected. +# "so" & "se" are commented out until jove handles "sg" correctly. +cdc756|CDC 756:\ + :am:bs:bw:\ + :co#80:kn#10:li#24:\ + :al=6*\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%r%+ %+ :cr=^M:\ + :dl=6*\EJ:do=^J:ho=^Y:k0=\EA:k1=\EB:k2=\EC:k3=\ED:k4=\EE:\ + :k5=\EF:k6=\EG:k7=\EH:k8=\Ea:k9=\Eb:kA=\EL:kD=\EI:kE=^V:\ + :kI=\EK:kL=\EL:kS=^X:kT=^O:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^U:\ + :ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:\ + :l9=F10:le=^H:ll=^Y^Z:nd=^U:r1=\031\030\002\003\017:sf=^J:\ + :up=^Z: +# +# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL. +# +# Part of the long initialization string defines the "DOWN" key to the left +# of the tab key to send an ESC. The real ESC key is positioned way out +# in right field. +# +# The termcap won't work in 132 column mode due to the way it it moves the +# cursor. Termcap doesn't have the capability (as far as I could tell) to +# handle the 721 in 132 column mode. +# +# (cdc721: changed :ri: to :sr: -- esr) +cdc721-esc|Control Data 721:\ + :am:bs:bw:ms:pt:xo:\ + :co#80:it#8:kn#10:li#30:\ + :al=^^R:bl=^G:bt=^^^K:cd=^^P:ce=^K:cl=^L:cm=\002%r%+ %+ :\ + :ct=^^^RY:dc=^^N:dl=^^Q:do=^Z:ei=:ho=^Y:ic=^^O:im=:\ + :is=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\136\036\022b\036\022i\036W =\036\022Z\036\011C1-` `\041k/o:\ + :k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:k7=^^x:\ + :k8=^^y:k9=^^z:kb=^H:kd=^Z:ke=^^^Rl:kh=^Y:kl=^H:kr=^X:\ + :ks=^^^Rk:ku=^W:le=^H:ll=^B =:mb=^N:\ + :me=\017\025\035\036E\036\022\:mh=^\:mk=^^^R[:mr=^^D:\ + :nd=^X:se=^^E:sf=\036W =\036U:so=^^D:sr=\036W =\036V:\ + :st=^^^RW:ue=^]:up=^W:us=^\: + +#### Getronics +# +# Getronics is a Dutch electronics company that at one time was called +# `Geveke' and made async terminals; but (according to the company itself!) +# they've lost all their documentation on the command set. The hardware +# documentation suggests the terminals were actually manufactured by a +# Taiwanese electronics company named Cal-Comp. There are known +# to have been at least two models, the 33 and the 50. +# + +# The 50 seems to be a top end vt220 clone, with the addition of a higher +# screen resolution, a larger screen, at least 1 page of memory above and +# below the screen, apparently pages of memory right and left of the screen +# which can be panned, and about 75 function keys (15 function keys x normal, +# shift, control, func A, func B). It also has more setup possibilities than +# the vt220. The monitor case is dated November 1978 and the keyboard case is +# May 1982. +# +# The vt100 emulation works as is. The entry below describes the rather +# non-conformant (but more featureful) ANSI mode. +# +# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +visa50|geveke visa 50 terminal in ansi 80 character mode:\ + :bw:mi:ms:\ + :co#80:li#25:\ + :AL=\E[%dL:DC=\E[%dX:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\E[f:K2=\EOP:K3=\EOQ:K4=\EOR:K5=\EOS:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\E[3l:al=\E[L:as=\E3h:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[X:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\ + :is=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h:k0=\E010:\ + :k1=\E001:k2=\E002:k3=\E003:k4=\E004:k5=\E005:k6=\E006:\ + :k7=\E007:k8=\E008:k9=\E009:kD=\177:kb=^H:kd=\E[A:ke=\E>:\ + :kh=\E[f:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[0;2m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[0;2m:sf=^J:so=\E[2;7m:ta=^I:ue=\E[0m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l: + +#### Human Designed Systems (Concept) +# +# Human Designed Systems +# 400 Fehley Drive +# King of Prussia, PA 19406 +# Vox: (610)-277-8300 +# Fax: (610)-275-5739 +# Net: support@hds.com +# +# John Martin <john@hds.com> is their termcap expert. They're mostly out of +# the character-terminal business now (1995) and making X terminals. In +# particular, the whole `Concept' line described here was discontinued long +# ago. +# + +# From: <vax135!hpk> Sat Jun 27 07:41:20 1981 +# Extensive changes to c108 by arpavax:eric Feb 1982 +# Some unknown person at SCO then translated it to terminfo. +# +# There seem to be a number of different versions of the C108 PROMS +# (with bug fixes in its Z-80 program). +# +# The first one that we had would lock out the keyboard of you +# sent lots of short lines (like /usr/dict/words) at 9600 baud. +# Try that on your C108 and see if it sends a ^S when you type it. +# If so, you have an old version of the PROMs. +# +# You should configure the C108 to send ^S/^Q before running this. +# It is much faster (at 9600 baud) than the c100 because the delays +# are not fixed. +# new status line display entries for c108-8p: +# :i3: - init str #3 - setup term for status display - +# set programmer mode, select window 2, define window at last +# line of memory, set bkgnd stat mesg there, select window 0. +# +# :ts: - to status line - select window 2, home cursor, erase to +# end-of-window, 1/2 bright on, goto(line#0, col#?) +# +# :fs: - from status line - 1/2 bright off, select window 0 +# +# :ds: - disable status display - set bkgnd status mesg with +# illegal window # +# +# There are probably more function keys that should be added but +# I don't know what they are. +# +# No delays needed on c108 because of ^S/^Q handshaking +# +c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages:\ + :i2=\EU\E z"\Ev\001\177 \041p\E ;"\E z \Ev \001\177p\Ep\n:\ + :te=\Ev \001\177p\Ep\r\n:\ + :tc=c108-4p: +c108-4p|concept108-4p|concept 108 w/4 pages:\ + :bs:es:hs:xo:\ + :pb@:\ + :ac=jEkTl\mMqLxU:ae=\Ej :as=\Ej\041:\ + :..cm=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c:\ + :cr=^M:dc=\E 1:ds=\E ;\177:fs=\Ee\E z :i1=\EK\E\041\E F:\ + :i2=\EU\E z"\Ev\177 \041p\E ;"\E z \Ev \001 p\Ep\n:\ + :sf=^J:te=\Ev \001 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:\ + :ts=\E z"\E?\E\005\EE\Ea %+ :ve=\Ew:vs=\EW:\ + :tc=c100: +c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video:\ + :te=\Ev \002 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r:\ + :tc=c108-rv-4p: +c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video:\ + :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:\ + :tc=c108-4p: +c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode:\ + :co#132:\ + :i1=\E F\E":te=\Ev ^A0\001D\Ep\r\n:\ + :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p: + +# Concept 100: +# These have only window relative cursor addressing, not screen +# relative. To get it to work right here, smcup/rmcup (which +# were invented for the concept) lock you into a one page +# window for screen style programs. +# +# To get out of the one page window, we use a clever trick: +# we set the window size to zero ("\Ev " in rmcup) which the +# terminal recognizes as an error and resets the window to all +# of memory. +# +# This trick works on c100 but does not on c108, sigh. +# +# Some tty drivers use cr3 for concept, others use nl3, hence +# the delays on cr and ind below. This padding is only needed at +# 9600 baud and up. One or the other is commented out depending on +# local conventions. +# +# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe +# less than 6 but more than 2 will work. +# +# Note: can't use function keys f7-f10 because they are +# indistinguishable from arrow keys (!), also, del char and +# clear eol use xon/xoff so they probably won't work very well. +# +# Also note that we don't define insrt/del char/delline/eop/send +# because they don't transmit unless we reset them - I figured +# it was a bad idea to clobber their definitions. +# +# The <mc5> sequence changes the escape character to ^^ so that +# escapes will be passed through to the printer. Only trouble +# is that ^^ won't be - ^^ was chosen to be unlikely. +# Unfortunately, if you're sending raster bits through to be +# plotted, any character you choose will be likely, so we lose. +# +# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) +# cannot be # in is2 because it will hang a c100 with no printer +# if sent twice. +c100|concept100|concept|c104|c100-4p|hds concept 100:\ + :am:bs:eo:mi:ul:xn:\ + :co#80:li#24:pb#9600:vt#8:\ + :al=\E\022:bl=^G:cd=\E\005:ce=\E\025:cl=\E?\E\005:\ + :cm=\Ea%+ %+ :cr=\r:dc=\E\021:dl=\E\002:do=^J:ei=\E :\ + :i1=\EK:i2=\Ev \Ep\n:im=\E^P:ip=:\ + :is=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo\041\0\E\007\041\E\010A@ \E4#\072"\E\072a\E4#;"\E\072b\E4#<"\E\072c:\ + :k1=\E5:k2=\E6:k3=\E7:k4=\E8:k5=\E9:k6=\E\072a:k7=\E\072b:\ + :k8=\E\072c:kA=\E^R:kB=\E':kD=\E^Q:kE=\E^S:kF=\E[:kI=\E^P:\ + :kL=\E^B:kM=\E\0:kN=\E-:kP=\E.:kR=\E\:kS=\E^C:kT=\E]:kb=^H:\ + :kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:kt=\E_:ku=\E;:\ + :le=^H:mb=\EC:me=\EN@:mh=\EE:mk=\EH:mp=\EI:mr=\ED:nd=\E=:\ + :pf=\036o \E\EQ\041\EYP\027:\ + :po=\EQ"\EY(\027\EYD\Eo \036:rp=\Er%.%+ :se=\Ed:sf=^J:\ + :so=\ED:ta=\011:te=\Ev \Ep\r\n:\ + :ti=\EU\Ev 8p\Ep\r\E\025:ue=\Eg:up=\E;:us=\EG:vb=\Ek\EK: +c100-rv|c100-rv-4p|concept100-rv|c100 rev video:\ + :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:ve@:vs@:tc=c100: +oc100|oconcept|c100-1p|old 1 page concept 100:\ + :in:\ + :i3@:tc=c100: + +# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996. +# Lots of notes, originally inline, but ncurses doesn't grok that. +# +# am: not available in power on mode, but turned on with \E[=107;207h in +# is2=. Also, \E=124l in is2= could have been used to prevent needing +# to specify xenl:, but that would have rendered the last space on the +# last line useless. +# bw: Not available in power on mode, but turned on with \E[=107;207h in +# is2=. +# clear: Could be done with \E[2J alone, except that vi (and probably most +# other programs) assume that this also homes the cursor. +# dsl: Go to window 2, go to the beginning of the line, use a line feed to +# scroll the window, and go back to window 1. +# is2: the string may cause a warning to be issued by tic that it +# found a very long line and that it suspects that a comma is missing +# somewhere. This warning can be ignored (unless it comes up more than +# once). The initialization string contains the following commands: +# +# [Setup mode items changed from factory defaults:] +# \E)0 set alternate character set to +# graphics +# ^O set character set to default +# [In case it wasn't] +# \E[m turn off all attributes +# [In case they weren't off] +# \E[=107; cursor wrap and +# 207h character wrap on +# \E[90;3u set Fkey definitions to "transmit" +# defaults +# \E[92;3u set cursor key definitions to +# "transmit" defaults +# \E[43;1u set shift F13 to transmit... +# \177\E$P\177 +# \E[44;1u set shift F14 to transmit... +# \177\E$Q\177 +# \E[45;1u set shift F15 to transmit... +# \177\E$R\177 +# \E[46;1u set shift F16 to transmit... +# \177\E$S\177 +# \E[200;1u set shift up to transmit... +# \177\E$A\177 +# \E[201;1u set shift down to transmit... +# \177\E$B\177 +# \E[202;1u set shift right to transmit... +# \177\E$C\177 +# \E[203;1u set shift left to transmit... +# \177\E$D\177 +# \E[204;1u set shift home to transmit... +# \177\E$H\177 +# \E[212;1u set backtab to transmit... +# \177\E$I\177 +# \E[213;1u set shift backspace to transmit... +# \177\E$^H\177 +# \E[214;1u set shift del to transmit... +# "\E$\177" +# [Necessary items not mentioned in setup mode:] +# \E[2!w move to window 2 +# \E[25;25w define window as line 25 of memory +# \E[!w move to window 1 +# \E[2*w show current line of window 2 as +# status line +# \E[2+x set meta key to use high bit +# \E[;3+} move underline to bottom of character +# +# All Fkeys are set to their default transmit definitions with \E[90;3u +# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty +# setting MUST be redefined or deactivated, because the default is +# contained in almost all of this terminal's Fkey strings! If for some +# reason "quit" cannot be altered, the Fkeys can, but it would be +# necessary to change ^| to ^] in all of these definitions, and add +# \E[2;029!t to is2. +# lines: is set to 24 because this terminal refuses to treat the 25th +# line normally. +# ll: Not available in power on mode, but turned on with \E[=107;207h in +# is2=. +# lm: Pointless, given that this definition locks a single screen of +# memory into view, but what the hey... +# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any +# other attributes alone), but some programs expect this to turn off +# everything. +# rmul: Could use \E[4!{ to turn off only underline (leaving any other +# attributes alone), but some programs expect this to turn off +# everything. +# sgr: Attributes are set on this terminal with the string \E[ followed by +# a list of attribute code numbers (in decimal, separated by +# semicolons), followed by the character m. The attribute code +# numbers are: +# 1 for bold; +# 2 for dim (which is ignored in power on mode); +# 4 for underline; +# 5 for blinking; +# 7 for inverse; +# 8 for not displayable; and +# =99 for protected (except that there are strange side +# effects to protected characters which make them inadvisable). +# The mapping of terminfo parameters to attributes is as follows: +# %p1 (standout) = bold and inverse together; +# %p2 (underline) = underline; +# %p3 (reverse) = inverse; +# %p4 (blink) = blinking; +# %p5 (dim) is ignored; +# %p6 (bold) = bold; +# %p7 (invisible) = not displayable; +# %p8 (protected) is ignored; and +# %p9 (alt char set) = alt char set. +# The code to do this is: +# \E[0 OUTPUT \E[0 +# %?%p1%p6%O IF (standout; bold) OR +# %t;1 THEN OUTPUT ;1 +# %; ENDIF +# %?%p2 IF underline +# %t;4 THEN OUTPUT ;4 +# %; ENDIF +# %?%p4 IF blink +# %t;5 THEN OUTPUT ;5 +# %; ENDIF +# %?%p1%p3%O IF (standout; reverse) OR +# %t;7 THEN OUTPUT ;7 +# %; ENDIF +# %?%p7 IF invisible +# %t;8 THEN OUTPUT ;8 +# %; ENDIF +# m OUTPUT m +# %?%p9 IF altcharset +# %t^N THEN OUTPUT ^N +# %e^O ELSE OUTPUT ^O +# %; ENDIF +# sgr0: Everything is turned off (including alternate character set), since +# there is no way of knowing what it is that the program wants turned +# off. +# smul: The "underline" attribute is reconfigurable to an overline or +# strikethru, or (as done with \E[;3+} in is2=), to a line at the true +# bottom of the character cell. This was done to allow for more readable +# underlined characters, and to be able to distinguish between an +# underlined space, an underscore, and an underlined underscore. +# xenl: Terminal can be configured to not need this, but this "glitch" +# behavior is actually preferable with autowrap terminals. +# +# Parameters kf31= thru kf53= actually contain the strings sent by the shifted +# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2 +# string modifies the 'O' in kf43 to kf46 to a '$'. +# +# kcbt was originally ^I but redefined in is2=. +# kHOM was \E[H originally but redefined in is2=, as were a number of +# other keys. +# kDC was originally \177 but redefined in is2=. +# +# kbs: Shift was also ^H originally but redefined as \E$^H in is2=. +# tsl: Go to window 2, then do an hpa=. +# +#------- flash=\E[8;3!}^G\E[3;3!} +#------- flash=\E[?5h$<100>\E[?5l +# There are two ways to flash the screen, both of which have their drawbacks. +# The first is to set the bell mode to video, transmit a bell character, and +# set the bell mode back - but to what? There is no way of knowing what the +# user's old bell setting was before we messed with it. Worse, the command to +# set the bell mode also sets the key click volume, and there is no way to say +# "leave that alone", or to know what it's set to, either. +# The second way to do a flash is to set the screen to inverse video, pad for a +# tenth of a second, and set it back - but like before, there's no way to know +# that the screen wasn't ALREADY in inverse video, or that the user may prefer +# it that way. The point is moot anyway, since vi (and probably other +# programs) assume that by defining flash=, you want the computer to use it +# INSTEAD of bel=, rather than as a secondary type of signal. +# +#------- cvvis=\E[+{ +# The is the power on setting, which is also as visible as the cursor +# gets. +#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw +# Windowing is possible, but not defined here because it is also used to +# emulate status line functions. Allowing a program to set a window could +# clobber the status line or render it unusable. There is additional memory, +# but screen scroll functions are destructive and do not make use of it. +# +#------- dim= Not available in power on mode. +# You have a choice of defining low intensity characters as "half bright" and +# high intensity as "normal", or defining low as "normal" and high as "bold". +# No matter which you choose, only one of either "half bright" or "bold" is +# available at any time, so taking the time to override the default is +# pointless. +# +#------- prot=\E[=0;99m +# Not defined, because it appears to have some strange side effects. +#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%; +# Available, but making them available to programs is inadvisable. +# The code to do this is: +# %?%p1%{24}%< IF ((key; 24) <; +# %p1%{30}%> ((key; 30) >; +# %p1%{54}%< (key; 54) < +# %A ) AND +# %O ) OR +# [that is, "IF key < 24 OR (key > 30 AND key < 54)",] +# %t\E[ THEN OUTPUT \E[ +# %p1%d OUTPUT (key) as decimal +# [next line applies to pfx only] +# ;1 OUTPUT ;1 +# u OUTPUT u +# \177 OUTPUT \177 +# %p2%s OUTPUT (string) as string +# \177 OUTPUT \177 +# [DEL chosen as delimiter, but could be any character] +# [implied: ELSE do nothing] +# %; ENDIF +# +#------- rs2= +# Not defined since anything it might do could be done faster and easier with +# either Meta-Shift-Reset or the main power switch. +# +#------- smkx=\E[1!z +#------- rmkx=\E[!z +# These sequences apply to the cursor and setup keys only, not to the +# numeric keypad. But it doesn't matter anyway, since making these +# available to programs is inadvisable. +# For the key definitions below, all sequences beginning with \E$ are +# custom and programmed into the terminal via is2. \E$ also has no +# meaning to any other terminal. +# +#------- cmdch=\E[;%p1%d!t +# Available, but making it available to programs is inadvisable. +#------- smxon=\E[1*q +# Available, but making it available to programs is inadvisable. +# Terminal will send XON/XOFF on buffer overflow. +#------- rmxon=\E[*q +# Available, but making it available to programs is inadvisable. +# Terminal will not notify on buffer overflow. +#------- smm=\E[2+x +#------- rmm=\E[+x +# Available, but making them available to programs is inadvisable. +# +# Printing: +# It's not made clear in the manuals, but based on other ansi/vt type +# terminals, it's a good guess that this terminal is capable of both +# "transparent print" (which doesn't copy data to the screen, and +# therefore needs mc5i: specified to say so) and "auxilliary print" +# (which does duplicate printed data on the screen, in which case mc4= +# and mc5= should use the \E[?4i and \E[?5i strings instead). +# +# (esr: I have commented out is2 in order to avoid overflowing termcap's +# 1024-byte limit.) + +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +hds200|Human Designed Systems HDS200:\ + :am:bw:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#0:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ds=\E[2\041w\r\n\E[\041w:ei=\E[4l:fs=\E[\041w:ho=\E[H:\ + :im=\E[4h:k1=^\001\r:k2=^\002\r:k3=^\003\r:k4=^\004\r:\ + :k5=^\005\r:k6=^\006\r:k7=^\007\r:k8=^\008\r:k9=^\009\r:\ + :kD=\177:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[H\E[A:mb=\E[0;5m:\ + :md=\E[0;1m:me=\E[m\017:mr=\E[0;7m:nd=\E[C:nw=\E[E:rc=\E8:\ + :sc=\E7:se=\E[m\017:sf=\ED:so=\E[0;1;7m:sr=\EM:st=\EH:\ + :ta=^I:ts=\E[2\041w\E[%i%p1%dG:ue=\E[m\017:up=\E[A:\ + :us=\E[0;4m:ve=\E[+{:vi=\E[6+{: + +# :ta: through :ce: included to specify padding needed in raw mode. +# (avt-ns: added empty <acsc> to suppress a tic warning --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +avt-ns|concept avt no status line:\ + :am:bs:eo:mi:ul:xn:xo:\ + :co#80:it#8:li#24:lm#192:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\016:al=\E[L:as=\017:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[2g:dc=\E[P:dl=\E[M:do=^J:ei=\E4l:\ + :ho=\E[H:i1=\E[=103l\E[=205l:ic=\E[@:im=\E1:ip=:\ + :is=\E[1*q\E[2\041t\E[7\041t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[\041y\E[\041z\E>\E[0\0720\07232\041r\E[0*w\E[w\E2\r\n\E[2;27\041t:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E^B\r:kI=\E^A\r:kb=^H:\ + :kd=\E[B:ke=\E[\041z\E[0;2u:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[1\041z\E[0;3u:ku=\E[A:le=^H:ll=\E[24H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mh=\E[1\041{:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[7\041{:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :te=\E[w\E2\r\n:ti=\E[=4l\E[1;24w\E2\r:ue=\E[4\041{:\ + :up=\E[A:us=\E[4m:ve=\E[=119l:vs=\E[=119h: +avt-rv-ns|concept avt in reverse video mode/no status line:\ + :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:\ + :tc=avt-ns: +avt-w-ns|concept avt in 132 column mode/no status line:\ + :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:\ + :tc=avt-ns: +avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video:\ + :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ + :vb=\E[=205l\E[=205h:tc=avt-ns: + +# Concept AVT with status line. We get the status line using the +# "Background status line" feature of the terminal. We swipe the +# first line of memory in window 2 for the status line, keeping +# 191 lines of memory and 24 screen lines for regular use. +# The first line is used instead of the last so that this works +# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this +# assumes an 8 page AVT but lm isn't currently used anywhere.) +# +avt+s|concept avt status line changes:\ + :es:hs:\ + :lm#191:\ + :ds=\E[0*w:fs=\E[1;1\041w:\ + :i2=\E[2w\E[2\041w\E[1;1;1;80w\E[H\E[2*w\E[1\041w\E2\r\n:\ + :te=\E[2w\E2\r\n:ti=\E[2;25w\E2\r:\ + :ts=\E[2;1\041w\E[;%p1%dH\E[2K: +avt|avt-s|concept-avt|avt w/80 columns:\ + :tc=avt+s:tc=avt-ns: +avt-rv|avt-rv-s|avt reverse video w/sl:\ + :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns: +avt-w|avt-w-s|concept avt 132 cols+status:\ + :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt+s:tc=avt-ns: +avt-w-rv|avt-w-rv-s|avt wide+status+rv:\ + :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ + :vb=\E[=205l\E[=205h:tc=avt+s:\ + :tc=avt-ns: + +#### Contel Business Systems. +# + +# Contel c300 and c320 terminals. +contel300|contel320|c300|Contel Business Systems C-300 or C-320:\ + :am:in:xo:\ + :co#80:li#24:sg#1:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:\ + :ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:k0=\ERJ:\ + :k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:k7=\ERG:\ + :k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:nd=\EC:\ + :se=\E\041\0:sf=^J:so=\E\041\r:st=\E1:up=\EA:\ + :vb=\020\002\020\003: +# Contel c301 and c321 terminals. +contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\ + :ei=:ic@:im=:ip@:se=\E\041\0:so=\E\041\r:vb@:\ + :tc=contel300: + +#### Data General (dg) +# +# According to James Carlson <carlson@xylogics.com> writing in January 1995, +# the terminals group at Data General was shut down in 1991; all these +# terminals have thus been discontinued. +# +# DG terminals have function keys that respond to the SHIFT and CTRL keys, +# e.g., SHIFT-F1 generates a different code from F1. To number the keys +# sequentially, first the unmodified key codes are listed as F1 through F15. +# Then their SHIFT versions are listed as F16 through F30, their CTRL versions +# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as +# F46 through F60. This is done in the private "includes" below whose names +# start with "dgkeys+". +# +# DG terminals generally support 8 bit characters. For each of these terminals +# two descriptions are supplied: +# 1) A default description for 8 bits/character communications, which +# uses the default DG international character set and keyboard codes. +# 2) A description with suffix "-7b" for 7 bits/character communications. +# This description must use the NON-DEFAULT native keyboard language. + +# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33), +# Ctrl/Shift fdkeys (kf34-kf44). + +# Most of these entries are `official' and came from DG. Others are marked. + +dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys:\ + :%9=\233i:F1=\233011z:F2=\233012z:F3=\233013z:\ + :F4=\233014z:F5=\233000z:F6=\233101z:F7=\233102z:\ + :F8=\233103z:F9=\233104z:FA=\233105z:FB=\233106z:\ + :FC=\233107z:FD=\233108z:FE=\233109z:FF=\233110z:\ + :FG=\233111z:FH=\233112z:FI=\233113z:FJ=\233114z:\ + :FK=\233100z:FL=\233201z:FM=\233202z:FN=\233203z:\ + :FO=\233204z:FP=\233205z:FQ=\233206z:FR=\233207z:\ + :FS=\233208z:FT=\233209z:FU=\233210z:FV=\233211z:\ + :FW=\233212z:FX=\233213z:FY=\233214z:FZ=\233200z:\ + :Fa=\233301z:Fb=\233302z:Fc=\233303z:Fd=\233304z:\ + :Fe=\233305z:Ff=\233306z:Fg=\233307z:Fh=\233308z:\ + :Fi=\233309z:Fj=\233310z:Fk=\233311z:Fl=\233312z:\ + :Fm=\233313z:Fn=\233314z:Fo=\233300z:K1=\233020z:\ + :K3=\233021z:K4=\233022z:K5=\233023z:k1=\233001z:\ + :k2=\233002z:k3=\233003z:k4=\233004z:k5=\233005z:\ + :k6=\233006z:k7=\233007z:k8=\233008z:k9=\233009z:\ + :k;=\233010z:kC=\2332J:kE=\233K:kd=\233B:kh=\233H:\ + :kl=\233D:kr=\233C:ku=\233A: + +dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys:\ + :%9=\E[i:F1=\E[011z:F2=\E[012z:F3=\E[013z:F4=\E[014z:\ + :F5=\E[000z:F6=\E[101z:F7=\E[102z:F8=\E[103z:F9=\E[104z:\ + :FA=\E[105z:FB=\E[106z:FC=\E[107z:FD=\E[108z:FE=\E[109z:\ + :FF=\E[110z:FG=\E[111z:FH=\E[112z:FI=\E[113z:FJ=\E[114z:\ + :FK=\E[100z:FL=\E[201z:FM=\E[202z:FN=\E[203z:FO=\E[204z:\ + :FP=\E[205z:FQ=\E[206z:FR=\E[207z:FS=\E[208z:FT=\E[209z:\ + :FU=\E[210z:FV=\E[211z:FW=\E[212z:FX=\E[213z:FY=\E[214z:\ + :FZ=\E[200z:Fa=\E[301z:Fb=\E[302z:Fc=\E[303z:Fd=\E[304z:\ + :Fe=\E[305z:Ff=\E[306z:Fg=\E[307z:Fh=\E[308z:Fi=\E[309z:\ + :Fj=\E[310z:Fk=\E[311z:Fl=\E[312z:Fm=\E[313z:Fn=\E[314z:\ + :Fo=\E[300z:K1=\E[020z:K3=\E[021z:K4=\E[022z:K5=\E[023z:\ + :k1=\E[001z:k2=\E[002z:k3=\E[003z:k4=\E[004z:k5=\E[005z:\ + :k6=\E[006z:k7=\E[007z:k8=\E[008z:k9=\E[009z:k;=\E[010z:\ + :kC=\E[2J:kE=\E[K:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A: + +dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys:\ + :F1=^^{:F2=^^a:F3=^^b:F4=^^c:F5=^^d:F6=^^e:F7=^^f:F8=^^g:\ + :F9=^^h:FA=^^i:FB=^^j:FC=^^k:FD=^^1:FE=^^2:FF=^^3:FG=^^4:\ + :FH=^^5:FI=^^6:FJ=^^7:FK=^^8:FL=^^9:FM=^^\072:FN=^^;:\ + :FO=^^\041:FP=^^":FQ=^^#:FR=^^$:FS=^^%:FT=^^&:FU=^^':FV=^^(:\ + :FW=^^):FX=^^*:FY=^^+:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:\ + :k6=^^v:k7=^^w:k8=^^x:k9=^^y:k;=^^z:kC=^L:kE=^K:kd=^Z:kh=^H:\ + :kl=^Y:kr=^X:ku=^W: + +dgkeys+15|Private entry describing 15 DG mode special keys:\ + :#2=^^^H:#4=^^^Y:%i=^^^X:F1=^^{:F2=^^|:F3=^^}:F4=^^~:F5=^^p:\ + :F6=^^a:F7=^^b:F8=^^c:F9=^^d:FA=^^e:FB=^^f:FC=^^g:FD=^^h:\ + :FE=^^i:FF=^^j:FG=^^k:FH=^^l:FI=^^m:FJ=^^n:FK=^^`:FL=^^1:\ + :FM=^^2:FN=^^3:FO=^^4:FP=^^5:FQ=^^6:FR=^^7:FS=^^8:FT=^^9:\ + :FU=^^\072:FV=^^;:FW=^^<:FX=^^=:FY=^^>:FZ=^^0:Fa=^^\041:\ + :Fb=^^":Fc=^^#:Fd=^^$:Fe=^^%:Ff=^^&:Fg=^^':Fh=^^(:Fi=^^):\ + :Fj=^^*:Fk=^^+:Fl=^^\054:Fm=^^-:Fn=^^.:Fo=^^ :K1=^^\:K3=^^]:\ + :K4=^^\136:K5=^^_:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:\ + :k7=^^w:k8=^^x:k9=^^y:k;=^^z: + +# Data General color terminals use the "Tektronix" color model. The total +# number of colors varies with the terminal model, as does support for +# attributes used in conjunction with color. + +# Removed u7, u8 definitions since they conflict with tack: +# Preserve user-defined colors in at least some cases. +# u7=^^Fh, +# Default is ACM mode. +# u8=^^F}20^^Fi^^F}21, +# +dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode:\ + :ut:\ + :Co#16:NC#53:pa#256:\ + :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd: + +dg+fixed|Fixed color info for DG D430C terminals in DG mode:\ + :tc=dgunix+fixed: + +# Video attributes are coordinated using static variables set by "sgr", then +# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. +# (D=dim, U=underline, B=blink, R=reverse.) +dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\ + :ut:\ + :Co#8:NC#16:pa#64:\ + :AB=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :AF=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m: + +dg+color|Color info for Data General D470C terminals in ANSI mode:\ + :Co#16:NC#53:pa#256:\ + :AB=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :AF=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :tc=dg+color8: + +dgmode+color8|Color info for Data General D220/D230C terminals in DG mode:\ + :ut:\ + :Co#8:NC#16:pa#64:\ + :AB=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\ + :AF=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\ + :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd: + +dgmode+color|Color info for Data General D470C terminals in DG mode:\ + :Co#16:pa#256:\ + :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :tc=dgmode+color8: + +dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode:\ + :cc:ut:\ + :Co#52:NC#53:pa#26:\ + :..Ip=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X:\ + :oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00:\ + :op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D:\ + :..sp=\036RG2%p1%02X: + +# Colors are in the order: normal, reverse, dim, dim + reverse. +dg+ccc|Configurable color info for DG D430C terminals in DG mode:\ + :cc:ut:\ + :Co#52:NC#53:pa#26:\ + :..Ip=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c:\ + :oc=\036RG01\07200??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00:\ + :op=\036RF4831\072\036RF2>31;\036RF1=31<\036RF3?31=:\ + :sp=\036RG2%+^P%+^P: + +# The generic DG terminal type (an 8-bit-clean subset of the 6053) +# Initialization string 1 sets: +# ^R - vertical scrolling enabled +# ^C - blinking enabled +dg-generic|Generic Data General terminal in DG mode:\ + :NL:am:bw:ms:xo:\ + :co#80:li#24:\ + :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:i1=^R^C:le=^Y:\ + :mb=^N:me=^O^U^]:mh=^\:nd=^X:nw=^J:ps=^Q:se=^]:sf=^J:so=^\:\ + :ue=^U:up=^W:us=^T:\ + :tc=dgkeys+11: + +# (Some performance can be gained over the generic DG terminal type) +dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053:\ + :xo@:\ + :ho=^P\0\0:ll=^P\0^W:tc=dg-generic: + +# Like 6053, but adds reverse video and more keypad and function keys. +d200|d200-dg|Data General DASHER D200:\ + :ho@:ll@:md=^^D^T:me=\017\025\035\036E:mr=^^D:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;:\ + :se=^^E^]:so=^^D^\:\ + :tc=dgkeys+15:tc=dg6053: + +# DASHER D210 series terminals in ANSI mode. +# Reverse video, no insert/delete character/line, 7 bits/character only. +# +# Initialization string 1 sets: +# <0 - scrolling enabled +# <1 - blink enabled +# <4 - print characters regardless of attributes +d210|d214|Data General DASHER D210 series:\ + :NL:am:bw:ms:xo:\ + :co#80:li#24:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cb=\E[1K:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=\E[B:\ + :ho=\E[H:i1=\E[<0;<1;<4l:le=^H:ll=\E[H\E[A:mb=\E[5m:\ + :md=\E[4;7m:me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^J:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m:\ + :se=\E[m:sf=^J:so=\E[2;7m:ue=\E[m:up=\E[A:us=\E[4m:\ + :tc=dgkeys+7b: + +# DASHER D210 series terminals in DG mode. +# Like D200, but adds clear to end-of-screen and needs XON/XOFF. +d210-dg|d214-dg|Data General DASHER D210 series in DG mode:\ + :xo:\ + :cd=^^FF:tc=d200: + +# DASHER D211 series terminals in ANSI mode. +# Like the D210, but with 8-bit characters and local printer support. +# +# Initialization string 2 sets: +# \E[2;1;1;1v +# 2;1 - 8 bit operations +# 1;1 - 8 bit (international) keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# ^O - primary character set +# +d211|d215|Data General DASHER D211 series:\ + :km:\ + :is=\E[2;1;1;1v\E(B\E)4\017:ps=\E[i:tc=dgkeys+8b:tc=d210: + +# Initialization string 2 sets: +# \E[2;0;1;0v +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# ^O - primary character set +d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode:\ + :km@:\ + :is=\E[2;0;1;0v\E(0\017:tc=dgkeys+7b:tc=d211: + +# Like the D210 series, but adds support for 8-bit characters. +# +# Reset string 2 sets: +# ^^N - secondary character set +# ^^FS0> - 8 bit international character set +# ^^O - primary character set +# ^^FS00 - default character set (matching the native keyboard language) +# +d211-dg|d215-dg|Data General DASHER D211 series in DG mode:\ + :km:\ + :r2=\036N\036FS0>\036O\036FS00:tc=d210-dg: + +d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode:\ + :tc=d211-dg: + +# Enhanced DG mode with changes to be more UNIX compatible. +d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode:\ + :5i:\ + :it#8:\ + :#2=^^Pf:#4=^^Pd:%9=^^P0:%f=^^P1:%i=^^Pc:\ + :ac=a\177j$k"l\041m#n)q+t'u&v(w%x*:ae=\036FS00:\ + :as=\036FS11:ce=^^PE:ch=\020%.\177:cl=^^PH:cv=\020\177%.:\ + :do=^^PB:ho=^^PF:i1=\022\003\036P@1:i2=\036Fz0:kC=^^PH:\ + :kE=^^PE:kd=^^PB:kh=^^PF:kl=^^PD:kr=^^PC:ku=^^PA:le=^^PD:\ + :mb=^^PI:me=\036PJ\025\035\036E\036FS00:nd=^^PC:pf=^^Fa:\ + :po=^^F`:ps=\036F?9:r2=\036N\036FS0E\036O\036FS00:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:\ + :sf=^J:ta=^I:up=^^PA:\ + :tc=dgkeys+15:tc=d216-dg: +d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines:\ + :li#25:\ + :i2=\036Fz2:tc=d216+: + +d217-unix|Data General DASHER D217 in DG-UNIX mode:\ + :tc=d216-unix: +d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines:\ + :tc=d216-unix-25: + +# DASHER D220 color terminal in ANSI mode. +# Like the D470C but with fewer colors and screen editing features. +# +# Initialization string 1 sets: +# \E[<0;<1;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <4 - print characters regardless of attributes +# \E[m - all attributes off +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# +d220|Data General DASHER D220:\ + :5i@:\ + :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c: + +d220-7b|Data General DASHER D220 in 7 bit mode:\ + :5i@:\ + :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c-7b: + +# Initialization string 3 sets: +# - default cursor (solid rectangle) +# Reset string 2 sets: +# ^^N - secondary character set +# ^^FS0> - 8 bit international character set +# ^^O - primary character set +# ^^FS00 - default character set (matching the native keyboard language) +# +d220-dg|Data General DASHER D220 color terminal in DG mode:\ + :5i@:\ + :al@:dl@:ho@:i2=\036FQ2:is@:ll@:pf@:po@:r1@:\ + :r2=\036N\036FS0>\036O\036FS00:tc=dgmode+color8:\ + :tc=d470c-dg: + +# DASHER D230C color terminal in ANSI mode. +# Like the D220 but with minor ANSI compatibility improvements. +# +d230c|d230|Data General DASHER D230C:\ + :ke=\E[2;1v:ks=\E[2;0v:mb=\E[5;50m:md=\E[4;7;50m:\ + :me=\E[50m\E)4\017:mh=\E[2;50m:mr=\E[7;50m:nw=^M^J:\ + :..sa=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:\ + :se=\E[50m:so=\E[2;7;50m:ue=\E[50m:us=\E[4;50m:\ + :tc=dgkeys+7b:tc=d220: + +d230c-dg|d230-dg|Data General DASHER D230C in DG mode:\ + :tc=d220-dg: + +# DASHER D400/D450 series terminals. +# These add intelligent features like insert/delete to the D200 series. +# +# Initialization string 2 sets: +# ^^FQ2 - default cursor (solid rectangle) +# ^^FW - character protection disabled +# ^^FJ - normal (80 column) mode +# ^^F\^ - horizontal scrolling enabled (for alignment) +# ^^FX004? - margins at columns 0 and 79 +# ^^F] - horizontal scrolling disabled +# ^^O - primary character set +# ^^FS00 - default character set (the keyboard native language) +# - (should reset scrolling regions, but that glitches the screen) +# Reset string 1 sets: +# ^^FA - all terminal defaults except scroll rate +# Reset string 2 sets: +# ^^F] - horizontal scrolling disabled +# ^^FT0 - jump scrolling +# +d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series:\ + :5i:\ + :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=^^O:al=^^FH:as=^^N:\ + :ch=\020%.\177:cv=\020\177%.:dc=^^K:dl=^^FI:\ + :eA=\036N\036FS11\036O:ei=:ho=^^FG:ic=^^J:im=:\ + :is=\036FQ2\036FW\036FJ\036F\136\036FX004?\036F]\036O\036FS00:\ + :ll=\036FG\027:me=\017\025\035\036E\036O:pf=^^Fa:\ + :po=^^F`:r1=^^FA:r2=\036F]\036FT0:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;:\ + :sr=^^I:ve=\036FQ2:vi=\036FQ0:\ + :tc=d210-dg: + +# DASHER D410/D460 series terminals in ANSI mode. +# These add a large number of intelligent terminal features. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[5;0v - normal (80 column) mode +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +# Initialization string 2 sets: +# \E[3;2;2;1;1;1v +# 3;2 - default cursor (solid rectangle) +# 2;1 - 8 bit operations +# 1;1 - international keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# ^O - primary character set +# +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# \E[<2h - horizontal scrolling disabled +# +# Reset string 2 sets: +# \E[4;0;2;1;1;1v +# 4;0 - jump scrolling +# 2;1 - 8 bit operations +# 1;1 - 8 bit (international) keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# +d410|d411|d460|d461|Data General DASHER D410/D460 series:\ + :5i:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:\ + :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=\E)4\017:al=\E[L:\ + :as=\E)6\016:dc=\E[P:dl=\E[M:ei=:\ + :i1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h:\ + :ic=\E[@:im=:is=\E[3;2;2;1;1;1v\E(B\E)4\017:\ + :me=\E[m\E)4\017:pf=\E[4i:po=\E[5i:r1=\Ec\E[<2h:\ + :r2=\E[4;0;2;1;1;1v\E(B\E)4:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;:\ + :sr=\EM:ve=\E[3;2v:vi=\E[3;0v:\ + :tc=d211: + +# Initialization string 2 sets: +# \E[3;2;2;0;1;0v +# 3;2 - default cursor (solid rectangle) +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# ^O - primary character set +# +# Reset string 2 sets: +# \E[4;0;2;0;1;0v +# 4;0 - jump scrolling +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# +d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode:\ + :km@:\ + :ae=^O:as=^N:eA=\E)6:is=\E[3;2;2;0;1;0v\E(0\017:\ + :me=\E[m\017:r2=\E[4;0;2;0;1;0v\E(0:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;:tc=dgkeys+7b:\ + :tc=d410: + +d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode:\ + :km:\ + :ae=\036FS00:as=\036FS11:eA@:\ + :me=\017\025\035\036E\036FS00:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:tc=d400-dg: + +# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[5;1v - compressed (135 column) mode +# \E[1;1;126 - margins at columns 1 and 126 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# \E[5;1v - compressed (135 column) mode +# \E[1;1;126w - margins at columns 1 and 126 +# \E[<2h - horizontal scrolling disabled +# +d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode:\ + :co#126:\ + :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\ + :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\ + :tc=d410: + +d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode:\ + :co#126:\ + :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\ + :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\ + :tc=d410-7b: + +d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode:\ + :tc=d410-dg: + +# These add intelligent features like scrolling regions. +d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode:\ + :al=^^FH:ch=\036FP%2.2XFF:cl=^^FE:cm=\036FP%r%2.2X%2.2X:\ + :cv=\036FPFF%2.2X:dc=^^K:dl=^^FI:ei=:ho=^^FG:ic=^^J:im=:\ + :is=\036FQ5\036FW\036FJ\036F\136\036FX004F\036O\036FS00:\ + :ll=\036FG\036PA:ps=^A:r1=\036FA\036FT0:r2=\036P@1:\ + :rc=\036F}11:sc=\036F}10:sr=^^I:ve=\036FQ5:vi=\036FQ0:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:\ + :tc=d216+: +d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode:\ + :co#132:\ + :is=\036FQ5\036FW\036FK\036F\136\036FX0083\036O\036FS00:\ + :r2=\036P@1\036FK\036FX0083:\ + :..wi=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X:tc=d412-unix: +d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines:\ + :li#25:\ + :i2=\036Fz2:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:tc=d462+: +d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line:\ + :es:hs:\ + :cl=\036FG\036PH:fs=\036F}01\022:\ + :i2=\036Fz2\036F}00\036FB180000\036F}01:ll@:\ + :ts=\036F}00\036FP%p1%2.2X18\036PG:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X:tc=d462+: + +# Relative cursor motions are confined to the current window, +# which is not what the scrolling region specification expects. +# Thus, relative vertical cursor positioning must be deleted. +d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region:\ + :..cs=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;:\ + :do@:ll@:up@:\ + :tc=d462+: + +d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode:\ + :tc=d412-unix: +d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode:\ + :tc=d412-unix-w: +d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines:\ + :tc=d412-unix-25: +d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line:\ + :tc=d412-unix-s: +d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region:\ + :tc=d412-unix-sr: + +d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode:\ + :tc=d413-unix: +d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode:\ + :tc=d413-unix-w: +d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines:\ + :tc=d413-unix-25: +d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line:\ + :tc=d413-unix-s: +d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region:\ + :tc=d413-unix-sr: + +d430c-dg|d430-dg|Data General D430C in DG mode:\ + :tc=d413-dg:tc=dg+fixed: +d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors:\ + :tc=d413-dg:tc=dg+ccc: + +d430c-unix|d430-unix|Data General D430C in DG-UNIX mode:\ + :tc=d413-unix:tc=dgunix+fixed: +d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode:\ + :tc=d413-unix-w:tc=dgunix+fixed: +d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines:\ + :tc=d413-unix-25:tc=dgunix+fixed: +d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line:\ + :tc=d413-unix-s:tc=dgunix+fixed: +d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region:\ + :tc=d413-unix-sr:tc=dgunix+fixed: +d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors:\ + :tc=d413-unix:tc=dgunix+ccc: +d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors:\ + :tc=d413-unix-w:tc=dgunix+ccc: +d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors:\ + :tc=d413-unix-25:tc=dgunix+ccc: +d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors:\ + :tc=d413-unix-s:tc=dgunix+ccc: +d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors:\ + :tc=d413-unix-sr:tc=dgunix+ccc: + +# dg450 from Cornell (not official) +dg450|dg6134|data general 6134:\ + :le@:nd=^X:tc=dg200: + +# Not official... +# Note: lesser Dasher terminals will not work with vi because vi insists upon +# having a command to move straight down from any position on the bottom line +# and scroll the screen up, or a direct vertical scroll command. The 460 and +# above have both, the D210/211, for instance, has neither. We must use ANSI +# mode rather than DG mode because standard UNIX tty drivers assume that ^H is +# backspace on all terminals. This is not so in DG mode. +# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the +# grounds that there is no matching ":ml:" +# fixed garbled ":k9=\E[00\:z:" capability -- esr) +dg460-ansi|Data General Dasher 460 in ANSI-mode:\ + :am:bs:ms:ul:\ + :co#80:it#8:li#24:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%2;%2H:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=^^F@:k0=\E[001z:\ + :k1=\E[002z:k2=\E[003z:k3=\E[004z:k4=\E[005z:k5=\E[006z:\ + :k6=\E[007z:k7=\E[008z:k8=\E[009z:k9=\E[010z:kb=\E[D:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:l2=f3:\ + :l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l9=f10:le=^H:mb=\E[5m:me=\E[m:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\ + :sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m: + +# DASHER D470C color terminal in ANSI mode. +# Like the D460 but with 16 colors and without a compressed mode. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +d470c|d470|Data General DASHER D470C:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:tc=dg+color:\ + :tc=d460: + +d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;:tc=dg+color:\ + :tc=d460-7b: + +# Initialization string 2 sets: +# ^^FQ2 - default cursor (solid rectangle) +# ^^FW - character protection disabled +# ^^F\^ - horizontal scrolling enabled (for alignment) +# ^^FX004? - margins at columns 0 and 79 +# ^^F] - horizontal scrolling disabled +# ^^O - primary character set +# ^^FS00 - default character set (the keyboard native language) +# - (should reset scrolling regions, but that glitches the screen) +# +d470c-dg|d470-dg|Data General DASHER D470C in DG mode:\ + :is=\036FQ2\036FW\036F\136\036FX004?\036F]\036O\036FS00:\ + :tc=dgmode+color:tc=d460-dg: + +# DASHER D555 terminal in ANSI mode. +# Like a D411, but has an integrated phone. +d555|Data General DASHER D555:\ + :tc=d411: +d555-7b|Data General DASHER D555 in 7-bit mode:\ + :tc=d411-7b: +d555-w|Data General DASHER D555 in wide mode:\ + :tc=d411-w: +d555-7b-w|Data General DASHER D555 in wide 7-bit mode:\ + :tc=d411-7b-w: +d555-dg|Data General DASHER D555 series in DG mode:\ + :tc=d411-dg: + +# DASHER D577 terminal in ANSI mode. +# Like a D411, but acts as a keyboard for serial printers ("KSR" modes). +d577|Data General DASHER D577:\ + :tc=d411: +d577-7b|Data General DASHER D577 in 7-bit mode:\ + :tc=d411-7b: +d577-w|Data General DASHER D577 in wide mode:\ + :tc=d411-w: +d577-7b-w|Data General DASHER D577 in wide 7-bit mode:\ + :tc=d411-7b-w: + +d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode:\ + :tc=d411-dg: + +# DASHER D578 terminal. +# Like a D577, but without compressed mode; like a D470C in this respect. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +d578|Data General DASHER D578:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577: +d578-7b|Data General DASHER D578 in 7-bit mode:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577-7b: + +# Here are some older Dasher entries from the Berkeley termcap file. + +# According to the 4.4BSD termcap file, the dg200 :cm: should be the +# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap +# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious, +# maybe they were originally nuls (which would fit). +dg200|data general dasher 200:\ + :NL:am:bs:bw:\ + :co#80:li#24:\ + :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:k0=^^z:\ + :k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:k7=^^w:k8=^^x:\ + :k9=^^y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:l0=f10:le=^Y:nd=^X:\ + :nw=^J:se=^^E:sf=^J:so=^^D:ue=^U:up=^W:us=^T: +# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL +dg210|dg-ansi|Data General 210/211:\ + :am:\ + :co#80:li#24:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:do=\E[B:ho=\E[H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nl=\E[B:\ + :nw=\r\E[H\E[A\n:se=\E[0;m:so=\E[7;m:ue=\E[0;m:up=\E[A:\ + :us=\E[4;m: +# From: Peter N. Wan <ihnp4!gatech!gacsr!wan> +# courtesy of Carlos Rucalde of Vantage Software, Inc. +# (dg211: this had :cm=\020%r%.%:., which was an ancient termcap hangover. +# I suspect the d200 function keys actually work on the dg211, check it out.) +dg211|Data General d211:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb=^Y:l0@:nw=^M^Z:\ + :se=\036E\0/>:sf@:so=5\036D:ta=^I:te=^L:ti=^L^R:ve=^L:\ + :vs=^L^R:\ + :tc=dg200: + +# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official) +# Data General 605x +# Ought to work for a Model 6242, Type D210 as well as a 605x. +# Note that the cursor-down key transmits ^Z. Job control users, beware! +# This also matches a posted description of something called a `Dasher 100' +# so there's a dg100 alias here. +# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr) +dg6053-old|dg100|data general 6053:\ + :am:bs:bw:ul:\ + :co#80:li#24:\ + :bc=^Y:bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\ + :is=^R:k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:\ + :k7=^^x:k8=^^y:k9=^^z:kb=^Y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:\ + :le=^Y:nd=^X:se=\0^^E:so=\0\0\0\0\0\036D:ta=^I:te=^L:\ + :ti=^L^R:ue=^U:up=^W:us=^T:ve=^L:vs=^L^R: + +#### Datamedia (dm) +# +# Datamedia was headquartered in Nashua, New Hampshire until it went +# out of business in 1993, but the ID plates on the terminals referred +# to the factory in Pennsauken, NJ. The factory was sold to a PCB board +# manufacturer which threw out all information about the terminals. +# + +cs10|colorscan|Datamedia Color Scan 10:\ + :ms:\ + :co#80:li#24:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%02;%02H:cr=^M:\ + :do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: +cs10-w|Datamedia Color Scan 10 with 132 columns:\ + :co#132:\ + :cm=\E[%i%02;%03H:tc=cs10: + +# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr) +dm1520|dm1521|datamedia 1520:\ + :am:bs:xn:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\ + :kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_: +# dm2500: this terminal has both :IC: and :im:. Applications using +# termcap/terminfo directly (rather than through ncurses) might be confused. +dm2500|datamedia2500|datamedia 2500:\ + :bs:nc:\ + :co#80:li#24:\ + :al=\020\n\030\035\030\035:bl=^G:ce=^W:cl=^^^^\177:\ + :cm=\014%r%n%.%.:dc=\020\010\030\035:\ + :dl=\020\032\030\035:dm=^P:do=^J:ed=^X^]:\ + :ei=\377\377\030\035:ho=^B:ic=\020\034\030\035:im=^P:\ + :le=^H:nd=^\:pc=\377:se=^X^]:sf=^J:so=^N:up=^Z: +# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82) +# also, has a meta-key. +# From: <goldberger@su-csli.arpa> +# (dmchat: ":MT:" changed to ":km:" -- esr) +dmchat|dmchat version of datamedia 2500:\ + :km:\ + :al=1*\020\n\030\035\030\035:dl=2\020\032\030\035:tc=dm2500: +# (dm3025: ":MT:" changed to ":km:" -- esr) +dm3025|datamedia 3025a:\ + :bs:km:\ + :co#80:it#8:li#24:\ + :al=\EP\n\EQ:bl=^G:cd=\EJ:ce=\EK:cl=\EM:cm=\EY%r%+ %+ :\ + :cr=^M:dc=\010:dl=\EP\EA\EQ:dm=\EP:do=^J:ed=\EQ:ei=\EQ:\ + :ho=\EH:im=\EP:ip=:is=\EQ\EU\EV:le=^H:nd=\EC:se=\EO0:sf=^J:\ + :so=\EO1:ta=^I:up=\EA: +dm3045|datamedia 3045a:\ + :am:bs:eo:km@:ul:xn:\ + :al@:dc=\EB:dl@:dm@:ed@:ei=\EP:is=\EU\EV:k0=\Ey\r:k1=\Ep\r:\ + :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\ + :k8=\Ew\r:k9=\Ex\r:kh=\EH:kr=\EC:ku=\EA:pc=\177:se@:so@:\ + :tc=dm3025: +# Datamedia DT80 soft switches: +# 1 0=Jump 1=Smooth +# Autorepeat 0=off 1=on +# Screen 0=Dark 1=light +# Cursor 0=u/l 1=block +# +# 2 Margin Bell 0=off 1=on +# Keyclick 0=off 1=on +# Ansi/VT52 0=VT52 1=Ansi +# Xon/Xoff 0=Off 1=On +# +# 3 Shift3 0=Hash 1=UK Pound +# Wrap 0=Off 1=On +# Newline 0=Off 1=On +# Interlace 0=Off 1=On +# +# 4 Parity 0=Odd 1=Even +# Parity 0=Off 1=On +# Bits/Char 0=7 1=8 +# Power 0=60Hz 1=50Hz +# +# 5 Line Interface 0=EIA 1=Loop +# Aux Interface 0=EIA 1=Loop +# Local Copy 0=Off 1=On +# Spare +# +# 6 Aux Parity 0=Odd 1=Even +# Aux Parity 0=Off 1=On +# Aux Bits/Char 0=7 1=8 +# CRT Saver 0=Off 1=On +# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. +dm80|dmdt80|dt80|datamedia dt80/1:\ + :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=%i\E[%d;%dH:do=^J:\ + :ho=\E[H:me=\E[m:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:\ + :se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:\ + :tc=vt100: +# except in 132 column mode, where it needs a little padding. +# This is still less padding than the vt100, and you can always turn on +# the ^S/^Q handshaking, so you can use vt100 flavors for things like +# reverse video. +dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode:\ + :co#132:\ + :cd=20\E[0J:ce=20\E[0K:cl=50\E[H\E[2J:cm=5\E[%i%d;%dH:\ + :do=^J:up=5\E[A:\ + :tc=dm80: +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +dt80-sas|Datamedia DT803/DTX for SAS usage:\ + :am:bw:\ + :co#80:li#24:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\EG:al=\EL:as=\EF:bl=^G:cd=^K:ce=^]:cl=^L:\ + :cm=\E=%r%+ %+ :cr=^M:\ + :..cs=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2:\ + :ct=\E'0:dl=\EM:do=\EB:ff=^L:ho=^Y:is=\E)0\E<\EP\E'0\E$2:\ + :kC=^L:kE=^]:kS=^K:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:me=^X:\ + :mr=\E$2\004:nd=^\:pf=^O:po=^N:se=^X:sf=\EB:so=\E$2\004:\ + :sr=\EI:st=\E'1:ta=^I:up=^_: + +# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL +# These aren't end-all Excel termcaps; but do insert/delete char/line +# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman) +# The naming convention has been bent somewhat, with the use of E? (where +# E is for 'Excel') as # a name. This was done to distinguish the entries +# from the other Datamedias in use here, and yet to associate a model of +# the Excel terminals with the regular datamedia terminals that share +# major characteristics. +excel62|excel64|datamedia Excel 62:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:\ + :tc=dt80: +excel62-w|excel64-w|datamedia Excel 62 in 132 char mode:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:\ + :tc=dt80w: +excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:vb=\E[?5l\E[?5h:\ + :tc=dt80: + +#### Falco +# +# Falco Data Products +# 440 Potrero Avenue +# Sunnyvale, CA 940864-196 +# Vox: (800)-325-2648 +# Fax: (408)-745-7860 +# Net: techsup@charm.sys.falco.com +# +# Current Falco models as of 1995 are generally ANSI-compatible and support +# emulations of DEC VT-series, Wyse, and Televideo types. +# + +# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info +# This terminal was released around 1983 and was discontinued long ago. +# The standout and underline highlights are the same. +falco|ts1|ts-1|falco ts-1:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET\EG0\010:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E3:\ + :k0=^A0\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:me=\Eg0:nd=^L:\ + :se=\Eg0:sf=^J:so=\Eg1:ta=^I:ue=\Eg0:up=^K:us=\Eg1: +falco-p|ts1p|ts-1p|falco ts-1 with paging option:\ + :am:bs:da:db:mi:ms:ul:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET\EG0\010\Eg0:cl=\E*:\ + :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=\E[B:ei=\Er:im=\Eq:\ + :is=\EZ\E3\E_c:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\Eg0:nd=\E[C:se=\Eg0:sf=^J:so=\Eg4:ta=^I:te=\E_b:\ + :ti=\E_d:ue=\Eg0:up=\E[A:us=\Eg1: +# (ts100: I added <rmam>/<smam> based on the init string -- esr) +ts100|ts100-sp|falco ts100-sp:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E~E:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E~W:dl=\E~R:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :i1=\E~)\E~ea:ic=\E~Q:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +ts100-ctxt|falco ts-100 saving context:\ + :te=\E~_b:ti=\E~_d\E[2J:tc=ts100: + +#### Florida Computer Graphics +# + +# Florida Computer Graphics Beacon System, using terminal emulator program +# "host.com", as provided by FCG. This description is for an early release +# of the "host" program. Known bug: :cd: clears the whole screen, so it's +# commented out. + +# From: David Bryant <cbosg!djb> 1/7/83 +beacon|FCG Beacon System:\ + :am:da:db:\ + :co#80:li#32:\ + :al=\EE:bl=\ESTART\r\E37\r\EEND\r:ce=\ET:cl=\EZ:\ + :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=\EH:ic=\EQ:\ + :im=:le=^H:mb=\ESTART\r\E61\0541\r\EEND\r:\ + :me=\ESTART\r\E78\r\E70\0540\r\EEND\r:\ + :mr=\ESTART\r\E59\0541\r\EEND\r:nd=\EV:\ + :se=\ESTART\r\E70\0540\r\EEND\r:sf=^J:\ + :so=\ESTART\r\E70\0546\r\EEND\r:te=:\ + :ti=\ESTART\r\E2\0540\r\E12\r\EEND\r:\ + :ue=\ESTART\r\E60\0540\r\EEND\r:up=\EU:\ + :us=\ESTART\r\E60\0541\r\EEND\r: + +#### Fluke +# + +# The f1720a differences from ANSI: no auto margin, destructive +# tabs, # of lines, funny highlighting and underlining +f1720|f1720a|fluke 1720A:\ + :xt:\ + :co#80:li#16:sg#1:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :do=\E[B:is=\E[H\E[2J:kd=^]:kl=^_:kr=^^:ku=^\:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +#### Liberty Electronics (Freedom) +# +# Liberty Electronics +# 48089 Fremont Blvd +# Fremont CA 94538 +# Vox: (510)-623-6000 +# Fax: (510)-623-7021 + +# From: <faletti@berkeley.edu> +# (f100: added empty <acsc> to suppress a tic warning; +# made this relative to adm+sgr -- note that <invis> isn't +# known to work for f100 but does on the f110. --esr) +f100|freedom|freedom100|freedom model 100:\ + :am:bs:bw:hs:mi:ms:xo:\ + :co#80:li#24:\ + :ac=:ae=\E$:al=\EE:as=\E%:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ + :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\ + :dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\ + :ip=:is=\Eg\Ef\r\Ed:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kB=\EI:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\ + :sr=\Ej:st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\ + :tc=adm+sgr: +f100-rv|freedom-rv|freedom 100 in reverse video:\ + :is=\Eg\Ef\r\Eb:vb=\Ed\Eb:tc=f100: +# The f110 and f200 have problems with vi(1). They use the ^V +# code for the down cursor key. When kcud1 is defined in terminfo +# as ^V, the Control Character Quoting capability (^V in insert mode) +# is lost! It cannot be remapped in vi because it is necessary to enter +# a ^V to to quote the ^V that is being remapped!!! +# +# f110/f200 users will have to decide whether +# to lose the down cursor key or the quoting capability. We will opt +# initially for leaving the quoting capability out, since use of VI +# is not generally applicable to most interactive applications +# (f110: added :ta:, :kh: & <kcbt> from f100 -- esr) +f110|freedom110|Liberty Freedom 110:\ + :bw@:es:\ + :it#8:ws#80:\ + :ae=\E%%:al=\EE:as=\E$:dl=\ER:do=^V:ds=\Ef\r:ei=\Er\EO:\ + :im=\EO\Eq:ip@:is@:k0=^AI\r:k;@:kA=\EE:kC=^^:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=\ER:kS=\EY:mb=\EG2:md=\EG0:mh=\EG@:pf=\Ea:po=\E`:\ + :so=\EG<:sr=\EJ:ts=\Ef:vb=\Eb\Ed:ve=\E.2:vi=\E.1:vs=\E.2:\ + :tc=f100: +f110-14|Liberty Freedom 110 14inch:\ + :dc@:tc=f110: +f110-w|Liberty Freedom 110 - 132 cols:\ + :co#132:tc=f110: +f110-14w|Liberty Freedom 110 14in/132 cols:\ + :co#132:\ + :dc@:tc=f110: +# (f200: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +f200|freedom200|Liberty Freedom 200:\ + :am:bs:es:hs:mi:ms:xo:\ + :co#80:it#8:li#24:ws#80:\ + :ac=:ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ + :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :ct=\E3:\ + :cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=\Er:fs=^M:ho=^^:\ + :im=\Eq:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:\ + :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:\ + :ku=^K:le=^H:mb=\EG2:md=\EG0:mh=\EG@:nd=^L:pf=\Ea:po=\E`:\ + :sf=^J:so=\EG<:sr=\EJ:st=\E1:ts=\Ef:up=^K:vb=\Eo\En:ve=\E.1:\ + :vi=\E.0:vs=\E.1:\ + :tc=adm+sgr: +f200-w|Liberty Freedom 200 - 132 cols:\ + :co#132:tc=f200: +# The f200 has the ability to reprogram the down cursor key. The key is +# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM, +# so powering the terminal off and on will not cause the change to be lost. +f200vi|Liberty Freedom 200 for vi:\ + :kd=^J:vb=\Eb\Ed:tc=f200: +f200vi-w|Liberty Freedom 200 - 132 cols for vi:\ + :co#132:tc=f200vi: + +#### GraphOn (go) +# +# Graphon Corporation +# 544 Division Street +# Campbell, CA 95008 +# Vox: (408)-370-4080 +# Fax: (408)-370-5047 +# Net: troy@graphon.com (Troy Morrison) +# +# +# The go140 and go225 have been discontinued. GraphOn now makes X terminals, +# including one odd hybrid that starts out life on power-up as a character +# terminal, than can be switched to X graphics mode (driven over the serial +# line) by an escape sequence. No info on this beast yet. +# (go140: I added <rmam>/<smam> based on the init string -- esr) +go140|graphon go-140:\ + :bs:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=10\E[J:ce=\E[K:\ + :cl=10\E[H\E[2J:cm=\E[%i%2;%2H:dc=\E[P:dl=\E[M:ei=\E[4l:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:\ + :kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +go140w|graphon go-140 in 132 column mode:\ + :am:\ + :co#132:\ + :is=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q:tc=go140: +# Hacked up vt200 termcap to handle GO-225/VT220 +# From: <edm@nwnexus.WA.COM> +# (go225: I added <rmam>/<smam> based on the init string -- esr) +go225|go-225|Graphon 225:\ + :am:bs:mi:xn:\ + :co#80:it#8:li#25:vt#3:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:r1=\E[\041p\E[?7h\E[2;1;1#w:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:te=\E[\041p\E[?7h\E[2;1;1#w:\ + :ti=\E[2;0#w\E[1;25r:ue=\E[24m:up=\E[A:us=\E[4m: + +#### Harris +# +# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine. +# Their terminal group is ancient history now (1995) though the parent +# company is still in business. +# + +# 8675, 8686, and bee from Cyrus Rahman +# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr) +ha8675|harris 8675:\ + :F1=^W:F2=\ER:F3=\EE:F4=\EI:F5=\Ei:F6=\Eg:\ + :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU:k1=^F:k2=^P:k3=^N:\ + :k4=^V:k5=^J:k6=^T:k7=^H:k8=\177:k9=\Ee:k;=\Ed:\ + :tc=bee: +# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation +# in :is: -- esr) +ha8686|harris 8686:\ + :F1=\EW:F2=\002\E{\003:F3=\002\E|\003:F4=\002\E}\003:\ + :F5=\002\E~\003:F6=\002\E\177\003:\ + :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#:\ + :k1=\002\Ep\003:k2=\002\Eq\003:k3=\002\Er\003:\ + :k4=\002\Es\003:k5=\E3:k6=\EI:k7=\ER:k8=\EJ:k9=\E(:k;=\Ej:tc=bee: + +#### Hazeltine +# +# Hazeltine appears to be out of the terminal business as of 1995. These +# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with +# Harris. They have a hazeltine.com domain (but no web page there ) and can +# be reached at: +# +# Hazeltine +# 450 East Pulaski Road +# Greenlawn, New York 11740 +# +# As late as 1993, manuals for the terminal product line could still be +# purchased from: +# +# TRW Customer Service Division +# 15 Law Drive +# P.O. Box 2076 +# Fairfield, NJ 07007-2078 +# +# They're now (1998) a subsidiary of General Electric, operating under the +# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page +# at <http://www.gec.com/cpd/1ncpd.htm#1.55>. +# + +# Since :nd: is blank, when you want to erase something you +# are out of luck. You will have to do ^L's a lot to +# redraw the screen. h1000 is untested. It doesn't work in +# vi - this terminal is too dumb for even vi. (The code is +# there but it isn't debugged for this case.) +hz1000|hazeltine 1000:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:le=^H:nd= :sf=^J: +# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981 +hz1420|hazeltine 1420:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%+ :\ + :cr=^M:dl=\E^S:do=^J:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:ta=^N:\ + :up=\E^L: +# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents +# freakout with out-of-range args and tn3270. No hz since it needs to +# receive tildes. +hz1500|hazeltine 1500:\ + :am:bs:hz:\ + :co#80:li#24:\ + :al=~\032:bl=^G:cd=~\030:ce=~^O:cl=~^\:\ + :cm=~\021%r%>^^ %+`%+`:cr=^M:dl=~\023:do=~^K:ho=~^R:kd=^J:\ + :kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\ + :up=~^L: +# h1510 assumed to be in sane escape mode. Else use h1500. +# (h1510: early versions of this entry apparently had ":se=\E^_:, +# :so=\E^Y:, but these caps were commented out in 8.3; also, +# removed incorrect and overridden ":do=^J:" -- esr) +hz1510|hazeltine 1510:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\ + :cr=^M:dl=\E^S:do=\E^K:le=^H:nd=^P:sf=^J:up=\E^L: +# Hazeltine 1520 +# The following switch settings are assumed for normal operation: +# FULL CR U/L_CASE ESCAPE +# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON +# Other switches may be set for operator convenience or communication +# requirements. +hz1520|Hazeltine 1520:\ + :am:bs:bw:ms:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\ + :cr=^M:dl=\E^S:do=^J:ho=\E^R:kA=\E^Z:kC=\E^\:kE=\E^O:\ + :kL=\E^S:kS=\E^X:kb=^H:kd=\E^K:kh=\E^R:kl=^H:kr=^P:ku=\E^L:\ + :le=^H:md=\E^_:me=\E^Y:nd=^P:r1=\E$\E\005\E?\E\031:\ + :se=\E^Y:sf=^J:so=\E^_:up=\E^L: +# This version works with the escape switch off +# (h1520: removed incorrect and overridden ":do=^J:" -- esr) +hz1520-noesc|hazeltine 1520:\ + :am:hz:\ + :co#80:li#24:\ + :al=~^Z:bl=^G:cd=~^X:ce=~^O:cl=~^\:cm=~\021%r%.%.:cr=^M:\ + :dl=~^S:do=~^K:ho=~^R:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:up=~^L: +# Note: the h1552 appears to be the first Hazeltine terminal which +# is not braindamaged. It has tildes and backprimes and everything! +# Be sure the auto lf/cr switch is set to cr. +hz1552|hazeltine 1552:\ + :bs:\ + :al=\EE:dl=\EO:do=^J:k1=\EP:k2=\EQ:k3=\ER:l1=blue:l2=red:\ + :l3=green:\ + :tc=vt52: +hz1552-rv|hazeltine 1552 reverse video:\ + :do=^J:se=\ET:so=\ES:tc=hz1552: +# Note: h2000 won't work well because of a clash between upper case and ~'s. +hz2000|hazeltine 2000:\ + :am:bs:nc:\ + :co#74:li#27:\ + :al=~\032:bl=^G:cl=~\034:cm=~\021%r%.%.:dl=~\023:do=^J:\ + :ho=~^R:le=^H:pc=\177:sf=^J: +# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote: +# I tested this termcap entry for the Hazeltine Esprit with vi. It seems +# to work ok. There is one problem though if one types a lot of garbage +# characters very fast vi seems not able to keep up and hangs while trying +# to insert. That's in insert mode while trying to insert in the middle of +# a line. It might be because the Esprit doesn't have insert char and delete +# char as a built in function. Vi has to delete to end of line and then +# redraw the rest of the line. +esprit|Hazeltine Esprit I:\ + :am:bs:bw:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:bt=\E^T:cd=\E^W:ce=\E^O:cl=\E^\:\ + :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:ho=\E^R:is=\E?:\ + :k0=^B0^J:k1=^B1^J:k2=^B2^J:k3=^B3^J:k4=^B4^J:k5=^B5^J:\ + :k6=^B6^J:k7=^B7^J:k8=^B8^J:k9=^B9^J:kb=^H:kd=\E^K:ke=\E>:\ + :kh=\E^R:kl=^H:kr=^P:ks=\E<:ku=\E^L:l0=0:l1=1:l2=2:l3=3:l4=4:\ + :l5=5:l6=6:l7=7:l8=8:l9=9:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:\ + :up=\E^L: +esprit-am|hazeltine esprit auto-margin:\ + :am:tc=esprit: +# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL +# Vi it seems always wants to send a control J for "do" and it turned out +# that the terminal would work somewhat if the auto LF/CR was turned off. +# (hmod1: removed :dn=~^K: -- esr) +hmod1|Hazeltine Modular 1:\ + :am:bs:hz:\ + :co#80:li#24:\ + :al=~^Z:bl=^G:bt=~^T:cl=~^\:cm=~\021%r%.%.:cr=^M:dl=~^S:\ + :do=~^K:ho=~^R:kd=~^K:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:me=~^Y:\ + :nd=^P:rc=~^Q:sc=~^E:se=~^Y:sf=^J:so=~^_:up=~^L: +# +# Hazeltine Executive 80 Model 30 (1554?) +# from Will Martin <control@ALMSA-1.ARPA> via BRL +# Like VT100, except for different "am" behavior. +hazel|exec80|h80|he80|Hazeltine Executive 80:\ + :am:bs:pt:\ + :co#80:it#8:li#24:vt#3:\ + :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:nl=^J:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:\ + :so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +#### Hewlett-Packard (hp) +# +# Hewlett-Packard +# 8000 Foothills Blvd +# Roseville, CA 95747 +# Vox: 1-(916)-785-4363 (Technical response line for VDTs) +# 1-(800)-633-3600 (General customer support) +# +# +# As of March 1998, HP no longer has any terminals in production. +# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being +# supported (they still have parts). So are the 2392a and 2394a. +# See the WORKSTATION CONSOLES section for the 700s. +# + +# Generic HP terminal - this should (hopefully) work on any HP terminal. +hpgeneric|hp|hewlett-packard generic terminal:\ + :am:bs:da:db:mi:pt:xs:\ + :co#80:li#24:lm#0:vt#6:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\ + :do=^J:ei=\ER:im=\EQ:kB=\Ei:kb=^H:le=^H:me=\E&d@:nd=\EC:\ + :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD: + +hp110|hewlett-packard model 110 portable:\ + :li#16:tc=hpgeneric: + +hp+pfk+cr|hp function keys with CR:\ + :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:\ + :k7=\Ev\r:k8=\Ew\r: + +hp+pfk-cr|hp function keys w/o CR:\ + :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew: + +# The hp2621s use the same keys for the arrows and function keys, +# but not separate escape sequences. These definitions allow the +# user to use those keys as arrow keys rather than as function +# keys. +hp+pfk+arrows|hp alternate arrow definitions:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\ + :kd=\Ew\r:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:ku=\Et\r: + +hp+arrows|hp arrow definitions:\ + :kF=\ES:kH=\EF:kR=\ET:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:ku=\EA: + +# Generic stuff from the HP 262x series +# +hp262x|HP 262x terminals:\ + :xs:\ + :cd=\EJ:dc=\EP:ip=:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:\ + :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:mb=\E&dA:me=\E&d@:mk=\E&dS:\ + :mr=\E&dB:\ + :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c:\ + :se=\E&d@:sf=\ES:so=\E&dB:ta=\011:ue=\E&d@:us=\E&dD: + +# Note: no :ho: on HPs since that homes to top of memory, not screen. +# Due to severe 2621 braindamage, the only way to get the arrow keys to +# transmit anything at all is to turn on the function key labels +# with :ks:, and even then the user has to hold down shift! +# The default 2621 turns off the labels except when it has to to +# enable the function keys. If your installation prefers labels +# on all the time, or off all the time (at the "expense" of the +# function keys), use 2621-nl or 2621-wl. +# +# Note: there are newer ROMs for 2621's that allow you to set +# strap A so the regular arrow keys xmit \EA, etc, as with the +# 2645. However, even with this strap set, the terminal stops +# xmitting if you reset it, until you unset and reset the strap! +# Since there is no way to set/unset the strap with an escape +# sequence, we don't use it in the default. +# If you like, you can use 2621-ba (brain-damaged arrow keys). +hp2621-ba|2621 w/new rom and strap A set:\ + :ke@:ks@:tc=hp+arrows:\ + :tc=hp2621: + +# hp2621 with function labels. Most of the time they are off, +# but inside vi, the function key labels appear. You have to +# hold down shift to get them to xmit. +hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels:\ + :is=\E&jA\r:ke=\E&jA:\ + :tc=hp2621-fl: +hp2621-fl|hp 2621:\ + :xo:xs@:\ + :pb#19200:\ + :bt=\Ei:cm=\E&a%r%dc%dY:dc=\EP:ip=:is=\E&j@\r:ke=\E&j@:\ + :ks=\E&jB:me=\E&d@:se=\E&d@:so=\E&dD:ta=\011:ue=\E&d@:\ + :us=\E&dD:\ + :tc=hp+pfk+cr:tc=hpgeneric: + +# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p +hp2621p|hp 2621 with printer:\ + :pf=\E&p13C:po=\E&p11C:tc=hp2621: + +hp2621p-a|hp2621p with fn as arrows:\ + :tc=hp+pfk+arrows:tc=hp2621p: + +# hp2621 with k45 keyboard +hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard:\ + :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\ + :ku=\EA:\ + :tc=hp2621: + +# 2621 using all 48 lines of memory, only 24 visible at any time. +hp2621-48|48 line 2621:\ + :li#48:\ + :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621: + +# 2621 with no labels ever. Also prevents vi delays on escape. +hp2621-nl|hp 2621 with no labels:\ + :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl: + +# Needed for UCB ARPAVAX console, since lsi-11 expands tabs +# (wrong). +# +hp2621-nt|hp 2621 w/no tabs:\ + :ta@:tc=hp2621: + +# Hp 2624 B with 4 or 10 pages of memory. +# +# Some assumptions are made with this entry. These settings are +# NOT set up by the initialization strings. +# +# Port Configuration +# RecvPace=Xon/Xoff +# XmitPace=Xon/Xoff +# StripNulDel=Yes +# +# Terminal Configuration +# InhHndShk=Yes +# InhDC2=Yes +# XmitFnctn(A)=No +# InhEolWrp=No +# +# Note: the 2624 DOES have a true :ho:, believe it or not! +# +# The 2624 has an "error line" to which messages can be sent. +# This is CLOSE to what is expected for a "status line". However, +# after a message is sent to the "error line", the next carriage +# return is EATEN and the "error line" is turned back off again! +# So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:. +# +# This entry supports emacs (and any other program that uses raw +# mode) at 4800 baud and less. I couldn't get the padding right +# for 9600. +# +# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr) +hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B:\ + :da:db:\ + :lm#96:\ + :vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp: + +# This hp2626 entry does not use any of the fancy windowing stuff +# of the 2626. +# +# Indeed, terminfo does not yet handle such stuff. Since changing +# any window clears memory, it is probably not possible to use +# this for screen opt. +# +# ed is incredibly slow most of the time - I am guessing at the +# exact padding. Since the terminal uses xoff/xon this is intended +# only for cost computation, so that the terminal will prefer el +# or even dl1 which is probably faster! +# +# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only +# extra slow on the last line of the window. +# +# The padding probably should be changed. +# +hp2626|hp2626a|hp2626p|hp 2626:\ + :da:db:\ + :lm#0:pb#19200:\ + :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: + +# This entry is for sysline. It allocates a 23 line window with +# a 115 line workspace for regular use, and a 1 line window for +# the status line. +# +# This assumes port 2 is being used. +# Turn off horizontal line, Create ws #1 with 115 lines, +# Create ws #2 with 1 line, Create window #1 lines 1-23, +# Create window #2 lines 24-24, Attach cursor to workspace #1. +# Note that this clears the tabs so it must be done by tset before +# it sets the tabs. +# +hp2626-s|hp 2626 using only 23 lines:\ + :es:hs:\ + :li#23:\ + :fs=\E&d@\E&w7f2p1I\E&w4f1I:\ + :i1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r:\ + :ts=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC:\ + :tc=hp2626: +# Force terminal back to 24 lines after being 23. +hp2626-ns|hp 2626 using all 24 lines:\ + :i1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r:tc=hp2626: +# Various entries useful for small windows on 2626. +hp2626-12|hewlett-packard 2626 12 lines:\ + :li#12:tc=hp2626: +hp2626-12x40|hewlett-packard 2626 12 lines 40 columns:\ + :co#40:li#12:tc=hp2626: +hp2626-x40|hewlett-packard 2626 40 columns:\ + :co#40:tc=hp2626: +hp2626-12-s|hewlett-packard 2626 11 lines plus status:\ + :li#11:tc=hp2626-s: + +# +# hp2627 color tubes from University of Wisconsin +# +hp2627a-rev|hp 2627 with reverse video colors:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&v0S\E&d@:\ + :us=\E&dD\E&v1S:\ + :tc=hp2621-nl: +hp2627a|hp 2627 color terminal with no labels:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:se=\E&v0S:sf=^J:so=\E&v2S:ta=^I:\ + :ue=\E&v0S\E&d@:us=\E&dD\E&v1S:\ + :tc=hp2621-nl: +hp2627c|hp 2627 color (cyan) terminal with no labels:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=hp2627a: + +# hp2640a doesn't have the Y cursor addressing feature, and C is +# memory relative instead of screen relative, as we need. +# +hp2640a|hp 2640a:\ + :cm@:ke@:ks@:tc=hp2645: + +hp2640b|hp2644a|hp 264x series:\ + :ke@:ks@:tc=hp2645: + +# (hp2641a: removed unknown :gu: -- esr) +hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry:\ + :am:da:db:mi:xs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%2C:cl=\EH\EJ:\ + :cm=\E&a%r%2c%2Y:cr=^M:cv=\E&a%2Y:dc=\EP:dl=\EM:do=^J:\ + :ei=\ER:if=/usr/share/tabset/std:im=\EQ:is=500\EE:kb=^H:\ + :kd=^J:kl=^H:le=^H:nd=\EC:nw=^M^J:se=\E&d@:sf=^J:so=\E&dB:\ + :ta=^I:up=\EA: + +# This terminal should be used at 4800 baud or less. It needs padding for +# plain characters at 9600, I guessed at an appropriate cr delay. It really +# wants ^E/^F handshaking, but that doesn't work well even if you write +# software to support it. +hp2645|hp45|HP 2645 series:\ + :pb#9600:\ + :cr=\r:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:kM=\ER:\ + :kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:mb=\E&dA:me=\E&d@:\ + :mh=\E&dH:mr=\E&dB:\ + :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c:\ + :us=\E&dD:\ + :tc=hpgeneric: +# You should use this terminal at 4800 baud or less. +hp2648|hp2648a|HP 2648a graphics terminal:\ + :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645: + +# The HP 150 terminal is a fairly vanilla HP terminal, with the +# clreol standout problem. It also has graphics capabilities and +# a touch screen, which we don't describe here. +hp150|hewlett packard Model 150:\ + :bs:tc=hp2622: + +# HP 2382a terminals, "the little ones." They don't have any +# alternate character set support and sending out ^N/^O will +# leave the screen blank. +hp2382a|hp2382|hewlett packard 2382a:\ + :da:db:\ + :lh#1:lm#48:\ + :ac@:ae@:as@:me=\E&d@:\ + :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:\ + :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c:\ + :tc=hp+labels:tc=scrhp: + +hp2621-a|hp2621a-a|hp2621 with fn as arrows:\ + :tc=hp+pfk+arrows:tc=hp2621-fl: + +# newer hewlett packard terminals + +newhpkeyboard|generic entry for HP extended keyboard:\ + :kA=\EL:kB=\Ei:kC=\EJ:kD=\EP:kE=\EK:kF=\ET:kH=\EF:kI=\EQ:\ + :kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ES:kS=\EJ:kb=^H:kd=\EB:\ + :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ + :tc=hp+pfk-cr: + +newhp|generic entry for new hewlett packard terminals:\ + :am:bw:mi:xo:xs:\ + :co#80:li#24:pb#4800:\ + :ac=2[3@4>5I9(\072'JSKWLQMAO#P$Q;R\041S"T1U2V4W3X\072Y+Z*dHjGkTlRmFn/q\054t5u6v8w7x.:\ + :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:cr=^M:ct=\E3:\ + :dc=\EP:dl=\EM:do=^J:ei=\ER:i1=\E&jB:im=\EQ:ip=:le=^H:\ + :mb=\E&dA:md=\E&dF:me=\E&d@\017:mh=\E&dH:mk=\E&dS:\ + :mr=\E&dB:nd=\EC:nw=^M^J:\ + :..pk=\E&f0a%p1%dk0d%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk0d%p2%l%dL%p2%s:\ + :..px=\E&f2a%p1%dk0d%p2%l%dL%p2%s:r1=\Eg:\ + :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;:\ + :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=\011:ue=\E&d@:\ + :up=\EA:us=\E&dD:\ + :tc=newhpkeyboard: + +memhp|memory relative addressing for new HP ttys:\ + :vt#6:\ + :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ + :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%dr%dC:cv=\E&a%dR:ho=\EH:ll=\E&a23R\r:tc=newhp: + +scrhp|screen relative addressing for new HP ttys:\ + :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ + :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\E&a0c0Y\EJ:\ + :cm=\E&a%dy%dC:cv=\E&a%dY:ho=\E&a0y0C:ll=\E&a0y0C\EA:\ + :tc=newhp: + +# (hp+labels: added label values from a BRL termcap -- esr) +hp+labels|"standard" label info for new HP ttys:\ + :Nl#8:lh#2:lw#8:\ + :LF=\E&j@:LO=\E&jB:l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:\ + :l7=f8:\ + :..pn=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s: + +hp+printer|"standard" printer info for HP ttys:\ + :ff=\E&p4u0C:pf=\E&p13C:po=\E&p11C:ps=\EH\E&p4dF: + + +# The new hp2621b is kind of a cross between the old 2621 and the +# new 262x series of machines. It has dip-switched options. +# The firmware has a bug in it such that if you give it a null +# length label, the following character is eaten! +hp2621b|hp 2621b with old style keyboard:\ + :Nl#8:lh#1:lm#48:lw#8:\ + :LO=\E&jB:kF=\ET:kH=\EF:kR=\ES:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:\ + :ku=\EA:\ + :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r:tc=hp2621: + +hp2621b-p|hp 2621b with printer:\ + :tc=hp+printer:tc=hp2621b: + +# hp2621b - new 2621b with new extended keyboard +# these are closer to the new 26xx series than the other 2621b +hp2621b-kx|hp 2621b with extended keyboard:\ + :tc=newhpkeyboard:tc=hp2621b: + +hp2621b-kx-p|hp 2621b with new keyboard & printer:\ + :tc=hp+printer:tc=hp2621b-kx: + +# Some assumptions are made in the following entries. +# These settings are NOT set up by the initialization strings. +# +# Port Configuration +# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes +# +# Terminal Configuration +# InhHndShk(G)=Yes InhDC2(H)=Yes +# XmitFnctn(A)=No InhEolWrp=No +# +# +# Hp 2622a & hp2623a display and graphics terminals +# +hp2622|hp2622a|hp 2622:\ + :da:db:\ + :lm#0:pb#19200:\ + :is=\E&dj@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: + +# The 2623 is a 2622 with extra graphics hardware. +hp2623|hp2623a|hp 2623:\ + :tc=hp2622: + +hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer:\ + :tc=hp+printer:tc=hp2624: + +# The hewlett packard B can have an optional extra 6 pages of memory. +hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory:\ + :lm#240:tc=hp2624: + +hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer:\ + :lm#240:tc=hp2624b-p: + +# Color manipulations for HP terminals +hp+color|hp with colors:\ + :cc:\ + :Co#16:NC#17:pa#7:\ + :..Ip=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI:\ + :oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I:\ + :op=\E&v0S:sp=\E&v%dS: + +# :is: sets the screen to be 80 columns wide +hp2397a|hp2397|hewlett packard 2397A color terminal:\ + :is=\E&w6f80X:\ + :tc=memhp:tc=hp+labels:tc=hp+color: + +# +# (hp2392: copied :ei: here from hpex -- esr) +hp2392|239x series:\ + :co#80:\ + :bt=\Ei:cm=\E&a%dy%dC:cv=\E&a%dY:ei=\ER:im=\EQ:k1=\Ep\r:\ + :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\ + :k8=\Ew\r:kF=\EU:kN=\Eu:kP=\Ev:kR=\EV:kh=\Eh:ue=\E&d@:\ + :us=\E&dD:\ + :tc=hpsub: + +hpsub|hp terminals -- capability subset:\ + :am:da:db:mi:xo:xs:\ + :li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:cr=^M:\ + :dc=\EP:dl=\EM:do=\EB:if=/usr/share/tabset/stdcrt:\ + :is=\E&s1A\E<\E&k0\:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:\ + :kr=\EC:ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\ + :sf=^J:so=\E&dB:ta=^I:up=\EA: + +# hpex: +# May be used for most 24 x 80 hp terminals, +# but has no padding added, so may allow runover in some terminals at high +# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and +# hp98x5 terminal emulators or hp98x6 consoles. +# Adds xy-cursor addressing, vertical cursor addressing, home, +# last line, and underline capabilities. +# +# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", +# moved :ei: here from hpsub -- esr) +hpex|hp extended capabilites:\ + :cm=\E&a%dy%dC:cr=^M:cv=\E&a%dY:do=^J:ei=\ER:im=\EQ:kb=^H:\ + :kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&d@:us=\E&dD:\ + :tc=hpsub: + +# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996 +hp2|hpex2|hewlett-packard extended capabilities newer version:\ + :am:da:db:mi:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:sg#0:\ + :LF=\E&j@:LO=\E&jB:al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:me=\E&d@:\ + :ml=\El:mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\ + :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\ + :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\ + :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\ + :se=\E&d@:sf=^J:so=\E&dB:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD: + +# HP 236 console +# From: <ddavis@ic.berkeley.edu> +hp236|hp236 internal terminal emulator:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EG:ce=\EK:cl=\EF:cm=\EE%+ %+ :dc=\EJ:dl=\EH:ei=:ic=\EI:\ + :im=:le=^H:me=\ECI:se=\ECI:so=\EBI:up=^K:ve=\EDE:vs=\EDB: + +# This works on a hp300 console running Utah 4.3 BSD +# From: Craig Leres <leres@okeeffe.berkeley.edu> +hp300h|HP Catseye console:\ + :am:bs:da:db:mi:xs:\ + :co#128:li#51:lm#0:sg#0:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:if=/usr/share/tabset/stdcrt:\ + :im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ + :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:sf=^J:\ + :so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +# From: Greg Couch <gregc@ernie.berkeley.edu> +hp9837|hp98720|hp98721|HP 9000/300 workstations:\ + :am:bs:da:db:mi:xs:\ + :co#128:it#8:li#46:lm#0:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:ct=\E3:cv=\E&a%dY:dc=\EP:\ + :dl=\EM:do=\EB:ei=\ER:im=\EQ:is=\E&v0m1b0i&j@:kA=\EL:\ + :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kN=\EU:kP=\EV:kS=\EJ:kb=^H:\ + :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ + :le=^H:me=\E&d@:nd=\EC:se=\E&v0S:sf=^J:so=\E&v5S:st=\E1:\ + :ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +# HP 9845 desktop computer from BRL +# (hp9845: removed unknown capability :gu: -- esr) +hp9845|HP 9845:\ + :am:bs:da:db:eo:mi:xs:\ + :co#80:li#21:\ + :al=\EL:bc=\ED:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E&a%r%2c%2Y:\ + :dc=\EP:dl=\EM:ei=\ER:if=/usr/share/tabset/std:im=\EQ:\ + :nd=\EC:se=\E&d@:so=\E&dB:up=\EA: +# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90 +# (hp98550: replaced /usr/share/tabset/9837 with std because :it#8:,:st=\E1:; +# added empty <acsc> to avoid warnings re :as:/:ae: --esr) +hp98550|hp98550a|HP 9000 Series 300 color console:\ + :am:bs:da:db:mi:xs:\ + :co#128:it#8:li#49:lm#0:\ + :ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:\ + :ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\ + :cv=\E&a%dY:dc=\EP:dl=\EM:do=^J:ei=\ER:\ + :if=/usr/share/tabset/std:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\ + :md=\E&dJ:me=\E&d@:mh=\E&dH:mk=\E&ds:mr=\E&dJ:nd=\EC:\ + :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD:ve=\E*dQ:vi=\E*dR: + +bobcat|sbobcat|HP 9000 model 300 console:\ + :am:da:db:mi:xs:\ + :co#128:it#8:li#47:sg#0:\ + :al=10*\EL:bt=\Ei:cd=\EJ:ce=\EK:ch=6\E&a%dC:cl=\EH\EJ:\ + :cm=6\E&a%dy%dC:cr=^M:cv=6\E&a%dY:dc=\EP:dl=10*\EM:do=\EB:\ + :ei=\ER:im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ + :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:nw=^M^J:se=\E&d@:\ + :sf=^J:so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +gator-t|HP 9000 model 237 emulating extra-tall AAA:\ + :li#94:tc=gator: +gator|HP 9000 model 237 emulating AAA:\ + :bw:km:mi:ul:\ + :co#128:it#8:li#47:\ + :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:al=\E[L:\ + :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\ + :ic=\E[@:im=:kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:rp=1*%.\E[%db:se=\E[m:so=\E[7m:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m: +gator-52|HP 9000 model 237 emulating VT52:\ + :co#128:li#47:tc=vt52: +gator-52t|HP 9000 model 237 emulating extra-tall VT52:\ + :li#94:tc=gator-52: + +#### Honeywell-Bull +# +# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93 +# + +# Honeywell Bull terminal. Its cursor and function keys send single +# control characters and it has standout/underline glitch. Most programs +# do not like these features/bugs. Visual bell is realized by flashing the +# "keyboard locked" LED. +dku7003-dumb|Honeywell Bull DKU 7003 dumb mode:\ + :co#80:li#25:\ + :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:ho=^]:\ + :kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:nd=^X:nw=^M^J:\ + :sf=^J:ta=^I:up=^Z:vb=\E[2h\E[2l: +dku7003|Honeywell Bull DKU 7003 all features described:\ + :ms:\ + :sg#1:\ + :mb=\E[5m:md=\E[7m:me=\E[m:mh=\E[2m:mr=\E[7m:se=\E[m:\ + :so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=dku7003-dumb: + +#### IBM +# + +ibm327x|line mode IBM 3270 style:\ + :gn:\ + :ce=^M:cl=^M^J:ho=^M: + +# Beware! The 3101 entry IBM shipped with AIX 3 is *wrong*. Losers... +# From: J.B. Nicholson-Owens <jeffo@uiuc.edu> 8 Mar 94 +# (ibm3101: :if=/usr/share/tabset/ibm3101: removed, no such file -- esr) +# Some versions of this that have :ct=\EH:; they may ort may not be broken. +ibm3101|i3101|IBM 3101-10:\ + :am:bs:xo:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EY%+ %+ :cr=^M:ct=\E1:do=^J:\ + :ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :nw=^M^J:sf=^J:st=\E0:ta=^I:up=\EA: +ibm3151|IBM 3151 display:\ + :ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:r2=\E S:s0=\E>B:\ + :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\ + :te=\E>B:ti=\E>B:\ + :tc=ibm3163: +# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 +# I've commented out or translated some IBM extensions. +# <kend>, :kN:, :kP:, <mc4>, <mc5> merged in from AIX 3.2.5 +ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :@7=\E2:F1=\Ek\r:F2=\El\r:F3=\E\041a\r:F4=\E\041b\r:\ + :F5=\E\041c\r:F6=\E\041d\r:F7=\E\041e\r:F8=\E\041f\r:\ + :F9=\E\041g\r:FA=\E\041h\r:FB=\E\041i\r:FC=\E\041j\r:\ + :FD=\E\041k\r:FE=\E\041l\r:\ + :ac=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dc=\EQ:\ + :dl=\EO:do=\EB:ho=\EH:k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:k4=\Ed\r:\ + :k5=\Ee\r:k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:k9=\Ei\r:k;=\Ej\r:\ + :kA=\EN:kB=\E2:kC=\EL\r:kD=\EQ:kE=\EI:kI=\EP \010:kL=\EO:\ + :kN=\EI:kP=\EL:kS=\EJ:kT=\E0:ka=\E 1:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:kt=\E1:ku=\EA:le=\ED:mb=\E4D:md=\E4H:\ + :me=\E4@\E<@:mk=\E4P:mr=\E4A:nd=\EC:pf=^P^T:po=^P^R:\ + :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;:\ + :se=\E4@:sf=^J:so=\E4A:te=\E>A:ti=\E>A:ue=\E4@:up=\EA:\ + :us=\E4B: + +ibm3161-C|IBM 3161-C NLS terminal using cartridge:\ + :s0=\E>B:s1=\E>A:te=\E>B:ti=\E>B:\ + :tc=ibm3161: +ibm3162|IBM 3162 display:\ + :al=\EN:mb=\E4$a:md=\E4(a:me=\E4@:mk=\E40a:mr=\E4\041a:\ + :se=\E4>b:so=\E4\041a:ue=\E4=b:us=\E4"a:\ + :tc=ibm3161-C: + +# How the 3164 sgr string works: +# %{32} # push space for no special video characteristics +# %?%p2%t%{1}%|%; # if p2 set, then OR the 1 bit for reverse +# %?%p3%t%{4}%|%; # if p3 set, then OR the 4 bit for blink +# %?%p4%t%{2}%|%; # if p4 set, then OR the 2 bit for underline +# %c # pop Pa1 +# %{39}%p1%- # calculate 32 + (7 - p1) for foreground +# %c # pop Pa2 +# %{64} # use only black background for now +# %c # pop Pa3 +# (ibm3164: merged :ms:,<colors>,<pairs>,<setb>,<setf> from AIX 3.2.5 -- esr) +ibm3164|i3164|IBM 3164:\ + :ms:\ + :Co#8:pa#64:\ + :Sb=\E4 %+@:..Sf=\E4%?%p1%t %p1%{32}%+%c%e\041'%;@:\ + :mb=\E4D:md=\E4H:me=\E4@:\ + :..sa=\E4%{32}%?%p2%t%{1}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%c%{39}%p1%-%c%{64}%c:tc=ibm3163: + +# From: <pryor@math.berkeley.edu> +# (ibm5081: merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5. -- esr) +ibm5081|ibmmpel|IBM 5081 1024x1024 256/4096 Megapel color display:\ + :es:hs:\ + :li#33:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\Ej\EYA \EI\Ek:fs=\Ek:\ + :me=\E[0m\E(B:s0=\E(B:s1=\E(0:ts=\Ej\EYA%+ \Eo:\ + :tc=ibmmono: +ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display:\ + :es:hs:\ + :li#33:\ + :ds=\Ej\EYA \EI\Ek:fs=\Ek:ts=\Ej\EYA%+ \Eo:tc=ibmega-c: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display:\ + :am:bw:ms:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\ + :k0=\E[010q:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:\ + :k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:\ + :kD=\E[P:kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:rc=\E[u:sc=\E[s:se=\E[m:sf=\E[S:\ + :so=\E[7m:sr=\E[T:ue=\E[m:up=\E[A:us=\E[4m: +ibm5154|IBM 5154 Color display:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:md@:tc=ibm5151: +ibm6153|IBM 6153 Black & White display:\ + :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\ + :tc=ibm5151: +ibm6153-90|IBM 6153 Black & White display:\ + :co#90:li#36:\ + :mb@:md@:tc=ibm5151: +ibm6153-40|IBM 6153 Black & White display:\ + :co#40:li#12:tc=ibm6153-90: +ibm6154|IBM 6154 Color displays:\ + :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\ + :tc=ibm5154: +ibm6155|IBM 6155 Black & White display:\ + :mb@:md@:tc=ibm5151: +ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display:\ + :tc=hft-c: +ibm8512|ibm8513|IBM color VGA Terminal:\ + :am:mi:ms:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\ + :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\ + :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\ + :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\ + :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\ + :us=\E[4m:\ + :tc=ibm8503: +ibm8514|IBM 8514 color display:\ + :es:hs:\ + :li#41:\ + :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\ + :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\ + :tc=ibmega: +ibm8514-c|IBM 8514 color display with standout and underline:\ + :es:hs:\ + :li#41:\ + :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\ + :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\ + :tc=ibmega-c: + +ibmaed|IBM Experimental display:\ + :am:bs:eo:ms:\ + :co#80:it#8:li#52:\ + :al=\EN:cd=\EJ:ce=\EI:cl=\EH\EK:cm=\EY%+ %+ :dc=\EQ:dl=\EO:\ + :do=\EB:ei=:ho=\EH:ic=\EP:im=:kb=^H:kd=\EB:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:me=\E0:nd=\EC:se=\E0:so=\E0:ta=^I:up=\EA:\ + :vb=\EG: +ibm-apl|apl|IBM apl terminal simulator:\ + :li#25:tc=dm1520: +# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. +# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) +ibmmono|IBM workstation monochrome:\ + :es:hs:\ + :al=\EL:dl=\EM:ds=\Ej\EY8 \EI\Ek:fs=\Ek:k0=\E<:k1=\ES:\ + :k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\EY:\ + :kF=\EE:kI=\0:kN=\EE:kP=\Eg:kR=\EG:kb=^H:kh=\EH:l0=f10:\ + :md=\EZ:me=\Ew\Eq\Ez\EB:mk=\EF\Ef0;\Eb0;:mr=\Ep:se=\Ez:\ + :so=\EZ:sr=\EA:ts=\Ej\EY8%+ \Eo:ue=\Ew:us=\EW:\ + :tc=ibm3101: +ibmega|IBM Enhanced Color Display:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmmono: +ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline:\ + :se=\EB:so=\EF\Ef3;:ue=\EB:us=\EF\Ef2;:\ + :tc=ibmmono: +ibmvga-c|IBM VGA display color termcap:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega-c: +ibmvga|IBM VGA display:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega: +# ibmapa* and ibmmono entries come from ACIS 4.3 distribution +rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display:\ + :li#32:\ + :ds=\Ej\EY@ \EI\Ek:ts=\Ej\EY@%+ \Eo:tc=ibmmono: +# Advanced Monochrome (6153) and Color (6154) Graphics Display: +ibmapa8c|ibmapa8|IBM 6153/4 Advanced Graphics Display:\ + :li#31:\ + :ds=\Ej\EY? \EI\Ek:ts=\Ej\EY?%+ \Eo:tc=ibmmono: +ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display:\ + :li#31:\ + :ds=\Ej\EY? \EI\Ek:mh=\EF\Ef7;:ts=\Ej\EY?%+ \Eo:tc=ibmega-c: +hft-c-old|HFT with Color PC850:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:tc=ibm5151: +# From: Marc Pawliger <marc@ibminet.awdpa.ibm.com> +# also in /usr/lpp/bos/bsdsysadmin. +# (hft-c: this entry had :kb=\E[D:kf=\E[C: on the line with ku/kd/kh; this was +# pretty obviously mislabeled for :le: and :nd:; also ":ul=\E[4m:" was clearly +# a typo for ":us=\E[4m:"; also ":el=\E[K:" was a typo for ":ce=\E[K:". +# I also added <rmam>/<smam> based on the terminal reset string. +# There was an unknown boolean ":ht:" which I assume was meant to set hardware +# tabs, so I have inserted it#8. Finally, :ac=^N: paired with the :ae: looked +# like a typo for :as=^N:; finally, added empty <acsc> to quiet tic -- esr) +hft-c|IBM High Function Terminal:\ + :am:mi:ms:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\ + :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\ + :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\ + :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\ + :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\ + :us=\E[4m: +hft|AIWS High Function Terminal:\ + :am:xo:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E6:ho=\E[H:\ + :ic=\E[@:im=\E6:k1=\E[001q:k2=\E[002q:k3=\E[003q:\ + :k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:\ + :k9=\E[009q:kN=\E[153q:kP=\E[159q:ka=\E[010q:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[8m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +ibm-system1|system1|ibm system/1 computer:\ + :am:xt:\ + :co#80:li#24:\ + :bl=^G:cl=^Z:cm=\005%+ %+ :ho=^K:le=^H:nd=^\:sf=^J:up=^^: +# lft-pc850 : IBM Low Function Terminal Device +# lft "supports" underline, bold, and blink in the sense that the lft code +# sets all the right bits. HOWEVER, depending upon the adapter, these +# attributes may or may not be supported by the device driver. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device:\ + :am:bw:ms:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[2J:ce=\E[0K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\ + :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ + :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kD=\E[P:\ + :kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:se=\E[0m:sf=\ED:so=\E[7m:sr=\EL:ue=\E[0m:\ + :up=\E[A:us=\E[4m: + +# +# AIX entries. IBM ships these with AIX 3.2.5. +# AIX extension caps are commented out, +# except for box1 which has been translated to an <acsc> string. +# +aixterm|IBM Aixterm Terminal Eemulator:\ + :es:hs:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6154: +aixterm-m|IBM AIXterm Monochrome Terminal Emulator:\ + :es:hs:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6153: +aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator:\ + :es:hs:\ + :ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6153: +jaixterm|IBM Kanji Aixterm Terminal Eemulator:\ + :ac@:tc=aixterm: +jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator:\ + :ac@:\ + :tc=aixterm-m: + +#### Infoton/General Terminal Corp. +# + +# gt100 sounds like something DEC would come out with. Let's hope they don't. +i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\ + :am:bs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\Ef%r%+ %+ :cr=^M:\ + :dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\Ea:sf=^J:so=\Eb:up=\EA:\ + :vb=\Eb\Ea: +i400|infoton 400:\ + :am:bs:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:ce=\E[N:cl=\E[2J:cm=%i\E[%3;%3H:cr=^M:\ + :dc=\E[4h\E[2Q\E[P\E[4l\E[0Q:dl=\E[M:do=^J:\ + :ei=\E[4l\E[0Q:im=\E[4h\E[2Q:le=^H:nd=\E[C:sf=^J:up=\E[A: +# (addrinfo: removed obsolete ":bc=^Z:" -- esr) +addrinfo:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^K:cl=^L:..cm=\037%p1%{1}%-%c%p2%{1}%-%c:cr=^M:\ + :do=^J:ho=^H:le=^Z:ll=^H^\:nd=^Y:sf=^J:up=^\: +# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr) +infoton:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:sf=^J:\ + :up=^\: + +# The ICL6402 was actually the Kokusai Display System 6402. +# The 6404 was the KDS7372 (color version of the 6402). +# +# ICL6404 control codes follow: +# +#code function +#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ctrl-A set SOM position at cursor position +#ctrl-G Bell +#ctrl-H Backspace +#ctrl-I Horiz tab +#ctrl-J Linefeed +#ctrl-K Cursor up +#ctrl-L Cursor right +#ctrl-M Carriage return +#ctrl-N Disable xon/xoff to host +#ctrl-O Enable xon/xoff to host +#ctrl-R Enable bidirectional mode +#ctrl-T Disable bidirectional mode +#ctrl-V Cursor down +#ctrl-Z Clear unprotected data to insert char +#ctrl-^ Cursor home +#ctrl-_ Newline +# +#ESC lead-in char for multiple character command +# +#ESC space R execute power on sequence +#ESC ! p1 p2 define scroll region: +# p1 = scroll top line: 20h - 37h +# p1 = scroll bottom line: 20h - 37h +#ESC " unlock keyboard +#ESC # lock keyboard +#ESC $ Semi-graphics mode on +#ESC % Semi-graphics mode off +#ESC & protect mode on +#ESC ' protect mode off +#ESC ( write protect mode off (full intensity) +#ESC ) write protect mode on (half intensity) +# +#ESC * clear screen +#ESC + clear unprotected data to insert char +#ESC , clear unprotected data to half intensity spaces +#ESC - p1 p2 p3 p4 address cursor to page, row, column: +# p1 = page number 0 - 3 +# p2 = row 20h - 7fh +# p3 = column (lo) 20h - 7fh +# p4 = column (hi) 20h - 21h (only 132 col) +#ESC . p1 set cursor style: +# p1 = 0 invisible cursor +# p1 = 1 block blinking cursor +# p1 = 2 block steady cursor +# p1 = 3 underline blinking cursor +# p1 = 4 underline steady cursor +#ESC / transmit cursor location (page, row, column) +#ESC 0 p1 p2 p3 p4 program edit key: +# p1 = edit key code: '@'-'S', '`'-'s' +# p2 p3 p4 = program data (3 bytes) +# +#ESC 1 set tab +#ESC 2 clear tab at cursor +#ESC 3 clear all tabs +#ESC 4 send unprotect line to cursor +#ESC 5 send unprotect page to cursor +#ESC 6 send line to cursor +#ESC 7 send page to cursor +#ESC 8 n set scroll mode: +# n = 0 set jump scroll +# n = 1 set smooth scroll +#ESC 9 n control display: +# n = 0 display off +# n = 1 display on +#ESC : clear unprotected data to null +#ESC ; clear unprotected data to insert char +# +#ESC < keyclick on +#ESC = p1 p2 address cursor to row, column +# p1 = row 20h - 7fh +# p2 = column (lo) 20h - 7fh +# p3 = column (hi) 20h - 21h (only 132 col) +#ESC > keyclick off +#ESC ? transmit cursor location (row, column) +# +#ESC @ copy print mode on +#ESC A copy print mode off +#ESC B block mode on +#ESC C block mode off (conversation mode) +#ESC D F set full duplex +#ESC D H set half duplex +#ESC E line insert +#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd) +# 0 = black, 1 = red, 2 = green, 3 = yellow +# 4 = blue, 5 = magenta, 6 = cyan, 7 = white +#ESC G n set serial field attribute (n = 30h - 3Fh) +#ESC H n full graphics mode: +# n = 0 exit full graphics mode +# n = 1 enter full graphics mode +#ESC I back tab +#ESC J back page +#ESC K forward page +# +#ESC L unformatted page print +#ESC M L move window left (132 col mode only) +#ESC M R move window right (132 col mode only) +#ESC N set page edit (clear line edit) +#ESC O set line edit (clear page edit) +#ESC P formatted page print +#ESC Q character insert +#ESC R line delete +#ESC S send message unprotected only +#ESC T erase line to insert char +#ESC U set monitor mode (see ESC X, ESC u) +# +#ESC V n select video attribute mode: +# n = 0 serial field attribute mode +# n = 1 parallel character attribute mode +#ESC V 2 n define line attribute: +# n = 0 single width single height +# n = 1 single width double height +# n = 2 double width single height +# n = 3 double width double height +#ESC V 3 n select character font: +# n = 0 system font +# n = 1 user defined font +#ESC V 4 n select screen mode: +# n = 0 page screen mode +# n = 1 virtual screen mode +#ESC V 5 n control mouse mode: +# n = 0 disable mouse +# n = 1 enable sample mode +# n = 2 send mouse information +# n = 3 enable request mode +#ESC W character delete +#ESC X clear monitor mode (see ESC U, ESC u) +#ESC Y erase page to insert char +# +#ESC Z n send user/status line: +# n = 0 send user line +# n = 1 send status line +# n = 2 send terminal ID +#ESC [ p1 p2 p3 set character attribute (parallel char mode): +# p1: 0 = normal +# 1 = blank +# 2 = blink +# 3 = blink blank (= blank) +# 4 = reverse +# 5 = reverse blank +# 6 = reverse blink +# 7 = reverse blink blank (= reverse blank) +# 8 = underline +# 9 = underline blank +# : = underline blink +# ; = underline blink blank +# < = reverse underline +# = = reverse underline blank +# > = reverse underline blink +# ? = reverse underline blink blank +# p2, p3: f/grnd, b/grnd colour +# (see ESC F for colours) +# use ZZ for mono, eg. +# ESC [ 0 Z Z for normal +# ESC [ 4 Z Z for inverse etc. +# +#ESC \ n set page size: +# n = 1 24 lines/page +# n = 2 48 lines/page +# n = 3 72 lines/page +# n = 4 96 lines/page +#ESC ] n set Wordstar mode: +# n = 0 normal (KDS7372) mode +# n = 1 Wordstar mode +# +#ESC b set foreground colour screen +# +#ESC c n enter self-test mode: +# n = 0 exit self test mode +# n = 1 ROM test +# n = 2 RAM test +# n = 3 NVRAM test +# n = 4 screen display test +# n = 5 main/printer port test +# n = 6 mouse port test +# n = 7 graphics board test +# n = 8 graphics memory test +# n = 9 display all 'E' +# n = : display all 'H' +#ESC d set background colour screen +# +#ESC e n program insert char (n = insert char) +#ESC f text CR load user status line with 'text' +# +#ESC g display user status line on 25th line +#ESC h display system status line on 25th line +#ESC i tab +#ESC j reverse linefeed +#ESC k n duplex/local edit mode: +# n = 0 duplex edit mode +# n = 1 local edit mode +#ESC l n select virtual screen: +# n = 0 screen 1 +# n = 1 screen 2 +#ESC m save current config to NVRAM +#ESC n p1 select display screen: +# p1 = 0 screen 1 +# p1 = 1 screen 2 +# p1 = 2 screen 3 +# p1 = 3 screen 4 +#ESC o p1 p2 set characters/line and attribute: +# p1 = 0 80 chars/line +# +#ESC o p1 p2 set characters/line and attribute: +# p1 = 0 80 chars/line +# p1 = 1 132 chars/line +# p2 = 0 single width single height +# p2 = 1 single width double height +# p2 = 2 double width single height +# p2 = 3 double width double height +# +#ESC q insert mode on +#ESC r edit mode on +#ESC s send message all +#ESC t erase line to null +#ESC u clear monitor mode (see ESC U, ESC X) +#ESC v autopage mode on +#ESC w autopage mode off +#ESC x p1 p2 p3 define delimiter code... +#ESC y erase page to null +# +#ESC z 2 p1 p2 p3 p4 draw quadrangle: +# p1 = starting row +# p2 = starting column +# p3 = end row +# p4 = end column +# +#ESC { p1 p2 p3 p4 configure main port +# (baud, stop bits, parity, word length) +# +#ESC | p1 p2 text Ctrl-Y program function key with 'text': +# p1 = function key code: +# '1' - ';' normal f1- f11 +# '<' - 'F' shifted f1 - f11 +# p2 = program mode: +# 1 = FDX +# 2 = LOC +# 3 = HDX +# Ctrl-Y = terminator +# (use Ctrl-P to escape ^P, ^Y ) +# +#ESC } p1 p2 p3 p4 configure printer port +# (baud, stop bits, parity, word length) +#ESC ~ send system status +# +# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997 +# +# Entry is by esr going solely on above information and is UNTESTED. +# This actually looks a lot like a Televideo 9xx. +# This entry uses page 0 and is monochrome; I'm not brave enough to try +# to make color work without a test terminal. The :am: capability is a guess. +# The initialization string sets conversation mode, blinking underline cursor, +# full duplex, parallel attribute mode, display user status line, white +# foreground, black background, normal highlight. +# +icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372:\ + :am:bs:hs:\ + :co#80:li#24:\ + :DC=\EW:al=\EE:bl=^G:bt=\EI:cl=\E*:cm=\E=%+ %+P%+P:cr=^M:\ + :..cs=\E\041%+%p1%{32}%+%p2%{32} cud1=\026:ct=\E3:\ + :dl=\ER:ei=\Er:ho=^^:i1=\EC\E.3\EDF\EV1\Eg\E[0ZZ:im=\Eq:\ + :mb=\E[2ZZ:me=\E[0ZZ:mk=\E[1ZZ:mr=\E[4ZZ:nd=^L:nw=^_:\ + :r2=\Eo1:\ + :..sa=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ:\ + :se=\E[%gh%{4}%^%Ph%gh%dZZ:so=\E[8ZZ:st=\E1:ta=^I:\ + :ue=\E[%gh%{8}%^%Ph%gh%dZZ:up=^K:us=\E[8ZZ:ve=\E.3:\ + :vi=\E.0:vs=\E.1: +icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols:\ + :r2=\Eo1:\ + :tc=icl6404: + +#### Interactive Systems Corp +# +# ISC used to sell OEMed and customized hardware to support ISC UNIX. +# ISC UNIX still exists in 1995, but ISC itself is no more; they got +# bought out by Sun. +# + +# From: <cithep!eric> Wed Sep 16 08:06:44 1981 +# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the +# ":le=^_:" later overridden -- esr) +intext|Interactive Systems Corporation modified owl 1200:\ + :am:bs:\ + :co#80:it#8:li#24:sg#1:\ + :al=\020:bl=^G:bt=^Y:cd=\026J:ce=^Kp^R:cl=\014:\ + :cm=\017%+ %+ :cr=^M:dc=\022:dl=\021:do=^J:ei=^V<:im=^V;:\ + :ip=:k0=^VJ\r:k1=^VA\r:k2=^VB\r:k3=^VC\r:k4=^VD\r:k5=^VE\r:\ + :k6=^VF\r:k7=^VG\r:k8=^VH\r:k9=^VI\r:kb=^H:kd=^J:ke=^V9:\ + :kh=^Z:kl=^_:kr=^^:ks=\036\072\264\026%:ku=^\:le=^H:nd=^^:\ + :se=^V# :sf=^J:so=^V$\054:ta=^I:up=^\: +intext2|intextii|INTERACTIVE modified owl 1251:\ + :am:bw:ul:\ + :co#80:li#24:sg#0:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ic=\E[@:im=:k0=\E@\r:k1=\EP\r:k2=\EQ\r:\ + :k3=\ES\r:k4=\ET\r:k5=\EU\r:k6=\EV\r:k7=\EW\r:k8=\EX\r:\ + :k9=\EY\r:kb=^H:kd=\EB\r:kh=\ER\r:kl=\ED\r:kr=\EC\r:\ + :ku=\EA\r:l0=REFRSH:l1=DEL CH:l2=TABSET:l3=GOTO:l4=+PAGE:\ + :l5=+SRCH:l6=-PAGE:l7=-SRCH:l8=LEFT:l9=RIGHT:nd=\E[C:\ + :se=\E[2 D:sf=\E[S:so=\E[6 D:sr=\E[T:ta=^I:ue=\E[2 D:\ + :up=\E[A:us=\E[18 D:\ + :vb=\E[;;;;;;;;;2;;u\E[;;;;;;;;;1;;u: + +#### Kimtron (abm, kt) +# +# Kimtron seems to be history, but as March 1998 these people are still +# offering repair services for Kimtron equipment: +# +# Com/Pair Monitor Service +# 1105 N. Cliff Ave. +# Sioux Falls, South Dakota 57103 +# +# WATS voice: 1-800/398-4946 +# POTS fax: +1 605/338-8709 +# POTS voice: +1 605/338-9650 +# Email: <compair@sd.cybernex.net> +# Internet/Web: <http://www.com-pair.com> +# +# Kimtron entries include (undocumented) codes for: enter dim mode, +# enter bold mode, enter reverse mode, turn off all attributes. +# + +# Kimtron ABM 85 added by Dual Systems +# (abm85: removed duplicated ":kd=^J:" -- esr) +abm85|Kimtron ABM 85:\ + :am:bs:bw:ms:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^J:ei=\Er:if=/usr/share/tabset/stdcrt:im=\EQ:\ + :is=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\Ek:so=\Ej:ta=^I:ue=\Em:\ + :up=^K:us=\El: +# Kimtron ABM 85H added by Dual Systems. +# Some notes about the abm85h entries: +# 1) there are several firmware revs of 85H in the world. Use abm85h-old for +# firmware revs prior to SP51 +# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the +# abm85e entry if it is in tvi920 emulation mode. They are incompatible +# in some places and NOT software settable i.e., :is: can't fix it) +# 3) In 85h mode, the arrow keys and special functions transmit when +# the terminal is in dup-edit, and work only locally in local-edit. +# Vi won't swallow `del char' for instance, but :ti: turns on +# dup-edit anyway so that the arrow keys will work right. If the +# arrow keys don't work the way you like, change :ti:, :te:, and +# :is:. Note that 920E mode does not have software commands to toggle +# between dup and local edit, so you get whatever was set last on the +# terminal. +# 4) :vb: attribute is nice, but seems too slow to work correctly +# (\Eb:pc:\Ed) +# 5) Make sure `hidden' attributes are selected. If `embedded' attributes +# are selected, the <xmc@> entry should be removed. +# 6) auto new-line should be on (selectable from setup mode only) +# +# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985 +abm85h|Kimtron ABM 85H native mode:\ + :hs:\ + :sg@:\ + :bl=^G:ds=\Ee:fs=^M:im=\EZ:\ + :is=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El:\ + :kd=^V:me=\E(\EG0:mh=\E):mk@:ts=\Eg\Ef:vb@:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr:tc=abm85: +abm85e|Kimtron ABM 85H in 920E mode:\ + :sg@:\ + :bl=^G:im=\EZ:\ + :is=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em:\ + :me=\E(\Ek:mh=\E):mr=\Ej:vb@:\ + :tc=abm85: +abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.:\ + :sg@:\ + :bl=^G:im=\EZ:\ + :is=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF:\ + :me=\E(\Ek:mh=\E):mr=\Ej:\ + :tc=abm85: +# From: <malman@bbn-vax.arpa> +# (kt7: removed obsolete :ma=^V^J^L :" -- esr) +kt7|kimtron model kt-7:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^V:ei=:fs=\Eg:ho=^^:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:is=\El\E":k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=^Z:kD=\EW:\ + :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\Ef:up=^K:\ + :tc=adm+sgr: +# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the +# other kt7 entry and the adjacent key capabilities). Removed EE which is +# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight +# but we can't figure out what. +kt7ix|kimtron model kt-7 or 70 in IX mode:\ + :am:bw:\ + :co#80:it#8:li#25:\ + :@7=\EY:PU=\EK:ac=jYk?lZm@nEqDt4uCvAwBx3:ae=\E%:al=\EE:\ + :as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=:fs=^M:ho=^^:ic=\EQ:\ + :im=:is=\EG0\E s\017\E~:k0=^AI\r:k1=^A@\r:k2=^AA\r:\ + :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ + :k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:kE=\ET:kI=\EQ:kL=\ER:kN=\EJ:\ + :kS=\EY:kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\EG2:me=\EG0:mh=\EG@:nd=^L:nw=^M^J:se=\EG0:sf=^J:\ + :so=\EG4:ta=^I:ts=\Ef:ue=\EG0:up=^K:us=\EG8:ve=\E.3:vi=\E.0: + +#### Microdata/MDIS +# +# This was a line of terminals made by McDonnell-Douglas Information Systems. +# These entries come direct from MDIS documentation. I have edited them only +# to move primary names of the form p[0-9] * to aliases, and to comment out +# :ae:/:as: in a couple of entries without <acsc> strings. I have +# also removed the change history; the last version indicates this is +# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989). +# + +# McDonnell Information Systems Terminal Family History +# ========================================= +# +# Prism-1, Prism-2 and P99: +# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25. +# +# Prism-4 and Prism-5: +# Slightly less ancient range of Microdata terminals. Follow-on from +# Prism-2, but with many enhancements. P5 has eight display pages. +# +# Prism-6: +# A special terminal for use with library systems, primarily in Germany. +# Limited numbers. Similar functionality to P5 (except attributes?). +# +# Prism-7, Prism-8 and Prism-9: +# More recent range of MDIS terminals, in which P7 and P8 +# replace the P4 & P5, with added functionality, and P9 is the flagship. +# The P9 has two emulation modes - P8 and ANSI - and includes a +# large number of the DEC VT220 control sequences. Both +# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats. +# +# Prism-12 and Prism-14: +# Latest range, functionally very similar to the P9. The P14 has a +# black-on-white overscanning screen. +# +# The terminfo definitions given here are: +# +# p2 - Prism-2 (or Prism-1 or P99). +# +# p4 - Prism-4 (and older P7s & P8s). +# p5 - Prism-5 (or Prism-6). +# +# p7 - Prism-7. +# p8 - Prism-8 (in national or multinational mode). +# p8-w - 132 column version of p8. +# p9 - Prism-9 in ANSI mode. +# p9-w - 132 column version of p9. +# p9-8 - Prism-9 in Prism-8 emulation mode. +# p9-8-w - As p9-8, but with 132 columns. +# +# p12 - Prism-12 in ANSI mode. +# p12-w - 132 column version of p12. +# p12-m - Prism-12 in MDC emulation mode. +# p12-m-w - As p12-m, but with 132 columns. +# p14 - Prism-14 in ANSI mode. +# p14-w - 132 column version of p14. +# p14-m - Prism-14 in MDC emulation mode. +# p14-m-w - As p14-m, but with 132 columns. +# +# p2: Prism-2 +# ----------- +# +# Includes Prism-1 and basic P99 without SP or MP loaded. +# The simplest form of Prism-type terminal. +# Basic cursor movement and clearing operations only. +# No video attributes. +# Notes: +# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +# value up, followed by backspace. +# +prism2|MDC Prism-2:\ + :am:bw:ms:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:\ + :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cl=\014:\ + :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cr=^M:cv=\013%+ :do=^J:ho=^A:kb=^H:kh=^A:le=^H:nd=^F:sf=^J:\ + :up=^Z: + +# p4: Prism-4 +# ----------- +# +# Includes early versions of P7 & P8. +# Basic family definition for most Prisms (except P2 and P9 ANSI). +# Notes: +# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +# value up, followed by backspace. +# Cursor key definitions removed because they interfere with vi and csh keys. +# +prism4|p4|P4|MDC Prism-4:\ + :5i:am:bw:hs:ms:\ + :co#80:li#24:sg#1:ws#72:\ + :bl=^G:cd=\EJ:ce=\EK:\ + :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cl=\014:\ + :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cr=^M:cv=\013%+ :do=^J:ds=\035\343\035\345:fs=^]\345:\ + :ho=^A:kb=^H:kh=^A:le=^H:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:\ + :nd=^F:pf=\ET:po=\ER:ps=\EU:\ + :..sa=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;:\ + :se=^C :sf=^J:so=^CD:ts=^]\343:ue=^C :up=^Z:us=^CP:\ + :ve=^]\342:vi=^]\344: + +# p5: Prism-5 +# ----------- +# +# Same definition as p4. Includes Prism-6 (not tested!). +# Does not use any multi-page features. +# +prism5|p5|P5|MDC Prism-5:\ + :tc=p4: + +# p7: Prism-7 +# ----------- +# +# Similar definition to p4. Uses ANSI cursor motion to avoid network problems. +# Notes: +# Use p4 for very early models of P7. +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# +prism7|p7|P7|MDC Prism-7:\ + :ch@:cm=\E[%i%d;%dH:cv@:tc=p4: + +# p8: Prism-8 +# ----------- +# +# Similar definition to p7. Uses ANSI cursor motion to avoid network problems. +# Supports national and multinational character sets. +# Notes: +# Alternate char set operations only work in multinational mode. +# Use p4 for very early models of P8. +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# (esr: commented out :as:/:ae: because there's no <acsc>) +# +prism8|p8|P8|MDC Prism-8:\ + :ch=\E[%i%d`:cm=\E[%i%d;%dH:cv=\E[%i%dd:is=\E[<12h:tc=p4: + +# p8-w: Prism-8 in 132 column mode +# -------------------------------- +# +# 'Wide' version of p8. +# Notes: +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# +prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode:\ + :co#132:\ + :is=\E[<12h\E[<14h:tc=p8: + +# p9: Prism-9 in ANSI mode +# ------------------------- +# +# The "flagship" model of this generation of terminals. +# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones. +# Notes: +# Tabs only reset by "reset". Otherwise assumes default (8 cols). +# Fixes to deal with terminal firmware bugs: +# . 'ri' uses insert-line since rev index doesn't always +# . 'sgr0' has extra '0' since esc[m fails +# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25 +# Not covered in the current definition: +# . Labels +# . Programming Fn keys +# . Graphic characters (defaults correctly to vt100) +# . Padding values (sets xon) +# (esr: commented out :as:/:ae: because there's no <acsc>) +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +prism9|p9|P9|MDC Prism-9 in ANSII mode:\ + :5i:am:bw:hs:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#72:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ + :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ + :F7=\E[31~:F8=\E[32~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%d%v:ct=\E[2g:\ + :cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:ds=\E[%}\024:ec=\E[%dX:\ + :ei=\E[4l:fs=^T:ho=\E[H:im=\E[4h:is=\E[&p\E[<12l\E F:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kC=^L:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[0m:mp=\E[32%{:mr=\E[7m:nd=\E[C:\ + :nw=^M^J:pf=\E[4i:po=\E[5i:ps=\E[i:\ + :r2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N:\ + :rc=\E[%z:rp=\E[%r%db%.:sc=\E[%y:se=\E[27m:sf=^J:so=\E[7m:\ + :sr=\E[L:st=\EH:ta=^I:ts=\E[%i%p1%d%%}:ue=\E[24m:up=\E[A:\ + :us=\E[4m:ve=\E[<4h:vi=\E[<4l: + +# p9-w: Prism-9 in 132 column mode +# -------------------------------- +# +# 'Wide' version of p9. +# +prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode:\ + :co#132:\ + :is=\E[&p\E[<12l\E F\E[<14h:\ + :r2=\E[&p\E[<12l\E F\E[<14h:tc=p9: + +# p9-8: Prism-9 in P8 mode +# ------------------------ +# +# P9 terminal in P8 emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\ + :dl=\E[M:ei=:ic=\E[@:im=:\ + :tc=p8: + +# p9-8-w: Prism-9 in P8 and 132 column modes +# ------------------------------------------ +# +# P9 terminal in P8 emulation mode and 132 column mode. +# +prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\ + :dl=\E[M:ei=:ic=\E[@:im=:\ + :tc=p8-w: + +# p12: Prism-12 in ANSI mode +# --------------------------- +# +# See p9 definition. +# +prism12|p12|P12|MDC Prism-12 in ANSI mode:\ + :tc=p9: + +# p12-w: Prism-12 in 132 column mode +# ---------------------------------- +# +# 'Wide' version of p12. +# +prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode:\ + :tc=p9-w: + +# p12-m: Prism-12 in MDC emulation mode +# ------------------------------------- +# +# P12 terminal in MDC emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode:\ + :tc=p9-8: + +# p12-m-w: Prism-12 in MDC emulation and 132 column modes +# ------------------------------------------------------- +# +# P12 terminal in MDC emulation mode and 132 column mode. +# +prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode:\ + :tc=p9-8-w: + +# p14: Prism-14 in ANSII mode +# --------------------------- +# +# See p9 definition. +# +prism14|p14|P14|MDC Prism-14 in ANSII mode:\ + :tc=p9: + +# p14-w: Prism-14 in 132 column mode +# ---------------------------------- +# +# 'Wide' version of p14. +# +prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode:\ + :tc=p9-w: + +# p14-m: Prism-14 in MDC emulation mode +# ------------------------------------- +# +# P14 terminal in MDC emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode:\ + :tc=p9-8: + +# p14-m-w: Prism-14 in MDC emulation and 132 column modes +# ------------------------------------------------------- +# +# P14 terminal in MDC emulation mode and 132 column mode. +# +prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode:\ + :tc=p9-8-w: + +# End of McDonnell Information Systems Prism definitions + +# These things were popular in the Pick database community at one time +# From: George Land <georgeland@aol.com> 24 Sep 1996 +p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition:\ + :am:bw:hs:mi:\ + :co#80:li#24:ma#1:sg#1:ws#78:\ + :F2=^AJ\r:F3=^AK\r:F4=^AL\r:F5=^AM\r:F6=^AN\r:F7=^AO\r:\ + :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc= ^H:\ + :dl=^P:do=^J:ho=^A:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kD= ^H:kE=\EK:kL=^P:kS=\EJ:kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:\ + :ku=^Z:l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:l9=F9:\ + :la=F10:le=^U:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:nd=^F:\ + :nw=^J^M:pc=\0:se=^C :sf=^J:so=^CE:ue=^C :up=^Z:us=^C0: + +#### Microterm (act, mime) +# +# The mime1 entries refer to the Microterm Mime I or Mime II. +# The default mime is assumed to be in enhanced act iv mode. +# + +# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents +# freakout with out-of-range args on Sytek multiplexors. No :so=^N: and +# :se=^N: since it gets confused and it's too dim anyway. No :ic: +# since Sytek insists ^S means xoff. +# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr) +act4|microterm|microterm act iv:\ + :am:bs:\ + :co#80:li#24:\ + :al=2.3*\001<2.3*/>:bl=^G:cd=2.2*\037:ce=.1*\036:\ + :cl=12\014:cm=\024%+^X%>/0%+P:cr=^M:dc=.1*\004:\ + :dl=2.3*\027:do=^K:ho=^]:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:\ + :sf=^J:up=^Z: +# The padding on :sr: and :ta: for act5 and mime is a guess and not final. +# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)... +# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr) +act5|microterm5|microterm act v:\ + :kd=^K:kl=^H:kr=^X:ku=^Z:sr=\EH:uc=^H\EA:tc=act4: +# Mimes using brightness for standout. Half bright is really dim unless +# you turn up the brightness so far that lines show up on the screen. +mime-fb|full bright mime1:\ + :is=^S\E:se=^S:so=^Y:tc=mime: +mime-hb|half bright mime1:\ + :is=^Y\E:se=^Y:so=^S:tc=mime: +# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode +# the more plausible ":do=^J:" -- esr) +# uc was at one time disabled to get around a curses bug, be wary of it +mime|mime1|mime2|mimei|mimeii|microterm mime1:\ + :am:bs:\ + :co#80:it#8:li#24:vt#9:\ + :al=\001:bl=^G:cd=^_:ce=^^:cl=^]^C:cm=\024%+^X%> 0%+P:\ + :cr=^M:dl=\027:do=^J:ho=^]:is=^S\E^Q:kd=^K:kl=^H:kr=^X:ku=^Z:\ + :le=^H:nd=^X:sf=^J:sr=\022:ta=\011:uc=^U:up=^Z: +# These termcaps (for mime2a) put the terminal in low intensity mode +# since high intensity mode is so obnoxious. +mime2a-s|microterm mime2a (emulating an enhanced soroc iq120):\ + :am:bs:\ + :co#80:li#24:\ + :al=\001:bl=^G:cd=\EJ:ce=\EK:cl=\EL:cm=\E=%+ %+ :cr=^M:\ + :dc=\ED:dl=\027:do=^J:ei=^Z:ho=^^:im=\EE:ip=:is=\E):kd=^J:\ + :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\E;:sf=^J:so=\E\072:sr=\EI:\ + :ue=\E7:up=\EI:us=\E6: +# This is the preferred mode (but ^X can't be used as a kill character) +mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52):\ + :bs:\ + :co#80:it#8:li#24:\ + :al=\001:bl=^G:cd=\EQ:ce=\EP:cl=\EL:cm=\EY%+ %+ :cr=^M:\ + :dc=^N:dl=\027:do=^J:ei=^Z:ho=\EH:im=^O:ip=:is=^Y:kd=\EB:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\E9:sf=^J:so=\E8:\ + :sr=\EA:ta=^I:ue=\E5:up=\EA:us=\E4: +# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr) +mime3a|mime1 emulating 3a:\ + :am@:\ + :kd=^K:kl=^H:kr=^X:ku=^Z:tc=adm3a: +mime3ax|mime-3ax|mime1 emulating enhanced 3a:\ + :it#8:\ + :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a: +# Wed Mar 9 18:53:21 1983 +# We run our terminals at 2400 baud, so there might be some timing problems at +# higher speeds. The major improvements in this model are the terminal now +# scrolls down and insert mode works without redrawing the rest of the line +# to the right of the cursor. This is done with a bit of a kludge using the +# exit graphics mode to get out of insert, but it does not appear to hurt +# anything when using vi at least. If you have some users using act4s with +# programs that use curses and graphics mode this could be a problem. +mime314|mm314|mime 314:\ + :am:\ + :co#80:li#24:\ + :al=^A:cd=^_:ce=^^:cl=^L:cm=\024%.%.:dc=^D:dl=^W:ei=^V:ho=^]:\ + :im=^S:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:ta=^I:up=^Z: +# Microterm mime 340 from University of Wisconsin +mm340|mime340|mime 340:\ + :co#80:li#24:\ + :al=46\EU:cd=2*\037:ce=2.1\EL:cl=12\032:cm=\E=%+ %+ :\ + :cr=^M:dc=2.1*\E#:dl=49.6\EV:do=^J:is=\E\054:kb=^H:kd=^J:\ + :kl=^H:ku=^K:le=^H:nd=^L:nw=^M^J:sf=^J:ta=^I:up=^K: +# This came from University of Wisconsin marked "astro termcap for jooss". +# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:"; +# also added <rmam>/<smam> based on the init string -- esr) +mt4520-rv|micro-term 4520 reverse video:\ + :am:hs:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[g:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :fs=\E[?5l\E[?5h:ho=\E[H:ic=\E[@:im=:\ + :is=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:me=\E[m:\ + :nd=\E[C:nw=\EE:\ + :r1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J:\ + :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=\E[0m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[25;1H:ue=\E[24m:\ + :up=\E[A:us=\E[4m:vb=\E[?5l\E[?5h:ve=\E[0V\E8:\ + :vs=\E7\E[0U: + +# Fri Aug 5 08:11:57 1983 +# This entry works for the ergo 4000 with the following setups: +# ansi,wraparound,newline disabled, xon/xoff disabled in both +# setup a & c. +# +# WARNING!!! There are multiple versions of ERGO 4000 microcode +# Be advised that very early versions DO NOT WORK RIGHT !! +# Microterm does have a ROM exchange program- use it or lose big +# (ergo400: added <rmam>/<smam> based on the init string -- esr) +ergo4000|microterm ergo 4000:\ + :da:db:ms:\ + :co#80:li#66:\ + :AL=\E[1L:RA=\E[?7l:SA=\E[?7m:bl=^G:cd=\E[0J:ce=\E[0K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:\ + :do=\E[B:ei=\E[4l:im=\E[4h:\ + :is=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E=:kl=\E[D:kr=\E[C:\ + :ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A: + +#### NCR +# +# NCR's terminal group was merged with AT&T's when AT&T bought the company. +# For what happened to that group, see the ADDS section. +# +# There is an NCR4103 terminal that's just a re-badged Wyse-50. +# + +# The following vendor-supplied termcaps were captured from the Boundless +# Technologies site, 8 March 1998. I removed all-upper-case names that were +# identical, except for case, to lower-case ones. I also uncommented the acsc +# capabilities.X +# +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300an: +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wan: +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300pp: +# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a +# DEC vt200/300 with color capabilities added. +ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wpp: +# This definition for ViewPoint supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vppp|NCR 2900_260 viewpoint:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^A:\ + :K3=\EJ:K4=\ET:K5=\EJ:ae=\EcB0\EH\003:al=\EM:\ + :as=\EcB1\EH\002:bl=^G:bt=\EI:cd=\Ek:ce=\EK:cl=\014:\ + :cm=\EY%+ %+ :cr=\r:dc=\EW:dl=\El:do=\n:ds=\E`c:ei=\Er:\ + :fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~%\E+\E`\072\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :k1=^B1\r:k2=^B2\r:k3=^B3\r:k4=^B4\r:k5=^B5\r:k6=^B6\r:\ + :k7=^B7\r:k8=^B8\r:k9=^B9\r:kD=\EW:kI=\Eq:kN=\EJ:kP=\EJ:\ + :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=\010:ll=\001:mb=\EG2:\ + :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\006:nw=\037:se=\EG0:\ + :sf=\n:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\032:\ + :us=\EG8:ve=\E`5:vi=\E`0:vs=\E`5: +ncr260vpwpp|NCR 2900_260 viewpoint wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :r2=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :tc=ncr260vppp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt100an|NCR 2900_260 vt100 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=\r:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E[3~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[0m:sf=\ED:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt100an: +ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd:\ + :@7=\E[5~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :kD=\E[4~:kI=\E[1~:kN=\E[6~:kP=\E[3~:kd=\E[B:ke=\E>:\ + :kh=\E[2~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:\ + :l3=pf3:l4=pf4:\ + :r2=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:tc=ncr260vt100an: +ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt100pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt200an|NCR 2900_260 vt200 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\ + :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\ + :tc=ncr260vt200an: +ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd:\ + :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :tc=ncr260vt200an: +ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt200pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt300an|NCR 2900_260 vt300 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\ + :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\ + :tc=ncr260vt300an: +ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd:\ + :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :tc=ncr260vt300an: +NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt300pp: +# This terminfo file contains color capabilities for the Wyse325 emulation of +# the NCR 2900/260C color terminal. Because of the structure of the command +# (escape sequence) used to set color attributes, one of the fore/background +# colors must be preset to a given value. I have set the background color to +# black. The user can change this setup by altering the last section of the +# 'setf' definition. The escape sequence to set color attributes is +# ESC d y <foreground_color> <background_color> 1 +# In addition, the background color can be changed through the desk accessories. +# The capablitiy 'op' sets colors to green on black (default combination). +# +# NOTE: The NCR Unix System Administrator's Shell will not function properly +# if the 'pairs' capability is defined. Un-Comment the 'pairs' +# capability and recompile if you wish to have it included. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy325pp|NCR 2900_260 wyse 325:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K2=\EJ:K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:\ + :as=\EH\002\EcB1:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:\ + :ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\013:us=\EG8:\ + :ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy325pp: +# This definition for Wyse 350 supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# In addition, color capabilities have been added to this file. The drawback, +# however, is that the background color has to be black. The foreground colors +# are numbered 0 through 15. +# +# NOTE: The NCR Unix System Administrator's Shell does not function properly +# with the 'pairs' capability defined as below. If you wish to +# have it included, Un-comment it and recompile (using 'tic'). +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy350pp|NCR 2900_260 wyse 350:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:as=\EH\002\EcB1:\ + :bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\ + :ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:\ + :im=\Eq:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EH\003\EcD:mh=\EGp:mr=\EG4:nd=\014:nw=\037:\ + :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\ + :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy350pp: +# This definition for Wyse 50+ supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# (ncr260wy50+pp: originally contained commented-out +# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy50+pp|NCR 2900_260 wyse 50+:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:\ + :ce=\ET:cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ + :do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\014:nw=\037:se=\EG0:\ + :sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\ + :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy50+pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy60pp|NCR 2900_260 wyse 60:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K2=\EJ:K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:\ + :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:\ + :dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\ + :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy60pp: +ncr160vppp|NCR 2900_160 viewpoint:\ + :tc=ncr260vppp: +ncr160vpwpp|NCR 2900_160 viewpoint wide mode:\ + :tc=ncr260vpwpp: +ncr160vt100an|NCR 2900_160 vt100 with ansi kybd:\ + :tc=ncr260vt100an: +ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd:\ + :tc=ncr260vt100pp: +ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd:\ + :tc=ncr260vt100wan: +ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd:\ + :tc=ncr260vt100wpp: +ncr160vt200an|NCR 2900_160 vt200 with ansi kybd:\ + :tc=ncr260vt200an: +ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd:\ + :tc=ncr260vt200pp: +ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd:\ + :tc=ncr260vt200wan: +ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd:\ + :tc=ncr260vt200wpp: +ncr160vt300an|NCR 2900_160 vt300 with ansi kybd:\ + :tc=ncr260vt300an: +ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd:\ + :tc=ncr260vt300pp: +ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd:\ + :tc=ncr260vt300wan: +ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd:\ + :tc=ncr260vt300wpp: +ncr160wy50+pp|NCR 2900_160 wyse 50+:\ + :tc=ncr260wy50+pp: +ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode:\ + :tc=ncr260wy50+wpp: +ncr160wy60pp|NCR 2900_160 wyse 60:\ + :tc=ncr260wy60pp: +ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode:\ + :tc=ncr260wy60wpp: +ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal:\ + :5i:am:hs:mi:ms:xo:\ + :Nl#32:co#80:it#8:li#24:\ + :#4=\E[D:%i=\E[C:@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:K1=\E[H:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~:ae=\017:\ + :al=\E[B\E[L:as=\016:bl=^G:cb=\E[1K:cd=\E[0J:ce=\E[0K:\ + :cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:ds=\E[31l:eA=\E(B\E)0:\ + :ei=\E[4l:fs=1:ho=\E[H:im=\E[4h:\ + :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\017\E[0m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:ps=\E[i:\ + :r2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\ + :rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>:\ + :sc=\E7:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[>+1:ue=\E[0m:up=\E[A:us=\E[4m: +ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\ + :co#132:\ + :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0:\ + :r2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\ + :tc=ncrvt100an: +# +# Vendor-supplied NCR termcaps end here + +# NCR7900 DIP switches: +# +# Switch A: +# 1-4 - Baud Rate +# 5 - Parity (Odd/Even) +# 6 - Don't Send or Do Send Spaces +# 7 - Parity Enable +# 8 - Stop Bits (One/Two) +# +# Switch B: +# 1 - Upper/Lower Shift +# 2 - Typewriter Shift +# 3 - Half Duplex / Full Duplex +# 4 - Light/Dark Background +# 5-6 - Carriage Return Without / With Line Feed +# 7 - Extended Mode +# 8 - Suppress Keyboard Display +# +# Switch C: +# 1 - End of line entry disabled/enabled +# 2 - Conversational mode / (Local?) Mode +# 3 - Control characters displayed / not displayed +# 4 - (2-wire?) / 4-wire communications +# 5 - RTS on and off for each character +# 6 - (50Hz?) / 60 Hz +# 7 - Exit after level zero diagnostics +# 8 - RS-232 interface +# +# Switch D: +# 1 - Reverse Channel (yes / no) +# 2 - Manual answer (no / yes) +# 3-4 - Cursor appearance +# 5 - Communication Rate +# 6 - Enable / Disable EXT turnoff +# 7 - Enable / Disable CR turnoff +# 8 - Enable / Disable backspace +# +# Since each attribute parameter is 0 or 1, we shift each attribute (standout, +# reverse, blink, dim, and underline) the appropriate number of bits (by +# multiplying the 0 or 1 by a correct factor to shift) so the bias character, +# '@' is (effectively) "or"ed with each attribute to generate the proper third +# character in the <ESC>0 sequence. The :sa: string implements the following +# equation: +# +# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) => +# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17)) +# +# Where: P1 <==> Standout attribute parameter +# P2 <==> Underline attribute parameter +# P3 <==> Reverse attribute parameter +# P4 <==> Blink attribute parameter +# P5 <==> Dim attribute parameter +# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO. +ncr7900i|ncr7900|ncr 7900 model 1:\ + :am:bw:ul:\ + :co#80:li#24:sg#1:\ + :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\E1%r%.%.:cr=^M:do=^J:\ + :is=\E0@\010\E3\E4\E7:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:\ + :ll=^A:mb=\E0B:me=\E0@:mh=\E0A:mr=\E0P:nd=^F:pf=^T:po=^R:\ + :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c:\ + :se=\E0@:sf=^J:so=\E0Q:ue=\E0@:up=^Z:us=\E0`: +ncr7900iv|ncr 7900 model 4:\ + :am:bw:es:hs:\ + :co#80:li#24:\ + :al=\E^N:bl=^G:cl=^L:cm=\013%+@\E\005%02:cr=^M:dl=\E^O:\ + :do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\013@\E^E00:k1=\ES:k2=\ET:\ + :k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\ + :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:le=^H:\ + :nw=^M^J:sf=^J:ts=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo: +# Warning: This terminal will lock out the keyboard when it receives a CTRL-D. +# The user can enter a CTRL-B to get out of this locked state. +# In <hpa>, we want to output the character given by the formula: +# ((col / 10) * 16) + (col % 10) where "col" is "p1" +ncr7901|ncr 7901 model:\ + :am:bw:ul:\ + :co#80:li#24:\ + :bl=^G:cd=\Ek:ce=\EK:ch=\020%+^J:cl=^L:cm=\EY%+ %+ :cr=^M:\ + :cv=\013%+@:do=^J:is=\E4^O:kC=^L:kd=^J:kh=^H:kl=^U:kr=^F:\ + :ku=^Z:le=^H:ll=^A:mb=\E0B:me=^O:mh=\E0A:mr=\E0P:nd=^F:pf=^T:\ + :po=^R:\ + :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016:\ + :se=^O:sf=^J:so=\E0Q\016:ue=^O:up=^Z:us=\E0`\016:ve=^X:\ + :vi=^W: + +#### Perkin-Elmer (Owl) +# +# These are official terminfo entries from within Perkin-Elmer. +# + +bantam|pe550|pe6100|perkin elmer 550:\ + :bs:\ + :co#80:li#24:\ + :bl=^G:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:do=^J:ho=\EH:\ + :le=^H:ll=\EH\EA:nd=\EC:sf=^J:up=\EA: +fox|pe1100|perkin elmer 1100:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :cr=^M:\ + :ct=\E3:do=^J:ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:st=\E1:\ + :up=\EA:vb=\020\002\020\003: +owl|pe1200|perkin elmer 1200:\ + :am:bs:in:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :\ + :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:\ + :k0=\ERJ:k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:\ + :k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:\ + :nd=\EC:se=\E\041\0:sf=^J:so=\E\041^H:st=\E1:up=\EA:\ + :vb=\020\002\020\003: +pe1251|pe6300|pe6312|perkin elmer 1251:\ + :am:\ + :co#80:it#8:li#24:pb#300:sg#1:vt#8:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:ct=\E3:\ + :do=\EB:ho=\EH:k0=\ERA:k1=\ERB:k2=\ERC:k3=\ERD:k4=\ERE:\ + :k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\ + :nd=\EC:sf=^J:st=\E1:up=\EA: +# (pe7000m: this had +# rmul=\E!\0, smul=\E!\040, +# which is probably wrong, it collides with kf0 +pe7000m|perkin elmer 7000 series monochrome monitor:\ + :am:\ + :co#80:li#24:\ + :bl=^G:bt=\E\041Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :cr=^M:\ + :do=\EB:ho=\EH:i1=\E\041\0\EW 7o\Egf\ES7 :k0=\E\041\0:\ + :k1=\E\041^A:k2=\E\041^B:k3=\E\041^C:k4=\E\041^D:\ + :k5=\E\041^E:k6=\E\041^F:k7=\E\041^G:k8=\E\041^H:\ + :k9=\E\041^I:k;=\E\041^J:kb=^H:kd=\E\041U:kh=\E\041S:\ + :kl=\E\041V:kr=\E\041W:ku=\E\041T:le=\ED:ll=\ES7 :nd=\EC:\ + :sf=^J:sr=\ER:up=\EA: +pe7000c|perkin elmer 7000 series colour monitor:\ + :i1=\E\041\0\EW 7o\Egf\Eb0\Ec7\ES7 :se=\Eb0:so=\Eb2:\ + :ue=\E\041\0:us=\E\041 :\ + :tc=pe7000m: + +#### Prime +# +# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings +# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr. +# Prime merged with ComputerVision in the late 1980s; you can reach them at: +# +# ComputerVision Services +# 500 Old Connecticut Path +# Framingham, Mass. +# + +# Standout mode is dim reverse-video. +pt100|pt200|wren|fenix|prime pt100/pt200:\ + :am:bw:mi:ms:\ + :co#80:it#8:li#24:\ + :DC=\E[%dP:DL=\E[M:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L\E[t:bt=\E[Z:cd=\E[J\E[r:ce=\E[K\E[t:\ + :cl=\E?:cm=\E0%+!%+!:cr=^M:dc=\E[P:do=\ED:ei=\E[4l:ho=\E$B:\ + :im=\E[4h:kb=^H:kd=\E[B:ke=\E[>13l:kh=\E$A:kl=\E[D:kr=\E[C:\ + :ks=\E[>13h:ku=\E[A:le=^H:me=\E[m:mh=\E[2m:nd=\E[C:nw=^M^J:\ + :se=\E[m:sf=^J:so=\E[2;7m:ta=^I:te=:\ + :ti=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q:\ + :ue=\E[m:up=\EM:us=\E[4m:vb=\E$\E$P: +pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode:\ + :co#132:\ + :cm=\E[%i%d;%dH:tc=pt100: +pt250|Prime PT250:\ + :se@:so@:tc=pt100: +pt250w|Prime PT250 in 132-column mode:\ + :se@:so@:tc=pt100w: + +#### Sperry Univac +# +# Sperry Univac has merged with Burroughs to form Unisys. +# + +# This entry is for the Sperry UTS30 terminal running the TTY +# utility under control of CP/M Plus 1R1. The functionality +# provided is comparable to the DEC vt100. +# (uts30: I added <rmam>/<smam> based on the init string -- esr) +uts30|sperry uts30 with cp/m@1R1:\ + :am:bw:hs:\ + :co#80:li#24:ws#40:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7m:SF=\E[%dB:\ + :SR=\E[%dA:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\Ed:al=\EN:as=\EF:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\EU%+ %+ :dc=\EM:dl=\EL:do=\EB:\ + :ei=:fs=^M:ho=\E[H:ic=\EO:im=:is=\E[U 7\E[24;1H:kb=^H:\ + :kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\EC:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\EX:\ + :rf=/usr/share/tabset/vt100:sc=\EW:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EI:ta=^I:ts=\E]:uc=\EPB:ue=\E[m:up=\E[A:\ + :us=\E[4m:ve=\ES:vi=\ER: + +#### Tandem +# +# Tandem builds these things for use with its line of fault-tolerant +# transaction-processing computers. They aren't generally available +# on the merchant market, and so are fairly uncommon. +# + +tandem6510|adm3a repackaged by Tandem:\ + :tc=adm3a: + +# A funny series of terminal that TANDEM uses. The actual model numbers +# have a fourth digit after 653 that designates minor variants. These are +# natively block-mode and rather ugly, but they have a character mode which +# this doubtless(?) exploits. There is a 6520 that is slightly dumber. +# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also, +# removed :if=/usr/share/tabset/tandem653:, no such file -- esr) +tandem653|t653x|Tandem 653x multipage terminal:\ + :am:bs:da:db:hs:\ + :co#80:li#24:sg#1:ws#64:\ + :cd=\EJ:ce=\EK:cl=\EI:cm=\023%+ %+ :do=^J:ds=\Eo\r:fs=^M:\ + :ho=\EH:le=^H:me=\E6 :nd=\EC:se=\E6 :sf=\ES:so=\E6$:sr=\ET:\ + :ts=\Eo:ue=\E6 :up=\EA:us=\E60: + +#### Tandy/Radio Shack +# +# Tandy has a line of VDTs distinct from its microcomputers. +# + +dmterm|deskmate terminal:\ + :am:bw:\ + :co#80:li#24:\ + :al=\EP:bl=^G:cd=\EJ:ce=\EK:cl=\Ej:cm=\EY%+ %+ :cr=^M:\ + :dc=\ES:dl=\ER:do=\EB:ei=:ho=\EH:ic=\EQ:im=:k0=\E1:k1=\E2:\ + :k2=\E3:k3=\E4:k4=\E5:k5=\E6:k6=\E7:k7=\E8:k8=\E9:k9=\E0:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:l2=f3:l3=f4:\ + :l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:ll=\EE:mk@:nd=\EC:\ + :sf=\EX:ta=^I:ue@:up=\EA:us@:ve=\EG6:vi=\EG5:\ + :tc=adm+sgr: +dt100|dt-100|Tandy DT-100 terminal:\ + :xo:\ + :co#80:li#24:sg#1:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:cr=^M:\ + :cs=\E[%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:\ + :im=:is=\E[?3l\E)0\E(B:k1=\E[?3i:k2=\E[2i:k3=\E[@:k4=\E[M:\ + :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\ + :k;=\E[?5i:kN=\E[29~:kP=\E[28~:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:l1=f1:l2=f2:l3=f3:l4=f4:l5=f5:l6=f6:l7=f7:\ + :l8=f8:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +dt100w|dt-100w|Tandy DT-100 terminal (wide mode):\ + :co#132:tc=dt100: +dt110|Tandy DT-110 emulating ansi:\ + :xo:\ + :co#80:li#24:\ + :@7=\E[K:ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[0L:as=^N:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[0P:dl=\E[0M:do=\E[0B:\ + :eA=\E(B\E)0:ei=:ho=\E[H:ic=\E[0@:im=:is=\E[?3l\E)0\E(B:\ + :k1=\E[1~:k2=\E[2~:k3=\E[3~:k4=\E[4~:k5=\E[5~:k6=\E[6~:\ + :k7=\E[7~:k8=\E[8~:k9=\E[9~:k;=\E[10~:kI=\E[@:kN=\E[26~:\ + :kP=\E[25~:kd=\E[B:kh=\E[G:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:\ + :l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:\ + :me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ue=\E[m:up=\E[0A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +pt210|TRS-80 PT-210 printing terminal:\ + :hc:os:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### Tektronix (tek) +# +# Tektronix tubes are graphics terminals. Most of them use modified +# oscilloscope technology incorporating a long-persistence green phosphor, +# and support vector graphics on a main screen with an attached "dialogue +# area" for interactive text. +# + +tek|tek4012|tektronix 4012:\ + :bs:os:\ + :co#75:li#35:\ + :bl=^G:cl=\E\014:cr=^M:do=^J:ff=\014:is=\E^O:le=^H: +# (tek4013: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4013|tektronix 4013:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4012: +tek4014|tektronix 4014:\ + :co#81:li#38:\ + :is=\E\017\E9:tc=tek4012: +# (tek4015: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4015|tektronix 4015:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4014: +tek4014-sm|tektronix 4014 in small font:\ + :co#121:li#58:\ + :is=\E\017\E\072:tc=tek4014: +# (tek4015-sm: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4015-sm|tektronix 4015 in small font:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4014-sm: +# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay> +# +# You need to have "stty nl2" in effect. Some versions of tset(1) know +# how to set it for you. +# +# It's got the Magic Cookie problem around stand-out mode. If you can't +# live with Magic Cookie, remove the :so: and :se: fields and do without +# reverse video. If you like reverse video stand-out mode but don't want +# it to flash, change the letter 'H' to 'P' in the :so: field. +tek4023|tektronix 4023:\ + :am:bs:\ + :co#80:dN#4:li#24:sg#1:vt#4:\ + :bl=^G:cl=4\E\014:cm=\034%r%+ %+ :cr=^M:do=^J:kb=^H:le=^H:\ + :nd=^I:nl=^J:se=^_@:so=^_P: +# It is recommended that you run the 4025 at 4800 baud or less; +# various bugs in the terminal appear at 9600. It wedges at the +# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed +# on keyboard don't work. You have to hit BREAK twice to get +# one break at any speed - this is a documented feature. +# Can't use cursor motion because it's memory relative, and +# because it only works in the workspace, not the monitor. +# Same for home. Likewise, standout only works in the workspace. +# +# :ce: was commented out since vi and rogue seem to work better +# simulating it with lots of spaces! +# +# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U +# and didn't seem necessary. +# +tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\ + :am:bs:da:db:\ + :co#80:it#8:li#34:lm#0:\ + :AL=\037up\r\037ili %d\r:CC=^_:DL=\037dli %d\r\006:\ + :DO=\037dow %d\r:LE=\037lef %d\r:RI=\037rig %d\r:\ + :UP=\037up %d\r:al=\037up\r\037ili\r:bl=^G:\ + :cd=\037dli 50\r:cl=\037era\r\n\n:cr=^M:dc=\037dch\r:\ + :dl=\037dli\r\006:do=^F^J:ei=:ic=\037ich\r \010:im=:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ + :ke=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r:\ + :ks=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r:\ + :le=^H:nd=\037rig\r:sf=^F^J:ta=^I:up=^K: +tek4025-17|tek 4025 17 line window:\ + :li#17:tc=tek4025: +tek4025-17-ws|tek 4025 17 line window in workspace:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r:\ + :se=\037att s\r:so=\037att e\r:te=\037mon h\r:\ + :ti=\037wor h\r:\ + :tc=tek4025-17: +tek4025-ex|tek4027-ex|tek 4025/4027 w/!:\ + :is=\037com 33\r\n\041sto 9 17 25 33 41 49 57 65 73\r:\ + :te=\037com 33\r:ti=\041com 31\r:\ + :tc=tek4025: +# Tektronix 4025a +# From: Doug Gwyn <gwyn@brl-smoke.ARPA> +# The following status modes are assumed for normal operation (replace the +# initial "!" by whatever the current command character is): +# !COM 29 # NOTE: changes command character to GS (^]) +# ^]DUP +# ^]ECH R +# ^]EOL +# ^]RSS T +# ^]SNO N +# ^]STO 9 17 25 33 41 49 57 65 73 +# Other modes may be set according to communication requirements. +# If the command character is inadvertently changed, termcap can't restore it. +# Insert-character cannot be made to work on both top and bottom rows. +# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas. +# There also seems to be a problem with vertical motion, perhaps involving +# delete/insert-line, following a typed carriage return. This terminal sucks. +# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't +# work any more. -- esr) +tek4025a|Tektronix 4025A:\ + :am:bs:bw:da:db:pt:xo:\ + :co#80:it#8:li#34:\ + :CC=^]:DC=\035dch %d;:DL=\035dli %d;:DO=\035dow %d;:\ + :LE=\035lef %d;:RI=\035rig %d;:SF=\035dow %d;:\ + :UP=\035up %d;:al=\013\035ili;:bl=^G:bt=\035bac;:\ + :ce=\035dch 80;:ch=\r\035rig %d;:cl=\035era;\n\035rup;:\ + :cr=^M:ct=\035sto;:dc=\035dch;:dl=\035dli;:do=^J:le=^H:\ + :nd=\035rig;:\ + :rs=\041com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;:\ + :sf=^J:ta=^I:up=^K: +# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981 +# Here's the command file that I use to get rogue to work on the 4025. +# It should work with any program using the old curses (e.g. it better +# not try to scroll, or cursor addressing won't work. Also, you can't +# see the cursor.) +# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh) +tek4025-cr|tek 4025 for curses and rogue:\ + :am:bs:\ + :co#80:it#8:li#33:\ + :cl=\037era;:cm=\037jum%i%d\054%d;:do=^F^J:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ + :le=^H:nd=\037rig;:sf=^F^J:ta=^I:te=\037wor 0:\ + :ti=\037wor 33h:up=^K: +# next two lines commented out since curses only allows 128 chars, sigh. +# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\ +# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0: +tek4025ex|4025ex|4027ex|tek 4025 w/!:\ + :is=\037com 33\r\n\041sto 9\05417\05425\05433\05441\05449\05457\05465\05473\r:\ + :te=\037com 33\r:ti=\041com 31\r:\ + :tc=tek4025: +tek4105|tektronix 4105:\ + :am:bs:mi:ms:ul:xn:xt:\ + :co#79:it#8:li#29:\ + :ac=:ae=\E[m:al=\E[1L:as=\E[1m:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%2;%2H:cr=^M:ct=\E[1g:\ + :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:i1=\E%!1\E[m:\ + :im=\E[4h:is=\E%!1\E[?6141\E[m:kb=^H:kd=\E[1B:kl=\E[1D:\ + :kr=\E[1C:ku=\E[1A:mb=\E[=3;<7m:md=\E[=7;<4m:\ + :me=\E[=0;<1m:mh=\E[=1;<6m:mk=\E[=6;<5:mr=\E[=1;<3m:\ + :nd=\E[1C:se=\E[=0;<1m:sf=\E[S:so=\E[=2;<3m:sr=\E[T:ta=^I:\ + :te=:ti=\E%!1\E[?6l\E[2J:ue=\E[=0;<1m:up=\E[1A:\ + :us=\E[=5;<2m: + +# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr) +tek4105-30|4015 emulating 30 line vt100:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#30:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# Tektronix 4105 from BRL +# The following setup modes are assumed for normal operation: +# CODE ansi CRLF no DABUFFER 141 +# DAENABLE yes DALINES 30 DAMODE replace +# DAVISIBILITY yes ECHO no EDITMARGINS 1 30 +# FLAGGING input INSERTREPLACE replace LFCR no +# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B +# SELECTCHARSET G1 0 TABS -2 +# Other setup modes may be set for operator convenience or communication +# requirements; I recommend +# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1 +# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132 +# XMTDELAY 0 +# and factory color maps. After setting these modes, save them with NVSAVE. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# "IC" cannot be used in combination with "im" & "ei". +# "tek4105a" is just a guess: +tek4105a|Tektronix 4105:\ + :bs:ms:pt:xo:\ + :co#80:it#8:kn#8:li#30:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\ + :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\ + :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\ + :l5=F6:l6=F8:le=^H:ll=\E[30;H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\ + :rs=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:us=\E[4m:\ + :ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\ + :vs=\E%!0\ETD70\E%!1: + +# +# Tektronix 4106/4107/4109 from BRL +# The following setup modes are assumed for normal operation: +# CODE ansi COLUMNMODE 80 CRLF no +# DABUFFER 141 DAENABLE yes DALINES 32 +# DAMODE replace DAVISIBILITY yes ECHO no +# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace +# LFCR no LOCKKEYBOARD no ORIGINMODE relative +# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0 +# TABS -2 +# Other setup modes may be set for operator convenience or communication +# requirements; I recommend +# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3 +# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132 +# XMTDELAY 0 +# and factory color maps. After setting these modes, save them with NVSAVE. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# "IC" cannot be used in combination with "im" & "ei". +tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109:\ + :ms:xo:\ + :co#80:it#8:li#32:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\ + :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\ + :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\ + :l5=F6:l6=F8:le=^H:ll=\E[32;H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:\ + :r1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7;42m:sr=\EM:st=\EH:\ + :ta=^I:te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:\ + :us=\E[4m:ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\ + :vs=\E%!0\ETD70\E%!1: + +tek4107|tek4109|tektronix terminals 4107 4109:\ + :am:bs:mi:ms:ul:xn:xt:\ + :co#79:it#8:li#29:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\ELZ:cm=\EY%+ %+ :cr=^M:do=^J:kb=^H:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:mb=\E%!1\E[5m\E%!0:\ + :md=\E%!1\E[1m\E%!0:me=\E%!1\E[m\E%!0:\ + :mh=\E%!1\E[<0m\E%!0:mr=\E%!1\E[7m\E%0:nd=\EC:\ + :..sa=\E%%\0411\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%\0410:\ + :se=\E%!1\E[m\E%!0:sf=^J:so=\E%!1\E[7;5m\E%!0:sr=\EI:\ + :ta=^I:ue=\E%!1\E[m\E%!0:up=\EA:us=\E%!1\E[4m\E%!0:\ + :ve=\E%!0:vs=\E%!3: +# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s; +# see the note attached to tek4207. +tek4207-s|Tektronix 4207 with sysline but no memory:\ + :es:hs:\ + :ds=\E7\E[?6l\E[2K\E[?6h\E8:fs=\E[?6h\E8:\ + :i1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ + :is=\E7\E[?6l\E[2K\E[?6h\E8:\ + :ts=\E7\E[?6l\E[2K\E[;%i%df:tc=tek4107: + +# The 4110 series may be a wonderful graphics series, but they make the 4025 +# look good for screen editing. In the dialog area, you can't move the cursor +# off the bottom line. Out of the dialog area, ^K moves it up, but there +# is no way to scroll. +# +# Note that there is a floppy for free from Tek that makes the +# 4112 emulate the vt52 (use the vt52 termcap). There is also +# an expected enhancement that will use ANSI standard sequences. +# +# 4112 in non-dialog area pretending to scroll. It really wraps +# but vi is said to work (more or less) in this mode. +# +# 'vi' works reasonably well with this entry. +# +otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\ + :am:\ + :co#80:li#34:\ + :bl=^G:cl=\E^L:cr=^M:do=^J:le=^H:sf=^J:te=\EKA1\ELV1:\ + :ti=\EKA0\ELV0\EMG0:up=^K: +# The 4112 with the ANSI compatibility enhancement +tek4112|tek4114|tektronix 4110 series:\ + :am:bs:db:\ + :co#80:li#34:\ + :al=\E[L:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[0;0H:\ + :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:\ + :is=\E3\0411:le=^H:me=\E[m:nd=\E[C:se=\E[m:\ + :sf=\E7\E[0;0H\E[M\E8:so=\E[7m:sr=\E7\E[0;0H\E[L\E8:\ + :ue=\E[m:up=\EM:us=\E[4m: +tek4112-nd|4112 not in dialog area:\ + :ns:\ + :up=^K:tc=tek4112: +tek4112-5|4112 in 5 line dialog area:\ + :li#5:tc=tek4112: +# (tek4113: this used to have ":nd=\LM1\s\LM0:", someone's mistake; +# removed ":as=\E^N:, :ae=\E^O:", which had been commented out in 8.3. +# Note, the !0 and !1 sequences in :te:/:ti:/:ve:/:vi: were +# previously \0410 and \0411 sequences...I don't *think* they were supposed +# to be 4-digit octal -- esr) +tek4113|tektronix 4113 color graphics with 5 line dialog area:\ + :am:bs:da:eo:\ + :co#80:li#5:\ + :cl=\ELZ:do=^J:is=\EKA1\ELL5\ELV0\ELV1:le=^H:\ + :nd=\ELM1 \ELM0:uc=\010\ELM1_\ELM0:\ + :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0: +tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\ + :li#34:\ + :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113: +# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not +# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . +# :vb: needs enough delay to let you see the background color being toggled. +tek4113-nd|tektronix 4113 color graphics with no dialog area:\ + :am:bs:eo:\ + :co#80:it#8:li#34:\ + :cl=\E^L:do=^J:ho=\ELF7l\177 @:is=\ELZ\EKA0\ELF7l\177 @:\ + :le=^H:ll=\ELF hl @:nd=^I:se=\EMT1:so=\EMT2:ta=^I:\ + :uc=\010\EMG1_\EMG0:up=^K:\ + :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:\ + :vs=\ELZ\EKA0: +# This entry is from Tek. Inc. (Brian Biehl) +# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr) +otek4115|Tektronix 4115:\ + :am:bs:da:db:eo:\ + :co#80:it#8:li#34:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m:\ + :kb=^H:ke=\E>:ks=\E=:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:\ + :so=\E[7m:sr=\EM:ta=^I:te=\E%!0\ELBG8\E%!1\E[34;1H\E[J:\ + :ti=\E%!0\ELBB2\E%!1:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E%!0\ELBG8\E%!1\E[34;1H:vs=\E%!0\ELBB2\E%!1: +tek4115|newer tektronix 4115 entry with more ANSI capabilities:\ + :am:xo:\ + :co#80:li#34:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:al=\E[L:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:cv=\E[%+^Ad:dc=\E[P:\ + :dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mk=\E[8m:mr=\E[7m:nd=\E[C:..rp=%p1%c\E[%p2%{1}%-%db:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ + :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# The tek4125 emulates a vt100 incorrectly - the scrolling region +# command is ignored. The following entry replaces :cs: with the needed +# :AL:, :AL:, and :im:; removes some cursor pad commands that the tek4125 +# chokes on; and adds a lot of initialization for the tek dialog area. +# Note that this entry uses all 34 lines and sets the cursor color to green. +# Steve Jacobson 8/85 +# (tek4125: there were two "\!"s in the is that I replaced with "\E!"; +# commented out, :im:=\E1 because there's no :ei: -- esr) +tek4125|tektronix 4125:\ + :li#34:\ + :al=\E[1L:cs@:dl=\E[1M:\ + :is=\E%\E\0410\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E\0411\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ks=\E=:rc@:sc@:\ + :tc=vt100: + +# From: <jcoker@ucbic> +# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO +# supplied another, less capable 4107 entry. So we'll use that for 4107 and +# note that if jcoker wasn't confused you may be able to use this one. +# I merged in :ms:,:sf:,:sr:,<invis>,:ct: from a BRL entry -- esr) +tek4207|Tektronix 4207 graphics terminal with memory:\ + :am:bw:mi:ms:ul:xn:\ + :co#80:it#8:li#32:\ + :al=3\E[L:bt=\E[Z:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:\ + :cm=\E[%i%d;%dH:ct=\E[1g:dc=4\E[P:dl=3\E[M:do=^J:ei=:\ + :ho=\E[H:ic=4\E[@:im=:\ + :is=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ + :kd=\ED:kh=\E[H:kl=\E[D:kr=\E[C:ku=\EM:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[=6;<5:mr=\E[7m:nd=\E[C:se=\E[m:\ + :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:\ + :te=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f:ti=\E[?6l\E[H\E[J:\ + :ue=\E[m:up=\EM:us=\E[4m: + +# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985 +# (tek4404: There was a "\!" in :ti: that I replaced with "\E!". +# Tab had been given as \E2I,that must be the tab-set capability -- esr) +tek4404|tektronix 4404:\ + :bs:\ + :co#80:it#8:li#32:\ + :al=\E[1L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[1M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:kd=\E[B:ke=\E[?1h:kl=\E[D:kr=\E[C:ks=\E[?1l:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[27m:so=\E[7m:st=\E[2I:ta=^I:\ + :te=\E[1;1H\E[0J\E[?6h\E[?1l:\ + :ti=\E%\E\0411\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# Some unknown person wrote: +# I added the is string - straight Unix has ESC ; in the login +# string which sets a ct8500 into monitor mode (aka 4025 snoopy +# mode). The is string here cleans up a few things (but not +# everything). +ct8500|tektronix ct8500:\ + :am:bw:da:db:\ + :co#80:li#25:\ + :al=\E^L:bl=^G:bt=\E^I:cd=\E^U:ce=\E^T:cl=\E^E:\ + :cm=\E|%+ %+ :cr=^M:dc=\E^]:dl=\E^M:do=^J:ei=:ic=\E^\:im=:\ + :is=\037\EZ\Ek:le=^H:me=\E :nd=\ES:se=\E :sf=^J:so=\E$:\ + :sr=\E^A:ta=^I:ue=\E :up=\ER:us=\E\041: + +# Tektronix 4205 terminal. +# +# am is not defined because the wrap around occurs not when the char. +# is placed in the 80'th column, but when we are attempting to type +# the 81'st character on the line. (esr: hmm, this is like the vt100 +# version of xenl, perhaps am + xenl would work!) +# +# Bold, dim, and standout are simulated by colors and thus not allowed +# with colors. The tektronix color table is mapped into the RGB color +# table by setf/setb. All colors are reset to factory specifications by oc. +# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the +# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- +# interval then maps into pre-defined value. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +tek4205|tektronix 4205:\ + :cc:mi:ms:\ + :Co#8:NC#49:co#80:it#8:li#30:pa#63:\ + :AL=\E[%dL:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[1L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[1g:\ + :dc=\E[1P:dl=\E[1M:do=\E[B:eA=\E)0:ec=\E%dX:ei=\E[4l:\ + :ho=\E[H:i1=\E%!0\ETM1\E%!1\E[m:im=\E[4h:k0=\EOA:k1=\EOB:\ + :k2=\EOC:k3=\EOD:k4=\EP:k5=\EQ:k6=\ER:k7=\ES:kb=^H:kd=\E[B:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[=7;<4m:\ + :me=\E[=0;<1m\E[24;25;27m\017:mh=\E[=1;<6m:mk=\E[=6;<5:\ + :mr=\E[7m:nd=\E[C:\ + :oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1:\ + :op=\E[39;40m:se=\E[=0;<1m:sf=\ED:so=\E[=2;<3m:sr=\EM:\ + :ta=^I:te=:ti=\E%%\0411\E[?6l\E[2J:ue=\E[24m:up=\E[A:\ + :us=\E[4m: + +#### Teletype (tty) +# +# These are the hardcopy Teletypes from before AT&T bought the company, +# clattering electromechanical dinosaurs in Bakelite cases that printed on +# pulpy yellow roll paper. If you remember these you go back a ways. +# Teletype-branded VDTs are listed in the AT&T section. +# +# The earliest UNIXes were designed to use these clunkers; nroff and a few +# other programs still default to emitting codes for the Model 37. +# + +tty33|tty35|model 33 or 35 teletype:\ + :hc:os:xo:\ + :co#72:\ + :bl=^G:cr=^M:do=^J:sf=^J: +tty37|model 37 teletype:\ + :bs:hc:os:xo:\ + :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7: + +# There are known to be at least three flavors of the tty40, all seem more +# like IBM half duplex forms fillers than ASCII terminals. They have lots of +# awful braindamage, such as printing a visible newline indicator after each +# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is +# braindamaged but has hope and is described here. The 40-4 is a 3270 +# lookalike and beyond hope. The terminal has visible bell but I don't know +# it - it's null here to prevent it from showing the BL character. +# There is an \EG in <nl> because of a bug in old vi (if stty says you have +# a "newline" style terminal (-crmode) vi figures all it needs is nl +# to get crlf, even if :cr: is not ^M.) +# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr) +tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2:\ + :bs:xo:\ + :co#80:li#24:\ + :al=\EL:cd=\EJ:cl=\EH\EJ:cr=\EG:ct=\EH\E2:dc=\EP:dl=\EM:\ + :do=\EB:ei=:ho=\EH:ic=\E\136:im=:kb=^]:kl=^H:le=^H:nd=\EC:\ + :pf=^T:po=\022:r2=\023\ER:se=\E4:sf=\ES:so=\E3:sr=\ET:\ + :st=\E1:ta=\E@:up=\E7: +tty43|model 43 teletype:\ + :am:bs:hc:os:xo:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J: + +#### Tymshare +# + +# You can add :is=\E<: to put this 40-column mode, though I can't +# for the life of me think why anyone would want to. +scanset|sc410|sc415|Tymshare Scan Set:\ + :am:bw:ms:\ + :co#80:li#24:\ + :ac=j%k4l<m-q\054x5:ae=^O:as=^N:bl=^G:cd=\EJ:ce=\EK:\ + :cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:kd=\EB:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:nd=^I:pf=\E;0:po=\E;0:ps=\E;3:r1=\E>:\ + :rc=^C:sc=^B:sf=^J:up=^K: + +#### Volker-Craig (vc) +# +# If you saw a Byte Magazine cover with a terminal on it during the early +# 1980s, it was probably one of these. Carl Helmers liked them because +# they could crank 19.2 and were cheap (that is, he liked them until he tried +# to program one...) +# + +# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time +# every other linefeed. +vc303|vc103|vc203|volker-craig 303:\ + :am:bs:ns:\ + :co#80:li#24:\ + :bl=^G:cl=\014:cr=^M:do=^J:ho=\013:kd=^J:kl=^H:kr=^I:ku=^N:\ + :le=^H:ll=\017W:nd=^I:up=^N: +vc303a|vc403a|volker-craig 303a:\ + :ce=\026:cl=\030:ho=\031:kr=^U:ku=^Z:ll=^P:nd=^U:up=^Z:tc=vc303: +# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr) +vc404|volker-craig 404:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\027:ce=\026:cl=\030:cm=\020%+ %+ :cr=^M:do=^J:\ + :ho=\031:kd=^J:kl=^H:kr=^U:ku=^Z:le=^H:nd=^U:sf=^J:up=^Z: +vc404-s|volker-craig 404 w/standout mode:\ + :do=^J:se=^O:so=^N:tc=vc404: +# From: <wolfgang@cs.sfu.ca> +# (vc414: merged in cup/dl1/home from an old vc414h-noxon) +vc414|vc414h|Volker-Craig 414H in sane escape mode.:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E\032:cd=\E^X:ce=10\E\017:cl=\E\034:cm=\E\021%r%.%.:\ + :dc=\E3:dl=\E\023:do=\E^K:ei=:ho=\E^R:ic=\E\072:im=:k0=\EA:\ + :k1=\EB:k2=\EC:k3=\ED:k4=\EE:k5=\EF:k6=\EG:k7=\EH:kd=\E^K:\ + :kh=\E^R:kl=^H:kr=^P:ku=\E^L:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :l4=PF5:l5=PF6:l6=PF7:l7=PF8:nd=^P:se=\E^_:so=\E^Y:up=\E^L: +vc415|volker-craig 415:\ + :cl=^L:tc=vc404: + +######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS +# + +#### IBM PC and clones +# + +# The pcplot IBM-PC terminal emulation program is really messed up. It is +# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly, +# doesn't support scrolling regions, ignores add line commands, and ignores +# delete line commands. Consequently, the resulting behavior looks like a +# crude adm3a-type terminal. +# Steve Jacobson 8/85 +pcplot|pc-plot terminal emulation program:\ + :xn@:\ + :AL@:DL@:al@:cs@:dl@:rc@:sc@:tc=vt100: +# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA> +# I've found that my KayPro II, running MDM730, continues to emulate an +# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX +# system the following termcap entry works well: +# I have noticed a couple of minor glitches, but nothing I can't work +# around. (I added two capabilities from the BRL entry -- esr) +kaypro|kaypro2|kaypro II:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=^W:ce=^X:cl=1\032:cm=\E=%+ %+ :cr=^M:\ + :dl=\ER:do=^J:ho=^^:kd=^J:kr=^L:ku=^K:nd=^L:sf=^J:up=^K: + +# From IBM, Thu May 5 19:35:27 1983 +# (ibmpc: commented out :im:=\200R because we don't know :ei: -- esr) +ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L^K:cr=^M^^:do=^J:ho=^K:kd=^_:le=^]:nd=^\:sf=\n:\ + :up=^^: + +ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\ + :am:bw:eo:hs:km:ms:ul:\ + :co#80:it#8:li#24:\ + :@7=\E[Y:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS\E[%dB:\ + :SR=\E[%dT\E[%dA:UP=\E[%dA:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :bl=^G:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\Ec:cm=\E[%i%d;%dH:\ + :cr=^M:do=\E[B:ec=\E[%dX:ho=\E[H:k1=\240:k2=\241:k3=\242:\ + :k4=\243:k5=\244:k6=\245:k7=\246:k8=\247:k9=\250:k;=\251:\ + :kB=^]:kD=\177:kI=\E[^H:kN=\E[U:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[30;40m:mr=\E[7m:nd=\E[C:nw=^M:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :se=\E[m:sf=\E[S\E[B:so=\E[7m:sr=\E[T\E[A:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +#### Apple II +# +# Apple II firmware console first, then various 80-column cards and +# terminal emulators. For two cents I'd toss all these in the UFO file +# along with the 40-column apple entries. +# + +# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL +# 'it#8' tells UNIX that you have tabs every 8 columns. This is a +# function of TIC, not the firmware. +# The clear key on a IIgs will do something like clear-screen, +# depending on what you're in. +appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\ + :am:bs:bw:eo:ms:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\ + :kC=^X:kD=\177:kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:nd=^\:\ + :nw=^M^W:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_: +# Apple //e with 80-column card, entry from BRL +# The modem interface is permitted to discard LF (maybe DC1), otherwise +# passing characters to the 80-column firmware via COUT (PR#3 assumed). +# Auto-wrap does not work right due to newline scrolling delay, which also +# requires that you set "stty cr2". +# Note: Cursor addressing is only available via the Pascal V1.1 entry, +# not via the BASIC PR#3 hook. All this nonsense can be avoided only by +# using a terminal emulation program instead of the built-in firmware. +apple2e|Apple //e:\ + :bw:ms:\ + :co#80:li#24:\ + :bl=^G:cd=4*\013:ce=4\035:cl=100\014:do=^J:ho=^Y:is=^R^N:\ + :kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:mr=^O:nw=100\r:\ + :r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_: +# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro +# 4.20, with incoming and outgoing terminals both on 0, emulation On. +apple2e-p|Apple //e via Pascal:\ + :cm=\036%r%+ %+ :kb=^H:kd=^J:kl=^H:tc=apple2e: +# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL +# Enable DC3/DC1 flow control with "stty ixon -ixany". +apple-ae|ASCII Express:\ + :am:bs:bw:ms:nx:xo:\ + :co#80:it#8:li#24:\ + :bl=500\007:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:\ + :ho=^Y:is=^R^N:kC=^X:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:\ + :mr=^O:nd=^U:r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:up=^_: +appleII|apple ii plus:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :do=^J:ho=\E^Y:\ + :is=\024T1\016:kd=^J:kr=^U:le=^H:me=^N:nd=^\:se=^N:so=^O:\ + :ta=^I:up=^_:vb=\024G1\024T1:ve=^TC2:vs=^TC6: +# Originally by Gary Ford 21NOV83 +# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985 +apple-80|apple II with smarterm 80 col:\ + :am:bs:bw:\ + :co#80:li#24:\ + :bt=^R:cd=10*\013:ce=10\035:cl=10*\014:cm=\036%r%+ %+ :\ + :cr=10*\r:do=^J:ho=^Y:le=^H:nd=^\:up=^_: +apple-soroc|apple emulating soroc 120:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ + :kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# From Peter Harrison, Computer Graphics Lab, San Francisco +# ucbvax!ucsfmis!harrison .....uucp +# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA +# "These two work. If you don't have the inverse video chip for the +# Apple with videx then remove the :so: and :se: fields." +# (apple-videx: this used to be called DaleApple -- esr) +apple-videx|Apple with videx videoterm 80 column board with inverse video:\ + :am:bs:xn:\ + :co#80:it#8:li#24:\ + :cd=^K:ce=^]:cl=300\014:cm=\036%r%+ %+ :do=^J:ho=^Y:kd=^J:\ + :kh=^Y:kl=^H:kr=^U:le=^H:me=^Z2:nd=^\:se=^Z2:so=^Z3:ta=^I:\ + :up=^_: +# My system [for reference] : Apple ][+, 64K, Ultraterm display card, +# Apple Cat ][ 212 modem, + more all +# controlled by ASCII Express: Pro. +# From Dave Shaver <isucs1!shaver> +apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell:\ + :am:bs:eo:xt:\ + :co#80:li#24:\ + :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\ + :is=^V4^W06\017\rVisible Bell Installed.\016\r\n:\ + :nd=^\:se=^N:so=^O:up=^_:vb=^W35^W06: +apple-uterm|Ultraterm for Apple micros:\ + :am:bs:eo:xt:\ + :co#80:li#24:\ + :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\ + :is=^V4^W06\016:nd=^\:se=^N:so=^O:up=^_: +# from trwrba!bwong (Bradley W. Wong): +# +# This entry assumes that you are using an apple with the UCSD Pascal +# language card. SYSTEM.MISCINFO is assumed to be the same as that +# supplied with the standard apple except that screenwidth should be set +# using SETUP to 80 columns. Note that the right arrow in not mapped in +# this termcap entry. This is because that key, on the Apple, transmits +# a ^U and would thus preempt the more useful "up" function of vi. +# +# HMH 2/23/81 +apple80p|80-column apple with Pascal card:\ + :am:bw:\ + :co#80:li#24:\ + :cd=^K:ce=^]:cl=^Y^L:cm=\036%r%+ %+ :ho=^Y:kl=^H:nd=^\\072:\ + :up=^_: +# +# Apple II+ equipped with Videx 80 column card +# +# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL; +# manually converted by D A Gwyn +# +# DO NOT use any terminal emulation with this data base, it works directly +# with the Videx card. This has been tested with vi 1200 baud and works fine. +# +# This works great for vi, except I've noticed in pre-R2, ^U will scroll back +# 1 screen, while in R2 ^U doesn't. +# For inverse alternate character set add: +# :as:=^O::ae:=^N: +# (apple-v: added it#8 -- esr) +apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520):\ + :am:xn:\ + :co#80:it#8:li#24:\ + :bl=100\007:cd=16*\013:ce=^]:cl=16*\014:cm=\036%r%+ %+ :\ + :cr=^M:do=^J:ho=^Y:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:\ + :nd=^\:se=^Z2:sf=^J:so=^Z3:ta=8\011:up=^_: +apple-videx3|vapple|Apple II with 80 col card:\ + :am:bs:\ + :co#80:li#24:\ + :ce=\Ex:cl=\Ev:cm=\EY%+ %+ :ho=\EH:k0=\EP:k1=\EQ:k2=\ER:\ + :k3=\E :k4=\E\041:k5=\E":k6=\E#:k7=\E$:k8=\E%:k9=\E&:kd=\EB:\ + :kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:up=\EA: +#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL +aepro|Apple II+ running ASCII Express Pro--vt52:\ + :bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=300\014:cm=\EY%+ %+ :ho=\EH:nd=\EC:\ + :up=\EA: +# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory +apple-vm80|ap-vm80|apple with viewmax-80:\ + :bs:\ + :co#80:li#24:\ + :cd=300\013:ce=^]:cl=300\014:cm=100\036%+ %+ :ho=200\031:\ + :nd=^\\072:up=^_: + +#### Apple Lisa & Macintosh +# + +# (lisa: changed :vs: to :ve: -- esr) +lisa|apple lisa console display (black on white):\ + :am:bs:eo:ms:\ + :co#88:it#8:li#32:\ + :ac=jdkclfmenbqattuvvuwsx`:ae=\E[10m:al=\E[L:as=\E[11m:\ + :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E>\E[m\014:kb=^H:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\ + :se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[5l:\ + :vi=\E[5h: +liswb|apple lisa console display (white on black):\ + :is=\E>\E[0;7m\014:se=\E[0;7m:so=\E[m:ue=\E[0;7m:\ + :us=\E[4m:tc=lisa: + +# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL; +# :is: revised by Ferd Brundick <fsbrn@BRL.ARPA> +# +# These entries assume that the 'Auto Wraparound' is enabled. +# Xon-Xoff flow control should also be enabled. +# +# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab +# settings are in non-volatile memory and don't need to be reset upon login. +# Also setting the number of columns glitches the screen annoyingly. +# You can type "reset" to get them set. +# +lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation:\ + :am:bs:pt:xn:xo:\ + :co#80:it#8:kn#4:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +# Lisaterm in 132 column ("wide") mode. +lisaterm-w|Apple Lisa with Lisaterm in 132 column mode:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:tc=lisaterm: +# Although MacTerminal has insert/delete line, it is commented out here +# since it is much faster and cleaner to use the "lock scrolling region" +# method of inserting and deleting lines due to the MacTerminal implementation. +# Also, the "Insert/delete ch" strings have an extra character appended to them +# due to a bug in MacTerminal V1.1. Blink is disabled since it is not +# supported by MacTerminal. +mac|macintosh|Macintosh with MacTerminal:\ + :xn:\ + :dN#30:\ + :dc=7\E[P:ei=:ic=9\E[@:im=:ip=7:mb@:tc=lisa: +# Lisaterm in 132 column ("wide") mode. +mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\ + :co#132:tc=mac: + +#### Radio Shack/Tandy +# + +# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7". +# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr) +# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90 +coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=^_0:bl=^G:cd=^K:ce=^D:cl=5*\014:cm=2\002%r%+ %+ :\ + :dl=^_1:do=^J:ho=^A:kd=^J:kl=^H:kr=^I:ku=^L:le=^H:mb=^_":\ + :md=\E\072^A:me=\037\041\E\072\0:mr=^_ :nd=^F:se=^_\041:\ + :so=^_ :ue=^_#:up=^I:us=^_":ve=^E\041:vi=^E : +# (trs2: removed obsolete ":nl=^_:" -- esr) +trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\ + :am:bs:ms:\ + :co#80:it#8:li#24:\ + :al=^D:bl=^G:cd=^B:ce=^A:cl=^L:cm=\EY%+ %+ :cr=^M:dl=^K:\ + :do=^_:ho=^F:kb=^H:kd=^_:kl=^\:kr=^]:ku=^^:le=^H:me=^O:nd=^]:\ + :se=^O:sf=^J:so=^N:ta=^I:up=^^: +# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu> +# (This had extension capabilities +# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\ +# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@: +# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr) +trs16|trs-80 model 16 console:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :ac=jak`l_mbquvewcxs:ae=\ERg:al=\EL:as=\ERG:bl=^G:cd=\EJ:\ + :ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EM:do=\EB:ei=:\ + :ho=\EH:ic=\EP:im=:k0=^A:k1=^B:k2=^D:k3=^L:k4=^U:k5=^P:k6=^N:\ + :k7=^S:kb=^H:kd=\EB:kh=^W:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:\ + :l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:le=^H:me=\ER@:nd=\EC:\ + :pf=\E]+:po=\E]=:se=\ER@:sf=^J:so=\ERD:ta=^I:up=\EA:ve=\ERC:\ + :vi=\ERc: + +#### Atari ST +# + +# From: Simson L. Garfinkel <simsong@media-lab.mit.edu> +atari|atari st:\ + :am:bs:\ + :co#80:it#8:li#25:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:do=\EB:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:me=\Eq:nd=\EC:se=\Eq:\ + :so=\Ep:sr=\EI:ta=^I:up=\EA: +# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode +# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu> +uniterm|uniterm49|UniTerm VT220 emulator with 49 lines:\ + :li#49:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H:tc=vt220: +# MiNT VT52 emulation. 80 columns, 25 rows. +# MiNT is Now TOS, the operating system which comes with all Ataris now +# (mainly Atari Falcon). This termcap is for the VT52 emulation you get +# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode +# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996 +st52|Atari ST with VT52 emulation:\ + :am:km:\ + :co#80:li#25:\ + :K1=\E#7:K2=\E#9:K3=\E#5:K4=\E#1:K5=\E#3:al=\EL:bl=^G:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dl=\EM:do=\EB:\ + :ho=\EH:k0=\E#D:k1=\E#;:k2=\E#<:k3=\E#=:k4=\E#>:k5=\E#?:\ + :k6=\E#@:k7=\E#A:k8=\E#B:k9=\E#C:kA=\E#R:kC=\E#7:kF=\E#2:\ + :kR=\E#8:kb=^H:kd=\E#P:kh=\E#G:kl=\E#K:kr=\E#M:ku=\E#H:\ + :l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\ + :rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\ + :up=\EA:ve=\Ee:vi=\Ef: + +#### Commodore Business Machines +# +# Formerly located in West Chester, PA; went spectacularly bust in 1994 +# after years of shaky engineering and egregious mismanagement. Made one +# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64, +# C-128, VIC-20). The C-64 is said to have been the most popular machine +# ever (most units sold); they can still be found gathering dust in closets +# everywhere. +# + +# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90 +# Added a few more entries, converted caret-type control sequence (^x) entries +# to '\0xx' entries since a couple of people mentioned losing '^x' sequences. +# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998 +# +# :as:, :ae: Support for alternate character sets. +# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible. +# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept) +# This one appears to fix a problem I always had with a line ending +# at 'width+1' (I think) followed by a blank line in vi. The blank +# line tended to disappear and reappear depending on how the screen +# was refreshed. Note that this is probably needed only if you use +# something like a Dnet Fterm with the window sized to some peculiar +# dimension larger than 80 columns. +# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;' +# (amiga: removed obsolete :kn#10:, +# also added empty <acsc> to suppress a warning --esr) +amiga|Amiga ANSI:\ + :am:bs:bw:xn:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :ho=\E[H:ic=\E[@:im=:is=\E[20l:k0=\E[9~:k1=\E[0~:k2=\E[1~:\ + :k3=\E[2~:k4=\E[3~:k5=\E[4~:k6=\E[5~:k7=\E[6~:k8=\E[7~:\ + :k9=\E[8~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\ + :mb=\E[7;2m:md=\E[1m:me=\E[m:mh=\E[2m:mk=\E[8m:mr=\E[7m:\ + :nd=\E[C:r1=\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=\E[ p:vi=\E[0 p: + +# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995 +# (amiga: added empty <acsc> to suppress a warning. +# I'm told this entry screws up badly with AS225, the Amiga +# TCP/IP package once from Commodore, and now sold by InterWorks.--esr) +amiga-h|Hans Verkuil's Amiga ANSI:\ + :bs:bw:ms:\ + :co#80:li#24:\ + :DC=\233%dP:DO=\233%dB:IC=\233%d@:LE=\233%dD:RI=\233%dC:\ + :SF=\233%dS:SR=\233%dT:UP=\233%dA:ac=:ae=^O:as=^N:bl=^G:\ + :bt=\233Z:cd=\233J:ce=\233K:cl=\233H\233J:\ + :cm=\233%i%d;%dH:cr=^M:dc=\233P:do=\233B:ec=\233%dP:ei=:\ + :ho=\233H:ic=\233@:im=:is=\23320l:k0=\2339~:k1=\2330~:\ + :k2=\2331~:k3=\2332~:k4=\2333~:k5=\2334~:k6=\2335~:\ + :k7=\2336~:k8=\2337~:k9=\2338~:kD=\177:kb=^H:kd=\233B:\ + :kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\ + :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\ + :nd=\233C:nw=\233B\r:r1=\Ec:se=\2330m:sf=\233S:so=\2337m:\ + :sr=\233T:ta=^I:te=\233?7h:ti=\233?7l:ue=\2330m:up=\233A:\ + :us=\2334m:vb=^G:ve=\233 p:vi=\2330 p: + +# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999 +amiga-8bit|Amiga ANSI using 8-bit controls:\ + :AL=\233%dL:DL=\233%dM:SF@:SR@:ac=:al=\233L:dl=\233M:\ + :sf=\204:sr=\215:\ + :tc=amiga-h: + +# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA> +# I'm trying to write a termcap for a commodore b-128, and I'm +# having a little trouble. I've had to map most of my control characters +# to something that unix will accept (my delete-char is a ctrl-t, etc), +# and create some functions (like cm), but thats life. +# The problem is with the arrow keys - right, and up work fine, but +# left deletes the previous character and down I just can't figure out. +# Jove knows what I want, but I don't know what it's sending to me (it +# isn't thats bound to next-line in jove). +# Anybody got any ideas? Here's my termcap. +# DAG -- I changed his "^n" entries to "\n"; see if that works. +# +commodore|b-128|Commodore B-128 micro:\ + :am:bw:\ + :co#80:dN#20:li#24:pb#150:\ + :al=10\Ei:bc=^H:ce=10\Eq:cl=10\E\006:\ + :cm=20\E\013%2\054%2\054:cr=^M:dc=10*\177:dl=10*\Ed:\ + :do=^J:ei=:ho=\E^E:ic=5\E\n:im=:kd=^J:kh=\E^E:kl=^B:kr=^F:\ + :ku=^P:nd=^F:nl=^M:ta=5\011:up=^P: + +#### North Star +# +# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL +northstar|North Star Advantage:\ + :bs:\ + :co#80:li#24:\ + :cd=200\017:ce=200\016:cl=200\004:cm=1\E=%+ %+ :\ + :ho=200\034\032: + +#### Osborne +# +# Thu Jul 7 03:55:16 1983 +# +# As an aside, be careful; it may sound like an anomaly on the +# Osborne, but with the 80-column upgrade, it's too easy to +# enter lines >80 columns! +# +# I've already had several comments... +# The Osborne-1 with the 80-col option is capable of being +# 52, 80, or 104 characters wide; default to 80 for compatibility +# with most systems. +# +# The tab is destructive on the Ozzie; make sure to 'stty -tabs'. +osborne-w|osborne1-w|osborne I in 104-column mode:\ + :ms:ul:xt:\ + :co#104:li#24:\ + :al=\EE:bl=^G:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:\ + :do=^J:ei=:ic=\EQ:im=:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\ + :se=\E(:sf=^J:so=\E):ue=\Em:up=^K:us=\El: +# Osborne I from ptsfa!rhc (Robert Cohen) via BRL +osborne|osborne1|osborne I in 80-column mode:\ + :am:bs:mi:ms:ul:xs:\ + :co#80:dB#4:li#24:\ + :al=\EE:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=4\EW:dl=\ER:do=^J:ei=:\ + :im=\EQ:is=^Z:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=\010:nd=^L:\ + :se=\E):so=\E(:ue=\Em:up=^K:us=\El: +# +# Osborne Executive definition from BRL +# Similar to tvi920 +# Added by David Milligan and Tom Smith (SMU) +osexec|Osborne executive:\ + :am:bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ + :is=\Eq\Ek\Em\EA\Ex0:k0=^A@\r:k1=^AA\r:k2=^AB\r:k3=^AC\r:\ + :k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:\ + :kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:nl=^J:se=\Ek:\ + :so=\Ej:st=\E1:ue=\Em:up=^K:us=\El: + +#### Console types for obsolete UNIX clones +# +# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088 +# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix +# were commercial, Minix an educational tool sold in conjunction with a book. +# Memory-segmentation limits and a strong tendency to look like V7 long after +# it was obsolete made all three pretty lame. Venix croaked early. Coherent +# and Minix were ported to 32-bit Intel boxes, only to be run over by a +# steamroller named `Linux' (which, to be fair, traces some lineage to Minix). +# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There +# are also, I'm told, Minix ports that ran on Amiga and Atari machines and +# even as single processes under SunOS and the Macintosh OS. +# + +# This is the entry provided with minix 1.7.4, with bogus :ri: removed. +minix|minix console (v1.7):\ + :am:xn:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\ + :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E[0m:k0=\E[Y:\ + :k1=\E[V:k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=End:l1=PgUp:l2=PgDn:\ + :l3=Num +:l4=Num -:l5=Num 5:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil> +minix-old|minix console (v1.5):\ + :xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\ + :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k0=\E[Y:k1=\E[V:\ + :k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:\ + :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +# The linewrap option can be specified by editing /usr/include/minix/config.h +# before recompiling the minix 1.5 kernel. +minix-old-am|minix console with linewrap:\ + :am:tc=minix-old: + +pc-minix|minix console on an Intel box:\ + :tc=klone+acs:tc=minix: + +# According to the Coherent 2.3 manual, the PC console is similar +# to a z19. The differences seem to be (1) 25 lines, (2) no status +# line, (3) standout is broken, (4) ins/del line is broken, (5) +# has blinking and bold. +pc-coherent|pcz19|coherent|IBM PC console running Coherent:\ + :am:mi:\ + :co#80:it#8:li#25:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:\ + :do=\EB:ei=\EO:ho=\EH:im=\E@:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:me=\Eq:nd=\EC:se=\Eq:sf=^J:so=\Ep:\ + :sr=\EI:ta=^I:up=\EA: + +# According to the Venix 1.1 manual, the PC console is similar +# to a DEC vt52. Differences seem to be (1) arrow keys send +# different strings, (2) enhanced standout, (3) added insert/delete line. +# Note in particular that it doesn't have automatic margins. +# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they +# not described here because this derives from an old termcap entry. +pc-venix|venix|IBM PC console running Venix:\ + :co#80:it#8:li#25:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ + :dl=\EM:do=^J:kb=^H:kd=\EP:kh=\EG:kl=\EK:kr=\EM:ku=\EH:le=^H:\ + :nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: + +#### Miscellaneous microcomputer consoles +# +# If you know anything more about any of these, please tell me. +# + +# The MAI Basic Four computer was obsolete at the end of the 1980s. +# It may be used as a terminal by putting it in "line" mode as seen on +# one of the status lines. +# Initialization is similar to CIT80. :is: will set ANSI mode for you. +# Hardware tabs set by :if: at 8-spacing. Auto line wrap causes glitches so +# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I +# used \ED instead. +# From: bf347@lafn.org (David Lawyer), 28 Jun 1997 +mai|basic4|MAI Basic Four in ansi mode:\ + :am:da:db:mi:ms:\ + :co#82:it#8:li#25:\ + :al=\E[L:bl=^G:cd=^_:ce=^^:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[1P:dl=\E[M:do=^J:ei=\E[4l:ho=^]:\ + :if=/usr/lib/tabset/vt100:im=\E[4h:\ + :is=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:\ + :k8=\EOW:kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=^X:nw=^M\ED:rc=\E8:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=^Z:\ + :us=\E[4m:ve=\E[?7h:vs=\E[?7l: +# basis from Peter Harrison, Computer Graphics Lab, San Francisco +# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA +# +# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote: +# The Basis 108 was a Apple II clone, manufactured by the "Basis +# Mikrocomputer GmbH" in Munster, Germany (the company still exists today, +# about 1,5 km from where I live, but doesn't build own computers any +# more). A Basis 108 featured a really heavy (cast aluminium?) case, was +# equipped with one or two 5.25" disk drives, had a monochrome and colour +# video output for a TV set or a dedicated monitor and several slots for +# Apple II cards. Basis 108 were quite popular at german schools before +# the advent of the IBM PC. They run, for example, the UCSD Pascal +# development system (which I used even in 1993 to program the steering +# and data recording for our school's experimental solar panel :), Apple DOS +# or CP/M. +# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr) +basis|BASIS108 computer with terminal translation table active:\ + :cd=\EY:ce=\ET:cl=300\E*:do=5000\n:kb=^H:kd=^J:kl=^H:kr=^L:\ + :ku=^K:me=\E):se=\E):so=\E(:\ + :tc=adm3a: +# luna's BMC terminal emulator +luna|luna68k|LUNA68K Bitmap console:\ + :co#88:li#46:tc=ansi-mini: +megatek|pegasus workstation terminal emulator:\ + :am:os:\ + :co#83:li#60: +# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived +# interface (pre-Macintosh by several years) that went nowhere. +xerox820|x820|Xerox 820:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^Q:ce=^X:cl=1^Z:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ + :le=^H:nd=^L:sf=^J:up=^K: + +#### Videotex and teletext +# + +# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998 +# +minitel1|minitel 1:\ + :am:bw:es:hs:hz:ms:\ + :Co#8:co#40:li#24:pa#8:\ + :..Sf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;:\ + :ac=+.\054\054./f0g1:bl=^G:ce=^X:cl=^L:cm=\037%+A%+A:\ + :cr=^M:do=^J:eA=^Y:fs=^J:ho=^^:\ + :is=\E;`ZQ\E\072iC\E\072iE\021:le=^H:mb=\EH:me=\EI\E\:\ + :mr=\E]:nd=^I:nw=^M^J:op=\EG:rp=%.\022%+?:\ + :..sa=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;:se=\E\:\ + :sf=^J:so=\E]:sr=^K:ts=\037@%p1%{65}%+%c:up=^K:ve=^Q:vi=^T: +# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON. +minitel1b|minitel 1-bistandard (in 40cols mode):\ + :mi:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:cb=\E[1K:cd=\E[J:dc=\E[P:\ + :dl=\E[M:ei=\E[4l:i1=\E;iYA\E;jYC:im=\E[4h:kA=\E[L:\ + :kC=\E[2J:kD=\E[P:kE=^X:kI=\E[4h:kL=\E[M:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ks=\E;iYA\E;jYC:kt=^I:ku=\E[A:\ + :tc=minitel1: +# :ke: posait des problemes (logout en sortant de vi). +minitel1b-80|minitel 1-bistandard (standard teleinformatique):\ + :am@:bw@:hz@:\ + :Co@:co#80:it#8:pa@:\ + :@8=\EOM:Sf@:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:ho=\E[H:\ + :i1@:is@:k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:\ + :k6=\EOv:k7=\EOw:k8=\EOx:k9=\EOy:ke@:ks@:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:op@:rc=\E8:rp@:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ + :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[24m:\ + :up=\E[A:us=\E[4m:ve=\037@A\021\n:vi=\037@A\024\n:\ + :tc=minitel1b: +# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429) +# \E[?3l 80 columns +# \E[?4l scrolling on +# \E[12h local echo off +# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen +# \E)0 G1 DEC set (line graphics) +# +# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997 +m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique:\ + :bs:es:hs:xn:\ + :co#80:it#8:li#24:sg#0:ws#72:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=^J:SR=\EM:UP=\E[%dA:\ + :ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:ae=^O:al=\E[L:\ + :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :fs=^J:ho=\E[H:i1=\E\0721}\Ec\E[?4l\E[12h:\ + :i2=\E[?3l kbs=\010:im=\E[4h:ip=7:is=\Ec\E[12h\E)0:\ + :k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:k6=\EOv:\ + :k7=\EOw:k8=\EOx:k9=\EOy:k;=\EOp:kA=\E[4l:kC=\E[2J:kD=\E[P:\ + :kI=\E[4h:kL=\E[M:kN=\EOn:kP=\EOR:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;80H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:ps=\E[i:\ + :r1=\Ec\E[?4l\E[12h:r2=\Ec\E)0:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:ta=^I:ts=^_@A:u6=\E[%i%d;%dR:\ + :u7=\E[6n:ue=\E[24m:up=\E[A:us=\E[4m:vb=^G:ve=\E[<1l:\ + :vi=\E[<1h: + +######## OBSOLETE VDT TYPES +# +# These terminals are *long* dead -- these entries are retained for +# historical interest only. + +#### Amtek Business Machines +# + +# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y", +# but these caps were commented out in 8.3; also, removed overridden +# ":do=^J:" -- esr) +abm80|amtek business machines 80:\ + :am:bs:bw:\ + :co#80:li#24:\ + :al=\E^Z:bt=^T:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%+ %+ :\ + :dl=\E^S:do=\E^K:ho=\E^R:le=^H:nd=^P:up=\E^L: + +#### Bell Labs blit terminals +# +# These were AT&T's official entries. The 5620 FAQ maintained by +# David Breneman <daveb@dgtl.com> has this to say: +# +# Actually, in the beginning was the Jerq, and the Jerq was white with a +# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq +# was good. But lo, upon the horizon loomed a mighty management-type person +# (known now only by the initials VP) who said, the mighty Jerq must stay +# alone, and could not go forth into the world. So Locanthi and Pike put the +# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the +# world. And the Jerq lived the rest of its days in research, but never +# strayed from those paths. +# +# In all seriousness, the Blit was originally known as the Jerq, but when +# it started to be shown outside of the halls of the Bell Labs Research +# organization, the management powers that be decided that the name could +# not remain. So it was renamed to be Blit. This was in late 1981. +# +# (The AT&T 5620 was the commercialized Blit. Its successors were the 630, +# 730, and 730+.) +# + +blit|jerq|blit running teletype rom:\ + :am:eo:ul:xo:\ + :co#87:it#8:li#72:\ + :AL=\EF%+ :DC=\Ee%+ :DL=\EE%+ :IC=\Ef%+ :al=\EF\041:bl=^G:\ + :ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\Ee\041:dl=\EE\041:\ + :do=^J:ei=:ic=\Ef\041:im=:k1=\Ex:k2=\Ey:k3=\Ez:kb=^H:kd=\EB:\ + :kl=\ED:kr=\EC:ku=\EA:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA: + +# (cbblit: here's a BSD termcap that says :do=\EG: -- esr) +cbblit|fixterm|blit running columbus code:\ + :co#88:\ + :cd=\EJ:ei=\ER:ic@:im=\EQ:pO=\EP%03:pf=^T:po=^R:se=\EV\041:\ + :so=\EU\041:ue=\EV":us=\EU":vb=\E^G:\ + :tc=blit: + +oblit|ojerq|first version of blit rom:\ + :am:da:db:eo:mi:ul:xo:\ + :co#88:it#8:li#72:\ + :AL=\Ef%+ :DL=\Ee%+ :al=\EF:bl=^G:cd=\EJ:ce=\EK:cl=^L:\ + :cm=\EY%r%+ %+ :cr=^M:dc=\EO:dl=\EE:do=^J:ei=\ER:im=\EQ:\ + :kb=^H:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:vb=\E^G: + +#### Bolt, Beranek & Newman (bbn) +# +# The BitGraph was a product of the now-defunct BBN Computer Corporation. +# The parent company, best known as the architects of the Internet, is +# still around. +# +# Jeff DelPapa <dp@world.std.com> writes: +# The bitgraph was a large white box that contained a monochrome bitmap +# display, and a 68000 to run it. You could download code and run it on +# the cpu, it had 128kb (I think) of memory. I used one in the late +# 70's, sure beat a vt100. It had one strange feature tho -- it used +# the cpu to bitblt pixels to scroll, it took longer than the refresh +# rate, and looked like a rubber sheet stretching, then snapping +# upwards. It had everything the early mac had, except a floppy drive a +# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt +# Beranek and Neuman) sold at most a few hundred of them to the real +# world. DOD may have bought more... +# + +# Entries for the BitGraph terminals. The problem +# with scrolling in vi can only be fixed by getting BBN to put +# smarter scroll logic in the terminal or changing vi or padding +# scrolls with about 500 ms delay. +# +# I always thought the problem was related to the terminal +# counting newlines in its input buffer before scrolling and +# then moving the screen that much. Then vi comes along and +# paints lines in on the bottom line of the screen, so you get +# this big white gap. + +bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\ + :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:\ + :tc=bg2.0: +bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video):\ + :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg2.0: +bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init):\ + :bs:xn:\ + :co#85:li#64:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=%i\E[%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dl=\E[M:do=\E[B:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:\ + :ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:me=\E[m:nd=\E[C:\ + :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A: + +bg1.25rv|bbn bitgraph 1.25 (reverse video):\ + :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg1.25: +bg1.25nv|bbn bitgraph 1.25 (normal video):\ + :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg1.25: +# (bg1.25: I added <rmam>/<smam> based on the init string -- esr) +bg1.25|bbn bitgraph 1.25:\ + :co#85:li#64:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=%i\E[%d;%dH:cr=^M:dl=\E[M:do=\E[B:k1=\EP:\ + :k2=\EQ:k3=\ER:k4=\ES:kd=\EB:ke=\E>:kl=\ED:kr=\EC:ks=\E=:\ + :ku=\EA:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:ll=\E[64;1H:\ + :me=\E[m:nd=\E[C:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A: + +#### Bull (bq, dku, vip) +# +# (Adapted for terminfo; AIX extension capabilities translated -- esr) + +#============================================# +# BULL QUESTAR 210 `SDP' terminals emulation # +#============================================# +# +# Description written by R.K.Saunders (Bull Transac) +# +# Modifications written by F. Girard (Bull MTS) +# 19-05-87 V02.00.01 +# 17-12-87 V02.00.02 +# 15-09-89 V02.00.05 +# +# Typical technical selections F1 (modes SDP/ROLL): +# ------------------------------------------------------- +# | 01 02 03 04 05 06 07 08 09 10 | +# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 | +# | | +# | 11 12 13 14 15 16 17 18 19 20 | +# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 | +# | | +# | 21 22 23 24 25 26 27 28 29 30 | +# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 | +# | | +# | 31 32 33 34 35 36 37 38 39 40 | +# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 | +# ------------------------------------------------------- +# Typical firmware identification F5 "etat 6": +# P287.02.04b (AZERTY) +# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764) +# P298.03.03 (monochrome) or P374.03.02 (colour) +# +# SM SDP mode (VIP command): ^[[?=h +# RIS (erases screen): ^[c +# DMI disable keyboard: ^[` +# SM double rendition mode: ^[[?>h +# RM solicited status mode: ^[[5l +# RM character mode: ^[[>l +# RM echoplex mode: ^[[12l +# RM column tab mode: ^[[18l +# RM forbid SS2 keyboard mode: ^[[?<l +# SM scroll mode: ^[[=h +# FCF enable XON/XOFF: ^[P1s^[\ +# MTL select end msg character: ^[[^Wp +# EMI enable keyboard: ^[b +# RIS retour etat initial: ^[c +# enable FC keypad: ^[[?<h, +# MPW map status line window: ^[PY99:98^[\ +# SCP select status line: ^[[0;98v +# ED erase entire partition: ^[[2J +# SCP select main partition: ^[[v +# SM character insertion mode: ^[[4h +# RM character replacement mode: ^[[4l +# COO cursor on: ^[[r +# COO cursor off: ^[[1r +# SGR dim (turquoise) rev attr: ^[[2;7m +# SGR Data normal attr: ^[[m +# SO Line-graphic mode ON: ^N +# SI Line-graphic mode OFF: ^O +# MC start routing to printer: ^[[5i +# MC stop routing to printer: ^M^[[4i +# + +# This entry covers the following terminals: +# dku7102, tws2102, and tws models 2105 to 2112 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +tws-generic|dku7102|Bull Questar tws terminals:\ + :am:es:hs:mi:ms:xn:xo:xs@:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%df:cr=^M:ct=\E[2g:\ + :dc=\E[P:dl=\E[M:do=^J:\ + :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[v:ei=\E[4l:fs=\E[v:\ + :ho=\E[H:i1=\E[?=h\Ec\E`\E[?>h\EPY99\07298\E\:\ + :i2=\Eb\E[?<h:im=\E[4h:\ + :is=\E[5;>;12;18;?<l\E[=h\EP1s\E\\E[\027p:\ + :k1=\E[1u\027:k2=\E[2u\027:k3=\E[3u\027:k4=\E[4u\027:\ + :k5=\E[5u\027:k6=\E[6u\027:k7=\E[7u\027:k8=\E[8u\027:\ + :kD=\E[P:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:ll=\E[H\E[A:mb=\E[0;5m:me=\E[m\017:mh=\E[0;2m:\ + :mr=\E[0;7m:nd=\E[C:se=\E[m:sf=^J:so=\E[0;7m:st=\EH:\ + :ta=\E[I:te=\E[0;98v\E[2J\E[v:ti=\E[?>h\EPY99\07298\E\:\ + :ts=\EPY99\07298\E\\E[0;98v\E[2;7m:ue=\E[m:up=\E[A:\ + :us=\E[0;4m:ve=\E[r:vi=\E[1r: +tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA:\ + :ds=\E[0;98v\E[2J\E[v:fs=\E[v:i2=\Eb:ts=\E[0;98v:\ + :tc=tws-generic: +tws2103|xdku|BULL Questar tws2103:\ + :ta=^I:tc=tws-generic: +tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA:\ + :ta=^I:\ + :tc=tws2102-sna: +dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6):\ + :AL@:DL@:al@:ce=\E[K\E[m:cl=\E[2J\E[H:cm@:dl@:\ + :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[H\E[v:\ + :ts=\EPY99\07298\E\\E[0;98v\E[H\E[2;7m:\ + :tc=tws-generic: +dku7202|BULL Questar 200 DKU7202 (colour/character attributes):\ + :i2=\E[?3h\Eb:mb=\E[0;2;4m:mh=\E[0;5m:so=\E[0;4;5;7m:\ + :ta=^I:us=\E[0;2m:\ + :tc=tws-generic: + +#=========================================================# +# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation # +#=========================================================# +# +# Description written by J. Staerck (BULL SA) +# Copyright (c) 1989 BULL SA +#--------------------------------------------------------------------------- +# This entry is used for terminals with vt320 emulation mode +# and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 7 bit Control Characters, +# 80 columns screen. +# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300) +# They are used in string capabilities with vt220-320 emulation mode. +# In the following DEC definitions, two kinds of terminfo databases are +# provided : +# 1. the first with Command Sequence Introducer starting with escape +# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode. +# 2. the second with Command Sequence Introducer starting with escape +# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B. +# Soft Terminal Reset esc [ ! p +# RIS (erases screen): esc c +# DECKPNM numeric keypad mode: esc > +# DECKPAM applic. keypad mode: esc = +# DECSTBM Scrolling region: esc [ r +# SCS select G0 = US: esc ( B +# SCS select G1 = line-graphic: esc ) 0 +# Select 7-bit C1 controls: esc sp F +# Select 8-bit C1 controls: esc sp G +# Select cursor home: esc [ H +# Select erase screen: esc [ J +# SM KAM lock keyboard: esc [ 2 h +# RM KAM unlock keyboard: esc [ 2 l +# SM SRM local echo off: esc [ 1 2 h +# RM SRM local echo on: esc [ 1 2 l +# SM LNM New line : esc [ 2 0 h +# RM LNM return = CR only: esc [ 2 0 l +# SM DECCKM cursor keys mode: esc [ ? 1 h +# RM DECCKM appli. keys mode: esc [ ? 1 l +# SM DECANM ANSI mode on: esc [ ? 2 h +# RM DECANM ANSI mode off: esc [ ? 2 l +# SM DECCOLM 132-column screen: esc [ ? 3 h +# RM DECCOLM 80-column screen: esc [ ? 3 l +# SM DECSCLM Smooth scroll: esc [ ? 4 h +# RM DECSCLM Jump scroll: esc [ ? 4 l +# SM DECSCNM screen light backgr. esc [ ? 5 h +# RM DECSCNM screen dark backgr. esc [ ? 5 l +# SM DECOM move within margins: esc [ ? 6 h +# RM DECOM move outside margins: esc [ ? 6 l +# SM DECAWM auto right margin: esc [ ? 7 h +# RM DECAWM auto right margin: esc [ ? 7 l +# SM DECARM auto repeat: esc [ ? 8 h +# RM DECARM auto repeat: esc [ ? 8 l +# DECSASD Select active main: esc [ 0 $ } +# DECSASD Select active status: esc [ 1 $ } +# DECSSDT Select status none: esc [ 0 $ ~ +# DECSSDT Select status indic.: esc [ 1 $ ~ +# DECSSDT Select status host-wr: esc [ 2 $ ~ +# SM DECTCEM Visible cursor: esc [ ? 2 5 h +# RM DECTCEM Invisible cursor: esc [ ? 2 5 l +# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h +# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l +# SM DECNKM numeric keypad mode: esc [ ? 6 6 h +# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l +# SM DECKBUM clavier informatique esc [ ? 6 8 h +# RM DECKBUM clavier bureautique: esc [ ? 6 8 l +# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p +# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p +# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p +# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p +# Char. and Line attributes: esc [ Ps ... Ps m +# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse +# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off +# + +# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +bq300|Bull vt320 ISO Latin 1 80 columns terminal:\ + :am:eo:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ds=\E[1$}\E[2$~\n\E[0$}:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\ + :ho=\E[H:i1=\E[63;1"p\E[2h:\ + :i2=\E[0$}\E[?25h\E[2l\E[H\E[J:im=\E[4h:\ + :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m\E(B:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:te=\E[?7h:ti=\E[?7l\E[?1l\E(B:\ + :ts=\E[1$}\E[2$~:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: +bg300-rv|Bull vt320 reverse 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300: +bq300-w|Bull vt320 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300: +bq300-w-rv|Bull vt320 reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300: + +# This entry is used for terminals with vt320 emulation mode +# and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 8 bit Control Characters, (CSI coded as x9B for ESC [) +# 80 columns screen. +# Soft Terminal Reset csi ! p +# RIS (erases screen): esc c +# DECKPNM numeric keypad mode: esc > +# DECKPAM applic. keypad mode: esc = +# DECSTBM Scrolling region: esc [ r +# SCS select G0 = US: esc ( B +# SCS select G1 = line-graphic: esc ) 0 +# Select 7-bit C1 controls: esc sp F +# Select 8-bit C1 controls: esc sp G +# Select cursor home: csi H +# Select erase screen: csi J +# SM KAM lock keyboard: csi 2 h +# RM KAM unlock keyboard: csi 2 l +# SM SRM local echo off: csi 1 2 h +# RM SRM local echo on: csi 1 2 l +# SM LNM New line : csi 2 0 h +# RM LNM return = CR only: csi 2 0 l +# SM DECCKM cursor keys mode: csi ? 1 h +# RM DECCKM appli. keys mode: csi ? 1 l +# SM DECANM ANSI mode on: csi ? 2 h +# RM DECANM ANSI mode off: csi ? 2 l +# SM DECCOLM 132-column screen: csi ? 3 h +# RM DECCOLM 80-column screen: csi ? 3 l +# SM DECSCLM Smooth scroll: csi ? 4 h +# RM DECSCLM Jump scroll: csi ? 4 l +# SM DECSCNM screen light backgr. csi ? 5 h +# RM DECSCNM screen dark backgr. csi ? 5 l +# SM DECOM move within margins: csi ? 6 h +# RM DECOM move outside margins: csi ? 6 l +# SM DECAWM auto right margin: csi ? 7 h +# RM DECAWM auto right margin: csi ? 7 l +# SM DECARM auto repeat: csi ? 8 h +# RM DECARM auto repeat: csi ? 8 l +# DECSASD Select active main: csi 0 $ } +# DECSASD Select active status: csi 1 $ } +# DECSSDT Select status none: csi 0 $ ~ +# DECSSDT Select status indic.: csi 1 $ ~ +# DECSSDT Select status host-wr: csi 2 $ ~ +# SM DECTCEM Visible cursor: csi ? 2 5 h +# RM DECTCEM Invisible cursor: csi ? 2 5 l +# SM DECNCRM 7 bits NCR set: csi ? 4 2 h +# RM DECNCRM Multi or ISO latin: csi ? 4 2 l +# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p +# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p +# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p +# Char. and Line attributes: csi Ps ... Ps m +# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse +# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off +# (bq300-8: :le:,:nd:,:up:,:do:,:dl:,:al: to get under 1024 --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +bq300-8|Bull vt320 full 8 bits 80 columns:\ + :am:eo:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :K1=\217w:K2=\217u:K3=\217y:K4=\217q:K5=\217s:LE=\233%dD:\ + :RI=\233%dC:UP=\233%dA:ae=^O:as=^N:bl=^G:cd=\233J:ce=\233K:\ + :cl=\233H\233J:cm=\233%i%d;%dH:cr=^M:cs=\233%i%d;%dr:\ + :ct=\2333g:dc=\233P:ds=\2331$}\2332$~\n\2330$}:\ + :ec=\233%dX:ei=\2334l:fs=\2330$}:ho=\233H:\ + :i1=\E[63;2"p\E[2h:i2=\2330$}\233?25h\2332l\233H\233J:\ + :im=\2334h:\ + :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :k1=\217P:k2=\217Q:k3=\217R:k4=\217S:k6=\23317~:\ + :k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:\ + :kN=\2336~:kP=\2335~:kb=^H:kd=\233B:ke=\233?1l\E>:\ + :kl=\233D:kr=\233C:ku=\233A:mb=\2335m:md=\2331m:\ + :me=\2330m\E(B:mr=\2337m:nw=\EE:rc=\E8:sc=\E7:se=\23327m:\ + :sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:te=\233?7h:\ + :ti=\233?7l\233?1l\E(B:ts=\2331$}\2332$~:ue=\23324m:\ + :us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:vi=\233?25l:\ + :vs=\233?25h: +bq300-8rv|Bull vt320 8-bit reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :vb=\233?5l\233?5h:\ + :tc=bq300-8: +bq300-8w|Bull vt320 8-bit 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\233?3h:\ + :tc=bq300-8: +bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\233?3h:vb=\233?5l\233?5h:\ + :tc=bq300-8: + +# This entry is used for terminals with vt320 emulation mode +# a 102 keys keyboard (PC scancode !) and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 7 bit Control Characters, +# 80 columns screen. +bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\ + :%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\ + :F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\ + :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:\ + :k;=\E[28~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\ + :kh=\E[1~:l1@:l2@:l3@:l4@:\ + :tc=bq300: +bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300-pc: +bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300-pc: +bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300-pc: +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 8 bit Control Characters, +# 80 columns screen. +bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\ + :%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\ + :F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\ + :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\ + :k9=\23326~:k;=\23328~:kD=\2333~:kI=\2332~:kN=\2336~:\ + :kP=\2335~:kb=^H:kh=\2331~:l1@:l2@:l3@:l4@:\ + :tc=bq300-8: +bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300-8-pc: +bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300-8-pc: +bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300-8-pc: + +#======================================================# +# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation # +#======================================================# + +# normal mode, 8 bits, 80 columns terminal. +# RES reset : ^[e +# RIS reset initial state: ^[c +# BLE bell enable ^[h +# BLD bell disable ^[g +# CAMS char. attr. mode set ^[[D +# CAMR char. attr. mode reset ^[[G +# CLR clear ^[` +# KBU keyboard unlock (set) ^[[W +# KBL keyboard lock (reset) ^[[X +# CM character mode (async.) ^[k +# NEP non echoplex mode (by host) ^[l +# EP echoplex mode (by host) ^[m +# IM insert mode set ^[[I +# IM insert mode reset ^[[J +# RMS roll mode set ^[r +# RMR roll mode reset ^[q +# SM78 set mode vip7800 ^[[1q +# SD scroll up (72 lines) ^[[0s +# SD scroll down (72 lines) ^[[1s +# RBM block mode reset ^[[E +# SLS status line set ^[w +# SLR status line reset ^[v +# SLL status line lock ^[O +# LGS Line-graphic mode set ^[G +# LGR Line-graphic mode reset ^[F +# TBC tab clear (at cursor pos.) ^[[g +# TBI tab initialize ^[[N +# TBS tab set (at cursor pos.) ^[p +# PDS print data space ^[[0p +# PHD print host data ^[[3p +# PDT print data terminator ^[[<p +# PRES print adapter reset ^[[2p +# SSPR multi-part. reset ^[[<>u +# SSP0 partition 0 set ^[[00u +# SSP1 partition n format 1 ^[[PnPnSTRINGu +# SSP2 partition n format 2 ^[[PnPnSTRINGu +# SSP3 partition n format 3 ^[[PnPnu +# ATR attribute (visual) +# blink : ^[sB +# dim : ^[sL +# hide (blank) : ^[sH +# restore : ^[sR +# inverse video : ^[sI +# prot. : ^[sP +# underline : ^[s_ +# reset : ^{ +# +# This covers the vip7800 and BQ3155-vip7800 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vip|Bull Questar 3155-7800:\ + :am:es:hs:km:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :ae=\EF:as=\EG:bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E`:\ + :cm=\E[%i%03%03f:cr=^M:ct=\E[N:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\Ev:ei=\E[J:fs=\EO:ho=\EH:i2=\Er\E[W\E`:ic=\E[I:\ + :im=\E[I:is=\E[00u\E[<>001001024080024080u\E[01u:\ + :k1=\E0:k2=\E2:k3=\E6:k4=\E8:k5=\E\072:k6=\E<:k7=\E>:k8=\EP:\ + :k9=\ER:kD=\E[P:kH=\EH\EA:kI=\E[I:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:ll=\EH\EA:mb=\EsB:\ + :me=\EsR\EsU\EF:mh=\EsL:mr=\EsI:nd=\EC:nw=^M:se=\EsR:sf=^J:\ + :so=\EsI:sr=\EA\EJ\EH\E[L:st=\Ep:ta=^I:ts=\Ew:ue=\EsR:\ + :up=\EA:us=\Es_:vb=\007\007\007: +# normal screen, 8 bits, 132 columns terminal. +vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide:\ + :co#132:ws#132:\ + :is=\E[00u\E[<>001001024132024132u\E[01u:tc=vip: +vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines:\ + :li#72:\ + :is=\E[00u\E[<>001001024080072080u\E[01u:tc=vip: +vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines:\ + :co#132:li#72:ws#132:\ + :is=\E[00u\E[<>001001024132072132u\E[01u:tc=vip: +#### Chromatics +# + +# I have put the long strings in :ti:/:te:. Ti sets up a window +# that is smaller than the screen, and puts up a warning message +# outside the window. Te erases the warning message, puts the +# window back to be the whole screen, and puts the cursor at just +# below the small window. I defined :ve: and :vi: to really turn +# the cursor on and off, but I have taken this out since I don't +# like the cursor being turned off when vi exits. +cg7900|chromatics|chromatics 7900:\ + :am:\ + :co#80:li#40:\ + :al=^A>2:bl=^G:cd=^Al:ce=^A`:cl=^L:cm=\001M%r%d\054%d\054:\ + :cr=^M:dc=^A<1:dl=^A<2:do=^J:ei=:ho=^\:ic=^A>1:im=:le=^H:\ + :ll=^A|:nd=^]:se=\001C1\054\001c2\054:sf=^J:\ + :so=\001C4\054\001c7\054:\ + :te=\001W0\05440\05485\05448\054\014\001W0\0540\05485\05448\054\001M0\05440\054:\ + :ti=\001P0\001O1\001R1\001C4\054\001c0\054\014\001M0\05442\054WARNING DOUBLE ENTER ESCAPE and \025\001C1\054\001c2\054\001W0\0540\05479\05439\054:\ + :uc=\001\001_\001\0:up=^K: + +#### Computer Automation +# + +ca22851|computer automation 22851:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^\:ce=^]:cl=\014:cm=\002%i%.%.:cr=^M:do=^J:ho=^^:\ + :kd=^W:kh=^^:kl=^U:ku=^V:le=^U:nd=^I:sf=^J:up=^V: + +#### Cybernex +# + +# This entry has correct padding and the undocumented "ri" capability +cyb83|xl83|cybernex xl-83:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\020:ce=\017:cl=\014:cm=\027%+ %+ :cr=^M:do=^J:\ + :ho=^K:kd=^J:kl=^H:kr=^I:ku=^N:le=^H:nd=^I:sf=^J:sr=^N:up=^N: +# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr) +cyb110|mdl110|cybernex mdl-110:\ + :am:bs:\ + :co#80:li#24:\ + :al=\016A\016\035:bl=^G:cd=\016@\026:ce=\016@\026:\ + :cl=\030:cm=\020%+ %+ :cr=^M:dc=\016A\036:\ + :dl=\016A\016\036:do=^J:ei=:ho=^Y:ic=\016A\035:im=:le=^H:\ + :nd=^U:se=^NG:sf=^J:so=^NF:ta=\011:up=^Z: + +#### Datapoint +# +# Datapoint is gone. They used to be headquartered in Texas. +# They created ARCnet, an Ethernet competitor that flourished for a while +# in the early 1980s before 3COM got wise and cut its prices. The service +# side of Datapoint still lives (1995) in the form of Intelogic Trace. +# + +dp3360|datapoint|datapoint 3360:\ + :am:bs:\ + :co#82:li#25:\ + :bl=^G:cd=^_:ce=^^:cl=^]^_:cr=^M:do=^J:ho=^]:le=^H:nd=^X:\ + :sf=^J:up=^Z: + +# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997 +# The Datapoint 8242 Workstation was sold at least between 1985 +# and 1989. To make the terminal work with this entry, press +# CONTROL-INT-INT to take the terminal off-line, and type (opt). +# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO +# CR/LF off. Use control-shift-[] as escape key, control-I as tab, +# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in +# fact unusable because the strings sent by the terminal conflict +# with other keys). +# The terminal is capable of displaying "box draw" characters. +# For each graphic character you must send 2 ESC's (\E\E) followed +# by a control character as follows: +# character meaning +# ========= ======= +# ctrl-E top tee +# ctrl-F right tee +# ctrl-G bottom tee +# ctrl-H left tee +# ctrl-I cross +# ctrl-J top left corner +# ctrl-K top right corner +# ctrl-L bottom left corner +# ctrl-M bottom right corner +# ctrl-N horizontal line +# ctrl-O vertical line +# Unfortunately this cannot be fitted into the termcap/terminfo +# description scheme. +dp8242|datapoint 8242:\ + :ms:\ + :co#80:li#25:\ + :al=\E^T:bl=^G:cd=^W:ce=^V:cl=\025\E\004\027\030:\ + :cm=\011%r%+\%+\:cr=^M:dl=\E^Z:do=^J:ho=^U:\ + :i1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\ + :k1=^G\Ee:k2=^I\Ed:k3=^J\Ec:k4=^J\Eb:k5=^S\Ea:k6=\EO\Ee:\ + :k7=\EN\Ed:k8=\EM\Ec:k9=\EL\Eb:k;=\EK\Ea:kb=^H:kd=^B:kl=^D:\ + :kr=^F:ku=^E:le=^H:nw=^M^J:\ + :r1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\ + :rp=\E\023%.%.:se=\E^D:sf=^C:so=\E^E:sr=^K:ta=^I:ue=\E^D:\ + :us=\E^F:ve=^X:vi=^Y:\ + :..wi=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025: + +#### DEC terminals (Obsolete types: DECwriter and vt40/42/50) +# +# These entries are DEC's official terminfos for its older terminals. +# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support +# Engineering for more information. Updated terminfos and termcaps +# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. +# + +gt40|dec gt40:\ + :bs:os:\ + :co#72:li#30:\ + :bl=^G:cr=^M:do=^J:le=^H: +gt42|dec gt42:\ + :bs:os:\ + :co#72:li#40:\ + :bl=^G:cr=^M:do=^J:le=^H: + +vt50|dec vt50:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cr=^M:do=^J:le=^H:nd=\EC:\ + :sf=^J:ta=^I:up=\EA: +vt50h|dec vt50h:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:\ + :le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: +# (<acsc>/:ae:/:as: capabilities aren't in DEC's official entry -- esr) +vt52|dec vt52:\ + :bs:\ + :co#80:it#8:li#24:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ + :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ + :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA: + +# (vt61: there's a BSD termcap that claims :dl=\EPd:, :al=\EPf.: :kb=^H:) +vt61|vt-61|vt61.5|dec vt61:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=\r:do=^J:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:sf=\n:sr=\EI:ta=^I:\ + :up=\EA: + +# The gigi does standout with red! +# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr) +gigi|vk100|dec gigi graphics terminal:\ + :am:bs:xn:\ + :co#84:li#24:\ + :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=^J:so=\E[7;31m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: + +# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce +# a PC differentiated from the IBM clones. It was a total, ludicrous, +# grossly-overpriced failure (among other things, DEC's OS didn't include +# a format program, so you had to buy pre-formatted floppies from DEC at +# a hefty premium!). +pro350|decpro|dec pro console:\ + :bs:\ + :co#80:it#8:li#24:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\EG:as=\EF:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :do=\EB:\ + :ho=\EH:k0=\EE:k1=\EF:k2=\EG:k3=\EH:k4=\EI:k5=\EJ:k6=\Ei:\ + :k7=\Ej:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :se=\E^N:so=\E^H:sr=\EI:ta=^I:ue=\E^C:up=\EA:us=\E^D: + +dw1|decwriter I:\ + :bs:hc:os:\ + :co#72:\ + :bl=^G:cr=^M:do=^J:le=^H:sf=^J: +dw2|decwriter|dw|decwriter II:\ + :bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J: +# \E(B Use U.S. character set (otherwise # => british pound !) +# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v) +# \E[w 10 char/in pitch +# \E[1;132 full width horizontal margins +# \E[2g clear all tab stops +# \E[z 6 lines/in +# \E[66t 66 lines/page (for \f) +# \E[1;66r full vertical page can be printed +# \E[4g clear vertical tab stops +# \E> disable alternate keypad mode (so it transmits numbers!) +# \E[%i%p1%du set tab stop at column %d (origin == 1) +# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is +# a tab stop) +# +# The dw3 does standout with wide characters. +# +dw3|la120|decwriter III:\ + :bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:\ + :i1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>:\ + :is=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r:\ + :kb=^H:le=^H:me=\E[w:se=\E[w:sf=^J:so=\E[6w:ta=^I: +dw4|decwriter IV:\ + :am:bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:is=\Ec:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:\ + :kb=^H:le=^H:sf=^J:ta=^I: + +# These aren't official +ln03|dec ln03 laser printer:\ + :hc:\ + :co#80:li#66:\ + :bl=^G:cr=^M:do=^J:hd=\EK:hu=\EL:me=\E[m:nw=^M^J:se=\E[22m:\ + :sf=^J:so=\E[1m:ta=^I:ue=\E[24m:us=\E[4m: +ln03-w|dec ln03 laser printer 132 cols:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ln03: + +#### Delta Data (dd) +# + +# Untested. The cup sequence is hairy enough that it probably needs work. +# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'. +# There are BSD-derived termcap entries floating around for this puppy +# that are *certainly* wrong. +delta|dd5000|delta data 5000:\ + :am:bs:\ + :co#80:li#27:\ + :bl=^G:ce=^NU:cl=^NR:cm=\017%+^P%+^P:dc=^NV:do=^J:ho=^NQ:\ + :le=^H:nd=^Y:sf=^J:up=^Z: + +#### Digital Data Research (ddr) +# + +# (ddr: I added <rmam>/<smam> based on the init string -- esr) +ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator:\ + :am:bs:xn:\ + :co#80:it#8:li#24:vt#3:\ + :RA=\E[7l:SA=\E[7l:cd=50\E[J:ce=3\E[K:cl=50\E[H\E[2J:\ + :cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\ + :ku=\E[A:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[m:sf=5\ED:\ + :so=\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +#### Evans & Sutherland +# + +# Jon Leech <leech@cs.unc.edu> tells us: +# The ps300 was the Evans & Sutherland Picture System 300, a high +# performance 3D vector graphics system with a bunch of specialized hardware. +# Approximate date of release was 1982 (early 80s, anyway), and it had several +# evolutions including (limited) color versions such as the PS330C. PS300s +# were effectively obsolete by the late 80s, replaced by raster graphics +# systems, although specialized applications like molecular modelling +# hung onto them for a while longer. AFAIK all E&S vector graphics systems +# are out of production, though of course E&S is very much alive (in 1996). +# (ps300: changed ":pt@:" to "it@" -- esr) +# +ps300|Picture System 300:\ + :xt:\ + :it@:\ + :se@:so@:ue@:us@:tc=vt100: + +#### General Electric (ge) +# + +terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\ + :bs:hc:os:\ + :co#120:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### Heathkit/Zenith +# + +# Here is a description of the H19 DIP switches: +# +# S401 +# 0-3 = baud rate as follows: +# +# 3 2 1 0 +# --- --- --- --- +# 0 0 1 1 300 baud +# 0 1 0 1 1200 baud +# 1 0 0 0 2400 baud +# 1 0 1 0 4800 baud +# 1 1 0 0 9600 baud +# 1 1 0 1 19.2K baud +# +# 4 = parity (0 = no parity) +# 5 = even parity (0 = odd parity) +# 6 = stick parity (0 = normal parity) +# 7 = full duplex (0 = half duplex) +# +# S402 +# 0 = block cursor (0 = underscore cursor) +# 1 = no key click (0 = keyclick) +# 2 = wrap at end of line (0 = no wrap) +# 3 = auto LF on CR (0 = no LF on CR) +# 4 = auto CR on LF (0 = no CR on LF) +# 5 = ANSI mode (0 = VT52 mode) +# 6 = keypad shifted (0 = keypad unshifted) +# 7 = 50Hz refresh (1 = 60Hz refresh) +# +# Factory Default settings are as follows: +# 7 6 5 4 3 2 1 0 +# S401 1 0 0 0 1 1 0 0 +# S402 0 0 0 0 0 0 0 0 +# (h19: I added <rmam>/<smam> based on the init string; +# also added empty <acsc> to suppress a tic warning -- esr) +h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:ac=:ae=\E[11m:al=\E[1L:as=\E[10m:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h:k1=\EOS:\ + :k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:\ + :kb=^H:kd=\E[1B:kh=\E[H:kl=\E[1D:kr=\E[1C:ku=\E[1A:l6=blue:\ + :l7=red:l8=white:le=^H:nd=\E[1C:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:up=\E[1A:ve=\E[>4l:vs=\E[>4h: +h19-bs|heathkit w/keypad shifted:\ + :ke=\Eu:ks=\Et:tc=h19-b: +h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor:\ + :ke=\Eu:ks=\Et:\ + :tc=h19-u: +# (h19: merged in :ip: from BSDI hp19-e entry>; +# also added empty <acsc> to suppress a tic warning --esr) +# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998 +# Tim tells us that: +# I have an old Zenith-19 terminal at home that still gets a lot of use. +# This terminal suffers from the same famous insert-mode padding lossage +# that has been acknowledged for the Z29 terminal. Emacs is nearly +# unusable on this box, since even a half-scroll up or down the window +# causes flaming terminal death. +# +# On the Z19, the only way I have found around this problem is to remove +# the :al: and :dl: entries entirely. No amount of extra padding will +# help (I have tried up to 20000). Removing :al=\EL$: and :dl=\EM$: +# makes Emacs a little slower, but it remains in the land of the living. +# Big win. +h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19:\ + :am:bs:es:hs:mi:ms:\ + :co#80:it#8:li#24:\ + :ac=:ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\ + :cr=^M:dc=\EN:do=\EB:ei=\EO:fs=\Ek\Ey5:ho=\EH:im=\E@:\ + :ip=1.5<1.5/>:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\ + :k7=\EQ:k8=\ER:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\ + :l6=blue:l7=red:l8=white:le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:\ + :sr=\EI:ta=^I:ts=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo:up=\EA:\ + :ve=\Ey4:vs=\Ex4: +h19-u|heathkit with underscore cursor:\ + :ve@:vs@:tc=h19-b: +h19-g|h19g|heathkit w/block cursor:\ + :ve=\Ex4:tc=h19-b: +alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\ + :li#60:\ + :al=\EL:dl=\EM:tc=h19: + +# The major problem with the Z29 is that it requires more padding than the Z19. +# +# The problem with declaring an H19 to be synonymous with a Z29 is that +# it needs more padding. It especially loses if a program attempts +# to put the Z29 into insert mode and insert text at 9600 baud. It +# even loses worse if the program attempts to insert tabs at 9600 +# baud. Adding padding to text that is inserted loses because in +# order to make the Z29 not die, one must add so much padding that +# whenever the program tries to use insert mode, the effective +# rate is about 110 baud. +# +# What program would want to put the terminal into insert mode +# and shove stuff at it at 9600 baud you ask? +# +# Emacs. Emacs seems to want to do the mathematically optimal +# thing in doing a redisplay rather than the practical thing. +# When it is about to output a line on top of a line that is +# already on the screen, instead of just killing to the end of +# the line and outputting the new line, it compares the old line +# and the new line and if there are any similarities, it +# constructs the new line by deleting the text on the old line +# on the terminal that is already there and then inserting new +# text into the line to transform it into the new line that is +# to be displayed. The Z29 does not react kindly to this. +# +# But don't cry for too long.... There is a solution. You can make +# a termcap entry for the Z29 that says the Z29 has no insert mode. +# Then Emacs cannot use it. "Oh, no, but now inserting into a +# line will be really slow", you say. Well there is a sort of a +# solution to that too. There is an insert character option on +# the Z29 that will insert one character. Unfortunately, it +# involves putting the terminal into ansi mode, inserting the +# character, and changing it back to H19 mode. All this takes 12 +# characters. Pretty expensive to insert one character, but it +# works. Either Emacs doesn't try to use its inserting hack when +# it's only given an insert character ability or the Z29 doesn't +# require padding with this (the former is probably more likely, +# but I haven't checked it out). +# (z29: added empty <acsc> to suppress a tic warning, merged in +# status line capabilities from BRL entry --esr) +z29|zenith29|z29b|zenith z29b:\ + :am:bs:es:hs:mi:ms:pt:\ + :co#80:kn#10:li#24:\ + :ac=:ae=\EF:al=1\EL:as=\EG:bc=\ED:bl=^G:bt=\E-:cd=\EJ:ce=\EK:\ + :cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:dl=1\EM:do=\EB:ds=\Ey1:\ + :ei=\EO:fs=\Ek\Ey5:ho=\EH:ic=\E<\E[1@\E[?2h:im=\E@:\ + :is=\E<\E[?2h\Ev:k0=\E~:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:\ + :k6=\EP:k7=\EQ:k8=\ER:k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:l0=home:le=^H:nd=\EC:se=\Eq:sf=\n:so=\Ep:\ + :sr=2\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Es0:up=\EA:\ + :us=\Es8:ve=\Ey4:vs=\Ex4: +# z29 in ansi mode. Assumes that the cursor is in the correct state, and that +# the world is stable. <rs1> causes the terminal to be reset to the state +# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore +# cursor, bc -> block cursor. +# From: Mike Meyers +# (z29a: replaced nonexistent :if=/usr/share/tabset/zenith29: befause :st: +# looks vt100-compatible -- esr) +z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode:\ + :am:bs:es:hs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:bc=\ED:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:\ + :do=^J:ds=\E[>1l:fs=\E[u\E[>5l:ho=\E[H:\ + :if=/usr/share/tabset/vt100:k0=\E[~:k1=\EOS:k2=\EOT:\ + :k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:\ + :kC=\E[J:kS=\E[J:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:\ + :ku=\EOA:l0=help:le=^H:mb=\E[5m:md=\E[2m:me=\E[m:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^M\ED:ps=\E#7:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m:\ + :rc=\E[r:sc=\E[s:se=\E[m:sf=\ED:so=\E[7;2m:sr=\EM:st=\EH:\ + :ta=^I:te=\E[?7h:ti=\E[?7l:\ + :ts=\E[s\E[>5;1h\E[25;%i%dH\E[1K:ue=\E[m:up=\E[A:\ + :us=\E[4m: +z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995 +z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode:\ + :5i:am:es:hs:mi:ms:xo:\ + :co#80:li#24:\ + :%1=\E[~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:K1=\EOw:\ + :K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:ac=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~:\ + :ae=\E(B:al=\E[1L:as=\E(0:bl=^G:bt=\E[1Z:cb=\E[1K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\ + :ds=\E[>1l:ei=\E[4l:fs=\E[u:ho=\E[H:im=\E[4h:\ + :is=\E<\E[>1;3;5;6;7l\E[0m\E[2J:k1=\EOS:k2=\EOT:k3=\EOU:\ + :k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:kS=\E[J:\ + :kb=^H:kd=\E[B:ke=\E[>7l:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[>7h:\ + :ku=\E[A:le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:\ + :ps=\E[?19h\E[i:r2=\E<\Ec\0:rc=\E[u:sc=\E[s:se=\E[0m:\ + :sf=^J:so=\E[7m:st=\EH:ta=^I:ts=\E[s\E[>1h\E[25;%i%p1%dH:\ + :ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>5l:vi=\E[>5h: + +# From: Brad Brahms <Brahms@USC-ECLC> +z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor:\ + :ve=\Ey4\Em70:vs=\Ex4\Em71:\ + :tc=z100bw: +# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr) +z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc:\ + :bs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :ac=:ae=\EG:al=5*\EL:as=\EF:cd=\EJ:ce=\EK:cl=5*\EE:\ + :cm=1*\EY%+ %+ :dc=1*\EN:dl=5*\EM:do=\EB:ei=\EO:ho=\EH:\ + :im=\E@:k0=\EJ:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\ + :k7=\EQ:k8=\ER:k9=\EOI:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Ep:sr=\EI:ta=^I:up=\EA:\ + :ve=\Ey4:vs=\Ex4: +p19|h19-b with il1/dl1:\ + :al=2*\EL:dl=2*\EM:tc=h19-b: +# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu> +# (ztx: removed duplicate :sr: -- esr) +ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11:\ + :am:bs:es:hs:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dl=\EM:do=^J:\ + :ds=\Ey1:fs=\Ek\Ey5:ho=\EH:\ + :is=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>:k0=\ES:\ + :k1=\EB:k2=\EU:k3=\EV:k4=\EW:k5=\EP:k6=\EQ:k7=\ER:kb=^H:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Es5:\ + :sr=\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Eq:up=\EA:\ + :us=\Es2: + +#### IMS International (ims) +# +# There was a company called IMS International located in Carson City, +# Nevada, that flourished from the mid-70s to mid-80s. They made S-100 +# bus/Z80 hardware and a line of terminals called Ultimas. +# + +# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985 +ims950-b|bare ims950 no init string:\ + :is@:tc=ims950: +# (ims950: removed obsolete ":ko@:" -- esr) +ims950|ims televideo 950 emulation:\ + :xn@:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950: +# (ims950-rv: removed obsolete ":ko@:" -- esr) +ims950-rv|ims tvi950 rev video:\ + :xn@:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950-rv: +ims-ansi|ultima2|ultimaII|IMS Ultima II:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\E[%i%2;%2H:do=\ED:\ + :if=/usr/share/tabset/vt100:\ + :is=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:se=\E[m\E[1m:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m\E[1m:up=\EM:us=\E[4m: + +#### Intertec Data Systems +# +# I think this company is long dead as of 1995. They made an early CP/M +# micro called the "Intertec Superbrain" that was moderately popular, +# then sank out of sight. +# + +superbrain|intertec superbrain:\ + :am:bs:bw:\ + :co#80:li#24:\ + :bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\ + :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\ + :te=^L:ti=^L:up=^K: +# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>, +# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM, +# and the reverse is actually true. Try it. -- esr) +intertube|intertec|Intertec InterTube:\ + :am:bs:\ + :co#80:li#25:\ + :bl=^G:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=^A:le=^H:nd=^F:\ + :se=\E0@:sf=^J:so=\E0P:up=^Z: +# The intertube 2 has the "full duplex" problem like the tek 4025: if you +# are typing and a command comes in, the keystrokes you type get interspersed +# with the command and it messes up +intertube2|intertec data systems intertube 2:\ + :bs:\ + :ce=\EK:ch=\020%+^J:cm=\016%.\020%+^J:cv=\013%.:\ + :ll=^K^X\r:\ + :tc=intertube: + +#### Ithaca Intersystems +# +# This company made S100-bus personal computers long ago in the pre-IBM-PC +# past. They used to be reachable at: +# +# Ithaca Intersystems +# 1650 Hanshaw Road +# Ithaca, New York 14850 +# +# However, the outfit went bankrupt years ago. +# + +# The Graphos III was a color graphics terminal from Ithaca Intersystems. +# These entries were written (originally in termcap syntax) by Brian Yandell +# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the +# University of Wisconsin. + +# (graphos: removed obsolete and syntactically incorrect :kn=4:, +# removed :if=/usr/share/tabset/init.graphos: and +# <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr) +graphos|graphos III:\ + :am:mi:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:dm=\E[4h:do=\E[B:\ + :ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=^H:me=\E[m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:\ + :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:\ + :ve=\Ez56;2;0;0z\Ez73z\Ez4;1;1z:\ + :vs=\Ez4;2;1z\Ez56;2;80;24z: +graphos-30|graphos III with 30 lines:\ + :li#30:\ + :vs=\Ez4;2;1z\Ez56;2;80;30z:tc=graphos: + +#### Modgraph +# +# These people used to be reachable at: +# +# Modgraph, Inc +# 1393 Main Street, +# Waltham, MA 02154 +# Vox: (617)-890-5796. +# +# However, if you call that number today you'll get an insurance company. +# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated +# 26 Feb 1997 that says: +# +# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been +# for ~7 years. Modgraph still in business. Products are rugged laptop and +# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount +# panel-mount etc). I can be emailed at sonfour@aol.com +# +# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was +# dated 1984. According to the manual, it featured Tek 4010/4014 +# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard. +# + +modgraph|mod24|modgraph terminal emulating vt100:\ + :xn@:\ + :co#80:li#24:\ + :is=\E\1369;0s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s:\ + :rf@:sr=5\EM\E[K:vs=\E\1369;0s\E\1367;1s:\ + :tc=vt100: +# The GX-1000 manual is dated 1984. This looks rather like a VT-52. +modgraph2|modgraph gx-1000 80x24 with keypad not enabled:\ + :am:da:db:\ + :co#80:it#8:li#24:\ + :cd=50\EJ:ce=3\EK:cl=50\EH\EJ:cm=5\EY%+ %+ :\ + :is=\E<\E\1365;2s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s\E\13612;0s\E\13614;2s\E\13615;9s\E\13625;1s\E\1369;1s\E\13627;1:\ + :le=^H:nd=2\EC:sr=5\EI:ta=^I:up=2\EA: +# +# Modgraph from Nancy L. Cider <nancyc@brl-tbd> +# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>: +# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a +# mark and using delete-to-killbuffer work correctly. However, we would +# like normal mode of operation to be using a Modgraph with 48 line setting. +# If we set TERM=mod (which is a valid entry in termcap with 48 lines) +# the setting mark and delete-to-killbuffer results in the deletion of only +# the line the mark is set on. +# We've discovered that the delete-to-killbuffer works correctly +# with TERM=mod and screen set to 80x48 but it's not obvious. Only +# the first line disappears but a ctrl-l shows that it did work +# correctly. +modgraph48|mod|Modgraph w/48 lines:\ + :am:bs:pt:xn:\ + :co#80:it#8:li#48:vt#3:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:r1=\E=\E[0q\E>:rc=\E8:\ + :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q: + +#### Morrow Designs +# +# This was George Morrow's company. They started in the late 1970s making +# S100-bus machines. They used to be reachable at: +# +# Morrow +# 600 McCormick St. +# San Leandro, CA 94577 +# +# but they're long gone now (1995). +# + +# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. +# Jeff's specimen was dated June 1984. +# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995 +mt70|mt-70|Morrow MD-70; native Morrow mode:\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:\ + :%1=^AO\r:F1=^A`\r:F2=^Aa\r:F3=^Ab\r:F4=^Ac\r:F5=^Ad\r:\ + :F6=^Ae\r:F7=^Af\r:F8=^Ag\r:F9=^Ah\r:FA=^Ai\r:\ + :ac=+z\054{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI:ae=\E%:\ + :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:\ + :i1=\E"2\EG0\E]:ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :k;=^AI\r:kB=^A^Z\r:kC=^An\r:kD=\177:kb=^H:kd=^AK\r:\ + :kh=^AN\r:kl=^AL\r:kr=^AM\r:ku=^AJ\r:le=^H:mh=\EG2:mk@:\ + :nd=^L:nw=^_:sf=^J:ta=^I:te=:ti=\E"2\EG0\E]:up=^K:us=\EG1:\ + :vb=\EK1\EK0:ve=\E"2:vi=\E"0:\ + :tc=adm+sgr: + +#### Motorola +# + +# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL +# (Seth H Zirin) +ex155|Motorola Exorterm 155:\ + :am:bs:bw:\ + :co#80:kn#5:li#24:\ + :bt=\E[:cd=\ET:ce=\EU:cl=\EX:cm=\EE%+ %+ :do=\EB:ho=\E@:\ + :kB=\E[:kC=\EX:kE=\EU:kS=\ET:kb=^H:kd=^J:kh=\E@:kl=^H:kr=^L:\ + :ku=^K:nd=\ED:se=\Ec\ED:so=\Eb\ED:ta=\EZ:ue=\Eg\ED:\ + :us=\Ef\ED: + +#### Omron +# +# This company is still around in 1995, manufacturing point-of-sale systems. + +omron|Omron 8025AG:\ + :am:bs:da:db:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\ER:ce=\EK:cl=\EJ:cr=^M:dc=\EP:dl=\EM:do=^J:\ + :ho=\EH:le=^H:nd=\EC:se=\E4:sf=\ES:so=\Ef:sr=\ET:up=\EA:\ + :vs=\EN: + +#### Ramtek +# +# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they +# were competition for things like the Tektronics 4025. +# + +# Ramtek 6221 from BRL, probably by Doug Gwyn +# The following SET-UP modes are assumed for normal operation: +# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON +# NEWLINE_OFF 80_COLUMNS +# Other SET-UP modes may be set for operator convenience or communication +# requirements; I recommend +# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON +# Hardware tabs are assumed to be every 8 columns; they can be set up by the +# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this). +# Note that the Control-E key is useless on this brain-damaged terminal. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +rt6221|Ramtek 6221 80x24:\ + :bs:ms:pt:xo:\ + :co#80:it#8:kn#4:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:as=^N:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^K:ho=\E[1;1H:is=\E)0:\ + :k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:kd=\E[B:ke=\E>:\ + :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:\ + :r1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m:ve=\E[>5h\E[>9h:vi=\E[>5l:\ + :vs=\E[>7h\E[>9l: +# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)]. +rt6221-w|Ramtek 6221 160x48:\ + :co#160:li#48:\ + :ll=\E[48;1H:tc=rt6221: + +#### RCA +# + +# RCA VP3301 or VP3501 +rca|rca vp3301/vp3501:\ + :bs:\ + :co#40:li#24:\ + :cl=^L:cm=\EY%+ %+ :ho=^Z:nd=^U:se=\E\ES0:so=\E\ES1:up=^K: + + +#### Selanar +# + +# Selanar HiREZ-100 from BRL, probably by Doug Gwyn +# The following SET-UP modes are assumed for normal operation: +# SET_DEFAULT_TABS 48_LINES 80_COLUMNS +# ONLINE ANSI CURSOR_VISIBLE +# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF +# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED +# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN +# For use with graphics software, all graphics modes should be set to factory +# default. Other SET-UP modes may be set for operator convenience or +# communication requirements. No delays are specified; use "stty ixon -ixany" +# to enable DC3/DC1 flow control! +# I commented out the scrolling capabilities since they are too slow. +hirez100|Selanar HiREZ-100:\ + :bs:mi:ms:pt:xo:\ + :co#80:it#8:kn#4:li#48:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=^J:ho=\E[H:is=\E<\E)0:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :le=^H:ll=\E[48H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:pf=\E[4i\E[?4i:po=\E[?5i\E[5i:ps=\E[i:\ + :r1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>:\ + :rc=\E8:sc=\E7:se=\E[m:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\EM:\ + :us=\E[4m: +hirez100-w|Selanar HiREZ-100 in 132-column mode:\ + :co#132:tc=hirez100: + +#### Signetics +# + +# From University of Wisconsin +vsc|Signetics Vsc Video driver by RMC:\ + :am:ms:\ + :co#80:it#8:li#26:\ + :ce=\E[K:cl=50\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :ho=\E[H:kb=^H:kd=^J:kl=^H:le=^H:me=^_\041:mr=^_ :nd=\E[C:\ + :nw=^M^J:se=^_\041:sf=^J:so=^_ :ta=^I:ue=^_#:up=\E[A:us=^_": + +#### Soroc +# +# Alan Frisbie <frisbie@flying-disk.com> writes: +# +# As you may recall, the Soroc logo consisted of their name, +# with the letter "S" superimposed over an odd design. This +# consisted of a circle with a slightly smaller 15 degree (approx.) +# wedge with rounded corners inside it. The color was sort of +# a metallic gold/yellow. +# +# If I had been more of a beer drinker it might have been obvious +# to me, but it took a clue from their service department to make +# me exclaim, "Of course!" The circular object was the top of +# a beer can (the old removable pop-top style) and "Soroc" was an +# anagram for "Coors". +# +# I can just imagine the founders of the company sitting around +# one evening, tossing back a few and trying to decide what to +# call their new company and what to use for a logo. +# + +# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr) +soroc120|iq120|soroc|soroc iq120:\ + :cd=\EY:ce=\ET:cl=\E*:do=^J:kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a: +soroc140|iq140|soroc iq140:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\Ee:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\Ew:dl=\Er:do=^J:ei=\E8:ho=^^:im=\E9:k0=^A0\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kh=^^:kr=^L:ku=^K:le=^H:\ + :ll=^^^K:nd=^L:se=\E\177:sf=^J:so=\E\177:ue=\E^A:up=^K:\ + :us=\E^A: + +#### Synertek +# +# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995): +# +# Synertek used to make ICs, various 6502-based single-board process +# control and hobbyist computers, and assorted peripherals including a +# series of small inexpensive terminals (I think they were one of the +# first to have a "terminal-on-a-keyboard", where the terminal itself +# was only slightly larger than the keyboard). +# +# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40 +# was a 40x24 terminal that could connect to a standard TV through a +# video modulator. The KTM-2/80 was the 80-column version (the 2/40 +# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM). +# I have a KTM-2/80 still in working order. The KTM-2s had fully +# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program +# ROM and 2 ROMs as character generators. They were incredibly simple, +# and I've never had any problems with mine (witness the fact that mine +# was made in 1981 and is still working great... I've blown the video +# output transistor a couple of times, but it's a 2N2222 :-) +# +# The KTM-3 (which is what is listed in the terminfo file) was their +# attempt at putting a KTM-2 in a box (and some models came with a +# CRT). It wasn't much different from the KTM-2 hardware-wise, but the +# control and escape sequences are very different. The KTM-3 was always +# real broken, at least according to the folks I've talked to about it. +# +# The padding in the entry is probably off--these terminals were very +# slow (it takes like 100ms for the KTM-2 to clear the screen...) And +# anyone with any sanity replaced the ROMs with something that provided +# a reasonable subset of VT100 functionality, since the usual ROMs were +# obviously very primitive... oh, you could get an upgraded ROM from +# Synertek for some incredible amount of money, but what hacker with an +# EPROM burner would do that? :) +# +# Sorry I don't have any contact info; I believe they were located in +# Sunnyvale, and I'm fairly sure they are still manufacturing ICs +# (they've gone to ASICs and FPGAs), but I doubt they're in the computer +# business these days. +# + +# Tested, seems to work fine with vi. +synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal:\ + :am:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=^Z:cm=\E=%+ %+ :le=^H:nd=^L:up=^K: + +#### Tab Office Products +# +# TAB Products Co. - Palo Alto, California +# Electronic Office Products, +# 1451 California Avenue 94304 +# +# I think they're out of business. +# + +# The tab 132 uses xon/xoff, so no padding needed. +# :ks:/:ke: have nothing to do with arrow keys. +# :is: sets 80 col mode, normal video, autowrap on (for :am:). +# Seems to be no way to get rid of status line. +# The manual for this puppy was dated June 1981. It claims to be VT52- +# compatible but looks more vt100-like. +tab132|tab|tab132-15|tab 132/15:\ + :da:db:\ + :co#80:dN@:li#24:lm#96:\ + :al=\E[L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :im=\E[4h:is=\E[?7h\E[?3l\E[?5l:kd=\E[B:ke@:kl=\E[D:ks@:\ + :ku=\E[A:\ + :tc=vt100: +tab132-w|tab132 in wide mode:\ + :co#132:\ + :is=\E[?7h\E[?3h\E[?5l:tc=tab132: +tab132-rv|tab132 in reverse-video mode:\ + :is=\E[?7h\E[?3l\E[?5h:tc=tab132: +tab132-w-rv|tab132 in reverse-video/wide mode:\ + :is=\E[?7h\E[?3h\E[?5h:tc=tab132-w: + + +#### Teleray +# +# Research Incorporated +# 6425 Flying Cloud Drive +# Eden Prairie, MN 55344 +# Vox: (612)-941-3300 +# +# The Teleray terminals were all discontinued in 1992-93. RI still services +# and repairs these beasts, but no longer manufactures them. The Teleray +# people believe that all the types listed below are very rare now (1995). +# There was a newer line of Telerays (Model 7, Model 20, Model 30, and +# Model 100) that were ANSI-compatible. +# +# Note two things called "teleray". Reorder should move the common one +# to the front if you have either. A dumb teleray with the cursor stuck +# on the bottom and no obvious model number is probably a 3700. +# + +t3700|dumb teleray 3700:\ + :bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:le=^H:sf=^J: +t3800|teleray 3800 series:\ + :bs:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:\ + :le=^H:ll=\EY7 :nd=\EC:sf=^J:ta=^I:up=^K: +t1061|teleray|teleray 1061:\ + :am:bs:km:xs:xt:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\ + :ct=\EG:dc=\EQ:dl=\EM:do=^J:ei=:ho=\EH:ic=\EP:im=:ip=:\ + :is=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef:\ + :k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:k8=^Z8:\ + :le=^H:nd=\EC:se=\ER@:sf=^J:so= \ERD:st=\EF:ta=^I:ue=\ER@:\ + :up=\EA:us=\ERH: +t1061f|teleray 1061 with fast PROMs:\ + :al=\EL:dl=\EM:ip@:tc=t1061: +# "Teleray Arpa Special", officially designated as +# "Teleray Arpa network model 10" with "Special feature 720". +# This is the new (1981) fast microcode updating the older "arpa" proms +# (which gave meta-key and programmable-fxn keys). 720 is much much faster, +# converts the keypad to programmable function keys, and has other goodies. +# Standout mode is still broken (magic cookie, etc) so is suppressed as no +# programs handle such lossage properly. +# Note: this is NOT the old termcap's "t1061f with fast proms." +# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah +# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr) +t10|teleray 10 special:\ + :bs:km:xs:xt:\ + :co#80:it#8:li#24:sg#2:\ + :al=\EL:cd=\EJ:ce=\EK:cl=30\Ej:cm=\EY%+ %+ :dc=\EQ:dl=\EM:\ + :ei=:ho=\EH:ic=\EP:im=:le=^H:nd=\EC:pc=\0:se=\ER@:sf=\Eq:\ + :so=\ERD:sr=\Ep:ta=^I:ue=\ER@:up=\EA:us=\ERH: +# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and +# back/forth words. Put the function keys (f1-f10) where they can be +# found, and turn off the other magic keys along the top row, except +# for line/local. Do the magic appropriate to make the page shifts work. +# Also toggle ^S/^Q for those of us who use Emacs. +t16|teleray 16:\ + :am:da:db:mi:xs:xt:\ + :co#80:li#24:\ + :al=\E[L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ + :cm=%i\E[%d;%df:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:\ + :k7=^Z7:k8=^Z8:k9=^Z9:k;=^Z0:le=^H:me=\E[m:nd=\E[C:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\E[T:ta=^I:te=\E[V\E[24;1f\E[?38h:\ + :ti=\E[U\E[?38l:ue=\E[m:up=\E[A:us=\E[4m: + +#### Texas Instruments (ti) +# + +# The Silent 700 was so called because it was built around a quiet thermal +# printer. It was portable, equipped with an acoustic coupler, and pretty +# neat for its day. +ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800:\ + :bs:hc:os:\ + :co#80:\ + :bl=^G:cr=\r:do=^J:le=^H:sf=^J: + +# +# Texas Instruments 916 VDT 7 bit control mode +# +ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL:\ + :da:db:in:ms:\ + :%9=^X:@4=\E[29~:@8=^J:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F1=\E[29~:F2=\E[31~:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\017:as=\016:bt=\E[Z:cb=\E[1K:\ + :cd=\E[J:ce=\E[0K:ch=\E[%+^AG:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:eA=\E(B\E)0:\ + :ec=\E[%dX:ei=:ff=^L:im=:ip=:is=\E[1;24r\E[24;1H:k1=\E[17~:\ + :k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\ + :k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:\ + :kN=\E[S:kP=\E[T:kh=\E[H:mp=\E&:r2=\E[\041p:st=\E[0W:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:\ + :tc=vt220: +# +# Texas Instruments 916 VDT 8 bit control mode +# +ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL:\ + :%9=^X:@4=\23329~:@8=^J:F1=\23329~:F2=\23331~:k1=\23317~:\ + :k2=\23318~:k3=\23319~:k4=\23320~:k5=\23321~:k6=\23323~:\ + :k7=\23324~:k8=\23325~:k9=\23326~:k;=\23328~:kD=\233P:\ + :kI=\233@:kN=\233S:kP=\233T:kd=\233B:kh=\233H:kl=\233D:\ + :kr=\233C:ku=\233A:\ + :tc=ti916: +# +# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode +# +ti916-132|Texas Instruments 916 VDT vt220 132 column:\ + :co#132:tc=ti916: +# +# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode +# +ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column:\ + :co#132:tc=ti916-8: +ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL:\ + :am:bs:xo:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\ + :do=\E[B:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[16~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[P:kI=\E[@:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m:ve=\E[?25h:vi=\E[?25l:vs=\E[?31h: +ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\ + :do=\E[B:ho=\E[H:k1=P\217>:k2=Q\217>:k3=R\217>:k4=S\217>:\ + :k5=~\23316>:k6=~\23317>:k7=~\23318>:k8=~\23319>:\ + :k9=~\23320>:kD=P\233>:kI=@\233>:kb=^H:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l:vs=\E[?31h: +ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode:\ + :co#132:tc=ti924: +ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode:\ + :co#132:tc=ti924-8: +ti931|Texas Instruments 931 VDT:\ + :am:bs:xo:\ + :co#80:li#24:\ + :al=\EN:bl=^G:cd=\EJ:ce=\EI:cl=\EL:cm=\EY%+ %+ :cr=^M:\ + :dc=\EQ:dl=\EO:do=\EB:ei=:ho=\EH:ic=\ER\EP\EM:im=:\ + :is=\EGB\E(@B@@\E):k1=\Ei1:k2=\Ei2:k3=\Ei3:k4=\Ei4:\ + :k5=\Ei5:k6=\Ei6:k7=\Ei7:k8=\Ei8:k9=\Ei9:kA=\EN:kD=\EQ:\ + :kI=\EP:kL=\EO:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:mb=\E4P:\ + :me=\E4@:mk=\E4H:mr=\E4B:nd=\EC:se=\E4@:sf=\Ea:so=\E4A:\ + :sr=\Eb:ue=\E4@:up=\EA:us=\E4D:ve=\E4@: +ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL:\ + :cs@:sf=\E[1S:sr=\E[1T:tc=ti924: +# (ti926-8: I corrected this from the broken SCO entry -- esr) +ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL:\ + :cs@:sf=\2331S:sr=\2331T:\ + :tc=ti924-8: +ti_ansi|basic entry for ti928:\ + :am:eo:ut:xn:xo:\ + :Co#8:co#80:it#8:li#25:pa#64:\ + :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:al=\E[L:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\ + :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kN=\E[G:kP=\E[I:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:op=\E[37;40m:se=\E[m:\ + :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +# +# 928 VDT 7 bit control mode +# +ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL:\ + :%9=\E[35~:@7=\E_1\E\:@8=\E[8~:F1=\E[29~:F2=\E[31~:\ + :F3=\E[32~:F5=\E[34~:k1=\E[17~:k2=\E[18~:k3=\E[19~:\ + :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\ + :k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:kN=\E[S:kP=\E[T:\ + :tc=ti_ansi: +# +# 928 VDT 8 bit control mode +# +ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL:\ + :%9=\23335~:@7=\2371\234:@8=\2338~:F1=\23329~:F2=\23331~:\ + :F3=\23332~:F5=\23334~:k1=\23317~:k2=\23318~:k3=\23319~:\ + :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\ + :k9=\23326~:k;=\23328~:kD=\233P:kI=\233@:kN=\233S:\ + :kP=\233T:kh=\233H:\ + :tc=ti_ansi: + +#### Zentec (zen) +# + +# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally +# had just :so:=\EG6 which I think means standout was supposed to be +# dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and +# <invis> might work-- esr) +zen30|z30|zentec 30:\ + :am:bs:mi:ul:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:le=^H:mh=\EG2:nd=^L:\ + :sf=^J:so=\EG6:ue@:up=^K:us@:\ + :tc=adm+sgr: +# (zen50: this had extension capabilities +# :BS=^U:CL=^V:CR=^B: +# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh, +# which were also in the original entry -- esr) +# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr) +zen50|z50|zentec zephyr:\ + :am:bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:ei=:\ + :ic=\EQ:im=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:ue@:up=^K:\ + :us@:\ + :tc=adm+sgr: + +# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL +cci|cci1|z8001|zen8001|CCI Custom Zentec 8001:\ + :am:bs:bw:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cs=\ER%+ %+ :do=^J:\ + :ho=\EH:is=\EM \EF\ET\EP\ER 7:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:mb=\EM":me=\EM :mh=\EM\041:mk=\EM(:\ + :mr=\EM$:nd=\EC:pf=^T:po=^R:se=\EM :so=\EM$:sr=\EI:ue=\EM :\ + :up=\EA:us=\EM0:ve=\EP:vs=\EF\EQ\EM \ER 7: + +######## OBSOLETE UNIX CONSOLES +# + +#### Altos +# +# Altos made a moderately successful line of UNIX boxes. In 1990 they were +# bought out by Acer, a major Taiwanese manufacturer of PC-clones. +# Acer has a web site at http://www.acer.com. +# +# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993 +# His comments suggest they were shipped with the system. +# + +# (altos2: had extension capabilities +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\ +# :HL=^AP\r:SP=\E[i:\ +# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\ +# Comparison with the k* capabilities makes it obvious that the c* things are +# shift keys. I have renamed them to keys 32 and up accordingly. Also, +# :sr: was given as a boolean-- esr) +altos2|alt2|altos-2|altos II:\ + :co#80:it#8:li#24:sg#0:\ + :*5=^Am\r:*8=^An\r:DL=\E[M:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\ + :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\ + :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:RA=\E[?7l:SA=\E[?7h:al=\E[L:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[P:do=\E[1B:ei=:ho=\E[H:ic=\E[@:\ + :if=/usr/share/tabset/vt100:im=:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:kC=^AL\r:\ + :kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:kd=\E[B:kh=\E[f:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[1C:nw=^M^J:se=\E[m:\ + :sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[1A:us=\E[4m: +# (altos3: had extension capabilities +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +# :HL=^AP\r:SP=\E[i:\ +# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V:\ + :mb=\E[5p:me=\E[p:sr=\EM:\ + :tc=altos2: +altos4|alt4|altos-4|altos IV:\ + :tc=wy50: +# (altos7: had extension capabilities: +# :GG#0:GI=\EH8:GF=\EH7:\ +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# Comparison with the k* capabilities makes it obvious that the c* things are +# shift keys. I have renamed them to keys 32 and up accordingly. I have +# also made this entry relative to adm12 in order to give it an :sa:. The +# <invis> imported by use=adm+sgr may work, let me know. -- esr) +altos7|alt7|altos VII:\ + :am:mi:\ + :co#80:li#24:sg#0:\ + :*5=^Am\r:*8=^An\r:DL=\ER:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\ + :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\ + :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:\ + :ac=j5k3l2m1n8q\072t4u9v=w0x6:al=\EE:cd=\EY:ce=\ET:\ + :cl=\E+^^:cm=\E=%+ %+ :cr=^M:dc=\EW:do=^J:ei=\Er:ho=^^:\ + :im=\Eq:is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2:\ + :k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:\ + :kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kN=\EK:kP=\EJ:kb=^H:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EGt:mh=\EGp:\ + :mk=\EG1:nd=^L:nw=^M^J:pf=\EJ:po=\Ed#:sf=^J:sr=\Ej:ta=^I:\ + :up=^K:\ + :tc=adm+sgr: +altos7pc|alt7pc|altos PC VII:\ + :@7=\ET:tc=altos7: + +#### Apollo consoles +# +# Apollo got bought by Hewlett-Packard. The Apollo workstations are +# labeled HP700s now. +# + +# From: Gary Darland <goodmanc@garnet.berkeley.edu> +apollo|apollo console:\ + :am:bs:mi:\ + :co#88:li#53:\ + :al=\EI:cd=\EJ:ce=\EK:ch=\EN%d:cl=^L:cm=\EM%+ %d):cv=\EO+ :\ + :dc=\EP:dl=\EL:do=\EB:ei=\ER:im=\EQ:le=^H:nd=\EC:se=\ET:\ + :sf=\EE:so=\ES:sr=\ED:te=\EX:ti=\EW:ue=\EV:up=\EA:us=\EU: + +# We don't know whether or not the apollo guys replicated DEC's firmware bug +# in the VT132 that reversed :ei:/:im:. To be on the safe side, disable +# both these capabilities. +apollo_15P|apollo 15 inch display:\ + :ei@:im@:tc=vt132: +apollo_19L|apollo 19 inch display:\ + :ei@:im@:tc=vt132: +apollo_color|apollo color display:\ + :ei@:im@:tc=vt132: + +#### Convergent Technology +# +# Burroughs bought Convergent shortly before it merged with Univac. +# CTOS is (I believe) dead. Probably the aws is too (this entry dates +# from 1991 or earlier). +# + +# Convergent AWS workstation from Gould/SEL UTX/32 via BRL +# (aws: removed unknown :dn=^K: -- esr) +aws|Convergent Technologies AWS workstation under UTX and Xenix:\ + :am:\ + :co#80:li#28:sg#0:\ + :ac=:ae=\EAAF:al=\EIL:as=\EAAN:bc=^H:cd=\EEF:ce=\EEL:\ + :ch=\EH%.:cl=^L:cm=\EC%r%.%.:cv=\EV%.:dc=\EDC:dl=\EDL:\ + :do=^K:ei=:ic=\EIC:im=:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\ + :ma=\016h\013j\001k\022l\002m:nd=^R:nl=^J:se=\EARF:\ + :sf=\ESU:so=\EARN:sr=\ESD:ue=\EAUF:up=^A:us=\EAUN: +awsc|Convergent Technologies AWS workstation under CTOS:\ + :am:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\EAAF:as=\EAAN:bc=^N:cd=\EEF:ce=\EEL:cl=^L:\ + :cm=\EC%r%.%.:do=^K:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\ + :ma=\016h\013j\001k\022l\002m:nd=^R:se=\EAA:so=\EAE:\ + :ue=\EAA:up=^A:us=\EAC: + +#### DEC consoles +# + +# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes: +# The digital uVax II's had a graphic display called a qdss. It was +# supposed to be a high performance graphic accelerator, but it was +# late to market and barely appeared before faster dumb frame buffers +# appeared. I have only used this display while running X11. However, +# during bootup, it was in text mode, and probably had a terminal emulator +# within it. And that is what your termcap entry is for. In graphics +# mode the screen size is 1024x864 pixels. +qdss|qdcons|qdss glass tty:\ + :am:bs:\ + :co#128:li#57:\ + :cl=1\032:cm=\E=%.%.:do=^J:le=^H:nd=^L:up=^K: + +#### Fortune Systems consoles +# +# Fortune made a line of 68K-based UNIX boxes that were pretty nifty +# in their day; I (esr) used one myself for a year or so around 1984. +# They had no graphics, though, and couldn't compete against Suns and +# the like. R.I.P. +# + +# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983 +# (This had extension capabilities +# :rv=\EH:re=\EI:rg=0:GG=0:\ +# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\ +# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\ +# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F: +# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had +# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily) +# to force both magic cookie glitches off. Once upon a time, I +# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are +# function keys; thus the "Al" value for HM was certainly an error. I renamed +# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC. +# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent +# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard +# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr) +fos|fortune|Fortune system:\ + :am:bs:bw:\ + :co#80:li#25:\ + :@7=^Ak\r:@8=^Aq:ac=j*k(l m"q&v%w#x-:ae=^O:al=\034E:\ + :as=\Eo:bl=^G:cd=\034Y:ce=^\Z:cl=\014:cm=\034C%+ %+ :cr=^M:\ + :dc=\034W:dl=\034R:do=\n:ei=:ho=\036:ic=\034Q:im=:is=^_..:\ + :k1=^Aa\r:k2=^Ab\r:k3=^Ac\r:k4=^Ad\r:k5=^Ae\r:k6=^Af\r:\ + :k7=^Ag\r:k8=^Ah\r:kN=^Ao\r:kP=^An\r:kb=^H:kd=^Ay\r:\ + :kh=^A?\r:kl=^Aw\r:kr=^Az\r:ku=^Ax\r:le=^H:mb=\EN:me=\EI:\ + :mr=\EH:nw=^M^J:se=^\I`:sf=^J:so=^\H`:ta=^Z:ue=^\IP:up=\013:\ + :us=^\HP:ve=\E\:vi=\E]:vs=\E\072: + +#### IBM Unix consoles +# + +# The following is a version of the ibm-pc entry distributed with PC/IX, +# (Interactive Systems' System 3 for the Big Blue), modified by Richard +# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, +# (the former is untrue, and the latter failed under UCB/man); standout and +# underline modes have been added. Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pcix|PC/IX console:\ + :am:bw:eo:\ + :co#80:li#24:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +# (ibmpcx: this entry used to be known as ibmx. +# It formerly included the following extension capabilities: +# :GC=b:GL=v:GR=t:RT=^J:\ +# :GH=\E[196g:GV=\E[179g:\ +# :GU=\E[193g:GD=\E[194g:\ +# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\ +# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\ +# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\ +# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate +# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match +# what was there before. -- esr) +ibmpcx|xenix|ibmx|IBM PC xenix console display:\ + :am:bs:ms:\ + :co#80:li#25:\ + :@7=\E[d:al=\E[L:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%d;%dH:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[K:\ + :k2=\E[L:k3=\E[M:k4=\E[N:kN=\E[e:kP=\E[Z:kb=^H:kd=\E[B:\ + :kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:up=\E[A:\ + :tc=klone+acs:tc=klone+sgr: + + +#### Masscomp consoles +# +# Masscomp has gone out of business. Their product line was purchased by +# comany in Georgia (US) called "XS International", parts and service may +# still be available through them. +# + +# (masscomp: ":MT:" changed to ":km:"; -- esr) +masscomp|masscomp workstation console:\ + :bs:km:mi:\ + :co#80:it#8:li#24:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=\E[4l:im=\E[4h:is=\EGc\EGb\EGw:kb=^H:\ + :kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:nd=\E[C:se=\E[m:\ + :so=\E[7m:ta=^I:ue=\EGau:up=\E[A:us=\EGu: +masscomp1|masscomp large screen version 1:\ + :co#104:li#36:tc=masscomp: +masscomp2|masscomp large screen version 2:\ + :co#64:li#21:tc=masscomp: + +#### Sony NEWS workstations +# + +# (news-unk: this had :KB=news: -- esr) +news-unk|SONY NEWS vt100 emulator old common entry:\ + :am:bs:pt:xn:\ + :co#80:\ + :AL=\E[%dL:DL=\E[%dM:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dl=\E[M:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\ + :is=\E[?7h\E[?1l\E[?3l\E7\E8:k0=\EOY:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nl=^J:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r:\ + :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# +# (news-29: this had :TY=ascii: --esr) +news-29:\ + :li#29:tc=news-unk: +# (news-29-euc: this had :TY=euc: --esr) +news-29-euc:\ + :tc=news-29: +# (news-29-sjis: this had :TY=sjis: --esr) +news-29-sjis:\ + :tc=news-29: +# +# (news-33: this had :TY=ascii: --esr) +news-33:\ + :li#33:tc=news-unk: +# (news-33-euc: this had :TY=euc: --esr) +news-33-euc:\ + :tc=news-33: +# (news-33-sjis: this had :TY=sjis: --esr) +news-33-sjis:\ + :tc=news-33: +# +# (news-42: this had :TY=ascii: --esr) +news-42:\ + :li#42:tc=news-unk: +# (news-42-euc: this had :TY=euc: --esr) +news-42-euc:\ + :tc=news-42: +# (news-42-sjis: this had :TY=sjis: --esr) +news-42-sjis:\ + :tc=news-42: +# +# NEWS-OS old termcap entry +# +# (news-old-unk: this had :KB=news:TY=sjis: --esr) +news-old-unk|SONY NEWS vt100 emulator common entry:\ + :am:bs:pt:xn:\ + :co#80:vt#3:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:rc=\E8:\ + :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +# +# (nwp512: this had :DE=^H:, which I think means :bs: --esr) +nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines:\ + :bs:\ + :li#40:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk: +# +# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr) +nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line:\ + :li#42:\ + :is=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8:tc=news-old-unk: +# +# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as :bs:. --esr) +nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines:\ + :bs:\ + :li#40:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk: +# +# (nwp513: this had :DE=^H: and the alias vt100-bm --esr) +nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines:\ + :bs:\ + :li#31:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk: +# +# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as :bs:; --esr) +# also the alias vt100-bm. +nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines:\ + :bs:\ + :li#33:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8:tc=news-old-unk: +# +# (nwp513-o: had :DE=^H:, I think that's :bs:; also the alias vt100-bm --esr) +nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines:\ + :bs:\ + :li#31:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk: +# +# (news28: this had :DE=^H:, I think that's :bs:, and :KB=nws1200: --esr) +news28|sony vt100 emulator 28 lines:\ + :bs:\ + :li#28:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8:tc=news-old-unk: +# +# (news29: this had :TY=ascii:KB=nws1200:\ --esr) +news29|news28-a|sony vt100 emulator 29 lines:\ + :li#29:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8:tc=news-old-unk: +# +# (news511: this had :TY=sjis: --esr) +nwp511|nwp-511|nwp-511 vt100:\ + :am:bs:pt:xn:\ + :co#80:li#24:\ + :al=\E[L:cd=30\E[J:ce=3\E[K:cl=20\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:dl=\E[M:is=\E[?5l\E[?1l\E>\E[?7h\E[?8h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\E#W:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:\ + :rs=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h:se=2\E[m:\ + :so=2\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:us=2\E[4m:\ + :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l: +# (news517: this had :TY=sjis:. --esr) +nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows:\ + :es:hs:\ + :co#80:li#30:\ + :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\ + :is=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ts=\E[1$}\E[;%df:\ + :tc=vt200: +# (news517-w: this had :TY=sjis:. --esr) +nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows:\ + :es:hs:\ + :co#132:li#50:\ + :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\ + :is=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ts=\E[1$}\E[;%df:tc=vt200: + +#### Obsolete virtual-terminal types. +# + +# Columbus UNIX virtual terminal. This terminal also appears in +# UNIX 4.0 and successors as line discipline 1 (?), but is +# undocumented and does not really work quite right. +cbunix|cb unix virtual terminal:\ + :am:bs:da:db:\ + :co#80:li#24:lm#0:\ + :al=\EP:bl=^G:cd=\EL:ce=\EK:cl=\EL:cm=\EG%r%.%.:cr=^M:\ + :dc=\EM:dl=\EN:do=^J:ei=:ic=\EO:im=:kd=\EB:kh=\EE:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eb^D:sf=^J:so=\Ea^D:\ + :ue=\Eb^A:up=\EA:us=\Ea^A: +# (vremote: removed obsolete ":nl@:" -- esr) +vremote|virtual remote terminal:\ + :am@:\ + :co#79:tc=cbunix: + +pty|4bsd pseudo teletype:\ + :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb\041:us=\Ea\041:tc=cbunix: + +######## OTHER OBSOLETE TYPES +# +# These terminals are *long* dead -- these entries are retained for +# historical interest only. +# + +#### Obsolete non-ANSI software emulations +# + +#### Avatar +# +# These entries attempt to describe Avatar, a terminal emulation used with +# MS-DOS bulletin-board systems. It was designed to give ANSI-like +# capabilities, but with cheaper (shorter) control sequences. Messy design, +# excessively dependent on PC idiosyncracies, but apparently rather popular +# in the BBS world. +# +# No color support. Avatar doesn't fit either of the Tektronix or HP color +# models that terminfo knows about. An Avatar color attribute is the +# low 7 bits of the IBM-PC display-memory attribute. Bletch. +# +# I wrote these entries while looking at the Avatar spec. I don't have +# the facilities to test them. Let me know if they work, or don't. +# +# Avatar escapes not used by these entries (because maybe you're smarter +# and more motivated than I am and can figure out how to wrap terminfo +# around some of them, and because they are weird enough to be funny): +# level 0: +# ^L -- clear window/reset current attribute to default +# ^V^A%p1%c -- set current color attribute, parameter decodes as follows: +# +# bit: 6 5 4 3 2 1 0 +# | | | | | +# +---+---+ | +---+---+ +# | | | +# | | foreground color +# | foreground intensity +# background color +# level 0+: +# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines +# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines +# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 +# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 +# (^V^L and ^V^M set the current attribute as a side-effect.) +# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes +# in the pattern, <c> the number of times the pattern +# should be repeated. If either value is 0, no-op. +# The pattern can contain Avatar console codes, +# including other ^V ^Y patterns. +# level 1: +# ^V^O -- clockwise mode on; turn print direction right each time you +# hit a window edge (yes, really). Turned off by CR +# ^V^P -- no-op +# ^V^Q%c -- query the driver +# ^V^R -- driver reset +# ^V^S -- Sound tone (PC-specific) +# ^V^T -- change highlight at current cursor poition to %c +# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b> +# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c +# -- define window +# +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +# (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to +# tell ncurses that the corresponding highlights exist; it should use :sa:, +# which is the only method that will actually work for multiple highlights.) +avatar0|avatar terminal emulator level 0:\ + :am:ms:ut:\ + :co#80:it#8:li#25:\ + :as=:ce=^V^G:cm=\026\010%.%.:cr=^M:do=^V^D:le=^V^E:\ + :mb=^A^V\177:md=^V^A^P:me=^V^A^G:mk=^V^A\0:mr=^A^Vp:\ + :nd=^V^F:r2=^L:rp=\031%.%d:\ + :..sa=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;:\ + :sf=^J:so=^A^Vp:up=^V^C:us=^V^A:\ + :tc=klone+acs: +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +avatar0+|avatar terminal emulator level 0+:\ + :dc=^V^N:ei=\026\n\0\0\0\0:im=^V^I:tc=avatar0: +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +avatar|avatar1|avatar terminal emulator level 1:\ + :RA=^V":SA=^V$:al=^V+:dl=^V-:ei=^V^P:ve=^V'^A:vi=^V'^B:\ + :vs=^V^C:\ + :tc=avatar0+: + +#### RBcomm +# +# RBComm is a lean and mean terminal emulator written by the Interrupt List +# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early +# '90s), especially in the BBS world, and still has some loyal users due to +# its very small memory footprint and to a cute macro language. +rbcomm|IBM PC with RBcomm and EMACS keybindings:\ + :am:bw:mi:ms:xn:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:al=^K:bl=^G:bt=\E[Z:cd=^F5:ce=^P^P:\ + :cl=^L:cm=\037%r%+ %+ :cr=^M:cs=\E[%i%d;%dr:dc=^W:dl=^Z:\ + :dm=:do=^C:ec=\E[%dX:ed=:ei=^]:im=^\:\ + :is=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g:kb=^H:kd=^N:\ + :ke=\E>:kh=^A:kl=^B:kr=^F:ks=\E=:ku=^P:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[8m:mr=^R:nd=^B:nw=^M\ED:\ + :r1=\017\E(B\E)0\025\E[?3l\E[>8g:rc=\E8:rp=\030%.%.:\ + :sc=\E7:se=^U:sf=\ED:so=^R:sr=\EM:ta=^I:te=:ti=:ue=^U:up=^^:\ + :us=^T:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: +rbcomm-nam|IBM PC with RBcomm without autowrap:\ + :am@:\ + :bl=^G:cr=^M:do=^J:\ + :is=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g:kb=^H:kd=^J:\ + :kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=rbcomm: +rbcomm-w|IBM PC with RBcomm in 132 column mode:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:\ + :is=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g:kb=^H:kd=^J:\ + :kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=rbcomm: + +# CTRM terminal emulator +# 1. underlining is not allowed with colors: first, is is simulated by +# black on white, second, it disables background color manipulations. +# 2. BLINKING, REVERSE and BOLD are allowed with colors, +# so we have to save their status in the static registers A, B and H +# respectively, to be able to restore them when color changes +# (because any color change turns off ALL attributes) +# 3. :md: and :mr: sequences alternate modes, +# rather then simply entering them. Thus we have to check the +# static register B and H to determine the status, before sending the +# escape sequence. +# 4. :me: now must set the status of all 3 register (A,B,H) to zero +# and then reset colors +# 5. implementation of the protect mode would badly penalize the performance. +# we would have to use \E&bn sequence to turn off colors (as well as all +# other attributes), and keep the status of protect mode in yet another +# static variable. If someone really needs this mode, they would have to +# create another terminfo entry. +# 6. original color-pair is white on black. +# store the information about colors into static registers +# 7. set foreground color. it performs the following steps. +# 1) turn off all attributes +# 2) turn on the background and video attributes that have been turned +# on before (this information is stored in static registers X,Y,Z,A,B,H,D). +# 3) turn on foreground attributes +# 4) store information about foreground into U,V,W static registers +# 8. turn on background: similar to turn on foreground above +# (untranslatable capabilities removed to fit entry within 1023 bytes) +ctrm|C terminal emulator:\ + :am:ut:xo:\ + :Co#8:NC#2:Nl#0:co#80:lh#0:li#24:lm#0:lw#0:pa#63:pb#19200:vt#6:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\ + :do=^J:ei=\ER:im=\EQ:ip=:is=\E&jA\r:k1=\Ep\r:k2=\Eq\r:\ + :k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:\ + :kb=^H:kd=\Ew\r:ke=\E&jA:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:\ + :ks=\E&jB:ku=\Et\r:le=^H:mb=\E&dA%{1}%PA:\ + :md=%?%gH%{0}%=%t\E&dH%{1}%PH%;:\ + :me=\E&d@%{0}%PA%{0}%PB%{0}%PH:\ + :mr=%?%gB%{0}%=%t\E&dB%{1}%PB%;:nd=\EC:\ + :op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU:\ + :sf=^J:so=\E&dD:st=\E1:ta=\011:up=\EA:us=\E&dD: + +# gs6300 - can't use blue foreground, it clashes with underline; +# it's simulated with cyan +# Bug: The <op> capability probably resets attributes. +# (gs6300: commented out <rmln> (no <smln>) --esr) +gs6300|emots|AT&T PC6300 with EMOTS terminal emulator:\ + :am:ms:ut:xo:\ + :Co#8:co#80:it#8:li#24:pa#63:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:Sb=\E[?;%dm:\ + :..Sf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m:\ + :UP=\E[%dA:\ + :ac=++\054\054--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:\ + :ei=:ho=\E[H:ic=\E[@:im=:is=\E[m:k1=\E[0s:k2=\E[24s:\ + :k3=\E[1s:k4=\E[23s:k5=\E[2s:k6=\E[22s:k7=\E[3s:k8=\E[21s:\ + :kB=^R^I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m\E[10m:mr=\E[7m:nd=\E[C:\ + :op=\E[?;m:pf=\E[4i:po=\E[5i:r1=\Ec:sf=^J:so=\E[1m:sr=\E[L:\ + :ta=^I:up=\E[A:us=\E[4m: + +# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT +# MS-Kermit with Heath-19 emulation mode enabled +# (h19k: changed ":pt@:" to ":it@" +h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin):\ + :am@:da:db:xt:\ + :it@:\ + :ta@:tc=h19-u: + +# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy +# Software (formerly Peripherals Computers & Supplies, Inc) of +# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can +# also be reached at support@synergy.com. +versaterm|versaterm vt100 emulator for the macintosh:\ + :am:xn:\ + :co#80:it#8:li#24:\ + :al=9\E[1L:bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=7\E[1P:\ + :dl=9\E[1M:do=^J:ei=:ho=\E[H:ic=7\E[1@:im=:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E>\E[?1l:kl=\EOD:kr=\EOC:ks=\E=\E[?1h:\ + :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:nw=^M^J:r1=\E>:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:so=2\E[7m:\ + :sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +# From: Rick Thomas <ihnp4!btlunix!rbt> +# (xtalk: I added <rmam>/<smam> based on the init string. +xtalk|IBM PC with xtalk communication program (versions up to 3.4):\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:sg#1:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:me=\E[m:nd=\E[C:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:se=\E[m :sf=^J:\ + :so=\E[7m :sr=\EM:st=\EH:ta=^I:up=\E[A: + +# The official PC terminal emulator program of the AT&T Product Centers. +# Note - insert mode commented out - doesn't seem to work on AT&T PC. +simterm|attpc running simterm:\ + :am:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E=%+ %+ :cr=^M:\ + :dc=\ER:dl=\EM:do=\EB:ho=\EH:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\ + :sf=^J:so=\E&dB:te=\EVE:ti=\EVS:up=\EA: + +#### Miscellaneous obsolete terminals, manufacturers unknown +# +# If you have any information about these (like, a manufacturer's name, +# and a date on the serial-number plate) please send it! + +cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\ + :am:bs:\ + :co#73:li#36:\ + :cl=^Z:ho=^^:le=^H:nd=^L:up=^K: +cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars:\ + :am:bs:\ + :co#85:li#39:\ + :cl=^Z:ho=^^:k1=\E5:k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:\ + :kr=\E4:ku=\E1:le=^H:nd=^L:se=\Em^C:so=\Em^L:up=^K: +cops10|cops|cops-10|cops 10:\ + :am:bw:\ + :co#80:li#24:\ + :bl=^G:cd=^W:ce=^V:cl=30\030:cm=\020%+ %+ :cr=^M:do=^J:\ + :kb=^H:kd=^J:kh=^Y:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# (d132: removed duplicate :ic=\E5:, +# merged in capabilities from a BRL entry -- esr) +d132|datagraphix|datagraphix 132a:\ + :da:db:in:\ + :co#80:li#30:\ + :al=\E3:bl=^G:cl=^L:cm=\E8%i%3%3:cr=^M:dc=\E6:do=^J:ei=:\ + :ho=\ET:ic=\E5:im=:kb=^H:kd=^J:kl=^H:le=^H:nd=\EL:nw=^M^J:\ + :sf=^J:sr=\Ew:ta=^I:up=\EK:ve=\Em\En:vs=\Ex: +# The d800 was an early portable terminal from c.1984-85 that looked a lot +# like the original Compaq `lunchbox' portable (but no handle). It had a vt220 +# mode (which is what this entry looks like) and several other lesser-known +# emulations. +d800|Direct 800/A:\ + :am:bs:da:db:ms:xs:\ + :co#80:it#8:li#24:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\E[m:as=\E[1m:bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[>12h:\ + :vs=\E[>12l: +digilog|digilog 333:\ + :bs:\ + :co#80:li#16:\ + :bl=^G:ce=^X:cr=^M:do=^J:ho=^N:le=^H:nd=^I:sf=^J:up=^O: +# The DWK was a terminal manufactured in the Soviet Union c.1986 +dwk|dwk-vt|dwk terminal:\ + :am:\ + :co#80:it#8:li#24:\ + :ac=+\136\054Q-S.M0\177`+a\072f'g#h#i#jXkClJmFnNo~qUs_tEuPv\wKxW~_:\ + :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ + :cr=^M:dc=\EP:do=^J:ei=:ho=\EH:ic=\EQ:im=:k1=\Ef1:k2=\Ef2:\ + :k3=\Ef3:k4=\Ef4:k5=\Ef5:k6=\Ef6:k7=\Ef7:k8=\Ef8:k9=\Ef9:\ + :k;=\Ef0:kD=\Ee:kI=\Ed:kN=\Eh:kP=\Eg:kb=\177:kd=\EB:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:me=\EX:mr=\ET:nd=\EC:nw=^M^J:se=\EX:\ + :sf=^J:so=\ET:sr=\ES:ta=^I:up=\EA: +env230|envision230|envision 230 graphics terminal:\ + :xn@:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i:\ + :..sa=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:tc=vt100: +# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic +# coupler attached, the whole rig fitting in a suitcase and more or less +# portable. Hot stuff for c.1977 :-) -- esr +ep48|ep4080|execuport 4080:\ + :am:bs:os:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J: +ep40|ep4000|execuport 4000:\ + :co#136:tc=ep4080: +# Adam Thompson <athompso@pangea.ca> tells us: +# Informer series - these are all portable units, resembling older +# automatic bread-baking machines. The terminal looks like a `clamshell' +# design, but isn't. The structure is similar to the Direct terminals, +# but only half the width. The entire unit is only about 10" wide. +# It features an 8" screen (6" or 7" if you have color!), and an 9"x6" +# keyboard. All the keys are crammed together, much like some laptop +# PCs today, but perhaps less well organized...all these units have a +# bewildering array of plugs on the back, including a built-in modem. +# The 305 was a color version of the 304; the 306 and 307 were mono and +# color terminals built for IBM bisync protocols. +# From: Paul Leondis <unllab@amber.berkeley.edu> +ifmr|Informer D304:\ + :am:bs:\ + :co#80:li#24:\ + :cd=\E/:ce=\EQ:cl=\EZ:cm=\EY%r%+ %+ :dc=\E\:do=^J:ei=:\ + :ho=\EH:ic=\E[:im=:le=^H:me=\EK:nd=\EC:se=\EK:so=\EJ:sr=\En:\ + :up=\EA: +# Entry largely based on wy60 and has the features of wy60ak. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys:\ + :am:bw:hs:km:mi:ms:ul:xo:\ + :co#80:li#24:ws#80:\ + :ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:\ + :cm=\Ea%i%dR%dC:cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\Ez(\r:\ + :ei=\Er:fs=^M:ho=\036:if=/usr/share/tabset/std:im=\Eq:ip=:\ + :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=^J:sr=\Ej:\ + :st=\E1:ta=\011:te=:\ + :ti=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177:\ + :ts=\Ez(:uc=\EG8%p1%c\EG0:up=^K:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +teletec|Teletec Datascreen:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:up=^K: +# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu> +# This description is for the LANPAR Technologies VISION 3220 +# terminal from 1984/85. The function key definitions k0-k5 represent the +# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN, +# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys. +# +# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998: +# I had a couple of scopes (3221) like this once where I used to work, around +# the 1987 time frame if memory serves me correctly. These scopes were made +# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220 +# compatible. The 3220 was a plain text terminal like the VT-220, the 3221 +# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222 +# was like the VT-241 (color with Regis + Sixel Graphics). These terminals +# (3221) cost about $1500 each, and one was always broken -- had to be sent +# back to the shop for repairs. +# The only real advantage these scopes had over the VT-240's were: +# 1) They were faster in the Regis display, or at least the ones I did +# 2) They had a handy debugging feature where you could split-screen the +# scope, the graphics would appear on the top, and the REGIS commands would +# appear on the bottom. I don't remember the VT-240s being able to do that. +# I would swear that LANPAR Technologies was in MA someplace, but since I +# don't work at the same place anymore, and those terminals and manuals were +# long since junked, I cannot be any more sure than that. +# +# (v3220: removed obsolete ":kn#10:", +# I added <rmam>/<smam> based on the init string -- esr) +v3220|LANPAR Vision II model 3220/3221/3222:\ + :am:bs:mi:xn:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:\ + :is=\E>\E[?3l\E[?7h\E[?8h\E[p:k0=\E[1~:k1=\E[2~:\ + :k2=\E[3~:k3=\E[4~:k4=\E[5~:k5=\E[6~:k6=\E[OP:k7=\E[OQ:\ + :k8=\E[OR:k9=\E[OS:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E=:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +######## ICH/ICH1 VERSUS RMIR/SMIR +# +# Some non-curses applications get confused if both ich/ich1 and rmir/smir +# are present; the symptom is doubled characters in an update using insert. +# These applications are technically correct; in both 4.3BSD termcap and +# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir +# unless the terminal needs both. To my knowledge, no terminal still in this +# file requires both other than the very obsolete dm2500. +# +# For ncurses-based applications this is not a problem, as ncurses uses +# one or the other as appropriate but never mixes the two. Therefore we +# have not corrected entries like `linux' and `xterm' that specify both. +# If you see doubled characters from these, use the linux-nic and xterm-nic +# entries that suppress ich/ich1. And upgrade to ncurses! +# + +######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS +# +# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and +# ECMA-48 standards are said to be almost identical, but are not the same +# as X3.64 (though for practical purposes they are close supersets of it). +# +# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch +# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for +# Coded Character Sets"), include your snail-mail address, and you should +# receive the document in due course. Don't expect an email acknowledgement. +# +# Related standards include "X3.4-1977: American National Standard Code for +# Information Interchange" (the ASCII standard) and "X3.41.1974: +# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of +# American National Standard for Information Interchange." I believe (but +# am not certain) that these are effectively identical to ECMA-6 and ECMA-35 +# respectively. +# + +#### VT100/ANSI/ECMA-48 +# +# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals +# and ECMA-48 Control Functions for Coded Character Sets. +# +# Much of the content of this comment is adapted from a table prepared by +# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences, +# discussion of some terminfo-related issues, and updates to capture ECMA-48 +# have been added. Control functions described in ECMA-48 only are tagged +# with * after their names. +# +# The table is a complete list of the defined ANSI X3.64/ECMA-48 control +# sequences. In the main table, \E stands for an escape (\033) character, +# SPC for space. Pn stands for a single numeric parameter to be inserted +# in decimal ASCII. Ps stands for a list of such parameters separated by +# semicolons. Parameter meanings for most parametrized sequences are +# decribed in the notes. +# +# Sequence Sequence Parameter or +# Mnemonic Name Sequence Value Mode terminfo +# ----------------------------------------------------------------------------- +# APC Applicatn Program Command \E _ - Delim - +# BEL Bell * ^G - - bel +# BPH Break Permitted Here * \E B - * - +# BS Backpace * ^H - EF - +# CAN Cancel * ^X - - - (A) +# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt +# CCH Cancel Previous Character \E T - - - +# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B) +# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C) +# CMD Coding Method Delimiter * \E +# CNL Cursor Next Line \E [ Pn E 1 eF nel (D) +# CPL Cursor Preceding Line \E [ Pn F 1 eF - +# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E) +# CSI Control Sequence Intro \E [ - Intro - +# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F) +# CUB Cursor Backward \E [ Pn D 1 eF cub +# CUD Cursor Down \E [ Pn B 1 eF cud +# CUF Cursor Forward \E [ Pn C 1 eF cuf +# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G) +# CUU Cursor Up \E [ Pn A 1 eF cuu +# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H) +# DA Device Attributes \E [ Pn c 0 - - +# DAQ Define Area Qualification \E [ Ps o 0 - - +# DCH Delete Character \E [ Pn P 1 eF dch +# DCS Device Control String \E P - Delim - +# DL Delete Line \E [ Pn M 1 eF dl +# DLE Data Link Escape * ^P - - - +# DMI Disable Manual Input \E \ - Fs - +# DSR Device Status Report \E [ Ps n 0 - - (I) +# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC - +# EA Erase in Area \E [ Ps O 0 eF - (J) +# ECH Erase Character \E [ Pn X 1 eF ech +# ED Erase in Display \E [ Ps J 0 eF ed (J) +# EF Erase in Field \E [ Ps N 0 eF - +# EL Erase in Line \E [ Ps K 0 eF el (J) +# EM End of Medium * ^Y - - - +# EMI Enable Manual Input \E b Fs - +# ENQ Enquire ^E - - - +# EOT End Of Transmission ^D - * - +# EPA End of Protected Area \E W - - - (K) +# ESA End of Selected Area \E G - - - +# ESC Escape ^[ - - - +# ETB End Transmission Block ^W - - - +# ETX End of Text ^C - - - +# FF Form Feed ^L - - - +# FNK Function Key * \E [ Pn SPC W - - - +# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - - +# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE - +# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L) +# GSS Graphic Size Selection \E [ Pn SPC C none FE - +# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B) +# HPB Char Position Backward \E [ j 1 FE - +# HPR Horz Position Relative \E [ Pn a 1 FE - (M) +# HT Horizontal Tab * ^I - FE - (N) +# HTJ Horz Tab w/Justification \E I - FE - +# HTS Horizontal Tab Set \E H - FE hts +# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G) +# ICH Insert Character \E [ Pn @ 1 eF ich +# IDCS ID Device Control String \E [ SPC O - * - +# IGS ID Graphic Subrepertoire \E [ SPC M - * - +# IL Insert Line \E [ Pn L 1 eF il +# IND Index \E D - FE - +# INT Interrupt \E a - Fs - +# JFY Justify \E [ Ps SPC F 0 FE - +# IS1 Info Separator #1 * ^_ - * - +# IS2 Info Separator #1 * ^^ - * - +# IS3 Info Separator #1 * ^] - * - +# IS4 Info Separator #1 * ^\ - * - +# LF Line Feed ^J - - - +# LS1R Locking Shift Right 1 * \E ~ - - - +# LS2 Locking Shift 2 * \E n - - - +# LS2R Locking Shift Right 2 * \E } - - - +# LS3 Locking Shift 3 * \E o - - - +# LS3R Locking Shift Right 3 * \E | - - - +# MC Media Copy \E [ Ps i 0 - - (S) +# MW Message Waiting \E U - - - +# NAK Negative Acknowledge * ^U - * - +# NBH No Break Here * \E C - - - +# NEL Next Line \E E - FE nel (D) +# NP Next Page \E [ Pn U 1 eF - +# NUL Null * ^@ - - - +# OSC Operating System Command \E ] - Delim - +# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - - +# PFS Page Format Selection * \E Pn SPC J 0 - - +# PLD Partial Line Down \E K - FE - (T) +# PLU Partial Line Up \E L - FE - (U) +# PM Privacy Message \E ^ - Delim - +# PP Preceding Page \E [ Pn V 1 eF - +# PPA Page Position Absolute * \E [ Pn SPC P 1 FE - +# PPB Page Position Backward * \E [ Pn SPC R 1 FE - +# PPR Page Position Forward * \E [ Pn SPC Q 1 FE - +# PTX Parallel Texts * \E [ \ - - - +# PU1 Private Use 1 \E Q - - - +# PU2 Private Use 2 \E R - - - +# QUAD Typographic Quadding \E [ Ps SPC H 0 FE - +# REP Repeat Char or Control \E [ Pn b 1 - rep +# RI Reverse Index \E M - FE - (V) +# RIS Reset to Initial State \E c - Fs - +# RM Reset Mode * \E [ Ps l - - - (W) +# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - - +# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X) +# SCI Single-Char Introducer \E Z - - - +# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - - +# SCS Set Char. Spacing * \E [ Pn SPC g - - - +# SD Scroll Down \E [ Pn T 1 eF rin +# SDS Start Directed String * \E [ Pn ] 1 - - +# SEE Select Editing Extent \E [ Ps Q 0 - - (Y) +# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - - +# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O) +# SHS Select Char. Spacing * \E [ Ps SPC K 0 - - +# SI Shift In ^O - - - (P) +# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - - +# SL Scroll Left \E [ Pn SPC @ 1 eF - +# SLH Set Line Home * \E [ Pn SPC U - - - +# SLL Set Line Limit * \E [ Pn SPC V - - - +# SLS Set Line Spacing * \E [ Pn SPC h - - - +# SM Select Mode \E [ Ps h none - - (W) +# SO Shift Out ^N - - - (Q) +# SOH Start Of Heading * ^A - - - +# SOS Start of String * \E X - - - +# SPA Start of Protected Area \E V - - - (Z) +# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - - +# SPH Set Page Home * \E [ Ps SPC G - - - +# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE - +# SPL Set Page Limit * \E [ Ps SPC j - - - +# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - - +# SR Scroll Right \E [ Pn SPC A 1 eF - +# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - - +# SRS Start Reversed String * \E [ Ps [ 0 - - +# SSA Start of Selected Area \E F - - - +# SSU Select Size Unit * \E [ Pn SPC I 0 - - +# SSW Set Space Width * \E [ Pn SPC [ none - - +# SS2 Single Shift 2 (G2 set) \E N - Intro - +# SS3 Single Shift 3 (G3 set) \E O - Intro - +# ST String Terminator \E \ - Delim - +# STAB Selective Tabulation * \E [ Pn SPC ^ - - - +# STS Set Transmit State \E S - - - +# STX Start pf Text * ^B - - - +# SU Scroll Up \E [ Pn S 1 eF indn +# SUB Substitute * ^Z - - - +# SVS Select Line Spacing * \E [ Pn SPC \ 1 - - +# SYN Synchronous Idle * ^F - - - +# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - - +# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - - +# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - - +# TBC Tab Clear \E [ Ps g 0 FE tbc +# TCC Tabul. Centered on Char * \E [ Pn SPC c - - - +# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE - +# TSS Thin Space Specification \E [ Pn SC E none FE - +# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa +# VPB Line Position Backward * \E [ Pn k 1 FE - +# VPR Vert. Position Relative \E [ Pn e 1 FE - (R) +# VT Vertical Tabulation * ^K - FE - +# VTS Vertical Tabulation Set \E J - FE - +# +# --------------------------------------------------------------------------- +# +# Notes: +# +# Some control characters are listed in the ECMA-48 standard without +# being assigned functions relevant to terminal control there (they +# referred to other standards such as ISO 1745 or ECMA-35). They are listed +# here anyway for completeness. +# +# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation. +# +# (B) There seems to be some confusion abroad between CHA and HPA. Most +# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls +# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but +# preserved the CHA abbreviation. +# +# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I. +# Occasionally (as on, for example, certain HP terminals) this has the HTJ +# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the +# CHT abbreviation. +# +# (D) terminfo (nel) is usually \r\n rather than ANSI \EE. +# +# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR +# abbreviation. +# +# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear +# char tab, 3 = clear line tab, 4 = clear all char tabs on current line, +# 5 = clear all char tabs, 6 = clear all line tabs. +# +# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept +# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character +# Position Absolute" but retains the HVP abbreviation. +# +# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT +# abbreviation. +# +# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR +# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request +# DSR, 6 = request CPR response. +# +# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end, +# 1 = clear from beginning, 2 = clear. +# +# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation. +# +# (L) The GSM parameters are vertical and horizontal parameters to scale by. +# +# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals +# use CUF for this function and ignore HPR. ECMA-48 calls this "Character +# Position Relative" but retains the HPR abbreviation. +# +# (N) ECMA-48 calls this "Character Tabulation" but retains the HT +# abbreviation. +# +# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold, +# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink, +# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion), +# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur, +# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4, +# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off +# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow +# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set +# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg +# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg, +# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set +# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 = +# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved, +# 61-65 = variable highlights for ideograms. +# +# (P) SI is also called LSO, Locking Shift Zero. +# +# (Q) SI is also called LS1, Locking Shift One. +# +# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals +# use CUD for this function and ignore VPR. ECMA calls it `Line Position +# Absolute' but retains the VPA abbreviation. +# +# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from +# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer +# from secondary aux device, 4 = stop relay to primary aux device, 5 = +# start relay to primary aux device, 6 = stop relay to secondary aux device, +# 7 = start relay to secondary aux device. +# +# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD +# abbreviation. +# +# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD +# abbreviation. +# +# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation. +# +# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM), +# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM), +# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM), +# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional +# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM), +# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM), +# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM), +# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer +# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer +# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed +# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 = +# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed +# from ECMA-48's 5th edition but are listed here for reference. +# +# (X) Select Alternate Presentation Variants is used only for non-Latin +# alphabets. +# +# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM). +# +# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA +# abbreviation. +# +# --------------------------------------------------------------------------- +# +# Abbreviations: +# +# Intro an Introducer of some kind of defined sequence; the normal 7-bit +# X3.64 Control Sequence Introducer is the two characters "Escape [" +# +# Delim a Delimiter +# +# x/y identifies a character by position in the ASCII table (column/row) +# +# eF editor function (see explanation) +# +# FE format effector (see explanation) +# +# F is a Final character in +# an Escape sequence (F from 3/0 to 7/14 in the ASCII table) +# a control sequence (F from 4/0 to 7/14) +# +# Gs is a graphic character appearing in strings (Gs ranges from +# 2/0 to 7/14) in the ASCII table +# +# Ce is a control represented as a single bit combination in the C1 set +# of controls in an 8-bit character set +# +# C0 the familiar set of 7-bit ASCII control characters +# +# C1 roughly, the set of control chars available only in 8-bit systems. +# This is too complicated to explain fully here, so read Jim Fleming's +# article in the February 1983 BYTE, especially pages 214 through 224. +# +# Fe is a Final character of a 2-character Escape sequence that has an +# equivalent representation in an 8-bit environment as a Ce-type +# (Fe ranges from 4/0 to 5/15) +# +# Fs is a Final character of a 2-character Escape sequence that is +# standardized internationally with identical representation in 7-bit +# and 8-bit environments and is independent of the currently +# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) +# +# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the +# ASCII table +# +# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII +# table +# +# Pn is a numeric parameter in a control sequence, a string of zero or +# more characters ranging from 3/0 to 3/9 in the ASCII table +# +# Ps is a variable number of selective parameters in a control sequence +# with each selective parameter separated from the other by the code +# 3/11 (which usually represents a semicolon); Ps ranges from +# 3/0 to 3/9 and includes 3/11 +# +# * Not relevant to terminal control, listed for completeness only. +# +# Format Effectors versus Editor Functions +# +# A format effector specifies how following output is to be displayed. +# An editor function allows you to modify the display. Informally +# format effectors may be destructive; format effectors should not be. +# +# For instance, a format effector that moves the "active position" (the +# cursor or equivalent) one space to the left would be useful when you want to +# create an overstrike, a compound character made of two standard characters +# overlaid. Control-H, the Backspace character, is actually supposed to be a +# format effector, so you can do this. But many systems use it in a +# nonstandard fashion, as an editor function, deleting the character to the +# left of the cursor and moving the cursor left. When Control-H is assumed to +# be an editor function, you cannot predict whether its use will create an +# overstrike unless you also know whether the output device is in an "insert +# mode" or an "overwrite mode". When Control-H is used as a format effector, +# its effect can always be predicted. The familiar characters carriage +# return, linefeed, formfeed, etc., are defined as format effectors. +# +# NOTES ON THE DEC VT100 IMPLEMENTATION +# +# Control sequences implemented in the VT100 are as follows: +# +# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, +# LNM, NEL, RI, RIS, RM, SGR, SM, TBC +# +# plus several private DEC commands. +# +# Erasing parts of the display (EL and ED) in the VT100 is performed thus: +# +# Erase from cursor to end of line Esc [ 0 K or Esc [ K +# Erase from beginning of line to cursor Esc [ 1 K +# Erase line containing cursor Esc [ 2 K +# Erase from cursor to end of screen Esc [ 0 J or Esc [ J +# Erase from beginning of screen to cursor Esc [ 1 J +# Erase entire screen Esc [ 2 J +# +# Some brain-damaged terminal/emulators respond to Esc [ J as if it were +# Esc [ 2 J, but this is wrong; the default is 0. +# +# The VT100 responds to receiving the DA (Device Attributes) control +# +# Esc [ c (or Esc [ 0 c) +# +# by transmitting the sequence +# +# Esc [ ? l ; Ps c +# +# where Ps is a character that describes installed options. +# +# The VT100's cursor location can be read with the DSR (Device Status +# Report) control +# +# Esc [ 6 n +# +# The VT100 reports by transmitting the CPR sequence +# +# Esc [ Pl ; Pc R +# +# where Pl is the line number and Pc is the column number (in decimal). +# +# The specification for the DEC VT100 is document EK-VT100-UG-003. + +#### ANSI.SYS +# +# Here is a description of the color and attribute controls supported in the +# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI +# terminal emulators for Intel boxes obey these. They are a proper subset +# of the ECMA-48 escapes. +# +# 0 all attributes off +# 1 foreground bright +# 4 underscore on +# 5 blink on/background bright (not reliable with brown) +# 7 reverse-video +# 8 set blank (non-display) +# 10 set primary font +# 11 set first alternate font (on PCs, display ROM characters 1-31) +# 12 set second alternate font (on PCs, display IBM high-half chars) +# +# Color attribute sets +# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown, +# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white +# Bright black becomes gray. Bright brown becomes yellow, +# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard. +# +# * If the 5 attribute is on and you set a background color (40-47) it is +# supposed to enable bright background. +# +# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing +# when you try to set a "bright brown" (yellow) background with attribute +# 5 (you get a blinking yellow foreground instead). A few displays +# (including the System V console) support an attribute 6 that undoes this +# braindamage (this is required by iBCS2). +# +# * Some older versions of ANSI.SYS have a bug that causes thems to require +# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48 +# compatible.) + +#### Intel Binary Compatibility Standard +# +# For comparison, here are the capabilities implied by the Intel Binary +# Compatibility Standard for UNIX systems (Intel order number 468366-001). +# These recommendations are optional. IBCS2 allows the leading escape to +# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with +# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities +# (as described in figure 9-3 of the standard). Those expressed in the ibcs2 +# terminfo entry are followed with the corresponding capability in parens: +# +# CSI <n>k disable (n=0) or enable (n=1) keyclick +# CSI 2h lock keyboard +# CSI 2i send screen as input +# CSI 2l unlock keyboard +# CSI 6m enable background color intensity +# CSI <0-2>c reserved +# CSI <0-59>m select graphic rendition +# CSI <n>;<m>H (cup) cursor to line n and column m +# CSI <n>;<m>f cursor to line n and column m +# CSI <n>@ (ich) insert characters +# CSI <n>A (cuu) cursor up n lines +# CSI <n>B (cud) cursor down n lines +# CSI <n>C (cuu) cursor right n characters +# CSI <n>D (cud) cursor left n characters +# CSI <n>E cursor down n lines and in first column +# CSI <n>F cursor up n lines and in first column +# CSI <n>G (hpa) position cursor at column n-1 +# CSI <n>J (ed) erase in display +# CSI <n>K (el) erase in line +# CSI <n>L (il) insert line(s) +# CSI <n>P (dch) delete characters +# CSI <n>S (indn) scroll up n lines +# CSI <n>T (rin) scroll down n lines +# CSI <n>X (ech) erase characters +# CSI <n>Z (cbt) back up n tab stops +# CSI <n>` cursor to column n on line +# CSI <n>a (cuu) cursor right n characters +# CSI <n>d (vpa) cursor to line n +# CSI <n>e cursor down n lines and in first column +# CSI <n>g (cbt) clear all tabs +# CSI <n>z make virtual terminal n active +# CSI ?7h (smam) turn automargin on +# CSI ?7l (rmam) turn automargin off +# CSI s save cursor position +# CSI u restore cursor position to saved value +# CSI =<c>A set overscan color +# CSI =<c>F set normal foreground color +# CSI =<c>G set normal background color +# CSI =<c>H set reverse foreground color +# CSI =<c>I set reverse foreground color +# CSI =<c>J set graphic foreground color +# CSI =<c>K set graphic foreground color +# CSI =<n>g (dispc) display n from alternate graphics character set +# CSI =<p>;<d>B set bell parameters +# CSI =<s>;<e>C set cursor parameters +# CSI =<x>D enable/disable intensity of background color +# CSI =<x>E set/clear blink vs. bold background +# CSI 7 (sc) (sc) save cursor position +# CSI 8 (rc) (rc) restore cursor position to saved value +# CSI H (hts) (hts) set tab stop +# CSI Q<n><string> define function key string +# (string must begin and end with delimiter char) +# CSI c (clear) clear screen +# +# The lack of any specification for attributes in SGR (among other things) +# makes this a wretchedly weak standard. The table above is literally +# everything iBSC2 has to say about terminal escape sequences; there is +# no further discussion of their meaning or how to set the parameters +# in these sequences at all. +# + +######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE +# +# The historical termcap file entries were written primarily in 4.4BSD termcap. +# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set, +# with the extension names chosen for compatibility with the termcap names +# assigned in System V terminfo. There are some variant extension sets out +# there. We try to describe them here. +# +# XENIX extensions: +# +# The XENIX extensions include a set of function-key capabilities as follows: +# +# code XENIX variable name terminfo name name clashes? +# ---- ------------------- ------------- ----------------------- +# CL key_char_left +# CR key_char_right +# CW key_change_window create_window +# EN key_end kend +# HM key_home khome +# HP ?? +# LD key_delete_line kdl1 +# LF key_linefeed label_off +# NU key_next_unlocked_cell +# PD key_page_down knp +# PL ?? +# PN start_print mc5 +# PR ?? +# PS stop_print mc4 +# PU key_page_up kpp pulse +# RC key_recalc remove_clock +# RF key_toggle_ref req_for_input +# RT key_return kent +# UP key_up_arrow kcuu1 parm_up_cursor +# WL key_word_left +# WR key_word_right +# +# The XENIX extensions also include the following character-set and highlight +# capabilities: +# +# XENIX terminfo function +# ----- -------- ------------------------------ +# GS smacs start alternate character set +# GE rmacs end alternate character set +# GG :as:/:ae: glitch (analogous to :sg:/:ug:) +# bo blink begin blink (not used in /etc/termcap) +# be end blink (not used in /etc/termcap) +# bb blink glitch (not used in /etc/termcap) +# it dim begin dim (not used in /etc/termcap) +# ie end dim (not used in /etc/termcap) +# ig dim glitch (not used in /etc/termcap) +# +# Finally, XENIX also used the following forms-drawing capabilities: +# +# single double type ASCII approximation +# ------ ------ ------------- ------------------- +# GV Gv vertical line | +# GH Gv horizontal line - _ +# G1 G5 top right corner _ | +# G2 G6 top left corner | +# G3 G7 bottom left corner |_ +# G4 G8 bottom right corner _| +# GD Gd down-tick character T +# GL Gl left-tick character -| +# GR Gr right-tick character |- +# GC Gc middle intersection -|- +# GU Gu up-tick character _|_ +# +# These were invented to take advantage of the IBM PC ROM character set. One +# can compose an acsc string from the single-width characters as follows +# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}" +# When translating a termcap file, ncurses tic will do this automatically. +# The double forms characters don't fit the SVr4 terminfo model. +# +# AT&T Extensions: +# +# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of +# nonstandard capabilities. Its signature is the KM capability, used to name +# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this +# set. Comments in the original, and a little cross-checking with other AT&T +# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh: +# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights), +# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make +# cursor invisible), and CV=:ve: (make cursor normal). +# +# HP Extensions +# +# The HP library (as of mid-1995, their term.h file version 70.1) appears to +# have the System V capabilities up to SVr1 level. After that, it supports +# two nonstandard caps meml and memu corresponding to the old termcap :ml:, +# :mu: capabilities. After that, it supports caps plab_norm, label_on, +# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the +# HP binary format incompatible with SVr4's. +# +# IBM Extensions +# +# There is a set of nonstandard terminfos used by IBM's AIX operating system. +# The AIX terminfo library diverged from SVr1 terminfo, and replaces all +# capabilities following prtr_non with the following special capabilties: +# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab, +# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr, +# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml, +# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents: +# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be +# renamed (to kcbt and kslt). The places in the box[12] capabilities +# correspond to acsc chars, here is the mapping: +# +# box1[0] = ACS_ULCORNER +# box1[1] = ACS_HLINE +# box1[2] = ACS_URCORNER +# box1[3] = ACS_VLINE +# box1[4] = ACS_LRCORNER +# box1[5] = ACS_LLCORNER +# box1[6] = ACS_TTEE +# box1[7] = ACS_RTEE +# box1[8] = ACS_BTEE +# box1[9] = ACS_LTEE +# box1[10] = ACS_PLUS +# +# The box2 characters are the double-line versions of these forms graphics. +# The AIX binary terminfo format is incompatible with SVr4's. +# +# Iris console extensions: +# +# HS is half-intensity start; HE is half-intensity end +# CT is color terminal type (for Curses & rogue) +# CP is color change escape sequence +# CZ are color names (for Curses & rogue) +# +# The ncurses tic utility recognizes HS as an alias for mh <dim>. +# +# TC Extensions: +# +# There is a set of extended termcaps associated with something +# called the "Terminal Control" or TC package created by MainStream Systems, +# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses +# CF for civis and CO for cvvis. Finally, they define a boolean :ct: +# that flags color terminals. +# +######## CHANGE HISTORY +# +# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94. +# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses +# project. +# +# This file contains all the capability information present in John Kunze's +# last version of the termcap master file, except as noted in the change +# comments at end of file. Some information about very ancient obsolete +# capabilities has been moved to comments. Some all-numeric names of older +# terminals have been retired. +# +# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some +# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer +# used by BSD curses. +# +# The 9.1.0 version of this file was translated from my lightly-edited copy of +# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for +# the purpose. Unless the ncurses tic implementation and the Lisp code were +# making perfectly synchronized mistakes which I then failed to catch by +# eyeball, the translation was correct and perfectly information-preserving. +# +# Major version number bumps correspond to major version changes in ncurses. +# +# Here is a log of the changes since then: +# +# 9.1.0 (Wed Feb 1 04:50:32 EST 1995): +# * First terminfo master translated from 8.3. +# 9.2.0 (Wed Feb 1 12:21:45 EST 1995): +# * Replaced Wyse entries with updated entries supplied by vendor. +# +# 9.3.0 (Mon Feb 6 19:14:40 EST 1995): +# * Added contact & status info from G. Clark Brown <clark@sssi.com>. +# 9.3.1 (Tue Feb 7 12:00:24 EST 1995): +# * Better XENIX keycap translation. Describe TC termcaps. +# * Contact and history info supplied by Qume. +# 9.3.2 (Sat Feb 11 23:40:02 EST 1995): +# * Raided the Shuford FTP site for recent termcaps/terminfos. +# * Added information on X3.64 and VT100 standard escape sequences. +# 9.3.3 (Mon Feb 13 12:26:15 EST 1995): +# * Added a correct X11R6 xterm entry. +# * Fixed terminfo translations of padding. +# 9.3.4 (Wed Feb 22 19:27:34 EST 1995): +# * Added correct acsc/smacs/rmacs strings for vt100 and xterm. +# * Added u6/u7/u8/u9 capabilities. +# * Added PCVT entry. +# 9.3.5 (Thu Feb 23 09:37:12 EST 1995): +# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry +# to use reverse-video standout so Emacs will look right. +# * Added el1 capability to ansi. +# * Added smacs/rmacs to ansi.sys. +# +# 9.4.0 (Sat Feb 25 16:43:25 EST 1995): +# * New mt70 entry. +# * Added COPYRIGHTS AND OTHER DELUSIONS. +# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics +# smartvid & smarterm, ampex 175 & 219 & 232, +# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20, +# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2, +# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan, +# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500. +# * Replaced the Perkin-Elmer entries with vendor's official ones. +# * Restored the old minimal-ansi entry, luna needs it. +# * Fixed some incorrect ip and proportional-padding translations. +# 9.4.1 (Mon Feb 27 14:18:33 EST 1995): +# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly. +# * Make the xterm entry 65 lines again; create xterm25 and xterm24 +# to force a particular height. +# * Added beehive4 and reorganized other Harris entries. +# 9.4.2 (Thu Mar 9 01:45:44 EST 1995): +# * Merged in DEC's official entries for its terminals. The only old +# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo). +# * Replaced the translated BBN Bitgraph entries with purpose-built +# ones from AT&T's SVr3. +# * Replaced the AT&T entries with AT&T's official terminfos. +# * Added teleray 16, vc415, cops10. +# * Merged in many individual capabilities from SCO terminfo files. +# 9.4.3 (Mon Mar 13 02:37:53 EST 1995): +# * Typo fixes. +# * Change linux entry so A_PROTECT enables IBM-PC ROM characters. +# 9.4.4 (Mon Mar 27 12:32:35 EST 1995): +# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803, +# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21, +# simterm, citoh and variants. +# * Replaced sol entry with sol1 and sol2. +# * Replaced Qume QVT and Freedom-series entries with purpose-built +# terminfo entries. +# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek +# and dg200 entries using caps from from SCO. +# * Added the usual set of function-key mappings to ANSI entry. +# * Corrected xterm's function-key capabilities. +# 9.4.5 (Tue Mar 28 14:27:49 EST 1995): +# * Fix in xterm entry, cub and cud are not reliable under X11R6. +# 9.4.6 (Thu Mar 30 14:52:15 EST 1995): +# * Fix in xterm entry, get the arrow keys right. +# * Change some \0 escapes to \200. +# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995) +# * Added apple (Videx card), adm1a, oadm31. +# * Fixed malformed ampex csr. +# * Fixed act4, cyb110; they had old-style prefix padding left in. +# * Changed mandatory to advisory padding in many entries. +# * Replaced HP entries up to hpsub with purpose-built ones. +# * Blank rmir/smir/rmdc/smdc capabilities removed. +# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924. +# 9.4.8 (Fri Apr 7 09:36:34 EDT 199): +# * Replaced the Ann Arbor entries with SCO's, the init strings are +# more efficient (but the entries otherwise identical). +# * Added dg211 from Shuford archive. +# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk, +# adm42-nl, pc52, gs6300, xerox820, uts30. +# * Pull SCO's padding into vi200 entry. +# * Improved capabilities for tvi4107 and other Televideo and Viewpoint +# entries merged in from SCO's descriptions. +# * Fixed old-style prefix padding on zen50, h1500. +# * Moved old superbee entry to superbee-xsb, pulled in new superbee +# entry from SCO's description. +# * Reorganized the special entries. +# * Added lm#0 to cbunix and virtual entries. +# +# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995): +# * Restored cdc456tst. +# * Fixed sb1 entry, SCO erroneously left out the xsb glitch. +# * Added megatek, beacon, microkit. +# * Freeze for ncurses-1.9 release. +# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995): +# * Added historical data for TAB. +# * Comment fixes from David MacKenzie. +# * Added the new BSDI pc3 entry. +# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995) +# * A change in the tic -C logic now ensures that all entries in +# the termcap translation will fit in < 1024 bytes. +# * Added `bobcat' and `gator' HP consoles and the Nu machine entries +# from GNU termcap file. This merges in all their local information. +# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995) +# * Changed tic -C logic to dump all capabilities used by GNU termcap. +# * Added warnings about entries with long translations (restoring +# all the GNU termcaps pushes a few over the edge). +# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995) +# * Yet another tic change, and a couple of entry tweaks, to reduce the +# number of long (> 1024) termcap translations back to 0. +# +# 9.6.0 (Mon May 1 10:35:54 EDT 1995) +# * Added kf13-kf20 to Linux entry. +# * Regularize Prime terminal names. +# * Historical data on Synertek. +# * Freeze for ncurses-1.9.1. +# 9.6.1 (Sat May 6 02:00:52 EDT 1995): +# * Added true xterm-color entry, renamed djm's pseudo-color entry. +# * Eliminate whitespace in short name fields, this tanks some scripts. +# * Name field changes to shorten some long entries. +# * Termcap translation now automatically generates empty rmir/smir +# when ich1/ich is present (copes with an ancient vi bug). +# * Added `screen' entries from FSF's screen-3.6.2. +# * Added linux-nic and xterm-nic entries. +# 9.6.2 (Sat May 6 17:00:55 EDT 1995): +# * Change linux entry to use smacs=\E[11m and have an explicit acsc, +# eliminating some special-case code in ncurses. +# +# 9.7.0 (Tue May 9 18:03:12 EDT 1995): +# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think +# that captures everything unique from it. +# * Added reorder script generator. +# * Freeze for ncurses 1.9.2 release. +# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995): +# * Added Sean Farley's kspd, flash, rs1 capabilities for linux. +# * Added Olaf Siebert's corrections for adm12. +# * ansi-pc-color now includes the colors and pairs caps, so that +# entries which use it will inherit them automatically. +# * The linux entry can now recognize the center (keypad 5) key. +# * Removed some junk that found its way into Linux acsc. +# +# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995): +# * Add 50% cut mark as a desperate hack to reduce tic's core usage. +# * xterm doesn't try to use application keypad mode any more. +# * Freeze for ncurses-1.9.3 release. +# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995): +# * Added corrected sun entry from vendor. +# * Added csr capability to linux entry. +# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG. +# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators. +# * Some commented-out caps in long entries come back in, my code +# for computing string-table lengths had a bug in it. +# * pcansi series modified to fit comm-program reality better. +# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995): +# * BSD/OS actually ships the ibmpc3 bold entry as its console. +# * Correct some bad aliases in the pcansi series +# * Added entry for QNX console. +# * Clean up duplicate long names for use with 4.4 library. +# * Change vt100 standout to be normal reverse vide, not bright reverse; +# this makes the Emacs status line look better. +# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995): +# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340. +# * Minor surgery, mostly on name strings, to shorten termcap version. +# +# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995): +# * Added dec-vt100 for use with the EWAN emulator. +# * Added kmous to xterm for use with xterm's mouse-tracking facility. +# * Freeze for 1.9.5 alpha release. +# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995): +# * Changed xterm lines to 24, the X11R6 default. +# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995): +# * Added 7 newly discovered, undocumented acsc characters to linux +# entry (the pryz{|} characters). +# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly. +# * Correct two typos in the xterm entries introduced in 9.9.1. +# * I finally figured out how to translate ko capabilities. Done. +# * Added tvi921 entries from Tim Theisen. +# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl. +# * Removed mystery tec entry, it was neither interesting nor useful. +# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f, +# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a, +# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211, +# by making them relative to use capabilities +# * Added cuf1=^L to tvi925 from deleted variant tvi925a. +# * fixed cup in adm22 entry and parametrized strings in vt320-k3. +# * added it#8 to entries that used to have :pt: -- tvi912, vi200, +# ampex80, +# * Translate all home=\E[;H capabilities to home=\E[H, they're +# equivalent. +# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of +# vt100 and ANSI-like terminals. +# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995): +# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic +# does this now, too. +# * fviewpoint is gone, it duplicated screwpoint. +# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c, +# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3, +# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW. +# The UW vi50 replaces the old one, which becomes vi50adm, +# * No more embedded commas in name fields. +# +# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995): +# * XENIX forms characters in fos, trs16, scoansi become acsc strings, +# * Introduced klone+* entries for describing Intel-console behavior. +# * Linux kbs is default-mapped to delete for some brain-dead reason. +# * -nsl -> -ns. The -pp syntax is obsolete. +# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs. +# * Make xterm entry do application-keypad mode again. I got complaints +# that it was messing up someone's 3270 emulator. +# * Added some longname fields in order to avoid warning messages from +# older tic implementations. +# * According to ctrlseqs.ms, xterm has a full vt100 graphics set. Use +# it! (This gives us pi, greater than, less than, and a few more.) +# * Freeze for ncurses-1.9.6 release. +# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995): +# * Add xon to a number of console entries, they're memory-mapped and +# don't need padding. +# * Correct the use dependencies in the ansi series. +# * Hand-translate more XENIX capabilities. +# * Added hpterm entry for HP's X terminal emulator. +# * Added aixterm entries. +# * Shortened four names so everything fits in 14 chars. +# +# 9.11.0 (Thu Nov 2 17:29:35 EST 1995): +# * Added ibcs2 entry and info on iBCS2 standard. +# * Corrected hpa/vpa in linux entry. They still fail the worm test. +# * We can handle the HP meml/memu capability now. +# * Added smacs to klone entries, just as documentation. +# * Carrected ansi.sys and cit-500 entries. +# * Added z39, vt320-k311, v220c, and avatar entries. +# * Make pcansi use the ansi.sys invis capability. +# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c, +# tvi925, tvi950, dt80, ncr7900i, h19. +# * X3.64 has been withdrawn, change some references. +# * Removed function keys from ansi-m entry. +# * Corrected ansi.sys entry. +# * Freeze for ncurses-1.9.7 release. +# 9.11.1 (Tue Nov 6 18:18:38 EST 1995): +# * Added rmam/smam capabilities to many entries based on init strings. +# * Added correct hpa/vpa to linux. +# * Reduced several entries relative to vt52. +# 9.11.2 (Tue Nov 7 00:21:06 EST 1995): +# * Exiled some utterly unidentifiable custom and homebrew types to the +# UFO file; also, obsolete small-screen hardware; also, entries which +# look flat-out incorrect, garbled, or redundant. These include the +# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec, +# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile, +# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu, +# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55, +# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2, +# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200, +# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40, +# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w, +# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na, +# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na, +# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb, +# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, +# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms. +# * Corrected pcvt25h as suggested by Brian C. Grayson +# <bgrayson@pine.ece.utexas.edu>. +# 9.11.3 (Thu Nov 9 12:14:40 EST 1995): +# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H. +# * Added kent=\EOM to xterm entry. +# +# 9.11.4 (Fri Nov 10 08:31:35 EST 1995): +# * Corrected gigi entry. +# * Restored cuf/cud1 to xterm, their apparent bugginess was due to +# bad hpa/vpa capabilities. +# * Corrected flash strings to have a uniform delay of .2 sec. No +# more speed-dependent NUL-padding! +# * terminfo capabilities in comments bracketed with <>. +# 9.11.5 (Fri Nov 10 15:35:02 EST 1995): +# * Replaced pcvt with the 3.31 pcvt entries. +# * Freeze for 1.9.7a. +# 9.11.6 (Mon Nov 13 10:20:24 EST 1995): +# * Added emu entry from the X11R6 contrib tape sources. +# +# 9.12.0 (Wed Nov 29 04:22:25 EST 1995): +# * Improved iris-ansi and sun entries. +# * More flash string improvements. +# * Corrected wy160 & wy160 as suggested by Robert Dunn +# * Added dim to at386. +# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says +# he's ready to start using the termcap generated from this one. +# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m, +# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220. +# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925, +# att610, att620, att630, +# * Changed hazeltine name prefix from h to hz. +# * Sent t500 to the UFI file. +# * I think we've sucked all the juice out of BSDI's termcap file now. +# * Freeze for ncurses 1.9.8 release +# 9.12.1 (Thu Nov 30 03:14:06 EST 1995) +# * Unfreeze, linux kbs needed to be fixed. +# * Tim Theisen pinned down a bug in the DMD firmware. +# 9.12.2 (Thu Nov 30 19:08:55 EST 1995): +# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko). +# (The broken ones had been shadowed by sgr.) +# 9.12.3 (Thu Dec 7 17:47:22 EST 1995): +# * Added documentation on ECMA-48 standard. +# * New Amiga entry. +# 9.12.4 (Thu Dec 14 04:16:39 EST 1995): +# * More ECMA-48 stuff +# * Corrected typo in minix entry, added pc-minix. +# * Corrected khome/kend in xterm (thank you again, Aaron Ucko). +# * Added rxvt entry. +# * Added 1.3.x color-change capabilities to linux entry. +# 9.12.5 (Tue Dec 19 00:22:10 EST 1995): +# * Corrected rxvt entry khome/kend. +# * Corrected linux color change capabilities. +# * NeXT entries from Dave Wetzel. +# * Cleaned up if and rf file names (all in /usr/share now). +# * Changed linux op capability to avoid screwing up a background color +# pair set by setterm. +# 9.12.6 (Wed Feb 7 16:14:35 EST 1996): +# * Added xterm-sun. +# 9.12.7 (Fri Feb 9 13:27:35 EST 1996): +# * Added visa50. +# +# 9.13.0 (Sun Mar 10 00:13:08 EST 1996): +# * Another sweep through the Shuford archive looking for new info. +# * Added dg100 alias to dg6053 based on a comp.terminals posting. +# * Added st52 from Per Persson. +# * Added eterm from the GNU Emacs 19.30 distribution. +# * Freeze for 1.9.9. +# 9.13.1 (Fri Mar 29 14:06:46 EST 1996): +# * FreeBSD console entries from Andrew Chernov. +# * Removed duplicate Atari st52 name. +# 9.13.2 (Tue May 7 16:10:06 EDT 1996) +# * xterm doesn't actually have ACS_BLOCK. +# * Change klone+color setf/setb to simpler forms that can be +# translated into termcap. +# * Added xterm1. +# * Removed mechanically-generated junk capabilities from cons* entries. +# * Added color support to bsdos. +# 9.13.3 (Thu May 9 10:35:51 EDT 1996): +# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>. +# * Created ecma+color, linux can use it. Also added ech to linux. +# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates. +# * Add descriptions to FreeBSD console entries. Also shorten +# some aliases to <= 14 chars for portability. +# * Added x68k console +# * Added OTbs to several VT-series entries. +# 9.13.4 (Wed May 22 10:54:09 EDT 1996): +# * screen entry update for 3.7.1 from Michael Alan Dorfman. +# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996): +# * kterm correction due to Kenji Rikitake. +# * ACS correction in vt320-kll due to Phillippe De Muyter. +# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996): +# * Sun console entry correction from J.T. Conklin. +# * Changed all DEC VT300 and up terminals to use VT300 tab set +# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996): +# * Added smul to linux entry (we never noticed it was missing +# because of sgr!). +# * Added rmln to hp+labels (deduced from other HP entries). +# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas, +# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3. +# * Corrected vt220 acsc. +# * The klone+sgr and klone+sgr-dumb entries now use klone+acs; +# this corresponds to reality and helps prevent some tic warnings. +# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2, +# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11, +# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200, +# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc, +# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90, +# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p, +# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000, +# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx, +# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25, +# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800, +# ifmr, v3220, wy100q, tandem653, ibmaed. +# * Added DWK terminal description. +# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996): +# * Many entries now have highlights inherited from adm+sgr. +# * xterm entry now corresponds to XFree86 3.1.2E, with color. +# * xtitle and xtitle-twm enable access to the X status line. +# * Added linux-1.3.6 color palette caps in conventional format. +# * Added adm1178 terminal. +# * Move fos and apollo terminals to obsolete category. +# * Aha! The BRL terminals file told us what the Iris extensions mean. +# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar, +# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file: +# cit500, adm11. +# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996): +# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756, +# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155. +# * Corrected, from BRL termcap file: vi50. +# * Better rxvt entry & corrected xterm entries from Thomas Dickey. +# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996): +# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1, +# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne +# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi, +# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro, +# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae. +# * Paired-attribute fixes to various terminals. +# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons. +# * xterm entry corrections from Thomas Dickey. +# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996): +# * Added t916 entry, translated from a termcap in SCO's support area. +# * New qnx entry from Michael Hunter. +# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996): +# * Added hpex2 from Ville Sulko. +# * Fixed a bug that ran the qnx and pcvtXX together. +# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996): +# * Added dtterm entry from Solaris CDE. +# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996): +# * corrected pairs#8 typo in dtterm entry. +# * added tvi9065. +# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996): +# * updated xterm entry to cover 3.1.2E's new features. +# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996): +# * Added new minix entry +# * Removed aliases of the form ^[0-9]* for obsolete terminals. +# * Commented out linux-old, nobody's using pre-1.2 kernels now. +# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996): +# * Added Prism entries and kt7ix. +# * Caution notes about EWAN and tabset files. +# * Changed /usr/lib/tabset -> /usr/share/tabset. +# * Added acsc/rmacs/smacs to vt52. +# 9.13.18 (Mon Oct 28 13:24:59 EST 1996): +# * Merged in Thomas Dickey's reorganization of the xterm entries; +# added technical corrections to avoid warning messages. +# 9.13.19 (Sat Nov 16 16:05:49 EST 1996): +# * Added rmso=\E[27m in Linux entry. +# * Added koi8-r support for Linux console. +# * Replace xterm entries with canonical ones from XFree86 3.2. +# 9.13.20 (Sun Nov 17 23:02:51 EST 1996): +# * Added color_xterm from Jacob Mandelson +# 9.13.21 (Mon Nov 18 12:43:42 EST 1996): +# * Back off the xterm entry to use r6 as a base. +# 9.13.22 (Sat Nov 30 11:51:31 EST 1996): +# * Added dec-vt220 at Adrian Garside's request. +# 9.13.23 (Fri Feb 21 16:36:06 EST 1997): +# * Replaced minitel-2 entry. +# * Added MGR, ansi-nt. +# * Minor corrections to xterm entries. +# * Replaced EWAN telnet entry. +# * Dropped the reorder script generator. It was a fossil. +# 9.13.24 (Sun Feb 23 20:55:23 EST 1997): +# * Thorsten Lockert added termcap `bs' to a lot of types, working from +# the 4.4BSD Lite2 file. +# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997): +# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js. +# * Updated iris-ansi; corrected vt102-w. +# * Switch base xterm entry to 3.3 level. +# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997) +# * Added basic4. +# * Removed rmir/smir from tv92B. +# +# 10.2.0 (Sat Feb 28 12:47:36 EST 1998): +# * add hds200 description (Walter Skorski) +# * add beterm entry (Fred Fish) +# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color, +# iris-color entries. +# * add emx entries. +# * Replaced unixpc entry with Benjamin Sittler's corrected version. +# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's +# versions. +# * remove sgr string from qnx based on report by Xiaodan Tang +# * Added u8/u9, removed rmul/smul from sun-il. +# * 4.2 tic displays \0 rather than \200. +# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc, +# apparently based on cp-866). +# * Merged in Pavel Roskin's acsc for linux-koi8 +# * Corrected some erroneous \\\s to \. +# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV. +# * II -> ii in pcvtXX, screen, xterm. +# * Removed \n chars following ANSI escapes in sgr & friends. +# * Updated Wyse entries. +# * h19 corrections from Tim Pierce. +# * Noted that the dm2500 has both ich and smir. +# * added pccons for the Alpha under OSF/1. +# * Added Sony NEWS workstation entries and cit101e-rv. +# * Reverted `amiga'; to Kent Polk's version, as I'm told +# the Verkuil entry messes up with Amiga Telnet. +# 10.2.1 (Sun Mar 8 18:32:04 EST 1998): +# * Corrected attributions in 10.2.0 release notes. +# * Scanned the Shuford archive for new terminfos and information. +# * Removed sgr from qnx entry (Thomas Dickey). +# * Added entries for ICL and Kokusai Data Systems terminals. +# * Incorporated NCR terminfos from the Boundless Technology FTP site. +# * Incorporated att700 from the Boundless Technology FTP site. +# * Miscellaneous contact-address and Web-page updates. +# 10.2.2 (Thu May 7 12:18:04 EDT 1998): +# * Moved Altos to OBSOLETE UNIX CONSOLES +# * Moved Hewlett-Packard terminals to OLDER TERMINAL TYPES, except for +# the 700s which go to WORKSTATION CONSOLES. +# * Major reorganization of ANSI/console/VT types. Moved vt52 to the +# obsolete section. +# * Daisy-wheel printers moved to UFO file. +# 10.2.3 (Tue May 12 22:59:11 EDT 1998): +# * Commented out hds200 is2 to avoid overflowing terminfo length limit. +# * Restored OT capabilities to UFO file. +# * add nxterm and xterm-color terminfo description (request by Cristian +# Gafton <gafton@redhat.com>). +# * Modify rxvt terminfo description to clear alternate screen before +# switching back to normal screen, for compatibility with applications +# which use xterm (reported by Manoj Kasichainula <manojk@io.com>). +# * Modify linux terminfo description to reset color palette (reported +# by Telford Tendys <telford@eng.uts.edu.au>). +# 10.2.4 (Thu Jul 2 18:13:26 EDT 1998): +# * Added minitel1 entries from Alexander Montaron. +# * Added qnxt2 from Federico Bianchi. +# 10.2.5: (Mon Aug 24 07:32:34 EDT 1998): +# * Resolve NetBSD Problem Report #4583 by adding civis/cnorm to pcvtXX. +# * dtterm enacs correction from Alexander V. Lukyanov. +# * Added ncsa-telnet, resolving Debian bug report 25341. +# * Added Francesco Potorti's tuned Wyse 99 entries. +# 10.2.6: (Mon Dec 21 00:49:43 EST 1998): +# * Home site has changed. +# 10.2.7: (Wed Mar 3 15:53:04 EST 1999): +# * Documentation fixes, mainly from David J. Mackenzie. +# +# 11.0.0: (Wed Mar 1 22:02:03 EST 2000) +# * BSD/OS console fixes from Jeffrey Honig at BSDI. +# ** TD's branch changes up to his 1999/10/23 version begin here +# * Added arm100 terminfo entries from Dave Millen. +# * Added Data General entries from Hasufin. +# * NCSA telnet entry from Francesco Potorti as modified by TD. +# * Added teraterm, crt, ms-vt100, mach, mach-bold, linux-lat, +# ofcons, wsvt25, wsvt25m, rcons, rcons-color, cygwin, amiga-8bit, +# ibm3161-C, ibm3162. +# * Updated xterm entries, BSD/OS entries, AIX entries. +# * Updated linux, iris-ansi, screen, beterm entries. +# * Added full function keys for scoansi. +# * Typo fixes for icl6404, osborne, eterm. att6386 +# * Corrected hp70092 acsc. +# * Added ibmpc from AIX 3.2.5; ibm-pc is no longer a synonym. +# * Added ibm5151 from AIX 3.2.5; ibmmono is no longer a synonym. +# * Added ibm5154 from AIX 3.2.5; ibmega is no longer a synonym. +# * Merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5. +# * Merged kend, knp, kpp, mc4, mc5 into ibm3161 in from AIX 3.2.5. +# * Merged acsc into hft-c from AIX 3.2.5. +# * Updated ibm3151 from AIX 3.2.5. +# * Errors in TD's branch not accepted: ibm3101, ibm3151, ibm8514 +# * Merged msgr,colors,pairs,setb,setf into ibm3164 from AIX 3.2.5. +# ** TD's branch changes end here +# * Address updates from various contributors. +# * Historical info on basis console. +# * Ty Sarna's corrections to the amiga entry. +# * Add Kevin Turner's entry for the Wyse 85 in 8-bit mode. +# * Added 22 Bull-Questar terminal variants from AIX 4.1.5 +# * Added OSF/1 console and lft from AIX 4.1.5. +# * Move vt2220 to vt220-old, vt220-8 to vt220, introduce vt220-8bit +# from AIX 4.1.5. +# * swtp moved to UFO file (only 20 lines). +# * Added pcmw. +# 11.0.1: (Thu Mar 2 10:49:21 EST 2000): +# * Disabled hpa, vpa, in rxvt. +# * Incorporated ansi components and generic-ansi. +# +# The following sets edit modes for GNU EMACS. +# Local Variables: +# fill-prefix:"\t" +# fill-column:75 +# comment-column:0 +# comment-start-skip:"^#+" +# comment-start:"# " +# compile-command:"tic -c termtypes.master" +# End: +######## SHANTIH! SHANTIH! SHANTIH! diff --git a/source/a/file/file.SlackBuild b/source/a/file/file.SlackBuild new file mode 100755 index 00000000..aaa0ca41 --- /dev/null +++ b/source/a/file/file.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2005-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=5.03 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +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 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-file +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf file-$VERSION +tar xvf $CWD/file-$VERSION.tar.?z* || exit 1 +cd file-$VERSION || exit 1 + +# Make the default data directory /etc/file like it has always been: +zcat $CWD/file.etc.file.diff.gz | patch -p1 --verbose || exit 1 +# This is needed after the patch above: +autoreconf || 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 {} \; + +# Don't spew warnings about using the flat text files +zcat $CWD/file.quiet.diff.gz | patch -p1 -E --verbose || exit 1 +# I don't know what this one does +zcat $CWD/file.short.diff.gz | patch -p1 -E --verbose || exit 1 + +# Add zisofs and crda regulatory bin detection +zcat $CWD/file.zisofs.magic.gz >> magic/Magdir/compress +zcat $CWD/file.crdaregbin.magic.gz >> magic/Magdir/crdaregbin + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --datadir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/file-$VERSION \ + --enable-fsect-man5 \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Is file really this much of a processing bottleneck? Doubtful. +# +# NOTE: Benchmarked flat files vs. .mgc June 2009, found no measurable +# difference on 3000+ files. +# +# If you really need these (let's say you're doing virus scanning +# and this *would* speed things up quite a bit) you can create +# the pre-parsed file yourself using file's -C option. +rm -f $PKG/etc/file/magic.mgc +mkdir -p $PKG/etc/file/magic +cp -a magic/Magdir/* $PKG/etc/file/magic +# After building, this works fine. /etc/file/magic/ takes up 1.2M, +# while the magic.mgc file is 1.7M. Considering a difference of 500k, +# and the potential speedup, I'm not sure it's worth the effort... +# but it does make it easier for an admin to add a small chunk of +# new magic. + +# IMHO, moving this sort of thing does not make sense. +# We'll support both the traditional and new locations. +# I hate to squat on a name as generic as "/etc/misc/", +# but it wasn't my idea. +( cd $PKG/etc ; ln -sf file misc ) + +# Strip everything for good measure: +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 || exit 1 + 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/usr/doc/file-$VERSION +cp -a \ + AUTHORS COPYING INSTALL MAINT NEWS README TODO \ + $PKG/usr/doc/file-$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/file-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/file/file.crdaregbin.magic b/source/a/file/file.crdaregbin.magic new file mode 100644 index 00000000..bff01854 --- /dev/null +++ b/source/a/file/file.crdaregbin.magic @@ -0,0 +1,5 @@ +# CRDA Regulatory database file +# http://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git;a=summary +# (see regdb.h) +0 belong 0x52474442 CRDA regulatory database file +>4 belong 19 (Version 1) diff --git a/source/a/file/file.etc.file.diff b/source/a/file/file.etc.file.diff new file mode 100644 index 00000000..98e07548 --- /dev/null +++ b/source/a/file/file.etc.file.diff @@ -0,0 +1,11 @@ +--- ./configure.ac.orig 2009-05-06 15:32:25.000000000 -0500 ++++ ./configure.ac 2009-06-12 17:40:25.000000000 -0500 +@@ -47,7 +47,7 @@ + fsect=4 + ]) + +-AC_SUBST([pkgdatadir], ['$(datadir)/misc']) ++AC_SUBST([pkgdatadir], ['$(datadir)/file']) + AC_SUBST(fsect) + AM_CONDITIONAL(FSECT5, test x$fsect = x5) + diff --git a/source/a/file/file.quiet.diff b/source/a/file/file.quiet.diff new file mode 100644 index 00000000..198f62df --- /dev/null +++ b/source/a/file/file.quiet.diff @@ -0,0 +1,14 @@ +diff -Nur file-5.00.orig/src/apprentice.c file-5.00/src/apprentice.c +--- file-5.00.orig/src/apprentice.c 2009-02-03 14:27:51.000000000 -0600 ++++ file-5.00/src/apprentice.c 2009-02-08 22:19:19.215635230 -0600 +@@ -285,8 +285,8 @@ + + #ifndef COMPILE_ONLY + if ((rv = apprentice_map(ms, &magic, &nmagic, fn)) == -1) { +- if (ms->flags & MAGIC_CHECK) +- file_magwarn(ms, "using regular magic file `%s'", fn); ++ /* if (ms->flags & MAGIC_CHECK) ++ file_magwarn(ms, "using regular magic file `%s'", fn); */ + rv = apprentice_load(ms, &magic, &nmagic, fn, action); + if (rv != 0) + return -1; diff --git a/source/a/file/file.short.diff b/source/a/file/file.short.diff new file mode 100644 index 00000000..be47218c --- /dev/null +++ b/source/a/file/file.short.diff @@ -0,0 +1,12 @@ +diff -Nur file-5.00.orig/src/readelf.h file-5.00/src/readelf.h +--- file-5.00.orig/src/readelf.h 2008-05-28 15:58:16.000000000 -0500 ++++ file-5.00/src/readelf.h 2009-02-08 22:17:26.681636542 -0600 +@@ -233,7 +233,7 @@ + #define NT_OPENBSD_VERSION 1 + #define NT_DRAGONFLY_VERSION 1 + /* GNU executables (name = "GNU") */ +-#define NT_GNU_VERSION 1 ++#define NT_GNU_VERSION 0 + + /* GNU OS tags */ + #define GNU_OS_LINUX 0 diff --git a/source/a/file/file.xz.magic b/source/a/file/file.xz.magic new file mode 100644 index 00000000..9aa36e45 --- /dev/null +++ b/source/a/file/file.xz.magic @@ -0,0 +1,9 @@ + +# XZ (Lempel-Ziv-Markov chain-Algorithm) file format supported by: +# - 7-Zip <http://7-zip.org/> +# - LZMA SDK <http://7-zip.org/sdk.html> +# - XZ Utils <http://tukaani.org/xz/> +# +0 ustring \xFD7zXZ\x00 xz compressed data, +>6 ubyte&0x10 0x00 single-block stream +>6 ubyte&0x10 0x10 multi-block stream diff --git a/source/a/file/file.zisofs.magic b/source/a/file/file.zisofs.magic new file mode 100644 index 00000000..9aeb61ed --- /dev/null +++ b/source/a/file/file.zisofs.magic @@ -0,0 +1,8 @@ + +#------------------------------------------------------------------------------ +# zisofs: file(1) magic for zisofs/RockRidge compressed files +# +# from H. Peter Anvin <hpa@zytor.com> May 4, 2001 +# +0 string \x37\xE4\x53\x96\xC9\xDB\xD6\x07 zisofs/Rockridge compressed file +>8 lelong x - %d bytes diff --git a/source/a/file/slack-desc b/source/a/file/slack-desc new file mode 100644 index 00000000..96be2617 --- /dev/null +++ b/source/a/file/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------------------------------------------------------| +file: file (a utility to determine file type) +file: +file: This is Ian F. Darwin's 'file' utility, used to identify files. +file: Christos Zoulas has been file's maintainer since 1994. +file: +file: +file: +file: +file: +file: +file: diff --git a/source/a/findutils/findutils.SlackBuild b/source/a/findutils/findutils.SlackBuild new file mode 100755 index 00000000..aca93a0c --- /dev/null +++ b/source/a/findutils/findutils.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2005-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.4.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-findutils + +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 findutils-$VERSION +tar xvf $CWD/findutils-$VERSION.tar.?z* || exit 1 +cd findutils-$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 use slocate instead of these: +zcat $CWD/findutils.nolocate.diff.gz | patch -p1 --verbose || exit 1 + +# Don't output warnings by default. Let's make the crazy assumption that the +# user actually does know what they are doing, and will use -warn if they'd +# like to be yelled at. +zcat $CWD/findutils.no.default.options.warnings.diff.gz | patch -p1 --verbose || exit 1 + +# Feel free to change the "--without-fts" if you like find to be faster and +# less reliable. With the current setting, "find" will be non-fts(), and +# ftsfind will still be there if you want to use it. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-locate \ + --without-fts \ + --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 + +mkdir -p $PKG/usr/doc/findutils-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS TODO \ + $PKG/usr/doc/findutils-$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 + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/findutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/findutils/findutils.no.default.options.warnings.diff b/source/a/findutils/findutils.no.default.options.warnings.diff new file mode 100644 index 00000000..2b107673 --- /dev/null +++ b/source/a/findutils/findutils.no.default.options.warnings.diff @@ -0,0 +1,11 @@ +--- ./find/util.c.orig 2008-03-10 04:37:22.000000000 -0500 ++++ ./find/util.c 2009-02-21 15:50:38.000000000 -0600 +@@ -910,7 +910,7 @@ + + if (isatty(0)) + { +- p->warnings = true; ++ p->warnings = false; + p->literal_control_chars = false; + } + else diff --git a/source/a/findutils/findutils.nolocate.diff b/source/a/findutils/findutils.nolocate.diff new file mode 100644 index 00000000..920b57ba --- /dev/null +++ b/source/a/findutils/findutils.nolocate.diff @@ -0,0 +1,22 @@ +--- ./Makefile.am.orig 2009-02-21 15:09:54.000000000 -0600 ++++ ./Makefile.am 2009-02-21 15:18:43.000000000 -0600 +@@ -4,7 +4,7 @@ + EXTRA_DIST = COPYING ChangeLog TODO config.h.in stamp-h.in \ + THANKS import-gnulib.sh import-gnulib.config + # "tests" is the gnulib unit test dir. +-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4 ++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4 + + ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4 + +--- ./Makefile.in.orig 2009-02-21 15:09:54.000000000 -0600 ++++ ./Makefile.in 2009-02-21 15:18:56.000000000 -0600 +@@ -572,7 +572,7 @@ + THANKS import-gnulib.sh import-gnulib.config + + # "tests" is the gnulib unit test dir. +-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4 ++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4 + ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4 + TESTFILE_SUFFIXES = .exp .xo .xe .xi + all: config.h diff --git a/source/a/findutils/slack-desc b/source/a/findutils/slack-desc new file mode 100644 index 00000000..f26e4721 --- /dev/null +++ b/source/a/findutils/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------------------------------------------------------| +findutils: findutils (utilities to locate files) +findutils: +findutils: This package contains the GNU find and xargs programs. The find and +findutils: xargs implementations comply with POSIX 1003.2. They also support +findutils: some additional options, some borrowed from Unix and some unique to +findutils: GNU. +findutils: +findutils: +findutils: +findutils: +findutils: diff --git a/source/a/floppy/fdutils-5.4-20020222.diff b/source/a/floppy/fdutils-5.4-20020222.diff new file mode 100644 index 00000000..28a7b040 --- /dev/null +++ b/source/a/floppy/fdutils-5.4-20020222.diff @@ -0,0 +1,2991 @@ +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/Changelog fdutils/Changelog +--- fdutils-5.4/Changelog Sat Jun 3 16:29:33 2000 ++++ fdutils/Changelog Sun Feb 3 23:51:42 2002 +@@ -1,3 +1,9 @@ ++020203 Fix fdmount and superformat bugs ++020203 Create /dev/fd0 before testing for existence of /dev/fd0 ++011002 Fix floppycontrol.c printf conditional on FD_DISK_CHANGED, so that ++ it works with gcc3 which apparently considers printf as a macro... ++000612 Explicitly include sysmacros.h, apparently this is needed in ++ certain environments + 000603 Released 5.4 + 000527 Fixed a couple of buffer overrun exploits and other cleanup. Made + fdutils compilable with Linux 2.3/2.4 kernels. Documentation fixes +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/INSTALL fdutils/INSTALL +--- fdutils-5.4/INSTALL Thu Jul 1 19:48:19 1999 ++++ fdutils/INSTALL Mon May 21 00:24:21 2001 +@@ -8,14 +8,17 @@ + 3. Compile the utilities: + make + +- 3. Run the MAKEFLOPPIES script to create the device files: ++ 4. Install: ++ make install ++ ++ 5. Run the MAKEFLOPPIES script to create the device files: + cd /dev + MAKEFLOPPIES + +- 4. Enjoy! ++ 6. Enjoy! + I you have any questions, feel free to ask! + +- 5. You might also want to get a recent version of mtools (later than ++ 7. You might also want to get a recent version of mtools (later than + 3.0) + + A. Knaff +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.guess fdutils/config.guess +--- fdutils-5.4/config.guess Tue Jun 17 22:37:13 1997 ++++ fdutils/config.guess Mon May 21 00:24:45 2001 +@@ -1,7 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. +-# ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++ ++timestamp='2001-04-20' ++ + # 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 +@@ -22,18 +25,92 @@ + # the same distribution terms that you use for the rest of that program. + + # Written by Per Bothner <bothner@cygnus.com>. +-# The master version of this file is at the FSF in /home/gd/gnu/lib. ++# Please send patches to <config-patches@gnu.org>. + # + # 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 system type (host/target name). +-# +-# Only a few systems have been added to this list; please add others +-# (but try to keep the structure clean). +-# ++# 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, 93, 94, 95, 96, 97, 98, 99, 2000 ++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 0 ;; ++ --version | -v ) ++ echo "$version" ; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit 0 ;; ++ -- ) # 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 ++ ++ ++dummy=dummy-$$ ++trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int dummy(){}" > $dummy.c ++ for c in cc gcc c89 ; do ++ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ++ if test $? = 0 ; then ++ CC_FOR_BUILD="$c"; break ++ fi ++ done ++ rm -f $dummy.c $dummy.o $dummy.rel ++ 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 + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. + # (ghazi@noc.rutgers.edu 8/24/94.) +@@ -43,37 +120,162 @@ + + 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_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 +- + # 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. ++ # Determine the machine/vendor (is the vendor relevant). ++ case "${UNAME_MACHINE}" in ++ amiga) machine=m68k-unknown ;; ++ arm32) machine=arm-unknown ;; ++ atari*) machine=m68k-atari ;; ++ sun3*) machine=m68k-sun ;; ++ mac68k) machine=m68k-apple ;; ++ macppc) machine=powerpc-apple ;; ++ hp3[0-9][05]) machine=m68k-hp ;; ++ ibmrt|romp-ibm) machine=romp-ibm ;; ++ *) machine=${UNAME_MACHINE}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE}" in ++ i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) ++ 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 ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ # 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 0 ;; + alpha:OSF1:*:*) ++ if test $UNAME_RELEASE = "V4.0"; then ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ fi + # 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 alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` ++ cat <<EOF >$dummy.s ++ .data ++\$Lformat: ++ .byte 37,100,45,37,120,10,0 # "%d-%x\n" ++ ++ .text ++ .globl main ++ .align 4 ++ .ent main ++main: ++ .frame \$30,16,\$26,0 ++ ldgp \$29,0(\$27) ++ .prologue 1 ++ .long 0x47e03d80 # implver \$0 ++ lda \$2,-1 ++ .long 0x47e20c21 # amask \$2,\$1 ++ lda \$16,\$Lformat ++ mov \$0,\$17 ++ not \$1,\$18 ++ jsr \$26,printf ++ ldgp \$29,0(\$26) ++ mov 0,\$16 ++ jsr \$26,exit ++ .end main ++EOF ++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ case `./$dummy` in ++ 0-0) ++ UNAME_MACHINE="alpha" ++ ;; ++ 1-0) ++ UNAME_MACHINE="alphaev5" ++ ;; ++ 1-1) ++ UNAME_MACHINE="alphaev56" ++ ;; ++ 1-101) ++ UNAME_MACHINE="alphapca56" ++ ;; ++ 2-303) ++ UNAME_MACHINE="alphaev6" ++ ;; ++ 2-307) ++ UNAME_MACHINE="alphaev67" ++ ;; ++ esac ++ fi ++ rm -f $dummy.s $dummy ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit 0 ;; ++ 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 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) +- echo m68k-cbm-sysv4 ++ echo m68k-unknown-sysv4 + exit 0;; +- amiga:NetBSD:*:*) +- echo m68k-cbm-netbsd${UNAME_RELEASE} +- exit 0 ;; + amiga:OpenBSD:*:*) +- echo m68k-cbm-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit 0 ;; ++ arc64:OpenBSD:*:*) ++ echo mips64el-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ arc:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ hkmips:OpenBSD:*:*) ++ echo mips-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ pmax:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ sgi:OpenBSD:*:*) ++ echo mips-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ wgrisc:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; +- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit 0;; ++ 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 +@@ -81,9 +283,12 @@ + echo pyramid-pyramid-bsd + fi + exit 0 ;; +- NILE:*:*:dcosx) ++ NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; +@@ -108,26 +313,61 @@ + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(head -1 /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 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; +- atari*:NetBSD:*:*) +- echo m68k-atari-netbsd${UNAME_RELEASE} +- exit 0 ;; + atari*:OpenBSD:*:*) +- echo m68k-atari-openbsd${UNAME_RELEASE} ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- sun3*:NetBSD:*:*) +- echo m68k-sun-netbsd${UNAME_RELEASE} ++ # 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 0 ;; +- sun3*:OpenBSD:*:*) +- echo m68k-sun-openbsd${UNAME_RELEASE} ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit 0 ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; +- mac68k:NetBSD:*:*) +- echo m68k-apple-netbsd${UNAME_RELEASE} ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit 0 ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit 0 ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit 0 ;; ++ sun3*:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) +- echo m68k-apple-openbsd${UNAME_RELEASE} ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ mvme68k:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ mvme88k:OpenBSD:*:*) ++ echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +@@ -141,9 +381,17 @@ + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) +- sed 's/^ //' << EOF >dummy.c +- int main (argc, argv) int argc; char **argv; { ++ 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); +@@ -158,12 +406,15 @@ + exit (-1); + } + EOF +- ${CC-cc} dummy.c -o dummy \ +- && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy \ ++ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ++ && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; +@@ -179,15 +430,18 @@ + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` +- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then +- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ +- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then ++ 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 ++ else + echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} + fi +- else echo i586-dg-dgux${UNAME_RELEASE} +- fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +@@ -208,12 +462,20 @@ + ????????: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 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' +- i?86:AIX:*:*) ++ i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; ++ 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 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then +- sed 's/^ //' << EOF >dummy.c ++ sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() +@@ -224,8 +486,8 @@ + exit(0); + } + EOF +- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 +@@ -233,8 +495,9 @@ + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; +- *:AIX:*:4) +- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then ++ *:AIX:*:[45]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | 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 +@@ -242,7 +505,7 @@ + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else +- IBM_REV=4.${UNAME_RELEASE} ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; +@@ -252,7 +515,7 @@ + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; +- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) +@@ -267,18 +530,75 @@ + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; +- 9000/[3478]??:HP-UX:*:*) ++ 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/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; +- 9000/8?? ) HP_ARCH=hppa1.0 ;; ++ 9000/[678][0-9][0-9]) ++ case "${HPUX_REV}" in ++ 11.[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" ;; ++ esac ;; ++ esac ++ fi ;; ++ esac ++ if [ "${HP_ARCH}" = "" ]; then ++ 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 $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` ++ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi ++ rm -f $dummy.c $dummy ++ fi ;; + esac +- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit 0 ;; + 3050*:HI-UX:*:*) +- sed 's/^ //' << EOF >dummy.c ++ sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () +@@ -303,8 +623,8 @@ + exit (0); + } + EOF +- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) +@@ -313,13 +633,16 @@ + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; ++ *9??*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; +- i?86:OSF1:*:*) ++ i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else +@@ -329,6 +652,9 @@ + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; ++ hppa*:OpenBSD:*:*) ++ echo hppa-unknown-openbsd ++ exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; +@@ -359,104 +685,297 @@ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) +- echo t90-cray-unicos${UNAME_RELEASE} ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*T3D:*:*:*) ++ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; +- F300:UNIX_System_V:*:*) +- FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` ++ 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 "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; +- F301:UNIX_System_V:*:*) +- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` +- exit 0 ;; +- hp3[0-9][05]:NetBSD:*:*) +- echo m68k-hp-netbsd${UNAME_RELEASE} ++ hp300:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- hp3[0-9][05]:OpenBSD:*:*) +- echo m68k-hp-openbsd${UNAME_RELEASE} +- exit 0 ;; +- i?86:BSD/386:*:* | *:BSD/OS:*:*) ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit 0 ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; +- *:NetBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) +- echo i386-pc-cygwin32 ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit 0 ;; ++ i*:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit 0 ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit 0 ;; ++ 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 i386-pc-interix ++ exit 0 ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) +- echo powerpcle-unknown-cygwin32 ++ echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) +- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; +- *:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. +- ld_help_string=`ld --help 2>&1` +- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then +- echo "${UNAME_MACHINE}-pc-linux" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then +- echo "${UNAME_MACHINE}-pc-linux-aout" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then +- echo "${UNAME_MACHINE}-pc-linux-coff" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then +- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then +- echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then +- echo "powerpc-unknown-linux" ; exit 0 +- elif test "${UNAME_MACHINE}" = "alpha" ; then +- echo alpha-unknown-linux ; exit 0 +- elif test "${UNAME_MACHINE}" = "sparc" ; then +- echo sparc-unknown-linux ; exit 0 +- else +- # Either a pre-BFD a.out linker (linux-oldld) or one that does not give us +- # useful --help. Gcc wants to distinguish between linux-oldld and linux-aout. +- test ! -d /usr/lib/ldscripts/. \ +- && echo "${UNAME_MACHINE}-pc-linux-oldld" && exit 0 +- # Determine whether the default compiler is a.out or elf +- cat >dummy.c <<EOF ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit 0 ;; ++ arm*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux ++ exit 0 ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ mips:Linux:*:*) ++ cat >$dummy.c <<EOF ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++int main (int argc, char *argv[]) { ++#else ++int main (argc, argv) int argc; char *argv[]; { ++#endif ++#ifdef __MIPSEB__ ++ printf ("%s-unknown-linux-gnu\n", argv[1]); ++#endif ++#ifdef __MIPSEL__ ++ printf ("%sel-unknown-linux-gnu\n", argv[1]); ++#endif ++ return 0; ++} ++EOF ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy ++ ;; ++ ppc:Linux:*:*) ++ # Determine Lib Version ++ cat >$dummy.c <<EOF ++#include <features.h> ++#if defined(__GLIBC__) ++extern char __libc_version[]; ++extern char __libc_release[]; ++#endif + main(argc, argv) +-int argc; +-char *argv[]; ++ int argc; ++ char *argv[]; + { ++#if defined(__GLIBC__) ++ printf("%s %s\n", __libc_version, __libc_release); ++#else ++ printf("unknown\n"); ++#endif ++ return 0; ++} ++EOF ++ LIBC="" ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ ./$dummy | grep 1\.99 > /dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; fi ++ fi ++ rm -f $dummy.c $dummy ++ echo powerpc-unknown-linux-gnu${LIBC} ++ exit 0 ;; ++ alpha:Linux:*:*) ++ cat <<EOF >$dummy.s ++ .data ++ \$Lformat: ++ .byte 37,100,45,37,120,10,0 # "%d-%x\n" ++ .text ++ .globl main ++ .align 4 ++ .ent main ++ main: ++ .frame \$30,16,\$26,0 ++ ldgp \$29,0(\$27) ++ .prologue 1 ++ .long 0x47e03d80 # implver \$0 ++ lda \$2,-1 ++ .long 0x47e20c21 # amask \$2,\$1 ++ lda \$16,\$Lformat ++ mov \$0,\$17 ++ not \$1,\$18 ++ jsr \$26,printf ++ ldgp \$29,0(\$26) ++ mov 0,\$16 ++ jsr \$26,exit ++ .end main ++EOF ++ LIBC="" ++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ case `./$dummy` in ++ 0-0) UNAME_MACHINE="alpha" ;; ++ 1-0) UNAME_MACHINE="alphaev5" ;; ++ 1-1) UNAME_MACHINE="alphaev56" ;; ++ 1-101) UNAME_MACHINE="alphapca56" ;; ++ 2-303) UNAME_MACHINE="alphaev6" ;; ++ 2-307) UNAME_MACHINE="alphaev67" ;; ++ esac ++ objdump --private-headers $dummy | \ ++ grep ld.so.1 > /dev/null ++ if test "$?" = 0 ; then ++ LIBC="libc1" ++ fi ++ fi ++ rm -f $dummy.s $dummy ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit 0 ;; ++ 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 0 ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit 0 ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit 0 ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit 0 ;; ++ 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. ++ ld_supported_emulations=`cd /; ld --help 2>&1 \ ++ | sed -ne '/supported emulations:/!d ++ s/[ ][ ]*/ /g ++ s/.*supported emulations: *// ++ s/ .*// ++ p'` ++ case "$ld_supported_emulations" in ++ i*86linux) ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ exit 0 ++ ;; ++ elf_i*86) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ ;; ++ i*86coff) ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ exit 0 ++ ;; ++ esac ++ # Either a pre-BFD a.out linker (linux-gnuoldld) ++ # or one that does not give us useful --help. ++ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. ++ # If ld does not provide *any* "supported emulations:" ++ # that means it is gnuoldld. ++ test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 ++ case "${UNAME_MACHINE}" in ++ i*86) ++ VENDOR=pc; ++ ;; ++ *) ++ VENDOR=unknown; ++ ;; ++ esac ++ # Determine whether the default compiler is a.out or elf ++ cat >$dummy.c <<EOF ++#include <features.h> ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif + #ifdef __ELF__ +- printf ("%s-pc-linux\n", argv[1]); ++# ifdef __GLIBC__ ++# if __GLIBC__ >= 2 ++ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); ++# else ++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ++# endif ++# else ++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ++# endif + #else +- printf ("%s-pc-linux-aout\n", argv[1]); ++ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); + #endif + return 0; + } + EOF +- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy +- fi ;; ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy ++ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ++ ;; + # 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. +- i?86:DYNIX/ptx:4*:*) ++ i*86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; +- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) ++ 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 0 ;; ++ 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_RELEASE} ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else +- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; +- i?86:*:3.2:*) ++ i*86:*:5:7*) ++ # Fixed at (any) Pentium or better ++ UNAME_MACHINE=i586 ++ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then ++ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} ++ fi ++ exit 0 ;; ++ 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 +@@ -465,11 +984,24 @@ + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 ++ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit 0 ;; ++ 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 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; +@@ -489,7 +1021,7 @@ + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) ++ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` +@@ -500,24 +1032,30 @@ + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; +- m68*:LynxOS:2.*:*) ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; +- i?86:LynxOS:2.*:*) ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; +- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) ++ rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; +@@ -529,6 +1067,10 @@ + echo ns32k-sni-sysv + fi + exit 0 ;; ++ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm +@@ -541,23 +1083,101 @@ + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; +- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit 0 ;; ++ 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 0 ;; +- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> +- echo i586-unisys-sysv4 +- exit 0 ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit 0 ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit 0 ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit 0 ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit 0 ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit 0 ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit 0 ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit 0 ;; ++ *:Darwin:*:*) ++ echo `uname -p`-apple-darwin${UNAME_RELEASE} ++ exit 0 ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ if test "${UNAME_MACHINE}" = "x86pc"; then ++ UNAME_MACHINE=pc ++ fi ++ echo `uname -p`-${UNAME_MACHINE}-nto-qnx ++ exit 0 ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit 0 ;; ++ NSR-[KW]:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit 0 ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit 0 ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit 0 ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit 0 ;; ++ *: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 0 ;; ++ 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 0 ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit 0 ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit 0 ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit 0 ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit 0 ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit 0 ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 + #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +-cat >dummy.c <<EOF ++cat >$dummy.c <<EOF + #ifdef _SEQUENT_ + # include <sys/types.h> + # include <sys/utsname.h> +@@ -595,7 +1215,10 @@ + #endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; +- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ if (version < 4) ++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ else ++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); + #endif + +@@ -640,11 +1263,24 @@ + #endif + + #if defined (vax) +-#if !defined (ultrix) +- printf ("vax-dec-bsd\n"); exit (0); +-#else +- printf ("vax-dec-ultrix\n"); exit (0); +-#endif ++# 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) +@@ -655,8 +1291,8 @@ + } + EOF + +-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +-rm -f dummy.c dummy ++$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++rm -f $dummy.c $dummy + + # Apollos put the system type in the environment. + +@@ -688,6 +1324,48 @@ + esac + fi + +-#echo '(Unable to guess system type)' 1>&2 ++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 ++ ++ ftp://ftp.gnu.org/pub/gnu/config/ ++ ++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 -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.h.in fdutils/config.h.in +--- fdutils-5.4/config.h.in Fri Jul 2 23:37:12 1999 ++++ fdutils/config.h.in Mon May 21 00:24:53 2001 +@@ -14,3 +14,6 @@ + + /* Define if you have the <linux/xia_fs.h> header file. */ + #undef HAVE_LINUX_XIA_FS_H ++ ++/* Define if you have the <sys/sysmacros.h> header file. */ ++#undef HAVE_SYS_SYSMACROS_H +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.sub fdutils/config.sub +--- fdutils-5.4/config.sub Sun Mar 2 18:43:27 1997 ++++ fdutils/config.sub Mon May 21 00:24:43 2001 +@@ -1,6 +1,10 @@ + #! /bin/sh +-# Configuration validation subroutine script, version 1.1. +-# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++ ++timestamp='2001-05-11' ++ + # 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. +@@ -25,6 +29,8 @@ + # 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>. ++# + # 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. +@@ -45,30 +51,73 @@ + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + +-if [ x$1 = x ] +-then +- echo Configuration name missing. 1>&2 +- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 +- echo "or $0 ALIAS" 1>&2 +- echo where ALIAS is a recognized configuration type. 1>&2 +- exit 1 +-fi ++me=`echo "$0" | sed -e 's,.*/,,'` + +-# First pass through any local machine types. +-case $1 in +- *local*) +- echo $1 +- exit 0 +- ;; +- *) +- ;; ++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 ++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 0 ;; ++ --version | -v ) ++ echo "$version" ; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit 0 ;; ++ -- ) # 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 0;; ++ ++ * ) ++ 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 +- linux-gnu*) ++ nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -94,15 +143,25 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple) ++ -apple | -axis) + os= + basic_machine=$1 + ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) +- os=sco3.2v5 ++ os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) +@@ -121,6 +180,9 @@ + 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/'` +@@ -143,25 +205,50 @@ + -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. +- tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ +- | arme[lb] | pyramid \ +- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ +- | alpha | we32k | ns16k | clipper | i370 | sh \ +- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ +- | pdp11 | mips64el | mips64orion | mips64orionel \ +- | sparc | sparclet | sparclite | sparc64) ++ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ ++ | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ ++ | pyramid | mn10200 | mn10300 | tron | a29k \ ++ | 580 | i960 | h8300 \ ++ | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ ++ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ ++ | hppa64 \ ++ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ ++ | alphaev6[78] \ ++ | we32k | ns16k | clipper | i370 | sh | sh[34] \ ++ | powerpc | powerpcle \ ++ | 1750a | dsp16xx | pdp10 | pdp11 \ ++ | mips16 | mips64 | mipsel | mips64el \ ++ | mips64orion | mips64orionel | mipstx39 | mipstx39el \ ++ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ ++ | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ ++ | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ ++ | v850 | c4x \ ++ | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ ++ | pj | pjl | h8500 | 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 | z8k | v70 | w65 | z8k) ++ ;; ++ + # 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[3456]86) ++ i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. +@@ -170,23 +257,52 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ +- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ +- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ +- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ +- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ +- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ +- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ +- | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) ++ # FIXME: clean up the formatting here. ++ vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ ++ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ ++ | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ ++ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ ++ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ ++ | xmp-* | ymp-* \ ++ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ ++ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ ++ | hppa2.0n-* | hppa64-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ ++ | alphaev6[78]-* \ ++ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ ++ | clipper-* | orion-* \ ++ | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \ ++ | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ ++ | mips16-* | mips64-* | mipsel-* \ ++ | mips64el-* | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ ++ | mipstx39-* | mipstx39el-* | mcore-* \ ++ | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ ++ | [cjt]90-* \ ++ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ ++ | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ ++ | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) + ;; + # 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 ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; +@@ -202,20 +318,24 @@ + os=-sysv + ;; + amiga | amiga-*) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + ;; +- amigados) +- basic_machine=m68k-cbm +- os=-amigados ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos + ;; + amigaunix | amix) +- basic_machine=m68k-cbm ++ 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 +@@ -252,13 +372,16 @@ + basic_machine=cray2-cray + os=-unicos + ;; +- [ctj]90-cray) +- basic_machine=c90-cray ++ [cjt]90) ++ basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; +@@ -292,6 +415,10 @@ + encore | umax | mmax) + basic_machine=ns32k-encore + ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; + fx2800) + basic_machine=i860-alliant + ;; +@@ -302,6 +429,10 @@ + basic_machine=tron-gmicro + os=-sysv + ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -310,6 +441,14 @@ + 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 +@@ -325,13 +464,30 @@ + 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 + ;; +- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) ++ 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]) +@@ -340,27 +496,42 @@ + 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 +- os=-mvs + ;; + # I'm not sure what "Sysv32" means. Should this be sysv3.2? +- i[3456]86v32) ++ i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; +- i[3456]86v4*) ++ i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; +- i[3456]86v) ++ i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; +- i[3456]86sol2) ++ 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 +@@ -386,19 +557,59 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mipsel*-linux*) ++ basic_machine=mipsel-unknown ++ os=-linux-gnu ++ ;; ++ mips*-linux*) ++ basic_machine=mips-unknown ++ os=-linux-gnu ++ ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; ++ mmix*) ++ basic_machine=mmix-knuth ++ os=-mmixware ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ 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 +@@ -411,6 +622,10 @@ + basic_machine=mips-sony + os=-newsos + ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; + next | m*-next ) + basic_machine=m68k-next + case $os in +@@ -436,9 +651,32 @@ + 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 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -456,30 +694,28 @@ + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; +- pentium | p5) +- basic_machine=i586-intel ++ pentium | p5 | k5 | k6 | nexgen) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon) ++ basic_machine=i686-pc + ;; +- pentiumpro | p6) +- basic_machine=i686-intel ++ pentiumii | pentium2) ++ basic_machine=i686-pc + ;; +- pentium-* | p5-*) ++ pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumpro-* | p6-*) ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- k5) +- # We don't have specific support for AMD's K5 yet, so just call it a Pentium +- basic_machine=i586-amd +- ;; +- nexen) +- # We don't have specific support for Nexgen yet, so just call it a Pentium +- basic_machine=i586-nexgen ++ pentiumii-* | pentium2-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; +- power) basic_machine=rs6000-ibm ++ power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; +@@ -494,12 +730,24 @@ + ps2) + basic_machine=i386-ibm + ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; + sequent) + basic_machine=i386-sequent + ;; +@@ -507,6 +755,10 @@ + basic_machine=sh-hitachi + os=-hms + ;; ++ sparclite-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 +@@ -514,6 +766,13 @@ + spur) + basic_machine=spur-unknown + ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -554,10 +813,28 @@ + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; ++ t3e) ++ basic_machine=t3e-cray ++ os=-unicos ++ ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; +@@ -569,6 +846,10 @@ + basic_machine=a29k-nyu + os=-sym1 + ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; + vaxv) + basic_machine=vax-dec + os=-sysv +@@ -577,7 +858,7 @@ + basic_machine=vax-dec + os=-vms + ;; +- vpp*|vx|vx-*) ++ vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) +@@ -592,6 +873,14 @@ + basic_machine=a29k-wrs + os=-vxworks + ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; + xmp) + basic_machine=xmp-cray + os=-unicos +@@ -599,6 +888,10 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; + none) + basic_machine=none-none + os=-none +@@ -606,8 +899,21 @@ + + # 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 ++ ;; + mips) +- basic_machine=mips-mips ++ if [ x$os = x-linux-gnu ]; then ++ basic_machine=mips-unknown ++ else ++ basic_machine=mips-mips ++ fi + ;; + romp) + basic_machine=romp-ibm +@@ -618,13 +924,20 @@ + 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 + ;; +- sparc) ++ sh3 | sh4) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) +@@ -636,6 +949,19 @@ + orion105) + basic_machine=clipper-highlevel + ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ c4x*) ++ basic_machine=c4x-none ++ os=-coff ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 +@@ -668,9 +994,12 @@ + -solaris) + os=-solaris2 + ;; +- -unixware* | svr4*) ++ -svr4*) + os=-sysv4 + ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; +@@ -681,19 +1010,42 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ +- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ++ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -linux-gnu* | -uxpv*) ++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto*) ++ os=-nto-qnx ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; + -linux*) +- os=`echo $os | sed -e 's|linux|linux|'` ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` +@@ -701,6 +1053,12 @@ + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -wince*) ++ os=-wince ++ ;; + -osfrose*) + os=-osfrose + ;; +@@ -716,12 +1074,18 @@ + -acis*) + os=-aos + ;; ++ -386bsd) ++ os=-bsd ++ ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; ++ -nsk*) ++ os=-nsk ++ ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` +@@ -747,9 +1111,18 @@ + # 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 ++ ;; + -none) + ;; + *) +@@ -775,9 +1148,15 @@ + *-acorn) + os=-riscix1.2 + ;; ++ arm*-rebel) ++ os=-linux ++ ;; + arm*-semi) + os=-aout + ;; ++ pdp10-*) ++ os=-tops20 ++ ;; + pdp11-*) + os=-none + ;; +@@ -796,15 +1175,36 @@ + # default. + # os=-sunos4 + ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; ++ *-be) ++ os=-beos ++ ;; + *-ibm) + os=-aix + ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; + *-hp) + os=-hpux + ;; +@@ -815,7 +1215,7 @@ + os=-sysv + ;; + *-cbm) +- os=-amigados ++ os=-amigaos + ;; + *-dg) + os=-dgux +@@ -865,9 +1265,21 @@ + *-masscomp) + os=-rtu + ;; +- f301-fujitsu) ++ f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; + *) + os=-none + ;; +@@ -889,9 +1301,15 @@ + -aix*) + vendor=ibm + ;; ++ -beos*) ++ vendor=be ++ ;; + -hpux*) + vendor=hp + ;; ++ -mpeix*) ++ vendor=hp ++ ;; + -hiux*) + vendor=hitachi + ;; +@@ -907,7 +1325,7 @@ + -genix*) + vendor=ns + ;; +- -mvs*) ++ -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) +@@ -919,9 +1337,26 @@ + -aux*) + vendor=apple + ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + + echo $basic_machine$os ++exit 0 ++ ++# 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 -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure fdutils/configure +--- fdutils-5.4/configure Fri Jul 2 23:37:09 1999 ++++ fdutils/configure Mon May 21 00:24:49 2001 +@@ -1250,7 +1250,7 @@ + esac + + +-for ac_hdr in linux/ext_fs.h linux/xia_fs.h ++for ac_hdr in linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure.in fdutils/configure.in +--- fdutils-5.4/configure.in Thu Jul 1 19:22:51 1999 ++++ fdutils/configure.in Mon May 21 00:24:21 2001 +@@ -18,7 +18,7 @@ + AC_C_CONST + AC_C_INLINE + +-AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h) ++AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h) + + dnl Make fdmount accessible by the floppy group only + undefine([fdmount-floppy-only])dnl +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/README fdutils/doc/README +--- fdutils-5.4/doc/README Thu Jul 1 19:43:45 1999 ++++ fdutils/doc/README Mon Jun 11 22:26:36 2001 +@@ -171,7 +171,7 @@ + disks and also Commodore 1581 disks. Please get Michael Haardt's + documentation on floppy drives for a detailed description of those + formats. This can be ftp'ed from +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + + Commodore 1581 disks are not yet described in this documentation. + Use 'setfdprm /dev/fd0 1600 10 2 80 2 0x2A 0x02 0xDF 0x2E' to use +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/acronyms.texi fdutils/doc/acronyms.texi +--- fdutils-5.4/doc/acronyms.texi Sat May 27 18:37:00 2000 ++++ fdutils/doc/acronyms.texi Mon Jun 11 22:23:31 2001 +@@ -100,7 +100,7 @@ + disks, i.e. virtually all disks that are available today. The PC + hardware can only read MFM and FM disks. The doc at: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + @end example + contains more detailed information about FM and MFM encoding. + +@@ -108,7 +108,7 @@ + FM is a low level encoding of disk data. It was used for SD disks, and + is now considered to be obsolete. The doc at: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + @end example + contains more detailed information about FM and MFM encoding. + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskd.1 fdutils/doc/diskd.1 +--- fdutils-5.4/doc/diskd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/diskd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH diskd 1 "02jun00" fdutils-5.4 ++.TH diskd 1 "11Jun01" fdutils-5.4 + .SH Name + diskd - disk daemon; wait for disk to be inserted + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskseekd.1 fdutils/doc/diskseekd.1 +--- fdutils-5.4/doc/diskseekd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/diskseekd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH diskseekd 1 "02jun00" fdutils-5.4 ++.TH diskseekd 1 "11Jun01" fdutils-5.4 + .SH Name + diskseek, diskseekd - disk seek daemon; simulates Messy Dos' drive cleaning effect + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fd.4 fdutils/doc/fd.4 +--- fdutils-5.4/doc/fd.4 Fri Jul 2 23:44:15 1999 ++++ fdutils/doc/fd.4 Mon Jun 11 22:23:59 2001 +@@ -1,7 +1,7 @@ + '\" t + .\"{{{}}} + .\"{{{ Notes +-.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de) ++.\" Copyright (c) 1993 Michael Haardt (michael@moria.de) + .\" and 1994,1995, 1997 Alain Knaff (alain@linux.lu) + .\" + .\" This is free documentation; you can redistribute it and/or +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdmount.1 fdutils/doc/fdmount.1 +--- fdutils-5.4/doc/fdmount.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/fdmount.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH fdmount 1 "02jun00" fdutils-5.4 ++.TH fdmount 1 "11Jun01" fdutils-5.4 + .SH Name + fdmount - Floppy disk mount utility + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdrawcmd.1 fdutils/doc/fdrawcmd.1 +--- fdutils-5.4/doc/fdrawcmd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/fdrawcmd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH fdrawcmd 1 "02jun00" fdutils-5.4 ++.TH fdrawcmd 1 "11Jun01" fdutils-5.4 + .SH Name + fdrawcmd - send raw commands to the floppy disk controller + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppycontrol.1 fdutils/doc/floppycontrol.1 +--- fdutils-5.4/doc/floppycontrol.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/floppycontrol.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH floppycontrol 1 "02jun00" fdutils-5.4 ++.TH floppycontrol 1 "11Jun01" fdutils-5.4 + .SH Name + floppycontrol - floppy driver configuration utility + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppymeter.1 fdutils/doc/floppymeter.1 +--- fdutils-5.4/doc/floppymeter.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/floppymeter.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH floppymeter 1 "02jun00" fdutils-5.4 ++.TH floppymeter 1 "11Jun01" fdutils-5.4 + .SH Name + floppymeter - measure raw capacity and exact rotation speed of floppy drive + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/format2.texi fdutils/doc/format2.texi +--- fdutils-5.4/doc/format2.texi Fri Sep 19 21:01:19 1997 ++++ fdutils/doc/format2.texi Mon Jun 11 21:59:18 2001 +@@ -157,7 +157,7 @@ + on floppy drives for a detailed description of those formats. This can + be ftp'ed from the following location: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/ + @end example + + Commodore 1581 disks are not yet described in this documentation. Use +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/getfdprm.1 fdutils/doc/getfdprm.1 +--- fdutils-5.4/doc/getfdprm.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/getfdprm.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH getfdprm 1 "02jun00" fdutils-5.4 ++.TH getfdprm 1 "11Jun01" fdutils-5.4 + .SH Name + getfdprm - print the current format information + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/makefloppies.1 fdutils/doc/makefloppies.1 +--- fdutils-5.4/doc/makefloppies.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/makefloppies.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH makefloppies 1 "02jun00" fdutils-5.4 ++.TH makefloppies 1 "11Jun01" fdutils-5.4 + .SH Name + MAKEFLOPPIES - Creates the default floppy device nodes. + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/setfdprm.1 fdutils/doc/setfdprm.1 +--- fdutils-5.4/doc/setfdprm.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/setfdprm.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH setfdprm 1 "02jun00" fdutils-5.4 ++.TH setfdprm 1 "11Jun01" fdutils-5.4 + .SH Name + setfdprm - sets user-provided floppy disk parameters + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.1 fdutils/doc/superformat.1 +--- fdutils-5.4/doc/superformat.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/superformat.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH superformat 1 "02jun00" fdutils-5.4 ++.TH superformat 1 "11Jun01" fdutils-5.4 + .SH Name + superformat - format floppies + '\" t +@@ -258,14 +258,19 @@ + spins, and on how much time is needed to change the head or the track. + .TP + \&\fR\&\f(CW--absolute_skew\ \fIabsolute-skew\fR\&\f(CW\fR\ +-Set the absolute skew. (The skew value used for the first formatted +-track) ++.IP ++Set the absolute skew. This skew value is used for the first formatted ++track. It is expressed in raw bytes. + .TP + \&\fR\&\f(CW--head_skew\ \fIhead-skew\fR\&\f(CW\fR\ +-Set the head skew. (The skew added for passing from head 0 to head 1) ++.IP ++Set the head skew. This is the skew added for passing from head 0 to ++head 1. It is expressed in raw bytes. + .TP + \&\fR\&\f(CW--track_skew\ \fItrack-skew\fR\&\f(CW\fR\ +-Set the track skew. (The skew added for seeking to the next track) ++.IP ++Set the track skew. This is the skew added for seeking to the next ++track. It is expressed in raw bytes. + .PP + Example: (absolute skew=3, head skew=1, track skew=2) + .PP +@@ -287,6 +292,10 @@ + .lp + + \&\fR ++.PP ++N.B. For simplicitie's sake, this example expresses skews in units of ++sectors. In reality, superformat expects the skews to be expressed in ++raw bytes. + .PP + .SH Examples + In all the examples of this section, we assume that drive 0 is a 3 1/2 +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.texi fdutils/doc/superformat.texi +--- fdutils-5.4/doc/superformat.texi Sat May 27 18:36:51 2000 ++++ fdutils/doc/superformat.texi Mon May 21 00:24:21 2001 +@@ -187,14 +187,20 @@ + + @table @code + @item --absolute_skew @var{absolute-skew} +-Set the absolute skew. (The skew value used for the first formatted +-track) ++ ++Set the absolute skew. This skew value is used for the first formatted ++track. It is expressed in raw bytes. + + @item --head_skew @var{head-skew} +-Set the head skew. (The skew added for passing from head 0 to head 1) ++ ++Set the head skew. This is the skew added for passing from head 0 to ++head 1. It is expressed in raw bytes. + + @item --track_skew @var{track-skew} +-Set the track skew. (The skew added for seeking to the next track) ++ ++Set the track skew. This is the skew added for seeking to the next ++track. It is expressed in raw bytes. ++ + @end table + + Example: (absolute skew=3, head skew=1, track skew=2) +@@ -209,6 +215,10 @@ + track 2 head 0: 4,5,6,1,2,3 (skew=3) + track 2 head 1: 3,4,5,6,1,2 (skew=4) + @end example ++ ++N.B. For simplicitie's sake, this example expresses skews in units of ++sectors. In reality, superformat expects the skews to be expressed in ++raw bytes. + + @node Examples, Troubleshooting, Sector skewing options, superformat + @subsection Examples +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/xdfcopy.1 fdutils/doc/xdfcopy.1 +--- fdutils-5.4/doc/xdfcopy.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/xdfcopy.1 Mon Jun 11 22:22:47 2001 +@@ -1,4 +1,4 @@ +-.TH xdfcopy 1 "02jun00" fdutils-5.4 ++.TH xdfcopy 1 "11Jun01" fdutils-5.4 + .SH Name + xdfcopy - Program to copy and format Xdf disks in Linux + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/MAKEFLOPPIES fdutils/src/MAKEFLOPPIES +--- fdutils-5.4/src/MAKEFLOPPIES Wed Aug 21 16:51:25 1996 ++++ fdutils/src/MAKEFLOPPIES Sun Feb 3 20:13:39 2002 +@@ -12,6 +12,9 @@ + set -u + MAJOR=2 + TMPDEVICE=/dev/tmpfloppy$$ ++if [ ! -b /dev/fd0 ] ; then ++ mknod /dev/fd0 b $MAJOR 0 ++fi + if floppycontrol 2>/dev/null; then + FLOPPYCONTROL=yes + else +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/diskseekd.c fdutils/src/diskseekd.c +--- fdutils-5.4/src/diskseekd.c Sat May 27 18:50:05 2000 ++++ fdutils/src/diskseekd.c Mon May 21 00:24:21 2001 +@@ -1,4 +1,7 @@ + #include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <sys/time.h> + #include <unistd.h> + #include <stdio.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/driveprm.c fdutils/src/driveprm.c +--- fdutils-5.4/src/driveprm.c Sat May 27 18:49:58 2000 ++++ fdutils/src/driveprm.c Mon May 21 00:24:21 2001 +@@ -1,3 +1,7 @@ ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <stdlib.h> + #include <string.h> + #include <stdio.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/fdmount.c fdutils/src/fdmount.c +--- fdutils-5.4/src/fdmount.c Sat May 27 18:50:14 2000 ++++ fdutils/src/fdmount.c Sun Feb 3 23:50:06 2002 +@@ -826,14 +826,9 @@ + + mnt=get_mounted(devname); + if (!mnt) { +- if (!force) { +- errmsg("not mounted"); +- save_unlock_mtab(); +- return -1; +- } +- else { +- msg("not in /etc/mtab, trying to unmount anyway!"); +- } ++ errmsg("not mounted"); ++ save_unlock_mtab(); ++ return -1; + } + else { + mountpoint=mnt->ms.mnt_dir; +@@ -860,7 +855,7 @@ + } + #endif + +- e=umount(devname); ++ e=umount(mountpoint); + if (e) { + errmsg("failed to unmount: %s\n",strerror(errno)); + goto err; +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppycontrol.c fdutils/src/floppycontrol.c +--- fdutils-5.4/src/floppycontrol.c Sun Apr 2 10:18:15 2000 ++++ fdutils/src/floppycontrol.c Sat Oct 27 13:47:28 2001 +@@ -16,6 +16,11 @@ + #include <getopt.h> + #include "enh_options.h" + ++#ifndef FD_DISK_CHANGED ++#define FD_DISK_CHANGED 0 ++#endif ++ ++ + int eioctl(int fd, int command,void * param, char *emsg) + { + int r; +@@ -381,14 +386,17 @@ + eioctl( fd, FDPOLLDRVSTAT, &drivstat,"get drive state"); + else + eioctl( fd, FDGETDRVSTAT , &drivstat,"get drive state"); +- printf("%s %s %s %s %s\n", ++ ++#ifndef FD_DCL_SEEN ++# define FD_DCL_SEEN 0x40 ++#endif ++ printf("%s %s %s %s %s %s\n", + drivstat.flags & FD_VERIFY ? "verify" : "", + drivstat.flags & FD_DISK_NEWCHANGE ? "newchange" : "", + drivstat.flags & FD_NEED_TWADDLE ? "need_twaddle" : "", +-#ifdef FD_DISK_CHANGED + drivstat.flags & FD_DISK_CHANGED ? "disk_changed" : "", +-#endif +- drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : ""); ++ drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "", ++ drivstat.flags & FD_DCL_SEEN ?"dcl_seen" : ""); + printf("spinup= %ld\n", drivstat.spinup_date); + printf("select= %ld\n", drivstat.select_date); + printf("first_read= %ld\n", drivstat.first_read_date); +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppymeter.c fdutils/src/floppymeter.c +--- fdutils-5.4/src/floppymeter.c Sat May 27 18:49:58 2000 ++++ fdutils/src/floppymeter.c Mon May 21 00:24:21 2001 +@@ -1,3 +1,7 @@ ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/measure.c fdutils/src/measure.c +--- fdutils-5.4/src/measure.c Sat May 27 18:49:57 2000 ++++ fdutils/src/measure.c Sun Feb 3 22:15:54 2002 +@@ -138,6 +138,23 @@ + perror("format"); + exit(1); + } ++ ++ if((raw_cmd.reply[1] & ~0x20) | ++ (raw_cmd.reply[2] & ~0x20)) { ++ int i; ++ ++ if ( raw_cmd.reply[1] & ST1_WP ){ ++ fprintf(stderr,"The disk is write protected\n"); ++ exit(1); ++ } ++ ++ fprintf(stderr, ++ "\nFatal error while measuring raw capacity\n"); ++ for(i=0; i < raw_cmd.reply_count; i++) { ++ fprintf(stderr, "%d: %02x\n", i, raw_cmd.reply[i]); ++ } ++ exit(1); ++ } + } + + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/mediaprm.c fdutils/src/mediaprm.c +--- fdutils-5.4/src/mediaprm.c Wed Mar 22 22:16:53 2000 ++++ fdutils/src/mediaprm.c Mon May 21 00:24:21 2001 +@@ -20,6 +20,7 @@ + FE_TPI, + FE_STRETCH, + FE_SWAPSIDES, ++ FE_ZEROBASED, + + FE_GAP, + +@@ -35,7 +36,8 @@ + FE_DENSITY, + } field_t; + +-static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, GAP, FM; ++static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, ZEROBASED; ++static int GAP, FM; + static int PERP, SSIZE, _2M, DTR, SPEC1, FMT_GAP, DENSITY; + static int ssize; + +@@ -48,6 +50,7 @@ + #define F_TPI FE_TPI,&TPI + #define F_STRETCH FE_STRETCH,&STRETCH + #define F_SWAPSIDES FE_SWAPSIDES,&SWAPSIDES ++#define F_ZEROBASED FE_ZEROBASED,&ZEROBASED + + #define F_GAP FE_GAP,&GAP + +@@ -77,6 +80,7 @@ + { "stretch", F_STRETCH, 0 }, + + { "swapsides", F_SWAPSIDES, 1}, ++ { "zerobased", F_ZEROBASED, 1}, + + { "gap", F_GAP, 0}, + +@@ -234,7 +238,7 @@ + medprm->sect = VSECT / 512; + medprm->head = HEAD; + medprm->track = CYL; +- medprm->stretch = STRETCH | (SWAPSIDES << 1); ++ medprm->stretch = STRETCH | (SWAPSIDES << 1) | (ZEROBASED << 2); + medprm->gap = GAP; + medprm->rate = (FM<<7) | (PERP<<6) | (ssize<<3) | (_2M<<2) | DTR; + medprm->spec1 = SPEC1; +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/printfdprm.c fdutils/src/printfdprm.c +--- fdutils-5.4/src/printfdprm.c Mon Jun 9 22:58:15 1997 ++++ fdutils/src/printfdprm.c Mon May 21 00:24:21 2001 +@@ -141,6 +141,12 @@ + print("swapsides",0); + #endif + ++#ifdef FD_ZEROBASED ++ if(ft->stretch & FD_ZEROBASED) ++ print("zerobased",0); ++#endif ++ ++ + if(ft->rate & FD_2M) + print("2M",0); + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.c fdutils/src/superformat.c +--- fdutils-5.4/src/superformat.c Sat May 27 18:49:57 2000 ++++ fdutils/src/superformat.c Fri Feb 22 11:55:23 2002 +@@ -26,7 +26,10 @@ + cylinders as happen to work (as in 2m). Currently, if too many cylinders + are attempted it won't fail until the very end + */ +- ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> +@@ -68,6 +71,7 @@ + char floppy_buffer[24 * 512]; + int verbosity = 3; + static char noverify = 0; ++static char noformat = 0; + static char dosverify = 0; + static char verify_later = 0; + short stretch; +@@ -323,7 +327,8 @@ + raw_cmd.length = nssect * sizeof(format_map_t); + raw_cmd.cmd_count = 6; + raw_cmd.cmd[0] = FD_FORMAT & ~fm_mode; +- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3); ++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^ ++ (fd->swapSides ? 4 : 0); + raw_cmd.cmd[2] = fd->sizecode; + raw_cmd.cmd[3] = nssect; + raw_cmd.cmd[4] = fd->fmt_gap; +@@ -355,7 +360,8 @@ + raw_cmd.data = floppy_buffer; + raw_cmd.cmd_count = 9; + raw_cmd.cmd[0] = FD_WRITE & ~fm_mode & ~0x80; +- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3); ++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^ ++ (fd->swapSides ? 4 : 0); + raw_cmd.cmd[2] = cylinder; + raw_cmd.cmd[3] = head; + raw_cmd.cmd[4] = cur_sector; +@@ -490,6 +496,7 @@ + + short retries; + short zeroBased=0; ++ short swapSides=0; + int n,rsize; + char *verify_buffer = NULL; + char dosdrive; +@@ -510,6 +517,11 @@ + (void *) &noverify, + "skip verification" }, + ++ { '\0', "print-drive-deviation", 0, EO_TYPE_BYTE, 1, 0, ++ (void *) &noformat, ++ "print deviation, do not format " }, ++ ++ + { 'B', "dosverify", 0, EO_TYPE_BYTE, 1, 0, + (void *) &dosverify, + "verify disk using mbadblocks" }, +@@ -662,11 +674,6 @@ + exit(1); + } + +- fd[0].zeroBased = zeroBased; +- if(zeroBased) +- noverify = 1; +- +- + /* sanity checking */ + if (sizecode < 0 || sizecode >= MAX_SIZECODE) { + fprintf(stderr,"Bad sizecode %d\n", sizecode); +@@ -779,7 +786,16 @@ + break; + } + stretch = geometry.stretch & 1; +- ++#ifdef FD_ZEROBASED ++ if(geometry.stretch & FD_ZEROBASED) { ++ zeroBased = 1; ++ } ++#endif ++#ifdef FD_SWAPSIDES ++ if(geometry.stretch & FD_SWAPSIDES) { ++ swapSides = 1; ++ } ++#endif + mask |= SET_SECTORS | SET_CYLINDERS | + SET_SIZECODE | SET_2M | SET_RATE; + } else { +@@ -831,6 +847,15 @@ + stretch = 0; + } + } ++ ++ fd[0].zeroBased = zeroBased; ++#ifndef FD_ZEROBASED ++ if(zeroBased) { ++ noverify = 1; ++ } ++#endif ++ ++ fd[0].swapSides = swapSides; + + if (cylinders > fd[0].drvprm.tracks) { + fprintf(stderr,"too many cylinder for this drive\n"); +@@ -900,8 +925,9 @@ + fprintf(stderr, + "In order to avoid this time consuming " + "measurement in the future,\n" +- "add the following line to " DRIVEPRMFILE +- ":\ndrive%d: deviation=%d\n", ++ "add the following line to " DRIVEPRMFILE ":\n"); ++ fprintf(stdout, ++ "drive%d: deviation=%d\n", + fd[0].drive, + (fd[0].raw_capacity-old_capacity)*1000000/ + old_capacity); +@@ -914,6 +940,9 @@ + } + } + ++ if(noformat) ++ return 0; ++ + /* FIXME. Why is this needed? */ + fd[0].raw_capacity -= 30; + +@@ -971,7 +1000,11 @@ + parameters.head = heads; + parameters.track = cylinders; + parameters.size = cylinders * heads * sectors; +- parameters.stretch = stretch; ++ parameters.stretch = stretch ++#ifdef FD_ZEROBASED ++ | (zeroBased ? 4 : 0) ++#endif ++ | (swapSides ? 2 : 0); + parameters.gap = fd[0].gap; + if ( !use_2m) + fd0.rate = fd[0].rate; +@@ -1054,7 +1087,7 @@ + ioctl(fd[0].fd, FDFLUSH ); + close(fd[0].fd); + +- if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2) ++ if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2 && !zeroBased) + dosdrive = fd[0].drive+'a'; + + if (dosdrive) { +@@ -1085,8 +1118,9 @@ + dosverify = 0; + } + } else { +- fprintf(stderr, +- "\nwarning: mformat not called because DOS drive unknown\n"); ++ if(!zeroBased) ++ fprintf(stderr, ++ "\nwarning: mformat not called because DOS drive unknown\n"); + /*exit(1);*/ + dosverify = 0; + } +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.h fdutils/src/superformat.h +--- fdutils-5.4/src/superformat.h Sun Apr 2 10:09:28 2000 ++++ fdutils/src/superformat.h Mon May 21 00:24:21 2001 +@@ -84,6 +84,7 @@ + int rotations; /* how many time do we have to go over 0 to read + * the track */ + int zeroBased; /* 1 if sector numbering starts at zero */ ++ int swapSides; /* if logical side 0 is on physical 1 and vice-versa */ + }; + + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/xdfcopy.c fdutils/src/xdfcopy.c +--- fdutils-5.4/src/xdfcopy.c Sat May 27 18:49:57 2000 ++++ fdutils/src/xdfcopy.c Mon May 21 00:24:21 2001 +@@ -2,6 +2,10 @@ + * Software patents declared unconstitutional, worldwide + */ + ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> diff --git a/source/a/floppy/fdutils.mediaprm.diff b/source/a/floppy/fdutils.mediaprm.diff new file mode 100644 index 00000000..cf9a0a6d --- /dev/null +++ b/source/a/floppy/fdutils.mediaprm.diff @@ -0,0 +1,8 @@ +--- ./src/mediaprm.orig Sat Feb 3 21:01:37 2001 ++++ ./src/mediaprm Sat Feb 3 21:01:48 2001 +@@ -1,4 +1,4 @@ +-# /etc/fdprm - floppy disk parameter table ++# /etc/mediaprm - floppy disk parameter table + + ######################################################################## + # Standard linux disk formats. Names are of the form diff --git a/source/a/floppy/floppy.SlackBuild b/source/a/floppy/floppy.SlackBuild new file mode 100755 index 00000000..38a5cc86 --- /dev/null +++ b/source/a/floppy/floppy.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=5.4 +MTOOLS=3.9.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-floppy + +rm -rf $PKG $TMP/fdutils-$VERSION $TMP/mtools-$MTOOLS +mkdir -p $TMP $PKG/{etc,usr/{bin,info,man/man{1,4,5}}} + +cd $TMP +tar xzvf $CWD/fdutils-$VERSION.tar.gz +cd fdutils-$VERSION +zcat $CWD/fdutils-5.4-20020222.diff.gz | patch -p1 --verbose --backup --suffix=.orig +zcat $CWD/fdutils.mediaprm.diff.gz | patch -p1 --verbose --backup --suffix=.orig +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +make install prefix=$PKG/usr +mkdir -p $PKG/usr/doc/fdutils-$VERSION +cp -a COPYING CREDITS Changelog INSTALL doc/FAQ.html doc/README \ + $PKG/usr/doc/fdutils-$VERSION +chown root:root $PKG/usr/doc/fdutils-$VERSION/* +chmod 644 $PKG/usr/doc/fdutils-$VERSION/* +cd $TMP +tar xzvf $CWD/mtools-$MTOOLS.tar.gz +cd mtools-$MTOOLS +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +#make all floppyd floppyd_installtest +make all +make install prefix=$PKG/usr sysconfdir=$PKG/etc bindir=$PKG/usr/bin \ + MAN1DIR=$PKG/usr/man/man1 MAN5DIR=$PKG/usr/man/man5 +cat $CWD/mtools.conf > $PKG/etc/mtools.conf +cat $CWD/mediaprm > $PKG/etc/mediaprm +mkdir -p $PKG/usr/doc/mtools-$MTOOLS +cp -a COPYING Changelog INSTALL README Release.notes TODO \ + $PKG/usr/doc/mtools-$MTOOLS +chown root:root $PKG/usr/doc/mtools-$MTOOLS/* +chmod 644 $PKG/usr/doc/mtools-$MTOOLS/* +( 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 +) +( cd $PKG/usr/info ; rm -f dir ; gzip -9 * ) + +# These are obsolete and/or cruft: +rm -f $PKG/usr/bin/MAKEFLOPPIES $PKG/usr/bin/lz $PKG/usr/bin/mcheck \ + $PKG/usr/bin/mcomp $PKG/usr/bin/mxtar $PKG/usr/bin/tgz \ + $PKG/usr/bin/uz $PKG/usr/man/man1/makefloppies.1 +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cd $PKG +makepkg -l y -c n $TMP/floppy-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/floppy/mediaprm b/source/a/floppy/mediaprm new file mode 100644 index 00000000..03c82e3b --- /dev/null +++ b/source/a/floppy/mediaprm @@ -0,0 +1,786 @@ +# /etc/mediaprm - floppy disk parameter table + +######################################################################## +# Standard linux disk formats. Names are of the form +# actual media capacity/maximum drive capacity +# (Note: although 5.25" HD drives can format disks at 1.44M, they're listed +# as 1200 because that's the common maximum size.) + +# size sec/t hds trk stre gap rate spec1 fmt_gap + +"360/360": + DS DD sect=9 + +"1200/1200": + DS HD sect=15 + +"360/720": + SS DD sect=9 + +"720/720": + DS DD sect=9 + +"360/1200": + DS DD sect=9 + +"720/1200": + DS QD sect=9 + +"1440/1440": + DS HD sect=18 + +"2880/2880": + DS ED sect=36 + +"2880/2880": + DS ED sect=36 + +"2880/2880": + DS ED sect=36 + +"1440/1200": + DS HD sect=18 + +"1680/1440": + DS HD sect=21 + +"410/1200": + DS DD sect=10 cyl=41 + +"820/1440": + DS DD sect=10 cyl=82 + +"1476/1200": + DS HD sect=18 cyl=82 + +"1722/1440": + DS HD sect=21 cyl=82 + +"420/1200": + DS DD sect=10 cyl=42 + +"830/1440": + DS DD sect=10 cyl=83 + +"1494/1200": + DS HD sect=18 cyl=83 + +"1743/1440": + DS HD sect=21 cyl=83 + +"1743/1440": + DS HD sect=21 cyl=83 + +"880/1200": + DS QD tracksize=11b ssize=1KB + +"1040/720": + DS QD sect=13 + +"1120/720": + DS QD tracksize=7KB mss + +"1600/1200": + DS HD tracksize=10KB mss + +"1760/1440": + DS HD sect=11 ssize=1KB + +"1920/1440": + DS HD tracksize=12KB mss + +"3200/2880": + DS ED sect=5 ssize=4KB + +"3520/2880": + DS ED tracksize=22KB ssize=4KB + +"3840/2880": + DS ED sect=3 ssize=8KB + +"3840/2880": + DS ED sect=3 ssize=8KB + +"1840/1440": + DS HD tracksize=23b ssize=2KB + +"800/720": + DS DD sect=10 + +"1600/1440": + DS HD sect=20 + +######################################################################## +# CP/M formats +# +# the name is constructed as CODsize, where COD identifies the +# brand of the computer having formatted the disk + +# Generic CP/M - SSSD 8" + +"GEN250": + SS DD sect=24 dtr=0 fm=1 cyl=77 ssize=128 + +# ABC-80 - SSDD 48 tpi 5.25" + +"ABC160": + SS DD sect=16 ssize=256 + +# Actrix (Access Matrix) - SSDD 48 tpi 5.25" + +"ACT180": + SS DD sect=9 + +# Adler Textriter - SSDD 48 tpi 5.25" + +"ADL160": + SS DD sect=16 ssize=256 + +# Advanced Digital Super 6 - SSDD 48 tpi 5.25" + +"ADV160": + SS DD sect=4 ssize=1KB + +# Advanced Digital Super 6 - DSDD 96 tpi 5.25" + +"ADV640": + DS QD sect=4 ssize=1KB + +# Altos Series 5 - DSDD 96 tpi 5.25" + +"ALT720": + DS QD sect=9 + +# Amigo - SSDD 48 tpi 5.25" + +"AMI200": + SS DD sect=10 + +# Ampro - SSDD 48 tpi 5.25" + +"AMP200": + SS DD sect=10 + +# Ampro - SSDD 96 tpi 5.25" + +"AMP400": + SS QD sect=5 ssize=1KB + +# Amstrad PCW8256 - DSDD 96 tpi 5.25" + +"AMS720": + DS QD sect=9 + +# Archive I - SSDD 96 tpi 5.25" + +"ARC400": + SS QD sect=5 ssize=1KB + +# Archive II & III - DSDD 96 tpi 5.25" + +"ARC800": + DS QD sect=5 ssize=1KB + +# Arisia - SSDD 48 tpi 5.25" + +"ARI180": + SS DD sect=18 ssize=256 + +# ATR-8000 - SSDD 48 tpi 5.25" + +"ATR200": + SS DD sect=5 ssize=1KB + +# Beehive - DSDD 48 tpi 5.25" + +"BEE400": + DS DD sect=10 + +# Bitelex - SSDD 48 tpi 5.25" + +"BIT160": + SS DD sect=16 ssize=256 + +# BMC IF800 Model 20 - DSDD 48 tpi 5.25" + +"BMC400": + DS DD sect=10 + +# Burr-Brown - DSDD 48 tpi 5.25" + +"BUR360": + DS DD sect=18 ssize=256 + +# Cal-PC - DSDD 48 tpi 5.25" + +"CAL400": + DS DD sect=5 ssize=1KB + +# Cashcom 100 - DSDD 96 tpi 5.25" + +"CAS640": + DS QD sect=4 ssize=1KB + +# CDI-5000 - DSDD 48 tpi 5.25" + +"CDI400": + DS DD sect=5 ssize=1KB + +# CMC Supersystem 2 - DSDD 96 tpi 5.25" + +"CMC800": + DS QD sect=5 ssize=1KB + +# Coleco ADAM, 40 track - SSDD 48 tpi 5.25" + +"COL160": + SS DD sect=8 + +# Compugraphic MCS-5 - SSDD 48 tpi 5.25" + +"COM160": + SS DD sect=16 ssize=256 + +# Compupro (Viasyn) (1024 bytes/sector) - DSDD 96 tpi 5.25" + +"COM800": + DS QD sect=5 ssize=1KB + +# Cromemco CDOS - SSSD 48 tpi 5.25" + +"CRO80": + SS SD sect=16 dtr=1 fm=1 ssize=128 + +# Cromemco CDOS - SSDD 48 tpi 5.25" + +"CRO200": + SS DD sect=10 + +# Cromemco CP/M - SSDD 48 tpi 5.25" + +"CRO200": + SS DD sect=10 + +# C/WP Cortex - SSDD 48 tpi 5.25" + +"CWP200": + SS DD sect=10 + +# Cykey - DSDD 48 tpi 5.25" + +"CYK320": + DS DD sect=16 ssize=256 + +# DEC DECMate II - SSDD 96 tpi 5.25" + +"DEC400": + SS QD sect=10 + +# DEC Rainbow - SSDD 96 tpi 5.25" + +"DEC180": + SS DD sect=9 + +# DEC VT-180 - SSDD 48 tpi 5.25" + +"DEC180": + SS DD sect=9 + +# Direct 1025 - DSDD 48 tpi 5.25" + +"DIR320": + DS DD sect=16 ssize=256 + +# Discovery - DSDD 96 tpi 5.25" + +"DIS640": + DS QD sect=8 + +# Eagle II - SSDD 96 tpi 5.25" + +"EAG400": + SS QD sect=5 ssize=1KB + +# Epson QX-10 - DSDD 48 tpi 5.25" + +"EPS400": + DS DD sect=10 + +# Epson QX-10 (256 bytes/sector) - DSDD 48 tpi 5.25" + +"EPS320": + DS DD sect=16 ssize=256 + +# Epson PX-8 - DSDD 3.5" + +"EPS320": + DS DD sect=8 + +# Ericsson DTC - SSDD 96 tpi 5.25" + +"ERI320": + SS QD sect=16 ssize=256 + +# Ericsson Step One - DSDD 96 tpi 5.25" + +"ERI720": + DS QD sect=9 + +# Florida Graphics - DSDD 96 tpi 5.25" + +"FLO640": + DS QD sect=16 ssize=256 + +# Formula 1 - DSDD 48 tpi 5.25" + +"FOR360": + DS DD sect=18 ssize=256 + +# Fujitsu Micro 16 - DSDD 48 tpi 5.25" + +"FUJ320": + DS DD sect=16 ssize=256 + +# Fujitsu Micro 8 - DSDD 48 tpi 5.25" + +"FUJ320": + DS DD sect=16 ssize=256 + +# HCL System 2 - DSDD 96 tpi 5.25" + +"HCL800": + DS QD sect=5 ssize=1KB + +# Heath H89, Magnolia CP/M - SSDD 48 tpi 5.25" + +"HEA180": + SS DD sect=9 + +# Heurikon MLZ-91A - DSDD 96 tpi 5.25" + +"HEU640": + DS QD sect=16 ssize=256 + +# IBM PC, CP/M-86 - SSDD 48 tpi 5.25" + +"IBM160": + SS DD sect=8 + +# IMS 5000 - SSDD 48 tpi 5.25" + +"IMS160": + SS DD sect=16 ssize=256 + +# IMS 5000 TurboDOS - DSDD 96 tpi 5.25" + +"IMS800": + DS QD sect=5 ssize=1KB + +# Intel iPDS 100 - DSDD 96 tpi 5.25" + +"INT640": + DS QD sect=16 ssize=256 + +# Insight Enterprises - DSDD 48 tpi 5.25" + +"INS320": + DS DD sect=16 ssize=256 + +# Ithaca Intersystems - SSDD 96 tpi 5.25" + +"ITH360": + SS QD sect=18 ssize=256 + +# Jet-80 - DSDD 48 tpi 5.25" + +"JET400": + DS DD sect=5 ssize=1KB + +# Lexoriter - SSDD 48 tpi 5.25" + +"LEX160": + SS DD sect=16 ssize=256 + +# LNW 2 - SSDD 48 tpi 5.25" + +"LNW180": + SS DD sect=18 ssize=256 + +# Macsym 150 - SSDD 96 tpi 5.25" + +"MAC320": + SS QD sect=8 + +# Magic - DSDD 48 tpi 5.25" + +"MAG400": + DS DD sect=10 + +# MAI Basic Four - DSDD 96 tpi 5.25" + +"MAI640": + DS QD sect=16 ssize=256 + +# Micron Quark - DSDD 48 tpi 5.25" + +"MIC320": + DS DD sect=4 ssize=1KB + +# Monroe 8800 Series - SSDD 96 tpi 5.25" + +"MON320": + SS QD sect=16 ssize=256 + +# Morrow MD2 - SSDD 48 tpi 5.25" + +"MOR200": + SS DD sect=5 ssize=1KB + +# Morrow MD3, 5, 11, 16, 34 - DSDD 48 tpi 5.25" + +"MOR400": + DS DD sect=5 ssize=1KB + +# Morrow TurboDOS - DSDD 48 tpi 5.25" + +"MOR320": + DS DD sect=4 ssize=1KB + +# NCR FirstStep - DSDD 96 tpi 5.25" + +"NCR640": + DS QD sect=16 ssize=256 + +# NEC PC-8001A - SSDD 48 tpi 5.25" + +"NEC160": + SS DD sect=16 ssize=256 + +# NEC PC 8801A/8831A - DSDD 48 tpi 5.25" + +"NEC320": + DS DD sect=8 + +# NEC PC 8500/8431A, Starlet - DSDD 3.5" + +"NEC320": + SS QD sect=16 ssize=256 + +# Nixdorf 8810/30 - DSDD 96 tpi 5.25" + +"NIX800": + DS QD sect=10 + +# OKI IF800 Model 20 - DSDD 48 tpi 5.25" + +"OKI400": + DS DD sect=10 + +# Olivetti ETV300 - SSDD 48 tpi 5.25" + +"OLI180": + SS DD sect=18 ssize=256 + +# Olivetti M20 - DSDD 48 tpi 5.25" + +"OLI320": + DS DD sect=16 ssize=256 + +# Olivetti 250 - SSDD 3.5" + +"OLI320": + SS QD sect=16 ssize=256 + +# Olympia EX-100 - DSDD 48 tpi 5.25" + +"OLY360": + DS DD sect=9 + +# Olympia ETX II - SSDD 48 tpi 5.25" + +"OLY180": + SS DD sect=9 + +# Osborne 1 - SSSD 48 tpi 5.25" + +"OSB100": + SS SD sect=10 dtr=1 fm=1 ssize=256 + +# Osborne 1 - SSDD 48 tpi 5.25" + +"OSB200": + SS DD sect=5 ssize=1KB + +# Osborne Executive - SSDD 48 tpi 5.25" + +"OSB200": + SS DD sect=5 ssize=1KB + +# Osborne 1 + Osmosis - DSDD 96 tpi 5.25" + +"OSB400": + DS DD sect=10 + +# Osborne Vixen - DSDD 48 tpi 5.25" + +"OSB400": + DS DD sect=5 ssize=1KB + +# Osborne Executive w/Z3 - DSDD 96 tpi 5.25" + +"OSB800": + DS QD sect=5 ssize=1KB + +# OSM Zeus 4 - DSDD 96 tpi 5.25" + +"OSM640": + DS QD sect=8 + +# Panasonic KX-E828 - DSDD 48 tpi 5.25" + +"PAN320": + DS DD sect=16 ssize=256 + +# Pegasus Data Logger - DSDD 48 tpi 5.25" + +"PEG360": + DS DD sect=9 + +# Philips PC-2010 - SSDD 48 tpi 5.25" + +"PHI160": + SS DD sect=16 ssize=256 + +# Philips PC-3000 - 3004 - SSDD 96 tpi 5.25" + +"PHI320": + SS QD sect=16 ssize=256 + +# Pied Piper - DSDD 96 tpi 5.25" + +"PIE800": + DS QD sect=10 + +# PMC Micromate - DSDD 48 tpi 5.25" + +"PMC400": + DS DD sect=5 ssize=1KB + +# Proglas 770KB - DSDD 96 tpi 5.25" + +"PRO800": + DS QD sect=10 + +# Royal Alphatronic - DSDD 48 tpi 5.25" + +"ROY320": + DS DD sect=16 ssize=256 + +# Sage IV - DSDD 96 tpi 5.25" + +"SAG640": + DS QD sect=8 + +# Sanyo MBC-1000, MBC-1150 - DSDD 48 tpi 5.25" + +"SAN320": + DS DD sect=16 ssize=256 + +# Sanyo MBC-1250 - DSDD 96 tpi 5.25" + +"SAN640": + DS QD sect=16 ssize=256 + +# Seequa Chameleon - SSDD 48 tpi 5.25" + +"SEE160": + SS DD sect=8 + +# Seiko - DSDD 96 tpi 5.25" + +"SEI640": + DS QD sect=16 ssize=256 + +# Siemens PG-685 - DSDD 96 tpi 5.25" + +"SIE720": + DS QD sect=9 + +# Siemens PG-675 DSDD 48 tpi 5.25" + +"SIE360": + DS DD sect=9 + +# Siemens PG-635 DSDD 3.5" + +"SIE720": + DS QD sect=9 + +# Sorbus TurboDOS - 5.25" DSHD (or 8" DSDD) + +"SOR1232": + DS HD sect=8 cyl=77 ssize=1KB + +# Sperry UTS 30, UTS 5000 - DSDD 96 tpi 5.25" + +"SPE720": + DS QD sect=9 + +# Superbrain JR - SSDD 48 tpi 5.25" + +"SUP175": + SS DD sect=10 cyl=35 + +# Superbrain 40 track - SSDD 48 tpi 5.25" + +"SUP200": + SS DD sect=10 + +# Systel 2 - SSDD 48 tpi 5.25" + +"SYS180": + SS DD sect=9 + +# Systel 3 - DSDD 48 tpi 5.25" + +"SYS360": + DS DD sect=9 + +# Televideo 801, 806 - DSDD 48 tpi 5.25" + +"TEL360": + DS DD sect=18 ssize=256 + +# Televideo 1603 - DSDD 96 tpi 5.25" + +"TEL720": + DS QD sect=9 + +# TI Professional, CP/M-86 - SSDD 48 tpi 5.25" + +"TI1160": + SS DD sect=8 + +# Toshiba T100, T200 - DSDD 48 tpi 5.25" + +"TOS320": + DS DD sect=16 ssize=256 + +# TRS-80 Model 1, Omikron CP/M - SSSD 48 tpi 5.25" + +"TRS0": + SS SD sect=16 dtr=1 fm=1 cyl=0 ssize=128 + +# TRS-80 Model 1, Color Power II - SSDD 48 tpi 5.25" + +"TRS180": + SS DD sect=18 ssize=256 + +# TRS-80, MM CP/M - SSDD 48 tpi 5.25" + +"TRS200": + SS DD sect=10 + +# TRS-80 Model 4, MT CP/M - SSDD 48 tpi 5.25" + +"TRS180": + SS DD sect=18 ssize=256 + +# TRS-80 Model 4, MT CP/M - DSDD 48 tpi 5.25" + +"TRS360": + DS DD sect=18 ssize=256 + +# TRS-80 Model 4 - SSDD 48 tpi 5.25" + +"TRS160": + SS DD sect=8 + +# Visual 1050 - SSDD 96 tpi 5.25" + +"VIS400": + SS QD sect=10 + +# Wangwriter - DSDD 48 tpi 5.25" + +"WAN320": + DS DD sect=16 ssize=256 + +# Wave Mate Bullet - SSDD 48 tpi 5.25" + +"WAV200": + SS DD sect=5 ssize=1KB + +# Xerox 820 - SSSD 48 tpi 5.25" + +"XER80": + SS SD sect=16 dtr=1 fm=1 ssize=128 + +# Xerox 820 II - SSDD 48 tpi 5.25" + +"XER160": + SS DD sect=16 ssize=256 + +# Zenith Z-37 Disk - SSSD 48 tpi 5.25" + +"ZEN100": + SS SD sect=10 dtr=1 fm=1 ssize=256 + +# Zenith Z-37 Disk - DSDD 96 tpi 5.25" + +"ZEN640": + DS QD sect=16 ssize=256 + +# Zenith Z89, Heath H89 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=16 ssize=256 + +# Zenith Z89, Heath H89 - DSDD 96 tpi 5.25" + +"ZEN640": + DS QD sect=16 ssize=256 + +# Zenith Z90 - SSDD 48 tpi 5.25" + +"ZEN160": + SS DD sect=16 ssize=256 + +# Zenith Z90 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=16 ssize=256 + +# Zenith Z-100 - SSDD 48 tpi 5.25" + +"ZEN160": + SS DD sect=8 + +# Zenith Z-100 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=8 + + + +######################################################################## +# Other interesting formats, please contribute ;-) +# + +# Commodore 1581 (the 3 1/2 drive of the Commodore 128) +"CBM1581": + DS DD sect=10 swapsides + +# Color computer, sides 1 and 2 +"COCO1": + SS DD sect=18 cyl=35 ssize=256 + +"COCO2": + SS DD sect=18 cyl=35 ssize=256 + +# TO7 (Thomson), sides 1 and 2 +"TO7-1" + SS DD sect=16 ssize=256 + +"TO7-2" + SS DD sect=16 ssize=256 swapsides diff --git a/source/a/floppy/mtools.conf b/source/a/floppy/mtools.conf new file mode 100644 index 00000000..b528c01d --- /dev/null +++ b/source/a/floppy/mtools.conf @@ -0,0 +1,64 @@ +# Example mtools.conf files. Uncomment the lines which correspond to +# your architecture and comment out the "SAMPLE FILE" line below +#SAMPLE FILE + +# # Linux floppy drives +drive a: file="/dev/fd0" exclusive +drive b: file="/dev/fd1" exclusive + +# # First SCSI hard disk partition +# drive c: file="/dev/sda1" + +# # First IDE hard disk partition +# drive c: file="/dev/hda1" + +# # dosemu floppy image +# drive m: file="/var/lib/dosemu/diskimage" + +# # dosemu hdimage +# drive n: file="/var/lib/dosemu/diskimage" offset=3840 + +# # Atari ramdisk image +# drive o: file="/tmp/atari_rd" offset=136 + +# # ZIP disk for Solaris: +# Drive X is ZIP-100 at target 5 +# drive X: file="/dev/rdsk/c0t5d0s2" partition=4 scsi=1 nodelay + +# # ZIP disk for SunOS: +# # Zip drive is at target 5, which default kernel calls tape st1 !! +# drive Y: file="/dev/rsd5c" partition=4 scsi=1 nodelay + +# # autoselect zip drive/floppy on HP-UX 9/10 +# drive a: file="/dev/rdsk/c201d5" exclusive partition=4 +# drive a: file="/dev/rdsk/c201d5s0" exclusive partition=4 +# drive a: file="/dev/rfloppy/c201d0s0" exclusive + +# A/UX target 5 on 1st scsi bus jaz or zip +# drive X: file="/dev/rdsk/c105d0s31" partition=4 + + +# Some examples for BeOS. +# floppy drive. hardcoded in devices.c, so no real need to define it here +#drive a: file="/dev/floppy_disk" exclusive +# ZIP drive on SCSI ID 6 +#drive z: file="/dev/scsi_disk_060" offset=16384 fat_bits=16 + +# SCO Unix 3.2v4 +# # Floppy disk drives +# +# drive a: file="/dev/install" exclusive +# drive b: file="/dev/install1" exclusive +# +# # SCSI hard disk partitions +# +# drive c: file="/dev/dsk/0sC" +# drive d: file="/dev/dsk/0sD" +# drive e: file="/dev/dsk/0sE" +# drive f: file="/dev/dsk/0sF" +# drive g: file="/dev/dsk/0sG" +# drive h: file="/dev/dsk/0sH" + +# # uncomment the following line to display all file names in lower +# # case by default +# mtools_lower_case=1 diff --git a/source/a/floppy/slack-desc b/source/a/floppy/slack-desc new file mode 100644 index 00000000..bb916942 --- /dev/null +++ b/source/a/floppy/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------------------------------------------------------| +floppy: floppy (floppy disk utilities) +floppy: +floppy: Contains fdutils-5.4, tools to test and format floppy disks; and +floppy: mtools-3.9.8, a collection of utilities for using DOS/Windows floppy +floppy: disks with Linux. +floppy: +floppy: +floppy: +floppy: +floppy: +floppy: diff --git a/source/a/gawk/gawk.SlackBuild b/source/a/gawk/gawk.SlackBuild new file mode 100755 index 00000000..e65e5aaf --- /dev/null +++ b/source/a/gawk/gawk.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2005-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=3.1.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gawk + +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 + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gawk-$VERSION +tar xjvf $CWD/gawk-$VERSION.tar.bz2 +cd gawk-$VERSION + +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $ARCH-slackware-linux + +make -j3 || exit 1 +make install DESTDIR=$PKG || exit 1 + +( 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 +) +( cd $PKG/usr/bin + ln -sf gawk-$VERSION gawk + ln -sf pgawk-$VERSION pgawk +) +mkdir -p $PKG/bin +mv $PKG/usr/bin/gawk* $PKG/bin +mv $PKG/usr/bin/awk $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/awk . + ln -sf ../../bin/gawk . + ln -sf ../../bin/gawk-$VERSION . +) +( cd $PKG/usr/info + rm dir + gzip -9 * +) +( cd $PKG/usr/man/man1 + rm -f pgawk.1 + gzip -9 * + ln -sf gawk.1.gz awk.1.gz + ln -sf gawk.1.gz pgawk.1.gz +) +mkdir -p $PKG/usr/doc/gawk-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING FUTURES INSTALL LIMITATIONS NEWS POSIX.STD \ + PROBLEMS README README_d \ + $PKG/usr/doc/gawk-$VERSION +find $PKG/usr/doc/gawk-$VERSION -type d -exec chmod 755 {} \; +find $PKG/usr/doc/gawk-$VERSION -type f -exec chmod 644 {} \; +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/gawk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gawk/slack-desc b/source/a/gawk/slack-desc new file mode 100644 index 00000000..739f2a9e --- /dev/null +++ b/source/a/gawk/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------------------------------------------------------| +gawk: gawk (pattern scanning and processing language) +gawk: +gawk: Gawk is the GNU Project's implementation of the AWK programming +gawk: language. It conforms to the definition of the language in the POSIX +gawk: 1003.2 Command Language And Utilities Standard. This version in turn +gawk: is based on the description in The AWK Programming Language, by Aho, +gawk: Kernighan, and Weinberger, with the additional features found in the +gawk: System V Release 4 version of UNIX awk. Gawk also provides more +gawk: recent Bell Labs awk extensions, and some GNU-specific extensions. +gawk: +gawk: diff --git a/source/a/genpower/genpower.SlackBuild b/source/a/genpower/genpower.SlackBuild new file mode 100755 index 00000000..03f15675 --- /dev/null +++ b/source/a/genpower/genpower.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:-1.0.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-genpower + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf genpower-$VERSION +tar xvf $CWD/genpower-$VERSION.tar.gz || exit 1 +cd genpower-$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 {} \; + +find . -type d -name CVS -depth -exec rm -rf {} \; + +zcat $CWD/genpower.var.diff.gz | patch -p1 -E --verbose || exit 1 +zcat $CWD/genpower.halt.diff.gz | patch -p1 --verbose || exit 1 + +make -j4 || make || exit 1 +mkdir -p $PKG/sbin +cat genpowerd > $PKG/sbin/genpowerd +cat gentest > $PKG/sbin/gentest +cat genpowerfail > $PKG/sbin/genpowerfail +mkdir -p $PKG/etc +cat genpowerd.conf > $PKG/etc/genpowerd.conf.new +chmod 755 $PKG/sbin/* + +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/man/man8 +cat genpowerd.8 | gzip -9c > $PKG/usr/man/man8/genpowerd.8.gz +cat gentest.8 | gzip -9c > $PKG/usr/man/man8/gentest.8.gz + +mkdir -p $PKG/usr/doc/genpower-$VERSION +cp -a \ + COPYING Change.Log README TODO genpower.docs cables \ + $PKG/usr/doc/genpower-$VERSION + +mkdir -p $PKG/install +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/genpowerd.conf.new +EOF +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/genpower-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/genpower/genpower.halt.diff b/source/a/genpower/genpower.halt.diff new file mode 100644 index 00000000..05c6a23f --- /dev/null +++ b/source/a/genpower/genpower.halt.diff @@ -0,0 +1,32 @@ +--- ./genpowerfail.orig 2008-12-02 17:49:36.000000000 -0600 ++++ ./genpowerfail 2008-12-02 18:22:37.000000000 -0600 +@@ -36,23 +36,23 @@ + stats=`head -1 $statpath` + case "$stats" in + FAIL) # Power is down +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + SCRAM) # Battery is low +- shutdown -r now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & ++ shutdown -h now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & + ;; + CABLE) # Possible bad cable +- shutdown -r +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + *) # Unknown message, assume power is down +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + + esac + else +- # genowerfail called, and upsstatus dosen't exist. ++ # genpowerfail called, and upsstatus dosen't exist. + # Assume user is using powerd, and shutdown. +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + + fi + ;; diff --git a/source/a/genpower/genpower.var.diff b/source/a/genpower/genpower.var.diff new file mode 100644 index 00000000..fa3c9e99 --- /dev/null +++ b/source/a/genpower/genpower.var.diff @@ -0,0 +1,34 @@ +--- ./genpowerfail.orig Wed Apr 10 18:25:07 2002 ++++ ./genpowerfail Wed Apr 10 19:14:27 2002 +@@ -6,19 +6,19 @@ + # This script is also being run when the power comes + # up again (if it does in time!) + # +-# Version: /etc/genpowerfail 1.0.1 ++# Version: /sbin/genpowerfail 1.0.1 + # + # Author: Tom Webster <webster@kaiwan.com> + # + + # Set the path. +-PATH=/sbin:/etc:/bin:/usr/bin ++PATH=/sbin:/bin:/usr/bin:/usr/sbin + + # Set location of upsstatus file + statpath="/etc/upsstatus" + + # Set location of file containing PID of running shutdowns +-spidpath="/etc/shutdownpid" ++spidpath="/var/run/shutdownpid" + + # See what happened. + case "$1" in +@@ -63,7 +63,7 @@ + shutdown -c "THE POWER IS BACK" + ;; + *) +- echo "Usage: /etc/genpowerfail {start|stop}" ++ echo "Usage: /sbin/genpowerfail {start|stop}" + exit 1 + ;; + esac diff --git a/source/a/genpower/slack-desc b/source/a/genpower/slack-desc new file mode 100644 index 00000000..e0f4590e --- /dev/null +++ b/source/a/genpower/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------------------------------------------------------| +genpower: genpower (UPS monitoring daemon) +genpower: +genpower: The genpower daemon, genpowerd, will monitor the status of a serial +genpower: line connected to a UPS (Uninterruptible Power Supply). If a power +genpower: failure is detected, genpowerd will notify the system to take the +genpower: needed steps to react to the condition of the UPS. This may include +genpower: shutting the system down, or canceling a pending shutdown if the +genpower: power is restored. +genpower: +genpower: +genpower: diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild new file mode 100755 index 00000000..945032c6 --- /dev/null +++ b/source/a/gettext/gettext-tools.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2005-2008 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:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gettext-tools + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$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 gettext-$VERSION +tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1 +cd gettext-$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} \ + --disable-static \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/gettext-tools-$VERSION \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +cd gettext-tools +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 +) +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip $PKG/usr/man/man?/* +( cd $PKG/usr/doc + mv gettext gettext-tools-$VERSION + cd gettext-tools-$VERSION + # These take up a ton of space otherwise + tar cf examples.tar examples + bzip2 -9 examples.tar + rm -rf examples + # Move the HTML docs into a subdirectory: + mkdir html + mv *.html html + # This file isn't in the package, but it's in one you have to install, + # or there will be bigger problems than this dead link: + rm -f ABOUT-NLS + ln -sf /usr/share/gettext/ABOUT-NLS . +) +cp -a \ + AUTHORS ../COPYING INSTALL NEWS README \ + $PKG/usr/doc/gettext-tools-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc.gettext-tools > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/gettext-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild new file mode 100755 index 00000000..bdc269c5 --- /dev/null +++ b/source/a/gettext/gettext.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2005-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:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gettext + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$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 gettext-$VERSION +tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1 +cd gettext-$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 {} \; + +cd gettext-runtime +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/gettext-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +make -j4 || exit 1 +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 +) +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man?/* +( cd $PKG/usr/doc + mkdir gettext-$VERSION + mv gettext/csharpdoc gettext/javadoc1 gettext/javadoc2 libasprintf \ + gettext-$VERSION + rm -rf gettext + cd gettext-$VERSION + if [ -r $PKG/usr/share/gettext/ABOUT-NLS ]; then + rm -f ABOUT-NLS + ln -sf /usr/share/gettext/ABOUT-NLS . + fi +) +cp -a \ + AUTHORS BUGS intl/COPYING.LIB-2.0 intl/COPYING.LIB-2.1 INSTALL NEWS README \ + $PKG/usr/doc/gettext-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/gettext-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gettext/slack-desc b/source/a/gettext/slack-desc new file mode 100644 index 00000000..b8f30f25 --- /dev/null +++ b/source/a/gettext/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------------------------------------------------------| +gettext: gettext (internationalization framework) +gettext: +gettext: The GNU gettext package contains "gettext" and "ngettext", programs +gettext: that are used to internationalize the messages given by shell scripts. +gettext: +gettext: +gettext: +gettext: +gettext: +gettext: +gettext: diff --git a/source/a/gettext/slack-desc.gettext-tools b/source/a/gettext/slack-desc.gettext-tools new file mode 100644 index 00000000..06c32c46 --- /dev/null +++ b/source/a/gettext/slack-desc.gettext-tools @@ -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------------------------------------------------------| +gettext-tools: gettext-tools (internationalization framework tools) +gettext-tools: +gettext-tools: The GNU gettext-tools package is useful for authors and maintainers of +gettext-tools: internationalized software, or for anyone compiling programs that +gettext-tools: use the gettext functions. This package provides the needed tools and +gettext-tools: library functions for the handling of messages in different languages. +gettext-tools: Some other GNU packages use the gettext program (included in this +gettext-tools: package) to internationalize the messages given by shell scripts. +gettext-tools: +gettext-tools: +gettext-tools: diff --git a/source/a/getty-ps/getty-ps.SlackBuild b/source/a/getty-ps/getty-ps.SlackBuild new file mode 100755 index 00000000..76e4012d --- /dev/null +++ b/source/a/getty-ps/getty-ps.SlackBuild @@ -0,0 +1,79 @@ +#!/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.0b +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-getty-ps + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/getty_ps-$VERSION.tar.gz +cd getty_ps-$VERSION +zcat $CWD/getty.bugfixes.diff.gz | patch -p1 --verbose || exit +# Prevent "error: conflicting types for 'send'" +# because send is already defined in <sys/net.h> +sed -i -e "s/send/gettysend/g" funcs.c +chown -R root:root . +make clean +rm getty uugetty +make +strip getty uugetty +mkdir $PKG/sbin +cat getty > $PKG/sbin/getty +cat uugetty > $PKG/sbin/uugetty +chmod 755 $PKG/sbin/* +mkdir $PKG/etc +cat Examples/gettydefs > $PKG/etc/gettydefs +#cat Examples/ttytype > $PKG/etc/ttytype +mkdir $PKG/etc/default +cp -a Examples/default/* $PKG/etc/default +chown root:root $PKG/etc/default/* +mkdir -p $PKG/usr/man/man1 +cat man/getty.1 | gzip -9c > $PKG/usr/man/man1/getty.1.gz +( cd $PKG/usr/man/man1 ; ln -sf getty.1.gz uugetty.1.gz ) +mkdir -p $PKG/usr/man/man5 +cat man/gettydefs.5 | gzip -9c > $PKG/usr/man/man5/gettydefs.5.gz +mkdir -p $PKG/usr/doc/getty-ps-$VERSION +cp -a \ + ANNOUNCE ChangeLog README.* Examples *.lsm INSTALL \ + $PKG/usr/doc/getty-ps-$VERSION +find $PKG/usr/doc/getty-ps-$VERSION -type d -exec chmod 755 {} \; +find $PKG/usr/doc/getty-ps-$VERSION -type f -exec chmod 644 {} \; +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/getty-ps-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/getty_ps-$VERSION + rm -rf $PKG +fi diff --git a/source/a/getty-ps/getty.bugfixes.diff b/source/a/getty-ps/getty.bugfixes.diff new file mode 100644 index 00000000..6a1ed29e --- /dev/null +++ b/source/a/getty-ps/getty.bugfixes.diff @@ -0,0 +1,356 @@ +This patch contains the following bugfixes: + +* the TIMEOUT (and -t flag) has now different effect for getty and uugetty: + with uugetty, TIMEOUT set will now cause uugetty exit no matter whether + there has been any input from the user (the counting will start immediately + after login() has been spawned - pre- getty-2.1.0 behavior), while for + getty, it will make the counter start after single input has been detected + from the user + * getty.1 manpage updated accordingly + +* @F issue substitution now works as expected + +* @V / VERSION functionality documentation fix in getty.1 manpage + +* fixed a bunch of memleaks (if not all): + * Fputs() made strdup()-free (we now use static structs where possible) + * avoided unnecessary dual strdup() for Version in defs() + * freeing of "DEF **def" including its internals is now handled, as well as + feeing of other variables in defs() pointing to strdup()ed memory areas + +Jan Rafaj + +--- ./man/getty.1.orig 2002-09-13 09:05:03.000000000 +0200 ++++ ./man/getty.1 2005-07-21 10:24:53.000000000 +0200 +@@ -307,7 +307,18 @@ + to exit (which + .I init + should then respawn), if the login is not completed within timeout seconds +-(after the login name is entered) ++(after the login name is entered). This option behaves differently for ++.I getty ++and ++.I uugetty. ++If ++.I getty ++is used, the counting will start after single input from the user has been ++detected, whileas with ++.I uugetty, ++the counting will start immediately after ++.IR login (1m) ++has been spawned, no matter the input from the user. + + Giving + .B \-w +@@ -388,9 +399,12 @@ + If + .I string + begins with a '/' character, it is assumed to be the full pathname of a +-file, and ++text file, and + .B @V +-is set to be the contents of that file. The default is /proc/version. ++is set to be the contents of the first line in that file (line has to be ++terminated by newline character or by end of file). ++.br ++The default is /proc/version. + .TP + LOGIN=\fIname\fR + Sets the name of the login program to +@@ -503,6 +517,14 @@ + to exit if no user name is accepted before the + .I number + of seconds elapse after the login prompt is displayed. ++With ++.I getty, ++the counting will start as soon as a single character ++has been entered by the user, whileas with ++.I uugetty, ++the counting will start immediately after the login prompt ++is displayed, no matter the input from the user. ++.br + The default is to wait indefinitely for the user name. + .TP + CONNECT=\fIstring\fR +@@ -865,6 +887,11 @@ + .IR cu (1) + and others). This prevents two or more processes from having conficting + use of a tty port. ++.br ++.I Uugetty ++also differs from ++.I getty ++by handling the -t parameter and TIMEOUT option. + .PP + When + .I uugetty +--- ./main.c.orig 2004-04-11 03:34:34.000000000 +0200 ++++ ./main.c 2005-07-21 11:37:19.000000000 +0200 +@@ -78,6 +78,8 @@ + void debugstart(); + #endif /* DEBUG */ + ++DEF **def; ++ + /* trivial globals */ + + char buf[MAXLINE]; +@@ -86,7 +88,7 @@ + char tbuf[64]; + + #define Perror(s) { debug(D_INIT, "Line %d: %s: Error %d: %s\n", \ +- __LINE__, s, errno, sys_errlist[errno]); \ ++ __LINE__, s, errno, strerror(errno)); \ + exit(errno); \ + } + +@@ -149,6 +151,50 @@ + } + } + ++/* ++ * Why a lot of programmers ignore the fact that memory area returned ++ * by strdup() and *alloc() has to be freed upon exit? :(( -JR ++ */ ++void free_def(void) ++{ ++ register DEF **deflist = def; ++ ++ for (; *deflist != (DEF *)NULL; deflist++) { ++ free((*deflist)->name); ++ free((*deflist)->value); ++ free(*deflist); ++ } ++} ++ ++void free_sysname(void) ++{ ++ if (SysName) ++ free(SysName); ++ SysName = NULL; ++} ++ ++void free_version(void) ++{ ++ if (Version) ++ free(Version); ++ Version = NULL; ++} ++ ++#ifdef UUGETTY ++void free_lock(void) ++{ ++ if (lock) ++ free(lock); ++ lock = NULL; ++} ++ ++void free_altlock(void) ++{ ++ if (altlock) ++ free(altlock); ++ altlock = NULL; ++} ++#endif + + /* + ** main +@@ -320,7 +366,6 @@ + char **args; + { + register int c; +- DEF **def; + char *p; + char termcap[1024]; + +@@ -416,22 +461,27 @@ + /* now, get all that info in the defaults file */ + + def = defbuild(defname); ++ atexit(free_def); + #ifdef DEBUG + if ((p = defvalue(def, "DEBUG"))) (void) sscanf(p, "%o", &Debug); + if (Debug) debugstart(); + #endif /* DEBUG */ + SysName = strdup(getuname()); ++ atexit(free_sysname); + if (p = defvalue(def, "SYSTEM")) SysName = p; +- if (p = defvalue(def, "VERSION")) +- Version = strdup(p); +- if (*Version == '/') +- { if ((fp = fopen(Version, "r"))) +- { fgets(buf, MAXLINE, fp); +- fclose(fp); +- buf[strlen(buf)-1] = '\0'; +- Version = strdup(buf); ++ if (p = defvalue(def, "VERSION")) { ++ if (*p == '/') { ++ if ((fp = fopen(p, "r"))) { ++ fgets(buf, MAXLINE, fp); ++ fclose(fp); ++ buf[strlen(buf)-1] = '\0'; ++ Version = strdup(buf); + } +- } ++ } else { ++ Version = strdup(p); ++ } ++ atexit(free_version); ++ } + if((p = defvalue(def, "LOGIN"))) login_pgm = p; + if((p = defvalue(def, "ISSUE"))) issue = p; + if((p = defvalue(def, "CLEAR")) && (strequal(p, "NO"))) +@@ -489,12 +539,15 @@ + #ifdef UUGETTY + (void) sprintf(buf, LOCK, Device); + lock = strdup(buf); ++ atexit(free_lock); + if((p = defvalue(def, "ALTLOCK"))) { + (void) sprintf(buf, LOCK, p); + altlock = strdup(buf); ++ atexit(free_altlock); + } else if(! strequal(Device, InitDevice)) { + (void) sprintf(buf, LOCK, InitDevice); + altlock = strdup(buf); ++ atexit(free_altlock); + } + + debug(D_LOCK, "lock = (%s), altlock = (%s)", lock, altlock); +@@ -625,8 +678,8 @@ + with the uts struct filled above. + */ + +- debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s, +- id: %c%c, time: %d, user: %s, host: %s, addr: %d", ++ debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s, " ++ "id: %c%c, time: %d, user: %s, host: %s, addr: %d", + uts.ut_type, uts.ut_pid, uts.ut_line, + (uts.ut_id[0] ? uts.ut_id[0] : ' '), + (uts.ut_id[1] ? uts.ut_id[1] : ' '), +@@ -1077,16 +1130,20 @@ + login_prompt: + (void) ioctl(STDIN, TCFLSH, 0); + #ifdef FIDO +- if (emsi && (strcmp(emsi,"yes") == 0)) +- (void) Fputs("**EMSI_REQA77E\r", stdout); ++ if (emsi && (strcmp(emsi,"yes") == 0)) ++ (void) Fputs("**EMSI_REQA77E\r", stdout); + #endif + (void) Fputs(gtab->login, stdout); +- ++#ifndef UUGETTY + login_result=getlogname(&termio, buf, MAXLINE); ++#endif + if(TimeOut > 0) { + (void) signal(SIGALRM, timeout); + (void) alarm((unsigned) TimeOut); + } ++#ifdef UUGETTY ++ login_result=getlogname(&termio, buf, MAXLINE); ++#endif + + switch(login_result) { + #ifdef FIDO +@@ -1114,6 +1171,13 @@ + #ifdef SETTERM + setenv("TERM", term, TRUE); + #endif /* SETTERM */ ++ free_def(); ++ free_sysname(); ++ free_version(); ++#ifdef UUGETTY ++ free_lock(); ++ free_altlock(); ++#endif + debug(D_RUN, "execing login"); + (void) execl(login_pgm, + "login", buf, NULLPTR); +--- ./funcs.c.orig 2002-09-25 08:43:28.000000000 +0200 ++++ ./funcs.c 2005-07-20 19:01:55.000000000 +0200 +@@ -87,12 +87,11 @@ + register char *s; + register FILE *stream; + { +- char c, n, tbuf[20], ubuf[MAXBUF]; +- char *cbuf; ++ char c, n, tbuf[20]; + time_t clock; + struct tm *lt; +- struct utsname utsbuf; +- struct hostent *fqdname; ++ static struct utsname utsbuf; ++ static struct hostent *fqdname; + FILE *fp1; + + char *day_name[] = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" }; +@@ -119,21 +118,8 @@ + return(EOF); + break; + case 'F': /* FQDName */ +- cbuf = strdup(SysName); +-#if 0 /* The does a seg violation - no idea why.... */ + fqdname = gethostbyname(SysName); +-#endif +-#if 0 /* So, we cheat.....! */ +- /* Which also gets a seg violation! */ +- if (fp1 = fopen("/etc/HOSTNAME", "r")) +- { fgets(cbuf, MAXBUF, fp1); +- fclose(fp1); +- cbuf[strlen(cbuf)] = '\0'; +- } +- if (fqdname != NULL) +- cbuf = strdup(fqdname->h_name); +-#endif +- if (Fputs(cbuf, stream) == EOF) ++ if (fqdname && Fputs(fqdname->h_name, stream) == EOF) + return(EOF); + break; + case 'L': /* line */ +@@ -141,18 +127,15 @@ + return(EOF); + break; + case 'M': /* arch of machine */ +- cbuf = strdup(utsbuf.machine); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.machine, stream) == EOF) + return(EOF); + break; + case 'O': /* O/S name */ +- cbuf = strdup(utsbuf.sysname); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.sysname, stream) == EOF) + return(EOF); + break; + case 'R': /* O/S rev_id */ +- cbuf = strdup(utsbuf.release); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.release, stream) == EOF) + return(EOF); + break; + case 'S': /* system node name */ +@@ -166,8 +149,8 @@ + return(EOF); + break; + case 'U': /* number of active users */ +- (void) sprintf(ubuf, "%d", Nusers); +- if (Fputs(ubuf, stream) == EOF) ++ (void) sprintf(tbuf, "%d", Nusers); ++ if (Fputs(tbuf, stream) == EOF) + return(EOF); + break; + case 'V': /* version */ +@@ -175,12 +158,10 @@ + return(EOF); + break; + case 'u': /* user count str */ +- cbuf = malloc(20); + (void) sprintf(tbuf, "%d User", Nusers); + if (Nusers > 1) +- cbuf = strcat(tbuf,"s"); +- else cbuf=strdup(tbuf); +- if (Fputs(cbuf, stream) == EOF) ++ strcat(tbuf, "s"); ++ if (Fputs(tbuf, stream) == EOF) + return(EOF); + break; + case '@': /* in case '@@' was used */ diff --git a/source/a/getty-ps/getty_ps-2.1.0.lsm b/source/a/getty-ps/getty_ps-2.1.0.lsm new file mode 100644 index 00000000..b89d9f50 --- /dev/null +++ b/source/a/getty-ps/getty_ps-2.1.0.lsm @@ -0,0 +1,26 @@ +Begin4 +Title: getty-ps +Version: 2.1.0 +Entered-date: 27SEP02 +Description: A versatile getty/uugetty program designed to allow easy + use of a modem for incoming/outgoing data/fax/voice calls. + It also allows easy set-up of regular login ports. Unlike + agetty, it stores most of it's configuration and port + initialization information in up to 2 files. This usually + results in slightly more involved initial installation, but + easier maintenance than agetty. It also leaves the + inittab entries looking uncluttered. Supports 57600 and + faster speeds, and is compatible with uucp and efax-0.9[a]. + Ringback is provided as an optional feature. +Keywords: getty uugetty serial modem ringback efax uucp +Author: Paul Sutcliffe, Jr. +Maintained-by: Christine Jamison <getty-info@nwmagic.net> +Primary-site: ftp.ibiblio.org:/pub/Linux/system/serial/getty_ps-2.1.0.tar.gz +Alternate-site: ftp.nwmagic.net:/pub/sources/getty_ps-2.1.0.tar.gz +Original-site: Unknown +Platforms: Linux (tested on 1.0.x-2.4.5, Slackware 4.0 thru 8.1); should + compile and work on almost any Unix, after library + compatibility is resolved and paths are checked in tune.h; + compiles clean with gcc 2.7.2.3 & 2.95.3. +Copying-policy: FRS +End diff --git a/source/a/getty-ps/slack-desc b/source/a/getty-ps/slack-desc new file mode 100644 index 00000000..dda6cf7a --- /dev/null +++ b/source/a/getty-ps/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------------------------------------------------------| +getty-ps: getty-ps (console or terminal login) +getty-ps: +getty-ps: /sbin/getty and /sbin/uugetty. +getty-ps: These control the process of logging into your system, and may be used +getty-ps: instead of 'agetty', which is the default getty included with the +getty-ps: util-linux package. getty-ps supports a number of enhancements such as +getty-ps: ringback support. +getty-ps: +getty-ps: getty-ps was originally written by Paul Sutcliffe, Jr, and is +getty-ps: currently maintained by Christine Jamison. +getty-ps: diff --git a/source/a/gpm/gpm-1.20.1-consolename.patch b/source/a/gpm/gpm-1.20.1-consolename.patch new file mode 100644 index 00000000..c5879fb4 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-consolename.patch @@ -0,0 +1,18 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-10-13 16:34:15.181502369 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-10-13 16:34:20.491778415 -0400 +@@ -262,13 +262,14 @@ + gpm_report(GPM_PR_ERR,"consolename not set"); + goto err; + } ++#if 0 + /* do we really need this check ? */ + if(strncmp(tty,consolename,strlen(consolename)-1) + || !isdigit(tty[strlen(consolename)-1])) { + gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed"); + goto err; + } +- ++#endif + conn->vc=atoi(&tty[strlen(consolename)-1]); + } + diff --git a/source/a/gpm/gpm-1.20.1-gpmopen.patch b/source/a/gpm/gpm-1.20.1-gpmopen.patch new file mode 100644 index 00000000..f36ad939 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-gpmopen.patch @@ -0,0 +1,22 @@ +--- gpm-1.20.1/src/lib/liblow.c.gpmopen 2004-05-04 17:36:09.000000000 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-05-04 17:42:51.000000000 -0400 +@@ -200,8 +200,6 @@ + Gpm_Stst *new = NULL; + char* sock_name = 0; + +- consolename = NULL; +- + #if 0 + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); + #endif +@@ -260,6 +258,10 @@ + gpm_report(GPM_PR_ERR,"checking tty name failed"); + goto err; + } ++ if (consolename == NULL) { ++ gpm_report(GPM_PR_ERR,"consolename not set"); ++ goto err; ++ } + /* do we really need this check ? */ + if(strncmp(tty,consolename,strlen(consolename)-1) + || !isdigit(tty[strlen(consolename)-1])) { diff --git a/source/a/gpm/gpm-1.20.1-idie.patch b/source/a/gpm/gpm-1.20.1-idie.patch new file mode 100644 index 00000000..4594f078 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-idie.patch @@ -0,0 +1,12 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-05-06 14:14:03.000000000 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-05-06 14:18:05.000000000 -0400 +@@ -376,7 +376,9 @@ + + /*....................................... Error: free all memory */ + err: ++#if 0 + gpm_report(GPM_PR_ERR,"Oh, oh, it's an error! possibly I die! "); ++#endif + do { + new=gpm_stack->next; + free(gpm_stack); diff --git a/source/a/gpm/gpm-1.20.1-input-defines.diff b/source/a/gpm/gpm-1.20.1-input-defines.diff new file mode 100644 index 00000000..4a925a6a --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-input-defines.diff @@ -0,0 +1,26 @@ +--- ./src/headers/input-defines.h.orig 2006-12-11 19:56:14.000000000 -0600 ++++ ./src/headers/input-defines.h 2006-12-11 19:59:30.000000000 -0600 +@@ -59,23 +59,4 @@ + #define PSMOUSE_SYNAPTICS 7 + #endif + +-#ifndef HAVE_INPUT_ID +-struct input_id { +- unsigned short bustype; +- unsigned short vendor; +- unsigned short product; +- unsigned short version; +-}; +-#endif +- +-#ifndef HAVE_INPUT_ABSINFO +-struct input_absinfo { +- int value; +- int minimum; +- int maximum; +- int fuzz; +- int flat; +-}; +-#endif +- + #endif diff --git a/source/a/gpm/gpm-1.20.1-input.patch b/source/a/gpm/gpm-1.20.1-input.patch new file mode 100644 index 00000000..152e6038 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-input.patch @@ -0,0 +1,16 @@ +diff -ur gpm-1.20.1.orig/src/headers/config.h.in gpm-1.20.1/src/headers/config.h.in +--- gpm-1.20.1.orig/src/headers/config.h.in 2004-09-04 10:24:11.000000000 -0400 ++++ gpm-1.20.1/src/headers/config.h.in 2004-09-04 10:26:02.000000000 -0400 +@@ -46,6 +46,12 @@ + /* Define if you have the <linux/input.h> header file. */ + #undef HAVE_LINUX_INPUT_H + ++/* Definedif you have the input_id structure */ ++#undef HAVE_INPUT_ID ++ ++/* Definedif you have the input_absinfo structure */ ++#undef HAVE_INPUT_ABSINFO ++ + /* Define if you have the <linux/joystick.h> header file. */ + #undef HAVE_LINUX_JOYSTICK_H + diff --git a/source/a/gpm/gpm-1.20.1-lib-silent.patch b/source/a/gpm/gpm-1.20.1-lib-silent.patch new file mode 100644 index 00000000..099075b5 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-lib-silent.patch @@ -0,0 +1,19 @@ +--- gpm-1.20.1/src/lib/report-lib.c.lib-silent 2002-12-24 23:57:16.000000000 +0100 ++++ gpm-1.20.1/src/lib/report-lib.c 2006-01-18 17:55:38.000000000 +0100 +@@ -24,8 +24,16 @@ + + #include "headers/message.h" + ++static int gpm_silent() { ++ if ( getenv( "GPM_VERBOSE" ) == NULL ) return 1; ++ return 0; ++} ++ + void gpm_report(int line, char *file, int stat, char *text, ... ) + { ++ if ( gpm_silent() && stat != GPM_STAT_OOPS ) ++ return; ++ + char *string = NULL; + va_list ap; + va_start(ap,text); diff --git a/source/a/gpm/gpm-1.20.1-math.patch b/source/a/gpm/gpm-1.20.1-math.patch new file mode 100644 index 00000000..634a5fd8 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-math.patch @@ -0,0 +1,11 @@ +--- gpm-1.20.1/configure.in.math Tue Jun 24 10:52:44 2003 ++++ gpm-1.20.1/configure.in Tue Jun 24 10:53:54 2003 +@@ -128,7 +128,7 @@ + AC_SUBST(lispdir) + + CPPFLAGS='-I$(srcdir) $(DEFS) -include headers/config.h -Wall -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\""' +-LDFLAGS='-L$(srcdir)' ++LDFLAGS='-lm -L$(srcdir)' + + dnl AC_DEFINE_UNQUOTED(SYSCONFDIR,"$sysconfdir") + dnl AC_DEFINE_UNQUOTED(SBINDIR,"$sbindir") diff --git a/source/a/gpm/gpm-1.20.1-multilib.patch b/source/a/gpm/gpm-1.20.1-multilib.patch new file mode 100644 index 00000000..723ee2b5 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-multilib.patch @@ -0,0 +1,52 @@ +--- gpm-1.20.1/doc/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/doc/Makefile.in 2004-10-20 17:25:11.000000000 -0400 +@@ -97,7 +97,7 @@ + + # Main portion + +-all: $(srcdir)/gpm.info $(MANPAGES) ++all: gpm.info $(MANPAGES) + + # why gpmdoc.ps and gpm.ps?? + # there is no gpm.ps in my tree and no rule to generate gpm.ps. +@@ -131,8 +131,8 @@ + #i keep all my infopages compressed and i'm tired to do it by + #hand, so check if there are any compressed pages and do this + #one too +- -ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \ +- && gzip -f $(infodir)/gpm.info ++ #-ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \ ++ # && gzip -f $(infodir)/gpm.info + # Hmm.... shouldn't man pages be compressed too? + # maybe they should, but at least at my system they are not. + +--- gpm-1.20.1/contrib/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/contrib/Makefile.in 2004-10-20 17:11:38.000000000 -0400 +@@ -9,10 +9,10 @@ + + include $(top_builddir)/Makefile.include + +-all: $(srcdir)/$(ELISP) ++all: $(filter-out %.elc,$(srcdir)/$(ELISP)) + + install: all +- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ ++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \ + $(INSTALL_DATA) $(srcdir)/$$i $(lispdir)/`basename $$i` ;\ + done; fi + +@@ -20,7 +20,7 @@ + $(EMACS) -batch -l $(srcdir)/emacs/exec.el -exec '(byte-compile-file "$<")' + + uninstall: +- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ ++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \ + rm -f $(lispdir)/$$i ;\ + done; fi + +@@ -28,4 +28,4 @@ + $(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/ + + clean distclean: +- $(RM) -f $(srcdir)/emacs/*.elc ++ $(RM) $(srcdir)/emacs/*.elc diff --git a/source/a/gpm/gpm-1.20.1-no-console-error.patch b/source/a/gpm/gpm-1.20.1-no-console-error.patch new file mode 100644 index 00000000..20c177b4 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-no-console-error.patch @@ -0,0 +1,15 @@ +--- gpm-1.20.1/src/console.c.no-console-error 2006-01-18 17:06:15.000000000 +0100 ++++ gpm-1.20.1/src/console.c 2006-01-18 17:08:19.000000000 +0100 +@@ -249,8 +249,10 @@ + /* Failed, try OLD console */ + else if (stat(GPM_OLD_CONSOLE, &buf) == 0) + console.device = GPM_OLD_CONSOLE; +- else +- gpm_report(GPM_PR_OOPS, "Can't determine console device"); ++ else { // XXX handle this gracefully? ++ fprintf( stderr, "no console device found" ); ++ exit( 1 ); ++ } + + return console.device; + } diff --git a/source/a/gpm/gpm-1.20.1-nodebug.patch b/source/a/gpm/gpm-1.20.1-nodebug.patch new file mode 100644 index 00000000..945b576c --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-nodebug.patch @@ -0,0 +1,12 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-03-31 15:06:45.000000000 -0500 ++++ gpm-1.20.1/src/lib/liblow.c 2004-03-31 15:09:32.000000000 -0500 +@@ -202,7 +202,9 @@ + + consolename = NULL; + ++#if 0 + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); ++#endif + + /*....................................... First of all, check xterm */ + diff --git a/source/a/gpm/gpm-1.20.1-subscript.patch b/source/a/gpm/gpm-1.20.1-subscript.patch new file mode 100644 index 00000000..bf4ca75b --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-subscript.patch @@ -0,0 +1,11 @@ +--- gpm-1.20.1/src/mice.c.lr 2004-02-15 09:19:48.000000000 +0100 ++++ gpm-1.20.1/src/mice.c 2004-02-15 09:22:18.000000000 +0100 +@@ -2112,7 +2112,7 @@ + for (i=0; i<4; i++) + if (gunze_calib[i] & ~1023) calibok = 0; + if (gunze_calib[0] == gunze_calib[2]) calibok = 0; +- if (gunze_calib[1] == gunze_calib[4]) calibok = 0; ++ if (gunze_calib[1] == gunze_calib[3]) calibok = 0; + fclose(f); + } + if (!calibok) { diff --git a/source/a/gpm/gpm-1.20.1-weak-wgetch.patch b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch new file mode 100644 index 00000000..81e6a2b5 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch @@ -0,0 +1,38 @@ +--- gpm-1.20.1/src/lib/libcurses.c.weak-wgetch 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/src/lib/libcurses.c 2004-03-22 15:51:24.000000000 -0500 +@@ -41,7 +41,12 @@ + #endif /* HAVE_NCURSES_CURSES_H */ + #endif /* HAVE_NCURSES_H */ + +-#define GET(win) ((win) ? wgetch(win) : getch()) ++/* If win != NULL, it must have been created by ncurses anyway. ++ Avoid circular library dependencies. */ ++#pragma weak wgetch ++#pragma weak stdscr ++ ++#define GET(win) ((win && wgetch) ? wgetch(win) : getch()) + + int Gpm_Wgetch(WINDOW *win) + { +--- gpm-1.20.1/configure.in.weak-wgetch 2004-03-22 15:49:51.000000000 -0500 ++++ gpm-1.20.1/configure.in 2004-03-22 15:51:24.000000000 -0500 +@@ -115,7 +115,7 @@ + AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) + else :; fi + done +- SHARED_LIBS="$LIBS $TERMLIBS -lc" ++ SHARED_LIBS="-lc" + LIBS=$SAVELIBS ;; + esac + +--- gpm-1.20.1/configure.weak-wgetch 2004-03-22 15:49:55.000000000 -0500 ++++ gpm-1.20.1/configure 2004-03-22 15:51:24.000000000 -0500 +@@ -4295,7 +4295,7 @@ + + else :; fi + done +- SHARED_LIBS="$LIBS $TERMLIBS -lc" ++ SHARED_LIBS="-lc" + LIBS=$SAVELIBS ;; + esac + diff --git a/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff new file mode 100644 index 00000000..111e7843 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff @@ -0,0 +1,86 @@ +diff -u -r gpm-1.20.1.orig/src/report.c gpm-1.20.1/src/report.c +--- gpm-1.20.1.orig/src/report.c 2006-08-20 14:34:30.000000000 -0500 ++++ gpm-1.20.1/src/report.c 2006-08-20 14:44:54.000000000 -0500 +@@ -48,15 +48,15 @@ + * + * Startup Mode: + * debug : - (ignore) +- * info : syslog/stdout +- * warn/err : syslog/stderr ++ * info : syslog ++ * warn/err : syslog + * oops : syslog/stderr [exit] + * + * Running Mode: (daemon) + * debug : - (ignore) + * info : syslog +- * warn : syslog+system console +- * err : syslog+system console+current console ++ * warn : syslog ++ * err : syslog + * oops : syslog/stderr [_exit] + * + * Debug Mode : +@@ -85,9 +85,6 @@ + syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO); + vsyslog(LOG_INFO | LOG_USER, text, ap); + #endif +- fprintf(stderr,GPM_STRING_INFO); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_WARN: +@@ -95,9 +92,6 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- fprintf(stderr,GPM_STRING_WARN); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_ERR: +@@ -105,9 +99,6 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- fprintf(stderr,GPM_STRING_ERR); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_OOPS: +@@ -139,12 +130,6 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { +- fprintf(f, GPM_STRING_WARN); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } + break; + + case GPM_STAT_ERR: +@@ -152,19 +137,6 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { +- fprintf(f, GPM_STRING_ERR); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } +- +- if ((f = fopen(console.device, "a")) != NULL) { +- fprintf(f, GPM_STRING_ERR); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } + break; + + case GPM_STAT_OOPS: diff --git a/source/a/gpm/gpm-evdev-cumulative.patch b/source/a/gpm/gpm-evdev-cumulative.patch new file mode 100644 index 00000000..2fd86d10 --- /dev/null +++ b/source/a/gpm/gpm-evdev-cumulative.patch @@ -0,0 +1,7023 @@ +diff -urN gpm-1.20.1/configure.in gpm/configure.in +--- gpm-1.20.1/configure.in 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/configure.in 2003-10-02 01:22:42.000000000 -0500 +@@ -61,6 +61,13 @@ + + AC_CHECK_HEADERS(syslog.h linux/input.h linux/joystick.h ncurses.h ncurses/curses.h curses.h) + ++EVDEV_SRCS= ++if test ${ac_cv_header_linux_input_h} = yes ; then ++ EVDEV_SRCS=evdev.c ; ++ AC_CHECK_TYPE(struct input_absinfo,AC_DEFINE_UNQUOTED(HAVE_INPUT_ABSINFO, 1, [define if struct input_absinfo defined in linux/input.h]),,[#include <linux/input.h>]) ++ AC_CHECK_TYPE(struct input_id,AC_DEFINE_UNQUOTED(HAVE_INPUT_ID, 1, [define if struct input_id defined in linux/input.h]),,[#include <linux/input.h>]) ++fi ++ + AC_ARG_WITH(curses, + [ --without-curses disable curses support even if curses found]) + +@@ -124,6 +131,7 @@ + AC_SUBST(PICFLAGS) + AC_SUBST(SOLDFLAGS) + AC_SUBST(CURSES_OBJS) ++AC_SUBST(EVDEV_SRCS) + AC_SUBST(SHARED_LIBS) + AC_SUBST(lispdir) + +diff -urN gpm-1.20.1/src/client.c gpm/src/client.c +--- gpm-1.20.1/src/client.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/client.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,319 @@ ++/* ++ * client.c - GPM client handling (server side) ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <signal.h> /* SIGPIPE */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <sys/time.h> /* timeval */ ++#include <sys/types.h> /* socket() */ ++#include <sys/socket.h> /* socket() */ ++#include <sys/un.h> /* struct sockaddr_un */ ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" ++#include "headers/client.h" ++ ++/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */ ++#if !defined(__GLIBC__) ++ typedef unsigned int __socklen_t; ++#endif /* __GLIBC__ */ ++ ++#ifndef max ++#define max(a,b) ((a)>(b) ? (a) : (b)) ++#endif ++ ++extern int errno; ++ ++struct client_info *cinfo[MAX_VC + 1]; ++ ++/*-------------------------------------------------------------------* ++ * This was inline, and incurred in a compiler bug (2.7.0) ++ *-------------------------------------------------------------------*/ ++static int get_data(int fd, Gpm_Connect *data) ++{ ++ static int len; ++ ++#ifdef GPM_USE_MAGIC ++ while ((len = read(whence, &check, sizeof(int))) == 4 && ++ check != GPM_MAGIC) ++ gpm_report(GPM_PR_INFO, GPM_MESS_NO_MAGIC); ++ ++ if (len == 0) return 0; ++ ++ if (check != GPM_MAGIC) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_NOTHING_MORE); ++ return -1; ++ } ++#endif ++ ++ len = read(fd, data, sizeof(Gpm_Connect)); ++ ++ return len ? (len == sizeof(Gpm_Connect) ? 1 : -1) : 0; ++} ++ ++/*-------------------------------------------------------------------*/ ++int listen_for_clients(void) ++{ ++ struct sockaddr_un ctladdr; ++ int fd, len; ++ ++ unlink(GPM_NODE_CTL); ++ ++ if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_SOCKET_PROB); ++ ++ memset(&ctladdr, 0, sizeof(ctladdr)); ++ ctladdr.sun_family = AF_UNIX; ++ strcpy(ctladdr.sun_path, GPM_NODE_CTL); ++ len = sizeof(ctladdr.sun_family) + strlen(GPM_NODE_CTL); ++ ++ if (bind(fd, (struct sockaddr *)&ctladdr, len) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_BIND_PROB, ctladdr.sun_path); ++ ++ /* needs to be 0777, so all users can _try_ to access gpm */ ++ chmod(GPM_NODE_CTL, 0777); ++ listen(fd, 5); /* Queue up calls */ ++ ++ return fd; ++} ++ ++/*-------------------------------------------------------------------*/ ++struct client_info *accept_client_connection(int fd) ++{ ++ struct client_info *info; ++ Gpm_Connect *request; ++ int newfd; ++#if !defined(__GLIBC__) ++ int len; ++#else /* __GLIBC__ */ ++ size_t len; /* isn't that generally defined in C ??? -- nico */ ++#endif /* __GLIBC__ */ ++ struct sockaddr_un addr; /* reuse this each time */ ++#ifndef SO_PEERCRED ++ struct stat statbuf; ++ time_t staletime; ++#endif ++ uid_t uid; ++ ++ /*....................................... Accept */ ++ memset(&addr, 0, sizeof(addr)); ++ addr.sun_family = AF_UNIX; ++ ++ len = sizeof(addr); ++ if ((newfd = accept(fd, (struct sockaddr *)&addr, &len)) < 0) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_ACCEPT_FAILED, strerror(errno)); ++ return NULL; ++ } ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CONECT_AT, newfd); ++ ++ if (!(info = malloc(sizeof(struct client_info)))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); ++ ++ request = &info->data; ++ if (get_data(newfd, request) == -1) ++ goto err; ++ ++ if (request->vc > MAX_VC) { ++ gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, request->vc, MAX_VC); ++ goto err; ++ } ++ ++#ifndef SO_PEERCRED ++ if (stat(addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path); ++ goto err; ++ } ++ ++ unlink(addr.sun_path); /* delete socket */ ++ ++ staletime = time(0) - 30; ++ if (statbuf.st_atime < staletime || ++ statbuf.st_ctime < staletime || ++ statbuf.st_mtime < staletime) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_SOCKET_OLD); ++ goto err; ++ } ++ ++ uid = statbuf.st_uid; /* owner of socket */ ++#else ++ { ++ struct ucred sucred; ++ socklen_t credlen = sizeof(struct ucred); ++ ++ if (getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno)); ++ goto err; ++ } ++ uid = sucred.uid; ++ gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid); ++ } ++#endif ++ ++ if (uid != 0 && !is_console_owner(request->vc, uid)) { ++ gpm_report(GPM_PR_WARN, GPM_MESS_FAILED_CONNECT, uid, request->vc); ++ goto err; ++ } ++ ++ /* register the connection information in the right place */ ++ info->next = cinfo[request->vc]; ++ info->fd = newfd; ++ cinfo[request->vc] = info; ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_LONG_STATUS, ++ request->pid, request->vc, request->eventMask, request->defaultMask, ++ request->minMod, request->maxMod); ++ ++ return info; ++ ++err: ++ free(info); ++ close(newfd); ++ ++ return NULL; ++} ++ ++/*-------------------------------------------------------------------*/ ++void remove_client(struct client_info *ci, int vc) ++{ ++ struct client_info *p, *prev = NULL; ++ ++ for (p = cinfo[vc]; p; prev = p, p = p->next) { ++ if (p == ci) { ++ if (!prev) /* it is on top of the stack */ ++ cinfo[vc] = p->next; ++ else ++ prev->next = p->next; ++ break; ++ } ++ } ++ if (p) free(p); ++} ++ ++/*-------------------------------------------------------------------*/ ++void notify_clients_resize(void) ++{ ++ struct client_info *ci; ++ int i; ++ ++ for (i = 0; i < MAX_VC + 1; i++) ++ for (ci = cinfo[i]; ci; ci = ci->next) ++ kill(ci->data.pid, SIGWINCH); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* returns 0 if the event has not been processed, and 1 if it has */ ++int do_client(struct client_info *cinfo, Gpm_Event *event) ++{ ++ Gpm_Connect *info = &cinfo->data; ++ /* value to return if event is not used */ ++ int res = !(info->defaultMask & event->type); ++ ++ /* instead of returning 0, scan the stack of clients */ ++ if ((info->minMod & event->modifiers) < info->minMod) ++ goto try_next; ++ if ((info->maxMod & event->modifiers) < event->modifiers) ++ goto try_next; ++ ++ /* if not managed, use default mask */ ++ if (!(info->eventMask & GPM_BARE_EVENTS(event->type))) { ++ if (res) return res; ++ else goto try_next; ++ } ++ ++ /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */ ++ MAGIC_P((write(cinfo->fd, &magic, sizeof(int)))); ++ write(cinfo->fd, event, sizeof(Gpm_Event)); ++ ++ return info->defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */ ++ ++ try_next: ++ if (cinfo->next != 0) ++ return do_client(cinfo->next, event); /* try the next */ ++ ++ return 0; /* no next, not used */ ++} ++ ++/*-------------------------------------------------------------------*/ ++/* returns 0 if client disconnects, -1 - error, 1 -successs */ ++int process_client_request(struct client_info *ci, int vc, ++ int x, int y, int buttons, int clicks, ++ int three_button_mouse) ++{ ++ int rc; ++ Gpm_Connect conn; ++ static Gpm_Event event; ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CON_REQUEST, ci->fd, vc); ++ if (vc > MAX_VC) return -1; ++ ++ /* itz 10-22-96 this shouldn't happen now */ ++ if (vc == -1) gpm_report(GPM_PR_OOPS, GPM_MESS_UNKNOWN_FD); ++ ++ rc = get_data(ci->fd, &conn); ++ ++ if (rc == 0) { /* no data */ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CLOSE); ++ close(ci->fd); ++ return 0; ++ } ++ ++ if (rc == -1) return -1; /* too few bytes */ ++ ++ if (conn.pid != 0) { ++ ci->data = conn; ++ return 1; ++ } ++ ++ /* Aha, request for information (so-called snapshot) */ ++ switch (conn.vc) { ++ case GPM_REQ_SNAPSHOT: ++ event.vc = get_console_state(&event.modifiers); ++ event.x = x; event.y = y; ++ event.buttons = buttons; ++ event.clicks = clicks; ++ event.dx = console.max_x; event.dy = console.max_y; ++ /* fall through */ ++ ++ case GPM_REQ_BUTTONS: ++ event.type = (three_button_mouse == 1 ? 3 : 2); /* buttons */ ++ write(ci->fd, &event, sizeof(Gpm_Event)); ++ break; ++ ++ case GPM_REQ_NOPASTE: ++ selection_disable_paste(); ++ gpm_report(GPM_PR_INFO, GPM_MESS_DISABLE_PASTE, vc); ++ break; ++ } ++ ++ return 1; ++} ++ +diff -urN gpm-1.20.1/src/console.c gpm/src/console.c +--- gpm-1.20.1/src/console.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/console.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,257 @@ ++/* ++ * console.c - GPM console and selection/paste handling ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <asm/types.h> /* __u32 */ ++ ++#include <linux/vt.h> /* VT_GETSTATE */ ++#include <sys/kd.h> /* KDGETMODE */ ++#include <termios.h> /* winsize */ ++ ++#include "headers/gpmInt.h" ++#include "headers/console.h" ++#include "headers/message.h" ++ ++#ifndef HAVE___U32 ++# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */ ++typedef unsigned int __u32; ++# endif ++#endif ++ ++struct gpm_console console = { 0, DEF_LUT, 0, 0 }; ++ ++/*-------------------------------------------------------------------*/ ++static int count_digits(int num) ++{ ++ int digits = 1; ++ ++ while ((num /= 10)) ++ digits++; ++ ++ return digits; ++} ++ ++/*-------------------------------------------------------------------*/ ++char *compose_vc_name(int vc) ++{ ++ char *tty; ++ ++ tty = malloc(strlen(console.device) + count_digits(vc) + sizeof(char)); ++ if (tty) { ++ /* console is /dev/vc/0 or /dev/tty0 and we trimming the ending 0 */ ++ strncpy(tty, console.device, strlen(console.device) - 1); ++ sprintf(&tty[strlen(console.device) - 1], "%d", vc); ++ } ++ ++ return tty; ++} ++ ++/*-------------------------------------------------------------------*/ ++int open_console(int mode) ++{ ++ int fd; ++ ++ if ((fd = open(console.device, mode)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON); ++ ++ return fd; ++} ++ ++/*-------------------------------------------------------------------*/ ++int is_text_console(void) ++{ ++ int fd; ++ int kd_mode; ++ ++ fd = open_console(O_RDONLY); ++ if (ioctl(fd, KDGETMODE, &kd_mode)<0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_KDGETMODE); ++ close(fd); ++ ++ return kd_mode == KD_TEXT; ++} ++ ++/*-------------------------------------------------------------------*/ ++void wait_text_console(void) ++{ ++ do { ++ sleep(2); ++ } while (!is_text_console()); ++} ++ ++/*-------------------------------------------------------------------*/ ++void refresh_console_size(void) ++{ ++ struct winsize win; ++ int fd = open_console(O_RDONLY); ++ ++ ioctl(fd, TIOCGWINSZ, &win); ++ close(fd); ++ ++ if (!win.ws_col || !win.ws_row) { ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_ZERO_SCREEN_DIM); ++ console.max_x = 80; console.max_y = 25; ++ } else { ++ console.max_x = win.ws_col; console.max_y = win.ws_row; ++ } ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SCREEN_SIZE, console.max_x, console.max_y); ++} ++ ++/*-------------------------------------------------------------------*/ ++int get_console_state(unsigned char *shift_state) ++{ ++ struct vt_stat stat; ++ int fd; ++ ++ fd = open_console(O_RDONLY); ++ ++ *shift_state = 6; /* code for the ioctl */ ++ if (ioctl(fd, TIOCLINUX, shift_state) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_SHIFT_STATE); ++ ++ if (ioctl(fd, VT_GETSTATE, &stat) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_CONSOLE_STAT); ++ ++ close(fd); ++ ++ return stat.v_active; ++} ++ ++/*-------------------------------------------------------------------*/ ++int is_console_owner(int vc, uid_t uid) ++{ ++ struct stat statbuf; ++ char *tty; ++ int rc; ++ ++ if ((tty = compose_vc_name(vc)) == NULL) ++ gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); ++ ++ if ((rc = stat(tty, &statbuf)) == -1) ++ gpm_report(GPM_PR_ERR, GPM_MESS_STAT_FAILS, tty); ++ ++ free(tty); ++ ++ return rc != -1 && uid == statbuf.st_uid; ++} ++ ++/*-------------------------------------------------------------------*/ ++/* octal digit */ ++static int isodigit(const unsigned char c) ++{ ++ return ((c & ~7) == '0'); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* routine to convert digits from octal notation (Andries Brouwer) */ ++static int getsym(const unsigned char *p0, unsigned char *res) ++{ ++ const unsigned char *p = p0; ++ char c; ++ ++ c = *p++; ++ if (c == '\\' && *p) { ++ c = *p++; ++ if (isodigit(c)) { ++ c -= '0'; ++ if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ } ++ } ++ *res = c; ++ return (p - p0); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* description missing! FIXME */ ++void console_load_lut(void) ++{ ++ extern int errno; ++ int i, c, fd; ++ unsigned char this, next; ++ static __u32 long_array[9] = { ++ 0x05050505, /* ugly, but preserves alignment */ ++ 0x00000000, /* control chars */ ++ 0x00000000, /* digits */ ++ 0x00000000, /* uppercase and '_' */ ++ 0x00000000, /* lowercase */ ++ 0x00000000, /* Latin-1 control */ ++ 0x00000000, /* Latin-1 misc */ ++ 0x00000000, /* Latin-1 uppercase */ ++ 0x00000000 /* Latin-1 lowercase */ ++ }; ++ ++#define inwordLut (long_array+1) ++ ++ for (i = 0; console.charset[i]; ) { ++ i += getsym(console.charset + i, &this); ++ if (console.charset[i] == '-' && console.charset[i + 1] != '\0') ++ i += getsym(console.charset + i + 1, &next) + 1; ++ else ++ next = this; ++ for (c = this; c <= next; c++) ++ inwordLut[c >> 5] |= 1 << (c & 0x1F); ++ } ++ ++ fd = open_console(O_WRONLY); ++ ++ if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */ ++ if (errno == EPERM && getuid()) ++ gpm_report(GPM_PR_WARN, GPM_MESS_ROOT); /* why do we still continue?*/ ++ else if (errno == EINVAL) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CSELECT); ++ } ++ close(fd); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* Returns the name of the console (/dev/tty0 or /dev/vc/0) */ ++/* Also fills console.device */ ++char *get_console_name() ++{ ++ struct stat buf; ++ ++ /* first try the devfs device, because in the next time this will be ++ * the preferred one. If that fails, take the old console */ ++ ++ /* Check for open new console */ ++ if (stat(GPM_DEVFS_CONSOLE, &buf) == 0) ++ console.device = GPM_DEVFS_CONSOLE; ++ ++ /* Failed, try OLD console */ ++ else if (stat(GPM_OLD_CONSOLE, &buf) == 0) ++ console.device = GPM_OLD_CONSOLE; ++ else ++ gpm_report(GPM_PR_OOPS, "Can't determine console device"); ++ ++ return console.device; ++} ++ +diff -urN gpm-1.20.1/src/evdev.c gpm/src/evdev.c +--- gpm-1.20.1/src/evdev.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/evdev.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,851 @@ ++/* ++ * evdev.c - support for event input devices in linux 2.4 & 2.6 ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * Based on XFree86 driver by Stefan Gmeiner & Peter Osterlund ++ * ++ * 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> ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <time.h> ++#include <sys/select.h> ++#include <sys/time.h> ++ ++#include <linux/input.h> ++#include "headers/input-defines.h" /* misisng bits in case <linux/input.h> is old */ ++ ++#include "headers/gpm.h" ++#include "headers/gpmInt.h" ++#include "headers/console.h" ++#include "headers/message.h" ++#include "headers/optparser.h" ++ ++enum evdev_type { ++ EVDEV_UNKNOWN, ++ EVDEV_RELATIVE, ++ EVDEV_ABSOLUTE, ++ EVDEV_TOUCHPAD, ++ EVDEV_SYNAPTICS ++}; ++ ++enum touch_type { ++ TOUCH_NONE, ++ TOUCH_FINGERS, ++ TOUCH_PALM ++}; ++ ++enum gesture_type { ++ GESTURE_NONE, ++ GESTURE_TAP_PENDING, ++ GESTURE_TAP, ++ GESTURE_DRAG_PENDING, ++ GESTURE_DRAG, ++ GESTURE_DOUBLE_TAP ++}; ++ ++enum edge_type { ++ BOTTOM_EDGE = 1, ++ TOP_EDGE = 2, ++ LEFT_EDGE = 4, ++ RIGHT_EDGE = 8, ++ LEFT_BOTTOM_EDGE = BOTTOM_EDGE | LEFT_EDGE, ++ RIGHT_BOTTOM_EDGE = BOTTOM_EDGE | RIGHT_EDGE, ++ RIGHT_TOP_EDGE = TOP_EDGE | RIGHT_EDGE, ++ LEFT_TOP_EDGE = TOP_EDGE | LEFT_EDGE ++}; ++ ++struct event_data { ++ int dx, dy; ++ int wdx, wdy; ++ int abs_x, abs_y; ++ int buttons; ++ int touch; /* dumb touchpad report touch events, smart ones - pressure */ ++ int pressure; ++ int w; ++ int finger_count; ++ int synced; ++}; ++ ++struct touch_data { ++ int touching; ++ int x, y; ++ int finger_count; ++ int buttons; ++ int clicks; ++ struct timeval start; ++ enum gesture_type gesture; ++}; ++ ++struct event_device { ++ enum evdev_type type; ++ int dont_sync; ++ ++ struct event_data pkt; ++ int pkt_count; ++ ++ int prev_x[4], prev_y[4]; ++ int prev_pressure, avg_w; ++ struct touch_data touch; ++ ++ int left_edge, right_edge; ++ int top_edge, bottom_edge; ++ int touch_high, touch_low; ++ int tap_time, tap_move; ++ int y_inverted; ++ ++ enum touch_type (*detect_touch)(struct event_device *evdev); ++ void (*update_finger_count)(struct event_device *evdev); ++}; ++ ++struct evdev_capabilities { ++ unsigned char evbits[EV_MAX/8 + 1]; ++ unsigned char keybits[KEY_MAX/8 + 1]; ++ unsigned char absbits[ABS_MAX/8 + 1]; ++ unsigned char mscbits[MSC_MAX/8 + 1]; ++}; ++ ++#ifndef max ++#define max(a,b) ((a)>(b) ? (a) : (b)) ++#endif ++ ++#define fx(i) (evdev->prev_x[(evdev->pkt_count - (i)) & 03]) ++#define fy(i) (evdev->prev_y[(evdev->pkt_count - (i)) & 03]) ++ ++#define toggle_btn(btn, val) do { if (val) data->buttons |= (btn);\ ++ else data->buttons &= ~(btn);\ ++ } while (0) ++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) ++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000) ++ ++#define test_bit(bit, array) (array[bit / 8] & (1 << (bit % 8))) ++ ++/* ------------- evdev protocol handling routines ---------------------*/ ++ ++static void parse_input_event(struct input_event *event, struct event_data *data) ++{ ++ switch (event->type) { ++ case EV_REL: ++ switch (event->code) { ++ case REL_X: ++ data->dx = (signed char)event->value; ++ break; ++ case REL_Y: ++ data->dy = (signed char)event->value; ++ break; ++ case REL_WHEEL: ++ data->wdy += event->value; ++ break; ++ case REL_HWHEEL: ++ data->wdx += event->value; ++ break; ++ } ++ break; ++ ++ case EV_ABS: ++ switch (event->code) { ++ case ABS_X: ++ data->abs_x = event->value; ++ break; ++ ++ case ABS_Y: ++ data->abs_y = event->value; ++ break; ++ ++ case ABS_PRESSURE: ++ data->pressure = event->value; ++ break; ++ ++ case ABS_TOOL_WIDTH: ++ data->w = event->value; ++ break; ++ } ++ break; ++ ++ case EV_MSC: ++ switch (event->code) { ++ case MSC_GESTURE: ++ data->w = event->value; ++ break; ++ } ++ break; ++ ++ ++ case EV_KEY: ++ switch(event->code) { ++ case BTN_0: ++ case BTN_LEFT: ++ toggle_btn(GPM_B_LEFT, event->value); ++ break; ++ ++ case BTN_2: ++ case BTN_STYLUS2: ++ case BTN_SIDE: ++ case BTN_MIDDLE: ++ toggle_btn(GPM_B_MIDDLE, event->value); ++ break; ++ ++ case BTN_STYLUS: ++ case BTN_1: ++ case BTN_RIGHT: ++ toggle_btn(GPM_B_RIGHT, event->value); ++ break; ++ ++ case BTN_TOUCH: ++ data->touch = event->value ? 1 : 0; ++ break; ++ ++ case BTN_TOOL_FINGER: ++ if (event->value) data->finger_count = 1; ++ break; ++ ++ case BTN_TOOL_DOUBLETAP: ++ if (event->value) data->finger_count = 2; ++ break; ++ ++ case BTN_TOOL_TRIPLETAP: ++ if (event->value) data->finger_count = 3; ++ break; ++ ++ } ++ break; ++ ++ case EV_SYNC: ++ switch(event->code) { ++ case SYN_REPORT: ++ data->synced = 1; ++ break; ++ } ++ break; ++ } ++} ++ ++static void tp_figure_deltas(struct event_device *evdev, struct Gpm_Event *state) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ ++ state->dx = state->dy = 0; ++ if (evdev->touch.touching) { ++ fx(0) = pkt->abs_x; ++ fy(0) = pkt->abs_y; ++ if (evdev->pkt_count >= 2 && ++ evdev->touch.gesture != GESTURE_DRAG_PENDING) { ++ state->dx = ((fx(0) - fx(1)) / 2 + (fx(1) - fx(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR; ++ state->dy = ((fy(0) - fy(1)) / 2 + (fy(1) - fy(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR; ++ } ++ evdev->pkt_count++; ++ } else { ++ evdev->pkt_count = 0; ++ } ++} ++ ++static enum touch_type dumb_tp_detect_touch(struct event_device *evdev) ++{ ++ return evdev->pkt.touch ? TOUCH_FINGERS : TOUCH_NONE; ++} ++ ++static enum touch_type smart_tp_detect_touch(struct event_device *evdev) ++{ ++ if (evdev->touch.touching) ++ return evdev->pkt.pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE; ++ else ++ return evdev->pkt.pressure > evdev->touch_high ? TOUCH_FINGERS : TOUCH_NONE; ++} ++ ++static enum touch_type syn_detect_touch(struct event_device *evdev) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ enum touch_type type = TOUCH_NONE; ++ ++ if (pkt->pressure > 200 || pkt->w > 10) ++ return TOUCH_PALM; ++ ++ if (pkt->abs_x == 0) ++ evdev->avg_w = 0; ++ else ++ evdev->avg_w = (pkt->w - evdev->avg_w + 1) / 2; ++ ++ if (evdev->touch.touching) { ++ type = pkt->pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE; ++ } else if (pkt->pressure > evdev->touch_high) { ++ int safe_w = max(pkt->w, evdev->avg_w); ++ ++ if (pkt->finger_count > 1) ++ type = TOUCH_FINGERS; ++ else if (pkt->w < 2) ++ type = TOUCH_FINGERS; /* more than one finger -> not a palm */ ++ else if (safe_w < 6 && evdev->prev_pressure < evdev->touch_high) ++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */ ++ else if (safe_w < 7 && evdev->prev_pressure < evdev->touch_high / 2) ++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */ ++ else if (pkt->pressure > evdev->prev_pressure + 1) ++ type = TOUCH_NONE; /* pressure not stable, may be a palm */ ++ else if (pkt->pressure < evdev->prev_pressure - 5) ++ type = TOUCH_NONE; /* pressure not stable, may be a palm */ ++ else ++ type = TOUCH_FINGERS; ++ } ++ ++ evdev->prev_pressure = pkt->pressure; ++ return type; ++} ++ ++static enum edge_type tp_detect_edges(struct event_device *evdev, int x, int y) ++{ ++ enum edge_type edge = 0; ++ ++ if (x > evdev->right_edge) ++ edge |= RIGHT_EDGE; ++ else if (x < evdev->left_edge) ++ edge |= LEFT_EDGE; ++ ++ if (y < evdev->top_edge) ++ edge |= TOP_EDGE; ++ else if (y > evdev->bottom_edge) ++ edge |= BOTTOM_EDGE; ++ ++ return edge; ++} ++ ++static int tp_touch_expired(struct event_device *evdev) ++{ ++ struct timeval now; ++ ++ GET_TIME(now); ++ return DIF_TIME(evdev->touch.start, now) > evdev->tap_time; ++} ++ ++static int tp_detect_tap(struct event_device *evdev) ++{ ++ return !tp_touch_expired(evdev) && ++ (evdev->touch.finger_count > 1 || ++ (abs(evdev->pkt.abs_x - evdev->touch.x) < evdev->tap_move && ++ abs(evdev->pkt.abs_y - evdev->touch.y) < evdev->tap_move)); ++} ++ ++static int tp_tap_to_buttons(struct event_device *evdev) ++{ ++ enum edge_type edge; ++ if (evdev->touch.finger_count < 2) { ++ edge = tp_detect_edges(evdev, evdev->pkt.abs_x, evdev->pkt.abs_y); ++ switch (edge) { ++ case RIGHT_TOP_EDGE: ++ return GPM_B_MIDDLE; ++ break; ++ case RIGHT_BOTTOM_EDGE: ++ return GPM_B_RIGHT; ++ break; ++ default: ++ return GPM_B_LEFT; ++ break; ++ } ++ } else { ++ switch (evdev->touch.finger_count) { ++ case 2: ++ return GPM_B_MIDDLE; ++ case 3: ++ return GPM_B_RIGHT; ++ default: ++ return GPM_B_LEFT; ++ } ++ } ++} ++ ++static void tp_detect_gesture(struct event_device *evdev, int timed_out, enum touch_type touch_type) ++{ ++ struct touch_data *touch = &evdev->touch; ++ int was_touching = touch->touching; ++ ++ touch->touching = touch_type == TOUCH_FINGERS; ++ ++ if (touch->touching) { ++ if (!was_touching) { ++ GET_TIME(touch->start); ++ touch->finger_count = 0; ++ if (touch->gesture == GESTURE_TAP_PENDING) { ++ touch->gesture = GESTURE_DRAG_PENDING; ++ } else { ++ touch->x = evdev->pkt.abs_x; ++ touch->y = evdev->pkt.abs_y; ++ touch->buttons = 0; ++ } ++ } else if (touch->gesture == GESTURE_DRAG_PENDING && tp_touch_expired(evdev)) { ++ touch->gesture = GESTURE_DRAG; ++ } ++ } else { ++ if (was_touching) { ++ if (tp_detect_tap(evdev)) { ++ if (touch->gesture == GESTURE_DRAG_PENDING) { ++ touch->gesture = GESTURE_DOUBLE_TAP; ++ touch->clicks = 4; ++ } else { ++ if ((touch->buttons = tp_tap_to_buttons(evdev)) == GPM_B_LEFT) { ++ touch->gesture = GESTURE_TAP_PENDING; ++ } else { ++ touch->gesture = GESTURE_TAP; ++ touch->clicks = 2; ++ } ++ } ++ } else { ++ touch->gesture = GESTURE_NONE; ++ } ++ } else { ++ if (touch->gesture == GESTURE_TAP_PENDING && tp_touch_expired(evdev)) { ++ touch->gesture = GESTURE_TAP; ++ touch->clicks = 2; ++ } ++ } ++ } ++} ++ ++static int tp_process_gesture(struct event_device *evdev, struct Gpm_Event *state) ++{ ++ int next_timeout = -1; ++ ++ switch(evdev->touch.gesture) { ++ case GESTURE_DOUBLE_TAP: ++ case GESTURE_TAP: ++ if (--evdev->touch.clicks == 0) ++ evdev->touch.gesture = GESTURE_NONE; ++ else ++ next_timeout = 0; ++ ++ if (evdev->touch.clicks % 2) ++ state->buttons |= evdev->touch.buttons; ++ else ++ state->buttons &= ~evdev->touch.buttons; ++ break; ++ ++ case GESTURE_DRAG: ++ state->buttons |= evdev->touch.buttons; ++ break; ++ ++ case GESTURE_DRAG_PENDING: ++ case GESTURE_TAP_PENDING: ++ next_timeout = evdev->tap_time; ++ break; ++ ++ default: ++ break; ++ } ++ return next_timeout; ++} ++ ++static void tp_update_finger_count(struct event_device *evdev) ++{ ++ evdev->touch.finger_count = max(evdev->pkt.finger_count, evdev->touch.finger_count); ++} ++ ++static void syn_update_finger_count(struct event_device *evdev) ++{ ++ if (evdev->pkt.w == 1) ++ evdev->touch.finger_count = 3; ++ else if (evdev->pkt.w == 0 && evdev->touch.finger_count != 3) ++ evdev->touch.finger_count = 2; ++ else ++ evdev->touch.finger_count = 1; ++} ++ ++static int compose_gpm_event(struct event_device *evdev, int timed_out, Gpm_Event *state) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ enum touch_type touch_type; ++ int next_timeout = -1; ++ ++ if (!timed_out) { ++ state->buttons = pkt->buttons; ++ state->wdx = pkt->wdx; state->wdy = pkt->wdy; ++ } ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ if (!timed_out) { ++ state->dx = pkt->dx; state->dy = pkt->dy; ++ if (evdev->pkt.touch) ++ state->buttons |= GPM_B_LEFT; ++ else ++ state->buttons &= ~GPM_B_LEFT; ++ } ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ if (!timed_out) { ++ if (pkt->abs_x < evdev->left_edge) ++ pkt->abs_x = evdev->left_edge; ++ else if (pkt->abs_x > evdev->right_edge) ++ pkt->abs_x = evdev->right_edge; ++ ++ if (pkt->abs_y > evdev->bottom_edge) ++ pkt->abs_y = evdev->bottom_edge; ++ else if (pkt->abs_y < evdev->top_edge) ++ pkt->abs_y = evdev->top_edge; ++ ++ state->x = (pkt->abs_x - evdev->left_edge) * ++ console.max_x / (evdev->right_edge - evdev->left_edge); ++ state->y = (pkt->abs_y - evdev->top_edge) * ++ console.max_y / (evdev->bottom_edge - evdev->top_edge); ++ ++ if (evdev->y_inverted) state->y = console.max_y - state->y; ++ ++ if (evdev->pkt.touch) ++ state->buttons |= GPM_B_LEFT; ++ else ++ state->buttons &= ~GPM_B_LEFT; ++ } ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ case EVDEV_SYNAPTICS: ++ touch_type = timed_out ? TOUCH_NONE : evdev->detect_touch(evdev); ++ ++ if (touch_type != TOUCH_PALM) { ++ tp_detect_gesture(evdev, timed_out, touch_type); ++ ++ if (evdev->touch.touching && !tp_touch_expired(evdev)) ++ evdev->update_finger_count(evdev); ++ ++ if (evdev->touch.finger_count < 2) ++ tp_figure_deltas(evdev, state); ++ ++ next_timeout = tp_process_gesture(evdev, state); ++ } ++ break; ++ ++ default: ++ /* should not happen */ ++ gpm_report(GPM_PR_OOPS, "Bad evdev type %d", evdev->type); ++ break; ++ } ++ ++ if (evdev->y_inverted) state->dy = -state->dy; ++ ++ return next_timeout; ++} ++ ++int M_evdev(struct micedev *dev, struct miceopt *opts, ++ unsigned char *data, struct Gpm_Event *state) ++{ ++ struct event_device *evdev = dev->private; ++ struct input_event *event = (struct input_event *)data; ++ int timed_out = data == NULL; ++ ++ if (!timed_out) ++ parse_input_event(event, &evdev->pkt); ++ ++ if (timed_out || evdev->pkt.synced || evdev->dont_sync) { ++ dev->timeout = compose_gpm_event(evdev, timed_out, state); ++ evdev->pkt.dx = evdev->pkt.dy = 0; ++ evdev->pkt.wdx = evdev->pkt.wdy = 0; ++ evdev->pkt.finger_count = 0; ++ evdev->pkt.synced = 0; ++ return 0; ++ } ++ ++ dev->timeout = -1; ++ return -1; ++} ++ ++/* ------------- evdev initialization routines ---------------------*/ ++ ++static int evdev_get_id(int fd, struct input_id *id) ++{ ++ if (ioctl(fd, EVIOCGID, id) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query device identification"); ++ return -1; ++ } ++ return 0; ++} ++ ++static int evdev_get_capabilities(int fd, struct evdev_capabilities *caps) ++{ ++ memset(caps, 0, sizeof(*caps)); ++ ++ if (ioctl(fd, EVIOCGBIT(0, EV_MAX), caps->evbits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_ABS, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(caps->absbits)), caps->absbits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query ABS device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_KEY, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(caps->keybits)), caps->keybits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query KEY device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_MSC, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_MSC, sizeof(caps->mscbits)), caps->mscbits) < 0) { ++ /* don't complain as 2.4 kernels didnt have it ++ gpm_report(GPM_PR_ERR, "evdev: cannot query MSC device capabilities"); ++ return -1; ++ */ ++ } ++ return 0; ++} ++ ++static int evdev_query_axis(int fd, int axis, int *axis_min, int *axis_max) ++{ ++ struct input_absinfo axis_info; ++ ++ if (ioctl(fd, EVIOCGABS(axis), &axis_info) == -1) { ++ gpm_report(GPM_PR_ERR, "evdev: could not query axis data"); ++ return -1; ++ } ++ ++ *axis_min = axis_info.minimum; ++ *axis_max = axis_info.maximum; ++ return 0; ++} ++ ++static int evdev_get_limits(int fd, struct event_device *evdev, ++ struct evdev_capabilities *caps) ++{ ++ if (test_bit(ABS_X, caps->absbits) && ++ evdev_query_axis(fd, ABS_X, &evdev->left_edge, &evdev->right_edge) < 0) ++ return -1; ++ ++ if (test_bit(ABS_Y, caps->absbits) && ++ evdev_query_axis(fd, ABS_Y, &evdev->top_edge, &evdev->bottom_edge) < 0) ++ return -1; ++ ++ return 0; ++} ++ ++static int is_synaptics(struct input_id *id) ++{ ++ return id->bustype == BUS_I8042 && id->vendor == 0x0002 && id->product == PSMOUSE_SYNAPTICS; ++} ++ ++static enum evdev_type evdev_guess_type(struct input_id *id, struct evdev_capabilities *caps) ++{ ++ if (test_bit(EV_ABS, caps->evbits)) { ++ if (is_synaptics(id)) ++ return EVDEV_SYNAPTICS; ++ ++ if (test_bit(BTN_TOUCH, caps->keybits) && caps->keybits[BTN_MOUSE / 8]) ++ return EVDEV_TOUCHPAD; ++ ++ return EVDEV_ABSOLUTE; ++ } ++ ++ if (!test_bit(EV_REL, caps->evbits)) { ++ gpm_report(GPM_PR_ERR, ++ "evdev: device does not report neither absolute nor relative coordinates"); ++ return EVDEV_UNKNOWN; ++ } ++ ++ return EVDEV_RELATIVE; ++} ++ ++static enum evdev_type evdev_str_to_type(const char *type) ++{ ++ if (!strcmp(type, "relative")) { ++ return EVDEV_RELATIVE; ++ } else if (!strcmp(type, "absolute")) { ++ return EVDEV_ABSOLUTE; ++ } else if (!strcmp(type, "touchpad")) { ++ return EVDEV_TOUCHPAD; ++ } else if (!strcmp(type, "synaptics")) { ++ return EVDEV_SYNAPTICS; ++ } else { ++ gpm_report(GPM_PR_ERR, "evdev: unknown type '%s'", type); ++ return EVDEV_UNKNOWN; ++ } ++} ++ ++static void warn_if_present(struct option_helper *optinfo, const char *name, const char *type) ++{ ++ if (is_option_present(optinfo, name)) ++ gpm_report(GPM_PR_WARN, ++ "evdev: option '%s' is not valud for type '%s', ignored", ++ name, type); ++} ++ ++// -o type=(auto|synaptics|touchpad|relative|absolute),y_inverse, ++// left=1234,right=1234,top=1234,bottom=1234, ++// touch_high=30,touch_low=25,tap_time=30,tap_move=100 ++static int evdev_apply_options(struct event_device *evdev, char *optstring) ++{ ++ char *type = "auto"; ++ struct option_helper optinfo[] = { ++ { "type", OPT_STRING, u: { sptr: &type } }, ++ { "y_inverted", OPT_BOOL, u: { iptr: &evdev->y_inverted }, value: 1 }, ++ { "left", OPT_INT, u: { iptr: &evdev->left_edge } }, ++ { "right", OPT_INT, u: { iptr: &evdev->right_edge } }, ++ { "top", OPT_INT, u: { iptr: &evdev->top_edge } }, ++ { "bottom", OPT_INT, u: { iptr: &evdev->bottom_edge } }, ++ { "touch_high", OPT_INT, u: { iptr: &evdev->touch_high } }, ++ { "touch_low", OPT_INT, u: { iptr: &evdev->touch_low } }, ++ { "tap_time", OPT_INT, u: { iptr: &evdev->tap_time } }, ++ { "tap_move", OPT_INT, u: { iptr: &evdev->tap_move } }, ++ { "", OPT_END } ++ }; ++ ++ if (parse_options("evdev", optstring, ',', optinfo) < 0) ++ return -1; ++ ++ if (strcmp(type, "auto")) ++ evdev->type = evdev_str_to_type(type); ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ warn_if_present(optinfo, "left", type); ++ warn_if_present(optinfo, "right", type); ++ warn_if_present(optinfo, "top", type); ++ warn_if_present(optinfo, "bottom", type); ++ warn_if_present(optinfo, "tap_move", type); ++ warn_if_present(optinfo, "tap_time", type); ++ warn_if_present(optinfo, "touch_high", type); ++ warn_if_present(optinfo, "touch_low", type); ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ warn_if_present(optinfo, "tap_move", type); ++ warn_if_present(optinfo, "tap_time", type); ++ warn_if_present(optinfo, "touch_high", type); ++ warn_if_present(optinfo, "touch_low", type); ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ break; ++ ++ case EVDEV_SYNAPTICS: ++ warn_if_present(optinfo, "y_inverted", type); ++ break; ++ ++ default: ++ return -1; ++ } ++ return 0; ++} ++ ++int I_evdev(struct micedev *dev, struct miceopt *opts, Gpm_Type *type) ++{ ++ struct input_id id; ++ struct evdev_capabilities caps; ++ struct event_device *evdev; ++ ++ if (!dev->private) { /* called first time, not re-init */ ++ if (!(dev->private = evdev = malloc(sizeof(*evdev)))) ++ gpm_report(GPM_PR_OOPS, "Can't allocate memory for event device"); ++ ++ memset(evdev, 0, sizeof(*evdev)); ++ ++ if (evdev_get_id(dev->fd, &id)) ++ goto init_fail; ++ ++ if (evdev_get_capabilities(dev->fd, &caps)) ++ goto init_fail; ++ ++ evdev->type = evdev_guess_type(&id, &caps); ++ ++ /* load default values - suitable for my synaptics ;P */ ++ evdev->left_edge = 1900; ++ evdev->right_edge = 5300; ++ evdev->top_edge = 2000; ++ evdev->bottom_edge = 3900; ++ evdev->tap_time = 180; ++ evdev->tap_move = 220; ++ evdev->touch_high = 30; ++ evdev->touch_low = 25; ++ ++ if (evdev->type == EVDEV_ABSOLUTE && evdev_get_limits(dev->fd, evdev, &caps) < 0) ++ goto init_fail; ++ ++ if (evdev_apply_options(evdev, opts->text) < 0) ++ goto init_fail; ++ ++ if (!test_bit(EV_SYNC, caps.evbits)) { ++ evdev->dont_sync = 1; ++ if (evdev->type == EVDEV_TOUCHPAD || evdev->type == EVDEV_SYNAPTICS) { ++ gpm_report(GPM_PR_ERR, ++ "evdev: The running kernel lacks EV_SYNC support which is required for touchpad/synaptics mode"); ++ goto init_fail; ++ } ++ } ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ gpm_report(GPM_PR_INFO, "evdev: selected Relative mode"); ++ if (!test_bit(EV_REL, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected relative mode but device does not report any relative events"); ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ gpm_report(GPM_PR_INFO, "evdev: selected Absolute mode"); ++ if (evdev->right_edge <= evdev->left_edge) { ++ gpm_report(GPM_PR_ERR, "evdev: right edge value should be gerater than left"); ++ goto init_fail; ++ } ++ if (evdev->bottom_edge <= evdev->top_edge) { ++ gpm_report(GPM_PR_ERR, "evdev: bottom edge value should be gerater than top"); ++ goto init_fail; ++ } ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected absolute mode but device does not report any absolute events"); ++ opts->absolute = 1; ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ gpm_report(GPM_PR_INFO, "evdev: selected Touchpad mode"); ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report any absolute events"); ++ if (test_bit(ABS_PRESSURE, caps.absbits)) ++ evdev->detect_touch = smart_tp_detect_touch; ++ else if (test_bit(BTN_TOUCH, caps.keybits)) ++ evdev->detect_touch = dumb_tp_detect_touch; ++ else ++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report pressure not touch events"); ++ evdev->update_finger_count = tp_update_finger_count; ++ break; ++ ++ case EVDEV_SYNAPTICS: ++ gpm_report(GPM_PR_INFO, "evdev: selected Synaptics mode"); ++ if (!is_synaptics(&id)) ++ gpm_report(GPM_PR_WARN, "evdev: idevice isn't identified as Synaptics"); ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report any absolute events"); ++ if (!test_bit(ABS_PRESSURE, caps.absbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report pressure"); ++ if (test_bit(EV_MSC, caps.evbits) && test_bit(MSC_GESTURE, caps.mscbits)) { ++ /* this is compatibility mode with pre 2.6-test6 kernels */ ++ evdev->update_finger_count = syn_update_finger_count; ++ evdev->y_inverted = 1; ++ } else { ++ evdev->update_finger_count = tp_update_finger_count; ++ } ++ evdev->detect_touch = syn_detect_touch; ++ break; ++ ++ default: ++ break; ++ } ++ } ++ ++ return 0; ++ ++init_fail: ++ free(dev->private); ++ return -1; ++} ++ +diff -urN gpm-1.20.1/src/gpm.c gpm/src/gpm.c +--- gpm-1.20.1/src/gpm.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/gpm.c 2003-10-02 01:22:42.000000000 -0500 +@@ -24,1108 +24,607 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> /* strerror(); ?!? */ ++#include <limits.h> + #include <errno.h> + #include <unistd.h> /* select(); */ + #include <signal.h> /* SIGPIPE */ + #include <time.h> /* time() */ +-#include <sys/param.h> + #include <sys/fcntl.h> /* O_RDONLY */ + #include <sys/wait.h> /* wait() */ +-#include <sys/stat.h> /* mkdir() */ + #include <sys/time.h> /* timeval */ +-#include <sys/types.h> /* socket() */ +-#include <sys/socket.h> /* socket() */ +-#include <sys/un.h> /* struct sockaddr_un */ +- +-#include <linux/vt.h> /* VT_GETSTATE */ +-#include <sys/kd.h> /* KDGETMODE */ +-#include <termios.h> /* winsize */ + + #include "headers/gpmInt.h" + #include "headers/message.h" +- +-/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */ +-#if !defined(__GLIBC__) +- typedef unsigned int __socklen_t; +-#endif /* __GLIBC__ */ ++#include "headers/console.h" ++#include "headers/selection.h" ++#include "headers/client.h" + + #ifndef max + #define max(a,b) ((a)>(b) ? (a) : (b)) + #endif + +-extern int errno; +- +-static void gpm_killed(int); +- +-/* +- * all the values duplicated for dual-mouse operation are +- * now in this structure (see gpmInt.h) +- * mouse_table[0] is single mouse, mouse_table[1] and mouse_table[2] +- * are copied data from mouse_table[0] for dual mouse operation. +- */ +- +-struct mouse_features mouse_table[3] = { +- { +- DEF_TYPE, DEF_DEV, DEF_SEQUENCE, +- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, 0 /* scaley */, +- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, +- (char *)NULL /* extra */, +- (Gpm_Type *)NULL, +- -1 +- } +-}; +-struct mouse_features *which_mouse; +- +-/* These are only the 'global' options */ +- +-char *opt_lut=DEF_LUT; +-int opt_test=DEF_TEST; +-int opt_ptrdrag=DEF_PTRDRAG; +-int opt_double=0; +-int opt_aged = 0; +-char *opt_special=NULL; /* special commands, like reboot or such */ +-int opt_rawrep=0; +-Gpm_Type *repeated_type=0; +- +-static int opt_resize=0; /* not really an option */ +-struct winsize win; +-int maxx, maxy; +-int fifofd=-1; +- +-int eventFlag=0; +-Gpm_Cinfo *cinfo[MAX_VC+1]; +-fd_set selSet, readySet, connSet; +- +-time_t last_selection_time; +-time_t opt_age_limit = 0; +- +-/* BRAINDEAD..ok not really, but got to leave anyway... FIXME */ +-/* argc and argv for mice initialization */ +-static int mouse_argc[3]; /* 0 for default (unused) and two mice */ +-static char **mouse_argv[3]; /* 0 for default (unused) and two mice */ +- +-/*===================================================================*/ +-/* +- * first, all the stuff that used to be in gpn.c (i.e., not main-loop) +- */ +-/*-------------------------------------------------------------------*/ ++#ifndef min ++#define min(a,b) ((a)<(b) ? (a) : (b)) ++#endif + +-/* build_argv is used for mouse initialization routines */ +-static char **build_argv(char *argv0, char *str, int *argcptr, char sep) +-{ +- int argc = 1; +- char **argv; +- char *s; +- +- /* argv0 is never NULL, but the extra string may well be */ +- if (str) +- for (s=str; sep && (s = strchr(s, sep)); argc++) s++; +- +- argv = calloc(argc+2, sizeof(char **)); +- if (!argv) gpm_report(GPM_PR_OOPS,GPM_MESS_ALLOC_FAILED); +- argv[0] = argv0; +- +- if (!str) { +- *argcptr = argc; /* 1 */ +- return argv; +- } +- /* else, add arguments */ +- s = argv[1] = strdup(str); +- argc = 2; /* first to fill */ +- +- /* ok, now split: the first one is in place, and s is the whole string */ +- for ( ; sep && (s = strchr(s, sep)) ; argc++) { +- *s = '\0'; +- s++; +- argv[argc] = s; +- } +- *argcptr = argc; +- return argv; +-} ++#define NULL_SET ((fd_set *)NULL) ++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) ++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec)*1000 + (t2.tv_usec - t1.tv_usec)/1000) + +-/*-------------------------------------------------------------------*/ +-/* The old console option is removed. We are taking stderr now +- * In the next update there should also be support for syslog +- ********************************************************************/ + +-static inline int open_console(const int mode) +-{ +- int fd; ++enum mouse_rslt { MOUSE_NO_DATA, MOUSE_DATA_OK, MOUSE_MORE_DATA }; + +- if ((fd=open(option.consolename, mode)) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- return fd; +-} ++extern int errno; + +-/*-------------------------------------------------------------------*/ +-static inline int wait_text(int *fdptr) +-{ +- int fd; +- int kd_mode; ++char *opt_special=NULL; /* special commands, like reboot or such */ ++struct repeater repeater; + +- close(*fdptr); +- do +- { +- sleep(2); +- fd = open_console(O_RDONLY); +- if (ioctl(fd, KDGETMODE, &kd_mode)<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); +- close(fd); +- } +- while (kd_mode != KD_TEXT) ; +- +- /* reopen, reinit (the function is only used if we have one mouse device) */ +- if ((*fdptr=open(opt_dev,O_RDWR))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev); +- if (m_type->init) +- m_type=(m_type->init)(*fdptr, m_type->flags, m_type, mouse_argc[1], +- mouse_argv[1]); +- return (1); +-} ++static int console_resized; /* not really an option */ + + /*-------------------------------------------------------------------*/ +-static inline void selection_copy(int x1, int y1, int x2, int y2, int mode) ++static void gpm_killed(int signo) + { +-/* +- * The approach in "selection" causes a bus error when run under SunOS 4.1 +- * due to alignment problems... +- */ +- unsigned char buf[6*sizeof(short)]; +- unsigned short *arg = (unsigned short *)buf + 1; +- int fd; +- +- buf[sizeof(short)-1] = 2; /* set selection */ +- +- arg[0]=(unsigned short)x1; +- arg[1]=(unsigned short)y1; +- arg[2]=(unsigned short)x2; +- arg[3]=(unsigned short)y2; +- arg[4]=(unsigned short)mode; +- +- if ((fd=open_console(O_WRONLY))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- /* FIXME: should be replaced with string constant (headers/message.h) */ +- gpm_report(GPM_PR_DEBUG,"ctl %i, mode %i",(int)*buf, arg[4]); +- if (ioctl(fd, TIOCLINUX, buf+sizeof(short)-1) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); +- close(fd); +- +- if (mode < 3) { +- opt_aged = 0; +- last_selection_time = time(0); ++ if (signo == SIGWINCH) { ++ gpm_report(GPM_PR_WARN, GPM_MESS_RESIZING, option.progname, getpid()); ++ console_resized = 1; ++ } else { ++ if (signo == SIGUSR1) ++ gpm_report(GPM_PR_WARN, GPM_MESS_KILLED_BY, option.progname, getpid(), option.progname); ++ exit(0); + } + } + +- +-/*-------------------------------------------------------------------*/ +-/* comment missing; FIXME */ +-/*-------------------------------------------------------------------*/ +-static inline void selection_paste(void) +-{ +- char c=3; +- int fd; +- +- if (!opt_aged && (0 != opt_age_limit) && +- (last_selection_time + opt_age_limit < time(0))) { +- opt_aged = 1; +- } +- +- if (opt_aged) { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SKIP_PASTE); +- return; +- } +- +- fd=open_console(O_WRONLY); +- if(ioctl(fd, TIOCLINUX, &c) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); +- close(fd); +-} +- +-/*-------------------------------------------------------------------*/ +-static inline int do_selection(Gpm_Event *event) /* returns 0, always */ +-{ +- static int x1=1, y1=1, x2, y2; +-#define UNPOINTER() 0 +- +- x2=event->x; y2=event->y; +- switch(GPM_BARE_EVENTS(event->type)) { +- case GPM_MOVE: +- if (x2<1) x2++; else if (x2>maxx) x2--; +- if (y2<1) y2++; else if (y2>maxy) y2--; +- selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */ +- return 0; +- +- case GPM_DRAG: +- if (event->buttons==GPM_B_LEFT) { +- if (event->margin) /* fix margins */ +- switch(event->margin) { +- case GPM_TOP: x2=1; y2++; break; +- case GPM_BOT: x2=maxx; y2--; break; +- case GPM_RGT: x2--; break; +- case GPM_LFT: y2<=y1 ? x2++ : (x2=maxx, y2--); break; +- } +- selection_copy(x1,y1,x2,y2,event->clicks); +- if (event->clicks>=opt_ptrdrag && !event->margin) /* pointer */ +- selection_copy(x2,y2,x2,y2,3); +- } /* if */ +- return 0; +- +- case GPM_DOWN: +- switch (event->buttons) { +- case GPM_B_LEFT: +- x1=x2; y1=y2; +- selection_copy(x1,y1,x2,y2,event->clicks); /* start selection */ +- return 0; +- +- case GPM_B_MIDDLE: +- selection_paste(); +- return 0; +- +- case GPM_B_RIGHT: +- if (opt_three==1) +- selection_copy(x1,y1,x2,y2,event->clicks); +- else +- selection_paste(); +- return 0; +- } +- } /* switch above */ +- return 0; +-} +- +-/*-------------------------------------------------------------------*/ +-/* returns 0 if the event has not been processed, and 1 if it has */ +-static inline int do_client(Gpm_Cinfo *cinfo, Gpm_Event *event) +-{ +- Gpm_Connect info=cinfo->data; +- int fd=cinfo->fd; +- /* value to return if event is not used */ +- int res = !(info.defaultMask & event->type); +- +- /* instead of returning 0, scan the stack of clients */ +- if ((info.minMod & event->modifiers) < info.minMod) +- goto scan; +- if ((info.maxMod & event->modifiers) < event->modifiers) +- goto scan; +- +- /* if not managed, use default mask */ +- if (!(info.eventMask & GPM_BARE_EVENTS(event->type))) { +- if (res) return res; +- else goto scan; +- } +- +- /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */ +- MAGIC_P((write(fd,&magic, sizeof(int)))); +- write(fd,event, sizeof(Gpm_Event)); +- +- return info.defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */ +- +- scan: +- if (cinfo->next != 0) +- return do_client (cinfo->next, event); /* try the next */ +- return 0; /* no next, not used */ +-} +- + /*------------------------------------------------------------------- + * fetch the actual device data from the mouse device, dependent on + * what Gpm_Type is being passed. + *-------------------------------------------------------------------*/ +-static inline char *getMouseData(int fd, Gpm_Type *type, int kd_mode) ++static char *getMouseData(int fd, Gpm_Type *type, int text_mode) + { + static unsigned char data[32]; /* quite a big margin :) */ +- char *edata=data+type->packetlen; +- int howmany=type->howmany; +- int i,j; ++ unsigned char *pdata; ++ int len, togo; + +-/*....................................... read and identify one byte */ +- +- if (read(fd, data, howmany)!=howmany) { +- if (opt_test) exit(0); ++ /*....................................... read and identify one byte */ ++ if (read(fd, data, type->howmany) != type->howmany) { + gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno)); + return NULL; + } + +- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep) +- write(fifofd, data, howmany); ++ if (!text_mode && repeater.fd != -1 && repeater.raw) ++ write(repeater.fd, data, type->howmany); + +- if ((data[0]&(m_type->proto)[0]) != (m_type->proto)[1]) { +- if (m_type->getextra == 1) { +- data[1]=GPM_EXTRA_MAGIC_1; data[2]=GPM_EXTRA_MAGIC_2; +- gpm_report(GPM_PR_DEBUG,GPM_EXTRA_DATA,data[0]); ++ if ((data[0] & type->proto[0]) != type->proto[1]) { ++ if (type->getextra == 1) { ++ data[1] = GPM_EXTRA_MAGIC_1; data[2] = GPM_EXTRA_MAGIC_2; ++ gpm_report(GPM_PR_DEBUG, GPM_EXTRA_DATA, data[0]); + return data; + } +- gpm_report(GPM_PR_DEBUG,GPM_MESS_PROT_ERR); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_PROT_ERR); + return NULL; + } + +-/*....................................... read the rest */ ++ /*....................................... read the rest */ + + /* + * well, this seems to work almost right with ps2 mice. However, I've never + * tried ps2 with the original selection package, which called usleep() + */ +- +- if((i=m_type->packetlen-howmany)) /* still to get */ ++ if ((togo = type->packetlen - type->howmany)) { /* still to get */ ++ pdata = &data[type->howmany]; + do { +- j = read(fd,edata-i,i); /* edata is pointer just after data */ +- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0) +- write(fifofd, edata-i, j); +- i -= j; +- } while (i && j); +- +- if (i) { +- gpm_report(GPM_PR_ERR,GPM_MESS_READ_REST, strerror(errno)); ++ if ((len = read(fd, pdata, togo)) == 0) ++ break; ++ if (!text_mode && repeater.fd != -1 && repeater.raw && len > 0) ++ write(repeater.fd, pdata, len); ++ pdata += len; ++ togo -= len; ++ } while (togo); ++ } ++ ++ if (togo) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_READ_REST, strerror(errno)); + return NULL; + } + +- if ((data[1]&(m_type->proto)[2]) != (m_type->proto)[3]) { +- gpm_report(GPM_PR_INFO,GPM_MESS_SKIP_DATA); ++ if ((data[1] & type->proto[2]) != type->proto[3]) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_SKIP_DATA); + return NULL; + } +- gpm_report(GPM_PR_DEBUG,GPM_MESS_DATA_4,data[0],data[1],data[2],data[3]); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_DATA_4, data[0], data[1], data[2], data[3]); + return data; + } + +- +-static int statusX,statusY,statusB; /* to return info */ +-static int statusC=0; /* clicks */ +-void get_console_size(Gpm_Event *ePtr); +- +-/*------------------------------------------------------------------- +- * call getMouseData to get hardware device data, call mouse device's fun() +- * to retrieve the hardware independent event data, then optionally repeat +- * the data via repeat_fun() to the repeater device +- *-------------------------------------------------------------------*/ +-static inline int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, +- int kd_mode) ++/*-------------------------------------------------------------------*/ ++void handle_console_resize(Gpm_Event *event) + { +- char *data; +- static int fine_dx, fine_dy; +- static int i, j, m; +- static Gpm_Event nEvent; +- static struct vt_stat stat; +- static struct timeval tv1={0,0}, tv2; /* tv1==0: first click is single */ +- static struct timeval timeout={0,0}; +- fd_set fdSet; +- static int newB=0, oldB=0, oldT=0; /* old buttons and Type to chain events */ +- /* static int buttonlock, buttonlockflag; */ +- +-#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) +-#define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +- (t2.tv_usec-t1.tv_usec)/1000) +- +- +- oldT=event->type; +- +- if (eventFlag) { +- eventFlag=0; +- +- if (m_type->absolute) { /* a pen or other absolute device */ +- event->x=nEvent.x; +- event->y=nEvent.y; +- } +- event->dx=nEvent.dx; +- event->dy=nEvent.dy; +- event->buttons=nEvent.buttons; +- } else { +- event->dx=event->dy=0; +- event->wdx=event->wdy=0; +- nEvent.modifiers = 0; /* some mice set them */ +- FD_ZERO(&fdSet); FD_SET(fd,&fdSet); i=0; +- +- do { /* cluster loop */ +- if(((data=getMouseData(fd,m_type,kd_mode))==NULL) +- || ((*(m_type->fun))(&nEvent,data)==-1) ) { +- if (!i) return 0; +- else break; +- } +- +- event->modifiers = nEvent.modifiers; /* propagate modifiers */ +- +- /* propagate buttons */ +- nEvent.buttons = (opt_sequence[nEvent.buttons&7]&7) | +- (nEvent.buttons & ~7); /* change the order */ +- oldB=newB; newB=nEvent.buttons; +- if (!i) event->buttons=nEvent.buttons; +- +- if (oldB!=newB) { +- eventFlag = (i!=0)*(which_mouse-mouse_table); /* 1 or 2 */ +- break; +- } +- +- /* propagate movement */ +- if (!(m_type->absolute)) { /* mouse */ +- if (abs(nEvent.dx)+abs(nEvent.dy) > opt_delta) +- nEvent.dx*=opt_accel, nEvent.dy*=opt_accel; +- +- /* increment the reported dx,dy */ +- event->dx+=nEvent.dx; +- event->dy+=nEvent.dy; +- } else { /* a pen */ +- /* get dx,dy to check if there has been movement */ +- event->dx = (nEvent.x) - (event->x); +- event->dy = (nEvent.y) - (event->y); +- } +- +- /* propagate wheel */ +- event->wdx += nEvent.wdx; +- event->wdy += nEvent.wdy; +- +- select(fd+1,&fdSet,(fd_set *)NULL,(fd_set *)NULL,&timeout/* zero */); +- +- } while (i++ <opt_cluster && nEvent.buttons==oldB && FD_ISSET(fd,&fdSet)); +- +- } /* if(eventFlag) */ +- +-/*....................................... update the button number */ ++ int old_x, old_y; ++ struct micetab *mouse; + +- if ((event->buttons&GPM_B_MIDDLE) && !opt_three) opt_three++; ++ old_x = console.max_x; old_y = console.max_y; ++ refresh_console_size(); ++ if (!old_x) { /* first invocation, place the pointer in the middle */ ++ event->x = console.max_x / 2; ++ event->y = console.max_y / 2; ++ } else { /* keep the pointer in the same position where it was */ ++ event->x = event->x * console.max_x / old_x; ++ event->y = event->y * console.max_y / old_y; ++ } + +-/*....................................... we're a repeater, aren't we? */ ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ /* ++ * the following operation is based on the observation that 80x50 ++ * has square cells. (An author-centric observation ;-) ++ */ ++ mouse->options.scaley = mouse->options.scalex * 50 * console.max_x / 80 / console.max_y; ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_X_Y_VAL, ++ mouse->options.scalex, mouse->options.scaley); ++ } ++} + +- if (kd_mode!=KD_TEXT) { +- if (fifofd != -1 && ! opt_rawrep) { +- if (m_type->absolute) { /* hof Wed Feb 3 21:43:28 MET 1999 */ +- /* prepare the values from a absolute device for repeater mode */ +- static struct timeval rept1,rept2; +- gettimeofday(&rept2, (struct timezone *)NULL); +- if (((rept2.tv_sec -rept1.tv_sec) +- *1000+(rept2.tv_usec-rept1.tv_usec)/1000)>250) { +- event->dx=0; +- event->dy=0; +- } +- rept1=rept2; +- +- event->dy=event->dy*((win.ws_col/win.ws_row)+1); +- event->x=nEvent.x; +- event->y=nEvent.y; +- } +- repeated_type->repeat_fun(event, fifofd); /* itz Jan 11 1999 */ ++static void handle_repeater(int absolute_dev, Gpm_Event *new_event, Gpm_Event *event) ++{ ++ static struct timeval last; ++ struct timeval now; ++ ++ if (absolute_dev) { ++ /* prepare the values from a absolute device for repeater mode */ ++ GET_TIME(now); ++ if (((now.tv_sec - last.tv_sec) * 1000 + ++ (now.tv_usec - last.tv_usec) / 1000) > 250) { ++ event->dx = 0; ++ event->dy = 0; + } +- return 0; /* no events nor information for clients */ +- } /* first if of these three */ +- +-/*....................................... no, we arent a repeater, go on */ ++ last = now; + +- /* use fine delta values now, if delta is the information */ +- if (!(m_type)->absolute) { +- fine_dx+=event->dx; fine_dy+=event->dy; +- event->dx=fine_dx/opt_scale; event->dy=fine_dy/opt_scaley; +- fine_dx %= opt_scale; fine_dy %= opt_scaley; ++ event->dy = event->dy * ((console.max_x / console.max_y) + 1); ++ event->x = new_event->x; ++ event->y = new_event->y; + } ++ repeater.type->repeat_fun(event, repeater.fd); ++} + +- /* up and down, up and down, ... who does a do..while(0) loop ??? +- and then makes a break into it... argh ! */ +- +- if (!event->dx && !event->dy && (event->buttons==oldB)) +- do { /* so to break */ +- static long awaketime; +- /* +- * Ret information also if never happens, but enough time has elapsed. +- * Note: return 1 will segfault due to missing event->vc; FIXME! +- */ +- if (time(NULL)<=awaketime) return 0; +- awaketime=time(NULL)+1; +- break; +- } while (0); +- +-/*....................................... fill missing fields */ +- +- event->x+=event->dx, event->y+=event->dy; +- statusB=event->buttons; +- +- i=open_console(O_RDONLY); +- /* modifiers */ +- j = event->modifiers; /* save them */ +- event->modifiers=6; /* code for the ioctl */ +- if (ioctl(i,TIOCLINUX,&(event->modifiers))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); +- event->modifiers |= j; /* add mouse-specific bits */ +- +- /* status */ +- j = stat.v_active; +- if (ioctl(i,VT_GETSTATE,&stat)<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_CONSOLE_STAT); +- +- /* +- * if we changed console, request the current console size, +- * as different consoles can be of different size +- */ +- if (stat.v_active != j) +- get_console_size(event); +- close(i); +- +- event->vc = stat.v_active; +- +- if (oldB==event->buttons) +- event->type = (event->buttons ? GPM_DRAG : GPM_MOVE); +- else +- event->type = (event->buttons > oldB ? GPM_DOWN : GPM_UP); +- ++static void calculate_clicks(Gpm_Event *event, int click_tmo) ++{ ++ static struct timeval release; ++ struct timeval now; ++ + switch(event->type) { /* now provide the cooked bits */ + case GPM_DOWN: +- GET_TIME(tv2); +- if (tv1.tv_sec && (DIF_TIME(tv1,tv2)<opt_time)) /* check first click */ +- statusC++, statusC%=3; /* 0, 1 or 2 */ ++ GET_TIME(now); ++ if (release.tv_sec && (DIF_TIME(release, now) < click_tmo)) /* check first click */ ++ event->clicks++, event->clicks %= 3; /* 0, 1 or 2 */ + else +- statusC=0; +- event->type|=(GPM_SINGLE<<statusC); ++ event->clicks = 0; ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_UP: +- GET_TIME(tv1); +- event->buttons^=oldB; /* for button-up, tell which one */ +- event->type|= (oldT&GPM_MFLAG); +- event->type|=(GPM_SINGLE<<statusC); ++ GET_TIME(release); ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_DRAG: +- event->type |= GPM_MFLAG; +- event->type|=(GPM_SINGLE<<statusC); ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_MOVE: +- statusC=0; ++ event->clicks = 0; ++ + default: + break; + } +- event->clicks=statusC; ++} ++ ++static void snap_to_screen_limits(Gpm_Event *event) ++{ ++ int extent; + +-/* UGLY - FIXME! */ +-/* The current policy is to force the following behaviour: +- * - At buttons up, must fit inside the screen, though flags are set. +- * - At button down, allow going outside by one single step +- */ ++ /* The current policy is to force the following behaviour: ++ * - At buttons up, must fit inside the screen, though flags are set. ++ * - At button down, allow going outside by one single step ++ * DTOR: Midnight Commander seems to want the opposite... ++ */ + ++ extent = (event->type & (GPM_DRAG|GPM_UP)) ? 1 : 0; + + /* selection used 1-based coordinates, so do I */ +- + /* + * 1.05: only one margin is current. Y takes priority over X. +- * The i variable is how much margin is allowed. "m" is which one is there. + */ + +- m = 0; +- i = ((event->type&(GPM_DRAG|GPM_UP))!=0); /* i is boolean */ +- +- if (event->y>win.ws_row) {event->y=win.ws_row+1-!i; i=0; m = GPM_BOT;} +- else if (event->y<=0) {event->y=1-i; i=0; m = GPM_TOP;} +- +- if (event->x>win.ws_col) {event->x=win.ws_col+1-!i; if (!m) m = GPM_RGT;} +- else if (event->x<=0) {event->x=1-i; if (!m) m = GPM_LFT;} ++ event->margin = 0; + +- event->margin=m; ++ if (event->y > console.max_y) { ++ event->y = console.max_y + extent; ++ extent = 0; ++ event->margin = GPM_BOT; ++ } else if (event->y <= 0) { ++ event->y = 1 - extent; ++ extent = 0; ++ event->margin = GPM_TOP; ++ } + +- gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i", +- event->dx,event->dy, +- event->x,event->y, +- event->buttons, event->vc, +- event->clicks); ++ if (event->x > console.max_x) { ++ event->x = console.max_x + extent; ++ if (!event->margin) event->margin = GPM_RGT; ++ } else if (event->x <= 0) { ++ event->x = 1 - extent; ++ if (!event->margin) event->margin = GPM_LFT; ++ } ++} + +- /* update the global state */ +- statusX=event->x; statusY=event->y; ++static int more_data_waiting(int fd) ++{ ++ static struct timeval timeout = {0, 0}; ++ fd_set fdSet; + +- if (opt_special && event->type & GPM_DOWN) +- return processSpecial(event); ++ FD_ZERO(&fdSet); ++ FD_SET(fd, &fdSet); ++ select(fd + 1, &fdSet, NULL_SET, NULL_SET, &timeout/* zero */); + +- return 1; ++ return FD_ISSET(fd, &fdSet); + } + +-/*-------------------------------------------------------------------* +- * This was inline, and incurred in a compiler bug (2.7.0) +- *-------------------------------------------------------------------*/ +-static int get_data(Gpm_Connect *where, int whence) ++static int multiplex_buttons(struct micetab *mouse, int new_buttons) + { +- static int i; ++ static int left_btn_clicks, mid_btn_clicks, right_btn_clicks; ++ int mask; ++ int muxed_buttons = 0; ++ ++ new_buttons = ++ (mouse->options.sequence[new_buttons & 7] & 7) | (new_buttons & ~7); ++ mask = new_buttons ^ mouse->buttons; ++ mouse->buttons = new_buttons; + +-#ifdef GPM_USE_MAGIC +- while ((i=read(whence,&check,sizeof(int)))==4 && check!=GPM_MAGIC) +- gpm_report(GPM_PR_INFO,GPM_MESS_NO_MAGIC); +- +- if (!i) return 0; +- if (check!=GPM_MAGIC) { +- gpm_report(GPM_PR_INFO,GPM_MESS_NOTHING_MORE); +- return -1; ++ if (mask & GPM_B_LEFT) { ++ if (new_buttons & GPM_B_LEFT) left_btn_clicks++; ++ else left_btn_clicks--; + } +-#endif ++ if (left_btn_clicks) muxed_buttons |= GPM_B_LEFT; + +- if ((i=read(whence, where, sizeof(Gpm_Connect)))!=sizeof(Gpm_Connect)) { +- return i ? -1 : 0; ++ if (mask & GPM_B_MIDDLE) { ++ if (new_buttons & GPM_B_MIDDLE) mid_btn_clicks++; ++ else mid_btn_clicks--; + } ++ if (mid_btn_clicks) muxed_buttons |= GPM_B_MIDDLE; + +- return 1; +-} ++ if (mask & GPM_B_RIGHT) { ++ if (new_buttons & GPM_B_RIGHT) right_btn_clicks++; ++ else right_btn_clicks--; ++ } ++ if (right_btn_clicks) muxed_buttons |= GPM_B_RIGHT; + +-static void disable_paste(int vc) +-{ +- opt_aged++; +- gpm_report(GPM_PR_INFO,GPM_MESS_DISABLE_PASTE,vc); ++ return muxed_buttons; + } + +-/*-------------------------------------------------------------------*/ +- /* returns -1 if closing connection */ +-static inline int processRequest(Gpm_Cinfo *ci, int vc) ++/*------------------------------------------------------------------- ++ * call getMouseData to get hardware device data, call mouse device's fun() ++ * to retrieve the hardware independent event data, then optionally repeat ++ * the data via repeat_fun() to the repeater device ++ *-------------------------------------------------------------------*/ ++static enum mouse_rslt processMouse(struct micetab *mouse, int timeout, int attempt, ++ Gpm_Event *event, int text_mode) + { ++ static int last_active; ++ static int fine_dx, fine_dy; ++ static int oldB; ++ ++ static Gpm_Event nEvent; ++ struct Gpm_Type *type = mouse->type; ++ struct miceopt *opt = &mouse->options; ++ enum mouse_rslt rslt = MOUSE_DATA_OK; ++ unsigned char shift_state; ++ char *data = NULL; + int i; +- Gpm_Cinfo *cinfoPtr, *next; +- Gpm_Connect conn; +- static Gpm_Event event; +- static struct vt_stat stat; +- +- gpm_report(GPM_PR_INFO,GPM_MESS_CON_REQUEST, ci->fd, vc); +- if (vc>MAX_VC) return -1; +- +- /* itz 10-22-96 this shouldn't happen now */ +- if (vc==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_UNKNOWN_FD); +- +- i=get_data(&conn,ci->fd); +- +- if (!i) { /* no data */ +- gpm_report(GPM_PR_INFO,GPM_MESS_CLOSE); +- close(ci->fd); +- FD_CLR(ci->fd,&connSet); +- FD_CLR(ci->fd,&readySet); +- if (cinfo[vc]->fd == ci->fd) { /* it was on top of the stack */ +- cinfoPtr = cinfo[vc]; +- cinfo[vc]=cinfo[vc]->next; /* pop the stack */ +- free(cinfoPtr); +- return -1; +- } +- /* somewhere inside the stack, have to walk it */ +- cinfoPtr = cinfo[vc]; +- while (cinfoPtr && cinfoPtr->next) { +- if (cinfoPtr->next->fd == ci->fd) { +- next = cinfoPtr->next; +- cinfoPtr->next = next->next; +- free (next); ++ ++ if (attempt > 1) { /* continue interrupted cluster loop */ ++ if (opt->absolute) { ++ event->x = nEvent.x; ++ event->y = nEvent.y; ++ } ++ event->dx = nEvent.dx; ++ event->dy = nEvent.dy; ++ event->buttons = nEvent.buttons; ++ } else { ++ event->dx = event->dy = 0; ++ event->wdx = event->wdy = 0; ++ nEvent.modifiers = 0; /* some mice set them */ ++ i = 0; ++ ++ do { /* cluster loop */ ++ if (!timeout && (data = getMouseData(mouse->dev.fd, type, text_mode)) != NULL) { ++ GET_TIME(mouse->timestamp); ++ } ++ ++ /* in case of timeout data passed to typr->fun() is NULL */ ++ if ((!timeout && data == NULL) || ++ type->fun(&mouse->dev, &mouse->options, data, &nEvent) == -1) { ++ if (!i) return MOUSE_NO_DATA; ++ else break; ++ } ++ ++ event->modifiers = nEvent.modifiers; /* propagate modifiers */ ++ ++ /* propagate buttons */ ++ nEvent.buttons = multiplex_buttons(mouse, nEvent.buttons); ++ ++ if (!i) event->buttons = nEvent.buttons; ++ ++ if (oldB != nEvent.buttons) { ++ rslt = MOUSE_MORE_DATA; + break; + } +- cinfoPtr = cinfoPtr->next; +- } +- return -1; +- } /* not data */ +- +- if (i == -1) return -1; /* too few bytes */ + +- if (conn.pid!=0) { +- ci->data = conn; +- return 0; +- } +- +- /* Aha, request for information (so-called snapshot) */ +- switch(conn.vc) { +- case GPM_REQ_SNAPSHOT: +- i=open_console(O_RDONLY); +- ioctl(i,VT_GETSTATE,&stat); +- event.modifiers=6; /* code for the ioctl */ +- if (ioctl(i,TIOCLINUX,&(event.modifiers))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); +- close(i); +- event.vc = stat.v_active; +- event.x=statusX; event.y=statusY; +- event.dx=maxx; event.dy=maxy; +- event.buttons= statusB; +- event.clicks=statusC; +- /* fall through */ +- /* missing break or do you want this ??? */ +- +- case GPM_REQ_BUTTONS: +- event.type= (opt_three==1 ? 3 : 2); /* buttons */ +- write(ci->fd,&event,sizeof(Gpm_Event)); +- break; ++ /* propagate movement */ ++ if (!opt->absolute) { /* mouse */ ++ if (abs(nEvent.dx) + abs(nEvent.dy) > opt->delta) ++ nEvent.dx *= opt->accel, nEvent.dy *= opt->accel; + +- case GPM_REQ_NOPASTE: +- disable_paste(vc); +- break; ++ /* increment the reported dx,dy */ ++ event->dx += nEvent.dx; ++ event->dy += nEvent.dy; ++ } else { /* a pen */ ++ /* get dx,dy to check if there has been movement */ ++ event->dx = nEvent.x - event->x; ++ event->dy = nEvent.y - event->y; ++ } ++ ++ /* propagate wheel */ ++ event->wdx += nEvent.wdx; ++ event->wdy += nEvent.wdy; ++ ++ } while (i++ < opt->cluster && more_data_waiting(mouse->dev.fd)); ++ } /* if(eventFlag) */ ++ ++ /*....................................... update the button number */ ++ ++ if ((event->buttons & GPM_B_MIDDLE) && !opt->three_button) opt->three_button++; ++ ++ /*....................................... we're a repeater, aren't we? */ ++ ++ if (!text_mode) { ++ if (repeater.fd != -1 && !repeater.raw) ++ handle_repeater(opt->absolute, &nEvent, event); ++ oldB = nEvent.buttons; ++ return MOUSE_NO_DATA; /* no events nor information for clients */ + } + +- return 0; +-} ++/*....................................... no, we arent a repeater, go on */ + +-/*-------------------------------------------------------------------*/ +-static inline int processConn(int fd) /* returns newfd or -1 */ +-{ +- Gpm_Cinfo *info; +- Gpm_Connect *request; +- Gpm_Cinfo *next; +- int vc, newfd; +-#if !defined(__GLIBC__) +- int len; +-#else /* __GLIBC__ */ +- size_t len; /* isn't that generally defined in C ??? -- nico */ +-#endif /* __GLIBC__ */ +- struct sockaddr_un addr; /* reuse this each time */ +- struct stat statbuf; +- uid_t uid; +- char *tty = NULL; +- +-/*....................................... Accept */ +- +- bzero((char *)&addr,sizeof(addr)); +- addr.sun_family=AF_UNIX; +- +- len=sizeof(addr); +- if ((newfd=accept(fd,(struct sockaddr *)&addr, &len))<0) { +- gpm_report(GPM_PR_ERR,GPM_MESS_ACCEPT_FAILED,strerror(errno)); +- return -1; +- } +- +- gpm_report(GPM_PR_INFO,GPM_MESS_CONECT_AT,newfd); +- +- info=malloc(sizeof(Gpm_Cinfo)); +- if (!info) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- request=&(info->data); +- +- if(get_data(request,newfd)==-1) { +- free(info); +- close(newfd); +- return -1; +- } +- +- if ((vc=request->vc)>MAX_VC) { +- gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, vc, MAX_VC); +- free(info); +- close(newfd); +- return -1; +- } +- +-#ifndef SO_PEERCRED +- if (stat (addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) { +- gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path); +- free(info); /* itz 10-12-95 verify client's right */ +- close(newfd); +- return -1; /* to read requested tty */ ++ /* use fine delta values now, if delta is the information */ ++ if (!opt->absolute) { ++ fine_dx += event->dx; ++ fine_dy += event->dy; ++ event->dx = fine_dx / opt->scalex; ++ event->dy = fine_dy / opt->scaley; ++ fine_dx %= opt->scalex; ++ fine_dy %= opt->scaley; + } +- +- unlink(addr.sun_path); /* delete socket */ + +- staletime = time(0) - 30; +- if (statbuf.st_atime < staletime +- || statbuf.st_ctime < staletime +- || statbuf.st_mtime < staletime) { +- gpm_report(GPM_PR_ERR,GPM_MESS_SOCKET_OLD); +- free (info); +- close(newfd); +- return -1; /* socket is ancient */ ++ /* up and down, up and down, ... who does a do..while(0) loop ??? ++ and then makes a break into it... argh ! */ ++ ++ if (!event->dx && !event->dy && event->buttons == oldB) { ++ static time_t awaketime; ++ /* ++ * Ret information also if never happens, but enough time has elapsed. ++ * Note: return 1 will segfault due to missing event->vc; FIXME! ++ */ ++ if (time(NULL) <= awaketime) return MOUSE_NO_DATA; ++ awaketime = time(NULL) + 1; + } + +- uid = statbuf.st_uid; /* owner of socket */ +-#else +- { +- struct ucred sucred; +- socklen_t credlen = sizeof(struct ucred); +- +- if(getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) { +- gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno)); +- free(info); +- close(newfd); +- return -1; +- } +- uid = sucred.uid; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid); +- } +-#endif +- if (uid != 0) { +- if(( tty = +- malloc(strlen(option.consolename)+Gpm_cnt_digits(vc) + sizeof(char))) == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- +- strncpy(tty,option.consolename,strlen(option.consolename)-1); +- sprintf(&tty[strlen(option.consolename)-1],"%d",vc); ++ /*....................................... fill missing fields */ ++ event->x += event->dx; event->y += event->dy; + +- if(stat(tty, &statbuf) == -1) { +- gpm_report(GPM_PR_ERR,GPM_MESS_STAT_FAILS,tty); +- free(info); +- free(tty); +- close(newfd); +- return -1; +- } +- if (uid != statbuf.st_uid) { +- gpm_report(GPM_PR_WARN,GPM_MESS_FAILED_CONNECT, uid, tty); /*SUSPECT!*/ +- free(info); +- free(tty); +- close(newfd); +- return -1; ++ event->vc = get_console_state(&shift_state); ++ if (event->vc != last_active) { ++ handle_console_resize(event); ++ last_active = event->vc; ++ } ++ event->modifiers |= shift_state; ++ ++ if (oldB == event->buttons) ++ event->type = (event->buttons ? (GPM_DRAG | GPM_MFLAG) : GPM_MOVE); ++ else { ++ if (event->buttons > oldB) ++ event->type = GPM_DOWN; ++ else { ++ event->type &= GPM_MFLAG; ++ event->type |= GPM_UP; ++ event->buttons ^= oldB; /* for button-up, tell which one */ + } +- free(tty); /* at least here it's not needed anymore */ + } ++ calculate_clicks(event, opt->time); ++ snap_to_screen_limits(event); ++ ++ gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i", ++ event->dx, event->dy, event->x, event->y, ++ event->buttons, event->vc, event->clicks); + +- /* register the connection information in the right place */ +- info->next=next=cinfo[vc]; +- info->fd=newfd; +- cinfo[vc]=info; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_LONG_STATUS, +- request->pid, request->vc, request->eventMask, request->defaultMask, +- request->minMod, request->maxMod); +- +- /* if the client gets motions, give it the current position */ +- if(request->eventMask & GPM_MOVE) { +- Gpm_Event event={0,0,vc,0,0,statusX,statusY,GPM_MOVE,0,0}; +- do_client(info, &event); +- } ++ oldB = nEvent.buttons; + +- return newfd; ++ if (opt_special && (event->type & GPM_DOWN) && !processSpecial(event)) ++ rslt = MOUSE_NO_DATA; ++ ++ return rslt; + } + +-/*-------------------------------------------------------------------*/ +-void get_console_size(Gpm_Event *ePtr) ++static int wait_for_data(fd_set *connSet, int maxfd, fd_set *selSet) + { +- int i, prevmaxx, prevmaxy; +- struct mouse_features *which_mouse; /* local */ ++ struct micetab *mouse; ++ struct timeval now, timeout = { 0, 0 }; ++ int mouse_tmo, tmo = INT_MAX; + +- /* before asking the new console size, save the previous values */ +- prevmaxx = maxx; prevmaxy = maxy; ++ GET_TIME(now); + +- i=open_console(O_RDONLY); +- ioctl(i, TIOCGWINSZ, &win); +- close(i); +- if (!win.ws_col || !win.ws_row) { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_ZERO_SCREEN_DIM); +- win.ws_col=80; win.ws_row=25; +- } +- maxx=win.ws_col; maxy=win.ws_row; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SCREEN_SIZE,maxx,maxy); +- +- if (!prevmaxx) { /* first invocation, place the pointer in the middle */ +- statusX = ePtr->x = maxx/2; +- statusY = ePtr->y = maxy/2; +- } else { /* keep the pointer in the same position where it was */ +- statusX = ePtr->x = ePtr->x * maxx / prevmaxx; +- statusY = ePtr->y = ePtr->y * maxy / prevmaxy; +- } +- +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- /* +- * the following operation is based on the observation that 80x50 +- * has square cells. (An author-centric observation ;-) +- */ +- opt_scaley=opt_scale*50*maxx/80/maxy; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_X_Y_VAL,opt_scale,opt_scaley); ++ *selSet = *connSet; ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ FD_SET(mouse->dev.fd, selSet); ++ maxfd = max(maxfd, mouse->dev.fd); ++ if (mouse->dev.timeout >= 0) { ++ mouse_tmo = mouse->dev.timeout - DIF_TIME(mouse->timestamp, now); ++ tmo = min(tmo, mouse_tmo); ++ } + } ++ ++ if (tmo == INT_MAX) ++ timeout.tv_sec = SELECT_TIME; ++ else if (tmo > 0) { ++ timeout.tv_sec = tmo / 1000; ++ timeout.tv_usec = (tmo % 1000) * 1000; ++ } ++ ++ return select(maxfd + 1, selSet, NULL_SET, NULL_SET, &timeout); + } + +-/*-------------------------------------------------------------------*/ +-static void gpm_killed(int signo) +-{ +- if(signo==SIGWINCH) { +- gpm_report(GPM_PR_WARN,GPM_MESS_RESIZING, option.progname, getpid()); +- opt_resize++; +- return; +- } +- if (signo==SIGUSR1) +- gpm_report(GPM_PR_WARN,GPM_MESS_KILLED_BY,option.progname, getpid(),option.progname); +- exit(0); +-} ++ + + /*-------------------------------------------------------------------*/ + int old_main() + { +- int ctlfd, newfd; +- struct sockaddr_un ctladdr; +- int i, len, kd_mode, fd; +- struct timeval timeout; +- int maxfd=-1; +- int pending; ++ int ctlfd; ++ int i, text_mode; ++ struct timeval now; ++ int maxfd = -1; ++ int pending, attempt; ++ int timed_out; + Gpm_Event event; ++ struct micetab *mouse; ++ struct client_info *ci; ++ fd_set selSet, connSet; ++ enum mouse_rslt rslt; + +- for (i = 1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- +- if (!opt_dev) gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV); +- +- if(!strcmp(opt_dev,"-")) fd=0; /* use stdin */ +- else if( (fd=open(opt_dev,O_RDWR | O_NDELAY)) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev); +- +- /* and then reset the flag */ +- fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) & ~O_NDELAY); +- +- /* create argc and argv for this device */ +- mouse_argv[i] = build_argv(opt_type, opt_options, &mouse_argc[i], ','); +- +- /* init the device, and use the return value as new mouse type */ +- if (m_type->init) +- m_type=(m_type->init)(fd, m_type->flags, m_type, mouse_argc[i], +- mouse_argv[i]); +- if (!m_type) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT); +- +- which_mouse->fd=fd; +- maxfd=max(fd, maxfd); +- } +- +-/*....................................... catch interesting signals */ +- ++ /*....................................... catch interesting signals */ + signal(SIGTERM, gpm_killed); + signal(SIGINT, gpm_killed); + signal(SIGUSR1, gpm_killed); /* usr1 is used by a new gpm killing the old */ + signal(SIGWINCH,gpm_killed); /* winch can be sent if console is resized */ ++ signal(SIGPIPE, SIG_IGN); /* WARN */ + +-/*....................................... create your nodes */ +- +- /* control node */ +- +- if((ctlfd=socket(AF_UNIX,SOCK_STREAM,0))==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_SOCKET_PROB); +- bzero((char *)&ctladdr,sizeof(ctladdr)); +- ctladdr.sun_family=AF_UNIX; +- strcpy(ctladdr.sun_path,GPM_NODE_CTL); +- unlink(GPM_NODE_CTL); +- +- len=sizeof(ctladdr.sun_family)+strlen(GPM_NODE_CTL); +- if(bind(ctlfd,(struct sockaddr *)(&ctladdr),len) == -1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_BIND_PROB,ctladdr.sun_path); +- maxfd=max(maxfd,ctlfd); +- +- /* needs to be 0777, so all users can _try_ to access gpm */ +- chmod(GPM_NODE_CTL,0777); +- +- get_console_size(&event); /* get screen dimensions */ +- +-/*....................................... wait for mouse and connections */ +- +- listen(ctlfd, 5); /* Queue up calls */ +- +-#define NULL_SET ((fd_set *)NULL) +-#define resetTimeout() (timeout.tv_sec=SELECT_TIME,timeout.tv_usec=0) ++ init_mice(); ++ handle_console_resize(&event); /* get screen dimensions */ ++ ctlfd = listen_for_clients(); + ++ /*....................................... wait for mouse and connections */ + FD_ZERO(&connSet); +- FD_SET(ctlfd,&connSet); +- +- if (opt_double) FD_SET(mouse_table[2].fd,&connSet); +- +- readySet=connSet; +- FD_SET(mouse_table[1].fd,&readySet); +- +- signal(SIGPIPE,SIG_IGN); /* WARN */ +- +-/*--------------------------------------- main loop begins here */ ++ FD_SET(ctlfd, &connSet); ++ maxfd = max(maxfd, ctlfd); ++ ++ /*--------------------------------------- main loop begins here */ + +- while(1) { +- selSet=readySet; +- resetTimeout(); +- if (opt_test) timeout.tv_sec=0; ++ while (1) { + +- if (eventFlag) { /* an event left over by clustering */ +- pending=1; +- FD_ZERO(&selSet); +- FD_SET(mouse_table[eventFlag].fd,&selSet); +- } +- else +- while((pending=select(maxfd+1,&selSet,NULL_SET,NULL_SET,&timeout))==0){ +- selSet=readySet; +- resetTimeout(); +- } /* go on */ +- +- if(opt_resize) { /* did the console resize? */ +- get_console_size(&event); +- opt_resize--; +- signal(SIGWINCH,gpm_killed); /* reinstall handler */ +- +- /* and notify clients */ +- for(i=0; i<MAX_VC+1; i++) { +- Gpm_Cinfo *ci; +- for (ci = cinfo[i]; ci; ci = ci->next) kill(ci->data.pid,SIGWINCH); +- } ++ pending = wait_for_data(&connSet, maxfd, &selSet); ++ ++ if (console_resized) { /* did the console resize? */ ++ handle_console_resize(&event); ++ console_resized = 0; ++ signal(SIGWINCH, gpm_killed); /* reinstall handler */ ++ notify_clients_resize(); + } + + if (pending < 0) { +- if (errno==EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); +- gpm_report(GPM_PR_ERR,GPM_MESS_SELECT_STRING,strerror(errno)); +- selSet=readySet; +- resetTimeout(); ++ if (errno == EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); ++ gpm_report(GPM_PR_ERR, GPM_MESS_SELECT_STRING, strerror(errno)); + continue; + } + +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SELECT_TIMES,pending); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SELECT_TIMES, pending); + +-/*....................................... manage graphic mode */ ++ /*....................................... manage graphic mode */ + +- /* +- * Be sure to be in text mode. This used to be before select, +- * but actually it only matters if you have events. +- */ +- { +- int fd = open_console(O_RDONLY); +- if (ioctl(fd, KDGETMODE, &kd_mode) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); +- close(fd); +- if(kd_mode != KD_TEXT && !option.repeater) { +- wait_text(&mouse_table[1].fd); +- maxfd=max(maxfd,mouse_table[1].fd); +- readySet=connSet; +- FD_SET(mouse_table[1].fd,&readySet); ++ /* ++ * Be sure to be in text mode. This used to be before select, ++ * but actually it only matters if you have events. ++ */ ++ text_mode = is_text_console(); ++ if (!text_mode && !repeater.type && !repeater.raw) { ++ /* if we don;t have repeater then there is only one mouse so ++ * we can safely use micelist ++ */ ++ close(micelist->dev.fd); ++ wait_text_console(); ++ /* reopen, reinit (the function is only used if we have one mouse device) */ ++ if ((micelist->dev.fd = open(micelist->device, O_RDWR)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, micelist->device); ++ if (micelist->type->init) ++ micelist->type->init(&micelist->dev, &micelist->options, micelist->type); + continue; /* reselect */ + } +- } + +-/*....................................... got mouse, process event */ +-/* +- * Well, actually, run a loop to maintain inlining of functions without +- * lenghtening the file. This is not too clean a code, but it works.... +- */ +- +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- if (FD_ISSET(which_mouse->fd,&selSet)) { +- FD_CLR(which_mouse->fd,&selSet); pending--; +- if (processMouse(which_mouse->fd, &event, m_type, kd_mode)) +- /* pass it to the client, if any +- * or to the default handler, if any +- * or to the selection handler +- */ /* FIXME -- check event.vc */ +- /* can't we please rewrite the following a bit nicer?*/ +- (cinfo[event.vc] && do_client(cinfo[event.vc], &event)) +- || (cinfo[0] && do_client(cinfo[0], &event)) +- || do_selection(&event); ++ /*....................................... got mouse, process event */ ++ /* ++ * Well, actually, run a loop to maintain inlining of functions without ++ * lenghtening the file. This is not too clean a code, but it works.... ++ */ ++ GET_TIME(now); ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ timed_out = mouse->dev.timeout >= 0 && ++ DIF_TIME(mouse->timestamp, now) >= mouse->dev.timeout; ++ if (timed_out || FD_ISSET(mouse->dev.fd, &selSet)) { ++ if (FD_ISSET(mouse->dev.fd, &selSet)) { ++ FD_CLR(mouse->dev.fd, &selSet); ++ pending--; + } ++ attempt = 0; ++ do { ++ rslt = processMouse(mouse, timed_out, ++attempt, &event, text_mode); ++ if (rslt != MOUSE_NO_DATA) { ++ /* pass it to the client or to the default handler, ++ * or to the selection handler ++ */ ++ if (event.vc > MAX_VC) event.vc = 0; ++ if (event.vc == 0 || !cinfo[event.vc] || !do_client(cinfo[event.vc], &event)) ++ if (!cinfo[0] || !do_client(cinfo[0], &event)) ++ do_selection(&event, mouse->options.three_button); ++ } ++ } while (rslt == MOUSE_MORE_DATA); ++ } + } + + /*..................... got connection, process it */ +- +- if (pending && FD_ISSET(ctlfd,&selSet)) { +- FD_CLR(ctlfd,&selSet); pending--; +- newfd=processConn(ctlfd); +- if (newfd>=0) { +- FD_SET(newfd,&connSet); +- FD_SET(newfd,&readySet); +- maxfd=max(maxfd,newfd); ++ if (pending && FD_ISSET(ctlfd, &selSet)) { ++ FD_CLR(ctlfd, &selSet); ++ pending--; ++ if ((ci = accept_client_connection(ctlfd))) { ++ if (ci->data.eventMask & GPM_MOVE) { ++ Gpm_Event e = { 0, 0, ci->data.vc, 0, 0, ++ event.x, event.y, GPM_MOVE, 0, 0 }; ++ do_client(ci, &e); ++ } ++ FD_SET(ci->fd, &connSet); ++ maxfd = max(maxfd, ci->fd); + } + } + + /*........................ got request */ +- +- /* itz 10-22-96 check _all_ clients, not just those on top! */ +- for (i=0; pending && (i<=MAX_VC); i++) { +- Gpm_Cinfo* ci; ++ /* itz 10-22-96 check _all_ clients, not just those on top! */ ++ for (i = 0; pending && i <= MAX_VC; i++) { + for (ci = cinfo[i]; pending && ci; ci = ci->next) { +- if (FD_ISSET(ci->fd,&selSet)) { +- FD_CLR(ci->fd,&selSet); pending--; +- /* itz Sat Sep 12 21:10:22 PDT 1998 */ +- /* this code is clearly incorrect; the next highest +- descriptor after the one we're closing is not necessarily +- being used. Fortunately, it doesn't hurt simply to leave this +- out. */ +- +-#ifdef NOTDEF +- if ((processRequest(ci,i)==-1) && maxfd==ci->fd) maxfd--; +-#else +- (void)processRequest(ci,i); +-#endif ++ if (FD_ISSET(ci->fd, &selSet)) { ++ FD_CLR(ci->fd, &selSet); ++ pending--; ++ if (!process_client_request(ci, i, event.x, event.y, event.clicks, ++ event.buttons, micelist->options.three_button)) { ++ FD_CLR(ci->fd, &connSet); ++ remove_client(ci, i); ++ } + } + } + } + + /*.................. look for a spare fd */ +- + /* itz 10-22-96 this shouldn't happen now! */ +- for (i=0; pending && i<=maxfd; i++) { +- if (FD_ISSET(i,&selSet)) { +- FD_CLR(i,&selSet); ++ for (i = 0; pending && i <= maxfd; i++) { ++ if (FD_ISSET(i, &selSet)) { ++ FD_CLR(i, &selSet); + pending--; +- gpm_report(GPM_PR_WARN,GPM_MESS_STRANGE_DATA,i); ++ gpm_report(GPM_PR_WARN, GPM_MESS_STRANGE_DATA,i); + } + } + + /*................... all done. */ +- +- if(pending) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); ++ if (pending) gpm_report(GPM_PR_OOPS, GPM_MESS_SELECT_PROB); + } /* while(1) */ + } +diff -urN gpm-1.20.1/src/gpn.c gpm/src/gpn.c +--- gpm-1.20.1/src/gpn.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/gpn.c 2003-10-02 01:22:42.000000000 -0500 +@@ -28,201 +28,104 @@ + #include <stdlib.h> + #include <string.h> /* strerror(); ?!? memcpy() */ + #include <ctype.h> /* isdigit */ +-#include <signal.h> +-#include <stdarg.h> /* Log uses it */ +-#include <errno.h> + #include <unistd.h> /* getopt(),symlink() */ +-#include <sys/stat.h> /* mkdir() */ +-#include <sys/param.h> +-#include <sys/time.h> /* timeval */ +-#include <sys/wait.h> /* wait() */ +-#include <sys/types.h> /* socket() */ +-#include <sys/socket.h> /* socket() */ +-#include <sys/un.h> /* struct sockaddr_un */ +-#include <asm/types.h> /* __u32 */ +- +-#ifdef SIGTSTP /* true if BSD system */ +-#include <sys/file.h> +-#include <sys/ioctl.h> +-#endif +- +-#ifndef HAVE___U32 +-# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */ +-typedef unsigned int __u32; +-# endif +-#endif + + #include "headers/message.h" + #include "headers/gpmInt.h" + #include "headers/gpm.h" ++#include "headers/console.h" ++#include "headers/selection.h" + +-extern int errno; +- +-/*===================================================================*/ +-/* octal digit */ +-static int isodigit(const unsigned char c) ++/* usage: display for usage informations */ ++int usage(char *whofailed) + { +- return ((c & ~7) == '0'); ++ if (whofailed) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_SPEC_ERR, whofailed, option.progname); ++ return 1; ++ } ++ printf(GPM_MESS_USAGE, option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE, ++ DEF_DELTA, DEF_TIME, DEF_LUT, DEF_SCALE, DEF_SAMPLE, DEF_TYPE); ++ return 1; + } + +-/* routine to convert digits from octal notation (Andries Brouwer) */ +-static int getsym(const unsigned char *p0, unsigned char *res) ++/***************************************************************************** ++ * the function returns a valid type pointer or NULL if not found ++ *****************************************************************************/ ++static struct Gpm_Type *find_mouse_by_name(char *name) + { +- const unsigned char *p = p0; +- char c; ++ Gpm_Type *type; ++ char *s; ++ int len = strlen(name); + +- c = *p++; +- if (c == '\\' && *p) { +- c = *p++; +- if (isodigit(c)) { +- c -= '0'; +- if (isodigit(*p)) c = 8*c + (*p++ - '0'); +- if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ for (type = mice; type->fun; type++) { ++ if (!strcasecmp(name, type->name)) break; ++ /* otherwise, look in the synonym list */ ++ for (s = type->synonyms; s; s = strchr(s, ' ')) { ++ while (*s && isspace(*s)) s++; /* skip spaces */ ++ if (!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/ + } ++ if (s) break; /* found a synonym */ + } +- *res = c; +- return (p - p0); ++ return type->fun ? type : NULL; + } + +-/* description missing! FIXME */ +-int loadlut(char *charset) ++static void init_button_sequence(struct miceopt *opt, char *arg) + { +- int i, c, fd; +- unsigned char this, next; +- static __u32 long_array[9]={ +- 0x05050505, /* ugly, but preserves alignment */ +- 0x00000000, /* control chars */ +- 0x00000000, /* digits */ +- 0x00000000, /* uppercase and '_' */ +- 0x00000000, /* lowercase */ +- 0x00000000, /* Latin-1 control */ +- 0x00000000, /* Latin-1 misc */ +- 0x00000000, /* Latin-1 uppercase */ +- 0x00000000 /* Latin-1 lowercase */ ++ int i; ++ static struct { ++ char *in; ++ char *out; ++ } seq[] = { ++ {"123", "01234567"}, ++ {"132", "02134657"}, ++ {"213", "01452367"}, /* warning: these must be readable as integers... */ ++ {"231", "02461357"}, ++ {"312", "04152637"}, ++ {"321", "04261537"}, ++ {NULL, NULL} + }; + ++ if (strlen(arg) != 3 || atoi(arg) < 100) ++ exit(usage("sequence")); + +-#define inwordLut (long_array+1) +- +- for (i=0; charset[i]; ) { +- i += getsym(charset+i, &this); +- if (charset[i] == '-' && charset[i + 1] != '\0') +- i += getsym(charset+i+1, &next) + 1; +- else +- next = this; +- for (c = this; c <= next; c++) +- inwordLut[c>>5] |= 1 << (c&0x1F); +- } +- +- if ((fd=open(option.consolename, O_WRONLY)) < 0) { +- /* try /dev/console, if /dev/tty0 failed -- is that really senseful ??? */ +- free(option.consolename); /* allocated by main */ +- if((option.consolename=malloc(strlen(GPM_SYS_CONSOLE)+1)) == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- strcpy(option.consolename,GPM_SYS_CONSOLE); +- +- if ((fd=open(option.consolename, O_WRONLY)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- } +- if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */ +- if (errno==EPERM && getuid()) +- gpm_report(GPM_PR_WARN,GPM_MESS_ROOT); /* why do we still continue?*/ +- else if (errno==EINVAL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CSELECT); +- } +- close(fd); +- +- return 0; ++ for (i = 0; seq[i].in && strcmp(seq[i].in, arg); i++); ++ if (!seq[i].in) ++ exit(usage("button sequence")); ++ opt->sequence = strdup(seq[i].out); /* I can rewrite on it */ + } + +-/* usage: display for usage informations */ +-int usage(char *whofailed) ++static void validate_mouse(struct micetab *mouse, int mouse_no) + { +- if (whofailed) { +- gpm_report(GPM_PR_ERR,GPM_MESS_SPEC_ERR,whofailed,option.progname); +- return 1; +- } +- printf(GPM_MESS_USAGE,option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE, +- DEF_DELTA, DEF_TIME, DEF_LUT,DEF_SCALE, DEF_SAMPLE, DEF_TYPE); +- return 1; +-} +- +-/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the +- unwanted functionality in check_uniqueness. */ +- +-void check_kill(void) +-{ +- int old_pid; +- FILE* fp = fopen(GPM_NODE_PID, "r"); +- +- /* if we cannot find the old pid file, leave */ +- if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID); +- +- /* else read the pid */ +- if (fscanf(fp,"%d",&old_pid) != 1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_READ_PROB,GPM_NODE_PID); +- fclose(fp); +- +- gpm_report(GPM_PR_DEBUG,GPM_MESS_KILLING,old_pid); +- +- /* first check if we run */ +- if (kill(old_pid,0) == -1) { +- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); +- unlink(GPM_NODE_PID); ++ if (!mouse->device) { ++ if (!mouse->type && mouse_no > 1) ++ gpm_report(GPM_PR_OOPS, ++ "No device/protocol specified for mouse #%d, probably extra -M option?", mouse_no); ++ else ++ gpm_report(GPM_PR_OOPS, "No device specified for mouse #%d", mouse_no); + } +- /* then kill us (not directly, but the other instance ... ) */ +- if (kill(old_pid,SIGTERM) == -1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CANT_KILL, old_pid); + +- gpm_report(GPM_PR_INFO,GPM_MESS_KILLED,old_pid); +- exit(0); +-} ++ if (!mouse->type) ++ mouse->type = find_mouse_by_name(DEF_TYPE); + +-/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two +- completely different things; opening a socket to a running daemon +- and checking that a running daemon existed. Ugly. */ +-/* rewritten mostly on 20th of February 2002 - nico */ +-void check_uniqueness(void) +-{ +- FILE *fp = 0; +- int old_pid = -1; ++ mouse->options.absolute = mouse->type->absolute; + +- if((fp = fopen(GPM_NODE_PID, "r")) != NULL) { +- fscanf(fp, "%d", &old_pid); +- if (kill(old_pid,0) == -1) { +- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); +- unlink(GPM_NODE_PID); +- } else /* we are really running, exit asap! */ +- gpm_report(GPM_PR_OOPS,GPM_MESS_ALREADY_RUN, old_pid); +- } +- /* now try to sign ourself */ +- if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) { +- fprintf(fp,"%d\n",getpid()); +- fclose(fp); +- } else { +- gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID); +- } ++ if (!mouse->options.sequence) ++ init_button_sequence(&mouse->options, DEF_SEQUENCE); + } + +-/***************************************************************************** +- * the function returns a valid type pointer or NULL if not found +- *****************************************************************************/ +-struct Gpm_Type *find_mouse_by_name(char *name) ++static void validate_repeater(char *type) + { +- Gpm_Type *type; +- char *s; +- int len = strlen(name); +- +- for (type=mice; type->fun; type++) { +- if (!strcasecmp(name, type->name)) break; +- /* otherwise, look in the synonym list */ +- for (s = type->synonyms; s; s = strchr(s, ' ')) { +- while (*s && isspace(*s)) s++; /* skip spaces */ +- if(!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/ +- } +- if(s) break; /* found a synonym */ ++ if (strcmp(type, "raw") == 0) ++ repeater.raw = 1; ++ else { ++ repeater.raw = 0; ++ ++ if (!(repeater.type = find_mouse_by_name(type))) ++ exit(M_listTypes()); /* not found */ ++ ++ if (!repeater.type->repeat_fun) /* unsupported translation */ ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_REPEAT, type); + } +- if (!type->fun) return NULL; +- return type; + } + + /***************************************************************************** +@@ -230,60 +133,86 @@ + * Can't believe it, today cmdline() really does what the name tries to say + *****************************************************************************/ + void cmdline(int argc, char **argv) +-{ +- extern struct options option; ++{ ++ struct micetab *mouse; ++ struct miceopt *opt; + char options[]="a:A::b:B:d:Dg:hi:kl:m:Mo:pr:R::s:S:t:TuvV::23"; +- int opt; ++ int opt_char, tmp; ++ int mouse_no = 1; ++ ++ mouse = add_mouse(); ++ opt = &mouse->options; + +- /* initialize for the dual mouse */ +- mouse_table[2]=mouse_table[1]=mouse_table[0]; /* copy defaults */ +- which_mouse=mouse_table+1; /* use the first */ +- +- while ((opt = getopt(argc, argv, options)) != -1) { +- switch (opt) { +- case 'a': opt_accel = atoi(optarg); break; +- case 'A': opt_aged++; +- if (optarg) +- opt_age_limit = atoi(optarg); break; +- case 'b': opt_baud = atoi(optarg); break; +- case 'B': opt_sequence = optarg; break; +- case 'd': opt_delta = atoi(optarg); break; +- case 'D': option.run_status = GPM_RUN_DEBUG; break; +- case 'g': opt_glidepoint_tap=atoi(optarg); break; +- case 'h': exit(usage(NULL)); +- case 'i': opt_time=atoi(optarg); break; +- case 'k': check_kill(); break; +- case 'l': opt_lut = optarg; break; +- case 'm': add_mouse(GPM_ADD_DEVICE,optarg); +- opt_dev = optarg; break; /* GO AWAY!*/ +- case 'M': opt_double++; option.repeater++; +- if (option.repeater_type == 0) +- option.repeater_type = "msc"; +- which_mouse=mouse_table+2; break; +- case 'o': add_mouse(GPM_ADD_OPTIONS,optarg); +- gpm_report(GPM_PR_DEBUG,"options: %s",optarg); +- opt_options = optarg; break; /* GO AWAY */ +- case 'p': opt_ptrdrag = 0; break; +- case 'r': +- /* being called responsiveness, I must take the inverse */ +- opt_scale=atoi(optarg); +- if(!opt_scale || opt_scale > 100) opt_scale=100; /* the maximum */ +- else opt_scale=100/opt_scale; break; +- case 'R': +- option.repeater++; +- if (optarg) option.repeater_type = optarg; +- else option.repeater_type = "msc"; break; +- case 's': opt_sample = atoi(optarg); break; +- case 'S': if (optarg) opt_special = optarg; +- else opt_special=""; break; +- case 't': add_mouse(GPM_ADD_TYPE,optarg); +- opt_type = optarg; break; /* GO AWAY */ +- case 'u': option.autodetect = 1; break; +- case 'T': opt_test++; break; +- case 'v': printf(GPM_MESS_VERSION "\n"); exit(0); +- case '2': opt_three = -1; break; +- case '3': opt_three = 1; break; +- default: exit(usage("commandline")); ++ while ((opt_char = getopt(argc, argv, options)) != -1) { ++ switch (opt_char) { ++ case 'a': if ((opt->accel = atoi(optarg)) < 1) ++ exit(usage("acceleration")); ++ break; ++ case 'A': sel_opts.aged = 1; ++ if (optarg) ++ sel_opts.age_limit = atoi(optarg); ++ break; ++ case 'b': opt->baud = atoi(optarg); ++ break; ++ case 'B': init_button_sequence(opt, optarg); ++ break; ++ case 'd': if ((opt->delta = atoi(optarg)) < 2) ++ exit(usage("delta")); ++ break; ++ case 'D': option.run_status = GPM_RUN_DEBUG; ++ break; ++ case 'g': if (atoi(optarg) > 3) ++ exit(usage("glidepoint tap button")); ++ opt->glidepoint_tap = GPM_B_LEFT >> (atoi(optarg) - 1); ++ break; ++ case 'h': exit(usage(NULL)); ++ case 'i': opt->time = atoi(optarg); ++ break; ++ case 'k': kill_gpm(); ++ break; ++ case 'l': console.charset = optarg; ++ break; ++ case 'm': mouse->device = optarg; ++ break; ++ case 'M': validate_mouse(mouse, mouse_no); ++ mouse = add_mouse(); ++ opt = &mouse->options; ++ mouse_no++; ++ if (!repeater.type && !repeater.raw) ++ repeater.type = find_mouse_by_name(DEF_REP_TYPE); ++ break; ++ case 'o': gpm_report(GPM_PR_DEBUG,"options: %s", optarg); ++ opt->text = optarg; ++ break; ++ case 'p': sel_opts.ptrdrag = 0; ++ break; ++ case 'r': /* being called responsiveness, I must take the inverse */ ++ tmp = atoi(optarg); ++ if (!tmp || tmp > 100) tmp = 1; ++ opt->scalex = 100 / tmp; ++ break; ++ case 'R': validate_repeater((optarg) ? optarg : DEF_REP_TYPE); ++ break; ++ case 's': opt->sample = atoi(optarg); ++ break; ++ case 'S': if (optarg) opt_special = optarg; ++ else opt_special=""; ++ break; ++ case 't': mouse->type = find_mouse_by_name(optarg); ++ if (!mouse->type) ++ exit(M_listTypes()); ++ break; ++ case 'u': option.autodetect = 1; ++ break; ++ case 'v': printf(GPM_MESS_VERSION "\n"); ++ exit(0); ++ case '2': opt->three_button = -1; ++ break; ++ case '3': opt->three_button = 1; ++ break; ++ default: exit(usage("commandline")); + } + } ++ ++ validate_mouse(micelist, mouse_no); + } +diff -urN gpm-1.20.1/src/headers/client.h gpm/src/headers/client.h +--- gpm-1.20.1/src/headers/client.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/client.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,57 @@ ++/* -*-mode:C;tab-width:3-*- ++ * client.h - GPM client handling (server side) ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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. ++ ********/ ++ ++#ifndef __GPM_CLIENT_H ++#define __GPM_CLIENT_H_ ++ ++#ifdef HAVE_LINUX_TTY_H ++#include <linux/tty.h> ++#endif ++ ++#include "headers/gpm.h" ++ ++/* FIXME: still needed ?? */ ++/* How many virtual consoles are managed? */ ++#ifndef MAX_NR_CONSOLES ++# define MAX_NR_CONSOLES 64 /* this is always sure */ ++#endif ++ ++#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ ++ ++struct client_info { ++ Gpm_Connect data; ++ int fd; ++ struct client_info *next; ++}; ++ ++struct Gpm_Event; ++ ++extern struct client_info *cinfo[MAX_VC + 1]; ++ ++int listen_for_clients(void); ++struct client_info *accept_client_connection(int fd); ++void remove_client(struct client_info *ci, int vc); ++void notify_clients_resize(void); ++int do_client(struct client_info *cinfo, struct Gpm_Event *event); ++int process_client_request(struct client_info *ci, int vc, ++ int x, int y, int buttons, int clicks, ++ int three_button_mouse); ++ ++#endif /* __GPM_CLIENT_H_ */ +diff -urN gpm-1.20.1/src/headers/console.h gpm/src/headers/console.h +--- gpm-1.20.1/src/headers/console.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/console.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,42 @@ ++/* -*-mode:C;tab-width:3-*- ++ * console.h - GPM console and selection/paste handling ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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. ++ ********/ ++ ++#ifndef __GPM_CONSOLE_H_ ++#define __GPM_CONSOLE_H_ ++ ++struct gpm_console { ++ char *device; ++ char *charset; ++ int max_x, max_y; ++}; ++ ++extern struct gpm_console console; ++ ++int open_console(int mode); ++char *get_console_name(); ++char *compose_vc_name(int vc); ++int is_text_console(void); ++void wait_text_console(void); ++void refresh_console_size(void); ++int is_console_owner(int vc, uid_t uid); ++int get_console_state(unsigned char *shift_state); ++void console_load_lut(void); ++ ++#endif /* __GPM_CONSOLE_H_ */ +diff -urN gpm-1.20.1/src/headers/gpmInt.h gpm/src/headers/gpmInt.h +--- gpm-1.20.1/src/headers/gpmInt.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/gpmInt.h 2003-10-02 01:22:42.000000000 -0500 +@@ -23,8 +23,7 @@ + #ifndef _GPMINT_INCLUDED + #define _GPMINT_INCLUDED + +-#include <sys/types.h> /* time_t */ /* for whom ???? FIXME */ +- ++#include <sys/time.h> /* timeval */ + #include "gpm.h" + + #if !defined(__GNUC__) +@@ -35,23 +34,12 @@ + /* timeout for the select() syscall */ + #define SELECT_TIME 86400 /* one day */ + +-#ifdef HAVE_LINUX_TTY_H +-#include <linux/tty.h> +-#endif +- +-/* FIXME: still needed ?? */ +-/* How many virtual consoles are managed? */ +-#ifndef MAX_NR_CONSOLES +-# define MAX_NR_CONSOLES 64 /* this is always sure */ +-#endif +- +-#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ +- + /* How many buttons may the mouse have? */ + /* #define MAX_BUTTONS 3 ===> not used, it is hardwired :-( */ + + /* all the default values */ + #define DEF_TYPE "ms" ++#define DEF_REP_TYPE "msc" + #define DEF_DEV NULL /* use the type-related one */ + #define DEF_LUT "-a-zA-Z0-9_./\300-\326\330-\366\370-\377" + #define DEF_SEQUENCE "123" /* how buttons are reordered */ +@@ -62,12 +50,10 @@ + #define DEF_SCALE 10 + #define DEF_TIME 250 /* time interval (ms) for multiple clicks */ + #define DEF_THREE 0 /* have three buttons? */ +-#define DEF_KERNEL 0 /* no kernel module, by default */ + + /* 10 on old computers (<=386), 0 on current machines */ + #define DEF_CLUSTER 0 /* maximum number of clustered events */ + +-#define DEF_TEST 0 + #define DEF_PTRDRAG 1 /* double or triple click */ + #define DEF_GLIDEPOINT_TAP 0 /* tapping emulates no buttons by default */ + +@@ -84,11 +70,6 @@ + #define GPM_DEVFS_CONSOLE "/dev/vc/0" + #define GPM_OLD_CONSOLE "/dev/tty0" + +-/* for adding a mouse; add_mouse */ +-#define GPM_ADD_DEVICE 0 +-#define GPM_ADD_TYPE 1 +-#define GPM_ADD_OPTIONS 2 +- + /*** mouse commands ***/ + + #define GPM_AUX_SEND_ID 0xF2 +@@ -117,126 +98,95 @@ + + /*....................................... Structures */ + ++struct micedev { ++ int fd; ++ int timeout; /* the protocol driver wants to be called ++ after X msec even if there is no new data ++ arrived (-1 to disable/default) */ ++ void *private; /* private data maintained by protocol driver */ ++}; ++ ++struct miceopt { ++ char *sequence; ++ int baud; ++ int sample; ++ int delta; ++ int accel; ++ int scalex, scaley; ++ int time; ++ int cluster; ++ int three_button; ++ int glidepoint_tap; ++ int absolute; /* device reports absolute coordinates - initially copied ++ from Gpm_Type; allows same protocol (type) control devices ++ in absolute and relative mode */ ++ char *text; /* extra textual options supplied via '-o text' */ ++}; ++ + /* + * and this is the entry in the mouse-type table + */ + typedef struct Gpm_Type { +- char *name; +- char *desc; /* a descriptive line */ +- char *synonyms; /* extra names (the XFree name etc) as a list */ +- int (*fun)(Gpm_Event *state, unsigned char *data); +- struct Gpm_Type *(*init)(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv); +- unsigned short flags; +- unsigned char proto[4]; +- int packetlen; +- int howmany; /* how many bytes to read at a time */ +- int getextra; /* does it get an extra byte? (only mouseman) */ +- int absolute; /* flag indicating absolute pointing device */ ++ char *name; ++ char *desc; /* a descriptive line */ ++ char *synonyms; /* extra names (the XFree name etc) as a list */ ++ int (*fun)(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state); ++ int (*init)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type); ++ unsigned short flags; ++ unsigned char proto[4]; ++ int packetlen; ++ int howmany; /* how many bytes to read at a time */ ++ int getextra; /* does it get an extra byte? (only mouseman) */ ++ int absolute; /* flag indicating absolute pointing device */ + +- int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */ ++ int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */ + /* itz Mon Jan 11 23:27:54 PST 1999 */ + } Gpm_Type; + + #define GPM_EXTRA_MAGIC_1 0xAA + #define GPM_EXTRA_MAGIC_2 0x55 + +-typedef struct Gpm_Cinfo { +- Gpm_Connect data; +- int fd; +- struct Gpm_Cinfo *next; +-} Gpm_Cinfo; +- +- +-/*....................................... Global variables */ +- +-/* this structure is used to hide the dual-mouse stuff */ +- +-struct mouse_features { +- char *opt_type, *opt_dev, *opt_sequence; +- int opt_baud,opt_sample,opt_delta, opt_accel, opt_scale, opt_scaley; +- int opt_time, opt_cluster, opt_three, opt_glidepoint_tap; +- char *opt_options; /* extra textual configuration */ +- Gpm_Type *m_type; +- int fd; +-}; +- +-extern struct mouse_features mouse_table[3], *which_mouse; /*the current one*/ +- +-// looks unused; delete +-//typedef struct Opt_struct_type {int a,B,d,i,p,r,V,A;} Opt_struct_type; +- +-/* this is not very clean, actually, but it works fine */ +-#define opt_type (which_mouse->opt_type) +-#define opt_dev (which_mouse->opt_dev) +-#define opt_sequence (which_mouse->opt_sequence) +-#define opt_baud (which_mouse->opt_baud) +-#define opt_sample (which_mouse->opt_sample) +-#define opt_delta (which_mouse->opt_delta) +-#define opt_accel (which_mouse->opt_accel) +-#define opt_scale (which_mouse->opt_scale) +-#define opt_scaley (which_mouse->opt_scaley) +-#define opt_time (which_mouse->opt_time) +-#define opt_cluster (which_mouse->opt_cluster) +-#define opt_three (which_mouse->opt_three) +-#define opt_glidepoint_tap (which_mouse->opt_glidepoint_tap) +-#define opt_options (which_mouse->opt_options) +- +-#define m_type (which_mouse->m_type) +- +-/* the other variables */ +- +-extern char *opt_lut; +-extern int opt_test, opt_ptrdrag; +-extern int opt_kill; +-extern int opt_kernel, opt_explicittype; +-extern int opt_aged; +-extern time_t opt_age_limit; + extern char *opt_special; +-extern int opt_rawrep; +-extern int fifofd; +-extern int opt_double; +- +-extern Gpm_Type *repeated_type; + extern Gpm_Type mice[]; /* where the hell are the descriptions...*/ +-extern struct winsize win; +-extern int maxx, maxy; +-extern Gpm_Cinfo *cinfo[MAX_VC+1]; + + /* new variables <CLEAN> */ + + /* structure prototypes */ ++struct repeater { ++ int fd; ++ int raw; ++ Gpm_Type *type; ++}; + + /* contains all mice */ + struct micetab { + struct micetab *next; +- char *device; +- char *protocol; +- char *options; ++ struct micedev dev; ++ struct miceopt options; ++ Gpm_Type *type; ++ char *device; ++ int buttons; /* mouse's button state from last read */ ++ struct timeval timestamp; /* last time mouse data arrived */ + }; + + struct options { + int autodetect; /* -u [aUtodetect..'A' is not available] */ +- int no_mice; /* number of mice */ +- int repeater; /* repeat data */ +- char *repeater_type; /* repeat data as which mouse type */ + int run_status; /* startup/daemon/debug */ + char *progname; /* hopefully gpm ;) */ +- struct micetab *micelist; /* mice and their options */ +- char *consolename; /* /dev/tty0 || /dev/vc/0 */ + }; + + /* global variables */ + struct options option; /* one should be enough for us */ ++extern struct repeater repeater; /* again, only one */ ++extern struct micetab *micelist; + + /* new variables </CLEAN> */ + +- + /*....................................... Prototypes */ + /* server_tools.c */ +-void add_mouse (int type, char *value); +-int init_mice (struct micetab *micelist); +-int reset_mice(struct micetab *micelist); ++struct micetab *add_mouse(void); ++void init_mice(void); ++void cleanup_mice(void); + + /* startup.c */ + void startup(int argc, char **argv); +@@ -246,17 +196,15 @@ + + /* gpn.c */ + void cmdline(int argc, char **argv); +-int giveInfo(int request, int fd); +-int loadlut(char *charset); +-int usage(char *whofailed); +-struct Gpm_Type *find_mouse_by_name(char *name); ++int giveInfo(int request, int fd); ++int usage(char *whofailed); + void check_uniqueness(void); +-void check_kill(void); +- ++void kill_gpm(void); + + /* mice.c */ + extern int M_listTypes(void); +- /* special.c */ ++ ++ /* special.c */ + int processSpecial(Gpm_Event *event); + int twiddler_key(unsigned long message); + int twiddler_key_init(void); +diff -urN gpm-1.20.1/src/headers/input-defines.h gpm/src/headers/input-defines.h +--- gpm-1.20.1/src/headers/input-defines.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/input-defines.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,81 @@ ++/* ++ * input-defines.h - complements <linux/input.h> adding missing bits ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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. ++ ********/ ++#ifndef __GPM_INPUT_DEFINES_H ++#define __GPM_INPUT_DEFINES_H ++ ++#include <linux/input.h> ++#include "headers/config.h" ++ ++#ifndef ABS_TOOL_WIDTH ++#define ABS_TOOL_WIDTH 0x1c ++#endif ++ ++#ifndef BTN_TOOL_FINGER ++#define BTN_TOOL_FINGER 0x145 ++#endif ++ ++#ifndef BTN_TOUCH ++#define BTN_TOUCH 0x14a ++#endif ++ ++#ifndef BTN_TOOL_DOUBLETAP ++#define BTN_TOOL_DOUBLETAP 0x14d ++#endif ++ ++#ifndef BTN_TOOL_TRIPLETAP ++#define BTN_TOOL_TRIPLETAP 0x14e ++#endif ++ ++#ifndef MSC_GESTURE ++#define MSC_GESTURE 2 ++#endif ++ ++#ifndef EV_SYNC ++#define EV_SYNC 0 ++#endif ++ ++#ifndef SYN_REPORT ++#define SYN_REPORT 0 ++#endif ++ ++#ifndef PSMOUSE_SYNAPTICS ++#define PSMOUSE_SYNAPTICS 7 ++#endif ++ ++#ifndef HAVE_INPUT_ID ++struct input_id { ++ unsigned short bustype; ++ unsigned short vendor; ++ unsigned short product; ++ unsigned short version; ++}; ++#endif ++ ++#ifndef HAVE_INPUT_ABSINFO ++struct input_absinfo { ++ int value; ++ int minimum; ++ int maximum; ++ int fuzz; ++ int flat; ++}; ++#endif ++ ++#endif +diff -urN gpm-1.20.1/src/headers/message.h gpm/src/headers/message.h +--- gpm-1.20.1/src/headers/message.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/message.h 2003-10-02 01:22:42.000000000 -0500 +@@ -96,7 +96,6 @@ + " -S [commands] enable special commands (see man page)\n" \ + " -t mouse-type sets mouse type (default '%s')\n" \ + " Use a non-existent type (e.g. \"help\") to get a list\n" \ +- " -T test: read mouse, no clients\n" \ + " -v print version and exit\n" \ + " -V verbosity increase number of logged messages\n\n\n" \ + " Examples:\n\n" \ +@@ -168,7 +167,8 @@ + #define GPM_MESS_SELECT_TIMES "selected %i times" + + #define GPM_MESS_OPTION_NO_ARG "%s: Option \"%s\" takes no argument: ignoring \"%s\"" +-#define GPM_MESS_INVALID_ARG "%s: Invalid arg. \"%s\" to \"%s\"" ++#define GPM_MESS_INVALID_ARG "%s: Invalid argument \"%s\" for option \"%s\"" ++#define GPM_MESS_MISSING_ARG "%s: Option \"%s\" requires an argument" + #define GPM_MESS_CONT_WITH_ERR "%s: Continuing despite errors in option parsing" + #define GPM_MESS_TOO_MANY_OPTS "%s: Too many options for \"-t %s\"" + +@@ -196,7 +196,7 @@ + + /* warnings */ + #define GPM_MESS_REQUEST_ON "Request on vc %i > %i" +-#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %s" ++#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %d" + #define GPM_MESS_ZERO_SCREEN_DIM "zero screen dimension, assuming 80x25" + #define GPM_MESS_STRANGE_DATA "Data on strange file descriptor %d" + #define GPM_MESS_RESIZING "%s pid %i is resizing :-)" +diff -urN gpm-1.20.1/src/headers/optparser.h gpm/src/headers/optparser.h +--- gpm-1.20.1/src/headers/optparser.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/optparser.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,50 @@ ++/* ++ * optparser.h - GPM mouse options parser ++ * ++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net> ++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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. ++ ********/ ++#ifndef __GPM_OPTPARSER_H_ ++#define __GPM_OPTPARSER_H_ ++ ++enum option_type { ++ OPT_BOOL = 1, ++ OPT_INT, /* "%i" */ ++ OPT_DEC, /* "%d" */ ++ OPT_STRING, ++ /* other types must be added */ ++ OPT_END = 0 ++}; ++ ++struct option_helper { ++ char *name; ++ enum option_type type; ++ union u { ++ int *iptr; /* used for int and bool arguments */ ++ char **sptr; /* used for string arguments, by strdup()ing the value */ ++ } u; ++ int value; /* used for boolean arguments */ ++ int present; ++}; ++ ++int parse_options(const char *who, const char *opt, char sep, struct option_helper *info); ++int check_no_options(const char *proto, const char *opts, char sep); ++int is_option_present(struct option_helper *info, const char *name); ++#endif +diff -urN gpm-1.20.1/src/headers/selection.h gpm/src/headers/selection.h +--- gpm-1.20.1/src/headers/selection.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/selection.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,37 @@ ++/* ++ * console.h - GPM selection/paste handling ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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. ++ ********/ ++ ++#ifndef __GPM_SELECTION_H_ ++#define __GPM_SELECTION_H_ ++ ++struct sel_options { ++ int aged; ++ int age_limit; ++ int ptrdrag; ++}; ++ ++struct Gpm_Event; ++ ++extern struct sel_options sel_opts; /* only one exists */ ++ ++void do_selection(struct Gpm_Event *event, int three_button_mode); ++void selection_disable_paste(void); ++ ++#endif /* __GPM_CONSOLE_H_ */ +diff -urN gpm-1.20.1/src/headers/synaptics.h gpm/src/headers/synaptics.h +--- gpm-1.20.1/src/headers/synaptics.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/synaptics.h 2003-10-02 01:22:42.000000000 -0500 +@@ -62,7 +62,7 @@ + ** + ** Process the touchpad 6/7/8 byte data. + */ +-void syn_process_serial_data (Gpm_Event *state, ++void syn_process_serial_data (int fd, Gpm_Event *state, + unsigned char *data); + + +@@ -72,7 +72,7 @@ + ** + ** Process the touchpad 6 byte data. + */ +-void syn_process_ps2_data (Gpm_Event *state, ++void syn_process_ps2_data (int fd, Gpm_Event *state, + unsigned char *data); + + +diff -urN gpm-1.20.1/src/lib/liblow.c gpm/src/lib/liblow.c +--- gpm-1.20.1/src/lib/liblow.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/lib/liblow.c 2003-10-02 01:22:42.000000000 -0500 +@@ -80,6 +80,8 @@ + int gpm_consolefd=-1; /* used to invoke ioctl() */ + int gpm_morekeys=0; + ++static char *consolename; ++ + int gpm_convert_event(unsigned char *mdata, Gpm_Event *ePtr); + + /*----------------------------------------------------------------------------* +@@ -192,14 +194,13 @@ + char *tty = NULL; + char *term = NULL; + int i; +- extern struct options option; + static int checked_con = 0; + struct sockaddr_un addr; + struct winsize win; + Gpm_Stst *new = NULL; + char* sock_name = 0; + +- option.consolename = NULL; ++ consolename = NULL; + + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); + +@@ -216,7 +217,7 @@ + + /* check whether we know what name the console is: what's with the lib??? */ + if(checked_con == 0) { +- option.consolename = Gpm_get_console(); ++ consolename = Gpm_get_console(); + checked_con++; + } + +@@ -245,10 +246,10 @@ + conn->vc=0; /* default handler */ + if (flag > 0) { /* forced vc number */ + conn->vc=flag; +- if((tty = malloc(strlen(option.consolename)+Gpm_cnt_digits(flag))) == NULL) ++ if((tty = malloc(strlen(consolename)+Gpm_cnt_digits(flag))) == NULL) + gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- memcpy(tty,option.consolename,strlen(option.consolename)-1); +- sprintf(&tty[strlen(option.consolename)-1],"%i",flag); ++ memcpy(tty,consolename,strlen(consolename)-1); ++ sprintf(&tty[strlen(consolename)-1],"%i",flag); + } else { /* use your current vc */ + if (isatty(0)) tty = ttyname(0); /* stdin */ + if (!tty && isatty(1)) tty = ttyname(1); /* stdout */ +@@ -258,13 +259,13 @@ + goto err; + } + /* do we really need this check ? */ +- if(strncmp(tty,option.consolename,strlen(option.consolename)-1) +- || !isdigit(tty[strlen(option.consolename)-1])) { +- gpm_report(GPM_PR_ERR,"strncmp/isdigit/option.consolename failed"); ++ if(strncmp(tty,consolename,strlen(consolename)-1) ++ || !isdigit(tty[strlen(consolename)-1])) { ++ gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed"); + goto err; + } + +- conn->vc=atoi(&tty[strlen(option.consolename)-1]); ++ conn->vc=atoi(&tty[strlen(consolename)-1]); + } + + if (gpm_consolefd == -1) +@@ -272,6 +273,8 @@ + gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,tty,strerror(errno)); + goto err; + } ++ ++ if (flag > 0) free(tty); + } + + new->info=*conn; +diff -urN gpm-1.20.1/src/lib/tools.c gpm/src/lib/tools.c +--- gpm-1.20.1/src/lib/tools.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/lib/tools.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,93 @@ ++/* ++ * tools.c - tools which are needed by client and server ++ * ++ * Copyright (c) 2001 Nico Schottelius <nico@schottelius.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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> /* NULL */ ++#include <string.h> ++#include <stdlib.h> ++#include <sys/types.h> /* these three are */ ++#include <sys/stat.h> /* needed for */ ++#include <unistd.h> /* stat() */ ++ ++#include "headers/gpmInt.h" /* only used for some defines */ ++#include "headers/message.h" ++ ++/***************************************************************************** ++ * check, whether devfs is used or not. ++ * See /usr/src/linux/Documentation/filesystems/devfs/ for details. ++ * Returns: the name of the console (/dev/tty0 or /dev/vc/0) ++ *****************************************************************************/ ++char *Gpm_get_console( void ) ++{ ++ ++ char *back = NULL, *tmp = NULL; ++ struct stat buf; ++ ++ /* first try the devfs device, because in the next time this will be ++ * the preferred one. If that fails, take the old console */ ++ ++ /* Check for open new console */ ++ if (stat(GPM_DEVFS_CONSOLE,&buf) == 0) ++ tmp = GPM_DEVFS_CONSOLE; ++ ++ /* Failed, try OLD console */ ++ else if(stat(GPM_OLD_CONSOLE,&buf) == 0) ++ tmp = GPM_OLD_CONSOLE; ++ ++ if(tmp != NULL) ++ if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL) ++ strcpy(back,tmp); ++ ++ return(back); ++} ++ ++/* what's the english name for potenz ? */ ++int Gpm_x_high_y(int base, int pot_y) ++{ ++ int val = 1; ++ ++ if(pot_y == 0) val = 1; ++ else if(pot_y < 0) val = 0; /* ugly hack ;) */ ++ else while(pot_y > 0) { ++ val = val * base; ++ pot_y--; ++ } ++ return val; ++} ++ ++/* return characters needed to display int */ ++int Gpm_cnt_digits(int number) ++{ ++ /* 0-9 = 1 10^0 <-> (10^1)-1 ++ * 10 - 99 = 2 10^1 <-> (10^2)-1 ++ * 100 - 999 = 3 10^2 <-> (10^3)-1 ++ * 1000 - 9999 = 4 ... */ ++ ++ int ret = 0, num = 0; ++ ++ /* non negative, please */ ++ if(number < 0) number *= -1; ++ else if(number == 0) ret = 1; ++ else while(number > num) { ++ ret++; ++ num = (Gpm_x_high_y(10,ret) - 1); ++ } ++ ++ return(ret); ++} +diff -urN gpm-1.20.1/src/Makefile.in gpm/src/Makefile.in +--- gpm-1.20.1/src/Makefile.in 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/Makefile.in 2003-10-02 01:22:42.000000000 -0500 +@@ -12,15 +12,16 @@ + include $(top_builddir)/Makefile.include + + # Main portion: regular build rules ++MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@ + +-GSRC = main.c gpm.c gpn.c mice.c special.c twiddler.c synaptics.c \ +- startup.c server_tools.c ++GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \ ++ selection.c client.c optparser.c $(MICESRC) + +-GOBJ = $(GSRC:.c=.o) report.o tools.o ++GOBJ = $(GSRC:.c=.o) report.o + +-LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c ++LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c lib/tools.c + +-LOBJ = $(LSRC:.c=.o) tools.o @CURSES_OBJS@ ++LOBJ = $(LSRC:.c=.o) @CURSES_OBJS@ + + PICS = $(LOBJ:.o=.lo) + +@@ -143,7 +144,7 @@ + $(CC) -I. @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@.o $< + $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $@.o @LIBS@ $(LIBS) lib/libgpm.a + +-prog/mouse-test: mice.o twiddler.o synaptics.o ++prog/mouse-test: $(MICESRC:.c=.o) console.o optparser.o + + $(PROG): lib/libgpm.so lib/@SHLIB@ lib/libgpm.a + +diff -urN gpm-1.20.1/src/mice.c gpm/src/mice.c +--- gpm-1.20.1/src/mice.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/mice.c 2003-10-02 01:22:42.000000000 -0500 +@@ -46,15 +46,11 @@ + #include <string.h> + #include <stdlib.h> + #include <termios.h> +-#include <fcntl.h> +-#include <termios.h> + #include <errno.h> + #include <unistd.h> + #include <ctype.h> + +-#include <sys/types.h> + #include <sys/stat.h> /* stat() */ +-#include <sys/time.h> /* select() */ + + #include <linux/kdev_t.h> /* MAJOR */ + #include <linux/keyboard.h> +@@ -72,135 +68,40 @@ + + + #include "headers/gpmInt.h" ++#include "headers/console.h" + #include "headers/twiddler.h" + #include "headers/synaptics.h" + #include "headers/message.h" +- +-/*========================================================================*/ +-/* Parsing argv: helper dats struct function (should they get elsewhere?) */ +-/*========================================================================*/ +- +-enum argv_type { +- ARGV_BOOL = 1, +- ARGV_INT, /* "%i" */ +- ARGV_DEC, /* "%d" */ +- ARGV_STRING, +- /* other types must be added */ +- ARGV_END = 0 +-}; +- +-typedef struct argv_helper { +- char *name; +- enum argv_type type; +- union u { +- int *iptr; /* used for int and bool arguments */ +- char **sptr; /* used for string arguments, by strdup()ing the value */ +- } u; +- int value; /* used for boolean arguments */ +-} argv_helper; +- +-static int parse_argv(argv_helper *info, int argc, char **argv) +-{ +- int i, j = 0, errors = 0; +- long l; +- argv_helper *p; +- char *s, *t; +- int base = 0; /* for strtol */ +- +- +- for (i=1; i<argc; i++) { +- for (p = info; p->type != ARGV_END; p++) { +- j = strlen(p->name); +- if (strncmp(p->name, argv[i], j)) +- continue; +- if (isalnum(argv[i][j])) +- continue; +- break; +- } +- if (p->type == ARGV_END) { /* not found */ +- fprintf(stderr, "%s: Uknown option \"%s\" for pointer \"%s\"\n", +- option.progname, argv[i], argv[0]); +- errors++; +- continue; +- } +- /* Found. Look for trailing stuff, if any */ +- s = argv[i]+j; +- while (*s && isspace(*s)) s++; /* skip spaces */ +- if (*s == '=') s++; /* skip equal */ +- while (*s && isspace(*s)) s++; /* skip other spaces */ +- +- /* Now parse what s is */ +- switch(p->type) { +- case ARGV_BOOL: +- if (*s) { +- gpm_report(GPM_PR_ERR,GPM_MESS_OPTION_NO_ARG,option.progname,p->name,s); +- errors++; +- } +- *(p->u.iptr) = p->value; +- break; +- +- case ARGV_DEC: +- base = 10; /* and fall through */ +- case ARGV_INT: +- l = strtol(s, &t, base); +- if (*t) { +- gpm_report(GPM_PR_ERR,GPM_MESS_INVALID_ARG, option.progname, s, p->name); +- errors++; +- break; +- } +- *(p->u.iptr) = (int)l; +- break; +- +- case ARGV_STRING: +- *(p->u.sptr) = strdup(s); +- break; +- +- case ARGV_END: /* let's please "-Wall" */ +- break; +- } +- } /* for i in argc */ +- if (errors) gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname); +- return errors; +-} +- +-/*========================================================================*/ +-/* Provide a common error engine by parsing with an empty option-set */ +-/*========================================================================*/ +-static volatile int check_no_argv(int argc, char **argv) +-{ +- static argv_helper optioninfo[] = { +- {"", ARGV_END} +- }; +- return parse_argv(optioninfo, argc, argv); +-} ++#include "headers/optparser.h" + + /*========================================================================*/ + /* Parse the "old" -o options */ + /*========================================================================*/ +-static int option_modem_lines(int fd, int argc, char **argv) ++static int option_modem_lines(int fd, char *proto, char *opts) + { +- static unsigned int err, lines, reallines; ++ static unsigned int lines, reallines; ++ static struct option_helper optioninfo[] = { ++ {"dtr", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR}, ++ {"rts", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_RTS}, ++ {"both", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS}, ++ {"", OPT_END} ++ }; + +- static argv_helper optioninfo[] = { +- {"dtr", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR}, +- {"rts", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_RTS}, +- {"both", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS}, +- {"", ARGV_END} +- }; ++ int rslt = parse_options(proto, opts, ',', optioninfo); + +- if (argc<2) return 0; +- if (argc > 2) { +- gpm_report(GPM_PR_ERR,GPM_MESS_TOO_MANY_OPTS,option.progname, argv[0]); ++ if (rslt < 0) { ++ errno = EINVAL; ++ return -1; ++ } else if (rslt > 1) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_TOO_MANY_OPTS, option.progname, proto); + errno = EINVAL; /* used by gpm_oops(), if the caller reports failure */ + return -1; ++ } else if (rslt == 1) { ++ /* ok, move the lines */ ++ ioctl(fd, TIOCMGET, &reallines); ++ reallines &= ~lines; ++ ioctl(fd, TIOCMSET, &reallines); + } +- err = parse_argv(optioninfo, argc, argv); +- if(err) return 0; /* a message has been printed, but go on as good */ +- +- /* ok, move the lines */ +- ioctl(fd, TIOCMGET, &reallines); +- reallines &= ~lines; +- ioctl(fd, TIOCMSET, &reallines); + return 0; + } + +@@ -233,28 +134,12 @@ + /*========================================================================*/ + + #ifdef HAVE_LINUX_INPUT_H +-static int M_evdev (Gpm_Event * state, unsigned char *data) +-{ +- struct input_event thisevent; +- (void) memcpy (&thisevent, data, sizeof (struct input_event)); +- if (thisevent.type == EV_REL) { +- if (thisevent.code == REL_X) +- state->dx = (signed char) thisevent.value; +- else if (thisevent.code == REL_Y) +- state->dy = (signed char) thisevent.value; +- } else if (thisevent.type == EV_KEY) { +- switch(thisevent.code) { +- case BTN_LEFT: state->buttons ^= GPM_B_LEFT; break; +- case BTN_MIDDLE: state->buttons ^= GPM_B_MIDDLE; break; +- case BTN_RIGHT: state->buttons ^= GPM_B_RIGHT; break; +- case BTN_SIDE: state->buttons ^= GPM_B_MIDDLE; break; +- } +- } +- return 0; +-} ++/* defined in evdev.c */ ++extern int M_evdev(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state); ++extern int I_evdev(struct micedev *dev, struct miceopt *opt, Gpm_Type *type); + #endif /* HAVE_LINUX_INPUT_H */ + +-static int M_ms(Gpm_Event *state, unsigned char *data) ++static int M_ms(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * some devices report a change of middle-button state by +@@ -273,7 +158,7 @@ + return 0; + } + +-static int M_ms_plus(Gpm_Event *state, unsigned char *data) ++static int M_ms_plus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static unsigned char prev=0; + +@@ -293,7 +178,7 @@ + return 0; + } + +-static int M_ms_plus_lr(Gpm_Event *state, unsigned char *data) ++static int M_ms_plus_lr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * Same as M_ms_plus but with an addition by Edmund GRIMLEY EVANS +@@ -329,19 +214,19 @@ + int SUMMA_BORDER=100; + int summamaxx,summamaxy; + char summaid=-1; +-static int M_summa(Gpm_Event *state, unsigned char *data) ++static int M_summa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y; + + x = ((data[2]<<7) | data[1])-SUMMA_BORDER; + if (x<0) x=0; + if (x>summamaxx) x=summamaxx; +- state->x = (x * win.ws_col / summamaxx); ++ state->x = (x * console.max_x / summamaxx); + realposx = (x * 16383 / summamaxx); + + y = ((data[4]<<7) | data[3])-SUMMA_BORDER; + if (y<0) y=0; if (y>summamaxy) y=summamaxy; +- state->y = 1 + y * (win.ws_row-1)/summamaxy; ++ state->y = 1 + y * (console.max_y-1)/summamaxy; + realposy = y * 16383 / summamaxy; + + state->buttons= +@@ -396,7 +281,7 @@ + + + /* 'Genitizer' (kw@dtek.chalmers.se 11/12/97) */ +-static int M_geni(Gpm_Event *state, unsigned char *data) ++static int M_geni(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* this is a little confusing. If we use the stylus, we + * have three buttons (tip, lower, upper), and if +@@ -419,7 +304,7 @@ + + + /* m$ 'Intellimouse' (steveb 20/7/97) */ +-static int M_ms3(Gpm_Event *state, unsigned char *data) ++static int M_ms3(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->wdx = state->wdy = 0; + state->buttons= ((data[0] & 0x20) >> 3) /* left */ +@@ -470,7 +355,7 @@ + } + + /* M_brw is a variant of m$ 'Intellimouse' the middle button is different */ +-static int M_brw(Gpm_Event *state, unsigned char *data) ++static int M_brw(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= ((data[0] & 0x20) >> 3) /* left */ + | ((data[3] & 0x20) >> 4) /* middle */ +@@ -491,7 +376,7 @@ + return 0; + } + +-static int M_bare(Gpm_Event *state, unsigned char *data) ++static int M_bare(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* a bare ms protocol */ + state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); +@@ -500,7 +385,7 @@ + return 0; + } + +-static int M_sun(Gpm_Event *state, unsigned char *data) ++static int M_sun(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]); +@@ -508,7 +393,7 @@ + return 0; + } + +-static int M_msc(Gpm_Event *state, unsigned char *data) ++static int M_msc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]) + (signed char)(data[3]); +@@ -558,7 +443,7 @@ + + } + +-static int M_logimsc(Gpm_Event *state, unsigned char *data) /* same as msc */ ++static int M_logimsc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]) + (signed char)(data[3]); +@@ -566,7 +451,7 @@ + return 0; + } + +-static int M_mm(Gpm_Event *state, unsigned char *data) ++static int M_mm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= data[0] & 0x07; + state->dx= (data[0] & 0x10) ? data[1] : - data[1]; +@@ -574,7 +459,7 @@ + return 0; + } + +-static int M_logi(Gpm_Event *state, unsigned char *data) /* equal to mm */ ++static int M_logi(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= data[0] & 0x07; + state->dx= (data[0] & 0x10) ? data[1] : - data[1]; +@@ -582,7 +467,7 @@ + return 0; + } + +-static int M_bm(Gpm_Event *state, unsigned char *data) /* equal to sun */ ++static int M_bm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)data[1]; +@@ -590,7 +475,7 @@ + return 0; + } + +-static int M_ps2(Gpm_Event *state, unsigned char *data) ++static int M_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int tap_active=0; /* there exist glidepoint ps2 mice */ + +@@ -599,8 +484,8 @@ + !!(data[0]&2) * GPM_B_RIGHT + + !!(data[0]&4) * GPM_B_MIDDLE; + +- if (data[0]==0 && opt_glidepoint_tap) /* by default this is false */ +- state->buttons = tap_active = opt_glidepoint_tap; ++ if (data[0]==0 && opt->glidepoint_tap) /* by default this is false */ ++ state->buttons = tap_active = opt->glidepoint_tap; + else if (tap_active) { + if (data[0]==8) + state->buttons = tap_active = 0; +@@ -623,10 +508,11 @@ + state->dy= -((data[0] & 0x20) ? data[2]-256 : data[2]); + else + state->dy = 0; ++ + return 0; + } + +-static int M_imps2(Gpm_Event *state, unsigned char *data) ++static int M_imps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + + static int tap_active=0; /* there exist glidepoint ps2 mice */ +@@ -636,8 +522,8 @@ + state->buttons= ((data[0] & 1) << 2) /* left */ + | ((data[0] & 6) >> 1); /* middle and right */ + +- if (data[0]==0 && opt_glidepoint_tap) // by default this is false +- state->buttons = tap_active = opt_glidepoint_tap; ++ if (data[0]==0 && opt->glidepoint_tap) // by default this is false ++ state->buttons = tap_active = opt->glidepoint_tap; + else if (tap_active) { + if (data[0]==8) + state->buttons = tap_active = 0; +@@ -667,7 +553,7 @@ + + } + +-static int M_netmouse(Gpm_Event *state, unsigned char *data) ++static int M_netmouse(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* Avoid these beasts if you can. They connect to normal PS/2 port, + * but their protocol is one byte longer... So if you have notebook +@@ -706,47 +592,45 @@ + } + + /* standard ps2 */ +-static Gpm_Type *I_ps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++int I_ps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, }; +- write (fd, s, sizeof (s)); ++ write(dev->fd, s, sizeof (s)); + usleep (30000); +- tcflush (fd, TCIFLUSH); +- return type; ++ tcflush (dev->fd, TCIFLUSH); ++ return 0; + } + +-static Gpm_Type *I_netmouse(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_netmouse(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + unsigned char magic[6] = { 0xe8, 0x03, 0xe6, 0xe6, 0xe6, 0xe9 }; + int i; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + for (i=0; i<6; i++) { + unsigned char c = 0; +- write( fd, magic+i, 1 ); +- read( fd, &c, 1 ); ++ write(dev->fd, magic+i, 1 ); ++ read(dev->fd, &c, 1 ); + if (c != 0xfa) { + gpm_report(GPM_PR_ERR,GPM_MESS_NETM_NO_ACK,c); +- return NULL; ++ return -1; + } + } + { + unsigned char rep[3] = { 0, 0, 0 }; +- read( fd, rep, 1 ); +- read( fd, rep+1, 1 ); +- read( fd, rep+2, 1 ); ++ read( dev->fd, rep, 1 ); ++ read( dev->fd, rep+1, 1 ); ++ read( dev->fd, rep+2, 1 ); + if (rep[0] || (rep[1] != 0x33) || (rep[2] != 0x55)) { + gpm_report(GPM_PR_ERR,GPM_MESS_NETM_INV_MAGIC, rep[0], rep[1], rep[2]); +- return NULL; ++ return -1; + } + } +- return type; ++ return 0; + } + + #define GPM_B_BOTH (GPM_B_LEFT|GPM_B_RIGHT) +-static int M_mman(Gpm_Event *state, unsigned char *data) ++static int M_mman(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * the damned MouseMan has 3/4 bytes packets. The extra byte +@@ -784,7 +668,7 @@ + mytype->getextra=1; + } else { + if (b & 0x2) prev |= GPM_B_MIDDLE; +- if (b & 0x1) prev |= opt_glidepoint_tap; ++ if (b & 0x1) prev |= opt->glidepoint_tap; + } + } + state->buttons=prev; +@@ -828,7 +712,7 @@ + + #define IsA(m) ((WacomModell==(-1))? 0:!strcmp(#m,wcmodell[WacomModell].name)) + +-static int M_wacom(Gpm_Event *state, unsigned char *data) ++static int M_wacom(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int ox=-1, oy; + int x, y; +@@ -878,8 +762,8 @@ + if (WacomAbsoluteWanted) { /* Absolute Mode */ + if (x>wmaxx) x=wmaxx; if (x<0) x=0; + if (y>wmaxy) y=wmaxy; if (y<0) y=0; +- state->x = (x * win.ws_col / wmaxx); +- state->y = (y * win.ws_row / wmaxy); ++ state->x = (x * console.max_x / wmaxx); ++ state->y = (y * console.max_y / wmaxy); + + realposx = (x / wmaxx); /* this two lines come from the summa driver. */ + realposy = (y / wmaxy); /* they seem to be buggy (always give zero). */ +@@ -889,8 +773,8 @@ + if( abs(x-ox)>(wmaxx/wcmodell[WacomModell].treshold) + || abs(y-oy)>(wmaxy/wcmodell[WacomModell].treshold) ) ox=x; oy=y; + +- state->dx= (x-ox) / (wmaxx / win.ws_col / wcmodell[WacomModell].treshold); +- state->dy= (y-oy) / (wmaxy / win.ws_row / wcmodell[WacomModell].treshold); ++ state->dx= (x-ox) / (wmaxx / console.max_x / wcmodell[WacomModell].treshold); ++ state->dy= (y-oy) / (wmaxy / console.max_y / wcmodell[WacomModell].treshold); + } + + ox=x; oy=y; +@@ -918,7 +802,7 @@ + #define CAL_Y_MAX 0xF40 + #define CAL_Y_SIZE (CAL_Y_MAX - CAL_Y_MIN) + +-static int M_calus(Gpm_Event *state, unsigned char *data) ++static int M_calus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y; + +@@ -932,12 +816,12 @@ + state->dx = 0; state->dy = 0; + + state->x = x < CAL_X_MIN ? 0 +- : x > CAL_X_MAX ? win.ws_col+1 +- : (long)(x-CAL_X_MIN) * (long)(win.ws_col-1) / CAL_X_SIZE+2; ++ : x > CAL_X_MAX ? console.max_x+1 ++ : (long)(x-CAL_X_MIN) * (long)(console.max_x-1) / CAL_X_SIZE+2; + +- state->y = y < CAL_Y_MIN ? win.ws_row + 1 ++ state->y = y < CAL_Y_MIN ? console.max_y + 1 + : y > CAL_Y_MAX ? 0 +- : (long)(CAL_Y_MAX-y) * (long)win.ws_row / CAL_Y_SIZE + 1; ++ : (long)(CAL_Y_MAX-y) * (long)console.max_y / CAL_Y_SIZE + 1; + + realposx = x < CAL_X_MIN ? 0 + : x > CAL_X_MAX ? 16384 +@@ -950,7 +834,7 @@ + return 0; + } + +-static int M_calus_rel(Gpm_Event *state, unsigned char *data) ++static int M_calus_rel(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int ox=-1, oy; + int x, y; +@@ -984,7 +868,7 @@ + #define NCR_DELTA_X (NCR_RIGHT_X - NCR_LEFT_X) + #define NCR_DELTA_Y (NCR_TOP_Y - NCR_BOTTOM_Y) + +-static int M_ncr(Gpm_Event *state, unsigned char *data) ++static int M_ncr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x,y; + +@@ -1002,14 +886,14 @@ + state->x = x < NCR_LEFT_X + ? 0 + : x > NCR_RIGHT_X +- ? win.ws_col+1 +- : (long)(x-NCR_LEFT_X) * (long)(win.ws_col-1) / NCR_DELTA_X+2; ++ ? console.max_x+1 ++ : (long)(x-NCR_LEFT_X) * (long)(console.max_x-1) / NCR_DELTA_X+2; + + state->y = y < NCR_BOTTOM_Y +- ? win.ws_row + 1 ++ ? console.max_y + 1 + : y > NCR_TOP_Y + ? 0 +- : (long)(NCR_TOP_Y-y) * (long)win.ws_row / NCR_DELTA_Y + 1; ++ : (long)(NCR_TOP_Y-y) * (long)console.max_y / NCR_DELTA_Y + 1; + + realposx = x < NCR_LEFT_X + ? 0 +@@ -1026,7 +910,7 @@ + return 0; + } + +-static int M_twid(Gpm_Event *state, unsigned char *data) ++static int M_twid(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + unsigned long message=0UL; int i,h,v; + static int lasth, lastv, lastkey, key, lock=0, autorepeat=0; +@@ -1144,7 +1028,7 @@ + #ifdef HAVE_LINUX_JOYSTICK_H + /* Joystick mouse emulation (David Given) */ + +-static int M_js(Gpm_Event *state, unsigned char *data) ++static int M_js(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + struct JS_DATA_TYPE *jdata = (void*)data; + static int centerx = 0; +@@ -1193,21 +1077,21 @@ + #endif /* have joystick.h */ + + /* Synaptics TouchPad mouse emulation (Henry Davies) */ +-static int M_synaptics_serial(Gpm_Event *state, unsigned char *data) ++static int M_synaptics_serial(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { +- syn_process_serial_data (state, data); ++ syn_process_serial_data(dev->fd, state, data); + return 0; + } + + + /* Synaptics TouchPad mouse emulation (Henry Davies) */ +-static int M_synaptics_ps2(Gpm_Event *state, unsigned char *data) ++static int M_synaptics_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { +- syn_process_ps2_data(state, data); ++ syn_process_ps2_data(dev->fd, state, data); + return 0; + } + +-static int M_mtouch(Gpm_Event *state, unsigned char *data) ++static int M_mtouch(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * This is a simple decoder for the MicroTouch touch screen +@@ -1219,8 +1103,8 @@ + static int upx, upy; /* keep track of last finger-up place */ + static struct timeval uptv, tv; /* time of last up, and down events */ + +- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) +- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) ++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF) ++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF) + + #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) + #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +@@ -1245,7 +1129,7 @@ + + if (avgx < 0) { /* press event */ + GET_TIME(tv); +- if (DIF_TIME(uptv, tv) < opt_time) { ++ if (DIF_TIME(uptv, tv) < opt->time) { + /* count as button press placed at finger-up pixel */ + state->buttons = GPM_B_LEFT; + realposx = avgx = upx; state->x = REAL_TO_XCELL(realposx); +@@ -1287,7 +1171,7 @@ + static int gunze_calib[4]; /* x0,y0 x1,y1 (measured at 1/8 and 7/8) */ + static int gunze_debounce = 100; /* milliseconds: ignore shorter taps */ + +-static int M_gunze(Gpm_Event *state, unsigned char *data) ++static int M_gunze(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * This generates button-1 events, by now. +@@ -1300,8 +1184,8 @@ + static struct timeval uptv, tv; /* time of last up, and down events */ + int timediff; + +- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) +- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) ++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF) ++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF) + + #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) + #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +@@ -1350,7 +1234,7 @@ + GET_TIME(tv); + timediff = DIF_TIME(uptv, tv); + released = 0; +- if (timediff > gunze_debounce && timediff < opt_time) { ++ if (timediff > gunze_debounce && timediff < opt->time) { + /* count as button press placed at finger-up pixel */ + dragging = 1; + state->buttons = GPM_B_LEFT; +@@ -1399,7 +1283,7 @@ + /* corresponding correction of the protocol identification */ + /* mask) 2001/07/12 by Maciej W. Rozycki (macro@ds2.pg.gda.pl) */ + +-static int M_vsxxx_aa(Gpm_Event *state, unsigned char *data) ++static int M_vsxxx_aa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + + /* The mouse protocol is as follows: +@@ -1449,16 +1333,16 @@ + /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ + static int wizardpad_width = -1; + static int wizardpad_height = -1; +-static int M_wp(Gpm_Event *state, unsigned char *data) ++static int M_wp(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y, pressure; + + x = ((data[4] & 0x1f) << 12) | ((data[3] & 0x3f) << 6) | (data[2] & 0x3f); +- state->x = x * win.ws_col / (wizardpad_width * 40); ++ state->x = x * console.max_x / (wizardpad_width * 40); + realposx = x * 16383 / (wizardpad_width * 40); + + y = ((data[7] & 0x1f) << 12) | ((data[6] & 0x3f) << 6) | (data[5] & 0x3f); +- state->y = win.ws_row - y * win.ws_row / (wizardpad_height * 40) - 1; ++ state->y = console.max_y - y * console.max_y / (wizardpad_height * 40) - 1; + realposy = 16383 - y * 16383 / (wizardpad_height * 40) - 1; + + pressure = ((data[9] & 0x0f) << 4) | (data[8] & 0x0f); +@@ -1475,11 +1359,9 @@ + /*========================================================================*/ + /* Then, mice should be initialized */ + +-static Gpm_Type* I_empty(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_empty(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- if (check_no_argv(argc, argv)) return NULL; +- return type; ++ return check_no_options(type->name, opt->text, ',') ? 0 : -1; + } + + static int setspeed(int fd,int old,int new,int needtowrite,unsigned short flags) +@@ -1536,28 +1418,27 @@ + {125,"Q"}, + {1E9,"N"}, }; + +-static Gpm_Type* I_serial(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_serial(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int i; unsigned char c; + fd_set set; struct timeval timeout={0,0}; /* used when not debugging */ + + /* accept "-o dtr", "-o rts" and "-o both" */ +- if (option_modem_lines(fd, argc, argv)) return NULL; ++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1; + + #ifndef DEBUG + /* flush any pending input (thanks, Miguel) */ + FD_ZERO(&set); + for(i=0; /* always */ ; i++) { +- FD_SET(fd,&set); +- switch(select(fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){ +- case 1: if (read(fd,&c,1)==0) break; ++ FD_SET(dev->fd,&set); ++ switch(select(dev->fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){ ++ case 1: if (read(dev->fd,&c,1)==0) break; + case -1: continue; + } + break; + } + +- if (type->fun==M_logimsc) write(fd, "QU", 2 ); ++ if (type->fun==M_logimsc) write(dev->fd, "QU", 2 ); + + #if 0 /* Did this ever work? -- I don't know, but should we not remove it, + * if it doesn't work ??? -- Nico */ +@@ -1570,7 +1451,7 @@ + + /* Non mman: change from any available speed to the chosen one */ + for (i=9600; i>=1200; i/=2) +- setspeed(fd, i, opt_baud, (type->fun != M_mman) /* write */, flags); ++ setspeed(dev->fd, i, opt->baud, (type->fun != M_mman) /* write */, type->flags); + + /* + * reset the MouseMan/TrackMan to use the 3/4 byte protocol +@@ -1578,51 +1459,50 @@ + * Changed after 1.14; why not having "I_mman" now? + */ + if (type->fun==M_mman) { +- setspeed(fd, 1200, 1200, 0, flags); /* no write */ +- write(fd, "*X", 2); +- setspeed(fd, 1200, opt_baud, 0, flags); /* no write */ +- return type; ++ setspeed(dev->fd, 1200, 1200, 0, type->flags); /* no write */ ++ write(dev->fd, "*X", 2); ++ setspeed(dev->fd, 1200, opt->baud, 0, type->flags); /* no write */ ++ return 0; + } + + if(type->fun==M_geni) { + gpm_report(GPM_PR_INFO,GPM_MESS_INIT_GENI); +- setspeed(fd, 1200, 9600, 1, flags); /* write */ +- write(fd, ":" ,1); +- write(fd, "E" ,1); /* setup tablet. relative mode, resolution... */ +- write(fd, "@" ,1); /* setup tablet. relative mode, resolution... */ ++ setspeed(dev->fd, 1200, 9600, 1, type->flags); /* write */ ++ write(dev->fd, ":" ,1); ++ write(dev->fd, "E" ,1); /* setup tablet. relative mode, resolution... */ ++ write(dev->fd, "@" ,1); /* setup tablet. relative mode, resolution... */ + } + + if (type->fun==M_synaptics_serial) { + int packet_length; + +- setspeed (fd, 1200, 1200, 1, flags); +- packet_length = syn_serial_init (fd); +- setspeed (fd, 1200, 9600, 1, flags); ++ setspeed (dev->fd, 1200, 1200, 1, type->flags); ++ packet_length = syn_serial_init (dev->fd); ++ setspeed (dev->fd, 1200, 9600, 1, type->flags); + + type->packetlen = packet_length; + type->howmany = packet_length; + } + + if (type->fun==M_vsxxx_aa) { +- setspeed (fd, 4800, 4800, 0, flags); /* no write */ +- write(fd, "R", 1); /* initialize a mouse; without getting an "R" */ ++ setspeed (dev->fd, 4800, 4800, 0, type->flags); /* no write */ ++ write(dev->fd, "R", 1); /* initialize a mouse; without getting an "R" */ + /* a mouse does not send a bytestream */ + } + +- return type; ++ return 0; + } + +-static Gpm_Type* I_logi(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_logi(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int i; + struct stat buf; + int busmouse; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + + /* is this a serial- or a bus- mouse? */ +- if(fstat(fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT); ++ if(fstat(dev->fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT); + i=MAJOR(buf.st_rdev); + + /* I don't know why this is herein, but I remove it. I don't think a +@@ -1635,21 +1515,20 @@ + type->howmany = busmouse ? 3 : 1; + + /* change from any available speed to the chosen one */ +- for (i=9600; i>=1200; i/=2) setspeed(fd, i, opt_baud, 1 /* write */, flags); ++ for (i=9600; i>=1200; i/=2) setspeed(dev->fd, i, opt->baud, 1 /* write */, type->flags); + + /* this stuff is peculiar of logitech mice, also for the serial ones */ +- write(fd, "S", 1); +- setspeed(fd, opt_baud, opt_baud, 1 /* write */, ++ write(dev->fd, "S", 1); ++ setspeed(dev->fd, opt->baud, opt->baud, 1 /* write */, + CS8 |PARENB |PARODD |CREAD |CLOCAL |HUPCL); + + /* configure the sample rate */ +- for (i=0;opt_sample<=sampletab[i].sample;i++) ; +- write(fd,sampletab[i].code,1); +- return type; ++ for (i=0;opt->sample<=sampletab[i].sample;i++) ; ++ write(dev->fd,sampletab[i].code,1); ++ return 0; + } + +-static Gpm_Type *I_wacom(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_wacom(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + /* wacom graphire tablet */ + #define UD_RESETBAUD "\r$" /* reset baud rate to default (wacom V) */ +@@ -1664,19 +1543,19 @@ + { + /* Init Wacom communication; this is modified from xf86Wacom.so module */ + /* Set speed to 19200 */ +- setspeed (fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL); ++ setspeed (dev->fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL); + /* Send Reset Baudrate Command */ +- write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD)); ++ write(dev->fd, UD_RESETBAUD, strlen(UD_RESETBAUD)); + usleep(250000); + /* Send Reset Command */ +- write(fd, UD_RESET, strlen(UD_RESET)); ++ write(dev->fd, UD_RESET, strlen(UD_RESET)); + usleep(75000); + /* Set speed to 9600bps */ +- setspeed (fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL); ++ setspeed (dev->fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL); + /* Send Reset Command */ +- write(fd, UD_RESET, strlen(UD_RESET)); ++ write(dev->fd, UD_RESET, strlen(UD_RESET)); + usleep(250000); +- write(fd, UD_STOP, strlen(UD_STOP)); ++ write(dev->fd, UD_STOP, strlen(UD_STOP)); + usleep(100000); + } + +@@ -1690,7 +1569,7 @@ + struct timeval timeout; + fd_set readfds; + int err; +- FD_ZERO(&readfds); FD_SET(fd, &readfds); ++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds); + timeout.tv_sec = 0; timeout.tv_usec = 200000; + err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); + return((err>0)?1:err); +@@ -1706,11 +1585,11 @@ + * Get Data to buffer until full or timeout. + * Give back 0 for timeout and !0 for buffer full + */ +- if (cmd) write(fd,cmd,strlen(cmd)); ++ if (cmd) write(dev->fd,cmd,strlen(cmd)); + memset(buffer,0,sizeof(buffer)); p=buffer; + err=wait_wacom(); + while (err != -1 && err && (p-buffer)<(sizeof(buffer)-1)) { +- p+= read(fd,p,(sizeof(buffer)-1)-(p-buffer)); ++ p+= read(dev->fd,p,(sizeof(buffer)-1)-(p-buffer)); + err=wait_wacom(); + } + /* return 1 for buffer full */ +@@ -1728,13 +1607,14 @@ + */ + + /* accept boolean options absolute and relative */ +- static argv_helper optioninfo[] = { +- {"absolute", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0}, +- {"relative", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0}, +- {"", ARGV_END} ++ static struct option_helper optioninfo[] = { ++ {"absolute", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0}, ++ {"relative", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0}, ++ {"", OPT_END} + }; +- parse_argv(optioninfo, argc, argv); +- type->absolute = WacomAbsoluteWanted; ++ ++ parse_options(type->name, opt->text, ',', optioninfo); ++ opt->absolute = WacomAbsoluteWanted; + reset_wacom(); + + /* "Flush" input queque */ +@@ -1756,7 +1636,7 @@ + } + if(WacomModell >= (sizeof(wcmodell) / sizeof(struct WC_MODELL))) + WacomModell=-1; +- gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, type->absolute? 'A':'R', ++ gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, opt->absolute? 'A':'R', + (WacomModell==(-1))? "Unknown" : wcmodell[WacomModell].name, + buffer+2); + +@@ -1767,24 +1647,23 @@ + wmaxx = (wmaxx-wcmodell[WacomModell].border); + wmaxy = (wmaxy-wcmodell[WacomModell].border); + } +- write(fd,UD_SENDCOORDS,4); ++ write(dev->fd,UD_SENDCOORDS,4); + +- return type; ++ return 0; + } + +-static Gpm_Type *I_pnp(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_pnp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + + /* accept "-o dtr", "-o rts" and "-o both" */ +- if (option_modem_lines(fd, argc, argv)) return NULL; ++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1; + + /* + * Just put the device to 1200 baud. Thanks to Francois Chastrette + * for his great help and debugging with his own pnp device. + */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; +@@ -1792,15 +1671,15 @@ + tty.c_line = 0; + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; +- tty.c_cflag = flags | B1200; +- tcsetattr(fd, TCSAFLUSH, &tty); /* set parameters */ ++ tty.c_cflag = type->flags | B1200; ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); /* set parameters */ + + /* + * Don't read the silly initialization string. I don't want to see + * the vendor name: it is only propaganda, with no information. + */ + +- return type; ++ return 0; + } + + /* +@@ -1848,8 +1727,7 @@ + + /* intellimouse, ps2 version: Ben Pfaff and Colin Plumb */ + /* Autodetect: Steve Bennett */ +-static Gpm_Type *I_imps2(int fd, unsigned short flags, struct Gpm_Type *type, +- int argc, char **argv) ++static int I_imps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int id; + static unsigned char basic_init[] = { GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100 }; +@@ -1857,36 +1735,36 @@ + static unsigned char ps2_init[] = { GPM_AUX_SET_SCALE11, GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100, GPM_AUX_SET_RES, 3, }; + + /* Do a basic init in case the mouse is confused */ +- write_to_mouse(fd, basic_init, sizeof (basic_init)); ++ write_to_mouse(dev->fd, basic_init, sizeof (basic_init)); + + /* Now try again and make sure we have a PS/2 mouse */ +- if (write_to_mouse(fd, basic_init, sizeof (basic_init)) != 0) { ++ if (write_to_mouse(dev->fd, basic_init, sizeof (basic_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_INIT); +- return(NULL); ++ return -1; + } + + /* Try to switch to 3 button mode */ +- if (write_to_mouse(fd, imps2_init, sizeof (imps2_init)) != 0) { ++ if (write_to_mouse(dev->fd, imps2_init, sizeof (imps2_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_FAILED); +- return(NULL); ++ return -1; + } + + /* Read the mouse id */ +- id = read_mouse_id(fd); ++ id = read_mouse_id(dev->fd); + if (id == GPM_AUX_ID_ERROR) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_MID_FAIL); + id = GPM_AUX_ID_PS2; + } + + /* And do the real initialisation */ +- if (write_to_mouse(fd, ps2_init, sizeof (ps2_init)) != 0) { ++ if (write_to_mouse(dev->fd, ps2_init, sizeof (ps2_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_SETUP_FAIL); + } + + if (id == GPM_AUX_ID_IMPS2) { + /* Really an intellipoint, so initialise 3 button mode (4 byte packets) */ + gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_AUTO); +- return type; ++ return 0; + } + if (id != GPM_AUX_ID_PS2) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_BAD_ID, id); +@@ -1894,69 +1772,64 @@ + else gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_PS2); + + for (type=mice; type->fun; type++) +- if (strcmp(type->name, "ps2") == 0) return(type); ++ if (strcmp(type->name, "ps2") == 0) return 0; + + /* ps2 was not found!!! */ +- return(NULL); ++ return -1; + } + + /* + * This works with Dexxa Optical Mouse, but because in X same initstring + * is named ExplorerPS/2 so I named it in the same way. + */ +-static Gpm_Type *I_exps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_exps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + static unsigned char s1[] = { 243, 200, 243, 200, 243, 80, }; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- write (fd, s1, sizeof (s1)); ++ write (dev->fd, s1, sizeof (s1)); + usleep (30000); +- tcflush (fd, TCIFLUSH); +- return type; ++ tcflush (dev->fd, TCIFLUSH); ++ return 0; + } + +-static Gpm_Type *I_twid(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_twid(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- if (twiddler_key_init() != 0) return NULL; ++ if (twiddler_key_init() != 0) return -1; + /* + * the twiddler is a serial mouse: just drop dtr + * and run at 2400 (unless specified differently) + */ +- if(opt_baud==DEF_BAUD) opt_baud = 2400; +- argv[1] = "dtr"; /* argv[1] is guaranteed to be NULL (this is dirty) */ +- return I_serial(fd, flags, type, argc, argv); ++ if (opt->baud == DEF_BAUD) opt->baud = 2400; ++ opt->text = "dtr"; ++ return I_serial(dev, opt, type); + } + +-static Gpm_Type *I_calus(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_calus(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- if (opt_baud == 1200) opt_baud=9600; /* default to 9600 */ +- return I_serial(fd, flags, type, argc, argv); ++ if (opt->baud == 1200) opt->baud = 9600; /* default to 9600 */ ++ return I_serial(dev, opt, type); + } + + /* synaptics touchpad, ps2 version: Henry Davies */ +-static Gpm_Type *I_synps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_synps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- syn_ps2_init (fd); +- return type; ++ syn_ps2_init (dev->fd); ++ return 0; + } + + +-static Gpm_Type *I_summa(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_summa(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + void resetsumma() + { +- write(fd,0,1); /* Reset */ ++ write(dev->fd,0,1); /* Reset */ + usleep(400000); /* wait */ + } + int waitsumma() +@@ -1964,7 +1837,7 @@ + struct timeval timeout; + fd_set readfds; + int err; +- FD_ZERO(&readfds); FD_SET(fd, &readfds); ++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds); + timeout.tv_sec = 0; timeout.tv_usec = 200000; + err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); + return(err); +@@ -1987,34 +1860,34 @@ + char GEN_MODELL=0x7f; + + /* Set speed to 9600bps */ +- setspeed (fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD); ++ setspeed (dev->fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD); + resetsumma(); + +- write(fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE)); ++ write(dev->fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE)); + + if (strstr(type->name,"acecad")!=NULL) summaid=11; + + if (summaid<0) { /* Summagraphics test */ + /* read the Summa Firm-ID */ +- write(fd, SS_FIRMID, strlen(SS_FIRMID)); ++ write(dev->fd, SS_FIRMID, strlen(SS_FIRMID)); + err=waitsumma(); + if (!((err == -1) || (!err))) { + summaid=10; /* Original Summagraphics */ +- read(fd, buffer, 255); /* Read Firm-ID */ ++ read(dev->fd, buffer, 255); /* Read Firm-ID */ + } + } + + if (summaid<0) { /* Genius-test */ + resetsumma(); +- write(fd,GEN_MMSERIES,1); +- write(fd,&GEN_MODELL,1); /* Read modell */ ++ write(dev->fd,GEN_MMSERIES,1); ++ write(dev->fd,&GEN_MODELL,1); /* Read modell */ + err=waitsumma(); + if (!((err == -1) || (!err))) { /* read Genius-ID */ + err=waitsumma(); + if (!((err == -1) || (!err))) { + err=waitsumma(); + if (!((err == -1) || (!err))) { +- read(fd,&config,1); ++ read(dev->fd,&config,1); + summaid=(config[0] & 224) >> 5; /* genius tablet-id (0-7)*/ + } + } +@@ -2024,30 +1897,29 @@ + /* unknown tablet ?*/ + if ((summaid<0) || (summaid==11)) { + resetsumma(); +- write(fd, SS_BINARY_FMT SS_PROMPT_MODE, 3); ++ write(dev->fd, SS_BINARY_FMT SS_PROMPT_MODE, 3); + } + + /* read tablet size */ + err=waitsumma(); +- if (!((err == -1) || (!err))) read(fd,buffer,sizeof(buffer)); +- write(fd,SS_READCONFIG,1); +- read(fd,&config,5); ++ if (!((err == -1) || (!err))) read(dev->fd,buffer,sizeof(buffer)); ++ write(dev->fd,SS_READCONFIG,1); ++ read(dev->fd,&config,5); + summamaxx=(config[2]<<7 | config[1])-(SUMMA_BORDER*2); + summamaxy=(config[4]<<7 | config[3])-(SUMMA_BORDER*2); + +- write(fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3); +- if (summaid<0) write(fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4); ++ write(dev->fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3); ++ if (summaid<0) write(dev->fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4); + +- return type; ++ return 0; + } + +-static Gpm_Type *I_mtouch(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_mtouch(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + + /* Set speed to 9600bps (copied from I_summa, above :) */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; +@@ -2055,18 +1927,17 @@ + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; + tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + + /* Turn it to "format tablet" and "mode stream" */ +- write(fd,"\001MS\r\n\001FT\r\n",10); ++ write(dev->fd,"\001MS\r\n\001FT\r\n",10); + +- return type; ++ return 0; + } + + /* simple initialization for the gunze touchscreen */ +-static Gpm_Type *I_gunze(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_gunze(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + FILE *f; +@@ -2075,29 +1946,29 @@ + + #define GUNZE_CALIBRATION_FILE SYSCONFDIR "/gpm-calibration" + /* accept a few options */ +- static argv_helper optioninfo[] = { +- {"smooth", ARGV_INT, u: {iptr: &gunze_avg}}, +- {"debounce", ARGV_INT, u: {iptr: &gunze_debounce}}, ++ static struct option_helper optioninfo[] = { ++ {"smooth", OPT_INT, u: {iptr: &gunze_avg}}, ++ {"debounce", OPT_INT, u: {iptr: &gunze_debounce}}, + /* FIXME: add corner tapping */ +- {"", ARGV_END} ++ {"", OPT_END} + }; +- parse_argv(optioninfo, argc, argv); ++ parse_options(type->name, opt->text, ',', optioninfo); + + /* check that the baud rate is valid */ +- if (opt_baud == DEF_BAUD) opt_baud = 19200; /* force 19200 as default */ +- if (opt_baud != 9600 && opt_baud != 19200) { +- gpm_report(GPM_PR_ERR,GPM_MESS_GUNZE_WRONG_BAUD,option.progname, argv[0]); +- opt_baud = 19200; ++ if (opt->baud == DEF_BAUD) opt->baud = 19200; /* force 19200 as default */ ++ if (opt->baud != 9600 && opt->baud != 19200) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_GUNZE_WRONG_BAUD, option.progname, type->name); ++ opt->baud = 19200; + } +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; + tty.c_line = 0; + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; +- tty.c_cflag = (opt_baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tty.c_cflag = (opt->baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL; ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* FIXME: try to find some information about the device */ + +@@ -2120,19 +1991,18 @@ + gunze_calib[0] = gunze_calib[1] = 128; /* 1/8 */ + gunze_calib[2] = gunze_calib[3] = 896; /* 7/8 */ + } +- return type; ++ return 0; + } + + /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ +-static Gpm_Type *I_wp(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_wp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + char tablet_info[256]; + int count, pos, size; + + /* Set speed to 9600bps (copied from I_summa, above :) */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; +@@ -2140,22 +2010,22 @@ + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; + tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* Reset the tablet (':') and put it in remote mode ('S') so that + it isn't sending anything to us. */ +- write(fd, ":S", 2); +- tcsetattr(fd, TCSAFLUSH, &tty); ++ write(dev->fd, ":S", 2); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* Query the model of the tablet */ +- write(fd, "T", 1); ++ write(dev->fd, "T", 1); + sleep(1); +- count = read(fd, tablet_info, 255); ++ count = read(dev->fd, tablet_info, 255); + + /* The tablet information should start with "KW" followed by the rest of + the model number. If it isn't there, it probably isn't a WizardPad. */ +- if(count < 2) return NULL; +- if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return NULL; ++ if(count < 2) return -1; ++ if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return -1; + + /* Now, we want the width and height of the tablet. They should be + of the form "X###" and "Y###" where ### is the number of units of +@@ -2177,9 +2047,9 @@ + } + + /* Set the tablet to stream mode with 180 updates per sec. ('O') */ +- write(fd, "O", 1); ++ write(dev->fd, "O", 1); + +- return type; ++ return 0; + } + + /*========================================================================*/ +@@ -2241,7 +2111,7 @@ + {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0}, + #ifdef HAVE_LINUX_INPUT_H + {"evdev", "Linux Event Device", +- "", M_evdev, I_empty, STD_FLG, ++ "", M_evdev, I_evdev, STD_FLG, + {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL}, + #endif /* HAVE_LINUX_INPUT_H */ + {"exps2", "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused", +diff -urN gpm-1.20.1/src/optparser.c gpm/src/optparser.c +--- gpm-1.20.1/src/optparser.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/optparser.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,155 @@ ++/* ++ * optparser.c - GPM mouse options parser ++ * ++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net> ++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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> ++#include <string.h> ++#include <stdlib.h> ++#include <ctype.h> ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/optparser.h" ++ ++int parse_options(const char *proto, const char *opts, char sep, struct option_helper *info) ++{ ++ int len, n, n_opts = 0, errors = 0; ++ long l; ++ struct option_helper *p; ++ char *s, *t, *str; ++ int base; /* for strtol */ ++ ++ for (p = info; p->type != OPT_END; p++) ++ p->present = 0; ++ ++ if (!opts) ++ return 0; ++ ++ if (!(str = strdup(opts))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALLOC_FAILED); ++ ++ /* split input string */ ++ for (s = str, n = 1; sep && (s = strchr(s, sep)); s++, n++) ++ *s = '\0'; ++ ++ for (s = str; n; s += strlen(s) + 1, n--) { ++ if (strlen(s) == 0) ++ continue; ++ ++ for (p = info; p->type != OPT_END; p++) { ++ len = strlen(p->name); ++ if (!strncmp(p->name, s, len) && !isalnum(s[len])) ++ break; ++ } ++ if (p->type == OPT_END) { /* not found */ ++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\" for protocol \"%s\"\n", ++ option.progname, s, proto); ++ errors++; ++ continue; ++ } ++ if (p->present) { ++ gpm_report(GPM_PR_ERR, "%s: option \"%s\" has already been seen, ignored (\"%s\")\n", ++ option.progname, s, proto); ++ continue; ++ } ++ p->present = 1; ++ n_opts++; ++ /* Found. Look for trailing stuff, if any */ ++ s += len; ++ while (*s && isspace(*s)) s++; /* skip spaces */ ++ if (*s == '=') s++; /* skip equal */ ++ while (*s && isspace(*s)) s++; /* skip other spaces */ ++ ++ /* Now parse what s is */ ++ base = 0; ++ switch(p->type) { ++ case OPT_BOOL: ++ if (*s) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_OPTION_NO_ARG, option.progname, p->name, s); ++ errors++; ++ } ++ *(p->u.iptr) = p->value; ++ break; ++ ++ case OPT_DEC: ++ base = 10; /* and fall through */ ++ ++ case OPT_INT: ++ if (*s == '\0') { ++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name); ++ } else { ++ l = strtol(s, &t, base); ++ if (*t) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_INVALID_ARG, option.progname, s, p->name); ++ errors++; ++ break; ++ } ++ *(p->u.iptr) = (int)l; ++ } ++ break; ++ ++ case OPT_STRING: ++ if (*s == '\0') ++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name); ++ else ++ *(p->u.sptr) = strdup(s); ++ break; ++ ++ case OPT_END: /* let's please "-Wall" */ ++ break; ++ } ++ } /* for i in argc */ ++ ++ free(str); ++ ++ if (errors) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname); ++ return -errors; ++ } ++ return n_opts; ++} ++ ++int check_no_options(const char *proto, const char *opts, char sep) ++{ ++ static struct option_helper info[] = { ++ { "", OPT_END } ++ }; ++ ++ return parse_options(proto, opts, sep, info) == 0; ++} ++ ++int is_option_present(struct option_helper *info, const char *name) ++{ ++ struct option_helper *p; ++ int len; ++ ++ for (p = info; p->type != OPT_END; p++) { ++ len = strlen(p->name); ++ if (!strncmp(p->name, name, len) && !isalnum(name[len])) ++ return p->present; ++ } ++ ++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\"\n", option.progname, name); ++ return 0; ++} ++ +diff -urN gpm-1.20.1/src/prog/mouse-test.c gpm/src/prog/mouse-test.c +--- gpm-1.20.1/src/prog/mouse-test.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/prog/mouse-test.c 2003-10-02 01:22:42.000000000 -0500 +@@ -50,22 +50,9 @@ + #define max(a,b) ((a)>(b)?(a):(b)) + #endif + +- +-/* this material is needed to pass options to mice.c */ +-struct mouse_features mymouse = { +- DEF_TYPE, DEF_DEV, DEF_SEQUENCE, +- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, DEF_SCALE /*scaley*/, +- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, +- (char *)NULL /* extra */, +- (Gpm_Type *)NULL, +- -1 /* fd */ +-}; +- + /* and this is a workaroud */ + struct winsize win; + +-struct mouse_features *which_mouse=&mymouse; +- + char *progname; + char *consolename; + int devcount=0; +@@ -78,9 +65,9 @@ + + struct device { + char *name; +- int fd; ++ struct micedev mdev; + struct device *next; +-}; ++} *devlist; + + static int message(void) + { +@@ -148,47 +135,48 @@ + /*----------------------------------------------------------------------------- + Place the description here. + -----------------------------------------------------------------------------*/ +-struct device **gpm_makedev(struct device **current, char *name) ++void gpm_makedev(char *name) + { +- int fd; int modes; ++ struct device *dev; ++ int fd; ++ int modes; ++ + if ((fd=open(name,O_RDWR|O_NONBLOCK))==-1) { + perror(name); +- return current; +- } +- modes = fcntl(fd, F_GETFL); +- if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) { +- close(fd); +- perror(name); +- return current; ++ } else { ++ modes = fcntl(fd, F_GETFL); ++ if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) { ++ close(fd); ++ perror(name); ++ } else { ++ dev = malloc(sizeof(struct device)); ++ if (!dev) gpm_report(GPM_PR_OOPS,"malloc()"); ++ dev->name=strdup(name); ++ if (!dev->name) gpm_report(GPM_PR_OOPS,"malloc()"); ++ dev->mdev.fd=fd; ++ dev->mdev.private = NULL; ++ dev->next=devlist; ++ devlist = dev; ++ devcount++; ++ } + } +- +- *current=malloc(sizeof(struct device)); +- if (!*current) gpm_report(GPM_PR_OOPS,"malloc()"); +- (*current)->name=strdup(name); +- if (!(*current)->name) gpm_report(GPM_PR_OOPS,"malloc()"); +- (*current)->fd=fd; +- (*current)->next=NULL; +- devcount++; +- return &((*current)->next); + } + +-Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type, +- int argc, char **argv); ++int (*I_serial)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type); + + + /*----------------------------------------------------------------------------- + Place the description here. + -----------------------------------------------------------------------------*/ +-int mousereopen(int oldfd, char *name, Gpm_Type *type) ++int mousereopen(struct micedev *dev, char *name, Gpm_Type *type, struct miceopt *opts) + { +- int fd; + if (!type) type=mice+1; /* ms */ +- close(oldfd); ++ close(dev->fd); + usleep(100000); +- fd=open(name,O_RDWR); +- if (fd < 0) gpm_report(GPM_PR_OOPS,name); +- (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */ +- return fd; ++ dev->fd=open(name,O_RDWR); ++ if (dev->fd < 0) gpm_report(GPM_PR_OOPS,name); ++ I_serial(dev, opts, type); /* ms initialization */ ++ return dev->fd; + } + + int noneofthem(void) +@@ -281,10 +269,9 @@ + { + struct item *list=NULL; + struct item **nextitem; +- struct device *devlist=NULL; +- struct device **nextdev; ++ struct device *nextdev; + Gpm_Type *cursor; +- int i, mousefd; ++ int i; + char *mousename; + #define BUFLEN 512 + char buf[BUFLEN]; +@@ -294,6 +281,9 @@ + int trial, readamount,packetsize,got; + int baudtab[4]={1200,9600,4800,2400}; + #define BAUD(i) (baudtab[(i)%4]) ++ struct miceopt opt = {0}; ++ struct micedev mdev = {0}; ++ + consolename = Gpm_get_console(); + + if (!isatty(fileno(stdin))) { +@@ -306,8 +296,8 @@ + + /* init the list of possible devices */ + +- for (nextdev=&devlist, i=1; i<argc; i++) +- nextdev=gpm_makedev(nextdev,argv[i]); ++ for (i=1; i<argc; i++) ++ gpm_makedev(argv[i]); + + if (argc==1) { /* no cmdline, get all devices */ + FILE *f; +@@ -320,7 +310,7 @@ + if (!f) gpm_report(GPM_PR_OOPS,"popen()"); + while (fgets(s,64,f)) { + s[strlen(s)-1]='\0'; /* trim '\n' */ +- nextdev=gpm_makedev(nextdev,s); ++ gpm_makedev(s); + } + pclose(f); + } +@@ -345,19 +335,18 @@ + + /* BUG */ /* Logitech initialization is not performed */ + +- opt_baud=BAUD(trial); +- printf("\r\nTrying with %i baud\r\n",opt_baud); ++ opt.baud=BAUD(trial); ++ printf("\r\nTrying with %i baud\r\n",opt.baud); + trial++; + + FD_ZERO(&devSet); FD_ZERO(&gotSet); + FD_SET(fileno(stdin),&devSet); maxfd=fileno(stdin); + printf("\r\n The possible device nodes are:\r\n"); +- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) { +- printf("\t%s\r\n", (*nextdev)->name); +- FD_SET((*nextdev)->fd,&devSet); +- maxfd=max((*nextdev)->fd,maxfd); +- (*I_serial)((*nextdev)->fd,(mice+1)->flags,mice+1, +- 1, &(mice+1)->name); /* try ms mode */ ++ for (nextdev=devlist; nextdev; nextdev=nextdev->next) { ++ printf("\t%s\r\n", nextdev->name); ++ FD_SET(nextdev->mdev.fd, &devSet); ++ maxfd=max(nextdev->mdev.fd,maxfd); ++ I_serial(&nextdev->mdev, &opt, mice+1); /* try ms mode */ + } + + savSet=devSet; +@@ -379,43 +368,43 @@ + getchar(); + break; + } +- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) +- if (FD_ISSET((*nextdev)->fd,&devSet)) { ++ for (nextdev=devlist; nextdev; nextdev=nextdev->next) ++ if (FD_ISSET(nextdev->mdev.fd,&devSet)) { + gotthem++; +- FD_CLR((*nextdev)->fd,&savSet); +- FD_SET((*nextdev)->fd,&gotSet); ++ FD_CLR(nextdev->mdev.fd,&savSet); ++ FD_SET(nextdev->mdev.fd,&gotSet); + } + } +- if (gotthem) for (nextdev=&devlist; *nextdev; /* nothing */ ) { +- cur=*nextdev; +- if (!FD_ISSET(cur->fd,&gotSet)) { ++ if (gotthem) for (nextdev=devlist; nextdev; /* nothing */ ) { ++ cur=nextdev; ++ if (!FD_ISSET(cur->mdev.fd,&gotSet)) { + printf("removing \"%s\" from the list\r\n",cur->name); +- *nextdev=cur->next; +- close(cur->fd); ++ nextdev=cur->next; ++ close(cur->mdev.fd); + free(cur->name); + free(cur); + devcount--; + } else { +- read(cur->fd,buf,80); /* flush */ +- nextdev=&(cur->next); /* follow list */ ++ read(cur->mdev.fd,buf,80); /* flush */ ++ nextdev=cur->next; /* follow list */ + } + } + + } /* devcount>1 */ + +- mousefd=devlist->fd; ++ mdev=devlist->mdev; + mousename=devlist->name; + free(devlist); + printf("\r\nOk, so your mouse device is \"%s\"\r\n",mousename); + + /* now close and reopen it, complete with initialization */ +- opt_baud=BAUD(0); +- mousefd=mousereopen(mousefd,mousename,NULL); +- ++ opt.baud=BAUD(0); ++ mousereopen(&mdev, mousename, NULL,&opt); ++ + FD_ZERO(&checkSet); +- FD_SET(mousefd,&checkSet); ++ FD_SET(mdev.fd,&checkSet); + FD_SET(fileno(stdin),&checkSet); +- maxfd=max(mousefd,fileno(stdin)); ++ maxfd=max(mdev.fd, fileno(stdin)); + + /*====================================== Identify mouse type */ + +@@ -440,7 +429,7 @@ + printf("\r\nNow please press and release your left mouse button,\r\n" + "one time only\r\n\r\n"); + +- i=read(mousefd,buf,1); ++ i=read(mdev.fd, buf, 1); + if (i==-1 && errno==EINVAL) + readamount=3; + else +@@ -466,7 +455,7 @@ + else + nextitem=&(cur->next); + } +- read(mousefd,buf,BUFLEN); /* flush */ ++ read(mdev.fd, buf, BUFLEN); /* flush */ + + /*====================================== Packet size - second step */ + +@@ -484,12 +473,12 @@ + while (packetsize==1) { + int success3=0,success5=0; + +- opt_baud=BAUD(trial); +- printf("\tBaud rate is %i\r\n",opt_baud); +- mousefd=mousereopen(mousefd,mousename,NULL); ++ opt.baud=BAUD(trial); ++ printf("\tBaud rate is %i\r\n",opt.baud); ++ mousereopen(&mdev, mousename,NULL, &opt); + + printf("\r\n==> Detecting the packet size\r\n"); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_LEFT,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_LEFT,readamount); + + /* try three -- look at repeating arrays of 6 bytes */ + for (i=0;i<got-12;i++) +@@ -512,8 +501,7 @@ + trial++; + } + +-/*====================================== Use that info to discard protocols */ +- ++/*====================================== Use that info to discard protocols */ + for (nextitem=&list; *nextitem; /* nothing */) { + struct item *cur=*nextitem; + int packetheads=0; +@@ -530,7 +518,7 @@ + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { + packetheads++; +- if ((*(cur->this->fun))(&event,buf+i)==-1) { ++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) { + packetheads--; + continue; + } +@@ -594,7 +582,7 @@ + * First trial: remove the "-t ms" extension if spurious buttons come in + */ + +- got=eventlist(mousefd,buf,BUFLEN,0,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,0,readamount); + pending=0; + for (nextitem=&list; *nextitem; /* nothing */) { + struct item *cur=*nextitem; +@@ -604,7 +592,7 @@ + for (i=0;i<got;i++) { + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { +- if ((*(cur->this->fun))(&event,buf+i)==-1) continue; ++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) continue; + i+=packetsize-1; + if (event.buttons) pending--; + } +@@ -624,8 +612,8 @@ + */ + + printf("\r\n==> Looking for '-t mman'and enhanced ms\r\n"); +- mousefd=mousereopen(mousefd,mousename, mice /* mman */); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ mousereopen(&mdev, mousename, mice /* mman */, &opt); ++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount); + + /* if it uses the 4-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-16;i++) +@@ -646,7 +634,7 @@ + for (i=0;i<got;i++) { + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { +- if ((*(cur->this->fun))(&event,buf+i)==-1) continue; ++ if ((*(cur->this->fun))(&mdev,&opt,buf+i,&event)==-1) continue; + i+=packetsize-1; + if (event.buttons && event.buttons!=GPM_B_MIDDLE) pending--; + if (event.buttons==GPM_B_MIDDLE) pending++; +@@ -677,16 +665,16 @@ + char *Xtognames[3]={"'ClearDTR' and 'ClearRTS'","'ClearDTR'","'ClearRTS'"}; + int alllines,lines, index; + +- ioctl(mousefd, TIOCMGET, &alllines); ++ ioctl(mdev.fd, TIOCMGET, &alllines); + + printf("\r\nSome mice change protocol to three-buttons-aware if some\r\n" + "\r\ncontrol lines are toggled after opening\r\n"); + for (index=0;index<3;index++) { +- mousereopen(mousefd,mousename,NULL); ++ mousereopen(&mdev, mousename, NULL, &opt); + lines = alllines & ~toggle[index]; +- ioctl(mousefd, TIOCMSET, &lines); ++ ioctl(mdev.fd, TIOCMSET, &lines); + printf("\r\n==> Trying with '-o %s'\r\n",tognames[index]); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount); + + /* if it uses the 5-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-20;i++) +@@ -717,7 +705,7 @@ + + getchar(); + +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_MIDDLE,readamount); + + /* if it uses the 5-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-20;i++) +diff -urN gpm-1.20.1/src/report.c gpm/src/report.c +--- gpm-1.20.1/src/report.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/report.c 2003-10-02 01:22:42.000000000 -0500 +@@ -31,6 +31,7 @@ + + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" + + /* + * gpm_report +@@ -70,7 +71,7 @@ + + void gpm_report(int line, char *file, int stat, char *text, ... ) + { +- FILE *console = NULL; ++ FILE *f = NULL; + va_list ap; + + va_start(ap,text); +@@ -138,11 +139,11 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { +- fprintf(console,GPM_STRING_WARN); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { ++ fprintf(f, GPM_STRING_WARN); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + break; + +@@ -151,18 +152,18 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { +- fprintf(console,GPM_STRING_ERR); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { ++ fprintf(f, GPM_STRING_ERR); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + +- if((console = fopen(option.consolename,"a")) != NULL) { +- fprintf(console,GPM_STRING_ERR); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(console.device, "a")) != NULL) { ++ fprintf(f, GPM_STRING_ERR); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + break; + +@@ -184,24 +185,24 @@ + case GPM_RUN_DEBUG: + switch(stat) { + case GPM_STAT_INFO: +- console = stdout; +- fprintf(console,GPM_STRING_INFO); break; ++ f = stdout; ++ fprintf(f, GPM_STRING_INFO); break; + case GPM_STAT_WARN: +- console = stderr; +- fprintf(console,GPM_STRING_WARN); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_WARN); break; + case GPM_STAT_ERR: +- console = stderr; +- fprintf(console,GPM_STRING_ERR); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_ERR); break; + case GPM_STAT_DEBUG: +- console = stderr; +- fprintf(console,GPM_STRING_DEBUG); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_DEBUG); break; + case GPM_STAT_OOPS: +- console = stderr; +- fprintf(console,GPM_STRING_OOPS); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_OOPS); break; + } + +- vfprintf(console,text,ap); +- fprintf(console,"\n"); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); + + if(stat == GPM_STAT_OOPS) exit(1); + +diff -urN gpm-1.20.1/src/selection.c gpm/src/selection.c +--- gpm-1.20.1/src/selection.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/selection.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,156 @@ ++/* ++ * console.c - GPM console and selection/paste handling ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * 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> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <asm/types.h> /* __u32 */ ++ ++#include <linux/vt.h> /* VT_GETSTATE */ ++#include <sys/kd.h> /* KDGETMODE */ ++#include <termios.h> /* winsize */ ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" ++ ++struct sel_options sel_opts = { 0, 0, DEF_PTRDRAG }; ++static time_t last_selection_time; ++ ++/*-------------------------------------------------------------------*/ ++static void selection_copy(int x1, int y1, int x2, int y2, int mode) ++{ ++/* ++ * The approach in "selection" causes a bus error when run under SunOS 4.1 ++ * due to alignment problems... ++ */ ++ unsigned char buf[6 * sizeof(short)]; ++ unsigned short *arg = (unsigned short *)buf + 1; ++ int fd; ++ ++ buf[sizeof(short) - 1] = 2; /* set selection */ ++ ++ arg[0] = (unsigned short)x1; ++ arg[1] = (unsigned short)y1; ++ arg[2] = (unsigned short)x2; ++ arg[3] = (unsigned short)y2; ++ arg[4] = (unsigned short)mode; ++ ++ if ((fd = open_console(O_WRONLY)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON); ++ ++ gpm_report(GPM_PR_DEBUG, "ctl %i, mode %i", (int)*buf, arg[4]); ++ if (ioctl(fd, TIOCLINUX, buf + sizeof(short) - 1) < 0) ++ gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); ++ close(fd); ++ ++ if (mode < 3) { ++ sel_opts.aged = 0; ++ last_selection_time = time(0); ++ } ++} ++ ++/*-------------------------------------------------------------------*/ ++static void selection_paste(void) ++{ ++ char c = 3; ++ int fd; ++ ++ if (!sel_opts.aged && ++ sel_opts.age_limit != 0 && ++ last_selection_time + sel_opts.age_limit < time(0)) { ++ sel_opts.aged = 1; ++ } ++ ++ if (sel_opts.aged) { ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SKIP_PASTE); ++ } else { ++ fd = open_console(O_WRONLY); ++ if (ioctl(fd, TIOCLINUX, &c) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_TIOCLINUX); ++ close(fd); ++ } ++} ++ ++/*-------------------------------------------------------------------*/ ++void do_selection(Gpm_Event *event, int three_button_mode) ++{ ++ static int x1 = 1, y1 = 1; ++ int x2, y2; ++ ++ x2 = event->x; y2 = event->y; ++ switch(GPM_BARE_EVENTS(event->type)) { ++ case GPM_MOVE: ++ if (x2 < 1) x2++; else if (x2 > console.max_x) x2--; ++ if (y2 < 1) y2++; else if (y2 > console.max_y) y2--; ++ selection_copy(x2, y2, x2, y2, 3); /* just highlight pointer */ ++ break; ++ ++ case GPM_DRAG: ++ if (event->buttons == GPM_B_LEFT) { ++ switch(event->margin) { /* fix margins */ ++ case GPM_TOP: x2 = 1; y2++; break; ++ case GPM_BOT: x2 = console.max_x; y2--; break; ++ case GPM_RGT: x2--; break; ++ case GPM_LFT: y2 <= y1 ? x2++ : (x2 = console.max_x, y2--); break; ++ default: break; ++ } ++ selection_copy(x1, y1, x2, y2, event->clicks); ++ if (event->clicks >= sel_opts.ptrdrag && !event->margin) /* pointer */ ++ selection_copy(x2, y2, x2, y2, 3); ++ } /* if */ ++ break; ++ ++ case GPM_DOWN: ++ switch (event->buttons) { ++ case GPM_B_LEFT: ++ x1 = x2; y1 = y2; ++ selection_copy(x1, y1, x2, y2, event->clicks); /* start selection */ ++ break; ++ ++ case GPM_B_MIDDLE: ++ selection_paste(); ++ break; ++ ++ case GPM_B_RIGHT: ++ if (three_button_mode == 1) ++ selection_copy(x1, y1, x2, y2, event->clicks); ++ else ++ selection_paste(); ++ break; ++ } ++ } /* switch above */ ++} ++ ++/*-------------------------------------------------------------------*/ ++void selection_disable_paste(void) ++{ ++ sel_opts.aged = 1; ++} +diff -urN gpm-1.20.1/src/server_tools.c gpm/src/server_tools.c +--- gpm-1.20.1/src/server_tools.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/server_tools.c 2003-10-02 01:22:42.000000000 -0500 +@@ -21,151 +21,80 @@ + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + ********/ + ++#include <string.h> ++#include <stdlib.h> /* malloc() */ ++#include <sys/fcntl.h> ++ + #include "headers/gpmInt.h" + #include "headers/message.h" + +-#include <stdlib.h> /* malloc() */ ++struct micetab *micelist; + +-/* DESCR: add this to the list of mice. initialization follows later */ +-/* RETURN: - */ ++/* DESCR: allocate a new mouse and to the list of mice. initialization follows later */ ++/* RETURN: new mouse structure */ + /* COMMENT: does error handling and exiting itself */ +-void add_mouse(int type, char *value) ++struct micetab *add_mouse(void) + { +- struct micetab *tmp = option.micelist; ++ struct micetab *mouse; + +- /* PREAMBLE for all work: */ +- /* -m /dev/misc/psaux -t ps2 [ -o options ] */ ++ gpm_report(GPM_PR_DEBUG, "adding mouse device"); ++ if (!(mouse = malloc(sizeof(struct micetab)))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); ++ ++ memset(mouse, 0, sizeof(struct micetab)); ++ ++ mouse->dev.timeout = -1; ++ ++ mouse->options.sequence = NULL; ++ mouse->options.sample = DEF_SAMPLE; ++ mouse->options.delta = DEF_DELTA; ++ mouse->options.accel = DEF_ACCEL; ++ mouse->options.scalex = DEF_SCALE; ++ mouse->options.scaley = DEF_SCALE; ++ mouse->options.time = DEF_TIME; ++ mouse->options.cluster = DEF_CLUSTER; ++ mouse->options.three_button = DEF_THREE; ++ mouse->options.glidepoint_tap = DEF_GLIDEPOINT_TAP; ++ mouse->options.text = NULL; + +- switch(type) { ++ mouse->next = micelist; ++ micelist = mouse; + +- /*---------------------------------------------------------------------*/ +- /********************** -m mousedevice *********************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_DEVICE: +- +- /* first invocation */ +- if(option.micelist == NULL) { +- gpm_report(GPM_PR_DEBUG,"adding mouse device: %s",value); +- option.micelist = (struct micetab *) malloc(sizeof(struct micetab)); +- if(!option.micelist) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- option.micelist->next = NULL; +- option.micelist->device = value; +- option.micelist->protocol = NULL; +- option.micelist->options = NULL; +- return; +- } +- +- /* find actual mouse */ +- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) +- tmp = tmp->next; +- +- gpm_report(GPM_PR_DEBUG,"finished searching"); +- +- /* found end of micelist, add new mouse */ +- if(tmp->next == NULL && tmp->protocol != NULL) { +- gpm_report(GPM_PR_DEBUG,"next mouse making"); +- tmp->next = (struct micetab *) malloc(sizeof(struct micetab)); +- if(!tmp) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- tmp->next = NULL; +- tmp->device = value; +- tmp->protocol = NULL; +- tmp->options = NULL; +- return; +- } else gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- //} else if(tmp->device != NULL && tmp->protocol == NULL) +- // gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* -m -m */ +- +- +- break; +- +- /*---------------------------------------------------------------------*/ +- /************************* -t type / protocol **************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_TYPE: +- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- /* skip to next mouse, where either device or protocol is missing */ +- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) +- tmp = tmp->next; +- +- /* check whether device (-m) is there, if so, write protocol */ +- if(tmp->device == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- else { +- gpm_report(GPM_PR_DEBUG,"adding mouse type: %s",value); +- tmp->protocol = value; +- option.no_mice++; /* finally we got our mouse */ +- } +- +- break; +- +- /*---------------------------------------------------------------------*/ +- /*************************** -o options ********************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_OPTIONS: +- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- /* look for the last mouse */ +- tmp = option.micelist; +- while(tmp->next != NULL) tmp = tmp->next; +- +- /* if -m or -t are missing exit */ +- if(tmp->device == NULL || tmp->protocol == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- else { +- gpm_report(GPM_PR_DEBUG,"adding mouse options: %s",value); +- tmp->options = value; +- } +- break; +- } ++ return mouse; + } + +-/* DESCR: mice initialization. currently print mice. */ +-/* RETURN: 0 - failed to init one or more devices +- 1 - init was fine */ ++/* DESCR: mice initialization. calls appropriate init functions. */ + /* COMMENT: does error handling and exiting itself */ +-int init_mice(struct micetab *micelist) ++void init_mice(void) + { +- struct micetab *tmp = micelist; ++ struct micetab *mouse; ++ ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ if (!strcmp(mouse->device, "-")) ++ mouse->dev.fd = 0; /* use stdin */ ++ else if ((mouse->dev.fd = open(mouse->device, O_RDWR | O_NDELAY)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, mouse->device); + +- while(tmp != NULL) { /* there are still mice to init */ +- gpm_report(GPM_PR_DEBUG,"initialize %s with proto %s",tmp->device,tmp->protocol); +- if(tmp->options != NULL) { +- gpm_report(GPM_PR_DEBUG,"and options %s",tmp->options); +- } +- tmp = tmp->next; ++ /* and then reset the flag */ ++ fcntl(mouse->dev.fd, F_SETFL, fcntl(mouse->dev.fd, F_GETFL) & ~O_NDELAY); ++ ++ /* init the device, and use the return value as new mouse type */ ++ if (mouse->type->init) ++ if (mouse->type->init(&mouse->dev, &mouse->options, mouse->type)) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_MOUSE_INIT); + } +- +- gpm_report(GPM_PR_DEBUG,"finished initialization"); +- return 1; + } + + /* DESCR: when leaving, we should reset mice to their normal state */ +-/* RETURN: 0 - failed to reset one or more devices +- 1 - reset was fine */ + /* COMMENT: does error handling and exiting itself */ +-int reset_mice(struct micetab *micelist) ++void cleanup_mice(void) + { +- struct micetab *tmp = micelist; +- struct micetab *end = tmp; +- +- while(tmp != NULL) { /* FIXME! I never get NULL, as free()d before */ +- end = tmp; +- while(tmp->next != NULL) { /* set end to the last mouse */ +- end = tmp; +- tmp = tmp->next; +- } +- +- gpm_report(GPM_PR_DEBUG,"reset: %s with proto %s",end->device,end->protocol); +- if(tmp->options != NULL) { +- gpm_report(GPM_PR_DEBUG,"and options %s",end->options); +- } +- free(end); /* be clean() */ +- tmp = micelist; /* reset to the first mice again */ ++ struct micetab *tmp; ++ ++ while ((tmp = micelist)) { ++ if (micelist->dev.private) ++ free(micelist->dev.private); ++ micelist = micelist->next; ++ free(tmp); + } +- +- return 1; + } +diff -urN gpm-1.20.1/src/special.c gpm/src/special.c +--- gpm-1.20.1/src/special.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/special.c 2003-10-02 01:22:42.000000000 -0500 +@@ -37,6 +37,7 @@ + #include <sys/param.h> + + #include "headers/gpmInt.h" ++#include "headers/console.h" + + /* + * This function is only called at button press, to avoid unnecessary +@@ -78,7 +79,7 @@ + return 1; + + /* devfs change */ +- consolef=fopen(option.consolename,"w"); ++ consolef = fopen(console.device, "w"); + if (!consolef) consolef=stderr; + if (event->type & GPM_TRIPLE) /* just triggered: make noise and return */ + { +@@ -153,7 +154,7 @@ + case 0: /* child */ + close(0); close(1); close(2); + open(GPM_NULL_DEV,O_RDONLY); /* stdin */ +- open(option.consolename,O_WRONLY); /* stdout */ ++ open(console.device, O_WRONLY); /* stdout */ + dup(1); /* stderr */ + for (i=3;i<OPEN_MAX; i++) close(i); + execl("/bin/sh","sh","-c",command,(char *)NULL); +diff -urN gpm-1.20.1/src/startup.c gpm/src/startup.c +--- gpm-1.20.1/src/startup.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/startup.c 2003-10-02 01:22:42.000000000 -0500 +@@ -26,6 +26,7 @@ + #include <string.h> /* strlen() */ + #include <errno.h> /* errno */ + #include <unistd.h> /* unlink,geteuid */ ++#include <signal.h> + #include <sys/types.h> /* geteuid, mknod */ + #include <sys/stat.h> /* mknod */ + #include <fcntl.h> /* mknod */ +@@ -34,11 +35,13 @@ + + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" + + /* what todo atexit */ + static void gpm_exited(void) + { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL); + unlink(GPM_NODE_PID); + unlink(GPM_NODE_CTL); + } +@@ -48,34 +51,12 @@ + extern struct options option; + extern int errno; + +- int i,opt; +- +- static struct { +- char *in; +- char *out; +- } seq[] = { +- {"123","01234567"}, +- {"132","02134657"}, +- {"213","01452367"}, /* warning: these must be readable as integers... */ +- {"231","02461357"}, +- {"312","04152637"}, +- {"321","04261537"}, +- {NULL,NULL} +- }; +- + /* basic settings */ + option.run_status = GPM_RUN_STARTUP; /* 10,9,8,... let's go */ + option.autodetect = 0; /* no mouse autodection */ + option.progname = argv[0]; /* who we are */ +- option.consolename = Gpm_get_console(); /* get consolename */ +- +- /* basic2: are not necessary for oops()ing, if not root */ +- option.no_mice = 0; /* counts -m + -t */ +- option.micelist = NULL; /* no mice found yet */ +- option.repeater = 0; /* repeat data */ +- option.repeater_type = NULL; /* type of */ +- + ++ get_console_name(); + cmdline(argc, argv); /* parse command line */ + + if (geteuid() != 0) gpm_report(GPM_PR_OOPS,GPM_MESS_ROOT); /* root or exit */ +@@ -87,54 +68,18 @@ + /****************** OLD CODE from gpn.c ***********************/ + + openlog(option.progname, LOG_PID, +- option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER); +- loadlut(opt_lut); +- +- if (option.repeater) { +- if(mkfifo(GPM_NODE_FIFO,0666) && errno!=EEXIST) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CREATE_FIFO,GPM_NODE_FIFO); +- if((fifofd=open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0) +- gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO); +- } +- +- /* duplicate initialization */ +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- if (opt_accel < 1) exit(usage("acceleration")); +- if (opt_delta < 2) exit(usage("delta")); +- if (strlen(opt_sequence) != 3 || atoi(opt_sequence)<100) +- exit(usage("sequence")); +- if (opt_glidepoint_tap > 3) exit(usage("glidepoint tap button")); +- if (opt_glidepoint_tap) +- opt_glidepoint_tap=GPM_B_LEFT >> (opt_glidepoint_tap-1); +- +- /* choose the sequence */ +- for (opt=0; seq[opt].in && strcmp(seq[opt].in,opt_sequence); opt++) ; +- if(!seq[opt].in) exit(usage("button sequence")); +- opt_sequence=strdup(seq[opt].out); /* I can rewrite on it */ +- +- /* look for the mouse type */ +- m_type = find_mouse_by_name(opt_type); +- if (!m_type) /* not found */ +- exit(M_listTypes()); +- } ++ option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER); + +- /* Check repeater status */ +- if (option.repeater) { +- if (strcmp(option.repeater_type,"raw") == 0) +- opt_rawrep = 1; +- else { +- /* look for the type */ +- repeated_type = find_mouse_by_name(option.repeater_type); ++ console_load_lut(); + +- if(!repeated_type) exit(M_listTypes()); /* not found */ +- +- if (!(repeated_type->repeat_fun)) /* unsupported translation */ +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_REPEAT,option.repeater_type); +- } ++ if (repeater.raw || repeater.type) { ++ if (mkfifo(GPM_NODE_FIFO, 0666) && errno != EEXIST) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CREATE_FIFO, GPM_NODE_FIFO); ++ if ((repeater.fd = open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO); + } + +- if(option.run_status == GPM_RUN_STARTUP ) { /* else is debugging */ ++ if(option.run_status == GPM_RUN_STARTUP) { /* else is debugging */ + /* goto background and become a session leader (Stefan Giessler) */ + switch(fork()) { + case -1: gpm_report(GPM_PR_OOPS,GPM_MESS_FORK_FAILED); /* error */ +@@ -152,13 +97,63 @@ + /* is changing to root needed, because of relative paths ? or can we just + * remove and ignore it ?? FIXME */ + if (chdir("/") < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_CHDIR_FAILED); +- + +- //return mouse_table[1].fd; /* the second is handled in the main() */ ++ atexit(gpm_exited); /* call gpm_exited at the end */ ++} + +- /****************** OLD CODE from gpn.c END ***********************/ ++/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two ++ completely different things; opening a socket to a running daemon ++ and checking that a running daemon existed. Ugly. */ ++/* rewritten mostly on 20th of February 2002 - nico */ ++void check_uniqueness(void) ++{ ++ FILE *fp = 0; ++ int old_pid = -1; + +- init_mice(option.micelist); /* reads option.micelist */ +- atexit(gpm_exited); /* call gpm_exited at the end */ ++ if ((fp = fopen(GPM_NODE_PID, "r")) != NULL) { ++ fscanf(fp, "%d", &old_pid); ++ if (kill(old_pid, 0) == -1) { ++ gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); ++ unlink(GPM_NODE_PID); ++ } else /* we are really running, exit asap! */ ++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALREADY_RUN, old_pid); ++ } ++ /* now try to sign ourself */ ++ if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) { ++ fprintf(fp,"%d\n",getpid()); ++ fclose(fp); ++ } else { ++ gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID); ++ } ++} + ++/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the ++ unwanted functionality in check_uniqueness. */ ++void kill_gpm(void) ++{ ++ int old_pid; ++ FILE* fp = fopen(GPM_NODE_PID, "r"); ++ ++ /* if we cannot find the old pid file, leave */ ++ if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID); ++ ++ /* else read the pid */ ++ if (fscanf(fp, "%d", &old_pid) != 1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_READ_PROB, GPM_NODE_PID); ++ fclose(fp); ++ ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_KILLING, old_pid); ++ ++ /* first check if we run */ ++ if (kill(old_pid,0) == -1) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_STALE_PID, GPM_NODE_PID); ++ unlink(GPM_NODE_PID); ++ } ++ /* then kill us (not directly, but the other instance ... ) */ ++ if (kill(old_pid, SIGTERM) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CANT_KILL, old_pid); ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_KILLED, old_pid); ++ exit(0); + } ++ +diff -urN gpm-1.20.1/src/synaptics.c gpm/src/synaptics.c +--- gpm-1.20.1/src/synaptics.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/synaptics.c 2003-10-02 01:22:42.000000000 -0500 +@@ -865,7 +865,7 @@ + static int scrolling_speed_timer = 0; + static int scrolling_amount_left = 0; /* Tells how much to scroll up or down */ + +- ++static int mouse_fd; + + + +@@ -882,6 +882,7 @@ + ** which makes reading the debug data harder, only dump the report if it is different + ** than the previously dumped. + */ ++#if DEBUG_REPORTS + static void tp_dump_report_data (report_type report, + int edges, + Gpm_Event* state) +@@ -934,7 +935,7 @@ + (multi_finger_pressure>4500 && multi_finger_xy>50000? 'f':' ')); + + } +- ++#endif + + /* syn_dump_info + ** +@@ -1158,8 +1159,8 @@ + status = GPM_B_NOT_SET; + break; + case Reset_Touchpad_Action: +- syn_ps2_reset(which_mouse->fd); +- syn_ps2_absolute_mode(which_mouse->fd); ++ syn_ps2_reset(mouse_fd); ++ syn_ps2_absolute_mode(mouse_fd); + status = GPM_B_NOT_SET; + break; + case Toggle_Four_Way_Button_Action: +@@ -2950,10 +2951,8 @@ + data [0],data [1],data [2],data [3],data [4],data [5]); + + if (reset_on_error_enabled) { +- /* Hack to get the fd: which_mouse is the current mouse, +- and as the synaptic code is called, it is the current mouse. */ +- syn_ps2_reset(which_mouse->fd); +- syn_ps2_absolute_mode(which_mouse->fd); ++ syn_ps2_reset(mouse_fd); ++ syn_ps2_absolute_mode(mouse_fd); + } + + report->left = 0; +@@ -3108,7 +3107,7 @@ + ** + ** Process the touchpad 6 byte report. + */ +-void syn_process_serial_data (Gpm_Event *state, ++void syn_process_serial_data (int fd, Gpm_Event *state, + unsigned char *data) + { + /* initialize the state */ +@@ -3116,6 +3115,8 @@ + state->dx = 0; + state->dy = 0; + ++ mouse_fd = fd; /* cheat */ ++ + syn_serial_translate_data (data, &cur_report); + if (wmode_enabled){ + syn_process_wmode_report(&cur_report); +@@ -3196,7 +3197,7 @@ + ** + ** Process the touchpad 6 byte report. + */ +-void syn_process_ps2_data (Gpm_Event *state, ++void syn_process_ps2_data (int fd, Gpm_Event *state, + unsigned char *data) + { + /* gpm_report(GPM_PR_DEBUG,"Data %02x %02x %02x %02x %02x %02x",data[0],data[1],data[2],data[3],data[4],data[5]); */ +@@ -3206,6 +3207,7 @@ + state->dx = 0; + state->dy = 0; + ++ mouse_fd = fd; /* cheat */ + + if (wmode_enabled) { + syn_ps2_translate_wmode_data (data, &cur_report); +diff -urN gpm-1.20.1/src/tools.c gpm/src/tools.c +--- gpm-1.20.1/src/tools.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/tools.c 1969-12-31 19:00:00.000000000 -0500 +@@ -1,93 +0,0 @@ +-/* +- * tools.c - tools which are needed by client and server +- * +- * Copyright (c) 2001 Nico Schottelius <nico@schottelius.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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +- ********/ +- +-#include <stdio.h> /* NULL */ +-#include <string.h> +-#include <stdlib.h> +-#include <sys/types.h> /* these three are */ +-#include <sys/stat.h> /* needed for */ +-#include <unistd.h> /* stat() */ +- +-#include "headers/gpmInt.h" /* only used for some defines */ +-#include "headers/message.h" +- +-/***************************************************************************** +- * check, whether devfs is used or not. +- * See /usr/src/linux/Documentation/filesystems/devfs/ for details. +- * Returns: the name of the console (/dev/tty0 or /dev/vc/0) +- *****************************************************************************/ +-char *Gpm_get_console( void ) +-{ +- +- char *back = NULL, *tmp = NULL; +- struct stat buf; +- +- /* first try the devfs device, because in the next time this will be +- * the preferred one. If that fails, take the old console */ +- +- /* Check for open new console */ +- if (stat(GPM_DEVFS_CONSOLE,&buf) == 0) +- tmp = GPM_DEVFS_CONSOLE; +- +- /* Failed, try OLD console */ +- else if(stat(GPM_OLD_CONSOLE,&buf) == 0) +- tmp = GPM_OLD_CONSOLE; +- +- if(tmp != NULL) +- if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL) +- strcpy(back,tmp); +- +- return(back); +-} +- +-/* what's the english name for potenz ? */ +-int Gpm_x_high_y(int base, int pot_y) +-{ +- int val = 1; +- +- if(pot_y == 0) val = 1; +- else if(pot_y < 0) val = 0; /* ugly hack ;) */ +- else while(pot_y > 0) { +- val = val * base; +- pot_y--; +- } +- return val; +-} +- +-/* return characters needed to display int */ +-int Gpm_cnt_digits(int number) +-{ +- /* 0-9 = 1 10^0 <-> (10^1)-1 +- * 10 - 99 = 2 10^1 <-> (10^2)-1 +- * 100 - 999 = 3 10^2 <-> (10^3)-1 +- * 1000 - 9999 = 4 ... */ +- +- int ret = 0, num = 0; +- +- /* non negative, please */ +- if(number < 0) number *= -1; +- else if(number == 0) ret = 1; +- else while(number > num) { +- ret++; +- num = (Gpm_x_high_y(10,ret) - 1); +- } +- +- return(ret); +-} +diff -urN gpm-1.20.1/src/twiddler.c gpm/src/twiddler.c +--- gpm-1.20.1/src/twiddler.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/twiddler.c 2003-10-02 01:22:42.000000000 -0500 +@@ -54,6 +54,7 @@ + #include "headers/gpm.h" + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" + #include "headers/twiddler.h" + + +@@ -134,17 +135,6 @@ + int (*fun)(char *string); + }; + +- +-/* The same silly function as in gpm.c */ +-static inline int open_console(const int mode) +-{ +- int fd; +- extern struct options option; +- if ((fd=open(option.consolename, mode)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,option.consolename); +- return fd; +-} +- +- + /*===================================================================*/ + /* This part deals with pushing keys */ + +@@ -175,7 +165,7 @@ + int twiddler_exec(char *s) + { + int pid; +- extern struct options option; ++ + switch(pid=fork()) { + case -1: return -1; + case 0: +@@ -184,7 +174,7 @@ + close(2); /* very rude! */ + + open(GPM_NULL_DEV,O_RDONLY); +- open(option.consolename,O_WRONLY); ++ open(console.device, O_WRONLY); + dup(1); + execl("/bin/sh", "sh", "-c", s, NULL); + exit(1); /* shouldn't happen */ diff --git a/source/a/gpm/gpm.SlackBuild b/source/a/gpm/gpm.SlackBuild new file mode 100755 index 00000000..b0352fe8 --- /dev/null +++ b/source/a/gpm/gpm.SlackBuild @@ -0,0 +1,149 @@ +#!/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. + +# by: volkerdi@slackware.com + +VERSION=1.20.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gpm + +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 gpm-$VERSION +tar xjvf $CWD/gpm-$VERSION.tar.bz2 +cd gpm-$VERSION +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) +chown -R root:root . +find . \ + \( -perm 700 -o -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/gpm-evdev-cumulative.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm.evdevmakefile.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-math.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-weak-wgetch.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-nodebug.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-gpmopen.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-idie.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-subscript.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-input.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-consolename.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-multilib.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-no-console-error.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-lib-silent.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1.send-noise-to-syslogs.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-input-defines.diff.gz | patch -p1 --verbose || exit 1 + +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + $ARCH-slackware-linux + +make || exit 1 +zcat $CWD/inputattach.c.gz > inputattach.c +gcc $SLKCFLAGS -o inputattach inputattach.c || exit + +mkdir -p $PKG/usr/bin $PKG/etc/rc.d +cat inputattach > $PKG/usr/bin/inputattach +( cd src + mkdir -p $PKG/usr/sbin + cat gpm > $PKG/usr/sbin/gpm + cat prog/disable-paste > $PKG/usr/bin/disable-paste + cat prog/gpm-root > $PKG/usr/bin/gpm-root + cat prog/hltest > $PKG/usr/bin/hltest + cat prog/mev > $PKG/usr/bin/mev + cat prog/mouse-test > $PKG/usr/bin/mouse-test + mkdir -p $PKG/usr/include + cp headers/gpm.h $PKG/usr/include/gpm.h + chmod 644 $PKG/usr/include/gpm.h + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} $PKG/lib${LIBDIRSUFFIX} + cat lib/libgpm.a > $PKG/usr/lib${LIBDIRSUFFIX}/libgpm.a + cat lib/libgpm.so.1.19.0 > $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0 + chmod 755 $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0 +) +( cd conf + mkdir -p $PKG/etc + cat gpm-root.conf > $PKG/etc/gpm-root.conf + cat gpm-syn.conf > $PKG/etc/gpm-syn.conf + cat gpm-twiddler.conf > $PKG/etc/gpm-twiddler.conf +) +( cd contrib/emacs + mkdir -p $PKG/usr/share/emacs/site-lisp + cat t-mouse.el > $PKG/usr/share/emacs/site-lisp/t-mouse.el +) +mkdir -p $PKG/usr/doc/gpm-$VERSION +cp -a \ + BUGS COPYING Changelog Changes MANIFEST README TODO \ + $PKG/usr/doc/gpm-$VERSION +( cd doc + for page in *.1 *.7 *.8 ; do + CHAPTER=`echo $page | cut -f 2 -d .` + mkdir -p $PKG/usr/man/man$CHAPTER + cat $page | gzip -9c > $PKG/usr/man/man${CHAPTER}/$page.gz + done + mkdir -p $PKG/usr/info + cat gpm.info | gzip -9c > $PKG/usr/info/gpm.info.gz + cp -a \ + Announce FAQ HACK_GPM README* \ + $PKG/usr/doc/gpm-$VERSION +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libgpm.so.1 libgpm.so ) +( cd $PKG/lib${LIBDIRSUFFIX} ; ln -sf libgpm.so.1.19.0 libgpm.so.1 ) +zcat $CWD/mouseconfig.gz > $PKG/usr/sbin/mouseconfig +chmod 755 $PKG/usr/bin/* $PKG/usr/sbin/* +mkdir -p $PKG/var/log/setup +zcat $CWD/setup.mouse.gz > $PKG/var/log/setup/setup.mouse +chmod 755 $PKG/var/log/setup/setup.mouse +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/gpm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gpm/gpm.evdevmakefile.patch b/source/a/gpm/gpm.evdevmakefile.patch new file mode 100644 index 00000000..bd56c3aa --- /dev/null +++ b/source/a/gpm/gpm.evdevmakefile.patch @@ -0,0 +1,11 @@ +--- ./src/Makefile.in.orig 2006-02-07 15:24:17.000000000 -0600 ++++ ./src/Makefile.in 2006-02-07 15:26:03.000000000 -0600 +@@ -12,7 +12,7 @@ + include $(top_builddir)/Makefile.include + + # Main portion: regular build rules +-MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@ ++MICESRC = mice.c twiddler.c synaptics.c evdev.c + + GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \ + selection.c client.c optparser.c $(MICESRC) diff --git a/source/a/gpm/inputattach.c b/source/a/gpm/inputattach.c new file mode 100644 index 00000000..c47fad13 --- /dev/null +++ b/source/a/gpm/inputattach.c @@ -0,0 +1,472 @@ +/* + * $Id: inputattach.c,v 1.21 2002/07/10 22:34:01 vojtech Exp $ + * + * Copyright (c) 1999-2000 Vojtech Pavlik + * + * Sponsored by SuSE + * + * Twiddler support Copyright (c) 2001 Arndt Schoenewald + * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany + */ + +/* + * Input line discipline attach program + */ + +/* + * 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 + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail: + * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic + */ + +#include <linux/serio.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/ioctl.h> +#include <sys/time.h> + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <termios.h> +#include <string.h> +#include <assert.h> +#include <ctype.h> + +int readchar(int fd, unsigned char *c, int timeout) +{ + struct timeval tv; + fd_set set; + + tv.tv_sec = 0; + tv.tv_usec = timeout * 1000; + + FD_ZERO(&set); + FD_SET(fd, &set); + + if (!select(fd+1, &set, NULL, NULL, &tv)) return -1; + if (read(fd, c, 1) != 1) return -1; + + return 0; +} + + + +void setline(int fd, int flags, int speed) +{ + struct termios t; + + tcgetattr(fd, &t); + + t.c_cflag = flags | CREAD | HUPCL | CLOCAL; + t.c_iflag = IGNBRK | IGNPAR; + t.c_oflag = 0; + t.c_lflag = 0; + t.c_cc[VMIN ] = 1; + t.c_cc[VTIME] = 0; + + cfsetispeed(&t, speed); + cfsetospeed(&t, speed); + + tcsetattr(fd, TCSANOW, &t); +} + +int logitech_command(int fd, char *c) +{ + int i; + unsigned char d; + for (i = 0; c[i]; i++) { + write(fd, c + i, 1); + if (readchar(fd, &d, 1000)) + return -1; + if (c[i] != d) + return -1; + } + return 0; +} + +int magellan_init(int fd, long *id, long *extra) +{ + write(fd, "m3\rpBB\rz\r", 9); + return 0; +} + +int warrior_init(int fd, long *id, long *extra) +{ + if (logitech_command(fd, "*S")) return -1; + setline(fd, CS8, B4800); + return 0; +} + +int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout) +{ + unsigned char b = 0; + + while (!readchar(fd, &b, timeout)) { + if (b == 0x0a) continue; + *d++ = b; + if (b == c) break; + } + + *d = 0; + + return -(b != c); +} + +int spaceball_waitcmd(int fd, char c, char *d) +{ + int i; + + for (i = 0; i < 8; i++) { + if (spaceball_waitchar(fd, 0x0d, d, 1000)) + return -1; + if (d[0] == c) + return 0; + } + + return -1; +} + +int spaceball_cmd(int fd, char *c, char *d) +{ + int i; + + for (i = 0; c[i]; i++) + write(fd, c + i, 1); + write(fd, "\r", 1); + + i = spaceball_waitcmd(fd, toupper(c[0]), d); + + return i; +} + +#define SPACEBALL_1003 1 +#define SPACEBALL_2003B 3 +#define SPACEBALL_2003C 4 +#define SPACEBALL_3003C 7 +#define SPACEBALL_4000FLX 8 +#define SPACEBALL_4000FLX_L 9 + +int spaceball_init(int fd, long *id, long *extra) +{ + char r[64]; + + if (spaceball_waitchar(fd, 0x11, r, 4000) || + spaceball_waitchar(fd, 0x0d, r, 1000)) + return -1; + + if (spaceball_waitcmd(fd, '@', r)) + return -1; + + if (strncmp("@1 Spaceball alive", r, 18)) + return -1; + + if (spaceball_waitcmd(fd, '@', r)) + return -1; + + if (spaceball_cmd(fd, "hm", r)) + return -1; + + if (!strncmp("Hm2003B", r, 7)) + *id = SPACEBALL_2003B; + if (!strncmp("Hm2003C", r, 7)) + *id = SPACEBALL_2003C; + if (!strncmp("Hm3003C", r, 7)) + *id = SPACEBALL_3003C; + + if (!strncmp("HvFirmware", r, 10)) { + + if (spaceball_cmd(fd, "\"", r)) + return -1; + + if (strncmp("\"1 Spaceball 4000 FLX", r, 21)) + return -1; + + if (spaceball_waitcmd(fd, '"', r)) + return -1; + + if (strstr(r, " L ")) + *id = SPACEBALL_4000FLX_L; + else + *id = SPACEBALL_4000FLX; + + if (spaceball_waitcmd(fd, '"', r)) + return -1; + + if (spaceball_cmd(fd, "YS", r)) + return -1; + + if (spaceball_cmd(fd, "M", r)) + return -1; + + return 0; + } + + if (spaceball_cmd(fd, "P@A@A", r) || + spaceball_cmd(fd, "FT@", r) || + spaceball_cmd(fd, "MSS", r)) + return -1; + + return 0; +} + +int stinger_init(int fd, long *id, long *extra) +{ + int i; + unsigned char c; + unsigned char *response = "\r\n0600520058C272"; + + if (write(fd, " E5E5", 5) != 5) /* Enable command */ + return -1; + + for (i = 0; i < 16; i++) /* Check for Stinger */ + if (readchar(fd, &c, 200) || (c != response[i])) + return -1; + + return 0; +} + +int mzp_init(int fd, long *id, long *extra) +{ + if (logitech_command(fd, "*X*q")) return -1; + setline(fd, CS8, B9600); + return 0; +} + +int newton_init(int fd, long *id, long *extra) +{ + int i; + unsigned char c; + unsigned char response[35] = + { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00, + 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61, + 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e, + 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x03, 0xdd, 0xe7 }; + + for (i = 0; i < 35; i++) + if (readchar(fd, &c, 400) || (c != response[i])) + return -1; + + return 0; +} + +int twiddler_init(int fd, long *id, long *extra) +{ + unsigned char c[10]; + int count, line; + + /* Turn DTR off, otherwise the Twiddler won't send any data. */ + if (ioctl(fd, TIOCMGET, &line)) return -1; + line &= ~TIOCM_DTR; + if (ioctl(fd, TIOCMSET, &line)) return -1; + + /* Check whether the device on the serial line is the Twiddler. + * + * The Twiddler sends data packets of 5 bytes which have the following + * properties: the MSB is 0 on the first and 1 on all other bytes, and + * the high order nibble of the last byte is always 0x8. + * + * We read and check two of those 5 byte packets to be sure that we + * are indeed talking to a Twiddler. */ + + /* Read at most 5 bytes until we find one with the MSB set to 0 */ + for (count = 0; count < 5; count++) { + if (readchar(fd, c+0, 500)) return -1; + if ((c[0] & 0x80) == 0) break; + } + + if (count == 5) { + /* Could not find header byte in data stream */ + return -1; + } + + /* Read remaining 4 bytes plus the full next data packet */ + for (count = 1; count < 10; count++) { + if (readchar(fd, c+count, 500)) return -1; + } + + /* Check whether the bytes of both data packets obey the rules */ + for (count = 1; count < 10; count++) { + if ((count % 5 == 0 && (c[count] & 0x80) != 0) + || (count % 5 == 4 && (c[count] & 0xF0) != 0x80) + || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) { + /* Invalid byte in data packet */ + return -1; + } + } + + return 0; +} + +int dump_init(int fd, long *id, long *extra) +{ + unsigned char c, o = 0; + + c = 0x80; + + if (write(fd, &c, 1) != 1) /* Enable command */ + return -1; + + while (1) + if (!readchar(fd, &c, 1)) { + printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x'); + o = 1; + } else { + if (o) { + printf("\n"); + o = 0; + } + } +} + +struct input_types { + char name[16]; + char name2[16]; + int speed; + int flags; + unsigned long type; + unsigned long extra; + int flush; + int (*init)(int fd, long *id, long *extra); +}; + +struct input_types input_types[] = { + +{ "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0x00, 1, NULL }, +{ "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0x00, 1, NULL }, +{ "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0x00, 0, spaceball_init }, +{ "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0x00, 1, magellan_init }, +{ "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0x00, 1, warrior_init }, +{ "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0x00, 1, stinger_init }, +{ "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0x01, 1, NULL }, +{ "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0x01, 1, NULL }, +{ "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0x00, 1, NULL }, +{ "--mshack", "-ms", B1200, CS7, SERIO_MS, 0x01, 1, NULL }, +{ "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0x01, 1, NULL }, +{ "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0x11, 1, NULL }, +{ "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0x13, 1, mzp_init }, +{ "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0x00, 0, NULL }, +{ "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0x00, 0, newton_init }, +{ "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0x00, 0, NULL }, +{ "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0x00, 0, NULL }, +{ "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0x00, 1, NULL }, +#if 0 +{ "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0x00, 0, twiddler_init }, +{ "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0x00, 0, twiddler_init }, +{ "--ipod-remote", "-ipod", B9600, CS8, SERIO_IPOD_REM, 0x00, 0, NULL }, +#endif +{ "--dump", "-dump", B2400, CS8, 0, 0x00, 0, dump_init }, +{ "", "", 0, 0 } + +}; + +int main(int argc, char **argv) +{ + unsigned long devt; + int ldisc; + int type; + long id, extra; + int fd; + char c; + + if (argc < 2 || argc > 4 || (argc == 4 && strcmp(argv[3], "--daemon")) || !strcmp("--help", argv[1])) { + puts(""); + puts("Usage: inputttach <mode> <device>"); + puts(""); + puts("Modes:"); + puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards"); + puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger"); + puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX"); + puts(" --magellan -mag Magellan / SpaceMouse"); + puts(" --warrior -war WingMan Warrior"); + puts(" --stinger -stng Gravis Stinger"); + puts(" --mousesystems -msc 3-button Mouse Systems mice"); + puts(" --sunmouse -sun 3-button Sun mice"); + puts(" --microsoft -bare 2-button Microsoft mice"); + puts(" --mshack -ms 3-button mice in Microsoft mode"); + puts(" --mouseman -mman 3-button Logitech and Genius mice"); + puts(" --intellimouse -ms3 Microsoft IntelliMouse"); + puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel"); + puts(" --iforce -ifor I-Force joysticks and wheels"); + puts(" --h3600ts -ipaq Ipaq h3600 touchscreen"); + puts(" --stowawaykbd -ipaqkbd Stowaway keyboard"); + puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard"); +#if 0 + puts(" --twiddler -twid Handykey Twiddler chording keyboard"); + puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick"); + puts(" --ipod-remote -ipod iPod remote control"); +#endif + puts(""); + return 1; + } + + for (type = 0; input_types[type].speed; type++) { + if (!strncasecmp(argv[1], input_types[type].name, 16) || + !strncasecmp(argv[1], input_types[type].name2, 16)) + break; + } + + if (!input_types[type].speed) { + fprintf(stderr, "inputattach: invalid mode\n"); + return 1; + } + + if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) { + perror("inputattach"); + return 1; + } + + setline(fd, input_types[type].flags, input_types[type].speed); + + if (input_types[type].flush) + while (!readchar(fd, &c, 100)); + + id = 0; + extra = input_types[type].extra; + + if (input_types[type].init && input_types[type].init(fd, &id, &extra)) { + fprintf(stderr, "inputattach: device initialization failed\n"); + return 1; + } + + ldisc = N_MOUSE; + if(ioctl(fd, TIOCSETD, &ldisc)) { + fprintf(stderr, "inputattach: can't set line discipline\n"); + return 1; + } + + devt = SERIO_RS232 | input_types[type].type | (id << 8) | (extra << 16); + + if(ioctl(fd, SPIOCSTYPE, &devt)) { + fprintf(stderr, "inputattach: can't set device type\n"); + return 1; + } + + if (argc == 4 && !strcmp(argv[3],"--daemon")) + daemon(0,0); + + read(fd, NULL, 0); + + ldisc = 0; + ioctl(fd, TIOCSETD, &ldisc); + close(fd); + + return 0; +} diff --git a/source/a/gpm/mouseconfig b/source/a/gpm/mouseconfig new file mode 100644 index 00000000..4e9575f5 --- /dev/null +++ b/source/a/gpm/mouseconfig @@ -0,0 +1,7 @@ +#!/bin/sh +# Starts the Slackware mouse configuration menu, where you can set your +# /dev/mouse link and configure gpm. +COLOR=on +export COLOR +cd / +/bin/sh /var/log/setup/setup.mouse / diff --git a/source/a/gpm/setup.mouse b/source/a/gpm/setup.mouse new file mode 100644 index 00000000..dcdc6a8f --- /dev/null +++ b/source/a/gpm/setup.mouse @@ -0,0 +1,154 @@ +#!/bin/sh +#BLURB="Configure the console mouse support (GPM)." +T_PX=$1 +TMP=/var/log/setup/tmp +GPM=/usr/sbin/gpm +# If the mouse is USB, we can autodetect it: +if [ -r /proc/bus/usb/devices ]; then + if cat /proc/bus/usb/devices | grep usb_mouse 1> /dev/null 2> /dev/null ; then + MOUSE_TYPE=usb + MTYPE="imps2" + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + fi +fi + +if [ "$MOUSE_TYPE" = "" ]; then + dialog --title "MOUSE CONFIGURATION" --default-item "imps2" --menu \ +"This part of the configuration \ +process will create a /dev/mouse link pointing to your default mouse device. \ +You can change the /dev/mouse link later if the mouse doesn't work, or if \ +you switch to a different type of pointing device. We will also use the \ +information about the mouse to set the correct protocol for gpm, the Linux \ +mouse server. Please select a mouse type \ +from the list below:" 20 76 8 \ + "ps2" "PS/2 port mouse (most desktops and laptops)" \ + "usb" "USB connected mouse" \ + "imps2" "Microsoft PS/2 Intellimouse" \ + "exps2" "Intellimouse Explorer PS/2" \ + "bare" "2 button Microsoft compatible serial mouse" \ + "ms" "3 button Microsoft compatible serial mouse" \ + "mman" "Logitech serial MouseMan and similar devices" \ + "msc" "MouseSystems serial (most 3 button serial mice)" \ + "pnp" "Plug and Play (serial mice that do not work with ms)" \ + "ms3" "Microsoft serial Intellimouse" \ + "netmouse" "Genius Netmouse on PS/2 port" \ + "logi" "Some serial Logitech devices" \ + "logim" "Make serial Logitech behave like msc" \ + "atibm" "ATI XL busmouse (mouse card)" \ + "inportbm" "Microsoft busmouse (mouse card)" \ + "logibm" "Logitech busmouse (mouse card)" \ + "ncr" "A pointing pen (NCR3125) on some laptops" \ + "twid" "Twiddler keyboard, by HandyKey Corp" \ + "genitizer" "Genitizer tablet (relative mode)" \ + "js" "Use a joystick as a mouse" \ + "wacom" "Wacom serial graphics tablet" \ + 2> $TMP/mtype + if [ ! $? = 0 ]; then + rm -f $TMP/mtype + exit + fi + if [ -f $TMP/mtype ]; then + MOUSE_TYPE="`cat $TMP/mtype`" + else + unset MOUSE_TYPE + fi + rm -f $TMP/mtype + if [ "$MOUSE_TYPE" = "bare" -o "$MOUSE_TYPE" = "ms" \ + -o "$MOUSE_TYPE" = "mman" -o "$MOUSE_TYPE" = "msc" \ + -o "$MOUSE_TYPE" = "genitizer" \ + -o "$MOUSE_TYPE" = "pnp" -o "$MOUSE_TYPE" = "ms3" \ + -o "$MOUSE_TYPE" = "logi" -o "$MOUSE_TYPE" = "logim" \ + -o "$MOUSE_TYPE" = "wacom" -o "$MOUSE_TYPE" = "twid" ]; then + dialog --title "SELECT SERIAL PORT" --menu "Your mouse requires a \ +serial port. Which one would you like to use?" 12 50 4 \ + "/dev/ttyS0" "(COM1: under DOS)" \ + "/dev/ttyS1" "(COM2: under DOS)" \ + "/dev/ttyS2" "(COM3: under DOS)" \ + "/dev/ttyS3" "(COM4: under DOS)" 2> $TMP/mport + if [ ! $? = 0 ]; then + rm -f $TMP/mport + exit + fi + MDEVICE="`cat $TMP/mport`" + SHORT_MDEVICE=`basename $MDEVICE` + ( cd $T_PX/dev ; rm -f mouse ; ln -sf $SHORT_MDEVICE mouse ) + # For the serial mice, the protocol is the same as the mouse type: + MTYPE=$MOUSE_TYPE + rm -f $TMP/mport + elif [ "$MOUSE_TYPE" = "ps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "ncr" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ncr" + elif [ "$MOUSE_TYPE" = "exps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="exps2" + elif [ "$MOUSE_TYPE" = "imps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="imps2" + elif [ "$MOUSE_TYPE" = "logibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf logibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "atibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf atibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "inportbm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf inportbm mouse ) + MTYPE="bm" + elif [ "$MOUSE_TYPE" = "js" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf js0 mouse ) + MTYPE="js" + elif [ "$MOUSE_TYPE" = "usb" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + MTYPE="imps2" + fi +fi + +# OK, we know enough now to create a sample rc.gpm: +cat << EOF > $T_PX/etc/rc.d/rc.gpm-sample +#!/bin/sh +# Start/stop/restart the GPM mouse server: + +if [ "\$1" = "stop" ]; then + echo "Stopping gpm..." + $GPM -k +elif [ "\$1" = "restart" ]; then + echo "Restarting gpm..." + $GPM -k + sleep 1 + $GPM -m /dev/mouse -t $MTYPE +else # assume \$1 = start: + echo "Starting gpm: $GPM -m /dev/mouse -t $MTYPE" + $GPM -m /dev/mouse -t $MTYPE +fi + +# There is another way to run GPM, where it acts as a repeater outputting a +# virtual MouseSystems mouse on /dev/gpmdata. This is useful for feeding +# gpm's data to X, especially if you've got a busmouse (in that situation X +# and gpm may not coexist without using a repeater). To try running a GPM +# repeater for X, change the gpm command line to look like this: +# $GPM -R msc -m /dev/mouse -t $MTYPE +# Then, make sure that the mouse configuration in your XF86Config file refers +# to the repeater device (/dev/gpmdata) and a MouseSystems mouse type. If you +# edit the file directly, you'll want the lines to look like this (minus the +# comment marks '#' shown here, of course): +#Section "Pointer" +# Protocol "MouseSystems" +# Device "/dev/gpmdata" + +EOF +chmod 755 $T_PX/etc/rc.d/rc.gpm-sample +# Now ask if this should be the new rc.gpm: + dialog --title "GPM CONFIGURATION" --yesno \ +"The gpm program allows you to cut and paste text on\n\ +the virtual consoles using a mouse. If you choose to\n\ +run it at boot time, this line will be added to your\n\ +/etc/rc.d/rc.gpm:\n\ +\n\ + $GPM -m /dev/mouse -t $MTYPE \n\ +\n\ +Shall we load the gpm program at boot time?" 12 58 + if [ $? = 0 ]; then + mv $T_PX/etc/rc.d/rc.gpm-sample $T_PX/etc/rc.d/rc.gpm + fi diff --git a/source/a/gpm/slack-desc b/source/a/gpm/slack-desc new file mode 100644 index 00000000..17774f10 --- /dev/null +++ b/source/a/gpm/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------------------------------------------------------| +gpm: gpm (general purpose mouse server) +gpm: +gpm: The general purpose mouse server, or gpm, allows you to use the mouse +gpm: to cut and paste text from the screen. It also acts as a mouse +gpm: server for applications running on the Linux console, such as the +gpm: Midnight Commander file manager. +gpm: +gpm: NOTE: This program may cause problems when you start X on systems +gpm: that do not use a serial mouse. If you get an 'unable to open mouse +gpm: device' error from X, disable /etc/rc.d/rc.gpm. +gpm: diff --git a/source/a/grep/grep.SlackBuild b/source/a/grep/grep.SlackBuild new file mode 100755 index 00000000..1b2ac8e7 --- /dev/null +++ b/source/a/grep/grep.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2005-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.5.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-grep + +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 grep-$VERSION +tar xvf $CWD/grep-$VERSION.tar.bz2 || exit 1 +cd grep-$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 \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-perl-regexp \ + --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 + +# **************************************************************************** +# Makefile installs different binaries for each of grep, egrep, and fgrep +# This is how we used to do it... +#( cd $PKG/bin +# rm -f egrep ; ln -sf grep egrep +# rm -f fgrep ; ln -sf grep fgrep +#) +# **************************************************************************** + +# Make symlinks in /usr/bin: +mkdir -p $PKG/usr/bin +( cd $PKG/usr/bin + ln -sf ../../bin/grep . + ln -sf ../../bin/egrep . + ln -sf ../../bin/fgrep . +) + +# 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 +) + +# Compress info pages +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/grep-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/grep-$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/grep-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/grep/slack-desc b/source/a/grep/slack-desc new file mode 100644 index 00000000..fe831013 --- /dev/null +++ b/source/a/grep/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------------------------------------------------------| +grep: grep (print lines matching a pattern) +grep: +grep: This is GNU grep, the "fastest grep in the west" (we hope). Grep +grep: searches through textual input for lines which contain a match to a +grep: specified pattern and then prints the matching lines. +grep: +grep: +grep: +grep: +grep: +grep: diff --git a/source/a/gzip/gzip.SlackBuild b/source/a/gzip/gzip.SlackBuild new file mode 100755 index 00000000..c2719ebd --- /dev/null +++ b/source/a/gzip/gzip.SlackBuild @@ -0,0 +1,146 @@ +#!/bin/sh +# Copyright 2006-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=gzip +VERSION=${VERSION:-1.3.12} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +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 + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $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 {} \; + +# The following command renames the internal implementation of futimens +# to gl_futimens as newer versions of Glibc provide an incompatible version: +sed -i -e "s/futimens/gl_&/" $(grep -lr futimens *) + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# The ncompress package already has this: +rm -f $PKG/bin/uncompress + +# 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 +) + +# Fix locations: +#( cd $PKG + #mkdir bin + #mv usr/bin/gzip bin + #( cd bin ; rm -rf gunzip ) + #( cd bin ; ln -sf gzip gunzip ) + #( cd bin ; rm -rf zcat ) + #( cd bin ; ln -sf gzip zcat ) + #( cd usr/bin ; rm -rf gzip ) + #( cd usr/bin ; ln -sf ../../bin/gzip gzip ) + #( cd usr/bin ; rm -rf gunzip ) + #( cd usr/bin ; ln -sf ../../bin/gunzip gunzip ) + #( cd usr/bin ; rm -rf zcat ) + #( cd usr/bin ; ln -sf ../../bin/zcat zcat ) + #( cd usr/bin ; rm -rf zcmp ) + #( cd usr/bin ; ln -sf zdiff zcmp ) + #( cd usr/bin ; rm -rf zegrep ) + #( cd usr/bin ; ln -sf zgrep zegrep ) + #( cd usr/bin ; rm -rf zfgrep ) + #( cd usr/bin ; ln -sf zgrep zfgrep ) +#) + +mkdir -p $PKG/usr/bin +( cd $PKG/bin + for file in * ; do + ( cd $PKG/usr/bin ; ln -sf ../../bin/$file . ) + done +) + +# 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 INSTALL NEWS README README-alpha THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz + diff --git a/source/a/gzip/slack-desc b/source/a/gzip/slack-desc new file mode 100644 index 00000000..ef26d586 --- /dev/null +++ b/source/a/gzip/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------------------------------------------------------| +gzip: gzip (file compression utility) +gzip: +gzip: Gzip reduces the size of the named files using Lempel-Ziv coding +gzip: (LZ77). Whenever possible, each file is replaced by one with the +gzip: extension .gz, while keeping the same ownership modes, access and +gzip: modification times. +gzip: +gzip: +gzip: +gzip: +gzip: diff --git a/source/a/hdparm/hdparm.SlackBuild b/source/a/hdparm/hdparm.SlackBuild new file mode 100755 index 00000000..293b1cf8 --- /dev/null +++ b/source/a/hdparm/hdparm.SlackBuild @@ -0,0 +1,66 @@ +#!/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:-9.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-hdparm + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf hdparm-$VERSION +tar xvf $CWD/hdparm-$VERSION.tar.bz2 || exit 1 +cd hdparm-$VERSION || exit 1 +chown -R root:root . +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/sbin +cat hdparm > $PKG/sbin/hdparm +chmod 755 $PKG/sbin/hdparm +mkdir -p $PKG/usr/sbin +( cd $PKG/usr/sbin + ln -sf ../../sbin/hdparm . +) +mkdir -p $PKG/usr/man/man8 +cat hdparm.8 | gzip -9c > $PKG/usr/man/man8/hdparm.8.gz +mkdir -p $PKG/usr/doc/hdparm-$VERSION +cp -a \ + LICENSE.TXT README.acoustic hdparm.lsm contrib \ + $PKG/usr/doc/hdparm-$VERSION +# I'm also not sure why I'm putting a binary in the docs, but... +rm -f $PKG/usr/doc/hdparm-$VERSION/contrib/fix_standby.c + +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/hdparm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/hdparm/slack-desc b/source/a/hdparm/slack-desc new file mode 100644 index 00000000..dc846e07 --- /dev/null +++ b/source/a/hdparm/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------------------------------------------------------| +hdparm: hdparm (read/set hard drive parameters) +hdparm: +hdparm: hdparm provides a command line interface to various hard disk ioctls +hdparm: supported by the Linux ATA/IDE device driver subsystem. This may be +hdparm: required to enable higher-performing disk modes. +hdparm: +hdparm: hdparm was written by Mark Lord. +hdparm: +hdparm: +hdparm: +hdparm: diff --git a/source/a/infozip/infozip.SlackBuild b/source/a/infozip/infozip.SlackBuild new file mode 100755 index 00000000..900c4f95 --- /dev/null +++ b/source/a/infozip/infozip.SlackBuild @@ -0,0 +1,92 @@ +#!/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=6.0 +ZIP=3.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-infozip + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zip$(echo $ZIP | tr -d .) +tar xvf $CWD/zip$(echo $ZIP | tr -d .).tar.?z* || exit 1 +cd zip$(echo $ZIP | tr -d .) +chown -R root:root . +mkdir -p $PKG/usr/doc/zip-$ZIP +cp -a BUGS CHANGES INSTALL LICENSE README* TODO US* WHATSNEW WHERE \ + $PKG/usr/doc/zip-$ZIP +chmod 644 $PKG/usr/doc/zip-$ZIP/* +make -f unix/Makefile generic_gcc || exit 1 +mkdir -p $PKG/usr/bin +cat zip > $PKG/usr/bin/zip +cat zipnote > $PKG/usr/bin/zipnote +cat zipsplit > $PKG/usr/bin/zipsplit +cat zipcloak > $PKG/usr/bin/zipcloak +mkdir -p $PKG/usr/man/man1 +for page in man/zip.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$(basename $page).gz +done + +cd $TMP +rm -rf unzip$(echo $VERSION | tr -d .) +tar xvf $CWD/unzip$(echo $VERSION | tr -d .).tar.?z* || exit 1 +cd unzip$(echo $VERSION | tr -d .) +chown -R root:root . +mkdir -p $PKG/usr/doc/unzip-$VERSION +cp -a BUGS COPYING* Contents History.* INSTALL LICENSE README ToDo WHERE \ + $PKG/usr/doc/unzip-$VERSION +chmod 644 $PKG/usr/doc/unzip-$VERSION/* +make -f unix/Makefile generic || exit 1 +cat unzip > $PKG/usr/bin/unzip +cat unzipsfx > $PKG/usr/bin/unzipsfx +cat funzip > $PKG/usr/bin/funzip +cat unix/zipgrep > $PKG/usr/bin/zipgrep +( cd $PKG/usr/bin ; ln -sf unzip zipinfo ) +chmod 755 $PKG/usr/bin/* +cd man +for page in funzip.1 unzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cd .. +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/infozip-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/zip-$ZIP + rm -rf $TMP/unzip-$VERSION + rm -rf $PKG +fi diff --git a/source/a/infozip/slack-desc b/source/a/infozip/slack-desc new file mode 100644 index 00000000..92e64316 --- /dev/null +++ b/source/a/infozip/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------------------------------------------------------| +infozip: infozip (Info-ZIP's zip and unzip utilities) +infozip: +infozip: zip is a compression and file packaging utility for Unix, VMS, MSDOS, +infozip: OS/2, Windows NT, Minix, Atari and Macintosh, Amiga and Acorn RISC OS. +infozip: It is analogous to a combination of the UNIX commands tar(1) and +infozip: compress(1) and is compatible with PKZIP (Phil Katz's ZIP). A +infozip: companion program (unzip(1L)), unpacks zip archives. +infozip: +infozip: +infozip: +infozip: diff --git a/source/a/inotify-tools/inotify-tools.SlackBuild b/source/a/inotify-tools/inotify-tools.SlackBuild new file mode 100755 index 00000000..82e807fc --- /dev/null +++ b/source/a/inotify-tools/inotify-tools.SlackBuild @@ -0,0 +1,109 @@ +#!/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. + +PKGNAM=inotify-tools +VERSION=${VERSION:-3.13} +ARCH=${ARCH:-x86_64} +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 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAM}-${VERSION}/html \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || 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 INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-${VERSION} +# Get rid of html api documentation: +rm -rf $PKG/usr/doc/${PKGNAM}-${VERSION}/html + +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/a/inotify-tools/slack-desc b/source/a/inotify-tools/slack-desc new file mode 100644 index 00000000..f5cb8c6e --- /dev/null +++ b/source/a/inotify-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------------------------------------------------------| +inotify-tools: inotify-tools (command line utilities for inotify) +inotify-tools: +inotify-tools: inotify-tools is a set of command-line programs for Linux providing a +inotify-tools: simple interface to inotify. These programs can be used to monitor +inotify-tools: and act upon filesystem events. +inotify-tools: +inotify-tools: For more information see the inotifywait and inotifywatch man pages. +inotify-tools: +inotify-tools: inotify-tools home: http://inotify-tools.sourceforge.net/ +inotify-tools: +inotify-tools: diff --git a/source/a/jfsutils/jfsutils.SlackBuild b/source/a/jfsutils/jfsutils.SlackBuild new file mode 100755 index 00000000..d97ebcb6 --- /dev/null +++ b/source/a/jfsutils/jfsutils.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=${VERSION:-1.1.14} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jfsutils + +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 jfsutils-$VERSION +tar xvf $CWD/jfsutils-$VERSION.tar.?z* || exit 1 +cd jfsutils-$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 \ + --disable-dependency-tracking \ + --build=$ARCH-slackware-linux + +make + +mkdir -p $PKG/sbin +cat fsck/jfs_fsck > $PKG/sbin/jfs_fsck +( cd $PKG/sbin ; ln -sf jfs_fsck fsck.jfs ) +cat mkfs/jfs_mkfs > $PKG/sbin/jfs_mkfs +( cd $PKG/sbin ; ln -sf jfs_mkfs mkfs.jfs ) +cat logdump/jfs_logdump > $PKG/sbin/jfs_logdump +cat fscklog/jfs_fscklog > $PKG/sbin/jfs_fscklog +cat xpeek/jfs_debugfs > $PKG/sbin/jfs_debugfs +cat tune/jfs_tune > $PKG/sbin/jfs_tune +chmod 755 $PKG/sbin/* + +mkdir -p $PKG/usr/man/man8 +for file in `find . -name "*.8"` ; do + cat $file | gzip -9c > $PKG/usr/man/man8/`basename $file`.gz +done +( cd $PKG/usr/man/man8 + ln -sf jfs_fsck.8.gz fsck.jfs.8.gz + ln -sf jfs_mkfs.8.gz mkfs.jfs.8.gz +) + +mkdir -p $PKG/usr/doc/jfsutils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/jfsutils-$VERSION + +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/jfsutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/jfsutils/slack-desc b/source/a/jfsutils/slack-desc new file mode 100644 index 00000000..d9c52dd2 --- /dev/null +++ b/source/a/jfsutils/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------------------------------------------------------| +jfsutils: jfsutils (IBM JFS utilities) +jfsutils: +jfsutils: Utilities for managing IBM's Journaled File System (JFS) under Linux: +jfsutils: jfs_debugfs - shell-type JFS file system editor. +jfsutils: jfs_fsck - check and repair a JFS formatted device. +jfsutils: jfs_fscklog - extract a JFS fsck service log into a file. +jfsutils: jfs_logdump - dump a JFS formatted device's journal log. +jfsutils: jfs_mkfs - create a JFS formatted partition. +jfsutils: jfs_tune - adjust tunable file system parameters on JFS. +jfsutils: +jfsutils: diff --git a/source/a/kbd/kbd.SlackBuild b/source/a/kbd/kbd.SlackBuild new file mode 100755 index 00000000..7ac0b142 --- /dev/null +++ b/source/a/kbd/kbd.SlackBuild @@ -0,0 +1,177 @@ +#!/bin/sh + +# Copyright 2005-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. + +PKGNAM=kbd +VERSION=1.15 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:--j4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kbd + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP + +# Add some extra fonts: +( cd $PKG ; explodepkg $CWD/sources/extraf.tgz ) + +# Extract source: +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.bz2 +cd $PKGNAM-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Apply patches: +# These are taken from Fedora's SRPM: +zcat $CWD/sources/kbd-1.15-po.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-keycodes-man.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-sparc.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-unicode_start.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-resizecon-x86_64.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-quiet_doc.patch | patch -p1 --verbose || exit 1 + +# This is from Fedora's spec file: +# 7-bit maps are obsolete; so are non-euro maps +( cd data/keymaps/i386 + mv qwerty/fi.map qwerty/fi-old.map + cp -fav qwerty/fi-latin9.map qwerty/fi.map + cp -fav qwerty/pt-latin9.map qwerty/pt.map + cp -fav qwerty/sv-latin1.map qwerty/se-latin1.map + mv -fv azerty/fr.map azerty/fr-old.map + cp -fav azerty/fr-latin9.map azerty/fr.map + cp -fav azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias + + # Rename conflicting keymaps + mv -fv dvorak/no.map dvorak/no-dvorak.map + mv -fv fgGIod/trf.map fgGIod/trf-fgGIod.map + mv -fv olpc/es.map olpc/es-olpc.map + mv -fv olpc/pt.map olpc/pt-olpc.map + mv -fv qwerty/cz.map qwerty/cz-qwerty.map ) + +# Apply a euro fix for the nl.map from alienBOB: +zcat $CWD/sources/nl.euro.diff.gz | patch -p1 || exit 1 + +# Configure: +./configure \ + --prefix=/usr \ + --localedir=/usr/share/locale/ \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --datadir=/usr/share/kbd \ + --enable-nls || exit 1 + +# Build: +make $NUMJOBS || exit 1 + +# Install into package: +make install DESTDIR=$PKG || exit 1 +# This is where it's always been in Slackware, so let's move it back: +( cd $PKG + mkdir -vpm755 bin + mv -fv usr/bin/loadkeys bin/ + cd usr/bin ; ln -vsf ../../bin/loadkeys . ) + +# ro_win.map.gz is useless +rm -fv $PKG/usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz + +# The rhpl keyboard layout table is indexed by kbd layout names, so we need a +# Korean keyboard +ln -vfs us.map.gz $PKG/usr/share/kbd/keymaps/i386/qwerty/ko.map.gz + +# Install the setup script that will be run from the Slackware installer: +mkdir -pm755 $PKG/var/log/setup +install -vpm755 $CWD/setup.setconsolefont $PKG/var/log/setup/ +install -vpm755 $CWD/setconsolefont $PKG/usr/bin/ + +# Copy docs: +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + ChangeLog COPYING README doc/* \ + $PKG/usr/doc/$PKGNAM-$VERSION +rm -f $PKG/usr/doc/$PKGNAM-$VERSION/kbd.FAQ.sgml + +# Additional keymaps: +# This is the keymap for Speakup (http://linux-speakup.org) users: +cat $CWD/sources/speakupmap.map.gz > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakupmap.map.gz +# Another keymap for Speakup from Thomas Ward, for JFW users. +tar xvf $CWD/sources/speakup-jfw.tar.gz +( cd speakup-jfw + cat speakup-jfw.map | gzip -9c > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.map.gz + cat readme > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.readme ) + +# Create the default run control script which will set the +# console font to the default: +mkdir -pm755 $PKG/etc/rc.d +cat << EOF > $PKG/etc/rc.d/rc.font.new +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v +EOF +chmod 755 $PKG/etc/rc.d/rc.font.new + +# Create package post-install script: +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +#if [ -r etc/rc.d/rc.font ]; then +# rm -f etc/rc.d/rc.font.new +#else +# mv etc/rc.d/rc.font.new etc/rc.d/rc.font +#fi +EOF + +# Compress man pages: +( cd $PKG/usr/man + find . -name "*.?" -type f | xargs gzip -9 +) + +# Install package description: +install -vpm644 $CWD/slack-desc $PKG/install/ + +# 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 +) + +cd $PKG +makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz +#EOF diff --git a/source/a/kbd/setconsolefont b/source/a/kbd/setconsolefont new file mode 100644 index 00000000..d4cfb875 --- /dev/null +++ b/source/a/kbd/setconsolefont @@ -0,0 +1,384 @@ +#!/bin/sh + +# 06-May-2009 +# Updated by Stuart Winter <mozes@slackware.com> +# Run 'setfont' in a chroot. This makes setfont work +# correctly in the installer. + +if [ "$TMP" = "" ]; then + TMP=/var/log/setup/tmp +fi + +load_font() { + if [ ! -z "$T_PX" ]; then + CHROOT="chroot $T_PX" + fi + + $CHROOT setfont $* + if [ ! $? = 0 ]; then + if [ -r $T_PX/usr/share/kbd/consolefonts/$1 ]; then + $CHROOT setfont $T_PX/usr/share/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + elif [ -r $T_PX/usr/lib/kbd/consolefonts/$1 ]; then + $CHROOT setfont $T_PX/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + elif [ -r /var/adm/mount/live/usr/lib/kbd/consolefonts/$1 ]; then + $CHROOT setfont /var/adm/mount/live/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + else # load default font + $CHROOT setfont + fi + fi +} + +# Determine effective root path: +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$1" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +if [ ! "$COLOR" = "off" -o -r $TMP/SeTcolor -o -r /tmp/SeTcolor ]; then # use color menus + if [ ! "$1" = "" ]; then + dialog --title "CONSOLE FONT CONFIGURATION" --defaultno --yesno "Would you like to try \ +out some custom screen fonts?" 5 60 + if [ $? = 1 ]; then + exit + fi + fi + REPLY=`mktemp -q $TMP/temp.XXXXXX` + FONT="161.cp.gz -16" + while [ 0 ]; do + dialog --default-item "$FONT" --title "SELECT A SCREEN FONT" --menu "Select one of the following \ +custom fonts. If you decide you like it, you can make it your new default \ +screen font. You'll be able to try as many of these as you like." 21 65 12 \ +"161.cp.gz -16" "" \ +"162.cp.gz -16" "" \ +"163.cp.gz -16" "" \ +"164.cp.gz -16" "" \ +"165.cp.gz -16" "" \ +"737.cp.gz -16" "" \ +"880.cp.gz -16" "" \ +"928.cp.gz -16" "" \ +"972.cp.gz -16" "" \ +"Agafari-12.psfu.gz" "" \ +"Agafari-14.psfu.gz" "" \ +"Agafari-16.psfu.gz" "" \ +"Cyr_a8x14.psfu.gz" "" \ +"Cyr_a8x16.psfu.gz" "" \ +"Cyr_a8x8.psfu.gz" "" \ +"Goha-12.psfu.gz" "" \ +"Goha-14.psfu.gz" "" \ +"Goha-16.psfu.gz" "" \ +"GohaClassic-12.psfu.gz" "" \ +"GohaClassic-14.psfu.gz" "" \ +"GohaClassic-16.psfu.gz" "" \ +"Lat2-Terminus16.psfu.gz" "" \ +"LatArCyrHeb-08.psfu.gz" "" \ +"LatArCyrHeb-14.psfu.gz" "" \ +"LatArCyrHeb-16+.psfu.gz" "" \ +"LatArCyrHeb-16.psfu.gz" "" \ +"LatArCyrHeb-19.psfu.gz" "" \ +"Mik_8x16.gz" "" \ +"UniCyrExt_8x16.psf.gz" "" \ +"UniCyr_8x14.psf.gz" "" \ +"UniCyr_8x16.psf.gz" "" \ +"UniCyr_8x8.psf.gz" "" \ +"alt-8x14.gz" "" \ +"alt-8x16.gz" "" \ +"alt-8x8.gz" "" \ +"altc-8x16.gz" "" \ +"aply16.psf.gz" "" \ +"arm8.fnt.gz" "" \ +"b.fnt.gz" "" \ +"c.fnt.gz" "" \ +"cp1250.psfu.gz" "" \ +"cp850-8x14.psfu.gz" "" \ +"cp850-8x16.psfu.gz" "" \ +"cp850-8x8.psfu.gz" "" \ +"cp857.08.gz" "" \ +"cp857.14.gz" "" \ +"cp857.16.gz" "" \ +"cp865-8x14.psfu.gz" "" \ +"cp865-8x16.psfu.gz" "" \ +"cp865-8x8.psfu.gz" "" \ +"cp866-8x14.psf.gz" "" \ +"cp866-8x16.psf.gz" "" \ +"cp866-8x8.psf.gz" "" \ +"cybercafe.fnt.gz" "" \ +"cyr-sun16.psfu.gz" "" \ +"default8x16.psfu.gz" "" \ +"default8x9.psfu.gz" "" \ +"drdos8x14.psfu.gz" "" \ +"drdos8x16.psfu.gz" "" \ +"drdos8x6.psfu.gz" "" \ +"drdos8x8.psfu.gz" "" \ +"gr737a-8x8.psfu.gz" "" \ +"gr737a-9x14.psfu.gz" "" \ +"gr737a-9x16.psfu.gz" "" \ +"gr737b-8x11.psfu.gz" "" \ +"gr737b-9x16-medieval.psfu.gz" "" \ +"gr737c-8x14.psfu.gz" "" \ +"gr737c-8x16.psfu.gz" "" \ +"gr737c-8x6.psfu.gz" "" \ +"gr737c-8x7.psfu.gz" "" \ +"gr737c-8x8.psfu.gz" "" \ +"gr737d-8x16.psfu.gz" "" \ +"gr928-8x16-thin.psfu.gz" "" \ +"gr928-9x14.psfu.gz" "" \ +"gr928-9x16.psfu.gz" "" \ +"gr928a-8x14.psfu.gz" "" \ +"gr928a-8x16.psfu.gz" "" \ +"gr928b-8x14.psfu.gz" "" \ +"gr928b-8x16.psfu.gz" "" \ +"greek-polytonic.psfu.gz" "" \ +"iso01-12x22.psfu.gz" "" \ +"iso01.08.gz" "" \ +"iso01.14.gz" "" \ +"iso01.16.gz" "" \ +"iso02-12x22.psfu.gz" "" \ +"iso02.08.gz" "" \ +"iso02.14.gz" "" \ +"iso02.16.gz" "" \ +"iso03.08.gz" "" \ +"iso03.14.gz" "" \ +"iso03.16.gz" "" \ +"iso04.08.gz" "" \ +"iso04.14.gz" "" \ +"iso04.16.gz" "" \ +"iso05.08.gz" "" \ +"iso05.14.gz" "" \ +"iso05.16.gz" "" \ +"iso06.08.gz" "" \ +"iso06.14.gz" "" \ +"iso06.16.gz" "" \ +"iso07.14.gz" "" \ +"iso07.16.gz" "" \ +"iso07u-16.psfu.gz" "" \ +"iso08.08.gz" "" \ +"iso08.14.gz" "" \ +"iso08.16.gz" "" \ +"iso09.08.gz" "" \ +"iso09.14.gz" "" \ +"iso09.16.gz" "" \ +"iso10.08.gz" "" \ +"iso10.14.gz" "" \ +"iso10.16.gz" "" \ +"koi8-14.psf.gz" "" \ +"koi8c-8x16.gz" "" \ +"koi8r-8x14.gz" "" \ +"koi8r-8x16.gz" "" \ +"koi8r-8x8.gz" "" \ +"koi8r.8x8.psfu.gz" "" \ +"koi8u_8x14.psfu.gz" "" \ +"koi8u_8x16.psfu.gz" "" \ +"koi8u_8x8.psfu.gz" "" \ +"lat0-08.psfu.gz" "" \ +"lat0-10.psfu.gz" "" \ +"lat0-12.psfu.gz" "" \ +"lat0-14.psfu.gz" "" \ +"lat0-16.psfu.gz" "" \ +"lat1-08.psfu.gz" "" \ +"lat1-10.psfu.gz" "" \ +"lat1-12.psfu.gz" "" \ +"lat1-14.psfu.gz" "" \ +"lat1-16.psfu.gz" "" \ +"lat2-08.psfu.gz" "" \ +"lat2-10.psfu.gz" "" \ +"lat2-12.psfu.gz" "" \ +"lat2-14.psfu.gz" "" \ +"lat2-16.psfu.gz" "" \ +"lat2a-16.psfu.gz" "" \ +"lat4-08.psfu.gz" "" \ +"lat4-10.psfu.gz" "" \ +"lat4-12.psfu.gz" "" \ +"lat4-14.psfu.gz" "" \ +"lat4-16+.psfu.gz" "" \ +"lat4-16.psfu.gz" "" \ +"lat4-19.psfu.gz" "" \ +"lat4a-08.psfu.gz" "" \ +"lat4a-10.psfu.gz" "" \ +"lat4a-12.psfu.gz" "" \ +"lat4a-14.psfu.gz" "" \ +"lat4a-16+.psfu.gz" "" \ +"lat4a-16.psfu.gz" "" \ +"lat4a-19.psfu.gz" "" \ +"lat5-12.psfu.gz" "" \ +"lat5-14.psfu.gz" "" \ +"lat5-16.psfu.gz" "" \ +"lat7-14.psfu.gz" "" \ +"lat7a-14.psfu.gz" "" \ +"lat7a-16.psf.gz" "" \ +"lat9-08.psf.gz" "" \ +"lat9-10.psf.gz" "" \ +"lat9-12.psf.gz" "" \ +"lat9-14.psf.gz" "" \ +"lat9-16.psf.gz" "" \ +"lat9u-08.psfu.gz" "" \ +"lat9u-10.psfu.gz" "" \ +"lat9u-12.psfu.gz" "" \ +"lat9u-14.psfu.gz" "" \ +"lat9u-16.psfu.gz" "" \ +"lat9v-08.psfu.gz" "" \ +"lat9v-10.psfu.gz" "" \ +"lat9v-12.psfu.gz" "" \ +"lat9v-14.psfu.gz" "" \ +"lat9v-16.psfu.gz" "" \ +"lat9w-08.psfu.gz" "" \ +"lat9w-10.psfu.gz" "" \ +"lat9w-12.psfu.gz" "" \ +"lat9w-14.psfu.gz" "" \ +"lat9w-16.psfu.gz" "" \ +"m.fnt.gz" "" \ +"ml.fnt.gz" "" \ +"mod_d.fnt.gz" "" \ +"mod_s.fnt.gz" "" \ +"mr.fnt.gz" "" \ +"mu.fnt.gz" "" \ +"r.fnt.gz" "" \ +"rl.fnt.gz" "" \ +"ro.fnt.gz" "" \ +"ruscii_8x16.psfu.gz" "" \ +"ruscii_8x8.psfu.gz" "" \ +"s.fnt.gz" "" \ +"sc.fnt.gz" "" \ +"scrawl_s.fnt.gz" "" \ +"scrawl_w.fnt.gz" "" \ +"sd.fnt.gz" "" \ +"sun12x22.psfu.gz" "" \ +"t.fnt.gz" "" \ +"t850b.fnt.gz" "" \ +"tcvn8x16.psf.gz" "" \ +"viscii10-8x16.psfu.gz" "" \ +2> $REPLY + if [ ! $? = 0 ]; then + load_font + exit + fi + FONT=`cat $REPLY` + rm -f $REPLY + load_font $FONT + dialog --title "SET AS DEFAULT FONT" --yesno "Well, what do you think? \ +If you'd like to make this your default font, select YES. You can change \ +the default font any time by typing 'setconsolefont' or by editing \ +/etc/rc.d/rc.font. If you don't \ +like this font, select NO, and you'll be returned to the font selection \ +menu. If you decide you want to stick with the default font, hit ESC or \ +CANCEL once you get to that menu." 11 60 + if [ $? = 0 ]; then + cat << EOF > $T_PX/etc/rc.d/rc.font +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v $FONT +EOF + chmod 755 $T_PX/etc/rc.d/rc.font + exit + else + load_font + fi + done +else # no color! + echo + echo -n "Would you like to try out some custom screen fonts ([y]es, [n]o)? " + read YESNO; + if [ "$YESNO" = "n" ]; then + exit + fi + while [ 0 ]; do + cat << EOF + +SELECT A SCREEN FONT. Your choices are: +161.cp.gz 162.cp.gz 163.cp.gz 164.cp.gz 165.cp.gz 737.cp.gz 880.cp.gz 928.cp.gz +972.cp.gz Agafari-12.psfu.gz Agafari-14.psfu.gz Agafari-16.psfu.gz +Cyr_a8x14.psfu.gz Cyr_a8x16.psfu.gz Cyr_a8x8.psfu.gz Goha-12.psfu.gz +Goha-14.psfu.gz Goha-16.psfu.gz GohaClassic-12.psfu.gz GohaClassic-14.psfu.gz +GohaClassic-16.psfu.gz Lat2-Terminus16.psfu.gz LatArCyrHeb-08.psfu.gz +LatArCyrHeb-14.psfu.gz LatArCyrHeb-16+.psfu.gz LatArCyrHeb-16.psfu.gz +LatArCyrHeb-19.psfu.gz Mik_8x16.gz UniCyrExt_8x16.psf.gz UniCyr_8x14.psf.gz +UniCyr_8x16.psf.gz UniCyr_8x8.psf.gz alt-8x14.gz alt-8x16.gz alt-8x8.gz +altc-8x16.gz aply16.psf.gz arm8.fnt.gz b.fnt.gz c.fnt.gz cp1250.psfu.gz +cp850-8x14.psfu.gz cp850-8x16.psfu.gz cp850-8x8.psfu.gz cp857.08.gz cp857.14.gz +cp857.16.gz cp865-8x14.psfu.gz cp865-8x16.psfu.gz cp865-8x8.psfu.gz +cp866-8x14.psf.gz cp866-8x16.psf.gz cp866-8x8.psf.gz cybercafe.fnt.gz +cyr-sun16.psfu.gz default8x16.psfu.gz default8x9.psfu.gz drdos8x14.psfu.gz +drdos8x16.psfu.gz drdos8x6.psfu.gz drdos8x8.psfu.gz gr737a-8x8.psfu.gz +gr737a-9x14.psfu.gz gr737a-9x16.psfu.gz gr737b-8x11.psfu.gz +gr737b-9x16-medieval.psfu.gz gr737c-8x14.psfu.gz gr737c-8x16.psfu.gz +gr737c-8x6.psfu.gz gr737c-8x7.psfu.gz gr737c-8x8.psfu.gz gr737d-8x16.psfu.gz +gr928-8x16-thin.psfu.gz gr928-9x14.psfu.gz gr928-9x16.psfu.gz +gr928a-8x14.psfu.gz gr928a-8x16.psfu.gz gr928b-8x14.psfu.gz gr928b-8x16.psfu.gz +greek-polytonic.psfu.gz iso01-12x22.psfu.gz iso01.08.gz iso01.14.gz iso01.16.gz +iso02-12x22.psfu.gz iso02.08.gz iso02.14.gz iso02.16.gz iso03.08.gz iso03.14.gz +iso03.16.gz iso04.08.gz iso04.14.gz iso04.16.gz iso05.08.gz iso05.14.gz +iso05.16.gz iso06.08.gz iso06.14.gz iso06.16.gz iso07.14.gz iso07.16.gz +iso07u-16.psfu.gz iso08.08.gz iso08.14.gz iso08.16.gz iso09.08.gz iso09.14.gz +iso09.16.gz iso10.08.gz iso10.14.gz iso10.16.gz koi8-14.psf.gz koi8c-8x16.gz +koi8r-8x14.gz koi8r-8x16.gz koi8r-8x8.gz koi8r.8x8.psfu.gz koi8u_8x14.psfu.gz +koi8u_8x16.psfu.gz koi8u_8x8.psfu.gz lat0-08.psfu.gz lat0-10.psfu.gz +lat0-12.psfu.gz lat0-14.psfu.gz lat0-16.psfu.gz lat1-08.psfu.gz lat1-10.psfu.gz +lat1-12.psfu.gz lat1-14.psfu.gz lat1-16.psfu.gz lat2-08.psfu.gz lat2-10.psfu.gz +lat2-12.psfu.gz lat2-14.psfu.gz lat2-16.psfu.gz lat2a-16.psfu.gz lat4-08.psfu.gz +lat4-10.psfu.gz lat4-12.psfu.gz lat4-14.psfu.gz lat4-16+.psfu.gz lat4-16.psfu.gz +lat4-19.psfu.gz lat4a-08.psfu.gz lat4a-10.psfu.gz lat4a-12.psfu.gz +lat4a-14.psfu.gz lat4a-16+.psfu.gz lat4a-16.psfu.gz lat4a-19.psfu.gz +lat5-12.psfu.gz lat5-14.psfu.gz lat5-16.psfu.gz lat7-14.psfu.gz lat7a-14.psfu.gz +lat7a-16.psf.gz lat9-08.psf.gz lat9-10.psf.gz lat9-12.psf.gz lat9-14.psf.gz +lat9-16.psf.gz lat9u-08.psfu.gz lat9u-10.psfu.gz lat9u-12.psfu.gz +lat9u-14.psfu.gz lat9u-16.psfu.gz lat9v-08.psfu.gz lat9v-10.psfu.gz +lat9v-12.psfu.gz lat9v-14.psfu.gz lat9v-16.psfu.gz lat9w-08.psfu.gz +lat9w-10.psfu.gz lat9w-12.psfu.gz lat9w-14.psfu.gz lat9w-16.psfu.gz m.fnt.gz +ml.fnt.gz mod_d.fnt.gz mod_s.fnt.gz mr.fnt.gz mu.fnt.gz r.fnt.gz rl.fnt.gz +ro.fnt.gz ruscii_8x16.psfu.gz ruscii_8x8.psfu.gz s.fnt.gz sc.fnt.gz +scrawl_s.fnt.gz scrawl_w.fnt.gz sd.fnt.gz sun12x22.psfu.gz t.fnt.gz t850b.fnt.gz +tcvn8x16.psf.gz viscii10-8x16.psfu.gz + +EOF + echo -n "Which font would you like (or ENTER to quit)? " + read FONT; + if [ "$FONT" = "" ]; then + load_font + echo + exit + fi + if [ ! -r $T_PX/usr/share/kbd/consolefonts/$FONT -a ! -r \ + /var/adm/mount/usr/share/kbd/consolefonts/$FONT ]; then + cat << EOF + +Sorry, I couldn't find that font. Try again. + +EOF + fi + load_font $FONT + cat << EOF + +SET AS DEFAULT FONT + +Well, what do you think? If you'd like to make this your default font, select +YES. You can change the default font any time by typing 'setconsolefont' or by +editing /etc/rc.d/rc.font. If you don't like this font, select NO, and you'll +be able to select a different one. If you decide you want to stick with the +default font, hit RETURN once you return to the font selection menu. + +EOF + echo -n "Would you like to have this font loaded by default ([y]es, [n]o)? " + read DEF + if [ "$DEF" = "YES" -o "$DEF" = "y" ]; then + cat << EOF > $T_PX/etc/rc.d/rc.font +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v $FONT +EOF + chmod 755 $T_PX/etc/rc.d/rc.font + echo + exit + else + load_font + fi + echo + done +fi diff --git a/source/a/kbd/setup.setconsolefont b/source/a/kbd/setup.setconsolefont new file mode 100644 index 00000000..615cbaab --- /dev/null +++ b/source/a/kbd/setup.setconsolefont @@ -0,0 +1,10 @@ +#!/bin/sh +#BLURB="Select a font for the console" + +# These platforms are headless so we don't need to configure +# this package. +# +# Silently exit if we find ourselves on one of these platforms +egrep -q "SheevaPlug" /proc/cpuinfo > /dev/null 2>&1 && exit + +sh usr/bin/setconsolefont $* diff --git a/source/a/kbd/slack-desc b/source/a/kbd/slack-desc new file mode 100644 index 00000000..d912c112 --- /dev/null +++ b/source/a/kbd/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------------------------------------------------------| +kbd: kbd (keyboard maps and console fonts) +kbd: +kbd: Load and save keyboard mappings. Needed if you are not using the US +kbd: keyboard map. This package also contains utilities to change your +kbd: console fonts - if you install it you'll get a menu later on that lets +kbd: you select from many different fonts. If you like one, you can make +kbd: it your default font. A new default font can be chosen at any time by +kbd: typing 'setconsolefont'. +kbd: +kbd: +kbd: diff --git a/source/a/kbd/sources/kbd-1.15-keycodes-man.patch b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch new file mode 100644 index 00000000..d18a8c8b --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch @@ -0,0 +1,52 @@ +diff -up kbd-1.15/man/man1/showkey.1_old kbd-1.15/man/man1/showkey.1 +--- kbd-1.15/man/man1/showkey.1_old 2008-03-13 17:46:23.000000000 +0100 ++++ kbd-1.15/man/man1/showkey.1 2008-12-10 12:31:38.000000000 +0100 +@@ -80,6 +80,19 @@ corresponds to what the keyboard hardwar + to know the scan codes sent by various keys it is better to boot a + 2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0 + that tells the 2.6 kernel to return the actual scan codes. ++ ++.SH NOTES ++The raw scan codes are available only on AT and PS/2 keyboards, ++and even then they are disabled unless the ++.B atkbd.softraw=0 ++kernel parameter is used. ++When the raw scan codes are not available, the kernel uses a fixed built-in ++table to produce scan codes from keycodes. Thus, ++.BR setkeycodes (8) ++can affect the output of ++.B showkey ++in scan code dump mode. ++ + .SH "SEE ALSO" + .BR loadkeys (1), + .BR dumpkeys (1), +diff -up kbd-1.15/man/man8/setkeycodes.8_old kbd-1.15/man/man8/setkeycodes.8 +--- kbd-1.15/man/man8/setkeycodes.8_old 2008-12-10 12:31:56.000000000 +0100 ++++ kbd-1.15/man/man8/setkeycodes.8 2008-12-10 12:37:36.000000000 +0100 +@@ -41,6 +41,10 @@ to showkey(1), the command + will assign the keycode 112 to it, and then loadkeys(1) can be used + to define the function of this key. + ++USB keyboards have standardized keycodes and ++.B setkeycodes ++doesn't affect them at all. ++ + .SH "2.6 KERNELS" + In 2.6 kernels key codes lie in the range 1-255, instead of 1-127. + (It might be best to confine oneself to the range 1-239.) +@@ -54,6 +58,14 @@ None. + .SH BUGS + The keycodes of X have nothing to do with those of Linux. + Unusual keys can be made visible under Linux, but not under X. ++ ++.B setkeycodes ++affects only the "first" input device ++that has modifiable scancode-to-keycode mapping. ++If there is more than one such device, ++.B setkeycodes ++cannot change the mapping of other devices than the "first" one. ++ + .SH "SEE ALSO" + .I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)" + diff --git a/source/a/kbd/sources/kbd-1.15-po.patch b/source/a/kbd/sources/kbd-1.15-po.patch new file mode 100644 index 00000000..0221f60c --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-po.patch @@ -0,0 +1,31 @@ +diff -up kbd-1.15/po/Makefile.in_old kbd-1.15/po/Makefile.in +--- kbd-1.15/po/Makefile.in_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/po/Makefile.in 2008-12-09 15:35:58.000000000 +0100 +@@ -4,10 +4,10 @@ srcdir = @srcdir@ + + prefix = @prefix@ + datarootdir = @datarootdir@ +-datadir = @datadir@ +-localedir = $(DESTDIR)$(datadir)/locale +-gnulocaledir = $(DESTDIR)$(datadir)/locale +-gettextsrcdir = $(DESTDIR)$(datadir)/gettext/po ++datadir = $(DESTDIR)@datadir@ ++localedir = $(DESTDIR)@localedir@ ++gnulocaledir = $(DESTDIR)@localedir@ ++gettextsrcdir = $(datadir)/gettext/po + + FOREIGN = @FOREIGN@ + HAVE_XGETTEXT = @HAVE_XGETTEXT@ +@@ -36,10 +36,10 @@ INCLUDES = -I.. -I$(INTL) + COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + + # Enter here all .po files +-POFILES = cs.po da.po de.po el.po es.po fr.po gr.po nl.po pl.po \ ++POFILES = cs.po da.po de.po el.po es.po fr.po nl.po pl.po \ + ro.po ru.po sv.po tr.po + # the same but with .gmo +-GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo gr.gmo nl.gmo \ ++GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo nl.gmo \ + pl.gmo ro.gmo ru.gmo sv.gmo tr.gmo + + CATALOGS = $(GMOFILES) diff --git a/source/a/kbd/sources/kbd-1.15-quiet_doc.patch b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch new file mode 100644 index 00000000..eca867b8 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch @@ -0,0 +1,34 @@ +diff -up kbd-1.15/man/man1/loadkeys.1.in_old kbd-1.15/man/man1/loadkeys.1.in +--- kbd-1.15/man/man1/loadkeys.1.in_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/man/man1/loadkeys.1.in 2009-03-05 13:11:08.000000000 +0100 +@@ -19,6 +19,8 @@ loadkeys \- load keyboard translation ta + ] [ + .I -m --mktable + ] [ ++.I -q --quiet ++] [ + .I -s --clearstrings + ] [ + .I -v --verbose +@@ -148,6 +150,10 @@ command (and does not modify the current + .B loadkeys + prints its version number and a short usage message to the programs + standard error output and exits. ++.TP ++.B \-q \-\-quiet ++.B loadkeys ++suppresses all normal output. + .SH WARNING + Note that anyone having read access to + .B /dev/console +diff -up kbd-1.15/src/loadkeys.c_old kbd-1.15/src/loadkeys.c +--- kbd-1.15/src/loadkeys.c_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/src/loadkeys.c 2009-03-05 13:09:00.000000000 +0100 +@@ -1966,6 +1966,7 @@ usage(void) { + " -d --default load \"%s\"\n" + " -h --help display this help text\n" + " -m --mktable output a \"defkeymap.c\" to stdout\n" ++" -q --quiet suppress all normal output\n" + " -s --clearstrings clear kernel string table\n" + " -u --unicode implicit conversion to Unicode\n" + " -v --verbose report the changes\n"), PACKAGE_VERSION, DEFMAP); diff --git a/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch new file mode 100644 index 00000000..5e8350a8 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch @@ -0,0 +1,15 @@ +diff -up kbd-1.15/configure_old kbd-1.15/configure +--- kbd-1.15/configure_old 2009-01-08 15:11:04.000000000 +0100 ++++ kbd-1.15/configure 2009-01-08 15:11:45.000000000 +0100 +@@ -7637,8 +7637,9 @@ fi + + + case $host_cpu in +- i?86*) RESIZECONS_PROGS=yes ;; +- *) RESIZECONS_PROGS=no ;; ++ i?86*) RESIZECONS_PROGS=yes ;; ++ x86_64*) RESIZECONS_PROGS=yes ;; ++ *) RESIZECONS_PROGS=no ;; + esac + if test "$RESIZECONS_PROGS" = "yes"; then + RESIZECONS_PROGS_TRUE= diff --git a/source/a/kbd/sources/kbd-1.15-sparc.patch b/source/a/kbd/sources/kbd-1.15-sparc.patch new file mode 100644 index 00000000..a858a253 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-sparc.patch @@ -0,0 +1,97 @@ +diff -up kbd-1.15/man/man8/kbdrate.8_old kbd-1.15/man/man8/kbdrate.8 +--- kbd-1.15/man/man8/kbdrate.8_old 2008-12-10 14:20:33.000000000 +0100 ++++ kbd-1.15/man/man8/kbdrate.8 2008-12-10 14:41:10.000000000 +0100 +@@ -22,7 +22,7 @@ Using + without any options will reset the repeat rate to 10.9 characters per second (cps) + and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems. + These are the IBM defaults. On SPARC-based systems it will reset the repeat rate +-to 5 cps and the delay to 200 ms. ++to 20 cps and the delay to 200 ms. + + .SH OPTIONS + .TP +@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa + .I /etc/rc.local + .br + .I /dev/port ++.br ++.I /dev/kbd +diff -up kbd-1.15/src/kbdrate.c_old kbd-1.15/src/kbdrate.c +--- kbd-1.15/src/kbdrate.c_old 2008-12-10 14:00:25.000000000 +0100 ++++ kbd-1.15/src/kbdrate.c 2008-12-10 14:20:11.000000000 +0100 +@@ -77,7 +77,6 @@ beats rebuilding the kernel! + + #ifdef __sparc__ + #include <asm/param.h> +-#include <asm/kbio.h> + #endif + + #ifndef KDKBDREP +@@ -109,11 +108,15 @@ static int valid_delays[] = { 250, 500, + + static int + KDKBDREP_ioctl_ok(double rate, int delay, int silent) { ++#if defined(KDKBDREP) && !defined(__sparc__) + /* + * This ioctl is defined in <linux/kd.h> but is not + * implemented anywhere - must be in some m68k patches. ++ * We cannot blindly try unimplemented ioctls on sparc64 - ++ * the 32<->64bit transition layer does not like it. + * Since 2.4.9 also on i386. +- */ ++ */ ++ + struct my_kbd_repeat kbdrep_s; + + /* don't change, just test */ +@@ -177,6 +180,9 @@ KDKBDREP_ioctl_ok(double rate, int delay + rate, kbdrep_s.delay ); + + return 1; /* success! */ ++#else /* no KDKBDREP or __sparc__ */ ++ return 0; ++#endif /* KDKBDREP */ + } + + static int +@@ -221,7 +227,7 @@ sigalrmhandler( int sig ) { + int + main( int argc, char **argv ) { + #ifdef __sparc__ +- double rate = 5.0; /* Default rate */ ++ double rate = 20.0; /* Default rate */ + int delay = 200; /* Default delay */ + #else + double rate = 10.9; /* Default rate */ +@@ -272,7 +278,9 @@ main( int argc, char **argv ) { + + + /* The ioport way */ ++ /* The ioport way - will crash on sparc */ + ++#ifndef __sparc__ + for (i = 0; i < RATE_COUNT; i++) + if (rate * 10 >= valid_rates[i]) { + value &= 0x60; +@@ -335,5 +343,7 @@ main( int argc, char **argv ) { + valid_rates[value & 0x1f] / 10.0, + valid_delays[ (value & 0x60) >> 5 ] ); + ++#endif ++ + return 0; + } +diff -up kbd-1.15/src/setleds.c_old kbd-1.15/src/setleds.c +--- kbd-1.15/src/setleds.c_old 2008-12-10 14:00:02.000000000 +0100 ++++ kbd-1.15/src/setleds.c 2008-12-10 14:00:16.000000000 +0100 +@@ -14,10 +14,6 @@ + #include "nls.h" + #include "version.h" + +-#ifdef __sparc__ +-#include <asm/kbio.h> +-#endif +- + static void + usage(void) + { diff --git a/source/a/kbd/sources/kbd-1.15-unicode_start.patch b/source/a/kbd/sources/kbd-1.15-unicode_start.patch new file mode 100644 index 00000000..d3dab3fe --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-unicode_start.patch @@ -0,0 +1,21 @@ +diff -up kbd-1.15/src/unicode_start_old kbd-1.15/src/unicode_start +--- kbd-1.15/src/unicode_start_old 2009-01-08 13:34:10.000000000 +0100 ++++ kbd-1.15/src/unicode_start 2009-01-08 14:02:12.000000000 +0100 +@@ -72,6 +72,9 @@ stty iutf8 + # have a Unicode map attached, or explicitly specified, e.g., + # by giving `def.uni' as a second argument. + ++DEFAULT_UNICODE_FONT=LatArCyrHeb-16 ++# Also drdos8x16 is a good candidate. ++ + case "$#" in + 2) + setfont "$1" -u "$2" +@@ -80,6 +83,7 @@ case "$#" in + setfont "$1" + ;; + 0) ++ setfont $DEFAULT_UNICODE_FONT + ;; + *) + echo "usage: unicode_start [font [unicode map]]" diff --git a/source/a/kbd/sources/kbd-1.15.tar.bz2.sign b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign new file mode 100644 index 00000000..39388b38 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15.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 + +iD8DBQBJj684yGugalF9Dw4RAqQuAJ9fBsk3RWp6BT4UWHjceFn5YuEBygCff3dW +qo/ACrIhyBx/eiZEpao8N4o= +=0zxS +-----END PGP SIGNATURE----- diff --git a/source/a/kbd/sources/nl.euro.diff b/source/a/kbd/sources/nl.euro.diff new file mode 100644 index 00000000..655a7e22 --- /dev/null +++ b/source/a/kbd/sources/nl.euro.diff @@ -0,0 +1,10 @@ +--- ./data/keymaps/i386/qwerty/nl.map.orig 2004-01-03 09:01:22.000000000 -0800 ++++ ./data/keymaps/i386/qwerty/nl.map 2004-05-29 21:16:31.000000000 -0700 +@@ -12,6 +12,7 @@ + keymaps 0-6,8-9,12 + alt_is_meta + include "qwerty-layout" ++ altgr keycode 18 = euro + altgr keycode 19 = paragraph + altgr keycode 31 = ssharp + altgr keycode 44 = guillemotleft diff --git a/source/a/kbd/sources/speakupmap.map b/source/a/kbd/sources/speakupmap.map new file mode 100644 index 00000000..9c73e35d --- /dev/null +++ b/source/a/kbd/sources/speakupmap.map @@ -0,0 +1,308 @@ +# us.map +# with some additions from quinlan@spectrum.cs.bucknell.edu (Daniel Quinlan) +# 14 Mar 1994 +keymaps 0-2,4-6,8,9,12,13 +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one + alt shift keycode 2 = Meta_exclam +keycode 3 = two at at + control keycode 3 = nul + control shift keycode 3 = nul + alt keycode 3 = Meta_two + alt shift keycode 3 = Meta_at +keycode 4 = three numbersign + control keycode 4 = Escape + alt keycode 4 = Meta_three + alt shift keycode 4 = Meta_numbersign +keycode 5 = four dollar dollar + control keycode 5 = Control_backslash + alt keycode 5 = Meta_four + alt shift keycode 5 = Meta_dollar +keycode 6 = five percent + control keycode 6 = Control_bracketright + alt keycode 6 = Meta_five + alt shift keycode 6 = Meta_percent +keycode 7 = six asciicircum + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six + alt shift keycode 7 = Meta_asciicircum +keycode 8 = seven ampersand braceleft + control keycode 8 = Control_underscore + alt keycode 8 = Meta_seven +keycode 9 = eight asterisk bracketleft + control keycode 9 = Delete + alt keycode 9 = Meta_eight +keycode 10 = nine parenleft bracketright + alt keycode 10 = Meta_nine +keycode 11 = zero parenright braceright + alt keycode 11 = Meta_zero +keycode 12 = minus underscore backslash + control keycode 12 = Control_underscore + control shift keycode 12 = Control_underscore + alt keycode 12 = Meta_minus +keycode 13 = equal plus + alt keycode 13 = Meta_equal +keycode 14 = Delete Delete + alt keycode 14 = Meta_Delete +keycode 15 = Tab Tab + alt keycode 15 = Meta_Tab +keycode 16 = q +keycode 17 = w +keycode 18 = e +keycode 19 = r +keycode 20 = t +keycode 21 = y +keycode 22 = u +keycode 23 = i +keycode 24 = o +keycode 25 = p +keycode 26 = bracketleft braceleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft + alt shift keycode 26 = Meta_braceleft +keycode 27 = bracketright braceright asciitilde + control keycode 27 = Control_bracketright + alt keycode 27 = Meta_bracketright + alt shift keycode 27 = Meta_braceright +keycode 28 = Return + alt keycode 28 = 0x080d +keycode 29 = Control +keycode 30 = a +keycode 31 = s +keycode 32 = d +keycode 33 = f +keycode 34 = g +keycode 35 = h +keycode 36 = j +keycode 37 = k +keycode 38 = l +keycode 39 = semicolon colon + alt keycode 39 = Meta_semicolon +keycode 40 = apostrophe quotedbl + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe +keycode 41 = grave asciitilde + control keycode 41 = nul + alt keycode 41 = Meta_grave +keycode 42 = Shift +keycode 43 = backslash bar + control keycode 43 = Control_backslash + alt keycode 43 = Meta_backslash + alt shift keycode 43 = Meta_bar +keycode 44 = z +keycode 45 = x +keycode 46 = c +keycode 47 = v +keycode 48 = b +keycode 49 = n +keycode 50 = m +keycode 51 = comma less + alt keycode 51 = Meta_comma + alt shift keycode 51 = Meta_less +keycode 52 = period greater + alt keycode 52 = Meta_period + alt shift keycode 52 = Meta_greater +keycode 53 = slash question + control keycode 53 = Delete + alt keycode 53 = Meta_slash +keycode 54 = Shift +keycode 55 = 0x0d26 +#keycode 55 = KP_Multiply + altgr keycode 55 = 0x0406 +keycode 56 = Alt +keycode 57 = space space + control keycode 57 = nul + alt keycode 57 = Meta_space +keycode 58 = Caps_Lock +keycode 59 = F1 F11 Console_13 + control keycode 59 = F1 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +keycode 60 = F2 F12 Console_14 + control keycode 60 = F2 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +keycode 61 = F3 F13 Console_15 + control keycode 61 = F3 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +keycode 62 = F4 F14 Console_16 + control keycode 62 = F4 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +keycode 63 = F5 F15 Console_17 + control keycode 63 = F5 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +keycode 64 = F6 F16 Console_18 + control keycode 64 = F6 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +keycode 65 = F7 F17 Console_19 + control keycode 65 = F7 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +keycode 66 = F8 F18 Console_20 + control keycode 66 = F8 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +keycode 67 = F9 F19 Console_21 + control keycode 67 = F9 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F20 Console_22 + control keycode 68 = F10 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers + control keycode 70 = Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = 0x0d0b + altgr keycode 71 = 0x0d0f +#keycode 71 = KP_7 + alt keycode 71 = Ascii_7 +keycode 72 = 0x0d0a + altgr keycode 72 = 0x0d20 +#keycode 72 = KP_8 + alt keycode 72 = Ascii_8 +keycode 73 = 0x0d0c + altgr keycode 73 = 0x0d0d +#keycode 73 = KP_9 + alt keycode 73 = Ascii_9 +keycode 74 = 0x0d1e + altgr keycode 74 = 0x0d24 +keycode 75 = 0x0d08 + altgr keycode 75 = 0x0d22 +#keycode 75 = KP_4 + alt keycode 75 = Ascii_4 +keycode 76 = 0x0d07 +#keycode 76 = KP_5 + altgr keycode 76 = 0x0d12 + alt keycode 76 = Ascii_5 +keycode 77 = 0x0d09 + altgr keycode 77 = 0x0d23 +#keycode 77 = KP_6 + alt keycode 77 = Ascii_6 +#keycode 78 = KP_Add +keycode 78 = 0x0d14 + altgr keycode 78 = 0x0d21 +keycode 79 = 0x0d05 +#keycode 79 = KP_1 + altgr keycode 79 = 0x0d10 + alt keycode 79 = Ascii_1 +keycode 80 = 0x0d04 +#keycode 80 = KP_2 + altgr keycode 80 = 0x0d11 + alt keycode 80 = Ascii_2 +keycode 81 = 0x0d06 + altgr keycode 81 = 0x0d0e +#keycode 81 = KP_3 + alt keycode 81 = Ascii_3 +#keycode 82 = 0x0d14 +keycode 82 = AltGr +#keycode 82 = KP_0 + alt keycode 82 = Ascii_0 +#keycode 83 = KP_Period +keycode 83 = 0x0d1b + altgr keycode 83 = 0x0d1d + altgr control keycode 83 = Boot + control alt keycode 83 = Boot +keycode 84 = Last_Console +keycode 85 = +keycode 86 = less greater bar + alt keycode 86 = Meta_less +keycode 87 = F11 F11 Console_23 + control keycode 87 = F11 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +keycode 88 = F12 F12 Console_24 + control keycode 88 = F12 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +keycode 89 = +keycode 90 = +keycode 91 = +keycode 92 = +keycode 93 = +keycode 94 = +keycode 95 = +keycode 96 = 0x0d03 + altgr keycode 96 = 0x0d1c +#keycode 96 = KP_Enter +keycode 97 = Control +keycode 98 = 0x0d27 +#keycode 98 = KP_Divide + altgr keycode 98 = 0x0d28 +#keycode 99 = Control_backslash +keycode 99 = 0x0d25 + control keycode 99 = Control_backslash + alt keycode 99 = Control_backslash +keycode 100 = Alt +keycode 101 = Break +keycode 102 = Find +keycode 103 = Up +keycode 104 = Prior + shift keycode 104 = Scroll_Backward +keycode 105 = Left + alt keycode 105 = Decr_Console +keycode 106 = Right + alt keycode 106 = Incr_Console +keycode 107 = Select +keycode 108 = Down +keycode 109 = Next + shift keycode 109 = Scroll_Forward +keycode 110 = Insert +keycode 111 = Remove + altgr control keycode 111 = Boot + control alt keycode 111 = Boot +keycode 112 = +keycode 113 = +keycode 114 = +keycode 115 = +keycode 116 = +keycode 117 = +keycode 118 = +keycode 119 = +keycode 120 = +keycode 121 = +keycode 122 = +keycode 123 = +keycode 124 = +keycode 125 = +keycode 126 = +keycode 127 = +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F11 = "\033[23~" +string F12 = "\033[24~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string F21 = "" +string F22 = "" +string F23 = "" +string F24 = "" +string F25 = "" +string F26 = "" diff --git a/source/a/less/less.SlackBuild b/source/a/less/less.SlackBuild new file mode 100755 index 00000000..64335957 --- /dev/null +++ b/source/a/less/less.SlackBuild @@ -0,0 +1,102 @@ +#!/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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-less + +VERSION=${VERSION:-418} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +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" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf less-$VERSION +tar xvf $CWD/less-$VERSION.tar.bz2 || exit 1 +cd less-$VERSION +zcat $CWD/less.sysconfdir.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 \ + --sysconfdir=/etc \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat less > $PKG/usr/bin/less +cat lesskey > $PKG/usr/bin/lesskey +cat lessecho > $PKG/usr/bin/lessecho +zcat $CWD/lesspipe.sh.gz > $PKG/usr/bin/lesspipe.sh +chmod 755 $PKG/usr/bin/* + +( 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/usr/doc/less-$VERSION +cp -a \ + COPYING* LICENSE README NEWS \ + $PKG/usr/doc/less-$VERSION + +mkdir -p $PKG/usr/man/man1 +for page in less.nro lesskey.nro ; do + cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .nro`.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/less-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/less/less.sysconfdir.diff b/source/a/less/less.sysconfdir.diff new file mode 100644 index 00000000..25c5bb58 --- /dev/null +++ b/source/a/less/less.sysconfdir.diff @@ -0,0 +1,15 @@ +--- ./less.nro.orig Mon May 27 17:14:24 2002 ++++ ./less.nro Mon May 27 17:14:46 2002 +@@ -947,10 +947,10 @@ + Otherwise, + .I less + looks in a standard place for the system-wide lesskey file: +-On Unix systems, the system-wide lesskey file is /usr/local/etc/sysless. ++On Unix systems, the system-wide lesskey file is /etc/sysless. + (However, if + .I less +-was built with a different sysconf directory than /usr/local/etc, ++was built with a different sysconf directory than /etc, + that directory is where the sysless file is found.) + On MS-DOS and Windows systems, the system-wide lesskey file is c:\\_sysless. + On OS/2 systems, the system-wide lesskey file is c:\\sysless.ini. diff --git a/source/a/less/lesspipe.sh b/source/a/less/lesspipe.sh new file mode 100644 index 00000000..2d660522 --- /dev/null +++ b/source/a/less/lesspipe.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Copyright 1997, 1998, 1999, 2000 Patrick Volkerding, Moorhead, MN, USA +# Copyright 2001, 2002 Slackware Linux, Inc, Concord, CA, USA +# Copyright 2006, 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. +# + +# This is a preprocessor for 'less'. It is used when this environment +# variable is set: LESSOPEN="|lesspipe.sh %s" + +lesspipe() { + case "$1" in + *.tar) tar tvvf "$1" 2>/dev/null ;; + *.tgz | *.tar.gz | *.tar.Z | *.tar.z | *.tar.bz2 | *.tbz ) tar tvvf "$1" 2>/dev/null ;; + *.tlz | *.tar.lzma ) lzma -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; + *.txz | *.tar.xz ) xz -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; + *.zip) unzip -l "$1" 2>/dev/null ;; + *.rpm) rpm -qpvl "$1" 2>/dev/null ;; + *.rar) # check if rar is installed first + if which rar 1> /dev/null ; then + `which rar` t "$1" + fi ;; + *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) # *roff src? + if file -L "$1" | grep roff 1> /dev/null ; then + nroff -S -mandoc "$1" + fi ;; + *.1.gz|*.2.gz|*.3.gz|*.4.gz|*.5.gz|*.6.gz|*.7.gz|*.8.gz|*.9.gz|*.n.gz|*.man.gz) # compressed *roff src? + if gzip -dc "$1" | file - | grep roff 1> /dev/null ; then + gzip -dc "$1" | nroff -S -mandoc - + fi ;; + *.1.bz2|*.2.bz2|*.3.bz2|*.4.bz2|*.5.bz2|*.6.bz2|*.7.bz2|*.8.bz2|*.9.bz2|*.n.bz2|*.man.bz2) # compressed *roff src? + if bzip2 -dc "$1" | file - | grep roff 1> /dev/null ; then + bzip2 -dc "$1" | nroff -S -mandoc - + fi ;; + *.gz) gzip -dc "$1" 2>/dev/null ;; + *.bz2) bzip2 -dc "$1" 2>/dev/null ;; + *.lzma) lzma -dc "$1" 2>/dev/null ;; + *.xz) xz -dc "$1" 2>/dev/null ;; +# *) FILE=`file -L "$1"` ; # Check to see if binary, if so -- view with 'strings' +# FILE1=`echo $FILE | cut -d ' ' -f 2` +# FILE2=`echo $FILE | cut -d ' ' -f 3` +# if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \ +# -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then +# strings "$1" +# fi ;; + esac +} + +lesspipe "$1" diff --git a/source/a/less/slack-desc b/source/a/less/slack-desc new file mode 100644 index 00000000..bbf440f9 --- /dev/null +++ b/source/a/less/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------------------------------------------------------| +less: less (file pager) +less: +less: Less is a paginator similar to more (1), but which allows backward +less: movement in the file as well as forward movement. Also, less does not +less: have to read the entire input file before starting, so with large +less: input files it starts up faster than text editors like vi (1). +less: +less: Less was written by Mark Nudelman. +less: +less: +less: diff --git a/source/a/lha/lha.SlackBuild b/source/a/lha/lha.SlackBuild new file mode 100755 index 00000000..fb333362 --- /dev/null +++ b/source/a/lha/lha.SlackBuild @@ -0,0 +1,75 @@ +#!/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=114i +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lha + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lha-114i +tar xzvf $CWD/lha-114i.tar.gz +cd lha-114i +zcat $CWD/lha_1.14i-10.1.diff.gz | patch -p1 --verbose || exit 1 +patch -p0 < debian/patch.paul +patch -p0 < debian/patch.multibyte +patch -p0 < debian/patch.CAN-2004-0234_0235 +patch -p0 < debian/patch.header-overflow +patch -p1 < debian/patch.redhat-sec2 +patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/bin +cat src/lha > $PKG/usr/bin/lha +chmod 755 $PKG/usr/bin/lha +mkdir -p $PKG/usr/man/man1 +cat debian/lha.1 | gzip -9 > $PKG/usr/man/man1/lha.1.gz +mkdir -p $PKG/usr/man/jp/man1 +cat man/lha.man | gzip -9 > $PKG/usr/man/jp/man1/lha.1.gz +mkdir -p $PKG/usr/doc/lha-114i +cp -a \ + change-${VERSION}.txt \ + $PKG/usr/doc/lha-${VERSION} +mkdir -p $PKG/usr/doc/lha-${VERSION}/jp +cp -a *.euc \ + $PKG/usr/doc/lha-${VERSION}/jp +chmod 644 $PKG/usr/man/jp/man1/* + +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/lha-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lha/lha_1.14i-10.1.diff b/source/a/lha/lha_1.14i-10.1.diff new file mode 100644 index 00000000..cc32c4a6 --- /dev/null +++ b/source/a/lha/lha_1.14i-10.1.diff @@ -0,0 +1,5901 @@ +--- lha-1.14i.orig/src/lha_macro.h ++++ lha-1.14i/src/lha_macro.h +@@ -7,7 +7,7 @@ + /* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */ + /* ------------------------------------------------------------------------ */ + +-#define LHA_VERSION "lha for unix version 1.14g" ++#define LHA_VERSION "lha for unix version 1.14i" + + /* Most of System V, define SYSTIME_HAS_NO_TM */ + #ifdef SYSTIME_HAS_NO_TM +--- lha-1.14i.orig/man/lha.n ++++ lha-1.14i/man/lha.n +@@ -9,7 +9,7 @@ + ] + .I archive_file + [ +-.I flie ++.I file + \&.\|.\|. ] + .br + .B lha +--- lha-1.14i.orig/man/lha.man ++++ lha-1.14i/man/lha.man +@@ -1,324 +1,224 @@ ++LHA(N) LHa for UNIX Users Manual LHA(N) + + +-LHA(N) Unix Programmer's Manual LHA(N) + ++NNAAMMEE ̾̾ ++ LHa - ⰵ̥ + +-NNNAAAMMMEEE ̾̾̾ +- LHa - ⰵ̥ ++SSYYNNOOPPSSIISS ++ llhhaa kkeeyy [ mmooddiiffiieerrss ] _a_r_c_h_i_v_e___f_i_l_e [ _f_i_l_e ... ] ++ llhhaa _a_r_c_h_i_v_e___f_i_l_e + +-SSSYYYNNNOOOPPPSSSIIISSS +- lllhhhaaa kkkeeeyyy [ mmmooodddiiifffiiieeerrrsss ] _a_r_c_h_i_v_e__f_i_l_e [ _f_l_i_e ... ] +- lllhhhaaa _a_r_c_h_i_v_e__f_i_l_e ++DDEESSCCRRIIPPTTIIOONN ++ LLHHaa ϸΨι⤤̵ǽĥե륢ФǤ ++ kkeeyy ˵ǽʸꤷfile ɲáСɽʤɤ ++ ʤޤ archive_file Τߤꤷˤϡǽʸ l ++ ꤷΤƱưԤʤޤ ++ ǽʸϰʲ̤Ǥ + +-DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN +- LLLHHHaaa ϸΨι⤤̵ǽĥե륢ФǤ +- kkkeeeyyy ˵ǽʸꤷfile ɲáС +- ɽʤɤԤʤޤ archive_file Τߤꤷ +- ˤϡǽʸ l ꤷΤƱưԤʤ +- +- ǽʸϰʲ̤Ǥ ++ aa ɲáfile archive_file ɲäޤ file ǥ쥯ȥ ++ СΥǥ쥯ȥ˴ޤޤե٤ɲäޤ + +- aaa ɲáfile archive_file ɲäޤfile +- 쥯ȥǤСΥǥ쥯ȥ˴ޤޤե +- ٤ɲäޤ ++ uu file archive_file ˳ǼƤʤ⤷ϳǼ ++ ƤΤŤСfile archive_file ɲäޤ + +- uuu file archive_file ˳ǼƤʤ +- ⤷ϳǼƤΤŤСfile +- archive_file ɲäޤ ++ ll ޤ vv ++ ɽarchive_file ˳ǼƤ file ξɽ ++ ޤfile λ꤬ʤ archive_file ƤΥեξ ++ ɽ ޤ v ꤹ l ܤɽ ++ + +- lll ޤ vvv +- ɽarchive_file ˳ǼƤ file ξ +- ɽޤfile λ꤬ʤ +- archive_file ƤΥեξɽޤ +- v ꤹ l ܤɽޤ ++ xx ޤ ee ++ Сarchive_file file Фޤfile λ꤬ʤ ++ archive_file ƤΥեФޤФ٤ե ++ 뤬Ǥ¸ߤƤˤϡŤͽƤ䤤 ++ Ԥʤޤ + +- xxx ޤ eee +- Сarchive_file file Фޤfile +- ꤬ʤ archive_file ƤΥե +- ФޤФ٤ե뤬Ǥ¸ߤƤ +- ˤϡŤͽƤ䤤碌Ԥʤޤ +- ++ pp ɽarchive_file file ƤФɸϤؤ ++ Ϥޤfile λ꤬ʤСƤƤϤޤ + +- ppp ɽarchive_file file ƤФ +- ɸϤؤȽϤޤfile λ꤬ʤС +- ƤƤϤޤ ++ dd archive_file file ޤ + +- ddd archive_file file ޤ ++ mm ưfile archive_file ɲä塢file ޤ ++ ϡkey a modifiers d ꤷƱưԤ ++ ޤ + +- mmm ưfile archive_file ɲä塢file +- ޤϡkey a modifiers d +- ꤷƱưԤʤޤ ++ cc archive_file ˺file ɲäޤ + ++ ǽѹʸ modifiers ꤹ뤳Ȥˤä key ưξܺ٤ѹ ++ Ǥޤmodifiers ϡʲ椫ʣꤹ뤳ȤǤ ++ + +- January 14,1997 1 + + ++ qq<<nnuumm>> ɽŪʥåɽޤ <num> ͤ ++ äơINDICATOR ɽˡѹǤޤ + +-LHA(N) Unix Programmer's Manual LHA(N) ++ qq00 oooo........ ɽɽԤʤ + ++ qq11 ե̾̾ɽɽΤ߹Ԥʤ + +- ccc archive_file ˺file ɲ +- ޤ ++ qq22 ɽɽʤ + +- ǽѹʸ modifiers ꤹ뤳Ȥˤä key ư +- ܺ٤ѹ뤳ȤǤޤmodifiers ϡʲ椫ʣ +- ꤹ뤳ȤǤޤ ++ ʤͤϤʤäݤˤϡq2 Ʊˤʤޤ + ++ vv ɽξĹɽåĹˤޤ + ++ nn ¹ԤʤºݤιФưԤʤޤ¹Ƥγ ++ ǧΤѰդƤޤ + +- qqq<<<nnnuuummm>>> ɽŪʥåɽޤ +- <num> ͤˤäơINDICATOR ɽˡѹǤ +- ޤ ++ ff Ūʼ¹ԡեлˡ¸ߤեκǧ ++ Ԥʤ鷺Ū˺Ԥʤޤ + +- qqq000 oooooo............ ɽɽɽԤʤ ++ tt ƥȥ⡼ɤˤǼ,С֥եؤΥե ++ Ǽˤϡ UNIX MS-DOS ؤβԥѴԤʤ ++ եлˤϵդˡMS-DOS UNIX ؤβԥѴ ++ Ԥʤޤ + +- qqq111 ե̾̾̾ɽɽɽΤ߹Ԥʤ ++ oo{{nnuumm}} LHarc ߴ֤ޤϰ̥르ꥺꤹ 롣 ++ ǽʸ a, u, m ȶ˻ꤷлˤ̵뤵ޤ + +- qqq222 ɽɽɽʤ ++ oo LLHHaarrcc ߴ֤Ԥ + +- ʤͤϤʤäݤˤϡq2 Ʊˤʤ +- ++ ֤ޤ̥르ꥺ ++ -lh1-Ѥޤ + +- vvv ɽξĹɽåĹˤޤ ++ oo55 ̥르ꥺ --llhh55-- Ѥ롣 + +- nnn ¹ԤʤºݤιФưԤʤޤ +- ¹ƤγǧΤѰդƤޤ ++ oo66 ̥르ꥺ --llhh66-- Ѥ롣 + +- fff Ūʼ¹ԡեлˡ¸ߤե +- κǧԤʤ鷺Ū˺Ԥʤޤ ++ LHAμˤäƤϡ-lh6-줿֤ФǤ ++ Τǡ֤ۤݤˤդƤ ++ MSDOSǤǤǤ -lh6- ϹԤޤޤMSDOS ++ LHA version 2.5x ʹߤΥСǤ -lh6- ФΤߤǤ ++ + +- ttt ƥȥ⡼ɤˤǼ,С֥ե +- ؤΥեγǼˤϡUNIX MS-DOS ؤβ +- ԥѴԤʤޤեлˤϵդ +- MS-DOS UNIX ؤβԥѴԤʤޤ +- ++ ww==<<//ddiirr>> ++ ǼлΥѥǥ쥯ȥ ꡣ ե ++ ϡ/tmp Ǥ/tmp 礭ʾΥեǼݤˤɬ ++ פǤ + +- ooo{{{nnnuuummm}}} LHarc ߴ֤ޤϰ̥르ꥺ +- ꤹ롣ǽʸ a, u, m ȶ˻ꤷл +- ˤ̵뤵ޤ ++ dd եǼΥեκǽʸ a, ⤷ u ȶ ++ ֥եؤΥեγǼθ˥ե ++ ޤ u ղä硢֥եƤ ++ ե 뤬Ǽ줺˺뤳ȤˤʤΤդƲ ++ + +- ooo LLLHHHaaarrrccc ߴ֤Ԥ ++ ii лΥǥ쥯ȥ̵̾л˥ǥ쥯ȥ̵̾ ++ ޤ + +- ŤΥ֤ޤ̥르 +- ꥺ-lh1-Ѥޤ ++ zz ̳Ǽ֤ؤΥեγǼ˰̤Ԥʤޤ ++ Ǥ˰̤ԤʤäƤư̸Ψ˾ʤʤɤ˻ ++ ޤлˤ̵뤵ޤ + ++ gg [generic]֤κ UNIX Ѥղþʤ ++ ֥եޤлˤ̵뤵ޤ + ++ 00//11//22 إå٥ꡣ֤ɽηꤷ ++ ե ȤǤ 1 Ǥ0 LHarc ѰդƤŤǤ ++ 2 η줵褦ǤϥեγǼΤ ++ ͭǤեлˤϼưŪ˷ȽǤޤ + +- January 14,1997 2 ++ _a_r_c_h_i_v_e___f_i_l_e ˤϥ֥եꤷޤ + ++ _a_r_c_h_i_v_e___f_i_l_e _- ȽȤˤäơ֥եɸϤ ++ 뤳ȤǽǤ ttaarr(1) Τ褦ˡ֤κˤɸ ++ Ϥˡ֤ΥեлˤɸϤˤʤޤ + ++ л _a_r_c_h_i_v_e___f_i_l_e ¸ߤʤˤϥեå ..llzzhh ե̾ ++ θղäФߤޤ ++ ä˵ϤޤѾ奵եåȤ ..llzzhh ѤΤ˾ ++ ȻפޤܰʳǤ ..llhhaa ѤƤ륱뤽Ǥ ++ ǡŬĴƲ:-) ++ եå ccoomm ⤷ ..eexxee ξˤϡMS-DOS ǤǺ줿 _S_F_X( ++ Ÿǽդΰ̥ե) ɤåбޤ ++ եå ..xx ξˤϡ SHARP X68000 OS, Human68k Ǥ ++ 줿 SFX ɤåбޤ ++ SFX Υ֥եФɲäԤä ϡ ++ եå ..llzzhh ѹSFX ξޤ + +-LHA(N) Unix Programmer's Manual LHA(N) + ++FFIILLEESS ե ++ *.lzh - LHa/LHarc ֥ե ++ *.bak - Хååץե ++ /tmp/lh* - ƥݥե ++ *.com *.exe - MS-DOS SFX ե ++ *.x - Human68k SFX ե + +- ooo555 ̥르ꥺ ---lllhhh555- Ѥ롣 + +- ooo666 ̥르ꥺ ---lllhhh666- Ѥ롣 ++SSEEEE AALLSSOO ϢϢ ++ ttaarr(1), aarr(1), ccoommpprreessss(1) + +- LHAμˤäƤϡ-lh6-줿֤ +- ФǤʤ줬Τǡ֤ۤ +- ˤդƤMSDOSǤǤǤ -lh6- +- ϹԤޤޤMSDOS LHA version 2.5x +- ʹߤΥСǤ -lh6- ФΤߤǤޤ ++DDIISSTTRRIIBBUUTTIIOONN ۤˤĤ ++ ʲξǡۡžܡѤĤޤ + +- www===<<<///dddiiirrr>>> +- ǼлΥѥǥ쥯ȥꡣǥե +- ȤǤϡ/tmp Ǥ/tmp 礭ʾΥե +- ǼݤˤɬפǤ ++ 1. ɽʤȡ + +- ddd եǼΥեκǽʸ a, ⤷ +- u ȶѤ֥եؤΥե +- Ǽθ˥եޤu ղä硢 +- ֥եƤ˥ե뤬 +- Ǽ줺˺뤳ȤˤʤΤդƲ +- ++ 2. ƤˤĤƤϡ + +- iii лΥǥ쥯ȥ̵̾л˥ǥ쥯 +- ̵̾ˤޤ ++ a. ۤκݤ¸ߤ(ʤɡɥ ++ ȡץޡؤμʤ)ۤ줿Τɬ ++ ¸ 뤳ȡѤƤʤС ++ ȤѰդ뤳ȡ + +- zzz ̳Ǽ֤ؤΥեγǼ˰̤ +- ԤʤޤǤ˰̤ԤʤäƤư̸Ψ˾ +- ʤʤɤ˻Ѥޤлˤ̵뤵ޤ +- ++ b. LHa ФղòͤդƺۤˤϤ ++ Ǥޤ褦Ϥ뤳ȡޤκݤˤ ++ òͤդƤ뤳ȤɥȤѰ ++ 뤳ȡ + +- ggg [generic]֤κUNIX Ѥղþ +- ʤ֥եޤлˤ̵ +- ޤ ++ c. ХʥΤߤۤϵʤ(ղòͤΤΤޤ) + +- 000///111///222 إå٥ꡣ֤ɽη +- ޤǥեȤǤ 1 Ǥ0 LHarc Ѱդ +- ƤŤǤ 2 η줵 +- 褦ǤϥեγǼΤͭǤե +- лˤϼưŪ˷ȽǤޤ ++ 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ) + +- _a_r_c_h_i_v_e__f_i_l_e ˤϥ֥եꤷޤ ++ . ʤͥåȤǤդϼͳǤ뤬ͥåȤ˥Ǥ ++ ʤʻ浪ӡ CD-ROM ʤɤˤդϡ ++ E-Mail ꤤޤ˽ʤݤˤϡ ++ ɬ E-Mail ꤤޤ + +- _a_r_c_h_i_v_e__f_i_l_e - ȽȤˤäơ֥ե +- ɸϤˤ뤳ȤǽǤtttaaarrr(1) Τ褦ˡ +- ֤κˤɸϤˡ֤Υե ++ 4. Υץ¸ߤѤȤˤä»ݾڤ ++ ʤ + ++ 5. ԤϡΥץäƤ⡢̳ ++ ʤ + +- January 14,1997 3 ++ 6. Υץΰޤ¾ΥץȤ߹ ++ Ƥ⤫ޤʤξ硢Υץ LHa ǤϤʤ LHa ++ ̾äƤϤʤ + ++ 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤȤˤǧ ++ 롣 + ++ a. ΥץᥤȤ뾦Ѥ϶ػߤ롣 + +-LHA(N) Unix Programmer's Manual LHA(N) ++ b. Ѥ꤬ΥץλѼԤȤŬڤȽǤ ++ ˤۤʤ + ++ c. ȡμʤȤƻѤ硢Υץ ++ ˶ʤξ硢ѼԤȤ ++ ޤΤȤ»ϡѼԤǤ餦 + +- лˤɸϤˤʤޤ ++ d. ѤղòͤȤƹԤΥץѤ 硢 ++ ѼԤϡΥݡȤԤ + +- л_a_r_c_h_i_v_e__f_i_l_e ¸ߤʤˤϥեå...lllzzzhhh +- ե̾θղäФߤޤ +- ä˵ϤޤѾ奵եåȤ...lllzzzhhh +- Τ˾ޤȻפޤܰʳǤ ...lllhhhaaa ѤƤ +- 륱뤽ǤΤǡŬĴƲ:-) +- եåcccooommm ⤷...eeexxxeee ξˤϡMS-DOS ǤǺ +- 줿_S_F_X(Ÿǽդΰ̥ե) ɤ +- åбޤ +- եå...xxx ξˤϡ SHARP X68000 OS, +- Human68k ǤǺ줿 SFX ɤåб +- ޤ +- SFX Υ֥եФɲäԤä +- ˤϡեå...lllzzzhhh ѹSFX ξޤ +- + +-FFFIIILLLEEESSS ե +- *.lzh - LHa/LHarc ֥ե +- *.bak - Хååץե +- /tmp/lh* - ƥݥե +- *.com *.exe - MS-DOS SFX ե +- *.x - Human68k SFX ե ++Ǹ((FFrroomm YY..TTaaggaawwaa)) ++ LZHUF ˡδäȤʤä LZARI ˡȯɽƤä¼ɧᡢ ++ NIFTY-Serve ˾Ҳ𤷡ޤLArc κԤǤ⤢뻰ɧᡢޤ ++ LZHUF ˡڤӡMS-DOS LHarc ȺٻᡢLHarc ++ UNIX γȯ˶Ϥã褯åζϤƤ줿к ++ (MIX ID:k.ishi)ޤʥݡȤ줿ߤʤ ++ ѤƤäϺ (MIX ID:kmori)˴դޤ + +-SSSEEEEEE AAALLLSSSOOO ϢϢϢ +- tttaaarrr(1), aaarrr(1), cccooommmppprrreeessssss(1) + +-DDDIIISSSTTTRRRIIIBBBUUUTTTIIIOOONNN ۤˤĤ ++Ǹ((FFrroomm MMaassaarruu OOkkii)) ++ 嵭Ϥä LHarc UNIX Y.Tagawa ᡢ ++ OSK ˰ܿȺ LHx Υ르ꥺȤ߹ H.S ᡢ JUNET ++ LHa for UNIX MailingList ˤƶϤƤäߤʤ˴פޤ + +- ʲξǡۡžܡѤĤޤ ++Ǹ((FFrroomm NNoobbuuttaakkaa WWaattaazzaakkii)) ++ Υץκˤäˤޤ LHa ž夲Ƥ ++ ä ˴פޤ + +- 1. ɽʤȡ + +- 2. ƤˤĤƤϡ +- +- a. ۤκݤ¸ߤ(ʤɡɥ +- ȡץޡؤμʤ)ۤ +- Τɬ¸ߤ뤳ȡѤƤʤ +- ɥȤѰդ뤳ȡ +- +- b. LHa Фղòͤդƺۤ +- ϤǤޤ褦Ϥ뤳ȡޤ +- κݤˤղòͤդƤ뤳Ȥ +- ȤѰդ뤳ȡ +- +- +- +- January 14,1997 4 +- +- +- +-LHA(N) Unix Programmer's Manual LHA(N) +- +- +- c. ХʥΤߤۤϵʤ(ղòͤΤΤ +- ޤ) +- +- 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ) +- +- . ʤͥåȤǤդϼͳǤ뤬ͥåȤ˥ +- Ǥʤʻ浪ӡCD-ROM ʤɤˤ +- ϡˤ E-Mail ꤤޤ +- ˽ʤݤˤϡɬ E-Mail ꤤޤ +- +- 4. Υץ¸ߤѤȤˤä» +- ݾڤʤ +- +- 5. ԤϡΥץäƤ⡢ +- ̳ʤ +- +- 6. Υץΰޤ¾Υץ +- Ȥ߹ѤƤ⤫ޤʤξ硢Υץ +- LHa ǤϤʤLHa ̾äƤϤʤ +- +- 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤ +- Ȥˤǧ롣 +- +- a. ΥץᥤȤ뾦Ѥ϶ػߤ롣 +- +- b. Ѥ꤬ΥץλѼԤȤŬڤ +- ȽǤˤۤʤ +- +- c. ȡμʤȤƻѤ硢Υץ +- ȤȤ˶ʤξ硢Ѽ +- ȤԤޤΤȤ»ϡѼԤ +- Ǥ餦 +- +- d. ѤղòͤȤƹԤΥץѤ +- 硢ѼԤϡΥݡȤԤ +- +-Ǹ(((FFFrrrooommm YYY...TTTaaagggaaawwwaaa))) +- LZHUF ˡδäȤʤä LZARI ˡȯɽƤä¼ +- ɧᡢ NIFTY-Serve ˾Ҳ𤷡ޤLArc κԤǤ⤢ +- 뻰ɧᡢޤװ LZHUF ˡڤӡMS-DOS +- LHarc ȺٻᡢLHarc UNIX γȯ˶Ϥ +- ã褯åζϤƤ줿к(MIX +- ID:k.ishi)ޤʥݡȤ줿ߤʤ +- ѤƤäϺ (MIX ID:kmori)˴դޤ +- +- +- +- January 14,1997 5 +- +- +- +-LHA(N) Unix Programmer's Manual LHA(N) +- +- +-Ǹ(((FFFrrrooommm MMMaaasssaaarrruuu OOOkkkiii))) +- 嵭Ϥä LHarc UNIX Y.Tagawa +- ᡢ OSK ˰ܿȺ LHx Υ르ꥺȤ߹ +- H.S ᡢJUNET LHa for UNIX MailingList ˤƶϤ +- Ƥäߤʤ˴פޤ +- +-Ǹ(((FFFrrrooommm NNNooobbbuuutttaaakkkaaa WWWaaatttaaazzzaaakkkiii))) +- Υץκˤäˤޤ LHa +- ž夲Ƥä ˴פޤ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- January 14,1997 6 + ++ January 14,1997 LHA(N) +--- lha-1.14i.orig/Makefile ++++ lha-1.14i/Makefile +@@ -20,7 +20,7 @@ + + #MACHINE = -DSYSTIME_HAS_NO_TM -DFTIME -DEUC + #MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DHAVE_TM_ZONE -DSYSV_SYSTEM_DIR +-MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME ++MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME -DMULTIBYTE_CHAR + + #OPTIMIZE = -O2 -fstrength-reduce -fomit-frame-pointer + OPTIMIZE = -O2 -DSUPPORT_LH7 -DMKSTEMP +--- lha-1.14i.orig/debian/patch.multibyte ++++ lha-1.14i/debian/patch.multibyte +@@ -0,0 +1,145 @@ ++diff -Nuar src.old/header.c src/header.c ++--- src.old/header.c Fri Oct 6 02:36:03 2000 +++++ src/header.c Fri Jul 19 16:46:41 2002 ++@@ -82,6 +82,7 @@ ++ register int i; ++ ++ #ifdef MULTIBYTE_CHAR +++ if (multibyte_mode == TRUE) { ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++@@ -91,6 +92,14 @@ ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } +++ } else { +++ for (i = 0; i < len; i++) { +++ if (name[i] == '\\') +++ name[i] = '/'; +++ else if (!noconvertcase && isupper(name[i])) +++ name[i] = tolower(name[i]); +++ } +++ } ++ #else ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++@@ -111,6 +120,7 @@ ++ boolean lower_case_used = FALSE; ++ ++ #ifdef MULTIBYTE_CHAR +++ if (multibyte_mode == TRUE) { ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++@@ -128,6 +138,19 @@ ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); +++ } +++ } else { +++ for (i = 0; i < len; i++) +++ if (islower(name[i])) { +++ lower_case_used = TRUE; +++ break; +++ } +++ for (i = 0; i < len; i++) { +++ if (name[i] == '\\') +++ name[i] = '/'; +++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) +++ name[i] = tolower(name[i]); +++ } ++ } ++ #else ++ for (i = 0; i < len; i++) ++diff -Nuar src.old/lha.h src/lha.h ++--- src.old/lha.h Fri Jul 19 17:22:13 2002 +++++ src/lha.h Fri Jul 19 17:18:05 2002 ++@@ -101,6 +101,9 @@ ++ #ifdef EUC ++ EXTERN boolean euc_mode; ++ #endif +++#ifdef MULTIBYTE_CHAR +++EXTERN boolean multibyte_mode; +++#endif ++ ++ /* list command flags */ ++ EXTERN boolean verbose_listing; ++diff -Nuar src.old/lharc.c src/lharc.c ++--- src.old/lharc.c Fri Oct 6 02:33:34 2000 +++++ src/lharc.c Fri Jul 19 16:56:03 2002 ++@@ -101,6 +101,10 @@ ++ euc_mode = FALSE; ++ #endif ++ +++#ifdef MULTIBYTE_CHAR +++ multibyte_mode = FALSE; +++#endif +++ ++ /* view command flags */ ++ verbose_listing = FALSE; ++ ++@@ -177,6 +181,11 @@ ++ e TEXT code convert from/to EUC\n\ ++ "); ++ #endif +++#ifdef MULTIBYTE_CHAR +++ fprintf(stderr, "\ +++ y filename multibyte convert\n\ +++"); +++#endif ++ exit(1); ++ } ++ ++@@ -308,6 +317,11 @@ ++ case 'e': ++ text_mode = TRUE; ++ euc_mode = TRUE; +++ break; +++#endif +++#ifdef MULTIBYTE_CHAR +++ case 'y': +++ multibyte_mode = TRUE; ++ break; ++ #endif ++ case 'n': ++diff -Nuar src.old/util.c src/util.c ++--- src.old/util.c Wed Oct 4 23:57:38 2000 +++++ src/util.c Fri Jul 19 16:49:23 2002 ++@@ -113,18 +113,29 @@ ++ #endif ++ for (p = path; (c = *p) != 0; p++) { ++ #ifdef MULTIBYTE_CHAR ++- if (kflg) { ++- kflg = 0; +++ if (multibyte_mode == TRUE) { +++ if (kflg) { +++ kflg = 0; +++ } else if (MULTIBYTE_FIRST_P(c)) { +++ kflg = 1; +++ } else { +++ if (c == '\\' || c == DELIM || c == DELIM2) { +++ *p = delim; +++ path = p + 1; +++ } +++ } +++ } else { +++ if (c == '\\' || c == DELIM || c == DELIM2) { +++ *p = delim; +++ path = p + 1; +++ } ++ } ++- else if (MULTIBYTE_FIRST_P(c)) { ++- kflg = 1; ++- } ++- else ++-#endif +++#else ++ if (c == '\\' || c == DELIM || c == DELIM2) { ++ *p = delim; ++ path = p + 1; ++ } +++#endif ++ } ++ return path; ++ } +--- lha-1.14i.orig/debian/README.Debian ++++ lha-1.14i/debian/README.Debian +@@ -0,0 +1,6 @@ ++lha for DEBIAN ++---------------------- ++ ++LHa for UNIX ++ ++Atsushi KAMOSHIDA <kamop@post1.com>, Sun, 13 Apr 1997 17:52:59 +0900 +--- lha-1.14i.orig/debian/org/lha.h ++++ lha-1.14i/debian/org/lha.h +@@ -0,0 +1,322 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX Archiver Driver */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14i Modified and bug fixed 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++/* ++ Included... ++ lharc.h interface.h slidehuf.h ++*/ ++#include <stdio.h> ++#include <errno.h> ++#include <ctype.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <sys/stat.h> ++ ++#include <signal.h> ++ ++#include "lha_macro.h" ++ ++struct encode_option { ++#if defined(__STDC__) || defined(AIX) ++ void (*output) (); ++ void (*encode_start) (); ++ void (*encode_end) (); ++#else ++ int (*output) (); ++ int (*encode_start) (); ++ int (*encode_end) (); ++#endif ++}; ++ ++struct decode_option { ++ unsigned short (*decode_c) (); ++ unsigned short (*decode_p) (); ++#if defined(__STDC__) || defined(AIX) ++ void (*decode_start) (); ++#else ++ int (*decode_start) (); ++#endif ++}; ++ ++/* ------------------------------------------------------------------------ */ ++/* LHa File Type Definition */ ++/* ------------------------------------------------------------------------ */ ++struct string_pool { ++ int used; ++ int size; ++ int n; ++ char *buffer; ++}; ++ ++typedef struct LzHeader { ++ unsigned char header_size; ++ char method[METHOD_TYPE_STRAGE]; ++ long packed_size; ++ long original_size; ++ long last_modified_stamp; ++ unsigned char attribute; ++ unsigned char header_level; ++ char name[256]; ++ unsigned short crc; ++ boolean has_crc; ++ unsigned char extend_type; ++ unsigned char minor_version; ++ ++ /* extend_type == EXTEND_UNIX and convert from other type. */ ++ time_t unix_last_modified_stamp; ++ unsigned short unix_mode; ++ unsigned short unix_uid; ++ unsigned short unix_gid; ++} LzHeader; ++ ++struct interfacing { ++ FILE *infile; ++ FILE *outfile; ++ unsigned long original; ++ unsigned long packed; ++ int dicbit; ++ int method; ++}; ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* Option switch variable */ ++/* ------------------------------------------------------------------------ */ ++/* command line options (common options) */ ++EXTERN boolean quiet; ++EXTERN boolean text_mode; ++EXTERN boolean verbose; ++EXTERN boolean noexec; /* debugging option */ ++EXTERN boolean force; ++EXTERN boolean prof; ++EXTERN boolean delete_after_append; ++EXTERN int compress_method; ++EXTERN int header_level; ++/* EXTERN int quiet_mode; */ /* 1996.8.13 t.okamoto */ ++#ifdef EUC ++EXTERN boolean euc_mode; ++#endif ++ ++/* list command flags */ ++EXTERN boolean verbose_listing; ++ ++/* extract/print command flags */ ++EXTERN boolean output_to_stdout; ++ ++/* add/update/delete command flags */ ++EXTERN boolean new_archive; ++EXTERN boolean update_if_newer; ++EXTERN boolean generic_format; ++ ++EXTERN boolean remove_temporary_at_error; ++EXTERN boolean recover_archive_when_interrupt; ++EXTERN boolean remove_extracting_file_when_interrupt; ++EXTERN boolean get_filename_from_stdin; ++EXTERN boolean ignore_directory; ++EXTERN boolean verify_mode; ++ ++/* Indicator flag */ ++EXTERN int quiet_mode; ++ ++/* ------------------------------------------------------------------------ */ ++/* Globale Variable */ ++/* ------------------------------------------------------------------------ */ ++EXTERN char **cmd_filev; ++EXTERN int cmd_filec; ++ ++EXTERN char *archive_name; ++EXTERN char expanded_archive_name[FILENAME_LENGTH]; ++EXTERN char temporary_name[FILENAME_LENGTH]; ++EXTERN char backup_archive_name[FILENAME_LENGTH]; ++ ++EXTERN char *reading_filename, *writting_filename; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++EXTERN boolean remove_temporary_at_error; ++EXTERN boolean recover_archive_when_interrupt; ++EXTERN boolean remove_extracting_file_when_interrupt; ++#endif ++ ++EXTERN int archive_file_mode; ++EXTERN int archive_file_gid; ++ ++EXTERN struct interfacing interface; ++EXTERN node *next; ++/* EXTERN unsigned short crc; */ /* 1996.8.13 t.okamoto */ ++ ++EXTERN int noconvertcase; /* 2000.10.6 */ ++ ++/* slide.c */ ++EXTERN int unpackable; ++EXTERN unsigned long origsize, compsize; ++EXTERN unsigned short dicbit; ++EXTERN unsigned short maxmatch; ++EXTERN unsigned long count; ++EXTERN unsigned long loc; /* short -> long .. Changed N.Watazaki */ ++EXTERN unsigned char *text; ++EXTERN int prev_char; ++ ++/* huf.c */ ++#ifndef LHA_MAIN_SRC /* t.okamoto 96/2/20 */ ++EXTERN unsigned short left[], right[]; ++EXTERN unsigned char c_len[], pt_len[]; ++EXTERN unsigned short c_freq[], c_table[], c_code[]; ++EXTERN unsigned short p_freq[], pt_table[], pt_code[], t_freq[]; ++#endif ++ ++/* append.c */ ++#ifdef NEED_INCREMENTAL_INDICATOR ++EXTERN long indicator_count; ++EXTERN long indicator_threshold; ++#endif ++ ++/* crcio.c */ ++EXTERN FILE *infile, *outfile; ++EXTERN unsigned short crc, bitbuf; ++EXTERN int dispflg; ++EXTERN long reading_size; ++ ++/* from dhuf.c */ ++EXTERN unsigned int n_max; ++ ++/* lhadd.c */ ++EXTERN FILE *temporary_fp; ++ ++/* ------------------------------------------------------------------------ */ ++/* Functions */ ++/* ------------------------------------------------------------------------ */ ++/* from lharc.c */ ++extern int patmatch(); ++ ++extern void interrupt(); ++ ++extern void message(); ++extern void warning(); ++extern void error(); ++extern void fatal_error(); ++ ++extern boolean need_file(); ++extern int inquire(); ++extern FILE *xfopen(); ++ ++extern boolean find_files(); ++extern void free_files(); ++ ++extern void init_sp(); ++extern void add_sp(); ++extern void finish_sp(); ++extern void free_sp(); ++extern void cleaning_files(); ++ ++extern void build_temporary_name(); ++extern void build_backup_file_name(); ++extern void build_standard_archive_name(); ++ ++extern FILE *open_old_archive(); ++extern void init_header(); ++extern boolean get_header(); ++extern boolean archive_is_msdos_sfx1(); ++extern boolean skip_msdos_sfx1_code(); ++extern void write_header(); ++extern void write_archive_tail(); ++extern void copy_old_one(); ++extern unsigned char *convdelim(); ++extern long copyfile(); ++ ++extern void cmd_list(), cmd_extract(), cmd_add(), cmd_delete(); ++ ++extern boolean ignore_directory; ++extern boolean compress_method; ++extern boolean verify_mode; ++ ++extern char *extract_directory; ++ ++/* from slide.c */ ++ ++extern int encode_alloc(); ++extern void encode(); ++extern void decode(); ++ ++/* from append.c */ ++extern void start_indicator(); ++extern void finish_indicator(); ++extern void finish_indicator2(); ++ ++/* slide.c */ ++extern void output_st1(); ++extern unsigned char *alloc_buf(); ++extern void encode_start_st1(); ++extern void encode_end_st1(); ++extern unsigned short decode_c_st1(); ++extern unsigned short decode_p_st1(); ++extern void decode_start_st1(); ++ ++/* from shuf.c */ ++extern void decode_start_st0(); ++extern void encode_p_st0( /* unsigned short j */ ); ++extern void encode_start_fix(); ++extern void decode_start_fix(); ++extern unsigned short decode_c_st0(); ++extern unsigned short decode_p_st0(); ++ ++/* from dhuf.c */ ++extern void start_c_dyn(); ++extern void decode_start_dyn(); ++extern unsigned short decode_c_dyn(); ++extern unsigned short decode_p_dyn(); ++extern void output_dyn( /* int code, unsigned int pos */ ); ++extern void encode_end_dyn(); ++ ++extern int decode_lzhuf(); ++ ++/* from larc.c */ ++ ++extern unsigned short decode_c_lzs(); ++extern unsigned short decode_p_lzs(); ++extern unsigned short decode_c_lz5(); ++extern unsigned short decode_p_lz5(); ++extern void decode_start_lzs(); ++extern void decode_start_lz5(); ++ ++extern void make_table( /* int nchar, uchar bitlen[], int tablebits, ++ ushort table[] */ ); ++ ++/* from maketree.c */ ++/* ++ * void make_code(short n, uchar len[], ushort code[]); short make_tree(short ++ * nparm, ushort freqparm[], uchar lenparm[], ushort codeparam[]); ++ */ ++extern void make_code( /* int n, uchar len[], ushort code[] */ ); ++extern short make_tree( /* int nparm, ushort freqparm[], uchar lenparm[], ++ ushort codeparam[] */ ); ++ ++/* from crcio.c */ ++extern void make_crctable(); ++extern unsigned short calccrc( /* uchar *p, uint n */ ); ++extern void fillbuf( /* uchar n */ ); ++extern unsigned short getbits( /* uchar n */ ); ++extern void putcode( /* uchar n, ushort x */ ); ++extern void putbits( /* uchar n, ushort x */ ); ++extern int fread_crc( /* uchar *p, int n, FILE *f */ ); ++extern void fwrite_crc( /* uchar *p, int n, FILE *f */ ); ++extern void init_getbits(); ++extern void init_putbits(); ++extern void make_crctable(); ++extern unsigned short calccrc(); ++ ++/* from lhadd.c */ ++extern int encode_lzhuf(); ++extern int encode_stored_crc(); ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ ++ ++ +--- lha-1.14i.orig/debian/org/header.c ++++ lha-1.14i/debian/org/header.c +@@ -0,0 +1,875 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* header.c -- header manipulate functions */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Original Y.Tagawa */ ++/* modified 1991.12.16 M.Oki */ ++/* Ver. 1.10 Symbolic Link added 1993.10.01 N.Watazaki */ ++/* Ver. 1.13b Symbolic Link Bug Fix 1994.08.22 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14i bug fixed 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++static char *get_ptr; ++/* ------------------------------------------------------------------------ */ ++int ++calc_sum(p, len) ++ register char *p; ++ register int len; ++{ ++ register int sum; ++ ++ for (sum = 0; len; len--) ++ sum += *p++; ++ ++ return sum & 0xff; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static unsigned short ++get_word() ++{ ++ int b0, b1; ++ ++ b0 = get_byte(); ++ b1 = get_byte(); ++ return (b1 << 8) + b0; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++put_word(v) ++ unsigned int v; ++{ ++ put_byte(v); ++ put_byte(v >> 8); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static long ++get_longword() ++{ ++ long b0, b1, b2, b3; ++ ++ b0 = get_byte(); ++ b1 = get_byte(); ++ b2 = get_byte(); ++ b3 = get_byte(); ++ return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++put_longword(v) ++ long v; ++{ ++ put_byte(v); ++ put_byte(v >> 8); ++ put_byte(v >> 16); ++ put_byte(v >> 24); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++msdos_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++#ifdef MULTIBYTE_CHAR ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#else ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++generic_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ boolean lower_case_used = FALSE; ++ ++#ifdef MULTIBYTE_CHAR ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (islower(name[i])) { ++ lower_case_used = TRUE; ++ break; ++ } ++ } ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#else ++ for (i = 0; i < len; i++) ++ if (islower(name[i])) { ++ lower_case_used = TRUE; ++ break; ++ } ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++macos_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++ for (i = 0; i < len; i++) { ++ if (name[i] == ':') ++ name[i] = '/'; ++ else if (name[i] == '/') ++ name[i] = ':'; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++unix_to_generic_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++ for (i = 0; i < len; i++) { ++ if (name[i] == '/') ++ name[i] = '\\'; ++ else if (islower(name[i])) ++ name[i] = toupper(name[i]); ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* Generic stamp format: */ ++/* */ ++/* 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 */ ++/* |<-------- year ------->|<- month ->|<-- day -->| */ ++/* */ ++/* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 */ ++/* |<--- hour --->|<---- minute --->|<- second*2 ->| */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++ ++/* ++ * NOTE : If you don't have `gettimeofday(2)', or your gettimeofday(2) ++ * returns bogus timezone information, try FTIME, MKTIME, TIMELOCAL or TZSET. ++ */ ++ ++/* choose one */ ++#if defined(MKTIME) ++#ifdef TIMELOCAL ++#undef TIMELOCAL ++#endif ++#endif /* defined(MKTIME) */ ++ ++#if defined(MKTIME) || defined(TIMELOCAL) ++#ifdef TZSET ++#undef TZSET ++#endif ++#endif /* defined(MKTIME) || defined(TIMELOCAL) */ ++ ++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET) ++#ifdef FTIME ++#undef FTIME ++#endif ++#endif ++ ++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET) || defined(FTIME) ++#ifdef GETTIMEOFDAY ++#undef GETTIMEOFDAY ++#endif ++#else ++#ifndef GETTIMEOFDAY ++#define GETTIMEOFDAY /* use gettimeofday() */ ++#endif ++#endif ++ ++#ifdef FTIME ++#include <sys/timeb.h> ++#endif ++ ++/* ++ * You may define as : #define TIMEZONE_HOOK \ extern long ++ * timezone ; \ extern void tzset(); ++ */ ++#ifdef TIMEZONE_HOOK ++TIMEZONE_HOOK ++/* Which do you like better, `TIMEZONE_HOOK' or `TIMEZONE_HOOK;' ? */ ++#endif ++ ++#if defined(TZSET) && defined(_MINIX) ++extern long timezone; /* not defined in time.h */ ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if defined(FTIME) || defined(GETTIMEOFDAY) || defined(TZSET) ++static long ++gettz() ++#ifdef TZSET ++{ ++ tzset(); ++ return timezone; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if !defined(TZSET) && defined(FTIME) ++{ ++ struct timeb buf; ++ ++ ftime(&buf); ++ return buf.timezone * 60L; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if !defined(TZSET) && !defined(FTIME) /* maybe defined(GETTIMEOFDAY) */ ++{ ++#ifdef HAVE_TM_ZONE ++ time_t tt; ++ ++ time(&tt); ++ return -localtime(&tt)->tm_gmtoff; ++#else /* HAVE_TM_ZONE */ ++ struct timeval tp; ++ struct timezone tzp; ++ gettimeofday(&tp, &tzp);/* specific to 4.3BSD */ ++ /* ++ * return (tzp.tz_minuteswest * 60L + (tzp.tz_dsttime != 0 ? 60L * ++ * 60L : 0)); ++ */ ++ return (tzp.tz_minuteswest * 60L); ++#endif /* HAVE_TM_ZONE */ ++} ++#endif ++#endif /* defined(FTIME) || defined(GETTIMEOFDAY) || ++ * defined(TZSET) */ ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOT_USED ++static struct tm * ++msdos_to_unix_stamp_tm(a) ++ long a; ++{ ++ static struct tm t; ++ ++ t.tm_sec = (a & 0x1f) * 2; ++ t.tm_min = (a >> 5) & 0x3f; ++ t.tm_hour = (a >> 11) & 0x1f; ++ t.tm_mday = (a >> 16) & 0x1f; ++ t.tm_mon = ((a >> 16 + 5) & 0x0f) - 1; ++ t.tm_year = ((a >> 16 + 9) & 0x7f) + 80; ++ return &t; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++static time_t ++generic_to_unix_stamp(t) ++ long t; ++#if defined(MKTIME) || defined(TIMELOCAL) ++{ ++ struct tm dostm; ++ ++ /* ++ * special case: if MSDOS format date and time were zero, then we ++ * set time to be zero here too. ++ */ ++ if (t == 0) ++ return (time_t) 0; ++ ++ dostm.tm_sec = (t & 0x1f) * 2; ++ dostm.tm_min = t >> 5 & 0x3f; ++ dostm.tm_hour = t >> 11 & 0x1f; ++ dostm.tm_mday = t >> 16 & 0x1f; ++ dostm.tm_mon = (t >> 16 + 5 & 0x0f) - 1; /* 0..11 */ ++ dostm.tm_year = (t >> 16 + 9 & 0x7f) + 80; ++#if 0 ++ dostm.tm_isdst = 0; /* correct? */ ++#endif ++ dostm.tm_isdst = -1; /* correct? */ ++#ifdef MKTIME ++ return (time_t) mktime(&dostm); ++#else /* maybe defined(TIMELOCAL) */ ++ return (time_t) timelocal(&dostm); ++#endif ++} ++ ++#else /* defined(MKTIME) || defined(TIMELOCAL) */ ++{ ++ int year, month, day, hour, min, sec; ++ long longtime; ++ static unsigned int dsboy[12] = {0, 31, 59, 90, 120, 151, ++ 181, 212, 243, 273, 304, 334}; ++ unsigned int days; ++ ++ /* ++ * special case: if MSDOS format date and time were zero, then we ++ * set time to be zero here too. ++ */ ++ if (t == 0) ++ return (time_t) 0; ++ ++ year = ((int) (t >> 16 + 9) & 0x7f) + 1980; ++ month = (int) (t >> 16 + 5) & 0x0f; /* 1..12 means Jan..Dec */ ++ day = (int) (t >> 16) & 0x1f; /* 1..31 means 1st,...31st */ ++ ++ hour = ((int) t >> 11) & 0x1f; ++ min = ((int) t >> 5) & 0x3f; ++ sec = ((int) t & 0x1f) * 2; ++ ++ /* Calculate days since 1970.01.01 */ ++ days = (365 * (year - 1970) + /* days due to whole years */ ++ (year - 1970 + 1) / 4 + /* days due to leap years */ ++ dsboy[month - 1] + /* days since beginning of this year */ ++ day - 1); /* days since beginning of month */ ++ ++ if ((year % 4 == 0) && ++ (year % 100 != 0 || year % 400 == 0) && /* 1999.5.24 t.oka */ ++ (month >= 3)) /* if this is a leap year and month */ ++ days++; /* is March or later, add a day */ ++ ++ /* Knowing the days, we can find seconds */ ++ longtime = (((days * 24) + hour) * 60 + min) * 60 + sec; ++ longtime += gettz(); /* adjust for timezone */ ++ ++ /* LONGTIME is now the time in seconds, since 1970/01/01 00:00:00. */ ++ return (time_t) longtime; ++} ++#endif /* defined(MKTIME) || defined(TIMELOCAL) */ ++ ++/* ------------------------------------------------------------------------ */ ++static long ++unix_to_generic_stamp(t) ++ time_t t; ++{ ++ struct tm *tm = localtime(&t); ++ ++ return ((((long) (tm->tm_year - 80)) << 25) + ++ (((long) (tm->tm_mon + 1)) << 21) + ++ (((long) tm->tm_mday) << 16) + ++ (long) ((tm->tm_hour << 11) + ++ (tm->tm_min << 5) + ++ (tm->tm_sec / 2))); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* build header functions */ ++/* ------------------------------------------------------------------------ */ ++boolean ++get_header(fp, hdr) ++ FILE *fp; ++ register LzHeader *hdr; ++{ ++ int header_size; ++ int name_length; ++ char data[LZHEADER_STRAGE]; ++ char dirname[FILENAME_LENGTH]; ++ int dir_length = 0; ++ int checksum; ++ int i; ++ char *ptr; ++ int extend_size; ++ int dmy; ++ ++ bzero(hdr, sizeof(LzHeader)); ++ ++ if (((header_size = getc(fp)) == EOF) || (header_size == 0)) { ++ return FALSE; /* finish */ ++ } ++ ++ if (fread(data + I_HEADER_CHECKSUM, ++ sizeof(char), header_size - 1, fp) < header_size - 1) { ++ fatal_error("Invalid header (LHarc file ?)"); ++ return FALSE; /* finish */ ++ } ++ setup_get(data + I_HEADER_LEVEL); ++ hdr->header_level = get_byte(); ++ if (hdr->header_level != 2 && ++ fread(data + header_size, sizeof(char), 2, fp) < 2) { ++ fatal_error("Invalid header (LHarc file ?)"); ++ return FALSE; /* finish */ ++ } ++ ++ if (hdr->header_level >= 3) { ++ fatal_error("Unknown level header"); ++ return FALSE; ++ } ++ ++ setup_get(data + I_HEADER_CHECKSUM); ++ checksum = get_byte(); ++ ++ if (hdr->header_level == 2) { ++ hdr->header_size = header_size + checksum*256; ++ } else { ++ hdr->header_size = header_size; ++ } ++ bcopy(data + I_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ setup_get(data + I_PACKED_SIZE); ++ hdr->packed_size = get_longword(); ++ hdr->original_size = get_longword(); ++ hdr->last_modified_stamp = get_longword(); ++ hdr->attribute = get_byte(); ++ ++ if ((hdr->header_level = get_byte()) != 2) { ++ if (calc_sum(data + I_METHOD, header_size) != checksum) ++ warning("Checksum error (LHarc file?)", ""); ++ name_length = get_byte(); ++ for (i = 0; i < name_length; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[name_length] = '\0'; ++ } ++ else { ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ name_length = 0; ++ } ++ ++ /* defaults for other type */ ++ hdr->unix_mode = UNIX_FILE_REGULAR | UNIX_RW_RW_RW; ++ hdr->unix_gid = 0; ++ hdr->unix_uid = 0; ++ ++ if (hdr->header_level == 0) { ++ extend_size = header_size - name_length -22; ++ if (extend_size < 0) { ++ if (extend_size == -2) { ++ hdr->extend_type = EXTEND_GENERIC; ++ hdr->has_crc = FALSE; ++ } else { ++ fatal_error("Unkonwn header (lha file?)"); ++ return FALSE; ++ } ++ } else { ++ hdr->has_crc = TRUE; ++ hdr->crc = get_word(); ++ } ++ ++ if (extend_size >= 1) { ++ hdr->extend_type = get_byte(); ++ extend_size--; ++ } ++ if (hdr->extend_type == EXTEND_UNIX) { ++ if (extend_size >= 11) { ++ hdr->minor_version = get_byte(); ++ hdr->unix_last_modified_stamp = (time_t) get_longword(); ++ hdr->unix_mode = get_word(); ++ hdr->unix_uid = get_word(); ++ hdr->unix_gid = get_word(); ++ extend_size -= 11; ++ } else { ++ hdr->extend_type = EXTEND_GENERIC; ++ } ++ } ++ while (extend_size-- > 0) ++ dmy = get_byte(); ++ if (hdr->extend_type == EXTEND_UNIX) ++ return TRUE; ++ } else if (hdr->header_level == 1) { ++ hdr->has_crc = TRUE; ++ extend_size = header_size - name_length-25; ++ hdr->crc = get_word(); ++ hdr->extend_type = get_byte(); ++ while (extend_size-- > 0) ++ dmy = get_byte(); ++ } else { /* level 2 */ ++ hdr->has_crc = TRUE; ++ hdr->crc = get_word(); ++ hdr->extend_type = get_byte(); ++ } ++ ++ if (hdr->header_level > 0) { ++ /* Extend Header */ ++ if (hdr->header_level != 2) ++ setup_get(data + hdr->header_size); ++ ptr = get_ptr; ++ while ((header_size = get_word()) != 0) { ++ if (hdr->header_level != 2 && ++ ((data + LZHEADER_STRAGE - get_ptr < header_size) || ++ fread(get_ptr, sizeof(char), header_size, fp) < header_size)) { ++ fatal_error("Invalid header (LHa file ?)"); ++ return FALSE; ++ } ++ switch (get_byte()) { ++ case 0: ++ /* ++ * header crc ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 1: ++ /* ++ * filename ++ */ ++ for (i = 0; i < header_size - 3; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[header_size - 3] = '\0'; ++ name_length = header_size - 3; ++ break; ++ case 2: ++ /* ++ * directory ++ */ ++ for (i = 0; i < header_size - 3; i++) ++ dirname[i] = (char) get_byte(); ++ dirname[header_size - 3] = '\0'; ++ convdelim(dirname, DELIM); ++ dir_length = header_size - 3; ++ break; ++ case 0x40: ++ /* ++ * MS-DOS attribute ++ */ ++ if (hdr->extend_type == EXTEND_MSDOS || ++ hdr->extend_type == EXTEND_HUMAN || ++ hdr->extend_type == EXTEND_GENERIC) ++ hdr->attribute = get_word(); ++ break; ++ case 0x50: ++ /* ++ * UNIX permission ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) ++ hdr->unix_mode = get_word(); ++ break; ++ case 0x51: ++ /* ++ * UNIX gid and uid ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) { ++ hdr->unix_gid = get_word(); ++ hdr->unix_uid = get_word(); ++ } ++ break; ++ case 0x52: ++ /* ++ * UNIX group name ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 0x53: ++ /* ++ * UNIX user name ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 0x54: ++ /* ++ * UNIX last modified time ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) ++ hdr->unix_last_modified_stamp = (time_t) get_longword(); ++ break; ++ default: ++ /* ++ * other headers ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ } ++ } ++ if (hdr->header_level != 2 && get_ptr - ptr != 2) { ++ hdr->packed_size -= get_ptr - ptr - 2; ++ hdr->header_size += get_ptr - ptr - 2; ++ } ++ } ++ ++ switch (hdr->extend_type) { ++ case EXTEND_MSDOS: ++ msdos_to_unix_filename(hdr->name, name_length); ++ msdos_to_unix_filename(dirname, dir_length); ++ case EXTEND_HUMAN: ++ if (hdr->header_level == 2) ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ else ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ break; ++ ++#ifdef OSK ++ case EXTEND_OS68K: ++ case EXTEND_XOSK: ++#endif ++ case EXTEND_UNIX: ++ break; ++ ++ case EXTEND_MACOS: ++ macos_to_unix_filename(hdr->name, name_length); ++ /* macos_to_unix_filename(dirname, dir_length); */ ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ break; ++ ++ default: ++ generic_to_unix_filename(hdr->name, name_length); ++ generic_to_unix_filename(dirname, dir_length); ++ if (hdr->header_level == 2) ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ else ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ } ++ ++ if (dir_length) { ++ strcat(dirname, hdr->name); ++ strcpy(hdr->name, dirname); ++ name_length += dir_length; ++ } ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++init_header(name, v_stat, hdr) ++ char *name; ++ struct stat *v_stat; ++ LzHeader *hdr; ++{ ++ int len; ++ ++ if (compress_method == LZHUFF5_METHOD_NUM) /* Changed N.Watazaki */ ++ bcopy(LZHUFF5_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ else if (compress_method) ++ bcopy(LZHUFF1_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ else ++ bcopy(LZHUFF0_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ ++ hdr->packed_size = 0; ++ hdr->original_size = v_stat->st_size; ++ hdr->last_modified_stamp = unix_to_generic_stamp(v_stat->st_mtime); ++ hdr->attribute = GENERIC_ATTRIBUTE; ++ hdr->header_level = header_level; ++ strcpy(hdr->name, name); ++ len = strlen(name); ++ hdr->crc = 0x0000; ++ hdr->extend_type = EXTEND_UNIX; ++ hdr->unix_last_modified_stamp = v_stat->st_mtime; ++ /* since 00:00:00 JAN.1.1970 */ ++#ifdef NOT_COMPATIBLE_MODE ++ /* Please need your modification in this space. */ ++#else ++ hdr->unix_mode = v_stat->st_mode; ++#endif ++ ++ hdr->unix_uid = v_stat->st_uid; ++ hdr->unix_gid = v_stat->st_gid; ++ ++ if (is_directory(v_stat)) { ++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; ++ hdr->original_size = 0; ++ if (len > 0 && hdr->name[len - 1] != '/') ++ strcpy(&hdr->name[len++], "/"); ++ } ++ ++#ifdef S_IFLNK ++ if (is_symlink(v_stat)) { ++ char lkname[257]; ++ int len; ++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; ++ hdr->original_size = 0; ++ len = readlink(name, lkname, 256); ++ lkname[len] = (char)'\0'; ++ sprintf(hdr->name, "%s|%s", hdr->name, lkname); ++ } ++#endif ++ if (generic_format) ++ unix_to_generic_filename(hdr->name, len); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* Write unix extended header or generic header. */ ++void ++write_header(nafp, hdr) ++ FILE *nafp; ++ LzHeader *hdr; ++{ ++ int header_size; ++ int name_length; ++ char data[LZHEADER_STRAGE]; ++ char *p; ++ char *headercrc_ptr; ++ ++ bzero(data, LZHEADER_STRAGE); ++ bcopy(hdr->method, data + I_METHOD, METHOD_TYPE_STRAGE); ++ setup_put(data + I_PACKED_SIZE); ++ put_longword(hdr->packed_size); ++ put_longword(hdr->original_size); ++ ++ if (hdr->header_level == HEADER_LEVEL2) ++ put_longword((long) hdr->unix_last_modified_stamp); ++ else ++ put_longword(hdr->last_modified_stamp); ++ ++ switch (hdr->header_level) { ++ case HEADER_LEVEL0: ++ put_byte(hdr->attribute); ++ break; ++ case HEADER_LEVEL1: ++ case HEADER_LEVEL2: ++ put_byte(0x20); ++ break; ++ } ++ ++ put_byte(hdr->header_level); ++ ++ convdelim(hdr->name, DELIM2); ++ if (hdr->header_level != HEADER_LEVEL2) { ++ if (p = (char *) rindex(hdr->name, DELIM2)) ++ name_length = strlen(++p); ++ else ++ name_length = strlen(hdr->name); ++ put_byte(name_length); ++ bcopy(p ? p : hdr->name, data + I_NAME, name_length); ++ setup_put(data + I_NAME + name_length); ++ } ++ ++ put_word(hdr->crc); ++ if (header_level == HEADER_LEVEL0) { ++ if (generic_format) { ++ header_size = I_GENERIC_HEADER_BOTTOM - 2 + name_length; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } else { ++ /* write old-style extend header */ ++ put_byte(EXTEND_UNIX); ++ put_byte(CURRENT_UNIX_MINOR_VERSION); ++ put_longword((long) hdr->unix_last_modified_stamp); ++ put_word(hdr->unix_mode); ++ put_word(hdr->unix_uid); ++ put_word(hdr->unix_gid); ++ header_size = I_UNIX_EXTEND_BOTTOM - 2 + name_length; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } ++ } else { ++ /* write extend header. */ ++ char *ptr; ++ ++ if (generic_format) ++ put_byte(0x00); ++ else ++ put_byte(EXTEND_UNIX); ++ ++ ptr = put_ptr; ++ if (hdr->header_level == HEADER_LEVEL2) { ++ /* write common header */ ++ put_word(5); ++ put_byte(0x00); ++ headercrc_ptr = put_ptr; ++ put_word(0x0000); ++ } ++ ++ if (generic_format) { ++ header_size = put_ptr - data; /* +2 for last 0x0000 */ ++ } else { ++ put_word(5); ++ if (hdr->header_level == HEADER_LEVEL1) ++ header_size = put_ptr - data - 2; ++ put_byte(0x50); /* permission */ ++ put_word(hdr->unix_mode); ++ put_word(7); ++ put_byte(0x51); /* gid and uid */ ++ put_word(hdr->unix_gid); ++ put_word(hdr->unix_uid); ++ ++ if (p = (char *) rindex(hdr->name, DELIM2)) { ++ int i; ++ ++ name_length = p - hdr->name + 1; ++ put_word(name_length + 3); ++ put_byte(2); /* dirname */ ++ for (i = 0; i < name_length; i++) ++ put_byte(hdr->name[i]); ++ } ++ } /* if generic .. */ ++ ++ if (header_level != HEADER_LEVEL2) { ++ if (!generic_format) { ++ put_word(7); ++ put_byte(0x54); /* time stamp */ ++ put_longword(hdr->unix_last_modified_stamp); ++ } ++ hdr->packed_size += put_ptr - ptr; ++ ptr = put_ptr; ++ setup_put(data + I_PACKED_SIZE); ++ put_longword(hdr->packed_size); ++ put_ptr = ptr; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } else { /* header level 2 */ ++ int i; ++ if (p = (char *) rindex(hdr->name, DELIM2)) ++ name_length = strlen(++p); ++ else { ++ p = hdr->name; ++ name_length = strlen(hdr->name); ++ } ++ put_word(name_length + 3); ++ put_byte(1); /* filename */ ++ for (i = 0; i < name_length; i++) ++ put_byte(*p++); ++ } /* if he.. != HEAD_LV2 */ ++ header_size = put_ptr - data; ++ } ++ ++ if (header_level == HEADER_LEVEL2) { ++ unsigned short hcrc; ++ setup_put(data + I_HEADER_SIZE); ++ put_word(header_size + 2); ++ /* common header */ ++ hcrc = calc_header_crc(data, (unsigned int) header_size + 2); ++ setup_put(headercrc_ptr); ++ put_word(hcrc); ++ } ++ ++ if (fwrite(data, sizeof(char), header_size + 2, nafp) == 0) ++ fatal_error("Cannot write to temporary file"); ++ ++ convdelim(hdr->name, DELIM); ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c header.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lharc.c ++++ lha-1.14i/debian/org/lharc.c +@@ -0,0 +1,1135 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lharc.c -- append to archive */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* Thanks to H.Yoshizaki. (MS-DOS LHarc) */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 0.01 Alpha Version (for 4.2BSD) 1989.05.28 Y.Tagawa */ ++/* Ver. 0.02 Alpha Version Rel.2 1989.05.29 Y.Tagawa */ ++/* Ver. 0.03 Release #3 Beta Version 1989.07.02 Y.Tagawa */ ++/* Ver. 0.03a Debug 1989.07.03 Y.Tagawa */ ++/* Ver. 0.03b Modified 1989.07.13 Y.Tagawa */ ++/* Ver. 0.03c Debug (Thanks to void@rena.dit.junet) */ ++/* 1989.08.09 Y.Tagawa */ ++/* Ver. 0.03d Modified (quiet and verbose) 1989.09.14 Y.Tagawa */ ++/* V1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* V1.01 Bug Fixed 1989.12.25 Y.Tagawa */ ++/* */ ++/* DOS-Version Original LHx V C2.01 (C) H.Yohizaki */ ++/* */ ++/* V2.00 UNIX Lharc + DOS LHx -> OSK LHx 1990.11.01 Momozou */ ++/* V2.01 Minor Modified 1990.11.24 Momozou */ ++/* */ ++/* Ver. 0.02 LHx for UNIX 1991.11.18 M.Oki */ ++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */ ++/* Ver. 0.04 LHa for UNIX beta version 1992.01.20 M.Oki */ ++/* Ver. 1.00 LHa for UNIX Fixed 1992.03.19 M.Oki */ ++/* */ ++/* Ver. 1.10 for Symblic Link 1993.06.25 N.Watazaki */ ++/* Ver. 1.11 for Symblic Link Bug Fixed 1993.08.18 N.Watazaki */ ++/* Ver. 1.12 for File Date Check 1993.10.28 N.Watazaki */ ++/* Ver. 1.13 Bug Fixed (Idicator calcurate) 1994.02.21 N.Watazaki */ ++/* Ver. 1.13a Bug Fixed (Sym. Link delete) 1994.03.11 N.Watazaki */ ++/* Ver. 1.13b Bug Fixed (Sym. Link delete) 1994.07.29 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14b,c Bug Fixed 1996.03.07 t.okamoto */ ++/* Ver. 1.14d Version up 1997.01.12 t.okamoto */ ++/* Ver. 1.14g Bug Fixed 2000.05.06 t.okamoto */ ++/* Ver. 1.14i Modified 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++#define LHA_MAIN_SRC ++ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++/* PROGRAM */ ++/* ------------------------------------------------------------------------ */ ++static int cmd = CMD_UNKNOWN; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++char **cmd_filev; ++int cmd_filec; ++ ++char *archive_name; ++char expanded_archive_name[FILENAME_LENGTH]; ++char temporary_name[FILENAME_LENGTH]; ++char backup_archive_name[FILENAME_LENGTH]; ++#endif ++ ++/* static functions */ ++static void sort_files(); ++static void print_version(); ++ ++char *extract_directory = NULL; ++char **xfilev; ++int xfilec = 257; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++char *writting_filename; ++char *reading_filename; ++ ++int archive_file_mode; ++int archive_file_gid; ++#endif ++/* ------------------------------------------------------------------------ */ ++static void ++init_variable() /* Added N.Watazaki */ ++{ ++/* options */ ++ quiet = FALSE; ++ text_mode = FALSE; ++ verbose = FALSE; ++ noexec = FALSE; /* debugging option */ ++ force = FALSE; ++ prof = FALSE; ++#ifndef SUPPORT_LH7 ++ compress_method = LZHUFF5_METHOD_NUM; ++#endif ++#ifdef SUPPORT_LH7 ++ compress_method = LZHUFF7_METHOD_NUM; ++#endif ++ ++ header_level = HEADER_LEVEL1; ++ quiet_mode = 0; ++ ++#ifdef EUC ++ euc_mode = FALSE; ++#endif ++ ++/* view command flags */ ++ verbose_listing = FALSE; ++ ++/* extract command flags */ ++ output_to_stdout = FALSE; ++ ++/* append command flags */ ++ new_archive = FALSE; ++ update_if_newer = FALSE; ++ delete_after_append = FALSE; ++ generic_format = FALSE; ++ ++ remove_temporary_at_error = FALSE; ++ recover_archive_when_interrupt = FALSE; ++ remove_extracting_file_when_interrupt = FALSE; ++ get_filename_from_stdin = FALSE; ++ ignore_directory = FALSE; ++ verify_mode = FALSE; ++ ++ noconvertcase = FALSE; ++ ++ extract_directory = NULL; ++ xfilec = 257; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* NOTES : Text File Format */ ++/* GENERATOR NewLine */ ++/* [generic] 0D 0A */ ++/* [MS-DOS] 0D 0A */ ++/* [OS9][MacOS] 0D */ ++/* [UNIX] 0A */ ++/* ------------------------------------------------------------------------ */ ++static void ++print_tiny_usage_and_exit() ++{ ++ fprintf(stderr, "\ ++LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa\n\ ++LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki\n\ ++LHx(arc) for OSK V 2.01 Modified 1990 Momozou\n\ ++LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki\n\ ++LHa for UNIX V 1.14 Modified 1995 Nobutaka Watazaki\n\ ++LHa for UNIX V 1.14i Modified 2000 Tsugio Okamoto\n\ ++"); ++ fprintf(stderr, "\ ++usage: lha [-]{axelvudmcp[q[num]][vnfodizg012]}[w=<dir>] archive_file [file...]\n\ ++commands: options:\n\ ++ a Add(or replace) to archive q{num} quiet (num:quiet mode)\n\ ++ x,e EXtract from archive v verbose\n\ ++ l,v List / Verbose List n not execute\n\ ++ u Update newer files to archive f force (over write at extract)\n\ ++ d Delete from archive t FILES are TEXT file\n"); ++#ifdef SUPPORT_LH7 ++ fprintf(stderr, "\ ++ m Move to archive (means 'ad') o[567] compression method (a/u)\n\ ++"); ++#endif ++#ifndef SUPPORT_LH7 ++ fprintf(stderr, "\ ++ m Move to archive (means 'ad') o use LHarc compatible method (a/u)\n\ ++"); ++#endif ++ fprintf(stderr, "\ ++ c re-Construct new archive w=<dir> specify extract directory (a/u/m/x/e)\n\ ++ p Print to STDOUT from archive d delete FILES after (a/u/c)\n\ ++ t Test file CRC in archive i ignore directory path (x/e)\n\ ++ z files not compress (a/u)\n\ ++ g Generic format (for compatibility)\n\ ++ or not convert case when extracting\n\ ++ 0/1/2 header level (a/u)\n\ ++"); ++#ifdef EUC ++ fprintf(stderr, "\ ++ e TEXT code convert from/to EUC\n\ ++"); ++#endif ++ exit(1); ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++main(argc, argv) ++ int argc; ++ char *argv[]; ++{ ++ char *p, inpbuf[256]; ++ ++ int i; ++ int ac; ++ char **av, *m; ++ ++ init_variable(); /* Added N.Watazaki */ ++ ++ ac = argc; ++ av = (char **)malloc( sizeof(char*)*argc ); ++ if (av == NULL) fatal_error("not enough memory\n"); ++ for (i=0; i<argc; i++) { ++ if ((av[i] = strdup( argv[i] )) == NULL) ++ fatal_error("not enough memory\n"); ++ } ++ ++ if (ac < 2) ++ print_tiny_usage_and_exit(); ++ ++ if (strcmp(av[1], "--version") == 0) { ++ print_version(); ++ exit(1); ++ } ++ ++ if (ac < 3) { ++ cmd = CMD_LIST; ++ av--; /* argv--; */ /* 1999.7.18 */ ++ ac++; /* argc++; */ ++ goto work; ++ } ++ ++ m = av[1]; ++ ++ if (m[0] == '-') ++ m++; ++ /* commands */ ++ switch (*m) { ++ case 'x': ++ case 'e': ++ cmd = CMD_EXTRACT; ++ break; ++ ++ case 'p': ++ output_to_stdout = TRUE; ++ cmd = CMD_EXTRACT; ++ break; ++ ++ case 'c': ++ new_archive = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'a': ++ cmd = CMD_ADD; ++ break; ++ ++ case 'd': ++ cmd = CMD_DELETE; ++ break; ++ ++ case 'u': ++ update_if_newer = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'm': ++ delete_after_append = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'v': ++ verbose_listing = TRUE; ++ cmd = CMD_LIST; ++ break; ++ ++ case 'l': ++ cmd = CMD_LIST; ++ break; ++ ++ case 't': ++ cmd = CMD_EXTRACT; ++ verify_mode = TRUE; ++ break; ++ ++ default: ++ print_tiny_usage_and_exit(); ++ ++ } ++ ++ /* options */ ++ /* p = &argv[1][1]; */ ++ p = m+1; ++ while ( *p != 0 ) { ++ switch ((*p++)) { ++ case 'q': ++ switch (*p) { ++ case '0': ++ case '1': ++ quiet_mode = *p - '0'; ++ ++p; ++ break; ++ case '2': ++ default: ++ quiet = TRUE; ++ break; ++ } ++ case 'f': ++ force = TRUE; ++ break; ++ case 'p': ++ prof = TRUE; ++ break; ++ case 'v': ++ verbose = TRUE; ++ break; ++ case 't': ++ text_mode = TRUE; ++ break; ++#ifdef EUC ++ case 'e': ++ text_mode = TRUE; ++ euc_mode = TRUE; ++ break; ++#endif ++ case 'n': ++ noexec = TRUE; ++ break; ++ case 'g': ++ generic_format = TRUE; ++ noconvertcase = TRUE; ++ header_level = 0; ++ break; ++ case 'd': ++ delete_after_append = TRUE; ++ break; ++ case 'o': ++ switch (*p) { ++ case 0: ++ compress_method = LZHUFF1_METHOD_NUM; ++ header_level = 0; ++ break; ++ case '5': ++ compress_method = LZHUFF5_METHOD_NUM; ++ p++; ++ break; ++#ifdef SUPPORT_LH7 ++ case '6': ++ compress_method = LZHUFF6_METHOD_NUM; ++ p++; ++ break; ++ case '7': ++ compress_method = LZHUFF7_METHOD_NUM; ++ p++; ++ break; ++#endif ++ default: ++ fprintf(stderr, "LHa: error option o%c\n", p[-1]); ++ exit(1); ++ } ++ break; ++ case 'z': ++ compress_method = LZHUFF0_METHOD_NUM; /* Changed N.Watazaki */ ++ break; ++ case 'i': ++ ignore_directory = TRUE; ++ break; ++ case 'w': ++ if (*p == '=') ++ p++; ++ extract_directory = p; ++ while (*p) ++ p++; ++ break; ++ case '0': ++ header_level = HEADER_LEVEL0; ++ break; ++ case '1': ++ header_level = HEADER_LEVEL1; ++ break; ++ case '2': ++ header_level = HEADER_LEVEL2; ++ break; ++ default: ++ fprintf(stderr, "LHa: Unknown option '%c'.\n", p[-1]); ++ exit(1); ++ } ++ } ++ ++work: ++ /* archive file name */ ++ archive_name = av[2]; ++ ++ if (!strcmp(archive_name, "-")) { ++ if (!isatty(1) && cmd == CMD_ADD) ++ quiet = TRUE; ++ } ++ else { ++ if (ac == 3 && !isatty(0)) { /* 1999.7.18 */ ++ get_filename_from_stdin = TRUE; ++ } ++ } ++ ++ /* target file name */ ++ if (get_filename_from_stdin) { ++ cmd_filec = 0; ++ if ((xfilev = (char **) malloc(sizeof(char *) * xfilec)) == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ while (fgets(inpbuf, sizeof(inpbuf), stdin)) { ++ /* delete \n if it exist */ ++ i=0; p=inpbuf; ++ while (i < sizeof(inpbuf) && p != 0) { ++ if (*p == '\n') { ++ *p = 0; ++ break; ++ } ++ p++; i++; ++ } ++ ++ if (cmd_filec >= xfilec) { ++ xfilec += 256; ++ cmd_filev = (char **) realloc(xfilev, ++ sizeof(char *) * xfilec); ++ if (cmd_filev == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ xfilev = cmd_filev; ++ } ++ if (strlen(inpbuf) < 1) ++ continue; ++ if ((xfilev[cmd_filec++] = (char *) strdup(inpbuf)) == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ } ++ xfilev[cmd_filec] = NULL; ++ cmd_filev = xfilev; ++ } else { ++ cmd_filec = ac - 3; ++ cmd_filev = av + 3; ++ } ++ sort_files(); ++ ++ /* make crc table */ ++ make_crctable(); ++ ++ switch (cmd) { ++ case CMD_EXTRACT: ++ cmd_extract(); ++ break; ++ case CMD_ADD: ++ cmd_add(); ++ break; ++ case CMD_LIST: ++ cmd_list(); ++ break; ++ case CMD_DELETE: ++ cmd_delete(); ++ break; ++ } ++ ++#ifdef USE_PROF ++ if (!prof) ++ exit(0); ++#endif ++ ++ return 0; ++} ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++ ++/* ------------------------------------------------------------------------ */ ++static void ++print_version() ++{ ++ fprintf(stderr, "%s\n", LHA_VERSION); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++message_1(title, subject, name) ++ char *title, *subject, *name; ++{ ++ fprintf(stderr, "LHa: %s%s ", title, subject); ++ fflush(stderr); ++ ++ if (errno == 0) ++ fprintf(stderr, "%s\n", name); ++ else ++ perror(name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++message(subject, name) ++ char *subject, *name; ++{ ++ message_1("", subject, name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++warning(subject, name) ++ char *subject, *name; ++{ ++ message_1("Warning: ", subject, name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++error(subject, msg) ++ char *subject, *msg; ++{ ++ message_1("Error: ", subject, msg); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++fatal_error(msg) ++ char *msg; ++{ ++ message_1("Fatal error:", "", msg); ++ ++ if (remove_temporary_at_error) ++ unlink(temporary_name); ++ ++ exit(1); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++write_error() ++{ ++ fatal_error(writting_filename); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++read_error() ++{ ++ fatal_error(reading_filename); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++interrupt(signo) ++ int signo; ++{ ++ errno = 0; ++ message("Interrupted\n", ""); ++ ++ if (temporary_fp) ++ fclose(temporary_fp); ++ unlink(temporary_name); ++ if (recover_archive_when_interrupt) ++ rename(backup_archive_name, archive_name); ++ if (remove_extracting_file_when_interrupt) { ++ errno = 0; ++ message("Removing", writting_filename); ++ unlink(writting_filename); ++ } ++ signal(SIGINT, SIG_DFL); ++ signal(SIGHUP, SIG_DFL); ++ kill(getpid(), signo); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static int ++sort_by_ascii(a, b) ++ char **a, **b; ++{ ++ register char *p, *q; ++ register int c1, c2; ++ ++ p = *a, q = *b; ++ if (generic_format) { ++ do { ++ c1 = *(unsigned char *) p++; ++ c2 = *(unsigned char *) q++; ++ if (!c1 || !c2) ++ break; ++ if (islower(c1)) ++ c1 = toupper(c1); ++ if (islower(c2)) ++ c2 = toupper(c2); ++ } ++ while (c1 == c2); ++ return c1 - c2; ++ } ++ else { ++ while (*p == *q && *p != '\0') ++ p++, q++; ++ return *(unsigned char *) p - *(unsigned char *) q; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++sort_files() ++{ ++ if (cmd_filec > 1) ++ qsort(cmd_filev, cmd_filec, sizeof(char *), sort_by_ascii); ++} ++ ++/* ------------------------------------------------------------------------ */ ++char * ++xmalloc(size) ++ int size; ++{ ++ char *p = (char *) malloc(size); ++ if (!p) ++ fatal_error("Not enough memory"); ++ return p; ++} ++ ++/* ------------------------------------------------------------------------ */ ++char * ++xrealloc(old, size) ++ char *old; ++ int size; ++{ ++ char *p = (char *) realloc(old, size); ++ if (!p) ++ fatal_error("Not enough memory"); ++ return p; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* STRING POOL */ ++/* ------------------------------------------------------------------------ */ ++/* ++ string pool : ++ +-------------+-------------+------+-------------+----------+ ++ | N A M E 1 \0| N A M E 2 \0| .... | N A M E n \0| | ++ +-------------+-------------+------+-------------+----------+ ++ ^ ^ ^ buffer+0 buffer+used buffer+size ++ ++ vector : ++ +---------------+---------------+------------- -----------------+ ++ | pointer to | pointer to | pointer to ... pointer to | ++ | stringpool | N A M E 1 | N A M E 2 ... N A M E n | ++ +---------------+---------------+------------- -------------+ ++ ^ malloc base returned ++*/ ++ ++/* ------------------------------------------------------------------------ */ ++void ++init_sp(sp) ++ struct string_pool *sp; ++{ ++ sp->size = 1024 - 8; /* any ( >=0 ) */ ++ sp->used = 0; ++ sp->n = 0; ++ sp->buffer = (char *) xmalloc(sp->size * sizeof(char)); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++add_sp(sp, name, len) ++ struct string_pool *sp; ++ char *name; /* stored '\0' at tail */ ++ int len; /* include '\0' */ ++{ ++ while (sp->used + len > sp->size) { ++ sp->size *= 2; ++ sp->buffer = (char *) xrealloc(sp->buffer, sp->size * sizeof(char)); ++ } ++ bcopy(name, sp->buffer + sp->used, len); ++ sp->used += len; ++ sp->n++; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++finish_sp(sp, v_count, v_vector) ++ register struct string_pool *sp; ++ int *v_count; ++ char ***v_vector; ++{ ++ int i; ++ register char *p; ++ char **v; ++ ++ v = (char **) xmalloc((sp->n + 1) * sizeof(char *)); ++ *v++ = sp->buffer; ++ *v_vector = v; ++ *v_count = sp->n; ++ p = sp->buffer; ++ for (i = sp->n; i; i--) { ++ *v++ = p; ++ if (i - 1) ++ p += strlen(p) + 1; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_sp(vector) ++ char **vector; ++{ ++ vector--; ++ free(*vector); /* free string pool */ ++ free(vector); ++} ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* READ DIRECTORY FILES */ ++/* ------------------------------------------------------------------------ */ ++static boolean ++include_path_p(path, name) ++ char *path, *name; ++{ ++ char *n = name; ++ while (*path) ++ if (*path++ != *n++) ++ return (path[-1] == '/' && *n == '\0'); ++ return (*n == '/' || (n != name && path[-1] == '/' && n[-1] == '/')); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++cleaning_files(v_filec, v_filev) ++ int *v_filec; ++ char ***v_filev; ++{ ++ char *flags; ++ struct stat stbuf; ++ ++ register char **filev = *v_filev; ++ register int filec = *v_filec; ++ register char *p; ++ register int i, j; ++ ++ if (filec == 0) ++ return; ++ ++ flags = xmalloc(filec * sizeof(char)); ++ ++ /* flags & 0x01 : 1: ignore */ ++ /* flags & 0x02 : 1: directory, 0 : regular file */ ++ /* flags & 0x04 : 1: need delete */ ++ ++ ++ for (i = 0; i < filec; i++) ++ if (GETSTAT(filev[i], &stbuf) < 0) { ++ flags[i] = 0x04; ++ fprintf(stderr, ++ "LHa: Cannot access \"%s\", ignored.\n", filev[i]); ++ } ++ else { ++ if (is_regularfile(&stbuf)) ++ flags[i] = 0x00; ++ else if (is_directory(&stbuf)) ++ flags[i] = 0x02; ++#ifdef S_IFLNK ++ else if (is_symlink(&stbuf)) /* t.okamoto */ ++ flags[i] = 0x00; ++#endif ++ else { ++ flags[i] = 0x04; ++ fprintf(stderr, ++ "LHa: Cannot archive \"%s\", ignored.\n", filev[i]); ++ } ++ } ++ errno = 0; ++ ++ for (i = 0; i < filec; i++) { ++ p = filev[i]; ++ if ((flags[i] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ for (j = i + 1; j < filec; j++) { ++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ if (STREQU(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ } ++ } ++ else if ((flags[i] & 0x07) == 0x02) { /* directory, not ++ * deleted/ignored */ ++ for (j = i + 1; j < filec; j++) { ++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ if (include_path_p(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ else if ((flags[j] & 0x07) == 0x02) { /* directory, not ++ * deleted/ignored */ ++ if (include_path_p(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ } ++ } ++ } ++ ++ for (i = j = 0; i < filec; i++) { ++ if ((flags[i] & 0x04) == 0) { ++ if (i != j) ++ filev[j] = filev[i]; ++ j++; ++ } ++ } ++ *v_filec = j; ++ ++ free(flags); ++} ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NODIRECTORY ++/* please need your imprementation */ ++boolean ++find_files(name, v_filec, v_filev) ++ char *name; ++ int *v_filec; ++ char ***v_filev; ++{ ++ return FALSE; /* DUMMY */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_files(filec, filev) ++ int filec; ++ char **filev; ++{ ++ /* do nothing */ ++} ++/* ------------------------------------------------------------------------ */ ++#else ++boolean ++find_files(name, v_filec, v_filev) ++ char *name; ++ int *v_filec; ++ char ***v_filev; ++{ ++ struct string_pool sp; ++ char newname[FILENAME_LENGTH]; ++ int len, n; ++ DIR *dirp; ++ DIRENTRY *dp; ++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf; ++ ++ strcpy(newname, name); ++ len = strlen(name); ++ if (len > 0 && newname[len - 1] != '/') ++ newname[len++] = '/'; ++ ++ dirp = opendir(name); ++ if (!dirp) ++ return FALSE; ++ ++ init_sp(&sp); ++ ++ GETSTAT(temporary_name, &tmp_stbuf); ++ GETSTAT(archive_name, &arc_stbuf); ++ ++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) { ++ n = NAMLEN(dp); ++ strncpy(newname + len, dp->d_name, n); ++ newname[len + n] = '\0'; ++ if (GETSTAT(newname, &fil_stbuf) < 0) ++ continue; ++#ifdef NO_INODE ++ if ( dp->d_name[0] != '.' || ++ (n != 1 && ++ (dp->d_name[1] != '.' || ++ n != 2)) ) { ++ add_sp(&sp, newname, len+n+1); ++ } ++#else ++ if ((dp->d_ino != 0) && ++ /* exclude '.' and '..' */ ++ ((dp->d_name[0] != '.') || ++ ((n != 1) && ++ ((dp->d_name[1] != '.') || ++ (n != 2)))) && ++ ((tmp_stbuf.st_dev != fil_stbuf.st_dev || ++ tmp_stbuf.st_ino != fil_stbuf.st_ino) && ++ (arc_stbuf.st_dev != fil_stbuf.st_dev || ++ arc_stbuf.st_ino != fil_stbuf.st_ino))) { ++ add_sp(&sp, newname, len + n + 1); ++ } ++#endif ++ } ++ closedir(dirp); ++ finish_sp(&sp, v_filec, v_filev); ++ if (*v_filec > 1) ++ qsort(*v_filev, *v_filec, sizeof(char *), sort_by_ascii); ++ cleaning_files(v_filec, v_filev); ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_files(filec, filev) ++ int filec; ++ char **filev; ++{ ++ free_sp(filev); ++} ++#endif ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++/* Build temporary file name and store to TEMPORARY_NAME */ ++void ++build_temporary_name() ++{ ++#ifdef TMP_FILENAME_TEMPLATE ++ /* "/tmp/lhXXXXXX" etc. */ ++ if (extract_directory == NULL) { ++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE); ++ } ++ else { ++ sprintf(temporary_name, "%s/lhXXXXXX", extract_directory); ++ } ++#ifdef MKSTEMP ++ mkstemp(temporary_name); ++#else ++ mktemp(temporary_name); ++#endif ++#else ++ char *p, *s; ++ ++ strcpy(temporary_name, archive_name); ++ for (p = temporary_name, s = (char *) 0; *p; p++) ++ if (*p == '/') ++ s = p; ++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX"); ++#ifdef MKSTEMP ++ mkstemp(temporary_name); ++#else ++ mktemp(temporary_name); ++#endif ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++modify_filename_extention(buffer, ext) ++ char *buffer; ++ char *ext; ++{ ++ register char *p, *dot; ++ ++ for (p = buffer, dot = (char *) 0; *p; p++) { ++ if (*p == '.') ++ dot = p; ++ else if (*p == '/') ++ dot = (char *) 0; ++ } ++ ++ if (dot) ++ p = dot; ++ ++ strcpy(p, ext); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* build backup file name */ ++void ++build_backup_name(buffer, original) ++ char *buffer; ++ char *original; ++{ ++ strcpy(buffer, original); ++ modify_filename_extention(buffer, BACKUPNAME_EXTENTION); /* ".bak" */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++build_standard_archive_name(buffer, orginal) ++ char *buffer; ++ char *orginal; ++{ ++ strcpy(buffer, orginal); ++ modify_filename_extention(buffer, ARCHIVENAME_EXTENTION); /* ".lzh" */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++boolean ++need_file(name) ++ char *name; ++{ ++ int i; ++ ++ if (cmd_filec == 0) ++ return TRUE; ++ ++ for (i = 0; i < cmd_filec; i++) { ++ if (patmatch(cmd_filev[i], name, 0)) ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++FILE * ++xfopen(name, mode) ++ char *name, *mode; ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(name, mode)) == NULL) ++ fatal_error(name); ++ ++ return fp; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static boolean ++open_old_archive_1(name, v_fp) ++ char *name; ++ FILE **v_fp; ++{ ++ FILE *fp; ++ struct stat stbuf; ++ ++ if (stat(name, &stbuf) >= 0 && ++ is_regularfile(&stbuf) && ++ (fp = fopen(name, READ_BINARY)) != NULL) { ++ *v_fp = fp; ++ archive_file_gid = stbuf.st_gid; ++ archive_file_mode = stbuf.st_mode; ++ return TRUE; ++ } ++ ++ *v_fp = NULL; ++ archive_file_gid = -1; ++ return FALSE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++FILE * ++open_old_archive() ++{ ++ FILE *fp; ++ char *p; ++ ++ if (!strcmp(archive_name, "-")) { ++ if (cmd == CMD_EXTRACT || cmd == CMD_LIST) ++ return stdin; ++ else ++ return NULL; ++ } ++ if (p = (char *) rindex(archive_name, '.')) { ++ if (strucmp(".LZH", p) == 0 ++ || strucmp(".LZS", p) == 0 ++ || strucmp(".COM", p) == 0 /* DOS SFX */ ++ || strucmp(".EXE", p) == 0 ++ || strucmp(".X", p) == 0 /* HUMAN SFX */ ++ || strucmp(".BAK", p) == 0) { /* for BackUp */ ++ open_old_archive_1(archive_name, &fp); ++ return fp; ++ } ++ } ++ ++ if (open_old_archive_1(archive_name, &fp)) ++ return fp; ++ sprintf(expanded_archive_name, "%s.lzh", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++ } ++ /* ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++ sprintf(expanded_archive_name, "%s.lzs", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++ } ++ /* ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++ /* ++ * sprintf( expanded_archive_name , "%s.lzh",archive_name); ++ * archive_name = expanded_archive_name; ++ */ ++ return NULL; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++inquire(msg, name, selective) ++ char *msg, *name, *selective; ++{ ++ char buffer[1024]; ++ char *p; ++ ++ for (;;) { ++ fprintf(stderr, "%s %s ", name, msg); ++ fflush(stderr); ++ ++ fgets(buffer, 1024, stdin); ++ ++ for (p = selective; *p; p++) ++ if (buffer[0] == *p) ++ return p - selective; ++ } ++ /* NOTREACHED */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++write_archive_tail(nafp) ++ FILE *nafp; ++{ ++ putc(0x00, nafp); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++copy_old_one(oafp, nafp, hdr) ++ FILE *oafp, *nafp; ++ LzHeader *hdr; ++{ ++ if (noexec) { ++ fseek(oafp, (long) (hdr->header_size + 2) + hdr->packed_size, SEEK_CUR); ++ } ++ else { ++ reading_filename = archive_name; ++ writting_filename = temporary_name; ++ if (hdr->header_level != 2) { ++ copyfile(oafp, nafp, ++ (long) (hdr->header_size + 2) + hdr->packed_size, 0); ++ } else { ++ copyfile(oafp, nafp, ++ (long) (hdr->header_size) + hdr->packed_size, 0); ++ } ++ } ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c lharc.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/util.c ++++ lha-1.14i/debian/org/util.c +@@ -0,0 +1,375 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* util.c -- LHarc Util */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e Support for sfx archives 1999.05.28 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++/* ++ * util.c - part of LHa for UNIX Feb 26 1992 modified by Masaru Oki Mar 4 ++ * 1992 modified by Masaru Oki #ifndef USESTRCASECMP added. Mar 31 1992 ++ * modified by Masaru Oki #ifdef NOMEMSET added. ++ */ ++#include <errno.h> ++ ++/* ------------------------------------------------------------------------ */ ++extern unsigned short crc; ++extern int quiet; ++/* ------------------------------------------------------------------------ */ ++long ++copyfile(f1, f2, size, crc_flg) /* return: size of source file */ ++ FILE *f1; ++ FILE *f2; ++ long size; ++ int crc_flg;/* 0: no crc, 1: crc check, 2: extract, 3: ++ * append */ ++{ ++ unsigned short xsize; ++ char *buf; ++ long rsize = 0; ++ ++ if ((buf = (char *) malloc(BUFFERSIZE)) == NULL) ++ fatal_error("virtual memory exhausted.\n"); ++ crc = 0; ++ if ((crc_flg == 2 || crc_flg) && text_mode) ++ init_code_cache(); ++ while (size > 0) { ++ /* read */ ++ if (crc_flg == 3 && text_mode) { ++ xsize = fread_txt(buf, BUFFERSIZE, f1); ++ if (xsize == 0) ++ break; ++ if (ferror(f1)) { ++ fatal_error("file read error\n"); ++ } ++ } ++ else { ++ xsize = (size > BUFFERSIZE) ? BUFFERSIZE : size; ++ if (fread(buf, 1, xsize, f1) != xsize) { ++ fatal_error("file read error\n"); ++ } ++ } ++ /* write */ ++ if (f2) { ++ if (crc_flg == 2 && text_mode) { ++ if (fwrite_txt(buf, xsize, f2)) { ++ fatal_error("file write error\n"); ++ } ++ } ++ else { ++ if (fwrite(buf, 1, xsize, f2) != xsize) { ++ fatal_error("file write error\n"); ++ } ++ } ++ } ++ /* calculate crc */ ++ if (crc_flg) { ++ calccrc(buf, xsize); ++ } ++ rsize += xsize; ++ if (crc_flg != 3 || !text_mode) ++ size -= xsize; ++ } ++ free(buf); ++ return rsize; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++encode_stored_crc(ifp, ofp, size, original_size_var, write_size_var) ++ FILE *ifp, *ofp; ++ long size; ++ long *original_size_var; ++ long *write_size_var; ++{ ++ int save_quiet; ++ ++ save_quiet = quiet; ++ quiet = 1; ++ size = copyfile(ifp, ofp, size, 3); ++ *original_size_var = *write_size_var = size; ++ quiet = save_quiet; ++ return crc; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* convert path delimit ++ erreturns *filename */ ++/* ------------------------------------------------------------------------ */ ++unsigned char * ++convdelim(path, delim) ++ unsigned char *path; ++ unsigned char delim; ++{ ++ unsigned char c; ++ unsigned char *p; ++#ifdef MULTIBYTE_CHAR ++ int kflg; ++ ++ kflg = 0; ++#endif ++ for (p = path; (c = *p) != 0; p++) { ++#ifdef MULTIBYTE_CHAR ++ if (kflg) { ++ kflg = 0; ++ } ++ else if (MULTIBYTE_FIRST_P(c)) { ++ kflg = 1; ++ } ++ else ++#endif ++ if (c == '\\' || c == DELIM || c == DELIM2) { ++ *p = delim; ++ path = p + 1; ++ } ++ } ++ return path; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* If TRUE, archive file name is msdos SFX file name. */ ++boolean ++archive_is_msdos_sfx1(name) ++ char *name; ++{ ++ int len = strlen(name); ++ ++ return ((len >= 4) && ++ (strucmp(".COM", name + len - 4) == 0 || ++ strucmp(".EXE", name + len - 4) == 0)) || ++ ((len >= 2) && ++ (strucmp(".x", name + len - 2) == 0)); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* skip SFX header */ ++boolean ++skip_msdos_sfx1_code(fp) ++ FILE *fp; ++{ ++ unsigned char buffer[MAXSFXCODE]; ++ unsigned char *p, *q; ++ int n; ++ ++ n = fread(buffer, sizeof(char), MAXSFXCODE, fp); ++ ++ for (p = buffer + 2, q = buffer + n - /* 5 */ (I_HEADER_LEVEL+1)-2; p < q; p++) { ++ /* found "-l??-" keyword (as METHOD type string) */ ++ if (p[0] == '-' && p[1] == 'l' && p[4] == '-') { ++ /* size and checksum validate check */ ++ if ( (p[I_HEADER_LEVEL-2] == 0 || p[I_HEADER_LEVEL-2] == 0) ++ && p[I_HEADER_SIZE-2] > 20 ++ && p[I_HEADER_CHECKSUM-2] == calc_sum(p, p[-2])) { ++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR); ++ return TRUE; ++ } else if (p[I_HEADER_LEVEL-2] == 2 && p[I_HEADER_SIZE-2] >= 24 ++ && p[I_ATTRIBUTE-2] == 0x20) { ++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR); ++ return TRUE; ++ } ++ } ++ } ++ ++ fseek(fp, -n, SEEK_CUR); ++ return FALSE; ++} ++ ++/* ++ * strdup(3) ++ */ ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOSTRDUP ++char * ++strdup(buf) ++ char *buf; ++{ ++ char *p; ++ ++ if ((p = (char *) malloc(strlen(buf) + 1)) == NULL) ++ return NULL; ++ strcpy(p, buf); ++ return p; ++} ++#endif ++ ++/* ++ * memmove( char *dst , char *src , size_t cnt ) ++ */ ++ ++/* ------------------------------------------------------------------------ */ ++#if defined(NOBSTRING) && !defined(__STDC__) ++void * ++memmove(dst, src, cnt) ++ register char *dst, *src; ++ register int cnt; ++{ ++ if (dst == src) ++ return dst; ++ if (src > dst) { ++ while (--cnt >= 0) ++ *dst++ = *src++; ++ } ++ else { ++ dst += cnt; ++ src += cnt; ++ while (--cnt >= 0) ++ *--dst = *--src; ++ } ++ return dst; ++} ++#endif ++ ++/* ++ * rename - change the name of file 91.11.02 by Tomohiro Ishikawa ++ * (ishikawa@gaia.cow.melco.CO.JP) 92.01.20 little modified (added #ifdef) by ++ * Masaru Oki 92.01.28 added mkdir() and rmdir() by Tomohiro Ishikawa ++ */ ++ ++#if defined(NOFTRUNCATE) && !defined(_MINIX) ++ ++/* ------------------------------------------------------------------------ */ ++int ++rename(from, to) ++ char *from, *to; ++{ ++ struct stat s1, s2; ++ extern int errno; ++ ++ if (stat(from, &s1) < 0) ++ return (-1); ++ /* is 'FROM' file a directory? */ ++ if ((s1.st_mode & S_IFMT) == S_IFDIR) { ++ errno = ENOTDIR; ++ return (-1); ++ } ++ if (stat(to, &s2) >= 0) { /* 'TO' exists! */ ++ /* is 'TO' file a directory? */ ++ if ((s2.st_mode & S_IFMT) == S_IFDIR) { ++ errno = EISDIR; ++ return (-1); ++ } ++ if (unlink(to) < 0) ++ return (-1); ++ } ++ if (link(from, to) < 0) ++ return (-1); ++ if (unlink(from) < 0) ++ return (-1); ++ return (0); ++} ++#endif /* NOFTRUNCATE */ ++/* ------------------------------------------------------------------------ */ ++ ++#ifdef NOMKDIR ++#ifndef MKDIRPATH ++#define MKDIRPATH "/bin/mkdir" ++#endif ++#ifndef RMDIRPATH ++#define RMDIRPATH "/bin/rmdir" ++#endif ++int ++rmdir(path) ++ char *path; ++{ ++ int stat, rtn = 0; ++ char *cmdname; ++ if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) ++ == 0) ++ return (-1); ++ strcpy(cmdname, RMDIRPATH); ++ *(cmdname + strlen(RMDIRPATH)) = ' '; ++ strcpy(cmdname + strlen(RMDIRPATH) + 1, path); ++ if ((stat = system(cmdname)) < 0) ++ rtn = -1; /* fork or exec error */ ++ else if (stat) { /* RMDIR command error */ ++ errno = EIO; ++ rtn = -1; ++ } ++ free(cmdname); ++ return (rtn); ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++mkdir(path, mode) ++ char *path; ++ int mode; ++{ ++ int child, stat; ++ char *cmdname, *cmdpath = MKDIRPATH; ++ if ((cmdname = (char *) strrchr(cmdpath, '/')) == (char *) 0) ++ cmdname = cmdpath; ++ if ((child = fork()) < 0) ++ return (-1); /* fork error */ ++ else if (child) { /* parent process */ ++ while (child != wait(&stat)) /* ignore signals */ ++ continue; ++ } ++ else { /* child process */ ++ int maskvalue; ++ maskvalue = umask(0); /* get current umask() value */ ++ umask(maskvalue | (0777 & ~mode)); /* set it! */ ++ execl(cmdpath, cmdname, path, (char *) 0); ++ /* never come here except execl is error */ ++ return (-1); ++ } ++ if (stat != 0) { ++ errno = EIO; /* cannot get error num. */ ++ return (-1); ++ } ++ return (0); ++} ++#endif ++ ++/* ++ * strucmp modified: Oct 29 1991 by Masaru Oki ++ */ ++ ++#ifndef USESTRCASECMP ++static int ++my_toupper(n) ++ register int n; ++{ ++ if (n >= 'a' && n <= 'z') ++ return n & (~('a' - 'A')); ++ return n; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++strucmp(s, t) ++ register char *s, *t; ++{ ++ while (my_toupper(*s++) == my_toupper(*t++)) ++ if (!*s || !*t) ++ break; ++ if (!*s && !*t) ++ return 0; ++ return 1; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOMEMSET ++/* Public Domain memset(3) */ ++char * ++memset(s, c, n) ++ char *s; ++ int c, n; ++{ ++ char *p = s; ++ while (n--) ++ *p++ = (char) c; ++ return s; ++} ++#endif ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c util.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lhext.c ++++ lha-1.14i/debian/org/lhext.c +@@ -0,0 +1,425 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lhext.c -- LHarc extract */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */ ++/* Ver. 1.12 LHa for UNIX 1993.10.01 N.Watazaki */ ++/* Ver. 1.13b Symbolic Link Update Bug Fix 1994.06.21 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e bugfix 1999.04.30 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++/* ------------------------------------------------------------------------ */ ++static int skip_flg = FALSE; /* FALSE..No Skip , TRUE..Skip */ ++static char *methods[] = ++{ ++ LZHUFF0_METHOD, LZHUFF1_METHOD, LZHUFF2_METHOD, LZHUFF3_METHOD, ++ LZHUFF4_METHOD, LZHUFF5_METHOD, LZHUFF6_METHOD, LZHUFF7_METHOD, ++ LARC_METHOD, LARC5_METHOD, LARC4_METHOD, ++ LZHDIRS_METHOD, ++ NULL ++}; ++ ++/* ------------------------------------------------------------------------ */ ++static boolean ++inquire_extract(name) ++ char *name; ++{ ++ struct stat stbuf; ++ ++ skip_flg = FALSE; ++ if (stat(name, &stbuf) >= 0) { ++ if (!is_regularfile(&stbuf)) { ++ error("Already exist (not a file)", name); ++ return FALSE; ++ } ++ ++ if (noexec) { ++ printf("EXTRACT %s but file is exist.\n", name); ++ return FALSE; ++ } ++ else if (!force) { ++ if (!isatty(0)) ++ return FALSE; ++ ++ switch (inquire("OverWrite ?(Yes/[No]/All/Skip)", name, "YyNnAaSs\n")) { ++ case 0: ++ case 1:/* Y/y */ ++ break; ++ case 2: ++ case 3:/* N/n */ ++ case 8:/* Return */ ++ return FALSE; ++ case 4: ++ case 5:/* A/a */ ++ force = TRUE; ++ break; ++ case 6: ++ case 7:/* S/s */ ++ skip_flg = TRUE; ++ break; ++ } ++ } ++ } ++ if (noexec) ++ printf("EXTRACT %s\n", name); ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static boolean ++make_parent_path(name) ++ char *name; ++{ ++ char path[FILENAME_LENGTH]; ++ struct stat stbuf; ++ register char *p; ++ ++ /* make parent directory name into PATH for recursive call */ ++ strcpy(path, name); ++ for (p = path + strlen(path); p > path; p--) ++ if (p[-1] == '/') { ++ *--p = '\0'; ++ break; ++ } ++ ++ if (p == path) { ++ message("Why?", "ROOT"); ++ return FALSE; /* no more parent. */ ++ } ++ ++ if (GETSTAT(path, &stbuf) >= 0) { ++ if (is_directory(&stbuf)) ++ return TRUE; ++ error("Not a directory", path); ++ return FALSE; ++ } ++ errno = 0; ++ ++ if (verbose) ++ printf("Making directory \"%s\".\n", path); ++ ++ if (mkdir(path, 0777) >= 0) /* try */ ++ return TRUE; /* successful done. */ ++ errno = 0; ++ ++ if (!make_parent_path(path)) ++ return FALSE; ++ ++ if (mkdir(path, 0777) < 0) { /* try again */ ++ message("Cannot make directory", path); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static FILE * ++open_with_make_path(name) ++ char *name; ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(name, WRITE_BINARY)) == NULL) { ++ errno = 0; ++ if (!make_parent_path(name) || ++ (fp = fopen(name, WRITE_BINARY)) == NULL) ++ error("Cannot extract", name); ++ errno = 0; ++ } ++ return fp; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++adjust_info(name, hdr) ++ char *name; ++ LzHeader *hdr; ++{ ++ time_t utimebuf[2]; ++ ++ /* adjust file stamp */ ++ utimebuf[0] = utimebuf[1] = hdr->unix_last_modified_stamp; ++ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK) ++ utime(name, utimebuf); ++ ++ if (hdr->extend_type == EXTEND_UNIX ++ || hdr->extend_type == EXTEND_OS68K ++ || hdr->extend_type == EXTEND_XOSK) { ++#ifdef NOT_COMPATIBLE_MODE ++ Please need your modification in this space. ++#else ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK) ++ chmod(name, hdr->unix_mode); ++#endif ++ if (!getuid()) { ++#ifndef HAVE_NO_LCHOWN ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) ++ lchown(name, hdr->unix_uid, hdr->unix_gid); ++ else ++#endif /* HAVE_NO_LCHWON */ ++ chown(name, hdr->unix_uid, hdr->unix_gid); ++ } ++ errno = 0; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++extract_one(afp, hdr) ++ FILE *afp; /* archive file */ ++ LzHeader *hdr; ++{ ++ FILE *fp; /* output file */ ++ struct stat stbuf; ++ char name[257]; ++ int crc; ++ int method; ++ boolean save_quiet, save_verbose, up_flag; ++ char *q = hdr->name, c; ++ ++ if (ignore_directory && rindex(hdr->name, '/')) { ++ q = (char *) rindex(hdr->name, '/') + 1; ++ } ++ else { ++ if (*q == '/') { ++ q++; ++ /* ++ * if OSK then strip device name ++ */ ++ if (hdr->extend_type == EXTEND_OS68K ++ || hdr->extend_type == EXTEND_XOSK) { ++ do ++ c = (*q++); ++ while (c && c != '/'); ++ if (!c || !*q) ++ q = "."; /* if device name only */ ++ } ++ } ++ } ++ ++ if (extract_directory) ++ sprintf(name, "%s/%s", extract_directory, q); ++ else ++ strcpy(name, q); ++ ++ ++ /* LZHDIRS_METHODĥإåå */ ++ /* 1999.4.30 t.okamoto */ ++ for (method = 0;; method++) { ++ if (methods[method] == NULL) { ++ error("Unknown method skiped ...", name); ++ return; ++ } ++ if (bcmp(hdr->method, methods[method], 5) == 0) ++ break; ++ } ++ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_REGULAR ++ && method != LZHDIRS_METHOD_NUM) { ++#if 0 ++ for (method = 0;; method++) { ++ if (methods[method] == NULL) { ++ error("Unknown method skiped ...", name); ++ return; ++ } ++ if (bcmp(hdr->method, methods[method], 5) == 0) ++ break; ++ } ++#endif ++ ++ reading_filename = archive_name; ++ writting_filename = name; ++ if (output_to_stdout || verify_mode) { ++ if (noexec) { ++ printf("%s %s\n", verify_mode ? "VERIFY" : "EXTRACT", name); ++ if (afp == stdin) { ++ int i = hdr->packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ return; ++ } ++ ++ save_quiet = quiet; ++ save_verbose = verbose; ++ if (!quiet && output_to_stdout) { ++ printf("::::::::\n%s\n::::::::\n", name); ++ quiet = TRUE; ++ verbose = FALSE; ++ } ++ else if (verify_mode) { ++ quiet = FALSE; ++ verbose = TRUE; ++ } ++ ++ crc = decode_lzhuf ++ (afp, stdout, hdr->original_size, hdr->packed_size, name, method); ++ quiet = save_quiet; ++ verbose = save_verbose; ++ } ++ else { ++ if (skip_flg == FALSE) { ++ up_flag = inquire_extract(name); ++ if (up_flag == FALSE && force == FALSE) { ++ return; ++ } ++ } ++ ++ if (skip_flg == TRUE) { /* if skip_flg */ ++ if (stat(name, &stbuf) == 0 && force != TRUE) { ++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) { ++ if (quiet != TRUE) ++ printf("%s : Skipped...\n", name); ++ return; ++ } ++ } ++ } ++ if (noexec) { ++ if (afp == stdin) { ++ int i = hdr->packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ return; ++ } ++ ++ signal(SIGINT, interrupt); ++ signal(SIGHUP, interrupt); ++ ++ unlink(name); ++ errno = 0; ++ remove_extracting_file_when_interrupt = TRUE; ++ ++ if ((fp = open_with_make_path(name)) != NULL) { ++ crc = decode_lzhuf ++ (afp, fp, hdr->original_size, hdr->packed_size, name, method); ++ fclose(fp); ++ } ++ remove_extracting_file_when_interrupt = FALSE; ++ signal(SIGINT, SIG_DFL); ++ signal(SIGHUP, SIG_DFL); ++ ++ if (!fp) ++ return; ++ } ++ ++ errno = 0; ++ if (hdr->has_crc && crc != hdr->crc) ++ error("CRC error", name); ++ } ++ else if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_DIRECTORY ++ || (hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK ++ || method == LZHDIRS_METHOD_NUM) { ++ /* ǡSymblic Link ϡפ */ ++ if (!ignore_directory && !verify_mode) { ++ if (noexec) { ++ if (quiet != TRUE) ++ printf("EXTRACT %s (directory)\n", name); ++ return; ++ } ++ /* NAME has trailing SLASH '/', (^_^) */ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) { ++ char buf[256], *bb1, *bb2; ++ int l_code; ++ strcpy(buf, name); ++ bb1 = strtok(buf, "|"); ++ bb2 = strtok(NULL, "|"); ++ ++#ifdef S_IFLNK ++ if (skip_flg == FALSE) { ++ up_flag = inquire_extract(name); ++ if (up_flag == FALSE && force == FALSE) { ++ return; ++ } ++ } else { ++ if (GETSTAT(bb1, &stbuf) == 0 && force != TRUE) { ++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) { ++ if (quiet != TRUE) ++ printf("%s : Skipped...\n", bb1); ++ return; ++ } ++ } ++ } ++ ++ unlink(bb1); ++ l_code = symlink(bb2, bb1); ++ if (l_code < 0) { ++ if (quiet != TRUE) ++ warning("Can't make Symbolic Link : "); ++ } ++ if (quiet != TRUE) { ++ printf("Symbolic Link %s -> %s\n", bb1, bb2); ++ } ++ strcpy(name, bb1); /* Symbolic's name set */ ++#else ++ sprintf(buf, "%s -> %s", bb1, bb2); ++ warning("Can't make Symbolic Link", buf); ++ return; ++#endif ++ } else { /* make directory */ ++ if (!output_to_stdout && !make_parent_path(name)) ++ return; ++ } ++ } ++ } ++ else { ++ error("Unknown information", name); ++ } ++ ++ if (!output_to_stdout) ++ adjust_info(name, hdr); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* EXTRACT COMMAND MAIN */ ++/* ------------------------------------------------------------------------ */ ++void ++cmd_extract() ++{ ++ LzHeader hdr; ++ long pos; ++ FILE *afp; ++ ++ /* open archive file */ ++ if ((afp = open_old_archive()) == NULL) ++ fatal_error(archive_name); ++ ++ if (archive_is_msdos_sfx1(archive_name)) ++ skip_msdos_sfx1_code(afp); ++ ++ /* extract each files */ ++ while (get_header(afp, &hdr)) { ++ if (need_file(hdr.name)) { ++ pos = ftell(afp); ++ extract_one(afp, &hdr); ++ fseek(afp, pos + hdr.packed_size, SEEK_SET); ++ } else { ++ if (afp != stdin) ++ fseek(afp, hdr.packed_size, SEEK_CUR); ++ else { ++ int i = hdr.packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ } ++ } ++ ++ /* close archive file */ ++ fclose(afp); ++ ++ return; ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lha_macro.h ++++ lha-1.14i/debian/org/lha_macro.h +@@ -0,0 +1,420 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX Archiver Driver macro define */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */ ++/* ------------------------------------------------------------------------ */ ++ ++#define LHA_VERSION "lha for unix version 1.14i" ++ ++/* Most of System V, define SYSTIME_HAS_NO_TM */ ++#ifdef SYSTIME_HAS_NO_TM ++#include <time.h> ++#else ++#include <sys/time.h> ++#endif /* SYSTIME_HAS_NO_TM */ ++ ++/* ------------------------------------------------------------------------ */ ++/* Directory Access Stuff */ ++/* ------------------------------------------------------------------------ */ ++#ifndef NODIRECTORY ++#ifdef SYSV_SYSTEM_DIR ++ ++#include <dirent.h> ++ ++#define DIRENTRY struct dirent ++#define NAMLEN(p) strlen (p->d_name) ++ ++#else /* not SYSV_SYSTEM_DIR */ ++ ++#ifdef NONSYSTEM_DIR_LIBRARY ++#include "lhdir.h" ++#else ++#include <sys/dir.h> ++#endif /* not NONSYSTEM_DIR_LIBRARY */ ++ ++#define DIRENTRY struct direct ++#define NAMLEN(p) p->d_namlen ++ ++#endif /* not SYSV_SYSTEM_DIR */ ++#endif /* NODIRECTORY */ ++ ++/* ------------------------------------------------------------------------ */ ++/* Other Define */ ++/* ------------------------------------------------------------------------ */ ++/* Not support 'void' */ ++#ifdef NOVOID ++#define void ++#endif ++ ++#ifndef SEEK_SET ++#define SEEK_SET 0 ++#define SEEK_CUR 1 ++#define SEEK_END 2 ++#endif /* SEEK_SET ++ ++ ++/* non-integral functions */ ++extern struct tm *localtime(); ++extern char *getenv(); ++ ++#ifndef _MINIX ++#ifndef __STDC__ ++extern char *malloc(); ++extern char *realloc(); ++#endif ++#endif ++ ++/* external variables */ ++extern int errno; ++ ++#define FALSE 0 ++#define TRUE 1 ++typedef int boolean; ++ ++/* used by qsort() for alphabetic-sort */ ++#define STRING_COMPARE(a,b) strcmp((a),(b)) ++ ++#define FILENAME_LENGTH 1024 ++ ++/* ------------------------------------------------------------------------ */ ++/* YOUR CUSTOMIZIES */ ++/* ------------------------------------------------------------------------ */ ++ ++#ifndef ARCHIVENAME_EXTENTION ++#define ARCHIVENAME_EXTENTION ".lzh" ++#endif ++#ifndef BACKUPNAME_EXTENTION ++#define BACKUPNAME_EXTENTION ".bak" ++#endif ++#ifndef TMP_FILENAME_TEMPLATE ++#define TMP_FILENAME_TEMPLATE "/tmp/lhXXXXXX" ++#endif ++ ++#define SJC_FIRST_P(c) \ ++ (((unsigned char)(c) >= 0x80) && \ ++ (((unsigned char)(c) < 0xa0) || \ ++ ((unsigned char)(c) >= 0xe0) && \ ++ ((unsigned char)(c) < 0xfd))) ++#define SJC_SECOND_P(c) \ ++ (((unsigned char)(c) >= 0x40) && \ ++ ((unsigned char)(c) < 0xfd) && \ ++ ((unsigned char)(c) != 0x7f)) ++ ++#ifdef MULTIBYTE_CHAR ++#define MULTIBYTE_FIRST_P SJC_FIRST_P ++#define MULTIBYTE_SECOND_P SJC_SECOND_P ++#endif /* MULTIBYTE_CHAR */ ++ ++/* ------------------------------------------------------------------------ */ ++/* LHa File Definitions */ ++/* ------------------------------------------------------------------------ */ ++#ifdef S_IFLNK ++#define GETSTAT lstat ++#else ++#define GETSTAT stat ++#endif ++ ++#ifdef LHA_MAIN_SRC ++#define EXTERN ++#else ++#define EXTERN extern ++#endif /* LHA_MAIN_SRC */ ++ ++#define LZHUFF0_METHOD "-lh0-" ++#define LZHUFF1_METHOD "-lh1-" ++#define LZHUFF2_METHOD "-lh2-" ++#define LZHUFF3_METHOD "-lh3-" ++#define LZHUFF4_METHOD "-lh4-" ++#define LZHUFF5_METHOD "-lh5-" ++#define LZHUFF6_METHOD "-lh6-" ++#define LZHUFF7_METHOD "-lh7-" ++#define LARC_METHOD "-lzs-" ++#define LARC5_METHOD "-lz5-" ++#define LARC4_METHOD "-lz4-" ++#define LZHDIRS_METHOD "-lhd-" ++ ++#define METHOD_TYPE_STRAGE 5 ++ ++/* Added N.Watazaki ..V */ ++#define LZHUFF0_METHOD_NUM 0 ++#define LZHUFF1_METHOD_NUM 1 ++#define LZHUFF2_METHOD_NUM 2 ++#define LZHUFF3_METHOD_NUM 3 ++#define LZHUFF4_METHOD_NUM 4 ++#define LZHUFF5_METHOD_NUM 5 ++#define LZHUFF6_METHOD_NUM 6 ++#define LZHUFF7_METHOD_NUM 7 ++#define LARC_METHOD_NUM 8 ++#define LARC5_METHOD_NUM 9 ++#define LARC4_METHOD_NUM 10 ++#define LZHDIRS_METHOD_NUM 11 ++/* Added N.Watazaki ..^ */ ++ ++#define I_HEADER_SIZE 0 ++#define I_HEADER_CHECKSUM 1 ++#define I_METHOD 2 ++#define I_PACKED_SIZE 7 ++#define I_ORIGINAL_SIZE 11 ++#define I_LAST_MODIFIED_STAMP 15 ++#define I_ATTRIBUTE 19 ++#define I_HEADER_LEVEL 20 ++#define I_NAME_LENGTH 21 ++#define I_NAME 22 ++ ++#define I_CRC 22 /* + name_length */ ++#define I_EXTEND_TYPE 24 /* + name_length */ ++#define I_MINOR_VERSION 25 /* + name_length */ ++#define I_UNIX_LAST_MODIFIED_STAMP 26 /* + name_length */ ++#define I_UNIX_MODE 30 /* + name_length */ ++#define I_UNIX_UID 32 /* + name_length */ ++#define I_UNIX_GID 34 /* + name_length */ ++#define I_UNIX_EXTEND_BOTTOM 36 /* + name_length */ ++ ++#define I_GENERIC_HEADER_BOTTOM I_EXTEND_TYPE ++ ++#define EXTEND_GENERIC 0 ++#define EXTEND_UNIX 'U' ++#define EXTEND_MSDOS 'M' ++#define EXTEND_MACOS 'm' ++#define EXTEND_OS9 '9' ++#define EXTEND_OS2 '2' ++#define EXTEND_OS68K 'K' ++#define EXTEND_OS386 '3' /* OS-9000??? */ ++#define EXTEND_HUMAN 'H' ++#define EXTEND_CPM 'C' ++#define EXTEND_FLEX 'F' ++#define EXTEND_RUNSER 'R' ++ ++/* this OS type is not official */ ++ ++#define EXTEND_TOWNSOS 'T' ++#define EXTEND_XOSK 'X' ++ ++/*---------------------------------------------------------------------------*/ ++ ++#define GENERIC_ATTRIBUTE 0x20 ++#define GENERIC_DIRECTORY_ATTRIBUTE 0x10 ++#define HEADER_LEVEL0 0x00 ++#define HEADER_LEVEL1 0x01 ++#define HEADER_LEVEL2 0x02 ++ ++#define CURRENT_UNIX_MINOR_VERSION 0x00 ++ ++#define DELIM ('/') ++#define DELIM2 (0xff) ++#define DELIMSTR "/" ++ ++#define OSK_RW_RW_RW 0000033 ++#define OSK_FILE_REGULAR 0000000 ++#define OSK_DIRECTORY_PERM 0000200 ++#define OSK_SHARED_PERM 0000100 ++#define OSK_OTHER_EXEC_PERM 0000040 ++#define OSK_OTHER_WRITE_PERM 0000020 ++#define OSK_OTHER_READ_PERM 0000010 ++#define OSK_OWNER_EXEC_PERM 0000004 ++#define OSK_OWNER_WRITE_PERM 0000002 ++#define OSK_OWNER_READ_PERM 0000001 ++ ++#define UNIX_FILE_TYPEMASK 0170000 ++#define UNIX_FILE_REGULAR 0100000 ++#define UNIX_FILE_DIRECTORY 0040000 ++#define UNIX_FILE_SYMLINK 0120000 ++#define UNIX_SETUID 0004000 ++#define UNIX_SETGID 0002000 ++#define UNIX_STYCKYBIT 0001000 ++#define UNIX_OWNER_READ_PERM 0000400 ++#define UNIX_OWNER_WRITE_PERM 0000200 ++#define UNIX_OWNER_EXEC_PERM 0000100 ++#define UNIX_GROUP_READ_PERM 0000040 ++#define UNIX_GROUP_WRITE_PERM 0000020 ++#define UNIX_GROUP_EXEC_PERM 0000010 ++#define UNIX_OTHER_READ_PERM 0000004 ++#define UNIX_OTHER_WRITE_PERM 0000002 ++#define UNIX_OTHER_EXEC_PERM 0000001 ++#define UNIX_RW_RW_RW 0000666 ++ ++#define LZHEADER_STRAGE 4096 ++ ++#define MAX_INDICATOR_COUNT 64 ++ ++typedef short node; ++ ++/* ------------------------------------------------------------------------ */ ++/* Slide relation */ ++/* ------------------------------------------------------------------------ */ ++#if defined(__STDC__) || defined(AIX) ++ ++#include <limits.h> ++ ++#else ++ ++#ifndef CHAR_BIT ++#define CHAR_BIT 8 ++#endif ++ ++#ifndef UCHAR_MAX ++#define UCHAR_MAX ((1<<(sizeof(unsigned char)*8))-1) ++#endif ++ ++#ifndef USHRT_MAX ++#define USHRT_MAX ((1<<(sizeof(unsigned short)*8))-1) ++#endif ++ ++#ifndef SHRT_MAX ++#define SHRT_MAX ((1<<(sizeof(short)*8-1))-1) ++#endif ++ ++#ifndef SHRT_MIN ++#define SHRT_MIN (SHRT_MAX-USHRT_MAX) ++#endif ++ ++#ifndef ULONG_MAX ++#define ULONG_MAX ((1<<(sizeof(unsigned long)*8))-1) ++#endif ++ ++#ifndef LONG_MAX ++#define LONG_MAX ((1<<(sizeof(long)*8-1))-1) ++#endif ++ ++#ifndef LONG_MIN ++#define LONG_MIN (LONG_MAX-ULONG_MAX) ++#endif ++ ++#endif /* not __STDC__ */ ++ ++/* ------------------------------------------------------------------------ */ ++/* FILE Attribute */ ++/* ------------------------------------------------------------------------ */ ++#define is_directory(statp) (((statp)->st_mode & S_IFMT) == S_IFDIR) ++#define is_symlink(statp) (((statp)->st_mode & S_IFMT) == S_IFLNK) ++#define is_regularfile(statp) (((statp)->st_mode & S_IFMT) == S_IFREG) ++ ++#ifdef MSDOS ++#define WRITE_BINARY "wb" ++#define READ_BINARY "rb" ++#else ++#define WRITE_BINARY "w" ++#define READ_BINARY "r" ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++/* Memory and String function */ ++/* ------------------------------------------------------------------------ */ ++#include <string.h> ++ ++#ifdef NOINDEX ++#define index strchr ++#define rindex strrchr ++#endif /* NOINDEX */ ++ ++#ifdef NOBSTRING ++#define bcmp(a,b,n) memcmp ((a),(b),(n)) ++#define bzero(d,n) memset((d),0,(n)) ++#define bcopy(s,d,n) memmove((d),(s),(n)) ++#endif /* NOBSTRING */ ++ ++#ifdef USESTRCASECMP ++#define strucmp(p,q) strcasecmp((p),(q)) ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++/* Individual macro define */ ++/* ------------------------------------------------------------------------ */ ++ ++/* from crcio.c */ ++#define CRCPOLY 0xA001 /* CRC-16 */ ++#define UPDATE_CRC(c) crc = crctable[(crc ^ (c)) & 0xFF] ^ (crc >> CHAR_BIT) ++ ++/* dhuf.c */ ++#define N_CHAR (256 + 60 - THRESHOLD + 1) ++#define TREESIZE_C (N_CHAR * 2) ++#define TREESIZE_P (128 * 2) ++#define TREESIZE (TREESIZE_C + TREESIZE_P) ++#define ROOT_C 0 ++#define ROOT_P TREESIZE_C ++ ++/* header.c */ ++#define setup_get(PTR) (get_ptr = (PTR)) ++#define get_byte() (*get_ptr++ & 0xff) ++#define put_ptr get_ptr ++#define setup_put(PTR) (put_ptr = (PTR)) ++#define put_byte(c) (*put_ptr++ = (char)(c)) ++ ++/* huf.c */ ++#define NP (MAX_DICBIT + 1) ++#define NT (USHRT_BIT + 3) ++#if 0 ++#define PBIT 4 /* smallest integer such that (1 << PBIT) > * NP */ ++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */ ++#endif ++ ++#define PBIT 5 /* smallest integer such that (1 << PBIT) > * NP */ ++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */ ++ ++#define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD) ++ ++/* #if NT > NP #define NPT NT #else #define NPT NP #endif */ ++#define NPT 0x80 ++ ++/* larc.c */ ++#define MAGIC0 18 ++#define MAGIC5 19 ++ ++/* lharc.c */ ++#define CMD_UNKNOWN 0 ++#define CMD_EXTRACT 1 ++#define CMD_ADD 2 ++#define CMD_LIST 3 ++#define CMD_DELETE 4 ++ ++#define STREQU(a,b) (((a)[0] == (b)[0]) ? (strcmp ((a),(b)) == 0) : FALSE) ++ ++/* shuf.c */ ++#define N1 286 /* alphabet size */ ++#define N2 (2 * N1 - 1) /* # of nodes in Huffman tree */ ++#define EXTRABITS 8 /* >= log2(F-THRESHOLD+258-N1) */ ++#define BUFBITS 16 /* >= log2(MAXBUF) */ ++#define LENFIELD 4 /* bit size of length field for tree output */ ++ ++/* util.c */ ++#define BUFFERSIZE 2048 ++#define MAXSFXCODE 1024*64 ++ ++#ifndef NULL ++#define NULL (char *)0 ++#endif ++ ++/* slide.c */ ++/* ++#define PERCOLATE 1 ++#define NIL 0 ++#define HASH(p, c) ((p) + ((c) << hash1) + hash2) ++*/ ++ ++/* slide.c */ ++#ifdef SUPPORT_LH7 ++#define MAX_DICBIT 16 /* lh7 use 16bits */ ++#endif ++ ++#ifndef SUPPORT_LH7 ++#define MAX_DICBIT 15 /* lh6 use 15bits */ ++#endif ++ ++#define MAX_DICSIZ (1 << MAX_DICBIT) ++#define MATCHBIT 8 /* bits for MAXMATCH - THRESHOLD */ ++#define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */ ++#define THRESHOLD 3 /* choose optimal value */ ++ ++/* from huf.c */ ++ ++/* alphabet = {0, 1, 2, ..., NC - 1} */ ++#define CBIT 9 /* $\lfloor \log_2 NC \rfloor + 1$ */ ++#define USHRT_BIT 16 /* (CHAR_BIT * sizeof(ushort)) */ ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lhlist.c ++++ lha-1.14i/debian/org/lhlist.c +@@ -0,0 +1,348 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lhlist.c -- LHarc list */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* Ver. 1.01 Bug Fix for month name 1989.12.25 Y.Tagawa */ ++/* Ver. 1.10 Changed list format 1993.10.01 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e Bug Fix for many problems 1999.05.25 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++static long packed_size_total; ++static long original_size_total; ++static int list_files; ++ ++/* ------------------------------------------------------------------------ */ ++/* Print Stuff */ ++/* ------------------------------------------------------------------------ */ ++/* need 14 or 22 (when verbose_listing is TRUE) column spaces */ ++static void ++print_size(packed_size, original_size) ++ long packed_size, original_size; ++{ ++ if (verbose_listing) ++ printf("%7d ", packed_size); ++ ++ printf("%7d ", original_size); ++ ++ if (original_size == 0L) ++ printf("******"); ++ else /* Changed N.Watazaki */ ++ printf("%5.1f%%", packed_size * 100.0 / original_size); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* need 12 or 17 (when verbose_listing is TRUE) column spaces */ ++static void ++print_stamp(t) ++ time_t t; ++{ ++ static boolean got_now = FALSE; ++ static time_t now; ++ static unsigned int threshold; ++ static char t_month[12 * 3 + 1] = "JanFebMarAprMayJunJulAugSepOctNovDec"; ++ struct tm *p; ++ ++ if (t == 0) { ++ printf(" "); /* 12 spaces */ ++ return; ++ } ++ ++ if (!got_now) { ++ now = time((time_t *) 0); ++ p = localtime(&now); ++ threshold = p->tm_year * 12 + p->tm_mon - 6; ++ got_now = TRUE; ++ } ++ ++ p = localtime(&t); ++ ++ if (p->tm_year * 12 + p->tm_mon > threshold) ++ printf("%.3s %2d %02d:%02d", ++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_hour, p->tm_min); ++ else ++ printf("%.3s %2d %04d", ++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_year + 1900); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++print_bar() ++{ ++ char *p, *q; ++ /* 17+1+(0 or 7+1)+7+1+6+1+(0 or 1+4)+(12 or 17)+1+20 */ ++ /* 12345678901234567_ 1234567_123456 _123456789012 1234 */ ++ ++ if (verbose_listing) { ++ p = "- ------ ---------- "; ++ q = " -------------"; ++ } ++ else { ++ p = " "; ++ q = " --------------------"; ++ } ++ ++ if (verbose) ++ q = ""; ++ ++ printf("---------- ----------- ------- ------%s------------%s\n", p, q); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static void ++list_header() ++{ ++ char *p, *q; ++ ++ if (verbose_listing) { ++ p = "PACKED SIZE RATIO METHOD CRC"; ++ q = " NAME"; ++ } ++ else { ++ p = " SIZE RATIO"; ++ q = " NAME"; ++ } ++ ++ if (verbose) ++ q = ""; ++ ++ printf(" PERMSSN UID GID %s STAMP%s\n", p, q); ++#if 0 ++ printf(" PERMSSN UID GID %s SIZE RATIO%s %s STAMP%s%s\n", ++ verbose_listing ? " PACKED " : "", /* 8,0 */ ++ verbose_listing ? " CRC" : "", /* 5,0 */ ++ verbose_listing ? " " : "", /* 2,0 */ ++ verbose_listing ? " " : " ", /* 6,3 */ ++ verbose ? "" : " NAME"); ++#endif ++ print_bar(); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++list_one(hdr) ++ register LzHeader *hdr; ++{ ++ register int mode; ++ register char *p; ++ char method[6]; ++ char modebits[11]; ++ ++ if (verbose) ++ printf("%s\n", hdr->name); ++ ++ strncpy(method, hdr->method, 5); ++ method[5] = '\0'; ++ ++ switch (mode = hdr->extend_type) { ++ case EXTEND_UNIX: ++ mode = hdr->unix_mode; ++ ++ if (mode & UNIX_FILE_DIRECTORY) ++ modebits[0] = 'd'; ++ else if ((mode & UNIX_FILE_SYMLINK) == UNIX_FILE_SYMLINK) ++ modebits[0] = 'l'; ++ else ++ modebits[0] = '-'; ++ modebits[1] = ((mode & UNIX_OWNER_READ_PERM) ? 'r' : '-'); ++ modebits[2] = ((mode & UNIX_OWNER_WRITE_PERM) ? 'w' : '-'); ++ modebits[3] = (mode & UNIX_SETUID) ? 's' : ++ ((mode & UNIX_OWNER_EXEC_PERM) ? 'x' : '-'); ++ modebits[4] = ((mode & UNIX_GROUP_READ_PERM) ? 'r' : '-'); ++ modebits[5] = ((mode & UNIX_GROUP_WRITE_PERM) ? 'w' : '-'); ++ modebits[6] = (mode & UNIX_SETGID) ? 's' : ++ ((mode & UNIX_GROUP_EXEC_PERM) ? 'x' : '-'); ++ modebits[7] = ((mode & UNIX_OTHER_READ_PERM) ? 'r' : '-'); ++ modebits[8] = ((mode & UNIX_OTHER_WRITE_PERM) ? 'w' : '-'); ++ modebits[9] = (mode & UNIX_STYCKYBIT) ? 't' : ++ ((mode & UNIX_OTHER_EXEC_PERM) ? 'x' : '-'); ++ modebits[10] = 0; ++ ++ printf("%s %5d/%-5d ", modebits, ++ hdr->unix_uid, hdr->unix_gid); ++ break; ++ case EXTEND_OS68K: ++ /**/ case EXTEND_XOSK:/**/ ++ mode = hdr->unix_mode; ++ printf("%c%c%c%c%c%c%c%c %5d/%-5d", ++ ((mode & OSK_DIRECTORY_PERM) ? 'd' : '-'), ++ ((mode & OSK_SHARED_PERM) ? 's' : '-'), ++ ((mode & OSK_OTHER_EXEC_PERM) ? 'e' : '-'), ++ ((mode & OSK_OTHER_WRITE_PERM) ? 'w' : '-'), ++ ((mode & OSK_OTHER_READ_PERM) ? 'r' : '-'), ++ ((mode & OSK_OWNER_EXEC_PERM) ? 'e' : '-'), ++ ((mode & OSK_OWNER_WRITE_PERM) ? 'w' : '-'), ++ ((mode & OSK_OWNER_READ_PERM) ? 'r' : '-'), ++ hdr->unix_uid, hdr->unix_gid); ++ break; ++ default: ++ switch (hdr->extend_type) { /* max 18 characters */ ++ case EXTEND_GENERIC: ++ p = "[generic]"; ++ break; ++ case EXTEND_CPM: ++ p = "[CP/M]"; ++ break; ++ case EXTEND_FLEX: ++ p = "[FLEX]"; ++ break; ++ case EXTEND_OS9: ++ p = "[OS-9]"; ++ break; ++ case EXTEND_OS68K: ++ p = "[OS-9/68K]"; ++ break; ++ case EXTEND_MSDOS: ++ p = "[MS-DOS]"; ++ break; ++ case EXTEND_MACOS: ++ p = "[Mac OS]"; ++ break; ++ case EXTEND_OS2: ++ p = "[OS/2]"; ++ break; ++ case EXTEND_HUMAN: ++ p = "[Human68K]"; ++ break; ++ case EXTEND_OS386: ++ p = "[OS-386]"; ++ break; ++ case EXTEND_RUNSER: ++ p = "[Runser]"; ++ break; ++#ifdef EXTEND_TOWNSOS ++ /* This ID isn't fixed */ ++ case EXTEND_TOWNSOS: ++ p = "[TownsOS]"; ++ break; ++#endif ++ /* Ouch! Please customize it's ID. */ ++ default: ++ p = "[unknown]"; ++ break; ++ } ++ printf("%-23.23s", p); ++ break; ++ } ++ ++ print_size(hdr->packed_size, hdr->original_size); ++ ++ if (verbose_listing) ++ if (hdr->has_crc) ++ printf(" %s %04x", method, hdr->crc); ++ else ++ printf(" %s ****", method); ++ ++ printf(" "); ++ print_stamp(hdr->unix_last_modified_stamp); ++ ++ if (!verbose) ++ if ((mode & UNIX_FILE_SYMLINK) != UNIX_FILE_SYMLINK) ++ printf(" %s", hdr->name); ++ else { ++ char buf[256], *b1, *b2; ++ strcpy(buf, hdr->name); ++ b1 = strtok(buf, "|"); ++ b2 = strtok(NULL, "|"); ++ printf(" %s -> %s", b1, b2); ++ } ++ ++ if (verbose) ++ printf(" [%d]", hdr->header_level); ++ printf("\n"); ++ ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++list_tailer() ++{ ++ struct stat stbuf; ++ ++ print_bar(); ++ ++ printf(" Total %9d file%c ", ++ list_files, (list_files == 1) ? ' ' : 's'); ++ print_size(packed_size_total, original_size_total); ++ printf(" "); ++ ++ if (verbose_listing) ++ printf(" "); ++ ++ if (stat(archive_name, &stbuf) < 0) ++ print_stamp((time_t) 0); ++ else ++ print_stamp(stbuf.st_mtime); ++ ++ printf("\n"); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* LIST COMMAND MAIN */ ++/* ------------------------------------------------------------------------ */ ++void ++cmd_list() ++{ ++ FILE *afp; ++ LzHeader hdr; ++ int i; ++ ++ /* initialize total count */ ++ packed_size_total = 0L; ++ original_size_total = 0L; ++ list_files = 0; ++ ++ /* open archive file */ ++ if ((afp = open_old_archive()) == NULL) { ++ error(archive_name, ""); ++ exit(1); ++ } ++ if (archive_is_msdos_sfx1(archive_name)) ++ skip_msdos_sfx1_code(afp); ++ ++ /* print header message */ ++ if (!quiet) ++ list_header(); ++ ++ /* print each file information */ ++ while (get_header(afp, &hdr)) { ++ if (need_file(hdr.name)) { ++ list_one(&hdr); ++ list_files++; ++ packed_size_total += hdr.packed_size; ++ original_size_total += hdr.original_size; ++ } ++ ++ if (afp != stdin) ++ fseek(afp, hdr.packed_size, SEEK_CUR); ++ else { ++ i = hdr.packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ } ++ ++ /* close archive file */ ++ fclose(afp); ++ ++ /* print tailer message */ ++ if (!quiet) ++ list_tailer(); ++ ++ return; ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c lhlist.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/changelog ++++ lha-1.14i/debian/changelog +@@ -0,0 +1,178 @@ ++lha (1.14i-10.1) unstable; urgency=high ++ ++ * Security NMU for vulnerabilities inherited from GNU Gzip: ++ [CVE-2006-4335 CVE-2006-4337 CVE-2006-4338] ++ ++ -- Moritz Muehlenhoff <jmm@debian.org> Wed, 13 Dec 2006 20:21:32 +0100 ++ ++lha (1.14i-10) unstable; urgency=high ++ ++ * debian/patch.redhat-sec2: Add one more security patch to fix: ++ - CAN-2004-0771 (-w working directory option buffer overflow) ++ http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0771 ++ - CAN-2004-0769 (buffer overflow can be executed arbitrary code ++ via long pathnames in headers, another issue of bug fixed in -9) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0769 ++ - CAN-2004-0745 (execute arbitrary commands via a directory with ++ shell metacharacters in its name.) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0745 ++ - CAN-2004-0694 (reserved number) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0694 ++ taken from RedHat patch. (Closes: #279870) ++ * man/lha.n: Fix typo "flie" instead of "file". (Closes: #277545) ++ ++ -- GOTO Masanori <gotom@debian.org> Sat, 13 Nov 2004 15:31:22 +0900 ++ ++lha (1.14i-9) unstable; urgency=high ++ ++ * debian/patch.header-overflow: Add fix another lha buffer overflow ++ problem. It warns when hitting an archive which includes ++ long directory name with option l, v, x. See: ++ http://lw.ftw.zamosc.pl/lha-exploit.txt ++ http://www.securityfocus.com/archive/1/363418 ++ http://bugs.gentoo.org/show_bug.cgi?id=51285 ++ Thanks to Lukasz Wojtow <lw@wszia.edu.pl> for pointing this problem. ++ ++ -- GOTO Masanori <gotom@debian.org> Wed, 16 Jun 2004 09:51:06 +0900 ++ ++lha (1.14i-8) unstable; urgency=high ++ ++ * debian/patch.CAN-2004-0234_0235: Add fix CAN-2004-0235 symlink part ++ patches. (Closes: #247355, #247357) ++ ++ -- GOTO Masanori <gotom@debian.org> Sat, 8 May 2004 02:24:57 +0900 ++ ++lha (1.14i-7) unstable; urgency=high ++ ++ * debian/patch.CAN-2004-ulf: Add to fix CAN-2004-0234 (buffer overflows), ++ CAN-2004-0235 (directory traversal). See: ++ http://marc.theaimsgroup.com/?l=full-disclosure&m=108345064008698&w=2 ++ * debian/control: Change my mail address. ++ ++ -- GOTO Masanori <gotom@debian.org> Thu, 6 May 2004 15:13:14 +0900 ++ ++lha (1.14i-6) unstable; urgency=low ++ ++ * debian/copyright: Added more copyright license statement, translated ++ by Osamu Aoki <debian@aokiconsulting.com>. ++ * debian/copyright: Added good summary of upstream author, investigated by ++ Osamu Aoki <debian@aokiconsulting.com> and ++ Tatsuya Kinoshita <tats@iris.ne.jp>. ++ * debian/header-e.doc: Added English version of header.doc (LHa header ++ structure format document) translated by Osamu Aoki ++ <debian@aokiconsulting.com>. ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Tue, 27 Aug 2002 13:08:22 +0900 ++ ++lha (1.14i-5) unstable; urgency=low ++ ++ * debian/patch.multibyte: Add multibyte character mode option 'y'. ++ You can use multibyte filename especially SHIFTJIS code ++ with this option. ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Fri, 19 Jul 2002 16:57:11 +0900 ++ ++lha (1.14i-4) unstable; urgency=low ++ ++ * debian/copyright: add original/translated license statement ++ (closes: Bug#144582). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Wed, 1 May 2002 09:53:24 +0900 ++ ++lha (1.14i-3) unstable; urgency=low ++ ++ * fix lha reports a wrong version number (closes: Bug#135199). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 3 Mar 2002 21:38:46 +0900 ++ ++lha (1.14i-2) unstable; urgency=low ++ ++ * Applied the patch not to get compiling warning message. ++ Patched by Paul Slootman <paul@wurtel.net>. (Closes: #109634). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Thu, 23 Aug 2001 00:26:53 +0900 ++ ++lha (1.14i-1) unstable; urgency=low ++ ++ * New upstream release (Closes: #62256). ++ * New maintainer. ++ * Updated Standards-version 3.5.2. ++ * Use build this package with dh_*. ++ * New upstream version is ready for -lh7- format (Closes: #67592). ++ * Japanese manual is now included (Closes: #49245). ++ * Unclosed Bugs (No copyright file is included) ++ has just re-closed (Closes: #48748). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 22 Jul 2001 13:11:50 +0900 ++ ++lha (1.14e-2) unstable; urgency=low ++ ++ * Moved /usr/man/* and /usr/doc/* under /usr/share. Closes: #80759. ++ * Updated Standards-version, fixed lintian warnings. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 21 Jan 2001 17:35:52 +0000 ++ ++lha (1.14e-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Jiro Iwamoto <iwamot@maroon.plala.or.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 25 Jul 1999 23:05:24 +0100 ++ ++lha (1.14d-1) unstable; urgency=low ++ ++ * Fixed manpage - no need to specify "-b" for command line help. Closes bug #33328. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 14 Feb 1999 16:24:44 +0000 ++ ++lha (1.14d-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Tomohiro KUBOTA <kubota@kubota.rcpom.osaka-u.ac.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 16 Jan 1999 21:54:37 +0000 ++ ++lha (1.14c-1) frozen unstable; urgency=low ++ ++ * New man page, supplied by Martin Schulze <joey@finlandia.Infodrom.North.DE>. Fixes Bug#27195. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 18 Oct 1998 13:53:12 +0100 ++ ++lha (1.14c-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Atsushi KAMOSHIDA <kamop@debian.or.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 15 Aug 1998 14:16:19 +0100 ++ ++lha (1.00-6) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Mon, 12 Jan 1998 00:09:12 +0000 ++ ++lha (1.00-5) unstable; urgency=low, closes=16756 ++ ++ * Corrected Standards-Version to 2.3.0.1 (Bug#16756) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 02:08:03 +0100 ++ ++lha (1.00-4) unstable; urgency=low ++ ++ * Compiled against libc6 (Bug#11696) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 31 Dec 1997 20:51:38 +0100 ++ ++lha (1.00-3) unstable; urgency=low ++ ++ * Corrected manpage (Bug#7980) ++ ++ * New maintainer address ++ ++ -- Martin Schulze <joey@namib.north.de> Mon, 28 Apr 1997 13:10:10 +0200 ++ ++lha (1.00-2) unstable; urgency=low ++ ++ * Installed ChangeLog files ++ ++ * Converted into new packaging scheme ++ ++ -- Martin Schulze <joey@namib.north.de> Sun, 23 Feb 1997 12:22:13 +0100 ++ +--- lha-1.14i.orig/debian/lha.1 ++++ lha-1.14i/debian/lha.1 +@@ -0,0 +1,139 @@ ++ .\" lha - LZH un-archiver ++.\" Copyright (c) 1996 Martin Schulze <joey@namib.north.de> ++.\" ++.\" This manual page 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., 675 Mass Ave, Cambridge, MA 02139, USA. ++.\" ++.\" This manpage is written especially for Debian GNU/Linux. ++.\" ++.\" LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa ++.\" LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki ++.\" LHx(arc) for OSK V 2.01 Modified 1990 Momozou ++.\" LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki ++.\" ++.\" Additions by Joerg Boehnke <joerg@oggi.oche.de> ++.\" ++.TH LHA 1 "22 Sept, 1998" "Debian GNU/Linux" "Archiver" ++.SH NAME ++LHa \- LZH un-archiver ++.SH SYNOPSIS ++.B lha ++.B key ++[ ++.B - ++] ++.B {axelvudmcp} ++[ ++.B qvnfodizg012 ++] ++[ ++.B w=<dir> ++] ++.I archive_file ++[ ++.I flie ++\&.\|.\|. ] ++.br ++.B lha ++.I archive_file ++.SH DESCRIPTION ++The ++.B lha ++program displays or extracts the contents of a LZH archive. ++ ++For a list of commands, please refer to the executable. It will ++display a list of valid commands and modifiers if you omit any ++parameter. ++ ++.TP ++commands: ++ ++.B a ++Add(or replace) to archive ++ ++.B x,e ++EXtract from archive ++ ++.B l,v ++List / Verbose List ++ ++.B u ++Update newer files to archive ++ ++.B d ++Delete from archive ++ ++.B m ++Move to archive (means 'ad') ++ ++.B c ++re-Construct new archive ++ ++.B p ++Print to STDOUT from archive ++ ++.B t ++Test file CRC in archive ++ ++.TP ++options: ++ ++.B q ++quiet ++ ++.B v ++verbose ++ ++.B n ++not execute ++ ++.B f ++force (over write at extract) ++ ++.B t ++FILES are TEXT file ++ ++.B o ++use LHarc compatible method (a/u) ++ ++.B w=<dir> ++specify extract directory (x/e) ++ ++.B d ++delete FILES after (a/u/c) ++ ++.B i ++ignore directory path (x/e) ++ ++.B z ++files not compress (a/u) ++ ++.B g ++[Generic] format (for compatibility) ++ ++.B 0/1/2 ++header level (a/u) ++ ++.B e ++TEXT code convert from/to EUC ++ ++.B y ++filename multibyte convert ++ ++.SH BUGS ++ ++This manpage is poor, it really should be improved, but the original ++is in Japanese. ++ ++Try lha without any command line arguments to get help +--- lha-1.14i.orig/debian/rules ++++ lha-1.14i/debian/rules +@@ -0,0 +1,115 @@ ++#!/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=3 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ # Add here commands to configure the package. ++ ++ patch -p0 < debian/patch.paul ++ patch -p0 < debian/patch.multibyte ++ patch -p0 < debian/patch.CAN-2004-0234_0235 ++ patch -p0 < debian/patch.header-overflow ++ patch -p1 < debian/patch.redhat-sec2 ++ patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 ++ ++ touch configure-stamp ++ ++build: configure-stamp build-stamp ++build-stamp: ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ $(MAKE) ++ #/usr/bin/docbook-to-man debian/lha.sgml > lha.1 ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp configure-stamp ++ ++ # Add here commands to clean up after the build process. ++ -$(MAKE) clean ++ ++ # delete copied docs. ++ rm -f MACHINES MACHINES2 PROBLEMS README ++ rm -f header.doc debian/lha.euc.1.gz debian/lha.1.gz ++ cp debian/org/lha.h src/lha.h ++ cp debian/org/header.c src/header.c ++ cp debian/org/lharc.c src/lharc.c ++ cp debian/org/util.c src/util.c ++ cp debian/org/lhext.c src/lhext.c ++ cp debian/org/lhlist.c src/lhlist.c ++ cp debian/org/lha_macro.h src/lha_macro.h ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/lha. ++ # $(MAKE) install BINDIR=$(CURDIR)/debian/lha/usr/bin \ ++ # MANDIR=$(CURDIR)/debian/lha/usr/share/man \ ++ # MANSECT=1 ++ install -m 755 src/lha $(CURDIR)/debian/lha/usr/bin ++ ++ # Copy the filenames without the .euc extension ++ cp MACHINES.euc MACHINES ++ cp MACHINES2.euc MACHINES2 ++ cp PROBLEMS.euc PROBLEMS ++ cp README.euc README ++ cp header.doc.euc header.doc ++ ++ gzip -9 -c man/lha.n > debian/lha.euc.1.gz ++ gzip -9 -c debian/lha.1 > debian/lha.1.gz ++ install -m 644 debian/lha.euc.1.gz $(CURDIR)/debian/lha/usr/share/man/ja/man1/lha.1.gz ++ install -m 644 debian/lha.1.gz $(CURDIR)/debian/lha/usr/share/man/man1/lha.1.gz ++ ++# 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_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installlogrotate ++# dh_installemacsen ++# dh_installpam ++# dh_installmime ++# dh_installinit ++# dh_installcron ++# dh_installman ++# dh_installinfo ++# dh_undocumented ++ dh_installchangelogs CHANGES.euc ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# 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 configure +--- lha-1.14i.orig/debian/dirs ++++ lha-1.14i/debian/dirs +@@ -0,0 +1,3 @@ ++usr/bin ++usr/share/man/man1 ++usr/share/man/ja/man1/ +--- lha-1.14i.orig/debian/copyright ++++ lha-1.14i/debian/copyright +@@ -0,0 +1,172 @@ ++This package was debianized by Atsushi KAMOSHIDA kamop@post1.com on ++Sun, 13 Apr 1997 17:52:59 +0900. ++ ++It was downloaded from http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm ++ ++Upstream Authors: ++ ++ LHarc 0.01-1.00: Yooichi Tagawa (LHa code taken from here, 1988-1989) ++ Nikkei-mix ID: y.tagawa (Now this is defunct BBS, Licensing term ++ in manual page come from his licence for lharc) ++ His new web page seems to be www2s.biglibe.ne.jp/~yex/ ++ yooedit2001@yahoo.co.jp is the contact e-mail address for another ++ software. Page updated at least July/2001 ++ ++ LHa 0.01-1.00: Masaru Oki (LHa original author, 1991-1992) ++ E-Mail address: oki@netbsd.org ++ ++ LHa 1.10-1.14: Nobutaka Watazaki (Last official release? 1993-1995) ++ ALICE-NET ALS00595 Nasty ++ E-Mail JBD02514@niftyserve.or.jp ++ E-Mail femcs@mbox.kyoto-inet.or.jp ++ NIFTY-Serve JBD02514 ++ E-Mail address: watazaki@shimadzu.co.jp ++ E-Mail address: watazaki@shimadzusd.co.jp ++ ++ Lha 1.14a-1.14e: Tsugio Okamoto <tsugio@muc.biglobe.ne.jp> (1996-2000) ++ ++ ++Copyright: ++ ++Original Source Code License Statement: ++ ++ /* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++ /* Modified Nobutaka Watazaki */ ++ /* Thanks to H.Yoshizaki. (MS-DOS LHarc) */ ++ ++ ++Original Authors License Statement (from man/lha.man, in Japanese ++EUC-JP): ++ ++ ۤˤĤ ++ ʲξǡۡžܡѤĤޤ ++ ++ 1. ɽʤȡ ++ ++ 2. ƤˤĤƤϡ ++ ++ a. ۤκݤ¸ߤ(ʤ ++ ɡ ȡץޡؤμ ++ )ۤ줿Τɬ¸ ++ ȡ ѤƤʤС ++ ȤѰդ뤳ȡ ++ ++ b. LHa Фղòͤդƺۤ ++ ˤϤǤޤ褦Ϥ ++ ȡޤκݤˤղòͤդƤ ++ 뤳ȤɥȤѰդ뤳ȡ ++ ++ c. ХʥΤߤۤϵʤ(ղò ++ Τޤ) ++ ++ 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ) ++ ++ . ʤͥåȤǤդϼͳǤ뤬ͥåȤ ++ Ǥʤʻ浪ӡ CDROM ++ դϡˤ EMail ++ ꤤޤ˽ʤݤˤϡɬ ++ EMail ꤤޤ ++ ++ 4. Υץ¸ߤѤȤˤä» ++ ݾڤʤ ++ ++ 5. ԤϡΥץäƤ⡢ ++ ̳ʤ ++ ++ 6. Υץΰޤ¾Υץ ++ Ȥ߹ѤƤ⤫ޤʤξ硢Υ ++ LHa ǤϤʤ LHa ̾äƤϤʤ ++ ++ 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤ ++ Ȥˤǧ롣 ++ ++ a. ΥץᥤȤ뾦Ѥ϶ ++ 롣 ++ ++ b. Ѥ꤬ΥץλѼԤȤ ++ ŬڤȽǤˤۤʤ ++ ++ c. ȡμʤȤƻѤ硢Υ ++ ȤȤ˶ʤξ ++ 硢ѼԤȤԤޤΤȤ» ++ ϡѼԤǤ餦 ++ ++ d. ѤղòͤȤƹԤΥץ ++ Ѥ硢ѼԤϡΥݡȤԤ ++ ++ ++Original Authors License Statement (from man/lha.man, translated by ++Osamu Aoki <debian@aokiconsulting.com>): ++ ++ Permission is given for redistribution, copy, and modification provided ++ following conditions are met. ++ ++ 1. Do not remove copyright clause. ++ 2. Distribution shall conform: ++ a. The content of redistribution (i.e., source code, documentation, ++ and reference guide for programmers) shall include original contents. ++ If contents are modified, the document clearly indicating ++ the fact of modification must be included. ++ b. If LHa is redistributed with added values, you must put your best ++ effort to include them (Translator comment: If read literally, ++ original Japanese was unclear what "them" means here. But ++ undoubtedly this "them" means source code for the added value ++ portion and this is a typical Japanese sloppy writing style to ++ abbreviate as such) Also the document clearly indicating that ++ added value was added must be included. ++ c. Binary only distribution is not allowed (including added value ++ ones.) ++ 3. You need to put effort to distribute the latest version (This is not ++ your duty). ++ ++ NB: Distribution on Internet is free. Please notify me by e-mail or ++ other means prior to the distribution if distribution is done through ++ non-Internet media (Magazine, CDROM etc.) If not, make sure to Email ++ me later. ++ ++ 4. Any damage caused by the existence and use of this program will not ++ be compensated. ++ ++ 5. Author will not be responsible to correct errors even if program is ++ defective. ++ ++ 6. This program, either as a part of this or as a whole of this, may be ++ included into other programs. In this case, that program is not LHa ++ and can not call itself LHa. ++ ++ 7. For commercial use, in addition to above conditions, following ++ condition needs to be met. ++ ++ a. The program whose content is mainly this program can not be used ++ commercially. ++ b. If the recipient of commercial use deems inappropriate as a ++ program user, you must not distribute. ++ c. If used as a method for the installation, you must not force ++ others to use this program. In this case, commercial user will ++ perform its work while taking full responsibility of its outcome. ++ d. If added value is done under the commercial use by using this ++ program, commercial user shall provide its support. ++ ++ ++(Osamu Aoki also comments: ++ Here "commercial" may be interpreted as "for-fee". "Added value" seems ++ to mean "feature enhancement". ) ++ ++ ++License Statement by Tsugio Okamoto (in Japanese EUC-JP): ++ ++ ʤͥåȤǤդϼͳǤͥåȤ˥Ǥʤʻ浪ӡ ++ CD-ROM ʤɤˤˤؤդϡˤ Inter-Net E-Mail ++ ꤤޤ ɤˡǺܤȤݤз빽ǤΤǡ ++ ޤʤݤˤϡ E-Mail ɬꤤޤ ++ ++ ++Translated License Statement by Tsugio Okamoto (translated by ++GOTO Masanori <gotom@debian.org>): ++ ++ It's free to distribute on the network, but if you distribute for ++ the people who cannot access the network (by magazine or CD-ROM), ++ please send E-Mail (Inter-Net address) to the author before the ++ distribution. That's well where this software is appeard. ++ If you cannot do, you must send me the E-Mail later. ++ +--- lha-1.14i.orig/debian/control ++++ lha-1.14i/debian/control +@@ -0,0 +1,13 @@ ++Source: lha ++Section: non-free/utils ++Priority: optional ++Maintainer: GOTO Masanori <gotom@debian.org> ++Build-Depends: debhelper (>> 4.0.0) ++Standards-Version: 3.6.0 ++ ++Package: lha ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: lzh archiver ++ The famous lzh archiver, known from DOS. When mixing DOS and Unix ++ you might need it. (Especially for fido <--> rfc conversions.) +--- lha-1.14i.orig/debian/docs ++++ lha-1.14i/debian/docs +@@ -0,0 +1,10 @@ ++README.euc ++change-114e.txt ++change-114g.txt ++change-114h.txt ++change-114i.txt ++MACHINES ++MACHINES2 ++PROBLEMS ++header.doc ++debian/header-e.doc +--- lha-1.14i.orig/debian/patch.paul ++++ lha-1.14i/debian/patch.paul +@@ -0,0 +1,10 @@ ++--- src/lha.h Thu Oct 5 19:35:38 2000 +++++ src/lha.h Wed Aug 22 15:49:55 2001 ++@@ -16,6 +16,7 @@ ++ #include <sys/types.h> ++ #include <sys/file.h> ++ #include <sys/stat.h> +++#include <stdlib.h> ++ ++ #include <signal.h> ++ +--- lha-1.14i.orig/debian/header-e.doc ++++ lha-1.14i/debian/header-e.doc +@@ -0,0 +1,189 @@ ++/* header.doc (In English) */ ++Header structure used in LHa for UNIX Mar. 2, 1992, Masaru Oki. ++(Translated by Osamu Aoki) ++ ++---------------------------------------------------------------- ++This version, as a transitional mreasure, uses level-1 as default value while ++offering 3 types of header types. In the future, I plan to use level-2 which ++has no limit on number of characters for the path mname. ++ ++ A. Spec for header ++ ++Basic part ++----------------------------------------------------------------------------- ++ level-0 level-1 level-2 ++----------------------------------------------------------------------------- ++ 1 header size 1 header size 2 total header size ++ 1 header sum 1 header sum ++ 5 method ID 5 method ID 5 method ID ++ 4 packed size 4 skip size 4 packed size ++ 4 original size 4 original size 4 original size ++ 2 time 2 time 4 time(UNIX type) ++ 2 date 2 date ++ 1 attribute 1 0x20 1 RESERVED ++ 1 level 0x00 1 level 0x01 1 level 0x02 ++ 1 name length 1 name length ++ ? pathname ? filename ++ 2 file crc 2 file crc 2 file crc ++ . ........ 1 OS ID 'U' 1 OS ID 'U' ++ . ........ ++ 2 next-header size 2 next-header size ++ ************************************************************************* ++ 24 + ? 27 + ? 26 ++ ++Extension part ++----------------------------------------------------------------------------- ++ 1 ext-type 1 ext-type ++ . ........ . ........ ++ 2 next-header size 2 next-header size ++ ++----------------------------------------------------------------------------- ++ ++ a. Types of header ++ ++ level-0 header ++ Same format as conventional LHarc, LArc. Separator for directory ++ name is '\' as default. ++ ++ level-1 header ++ This header is used as default. Archive type -lh0 made with -x0 can ++ be unfrozen by LHarc but there will be no checking on CRC. ++ ++ level-2 header ++ Header for supporting long file names. I would like to standarize ++ on this format in the future. Please follow this if you wish to ++ make utilities related ti LH. ++ ++ b. method ID for freeze/unfreeze ++ ++ * these methods are freeze/unfreeze, others are unfreeze only ++ ++ -lh0- * no compression ++ ++ -lh1- * 4k sliding dictionary(max 60 bytes) + dynamic Huffman ++ + fixed encoding of position ++ ++ -lh2- 8k sliding dictionary(max 256 bytes) + dynamic Huffman ++ ++ -lh3- 8k sliding dictionary(max 256 bytes) + static Huffman ++ ++ -lh4- * 4k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh5- * 8k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh6- 32k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh7- 64k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lzs- 2k sliding dictionary(max 17 bytes) ++ ++ -lz4- no compression ++ ++ -lz5- 4k sliding dictionary(max 17 bytes) ++ ++ c. About OS ID ++ ++ Following OS ID are reserved. ++ ++ MS-DOS 'M' ++ OS/2 '2' ++ OS9 '9' ++ OS/68K 'K' ++ OS/386 '3' ++ HUMAN 'H' ++ UNIX 'U' ++ CP/M 'C' ++ FLEX 'F' ++ Mac 'm' ++ Runser 'R' ++ ++ B. Extension ++ ++ a. OS independent (0x00 - 0x3f) ++ ++ common header ++ 1 0x00 ++ 2 header crc ++ ( 1 information ) ++ 2 next-header size ++ ++ filename header ++ 1 0x01 ++ ? filename ++ 2 next-header size ++ ++ dirname header ++ 1 0x02 ++ ? dirname ++ 2 next-header size ++ ++ comment header ++ 1 0x3f ++ ? comments ++ 2 next-header size ++ ++(Above portion, from lhx.doc by Mr. Yoshizaki) ++---------------------------------------------------------------- ++LHa for UNIX : specification for extension header ++ ++* Category of machine specific information (Information to be recorded) ++ Followings are UNIX specific information which requires to be recorded ++ (1) Permission ++ (2) GID,UID ++ (3) Group name, User name ++ (4) Last change time (UNIX time) ++ ++* Type of machine specific information (ext-type) ++ First 1 byte of extension header contain value to distinguish types of ++ the infoemation. Foe UNIX specific information, 0x50 - 0x54 will be ++ used. ++ ++* Method to store ++ Above categories (1) - (4) will be different type. ++ ++ ++ (1) Pemission ++ size value ++ 1 0x50 ++ 2 Valur of permission ++ 2 next-header size ++ ++ (2)GID,UID ++ size value ++ 1 0x51 ++ 2 GID ++ 2 UID ++ 2 next-header size ++ ++ (3)-1 Group name ++ 1 0x52 ++ ? Group name string ++ 2 next-header size ++ ++ (3)-2 user name ++ 1 0x53 ++ ? User name string ++ 2 next-header size ++ ++ (4) Last change time (for header_level1) ++ 1 0x54 ++ 4 UNIX time ++ 2 next-header size ++ ++* Implimentation of LHa for UNIX ver 1.14 (Watazaki) ++ Above (3) is not supported ++ Group name and user name specified by (3) is not used to make an ++ archive thus ignored during expansion. ++ Also (4) is contained only in level-1 archive. ++---------------------------------------------------------------- ++That's all folks :) ++ ++Partially modified by ++Nobutaka Watazaki ++watazaki@shimadzu.co.jp ++ ++ +--- lha-1.14i.orig/debian/patch.CAN-2004-0234_0235 ++++ lha-1.14i/debian/patch.CAN-2004-0234_0235 +@@ -0,0 +1,85 @@ ++--- src/header.c.old 2000-10-05 19:36:03.000000000 +0200 +++++ src/header.c 2004-04-17 23:55:54.000000000 +0200 ++@@ -538,6 +538,10 @@ ++ /* ++ * filename ++ */ +++ if (header_size >= 256) { +++ fprintf(stderr, "Possible buffer overflow hack attack, type #1\n"); +++ exit(109); +++ } ++ for (i = 0; i < header_size - 3; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[header_size - 3] = '\0'; ++@@ -547,6 +551,10 @@ ++ /* ++ * directory ++ */ +++ if (header_size >= FILENAME_LENGTH) { +++ fprintf(stderr, "Possible buffer overflow hack attack, type #2\n"); +++ exit(110); +++ } ++ for (i = 0; i < header_size - 3; i++) ++ dirname[i] = (char) get_byte(); ++ dirname[header_size - 3] = '\0'; ++--- src/lhext.c.old 2000-10-04 16:57:38.000000000 +0200 +++++ src/lhext.c 2004-04-18 01:27:44.000000000 +0200 ++@@ -190,8 +190,13 @@ ++ q = (char *) rindex(hdr->name, '/') + 1; ++ } ++ else { +++ if (is_directory_traversal(q)) { +++ fprintf(stderr, "Possible directory traversal hack attempt in %s\n", q); +++ exit(111); +++ } +++ ++ if (*q == '/') { ++- q++; +++ while (*q == '/') { q++; } ++ /* ++ * if OSK then strip device name ++ */ ++@@ -419,6 +424,33 @@ ++ return; ++ } ++ +++int +++is_directory_traversal(char *string) +++{ +++ unsigned int type = 0; /* 0 = new, 1 = only dots, 2 = other chars than dots */ +++ char *temp; +++ +++ temp = string; +++ +++ while (*temp != 0) { +++ if (temp[0] == '/') { +++ if (type == 1) { return 1; } +++ type = 0; +++ temp++; +++ continue; +++ } +++ +++ if ((temp[0] == '.') && (type < 2)) +++ type = 1; +++ if (temp[0] != '.') +++ type = 2; +++ +++ temp++; +++ } /* while */ +++ +++ return (type == 1); +++} +++ ++ /* Local Variables: */ ++ /* mode:c */ ++ /* tab-width:4 */ ++--- src/lhext.c.symlink 2000-10-04 10:57:38.000000000 -0400 +++++ src/lhext.c 2003-05-19 22:55:57.000000000 -0400 ++@@ -351,6 +351,7 @@ extract_one(afp, hdr) ++ } ++ ++ unlink(bb1); +++ make_parent_path(bb1); ++ l_code = symlink(bb2, bb1); ++ if (l_code < 0) { ++ if (quiet != TRUE) +--- lha-1.14i.orig/debian/patch.header-overflow ++++ lha-1.14i/debian/patch.header-overflow +@@ -0,0 +1,21 @@ ++--- src/header.c 2002-07-19 17:23:58.000000000 +0900 +++++ src/header.c 2004-06-16 09:49:23.000000000 +0900 ++@@ -648,8 +648,17 @@ ++ } ++ ++ if (dir_length) { +++ if ((dir_length + name_length) > sizeof(dirname)) { +++ fprintf(stderr, "Insufficient buffer size\n"); +++ exit(112); +++ } ++ strcat(dirname, hdr->name); ++- strcpy(hdr->name, dirname); +++ +++ if ((dir_length + name_length) > sizeof(hdr->name)) { +++ fprintf(stderr, "Insufficient buffer size\n"); +++ exit(112); +++ } +++ strncpy(hdr->name, dirname, sizeof(hdr->name)); ++ name_length += dir_length; ++ } ++ +--- lha-1.14i.orig/debian/patch.redhat-sec2 ++++ lha-1.14i/debian/patch.redhat-sec2 +@@ -0,0 +1,196 @@ ++diff -urNp lha-114i.orig/src/lha_macro.h lha-114i/src/lha_macro.h ++--- lha-114i.orig/src/lha_macro.h 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lha_macro.h 2004-08-03 15:54:05.000000000 -0500 ++@@ -53,7 +53,7 @@ ++ #define SEEK_SET 0 ++ #define SEEK_CUR 1 ++ #define SEEK_END 2 ++-#endif /* SEEK_SET +++#endif /* SEEK_SET */ ++ ++ ++ /* non-integral functions */ ++diff -urNp lha-114i.orig/src/lharc.c lha-114i/src/lharc.c ++--- lha-114i.orig/src/lharc.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lharc.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -830,9 +830,10 @@ find_files(name, v_filec, v_filev) ++ DIRENTRY *dp; ++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf; ++ ++- strcpy(newname, name); +++ strncpy(newname, name, sizeof(newname)); +++ newname[sizeof(newname)-1] = 0; ++ len = strlen(name); ++- if (len > 0 && newname[len - 1] != '/') +++ if (len > 0 && newname[len - 1] != '/' && len < (sizeof(newname)-1)) ++ newname[len++] = '/'; ++ ++ dirp = opendir(name); ++@@ -846,6 +847,11 @@ find_files(name, v_filec, v_filev) ++ ++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) { ++ n = NAMLEN(dp); +++ if (len >= (sizeof(newname)-1) || +++ (len+n) >= (sizeof(newname)-1) || +++ n <= 0 || +++ (len+n) <= 0) +++ break; ++ strncpy(newname + len, dp->d_name, n); ++ newname[len + n] = '\0'; ++ if (GETSTAT(newname, &fil_stbuf) < 0) ++@@ -903,7 +909,8 @@ build_temporary_name() ++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE); ++ } ++ else { ++- sprintf(temporary_name, "%s/lhXXXXXX", extract_directory); +++ snprintf(temporary_name, sizeof(temporary_name), +++ "%s/lhXXXXXX", extract_directory); ++ } ++ #ifdef MKSTEMP ++ mkstemp(temporary_name); ++@@ -913,10 +920,16 @@ build_temporary_name() ++ #else ++ char *p, *s; ++ ++- strcpy(temporary_name, archive_name); +++ strncpy(temporary_name, archive_name, sizeof(temporary_name)); +++ temporary_name[sizeof(temporary_name)-1] = 0; ++ for (p = temporary_name, s = (char *) 0; *p; p++) ++ if (*p == '/') ++ s = p; +++ +++ if( sizeof(temporary_name) - ((size_t) (s-temporary_name)) - 1 +++ <= strlen("lhXXXXXX")) +++ exit(-1); +++ ++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX"); ++ #ifdef MKSTEMP ++ mkstemp(temporary_name); ++@@ -1052,7 +1065,8 @@ open_old_archive() ++ ++ if (open_old_archive_1(archive_name, &fp)) ++ return fp; ++- sprintf(expanded_archive_name, "%s.lzh", archive_name); +++ snprintf(expanded_archive_name, sizeof(expanded_archive_name), +++ "%s.lzh", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++@@ -1061,7 +1075,8 @@ open_old_archive() ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++- sprintf(expanded_archive_name, "%s.lzs", archive_name); +++ snprintf(expanded_archive_name, sizeof(expanded_archive_name), +++ "%s.lzs", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++diff -urNp lha-114i.orig/src/lhext.c lha-114i/src/lhext.c ++--- lha-114i.orig/src/lhext.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lhext.c 2004-08-03 15:55:40.000000000 -0500 ++@@ -82,7 +82,8 @@ make_parent_path(name) ++ register char *p; ++ ++ /* make parent directory name into PATH for recursive call */ ++- strcpy(path, name); +++ memset(path, 0, sizeof(path)); +++ strncpy(path, name, sizeof(path)-1); ++ for (p = path + strlen(path); p > path; p--) ++ if (p[-1] == '/') { ++ *--p = '\0'; ++@@ -212,9 +213,11 @@ extract_one(afp, hdr) ++ } ++ ++ if (extract_directory) ++- sprintf(name, "%s/%s", extract_directory, q); ++- else ++- strcpy(name, q); +++ snprintf(name, sizeof(name), "%s/%s", extract_directory, q); +++ else { +++ strncpy(name, q, sizeof(name)); +++ name[sizeof(name) - 1] = '\0'; +++ } ++ ++ ++ /* LZHDIRS_METHOD�����ĥإå��������å����� */ ++@@ -335,7 +338,8 @@ extract_one(afp, hdr) ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) { ++ char buf[256], *bb1, *bb2; ++ int l_code; ++- strcpy(buf, name); +++ strncpy(buf, name, sizeof(buf)); +++ buf[sizeof(buf)-1] = 0; ++ bb1 = strtok(buf, "|"); ++ bb2 = strtok(NULL, "|"); ++ ++@@ -365,9 +369,10 @@ extract_one(afp, hdr) ++ if (quiet != TRUE) { ++ printf("Symbolic Link %s -> %s\n", bb1, bb2); ++ } ++- strcpy(name, bb1); /* Symbolic's name set */ +++ strncpy(name, bb1, 255); /* Symbolic's name set */ +++ name[255] = 0; ++ #else ++- sprintf(buf, "%s -> %s", bb1, bb2); +++ sprintf(buf, sizeof(buf), "%s -> %s", bb1, bb2); ++ warning("Can't make Symbolic Link", buf); ++ return; ++ #endif ++diff -urNp lha-114i.orig/src/lhlist.c lha-114i/src/lhlist.c ++--- lha-114i.orig/src/lhlist.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lhlist.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -250,7 +250,8 @@ list_one(hdr) ++ printf(" %s", hdr->name); ++ else { ++ char buf[256], *b1, *b2; ++- strcpy(buf, hdr->name); +++ strncpy(buf, hdr->name, sizeof(buf)); +++ buf[sizeof(buf)-1] = 0; ++ b1 = strtok(buf, "|"); ++ b2 = strtok(NULL, "|"); ++ printf(" %s -> %s", b1, b2); ++diff -urNp lha-114i.orig/src/util.c lha-114i/src/util.c ++--- lha-114i.orig/src/util.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/util.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -276,21 +276,27 @@ rmdir(path) ++ char *path; ++ { ++ int stat, rtn = 0; ++- char *cmdname; ++- if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) ++- == 0) +++ pid_t child; +++ +++ +++ /* XXX thomas: shell meta chars in path could exec commands */ +++ /* therefore we should avoid using system() */ +++ if ((child = fork()) < 0) +++ return (-1); /* fork error */ +++ else if (child) { /* parent process */ +++ while (child != wait(&stat)) /* ignore signals */ +++ continue; +++ } +++ else { /* child process */ +++ execl(RMDIRPATH, "rmdir", path, (char *) 0); +++ /* never come here except execl is error */ ++ return (-1); ++- strcpy(cmdname, RMDIRPATH); ++- *(cmdname + strlen(RMDIRPATH)) = ' '; ++- strcpy(cmdname + strlen(RMDIRPATH) + 1, path); ++- if ((stat = system(cmdname)) < 0) ++- rtn = -1; /* fork or exec error */ ++- else if (stat) { /* RMDIR command error */ ++- errno = EIO; ++- rtn = -1; ++ } ++- free(cmdname); ++- return (rtn); +++ if (stat != 0) { +++ errno = EIO; /* cannot get error num. */ +++ return (-1); +++ } +++ return (0); ++ } ++ ++ /* ------------------------------------------------------------------------ */ +--- lha-1.14i.orig/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 ++++ lha-1.14i/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 +@@ -0,0 +1,137 @@ ++diff -aur lha-1.14i.orig/src/huf.c lha-1.14i/src/huf.c ++--- lha-1.14i.orig/src/huf.c 2000-10-05 19:35:49.000000000 +0200 +++++ lha-1.14i/src/huf.c 2006-12-11 10:07:31.000000000 +0100 ++@@ -332,7 +332,7 @@ ++ } ++ else { ++ i = 0; ++- while (i < n) { +++ while (i < MIN(n, NPT)) { ++ c = bitbuf >> (16 - 3); ++ if (c == 7) { ++ unsigned short mask = 1 << (16 - 4); ++@@ -345,7 +345,7 @@ ++ pt_len[i++] = c; ++ if (i == i_special) { ++ c = getbits(2); ++- while (--c >= 0) +++ while (--c >= 0 && i < NPT) ++ pt_len[i++] = 0; ++ } ++ } ++@@ -370,7 +370,7 @@ ++ c_table[i] = c; ++ } else { ++ i = 0; ++- while (i < n) { +++ while (i < MIN(n,NC)) { ++ c = pt_table[bitbuf >> (16 - 8)]; ++ if (c >= NT) { ++ unsigned short mask = 1 << (16 - 9); ++@@ -380,7 +380,7 @@ ++ else ++ c = left[c]; ++ mask >>= 1; ++- } while (c >= NT); +++ } while (c >= NT && (mask || c != left[c])); /* CVE-2006-4338 */ ++ } ++ fillbuf(pt_len[c]); ++ if (c <= 2) { ++@@ -427,7 +427,7 @@ ++ else ++ j = left[j]; ++ mask >>= 1; ++- } while (j >= NC); +++ } while (j >= NC && (mask || j != left[j])); /* CVE-2006-4338 */ ++ fillbuf(c_len[j] - 12); ++ } ++ return j; ++@@ -451,7 +451,7 @@ ++ else ++ j = left[j]; ++ mask >>= 1; ++- } while (j >= np); +++ } while (j >= np && (mask || j != left[j])); /* CVE-2006-4338 */ ++ fillbuf(pt_len[j] - 8); ++ } ++ if (j != 0) ++Only in lha-1.14i/src: huf.c~ ++diff -aur lha-1.14i.orig/src/lha_macro.h lha-1.14i/src/lha_macro.h ++--- lha-1.14i.orig/src/lha_macro.h 2006-12-11 09:43:54.000000000 +0100 +++++ lha-1.14i/src/lha_macro.h 2006-12-11 09:55:42.000000000 +0100 ++@@ -408,6 +408,8 @@ ++ #define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */ ++ #define THRESHOLD 3 /* choose optimal value */ ++ +++#define MIN(a,b) ((a) <= (b) ? (a) : (b)) +++ ++ /* from huf.c */ ++ ++ /* alphabet = {0, 1, 2, ..., NC - 1} */ ++Only in lha-1.14i/src: lha_macro.h~ ++diff -aur lha-1.14i.orig/src/maketbl.c lha-1.14i/src/maketbl.c ++--- lha-1.14i.orig/src/maketbl.c 2000-10-04 16:57:38.000000000 +0200 +++++ lha-1.14i/src/maketbl.c 2006-12-11 09:59:51.000000000 +0100 ++@@ -32,8 +32,15 @@ ++ } ++ ++ /* count */ ++- for (i = 0; i < nchar; i++) ++- count[bitlen[i]]++; +++ for (i = 0; i < nchar; i++) { +++ if (bitlen[i] > 16) { +++ /* CVE-2006-4335 */ +++ error("Bad table (case a)"); +++ exit(1); +++ } +++ else +++ count[bitlen[i]]++; +++ } ++ ++ /* calculate first code */ ++ total = 0; ++@@ -41,8 +48,11 @@ ++ start[i] = total; ++ total += weight[i] * count[i]; ++ } ++- if ((total & 0xffff) != 0) ++- error("make_table()", "Bad table (5)\n"); +++ +++ if ((total & 0xffff) != 0 || tablebits > 16) { /* 16 for weight below */ +++ error("make_table(): Bad table (case b)"); +++ exit(1); +++ } ++ ++ /* shift data for make table. */ ++ m = 16 - tablebits; ++@@ -53,7 +63,7 @@ ++ ++ /* initialize */ ++ j = start[tablebits + 1] >> m; ++- k = 1 << tablebits; +++ k = MIN(1 << tablebits, 4096); ++ if (j != 0) ++ for (i = j; i < k; i++) ++ table[i] = 0; ++@@ -66,12 +76,19 @@ ++ l = start[k] + weight[k]; ++ if (k <= tablebits) { ++ /* code in table */ +++ l = MIN(l, 4096); ++ for (i = start[k]; i < l; i++) ++ table[i] = j; ++ } ++ else { ++ /* code not in table */ ++- p = &table[(i = start[k]) >> m]; +++ i = start[k]; +++ if ((i >> m) > 4096) { +++ /* CVE-2006-4337 */ +++ error("Bad table (case c)"); +++ exit(1); +++ } +++ p = &table[i >> m]; ++ i <<= tablebits; ++ n = k - tablebits; ++ /* make tree (n length) */ ++Only in lha-1.14i/src: maketbl.c~ diff --git a/source/a/lha/slack-desc b/source/a/lha/slack-desc new file mode 100644 index 00000000..75c1dd43 --- /dev/null +++ b/source/a/lha/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------------------------------------------------------| +lha: lha (LHa archive utility) +lha: +lha: LHa is an archiving and compressing utility written by Tsugio Okamoto. +lha: +lha: +lha: +lha: +lha: +lha: +lha: +lha: diff --git a/source/a/lilo/lilo.SlackBuild b/source/a/lilo/lilo.SlackBuild new file mode 100755 index 00000000..197f3384 --- /dev/null +++ b/source/a/lilo/lilo.SlackBuild @@ -0,0 +1,87 @@ +#!/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:-22.8} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-14} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lilo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lilo-$VERSION +tar xvf $CWD/lilo-$VERSION.src.tar.gz || exit 1 +cd lilo-$VERSION +chown -R root:root . + +make || exit 1 +make install ROOT=$PKG + +# Add a Slackware logo boot menu (sorry, couldn't resist): +if [ "$ARCH" = "x86_64" -a -f $CWD/slack64.bmp ]; then + cp -a $CWD/slack64.bmp $PKG/boot/slack.bmp +else + cp -a $CWD/slack.bmp $PKG/boot +fi +chmod 644 $PKG/boot/slack.bmp + +# We don't need to add this empty directory: +rmdir $PKG/etc + +# Add Slackware's 'liloconfig' utility: +mkdir -p $PKG/sbin +cp -a $CWD/liloconfig $PKG/sbin/liloconfig +chmod 755 $PKG/sbin/liloconfig +mkdir -p $PKG/var/log/setup +cp -a $CWD/setup.liloconfig $PKG/var/log/setup/setup.liloconfig +cp -a $CWD/text.lilohelp $PKG/var/log/setup/text.lilohelp +chmod 755 $PKG/var/log/setup/setup.liloconfig +chmod 644 $PKG/var/log/setup/text.lilohelp +chown root:root \ + $PKG/var/log/setup/setup.liloconfig $PKG/var/log/setup/text.lilohelp + +rm -rf $PKG/usr/doc/lilo-$VERSION +mkdir -p $PKG/usr/doc/lilo-$VERSION +cp -a CHANGES COPYING COPYRIGHT INCOMPAT QuickInst READM* doc sample \ + $PKG/usr/doc/lilo-$VERSION +if [ -r $CWD/lilo-$VERSION.lsm ]; then + cp -a $CWD/lilo-$VERSION.lsm $PKG/usr/doc/lilo-$VERSION +fi +if [ -r $CWD/lilo-$VERSION.announce.txt ]; then + cp -a $CWD/lilo-$VERSION.announce.txt $PKG/usr/doc/lilo-$VERSION +fi + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share +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/lilo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lilo/liloconfig b/source/a/lilo/liloconfig new file mode 100644 index 00000000..e786e752 --- /dev/null +++ b/source/a/lilo/liloconfig @@ -0,0 +1,1165 @@ +#!/bin/sh +# +# Copyright 1994, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2002, 2003 Slackware Linux, Inc, Concord, CA +# Copyright 2007, 2008 Patrick 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. +# +TMP=/var/log/setup/tmp +CONSOLETYPE=standard +unset UTFVT + +# Set the OS root directory (called T_PX for some unknown reason). +# If an argument is given to this script and it is a directory, it +# is taken to be the root directory. First though, we check for a +# directory named $T_PX, and that gets the first priority. +if [ ! -d "$T_PX" ]; then + if [ ! "$1" = "" ]; then + if [ -d "$1" ]; then + T_PX="$1" + fi + else + # Are we on the installer image? + if [ -r /usr/lib/setup/SeTpartitions ]; then + T_PX=/mnt + # Or, are we on a running system? + elif [ -r /etc/slackware-version ]; then + T_PX=/ + # One more installer-likely thing: + elif [ -r /usr/lib/setup/setup ]; then + T_PX=/mnt + else + # We will have to assume we've on an installed and running system. + T_PX=/ + fi + fi +fi + +# If there's no boot_message.txt, start the header for one now: +if [ ! -r $T_PX/boot/boot_message.txt ]; then + cat << EOF > $T_PX/boot/boot_message.txt + +Welcome to the LILO Boot Loader! + +Please enter the name of the partition you would like to boot +at the prompt below. The choices are: + +EOF +fi + +# The default install location may be set here: +DEFAULT=" --default-item MBR " + +# This is a different 'probe' than the function below. +PROBE() { + if [ -x /sbin/probe ]; then + /sbin/probe -l + elif fdisk -l | grep "Disk /dev/ide" 1> /dev/null 2> /dev/null ; then # no devfs yet + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + elif fdisk -l | grep "Disk /dev/scsi" 1> /dev/null 2> /dev/null ; then # no devfs yet + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + elif [ -z "`fdisk -l`" ]; then + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + else # We got output without /dev/ide or /dev/scsi, so it can probably be trusted: + fdisk -l 2> /dev/null + fi +} + +# Function to ask if the Slackware logo boot screen should be used. +ask_boot_splash() { + dialog --title "OPTIONAL SLACKWARE LOGO BOOT SCREEN" \ + --yesno \ +"Would you like to use a boot screen with the Slackware logo \ +against a black background? If you answer no here, the standard \ +LILO menu will be used.\n\ +" 7 65 2> $TMP/reply + RETVAL=$? + return $RETVAL +} + +boot_bmp() { + cat << EO_BMP +# Boot BMP Image. +# Bitmap in BMP format: 640x480x8 + bitmap = /boot/slack.bmp +# Menu colors (foreground, background, shadow, highlighted +# foreground, highlighted background, highlighted shadow): + bmp-colors = 255,0,255,0,255,0 +# Location of the option table: location x, location y, number of +# columns, lines per column (max 15), "spill" (this is how many +# entries must be in the first column before the next begins to +# be used. We don't specify it here, as there's just one column. + bmp-table = 60,6,1,16 +# Timer location x, timer location y, foreground color, +# background color, shadow color. + bmp-timer = 65,27,0,255 +EO_BMP +} + +# Menu to check if we want to use VESA framebuffer support: +use_framebuffer() { +if cat /proc/devices | grep "29 fb" 1> /dev/null ; then + dialog --title "CONFIGURE LILO TO USE FRAME BUFFER CONSOLE?" \ + --default-item 1024x768x256 \ + --menu "Looking at /proc/devices, it seems your kernel has support for \ +the Linux frame buffer console. If we enable this in /etc/lilo.conf, it \ +will allow more rows and columns of text on the screen and give you a cool \ +penguin logo at boot time. However, the frame buffer text console is \ +slower than a standard text console. In addition, not every video card \ +or monitor supports all of these video modes. Would you like to use the \ +frame buffer console, or the standard Linux console?" 0 0 0 \ + "standard" "Use the standard Linux console (the safe choice)" \ + "640x480x256" "Frame buffer console, 640x480x256" \ + "800x600x256" "Frame buffer console, 800x600x256" \ + "1024x768x256" "Frame buffer console, 1024x768x256" \ + "640x480x32k" "Frame buffer console, 640x480x32k" \ + "800x600x32k" "Frame buffer console, 800x600x32k" \ + "1024x768x32k" "Frame buffer console, 1024x768x32k" \ + "640x480x64k" "Frame buffer console, 640x480x64k" \ + "800x600x64k" "Frame buffer console, 800x600x64k" \ + "1024x768x64k" "Frame buffer console, 1024x768x64k" \ + 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi +# Frame buffer modes above 1024x768 look terrible except +# on LCD panels, and 32 bit color is slow. Since we don't +# even need to run a framebuffer console to run framebuffer +# X anymore, these modes aren't of much real use. +# "1280x1024x256" "Frame buffer console, 1280x1024x256" \ +# "1600x1200x256" "Frame buffer console, 1600x1200x256" \ +# "1280x1024x32k" "Frame buffer console, 1280x1024x32k" \ +# "1600x1200x32k" "Frame buffer console, 1600x1200x32k" \ +# "1280x1024x64k" "Frame buffer console, 1280x1024x64k" \ +# "1600x1200x64k" "Frame buffer console, 1600x1200x64k" \ +# "640x480x16m" "Frame buffer console, 640x480x16.8m" \ +# "800x600x16m" "Frame buffer console, 800x600x16.8m" \ +# "1024x768x16m" "Frame buffer console, 1024x768x16.8m" \ +# "1280x1024x16m" "Frame buffer console, 1280x1024x16.8m" \ +# "1600x1200x16m" "Frame buffer console, 1600x1200x16.8m" + CONSOLETYPE="`cat $TMP/reply`" + if [ "$CONSOLETYPE" = "1600x1200x16m" ]; then + CONSOLENUM=799 + elif [ "$CONSOLETYPE" = "1600x1200x64k" ]; then + CONSOLENUM=798 + elif [ "$CONSOLETYPE" = "1600x1200x32k" ]; then + CONSOLENUM=797 + elif [ "$CONSOLETYPE" = "1600x1200x256" ]; then + CONSOLENUM=796 + elif [ "$CONSOLETYPE" = "1280x1024x16m" ]; then + CONSOLENUM=795 + elif [ "$CONSOLETYPE" = "1280x1024x64k" ]; then + CONSOLENUM=794 + elif [ "$CONSOLETYPE" = "1280x1024x32k" ]; then + CONSOLENUM=793 + elif [ "$CONSOLETYPE" = "1280x1024x256" ]; then + CONSOLENUM=775 + elif [ "$CONSOLETYPE" = "1024x768x16m" ]; then + CONSOLENUM=792 + elif [ "$CONSOLETYPE" = "1024x768x64k" ]; then + CONSOLENUM=791 + elif [ "$CONSOLETYPE" = "1024x768x32k" ]; then + CONSOLENUM=790 + elif [ "$CONSOLETYPE" = "1024x768x256" ]; then + CONSOLENUM=773 + elif [ "$CONSOLETYPE" = "800x600x16m" ]; then + CONSOLENUM=789 + elif [ "$CONSOLETYPE" = "800x600x64k" ]; then + CONSOLENUM=788 + elif [ "$CONSOLETYPE" = "800x600x32k" ]; then + CONSOLENUM=787 + elif [ "$CONSOLETYPE" = "800x600x256" ]; then + CONSOLENUM=771 + elif [ "$CONSOLETYPE" = "640x480x16m" ]; then + CONSOLENUM=786 + elif [ "$CONSOLETYPE" = "640x480x64k" ]; then + CONSOLENUM=785 + elif [ "$CONSOLETYPE" = "640x480x32k" ]; then + CONSOLENUM=784 + elif [ "$CONSOLETYPE" = "640x480x256" ]; then + CONSOLENUM=769 + fi +fi +} + +# A function to ask for append= parameters. +ask_append() { + dialog --title "OPTIONAL LILO append=\"<kernel parameters>\" LINE" --inputbox \ +"Some systems might require extra parameters to be passed to the kernel. \ +If you needed to pass parameters to the kernel when you booted the Slackware \ +bootdisk, you'll probably want to enter the same ones here. Most \ +systems won't require any extra parameters. If you don't need any, just \ +hit ENTER to continue.\n\ +" 12 72 2> $TMP/reply + RETVAL=$? + return $RETVAL +} + +ask_utf() { + if [ "$(uname -r | cut -f 3 -d .)" -gt "23" ]; then + dialog --defaultno --title "USE UTF-8 TEXT CONSOLE?" --yesno \ +"Beginning with the 2.6.24 kernel, the text consoles default to UTF-8 mode. \ +Unless you are using a UTF-8 locale (\$LANG setting), using the old default \ +of a non-UTF text console is safer until some issues with various console \ +programs are addressed. This option has no effect on the use of UTF-8 with X. \ +\"No\" is the safe choice here." 10 70 + fi +} + +# This function scans for bootable partitions (making some assumptions along +# the way which may or may not be correct, but usually work), and sets up +# LILO in either the superblock, or the MBR. +simplelilo() +{ + use_framebuffer; + + ask_append; + if [ $? = 1 -o $? = 255 ]; then + APPEND="" + fi + APPEND="`cat $TMP/reply`" + + ask_utf; + if [ $? = 1 -o $? = 255 ]; then + UTFVT="vt.default_utf8=0" + else + UTFVT="vt.default_utf8=1" + fi + + if PROBE -l | grep 'OS/2 Boot Manager' 1> /dev/null 2> /dev/null ; then + dialog --title "OS/2 BOOT MANAGER FOUND" --yesno \ + "Your system appears to have Boot Manager, a boot menu system provided \ +with OS/2 and Partition Magic. If you like, we can install a very simple \ +LILO boot block at the start of your Linux partition. Then, you can \ +add the partition to the Boot Manager menu, and you'll be able to use \ +Boot Manager to boot Linux. Would you like to install LILO in a Boot \ +Manager compatible way?" 11 65 + FLAG=$? + if [ ! $FLAG = 0 -a ! $FLAG = 1 ]; then + exit 1 + fi + if [ $FLAG = 0 ]; then # yes, use BM + if [ -r $T_PX/etc/lilo.conf ]; then + mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.orig + fi + cat << EOF > $T_PX/etc/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +# +EOF + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf + fi + cat << EOF >> $T_PX/etc/lilo.conf +boot = $ROOT_DEVICE +#delay = 5 +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +vga = normal +EOF + else + cat << EOF >> $T_PX/etc/lilo.conf +# VESA framebuffer at $CONSOLETYPE +vga = $CONSOLENUM +EOF + fi + cat << EOF >> $T_PX/etc/lilo.conf +# End LILO global section +# Linux root partition section +image = $KERNEL + root = $ROOT_DEVICE + label = Linux + read-only +# End root Linux partition section +EOF + installcolor; + return + fi # Use Boot Manager + fi # Boot Manager detected + # If we got here, we either don't have boot manager or don't want to use it + dialog --title "SELECT LILO DESTINATION" $DEFAULT --menu \ +"LILO can be installed to a variety of places:\n\ +\n\ + 1. The superblock of your root Linux partition. (which could\n\ + be made the bootable partition with Windows or Linux fdisk, or\n\ + booted with a program like OS/2 Boot Manager)\n\ + 2. A formatted floppy disk.\n\ + 3. The Master Boot Record of your first hard drive.\n\ +\n\ +Options 1 and 2 are the safest, but option 1 does require a little\n\ +extra work later (setting the partition bootable with fdisk).\n\ +Which option would you like?" \ + 20 72 3 \ + "Root" "Install to superblock (not for use with XFS)" \ + "Floppy" "Install to a formatted floppy in /dev/fd0 (A:)" \ + "MBR" "Install to Master Boot Record" \ + 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi + TG="`cat $TMP/reply`" + rm -r $TMP/reply + if [ "$TG" = "MBR" ]; then + MBR_TARGET=/dev/sda + echo $MBR_TARGET > $TMP/LILOMBR + cat /proc/partitions | while read LINE ; do + MAJOR="`echo $LINE | cut -f 1 -d ' '`" + MINOR="`echo $LINE | cut -f 2 -d ' '`" + if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives + if [ "$MAJOR" = "3" ]; then + MBR_TARGET=/dev/hda + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then + MBR_TARGET=/dev/hdc + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then + MBR_TARGET=/dev/hde + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then + MBR_TARGET=/dev/hdg + echo $MBR_TARGET > $TMP/LILOMBR + fi + fi + done + LILO_TARGET=`cat $TMP/LILOMBR` + elif [ "$TG" = "Root" ]; then + LILO_TARGET=`echo $ROOT_DEVICE` + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + fi + cat << EOF > $T_PX/etc/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +EOF + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf + fi + cat << EOF >> $T_PX/etc/lilo.conf +boot = $LILO_TARGET + +# Boot BMP Image. +# Bitmap in BMP format: 640x480x8 + bitmap = /boot/slack.bmp +# Menu colors (foreground, background, shadow, highlighted +# foreground, highlighted background, highlighted shadow): + bmp-colors = 255,0,255,0,255,0 +# Location of the option table: location x, location y, number of +# columns, lines per column (max 15), "spill" (this is how many +# entries must be in the first column before the next begins to +# be used. We don't specify it here, as there's just one column. + bmp-table = 60,6,1,16 +# Timer location x, timer location y, foreground color, +# background color, shadow color. + bmp-timer = 65,27,0,255 + +# Standard menu. +# Or, you can comment out the bitmap menu above and +# use a boot message with the standard menu: +#message = /boot/boot_message.txt + +# Wait until the timeout to boot (if commented out, boot the +# first entry immediately): +prompt +# Timeout before the first entry boots. +# This is given in tenths of a second, so 600 for every minute: +timeout = 1200 +# Override dangerous defaults that rewrite the partition table: +change-rules + reset +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +# Normal VGA console +vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + else + cat << EOF >> $T_PX/etc/lilo.conf +# VESA framebuffer console @ $CONSOLETYPE +vga = $CONSOLENUM +# Normal VGA console +# vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + fi +cat << EOF >> $T_PX/etc/lilo.conf +# End LILO global section +EOF + # OK, now let's look for Windows partitions: + DOSP="`PROBE -l | grep "DOS +Win +W95 +FAT12 +FAT16 +HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort`" + DOSP="`echo $DOSP | cut -f 1 -d ' '`" + if [ ! "$DOSP" = "" ]; then + TABLE="`echo $DOSP | cut -b1-8`" + cat << EOF >> $T_PX/etc/lilo.conf +# Windows bootable partition config begins +other = $DOSP + label = Windows + table = $TABLE +# Windows bootable partition config ends +EOF + echo "Windows - (Windows FAT/NTFS partition)" >> $T_PX/boot/boot_message.txt + fi + # Next, we search for Linux partitions: + LNXP="`PROBE -l | grep "Linux$"`" + LNXP="`echo $LNXP | cut -f 1 -d ' ' | sort`" + if [ ! "$LNXP" = "" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +# Linux bootable partition config begins +image = $KERNEL + root = $ROOT_DEVICE + label = Linux + read-only +# Linux bootable partition config ends +EOF + echo "Linux - (Linux partition)" >> $T_PX/boot/boot_message.txt + fi +# DEAD CODE, BUT IN CASE OS/2 MAKES A COMEBACK! +# # OK, hopefully we can remember how to deal with OS/2 :^) +# OS2P="`PROBE -l | grep "HPFS"`" +# OS2P="`echo $OS2P | cut -f 1 -d ' ' | sort`" +# if [ ! "$OS2P" = "" ]; then +# TABLE="`echo $OS2P | cut -b1-8`" +# if [ "$TABLE" = "/dev/hda" ]; then +# cat << EOF >> $T_PX/etc/lilo.conf +## OS/2 bootable partition config begins +#other = $OS2P +# label = OS2 +# table = $TABLE +## OS/2 bootable partition config ends +#EOF +# else +# cat << EOF >> $T_PX/etc/lilo.conf +## OS/2 bootable partition config begins +#other = $OS2P +# label = OS2 +# table = $TABLE +# loader = /boot/os2_d.b +## map-drive = 0x80 +## to = 0x81 +## map-drive = 0x81 +## to = 0x80 +## OS/2 bootable partition config ends +#EOF +# echo "OS2 - OS/2 Warp (HPFS partition)" >> $T_PX/boot/boot_message.txt +# fi +# fi + echo >> $T_PX/boot/boot_message.txt + # Done, now we must install lilo: + installcolor; +} + +checkp_text() +{ + if [ ! -r $1 ]; then + echo + echo "I can't find a device named '$1'!" + echo + echo -n "Are you sure you want to use this device name [y]es, [n]o? " + read use_device; + if [ ! "$use_device" = "y" ]; then + return 1; + fi + return 0; + fi +} + +checkp_dialog() +{ + if [ ! -r $1 ]; then + dialog --title "DEVICE FILE NOT FOUND" --yesno "I can't find a \ +device named '$1'. Are you sure you want to use this device \ +name?" 7 60 + return $?; + fi +} + +installcolor() +{ + dialog --infobox "\nInstalling the Linux Loader..." 5 40 + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + fi + if [ ! "$SUCCESS" = "0" ]; then # edit file to try lba32 mode: + cat $T_PX/etc/lilo.conf | while read line ; do + echo $line + if [ "$line" = "# Start LILO global section" ] ; then + echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS" + fi + done > $T_PX/etc/lilo.conf.lba32 + mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + fi + fi + sleep 1 + if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured + echo >> /etc/lilo-error.$$ +cat << EOF >> /etc/lilo-error.$$ +Sorry, but the attempt to install LILO has returned an error, so LILO \ +has not been correctly installed. You'll have to use a bootdisk \ +to start your \ +machine instead. It should still be possible to get LILO working by \ +editing the /etc/lilo.conf and reinstalling LILO manually. See the \ +LILO man page and documentation in /usr/doc/lilo/ for more help. \ +The error message may be seen above. +EOF + dialog --msgbox "$(cat /etc/lilo-error.$$)" 0 0 + fi +} + +installtext() +{ + echo "Installing the Linux Loader..." + if [ "$T_PX" = "/" ]; then + lilo + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf + SUCCESS=$? + fi + if [ ! "$SUCCESS" = "0" ]; then # try lba32 mode: + cat $T_PX/etc/lilo.conf | while read line ; do + echo $line + if [ "$line" = "# Start LILO global section" ] ; then + echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS" + fi + done > $T_PX/etc/lilo.conf.lba32 + mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /dev/null + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /dev/null + SUCCESS=$? + fi + fi + sleep 1 + if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured + cat << EOF + +LILO INSTALL ERROR # $SUCCESS + +Sorry, but the attempt to install LILO has returned an error, so LILO +has not been correctly installed. You'll have to use a bootdisk to +start your machine instead. It should still be possible to get LILO +working by editing the /etc/lilo.conf and reinstalling LILO manually. +See the LILO man page and documentation in /usr/doc/lilo/ for more +help. + +EOF + fi +} + +# 'probe()' borrowed from LILO QuickInst. +probe() +{ + [ ! -z "`dd if=$1 bs=1 count=1 2>/dev/null | tr '\0' x`" ] + return +} + +# Figure out if we're installing from the hard drive +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +else + if [ "$T_PX" = "" -a ! "$1" = "" ]; then + T_PX=$1 + else + T_PX=/ + fi +fi +HDR="no" # this means the header section of /etc/lilo.conf has not yet + # been configured +LNX="no" # this means no Linux partition has been defined as bootable + # through LILO. Both of these must change to "yes" before LILO will + # install from this script. +# Determine the root partition (such as /dev/hda2) +ROOT_DEVICE=$2 +if [ "$ROOT_DEVICE" = "" ]; then + if [ -r $TMP/SeTrootdev ]; then + ROOT_DEVICE="`cat $TMP/SeTrootdev`" + else + ROOT_DEVICE="`mount | cut -f 1 -d " " | sed -n "1 p"`" + fi +fi +# Figure out where the kernel is: +ARCHTYPE=i386 +if [ -r $T_PX/vmlinuz ]; then + KERNEL=/vmlinuz +elif [ -r $T_PX/boot/vmlinuz ]; then + KERNEL=/boot/vmlinuz +elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/bzImage ]; then + KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/bzImage +elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/zImage ]; then + KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/zImage +else + exit 99 # no kernel? guess you couldn't read. bye bye. +fi + + # If we're installing from the umsdos.gz rootdisk, suggest skipping LILO: + if [ ! "$T_PX" = "/" ]; then + if mount | grep " on /mnt " | grep umsdos 1> /dev/null 2> /dev/null ; then + dialog --title "SKIP LILO CONFIGURATION? (RECOMMENDED)" --yesno "Since \ +you are installing to a FAT partition, it's suggested that you do not \ +configure LILO at this time. (Instead, use your bootdisk. For booting \ +off the hard drive from MS-DOS, you can use Loadlin. You'll find \ +Loadlin on your hard drive in \LINUX\ROOT) Skip LILO configuration \ +(highly recommended)?" 10 70 + if [ $? = 0 ]; then + exit + fi + fi + fi + # OK, now let's see if we should automate things: + dialog --title "INSTALL LILO" --menu "LILO (Linux Loader) is a generic \ +boot loader. There's a simple installation which tries to automatically \ +set up LILO to boot Linux (also Windows if found). For \ +more advanced users, the expert option offers more control over the \ +installation process. Since LILO does not work in all cases (and can \ +damage partitions if incorrectly installed), there's the third (safe) \ +option, which is to skip installing LILO for now. You can always install \ +it later with the 'liloconfig' command. Which option would you like?" \ + 18 67 3 \ + "simple" "Try to install LILO automatically" \ + "expert" "Use expert lilo.conf setup menu" \ + "skip" "Do not install LILO" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi + REPLY="`cat $TMP/reply`" + rm -f $TMP/reply + if [ "$REPLY" = "skip" ]; then + exit + elif [ "$REPLY" = "simple" ]; then + # Do simple LILO setup + simplelilo + exit + fi + # drop through to last option: (use the expert menus) + while [ 0 ]; do + dialog --title "EXPERT LILO INSTALLATION" --menu \ +"This menu directs the creation of the LILO config file, lilo.conf. \ +To install, you make a new LILO configuration file by creating a new header \ +and then adding one or more bootable partitions to the file. Once you've done \ +this, you can select the install option. Alternately, if you already have an \ +/etc/lilo.conf, you may reinstall using that. If you make a mistake, you can \ +always start over by choosing 'Begin'. \ +Which option would you like?" 21 73 8 \ +"Begin" "Start LILO configuration with a new LILO header" \ +"Linux" "Add a Linux partition to the LILO config" \ +"Windows" "Add a Windows FAT or NTFS partition to the LILO config" \ +"Install" "Install LILO" \ +"Recycle" "Reinstall LILO using the existing lilo.conf" \ +"Skip" "Skip LILO installation and exit this menu" \ +"View" "View your current /etc/lilo.conf" \ +"Help" "Read the Linux Loader HELP file" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + REPLY="Skip" + else + REPLY="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$REPLY" = "Begin" ]; then + ask_append; + if [ $? = 1 -o $? = 255 ]; then + APPEND="" + HDR="no" + continue; + else + APPEND="`cat $TMP/reply`" + fi + ask_utf; + if [ $? = 1 -o $? = 255 ]; then + UTFVT="vt.default_utf8=0" + else + UTFVT="vt.default_utf8=1" + fi + use_framebuffer; + dialog --title "SELECT LILO TARGET LOCATION" $DEFAULT --menu "LILO can be installed \ +to a variety of places: \ +the superblock of your root Linux partition (which could then be made the \ +bootable partition with fdisk), a formatted floppy disk, \ +or the master boot record of your first hard drive. If you're using \ +a boot system such as Boot Manager, you should use the "Root" \ +selection. Please pick a target location:" 15 65 3 \ +"Root" "Install to superblock (not for use with XFS)" \ +"Floppy" "Use a formatted floppy disk in the boot drive" \ +"MBR" "Use the Master Boot Record (possibly unsafe)" \ +2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + HDR="no" + continue; + else + LNX="no" + TG="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$TG" = "MBR" ]; then + MBR_TARGET=/dev/sda + echo $MBR_TARGET > $TMP/LILOMBR + cat /proc/partitions | while read LINE ; do + MAJOR="`echo $LINE | cut -f 1 -d ' '`" + MINOR="`echo $LINE | cut -f 2 -d ' '`" + if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives + if [ "$MAJOR" = "3" ]; then + MBR_TARGET=/dev/hda + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then + MBR_TARGET=/dev/hdc + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then + MBR_TARGET=/dev/hde + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then + MBR_TARGET=/dev/hdg + echo $MBR_TARGET > $TMP/LILOMBR + fi + fi + done + LILO_TARGET=`cat $TMP/LILOMBR` + dialog --title "CONFIRM LOCATION TO INSTALL LILO" --inputbox \ +"The auto-detected location to install the LILO boot block is shown below. \ +If you need to make any changes, you can make them below. Otherwise, hit \ +ENTER to accept the target location shown." 11 60 $LILO_TARGET 2> $TMP/reply + if [ $? = 0 ]; then + LILO_TARGET="`cat $TMP/reply`" + fi + rm -f $TMP/reply + elif [ "$TG" = "Root" ]; then + LILO_TARGET=`echo $ROOT_DEVICE` + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + else + HDR="no" + continue; + fi + dialog --title "CHOOSE LILO TIMEOUT" --menu "At boot time, how long would \ +you like LILO to wait for you to select an operating system? If you \ +let LILO time out, it will boot the first OS in the configuration file by \ +default." 13 74 4 \ +"None" "Don't wait at all - boot straight into the first OS" \ +"5" "5 seconds" \ +"30" "30 seconds" \ +"Forever" "Present a prompt and wait until a choice is made" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + HDR="no" + continue; + else + TIMEOUT="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$TIMEOUT" = "None" ]; then + PROMPT="#prompt" + TIMEOUT="#timeout = 5" + elif [ "$TIMEOUT" = "5" ]; then + PROMPT="prompt" + TIMEOUT="timeout = 50" + elif [ "$TIMEOUT" = "30" ]; then + PROMPT="prompt" + TIMEOUT="timeout = 300" + elif [ "$TIMEOUT" = "Forever" ]; then + PROMPT="prompt" + TIMEOUT="#timeout = 300" + else + HDR="no" + continue; + fi + cat << EOF > $TMP/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +boot = $LILO_TARGET +#compact # faster, but won't work on all systems. +EOF + # Boot splash + if [ "$PROMPT" = "prompt" ]; then + if ask_boot_splash ; then + boot_bmp >> $TMP/lilo.conf + cat << EOF >> $TMP/lilo.conf +# Standard menu. +# Or, you can comment out the bitmap menu above and +# use a boot message with the standard menu: +#message = /boot/boot_message.txt + +EOF + fi + else + cat << EOF >> $TMP/lilo.conf +# Standard menu. +message = /boot/boot_message.txt + +EOF + fi + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $TMP/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $TMP/lilo.conf + fi + cat << EOF >> $TMP/lilo.conf +$PROMPT +$TIMEOUT +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $TMP/lilo.conf +# Normal VGA console +vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + else + cat << EOF >> $TMP/lilo.conf +# VESA framebuffer console @ $CONSOLETYPE +vga = $CONSOLENUM +# Normal VGA console +# vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + fi + cat << EOF >> $TMP/lilo.conf +# ramdisk = 0 # paranoia setting +# End LILO global section +EOF + HDR="yes" + elif [ "$REPLY" = "Linux" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are your Linux partitions:" > $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep "Linux$" | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT LINUX PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 21 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + LINUX_PART="`cat $TMP/reply`" + checkp_dialog $LINUX_PART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'Linux' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + cat << EOF >> $TMP/lilo.conf +# Linux bootable partition config begins +image = $KERNEL + root = $LINUX_PART + label = $LABEL + read-only # Partitions should be mounted read-only for checking +# Linux bootable partition config ends +EOF + else + dialog --title "CAN'T ADD LINUX PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + # MORE OS/2 DEAD CODE... DOESN'T HURT. + # THIS ITEM HAS LONG BEEN REMOVED FROM THE MENU... + elif [ "$REPLY" = "OS/2" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are possibly OS/2 partitions. They will be treated" > $TMP/tmpmsg + echo "as such if you install them using this menu." >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep DOS | sort >> $TMP/tmpmsg + PROBE -l | grep HPFS | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT OS/2 PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + OS_2_PART="`cat $TMP/reply`" + checkp_dialog $OS_2_PART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'OS/2' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + TABLE="`echo $OS_2_PART | cut -b1-8`" + if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then + cat << EOF >> $TMP/lilo.conf +# OS/2 bootable partition config begins +other = $OS_2_PART + label = $LABEL + table = $TABLE +# OS/2 bootable partition config ends +EOF + else + cat << EOF >> $TMP/lilo.conf +# OS/2 bootable partition config begins +other = $OS_2_PART + label = $LABEL + table = $TABLE + loader = /boot/os2_d.b +# map-drive = 0x80 +# to = 0x81 +# map-drive = 0x81 +# to = 0x80 +# OS/2 bootable partition config ends +EOF + fi + else + dialog --title "CAN'T ADD OS/2 PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + elif [ "$REPLY" = "Windows" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are possibly Windows or DOS partitions. They will be treated" > $TMP/tmpmsg + echo "as such if you install them using this menu." >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep "DOS +Win +W95 +FAT12 +FAT16 +HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT WINDOWS PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + DOSPART="`cat $TMP/reply`" + checkp_dialog $DOSPART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'Windows' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + unset USE_LOADER + TABLE="`echo $DOSPART | cut -b1-8`" + if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then + USE_LOADER="no" + fi + if [ "`echo $TABLE | cut -b6-8`" = "sda" ]; then + if probe /dev/hda; then + USE_LOADER="yes" + else + USE_LOADER="no" + fi + fi + if [ "$USE_LOADER" = "no" ]; then + cat << EOF >> $TMP/lilo.conf +# Windows bootable partition config begins +other = $DOSPART + label = $LABEL + table = $TABLE +# Windows bootable partition config ends +EOF + else + cat << EOF >> $TMP/lilo.conf +# Windows bootable partition config begins +other = $DOSPART + label = $LABEL +# map-drive = 0x80 +# to = 0x81 +# map-drive = 0x81 +# to = 0x80 + table = $TABLE +# Windows bootable partition config ends +EOF + fi + else + dialog --title "CAN'T ADD WINDOWS PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + elif [ "$REPLY" = "Install" -o "$REPLY" = "Recycle" ]; then + if [ "$REPLY" = "Recycle" -a -r $T_PX/etc/lilo.conf ]; then + LNX="yes" + fi + if [ "$LNX" = "no" ]; then + dialog --title "CAN'T INSTALL LILO" --msgbox "LILO could not be \ +installed. If you have not created a LILO configuration file by defining \ +a new header and adding at least one bootable partition to it, you must do \ +so before installing LILO. If you were attempting to use an existing LILO \ +configuration file, it could not be found. Try making a new one." 9 70 + continue + else + if [ "$REPLY" = "Install" ]; then + if [ -r $TMP/lilo.conf ]; then + if [ -r $T_PX/etc/lilo.conf ]; then + mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.bak + fi + cp $TMP/lilo.conf $T_PX/etc/lilo.conf + chmod 644 $T_PX/etc/lilo.conf + fi + fi + installcolor; + fi + rm -f $TMP/tmpmsg $TMP/reply + break + elif [ "$REPLY" = "Skip" ]; then + rm -f $TMP/tmpmsg $TMP/reply + break + elif [ "$REPLY" = "View" ]; then + if [ -r $TMP/lilo.conf ]; then + dialog --title "YOUR NEW /etc/lilo.conf" --textbox "$TMP/lilo.conf" 22 70 + else + if [ -r /mnt/etc/lilo.conf ]; then + dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/mnt/etc/lilo.conf" 22 70 + elif [ "$T_PX" = "/" -a -r /etc/lilo.conf ]; then + dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/etc/lilo.conf" 22 70 + else + dialog --title "NO CONFIG FILE FOUND" --msgbox "Sorry, but you don't \ +have a LILO configuration file that can be viewed." 6 60 + fi + fi + elif [ "$REPLY" = "Help" ]; then + dialog --title "LILO INSTALLATION HELP" --textbox "$T_PX/var/log/setup/text.lilohelp" 22 68 + fi + done + diff --git a/source/a/lilo/setup.liloconfig b/source/a/lilo/setup.liloconfig new file mode 100644 index 00000000..0b979854 --- /dev/null +++ b/source/a/lilo/setup.liloconfig @@ -0,0 +1,3 @@ +#!/bin/sh +#BLURB="Set up LILO to boot Linux (and other OSes) from your hard drive" +sh sbin/liloconfig $* diff --git a/source/a/lilo/slack-desc b/source/a/lilo/slack-desc new file mode 100644 index 00000000..db5daf65 --- /dev/null +++ b/source/a/lilo/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------------------------------------------------------| +lilo: lilo (Linux Loader) +lilo: +lilo: Generic Boot Loader for Linux ('LInux LOader') by Werner Almesberger. +lilo: LILO boots Linux from your hard drive. It can also boot other +lilo: operating systems such as MS-DOS and OS/2, and can even boot DOS from +lilo: the second hard drive. LILO comes with utilities and documentation +lilo: that make it easier to install, such as 'liloconfig' and 'QuickStart'. +lilo: NOTE: Installing boot loaders is inherently dangerous. Be sure to have +lilo: some means to boot your system from a different media if you install +lilo: LILO on your hard disk. +lilo: diff --git a/source/a/lilo/slack.bmp b/source/a/lilo/slack.bmp Binary files differnew file mode 100644 index 00000000..3dd5652a --- /dev/null +++ b/source/a/lilo/slack.bmp diff --git a/source/a/lilo/slack.dat b/source/a/lilo/slack.dat new file mode 100644 index 00000000..73c557e6 --- /dev/null +++ b/source/a/lilo/slack.dat @@ -0,0 +1,7 @@ +# +# generated companion file to: +# +bitmap = slack.bmp +bmp-table = 60,6;1,16,16,4 +bmp-colors = 255,0,;0,255, +bmp-timer = 65,28;255,0, diff --git a/source/a/lilo/slack64.bmp b/source/a/lilo/slack64.bmp Binary files differnew file mode 100644 index 00000000..464e4683 --- /dev/null +++ b/source/a/lilo/slack64.bmp diff --git a/source/a/lilo/text.lilohelp b/source/a/lilo/text.lilohelp new file mode 100644 index 00000000..9f06bf78 --- /dev/null +++ b/source/a/lilo/text.lilohelp @@ -0,0 +1,100 @@ + +Slackware LILO Installation HELP file + +WARNING: As they say in the LILO docs, installing boot +loaders is inherently dangerous. Be careful out there! + +These are the options you can use at the Slackware LILO +install menu: + +1. Start LILO configuration with a new LILO header. + + This choice allows you to start a new configuration + file, /etc/lilo.conf, with no OS's entered into it + (yet). + + You'll first be asked if you want to use an optional + append="...." line. If you didn't need to use extra + parameters at the bootkernel prompt, then you can + probably just hit ENTER here. + + You will be asked where you want to install LILO. This + can be your Master Boot Record, your root partition's + superblock (for OS/2's Boot Manager), or to a + formatted floppy disk. + + Next, you'll be asked if you want a delay before + booting the first OS in your lilo.conf file. This delay + allows you to hit left-shift and boot any OS in the + lilo.conf file by typing in the label you've given it. + + Once you've started a new lilo.conf, you must add at + least one OS to it before you can install LILO. + +2. Menu choices to add Linux, OS/2, and DOS to the lilo.conf. + + These all pretty much work the same way. You'll be asked + which partition you want to make bootable (answer + /dev/hda1 or whatever partition you wish to use), and + you'll also be asked to assign a label to the partition. + The label can be any short word such as "Linux" or "OS/2" + that you'll type in later to boot that partition. The boot + prompt is not case-sensitive, so the user can type LINUX or + os/2 later on and it will match the labels Linux and OS/2. + +3. Install LILO + + Once you've looked at your new config file and are + satisfied with the way it looks, pick this choice to + install LILO and leave the LILO installation menu. + + +Other options: + + -- Recycle (Reinstall) using your original /etc/lilo.conf. + + If you already have an /etc/lilo.conf, and you just need to + refresh lilo then you don't need to reconstruct your + lilo.conf. Just use this menu choice to reinstall LILO + using the existing /etc/lilo.conf. + + + -- View your current /etc/lilo.conf + + If you haven't begun building a new lilo.conf, this choice + will let you take a look at the existing one in /etc on your + root Linux partition. + + If you have begun constructing a new lilo.conf, this option + will let you view the progress on that. + + + -- Skip LILO installation and exit this menu + + This option skips LILO installation. Use this if you don't + want to install LILO, or if you've already installed it and + don't need to reinstall. You have to reinstall LILO whenever + you change your Linux kernel. + + -- Help - Read the Linux Loader HELP file + + I hope you found it helpful! :^) + + +----------- + +Other LILO information: + + LILO on the Master Boot Record can be removed easily. + MS-DOS's fdisk has a /MBR option that restores the master + boot record. You can actually restore your original boot + sector from the copy LILO makes in /boot, as well. This is + the best way to go about it. See the LILO docs for more + information. There is also a '-u' flag to LILO that restores + the boot sector from the backup copy. Again, see the LILO + docs for detailed info. + +Good luck! + +--- end of LILO help + diff --git a/source/a/logrotate/logrotate.SlackBuild b/source/a/logrotate/logrotate.SlackBuild new file mode 100755 index 00000000..6b6284b7 --- /dev/null +++ b/source/a/logrotate/logrotate.SlackBuild @@ -0,0 +1,71 @@ +#!/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.7.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-logrotate + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_logrotate.tar.gz + +cd $TMP +rm -rf logrotate-$VERSION +tar xzvf $CWD/logrotate-$VERSION.tar.gz +cd logrotate-$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/logrotate.slackware.diff.gz | patch -p1 +make clean +make || exit 1 +strip logrotate +cat logrotate > $PKG/usr/sbin/logrotate +cat logrotate.8 | gzip -9c > $PKG/usr/man/man8/logrotate.8.gz +mkdir -p $PKG/usr/doc/logrotate-$VERSION +cp -a \ + CHANGES COPYING READM* \ + $PKG/usr/doc/logrotate-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/logrotate-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/logrotate-$VERSION + rm -rf $PKG +fi diff --git a/source/a/logrotate/logrotate.slackware.diff b/source/a/logrotate/logrotate.slackware.diff new file mode 100644 index 00000000..77b8aad6 --- /dev/null +++ b/source/a/logrotate/logrotate.slackware.diff @@ -0,0 +1,49 @@ +diff -u -r --new-file logrotate-3.7.4.orig/config.c logrotate-3.7.4/config.c +--- logrotate-3.7.4.orig/config.c 2006-07-24 07:08:04.000000000 -0500 ++++ logrotate-3.7.4/config.c 2006-09-21 01:07:50.000000000 -0500 +@@ -29,7 +29,7 @@ + #define isblank(c) ( (c) == ' ' || (c) == '\t' ) ? 1 : 0 + #endif + +-static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v", ++static char *defTabooExts[] = { ".new", ".rpmsave", ".rpmorig", "~", ",v", + ".rpmnew", ".swp" + }; + static int defTabooCount = sizeof(defTabooExts) / sizeof(char *); +diff -u -r --new-file logrotate-3.7.4.orig/config.h logrotate-3.7.4/config.h +--- logrotate-3.7.4.orig/config.h 2005-11-12 13:07:56.000000000 -0600 ++++ logrotate-3.7.4/config.h 2006-09-21 01:08:02.000000000 -0500 +@@ -36,5 +36,5 @@ + #endif + + #ifndef STATEFILE +-#define STATEFILE "/var/lib/logrotate.status" ++#define STATEFILE "/var/lib/logrotate/status" + #endif +diff -u -r --new-file logrotate-3.7.4.orig/logrotate.8 logrotate-3.7.4/logrotate.8 +--- logrotate-3.7.4.orig/logrotate.8 2006-05-17 09:46:51.000000000 -0500 ++++ logrotate-3.7.4/logrotate.8 2006-09-21 01:07:14.000000000 -0500 +@@ -1,4 +1,4 @@ +-.TH LOGROTATE 8 "Wed Nov 5 2002" "Red Hat Linux" "System Administrator's Manual" ++.TH LOGROTATE 8 "Wed Nov 5 2002" "Linux" "System Administrator's Manual" + .SH NAME + logrotate \- rotates, compresses, and mails system logs + .SH SYNOPSIS +@@ -410,7 +410,7 @@ + for information on the taboo extensions). If a + precedes the list of + extensions, the current taboo extension list is augmented, otherwise it + is replaced. At startup, the taboo extension list +-contains .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~. ++contains .new, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~. + + .TP + \fBweekly\fR +@@ -427,7 +427,7 @@ + .SH FILES + .PD 0 + .TP 27 +-\fI/var/lib/logrotate.status\fR ++\fI/var/lib/logrotate/status\fR + Default state file. + .TP 27 + \fI/etc/logrotate.conf\fR diff --git a/source/a/logrotate/slack-desc b/source/a/logrotate/slack-desc new file mode 100644 index 00000000..2a1c76a5 --- /dev/null +++ b/source/a/logrotate/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------------------------------------------------------| +logrotate: logrotate (system log rotation tool) +logrotate: +logrotate: The logrotate utility is designed to simplify the administration +logrotate: of log files on a system which generates a lot of log files. +logrotate: Logrotate allows for the automatic rotation compression, removal +logrotate: and mailing of log files. Logrotate can be set to handle a log +logrotate: file daily, weekly, monthly or when the log file gets to a certain +logrotate: size. Normally, logrotate runs as a daily cron job. +logrotate: +logrotate: +logrotate: diff --git a/source/a/lvm2/doinst.sh b/source/a/lvm2/doinst.sh new file mode 100644 index 00000000..261294a9 --- /dev/null +++ b/source/a/lvm2/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/lvm/lvm.conf.new diff --git a/source/a/lvm2/lvm2.SlackBuild b/source/a/lvm2/lvm2.SlackBuild new file mode 100755 index 00000000..f0f630d8 --- /dev/null +++ b/source/a/lvm2/lvm2.SlackBuild @@ -0,0 +1,103 @@ +#!/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.02.40 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lvm2 + +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 LVM2.$VERSION +tar xvf $CWD/LVM2.$VERSION.tar.bz2 +cd LVM2.$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 \ + --disable-readline \ + --enable-cmdlib \ + --enable-dmeventd \ + --libdir=/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static_link \ + --with-lvm1=internal + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +mv $PKG/etc/lvm/lvm.conf $PKG/etc/lvm/lvm.conf.new + +( 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/usr/doc/LVM2.$VERSION +cp -a \ + COPYING* INSTALL README* VERSION WHATS_NEW \ + $PKG/usr/doc/LVM2.$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 +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/lvm2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lvm2/slack-desc b/source/a/lvm2/slack-desc new file mode 100644 index 00000000..72dc87ae --- /dev/null +++ b/source/a/lvm2/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------------------------------------------------------| +lvm2: lvm2 (Logical Volume Manager version 2) +lvm2: +lvm2: Heinz Mauelshagen's LVM (Logical Volume Manager) for Linux. +lvm2: LVM adds an additional layer between the physical peripherals and the +lvm2: low-level I/O interface to get a logical view of disks. This allows +lvm2: the concatenation of several disks (so-called physical volumes or PVs) +lvm2: to form a storage pool (so-called Volume Group or VG) with allocation +lvm2: units called physical extents (called PE). With LVM, you can extend, +lvm2: resize, or relocate storage dynamically. +lvm2: +lvm2: diff --git a/source/a/mdadm/doinst.sh b/source/a/mdadm/doinst.sh new file mode 100644 index 00000000..a6a71c73 --- /dev/null +++ b/source/a/mdadm/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/mdadm.conf.new diff --git a/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign new file mode 100644 index 00000000..36b61480 --- /dev/null +++ b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.7 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBHGC8JyGugalF9Dw4RArGIAJ9W38h+Mb/c62Ia6kn+TiDfd8ZxJQCfXEY8 +FdGihwdJnxz8cK3+VC4rmZs= +=+YBi +-----END PGP SIGNATURE----- diff --git a/source/a/mdadm/mdadm.SlackBuild b/source/a/mdadm/mdadm.SlackBuild new file mode 100755 index 00000000..45cc83b3 --- /dev/null +++ b/source/a/mdadm/mdadm.SlackBuild @@ -0,0 +1,73 @@ +#!/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.6.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mdadm + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mdadm-$VERSION +tar xjvf $CWD/mdadm-$VERSION.tar.bz2 +cd mdadm-$VERSION + +# Build this static... it's small enough. +zcat $CWD/mdadm.static.small.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 clean || exit 1 +make || exit 1 +#make mdadm.static +make install DESTDIR=$PKG || exit 1 +#cat mdadm.static > $PKG/sbin/mdadm +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share +mkdir -p $PKG/etc +cat mdadm.conf-example > $PKG/etc/mdadm.conf.new +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/mdadm-$VERSION +cp -a \ + ANNOUNCE-$VERSION COPYING* ChangeLog INSTALL TODO \ + $PKG/usr/doc/mdadm-$VERSION +( 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/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/mdadm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mdadm/mdadm.static.small.diff b/source/a/mdadm/mdadm.static.small.diff new file mode 100644 index 00000000..6be02fda --- /dev/null +++ b/source/a/mdadm/mdadm.static.small.diff @@ -0,0 +1,20 @@ +--- ./Makefile.orig 2006-06-15 19:21:52.000000000 -0500 ++++ ./Makefile 2006-06-25 00:28:24.000000000 -0500 +@@ -39,7 +39,7 @@ + + CC = $(CROSS_COMPILE)gcc + CXFLAGS = -ggdb +-CWFLAGS = -Wall -Werror -Wstrict-prototypes ++CWFLAGS = -Wall -Werror -Wstrict-prototypes -Os + + ifdef DEBIAN + CPPFLAGS= -DDEBIAN +@@ -55,7 +55,7 @@ + CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) + + # If you want a static binary, you might uncomment these +-# LDFLAGS = -static ++LDFLAGS = -static + # STRIP = -s + + INSTALL = /usr/bin/install diff --git a/source/a/mdadm/slack-desc b/source/a/mdadm/slack-desc new file mode 100644 index 00000000..984da7f3 --- /dev/null +++ b/source/a/mdadm/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------------------------------------------------------| +mdadm: mdadm (manage RAID arrays) +mdadm: +mdadm: mdadm is a utility program for creating, managing, and monitoring +mdadm: Linux MD (Software RAID) devices. Unlike the older raidtools +mdadm: package, mdadm is a single program (which should make it easier to +mdadm: use). +mdadm: +mdadm: mdadm was written by Neil Brown. Development of mdadm is sponsored +mdadm: by CSE@UNSW (The School of Computer Science and Engineering at +mdadm: The University of New South Wales). +mdadm: diff --git a/source/a/minicom/config.sub-x86_64.diff b/source/a/minicom/config.sub-x86_64.diff new file mode 100644 index 00000000..fa89bb3c --- /dev/null +++ b/source/a/minicom/config.sub-x86_64.diff @@ -0,0 +1,20 @@ +--- ./config.sub.orig 1998-04-26 17:20:59.000000000 +0400 ++++ ./config.sub 2007-08-30 09:48:46.000000000 +0400 +@@ -129,7 +129,7 @@ + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ ++ tahoe | i[345]86 | x86_64 | i860 | m68k | m68000 | m88k | ns32k | arm \ + | arme[lb] | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ +@@ -144,7 +144,7 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ ++ vax-* | tahoe-* | i[345]86-* | x86_64-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ diff --git a/source/a/minicom/doinst.sh b/source/a/minicom/doinst.sh new file mode 100644 index 00000000..f667412e --- /dev/null +++ b/source/a/minicom/doinst.sh @@ -0,0 +1,15 @@ +#!/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/minicom.users.new +config etc/minirc.dfl.new +rm -f etc/minicom.users.new etc/minirc.dfl.new diff --git a/source/a/minicom/lrzsz_0.12.21-4.diff b/source/a/minicom/lrzsz_0.12.21-4.diff new file mode 100644 index 00000000..01c72157 --- /dev/null +++ b/source/a/minicom/lrzsz_0.12.21-4.diff @@ -0,0 +1,3019 @@ +--- lrzsz-0.12.21.orig/Makefile.in ++++ lrzsz-0.12.21/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -106,13 +105,13 @@ + + DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ + INSTALL Makefile.am Makefile.in NEWS Specfile.in THANKS TODO acconfig.h \ +-acinclude.m4 aclocal.m4 config.guess config.h.in configure configure.in \ +-install-sh missing mkinstalldirs systype.in ++acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \ ++configure.in install-sh missing mkinstalldirs systype.in + + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: +@@ -298,7 +297,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -340,7 +339,7 @@ + all-am: Makefile $(SCRIPTS) config.h + all-redirect: all-recursive-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: installdirs-recursive + installdirs-am: + +--- lrzsz-0.12.21.orig/aclocal.m4 ++++ lrzsz-0.12.21/aclocal.m4 +@@ -1,4 +1,4 @@ +-dnl aclocal.m4 generated automatically by aclocal 1.4a ++dnl aclocal.m4 generated automatically by aclocal 1.4 + + dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation +@@ -117,8 +117,6 @@ + + AC_DEFUN(AM_INIT_AUTOMAKE, + [AC_REQUIRE([AC_PROG_INSTALL]) +-dnl We require 2.13 because we rely on SHELL being computed by configure. +-AC_PREREQ([2.13]) + PACKAGE=[$1] + AC_SUBST(PACKAGE) + VERSION=[$2] +--- lrzsz-0.12.21.orig/configure ++++ lrzsz-0.12.21/configure +@@ -703,7 +703,6 @@ + fi + + +- + PACKAGE=lrzsz + + VERSION=0.12.21rc +@@ -723,7 +722,7 @@ + + missing_dir=`cd $ac_aux_dir && pwd` + echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +-echo "configure:727: checking for working aclocal" >&5 ++echo "configure:726: checking for working aclocal" >&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. +@@ -736,7 +735,7 @@ + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +-echo "configure:740: checking for working autoconf" >&5 ++echo "configure:739: 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. +@@ -749,7 +748,7 @@ + fi + + echo $ac_n "checking for working automake""... $ac_c" 1>&6 +-echo "configure:753: checking for working automake" >&5 ++echo "configure:752: checking for working automake" >&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. +@@ -762,7 +761,7 @@ + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +-echo "configure:766: checking for working autoheader" >&5 ++echo "configure:765: 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. +@@ -775,7 +774,7 @@ + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +-echo "configure:779: checking for working makeinfo" >&5 ++echo "configure:778: 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. +@@ -926,7 +925,7 @@ + # 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:930: checking for $ac_word" >&5 ++echo "configure:929: 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 +@@ -956,7 +955,7 @@ + # 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:960: checking for $ac_word" >&5 ++echo "configure:959: 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 +@@ -1007,7 +1006,7 @@ + # 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:1011: checking for $ac_word" >&5 ++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 +@@ -1039,7 +1038,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1043: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1042: 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. +@@ -1050,12 +1049,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1054 "configure" ++#line 1053 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1058: \"$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 +@@ -1081,12 +1080,12 @@ + { 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:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1084: 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:1090: checking whether we are using GNU C" >&5 ++echo "configure:1089: 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 +@@ -1095,7 +1094,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1098: \"$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 +@@ -1114,7 +1113,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1118: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1117: 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 +@@ -1146,7 +1145,7 @@ + fi + + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:1150: checking how to run the C preprocessor" >&5 ++echo "configure:1149: checking how to run the C preprocessor" >&5 + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= +@@ -1161,13 +1160,13 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext <<EOF +-#line 1165 "configure" ++#line 1164 "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:1171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1170: \"$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 + : +@@ -1178,13 +1177,13 @@ + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext <<EOF +-#line 1182 "configure" ++#line 1181 "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:1188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1187: \"$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 + : +@@ -1195,13 +1194,13 @@ + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext <<EOF +-#line 1199 "configure" ++#line 1198 "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:1205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1204: \"$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 + : +@@ -1235,13 +1234,13 @@ + fi + if test $ac_cv_prog_gcc = yes; then + echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 +-echo "configure:1239: checking whether ${CC-cc} needs -traditional" >&5 ++echo "configure:1238: checking whether ${CC-cc} needs -traditional" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_pattern="Autoconf.*'x'" + cat > conftest.$ac_ext <<EOF +-#line 1245 "configure" ++#line 1244 "configure" + #include "confdefs.h" + #include <sgtty.h> + Autoconf TIOCGETP +@@ -1259,7 +1258,7 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat > conftest.$ac_ext <<EOF +-#line 1263 "configure" ++#line 1262 "configure" + #include "confdefs.h" + #include <termio.h> + Autoconf TCGETA +@@ -1283,7 +1282,7 @@ + # 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:1287: checking for $ac_word" >&5 ++echo "configure:1286: 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 +@@ -1311,7 +1310,7 @@ + fi + + echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +-echo "configure:1315: checking for POSIXized ISC" >&5 ++echo "configure:1314: checking for POSIXized ISC" >&5 + if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 + then +@@ -1332,9 +1331,9 @@ + fi + + echo $ac_n "checking for AIX""... $ac_c" 1>&6 +-echo "configure:1336: checking for AIX" >&5 ++echo "configure:1335: checking for AIX" >&5 + cat > conftest.$ac_ext <<EOF +-#line 1338 "configure" ++#line 1337 "configure" + #include "confdefs.h" + #ifdef _AIX + yes +@@ -1357,17 +1356,17 @@ + + ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 +-echo "configure:1361: checking for minix/config.h" >&5 ++echo "configure:1360: checking for minix/config.h" >&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 1366 "configure" ++#line 1365 "configure" + #include "confdefs.h" + #include <minix/config.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1370: \"$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* +@@ -1408,7 +1407,7 @@ + + + echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 +-echo "configure:1412: checking for ${CC-cc} option to accept ANSI C" >&5 ++echo "configure:1411: checking for ${CC-cc} option to accept ANSI C" >&5 + if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1424,7 +1423,7 @@ + do + CC="$ac_save_CC $ac_arg" + cat > conftest.$ac_ext <<EOF +-#line 1428 "configure" ++#line 1427 "configure" + #include "confdefs.h" + #include <stdarg.h> + #include <stdio.h> +@@ -1461,7 +1460,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + am_cv_prog_cc_stdc="$ac_arg"; break + else +@@ -1487,7 +1486,7 @@ + + + echo $ac_n "checking for function prototypes""... $ac_c" 1>&6 +-echo "configure:1491: checking for function prototypes" >&5 ++echo "configure:1490: checking for function prototypes" >&5 + if test "$am_cv_prog_cc_stdc" != no; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +@@ -1500,12 +1499,12 @@ + U=_ ANSI2KNR=./ansi2knr + # Ensure some checks needed by ansi2knr itself. + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:1504: checking for ANSI C header files" >&5 ++echo "configure:1503: 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 1509 "configure" ++#line 1508 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -1513,7 +1512,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1516: \"$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* +@@ -1530,7 +1529,7 @@ + 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 1534 "configure" ++#line 1533 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -1548,7 +1547,7 @@ + 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 1552 "configure" ++#line 1551 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -1569,7 +1568,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 1573 "configure" ++#line 1572 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -1580,7 +1579,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:1584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:1583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -1607,17 +1606,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:1611: checking for $ac_hdr" >&5 ++echo "configure:1610: 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 1616 "configure" ++#line 1615 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1620: \"$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* +@@ -1646,12 +1645,12 @@ + fi + + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:1650: checking for working const" >&5 ++echo "configure:1649: 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 1655 "configure" ++#line 1654 "configure" + #include "confdefs.h" + + int main() { +@@ -1700,7 +1699,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -1721,21 +1720,21 @@ + fi + + echo $ac_n "checking for inline""... $ac_c" 1>&6 +-echo "configure:1725: checking for inline" >&5 ++echo "configure:1724: checking for inline" >&5 + if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <<EOF +-#line 1732 "configure" ++#line 1731 "configure" + #include "confdefs.h" + + int main() { + } $ac_kw foo() { + ; return 0; } + EOF +-if { (eval echo configure:1739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break + else +@@ -1786,7 +1785,7 @@ + esac + + echo $ac_n "checking for syslog in -lsocket""... $ac_c" 1>&6 +-echo "configure:1790: checking for syslog in -lsocket" >&5 ++echo "configure:1789: checking for syslog in -lsocket" >&5 + ac_lib_var=`echo socket'_'syslog | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1794,7 +1793,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lsocket $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1798 "configure" ++#line 1797 "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 +@@ -1805,7 +1804,7 @@ + syslog() + ; return 0; } + EOF +-if { (eval echo configure:1809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1808: \"$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 +@@ -1833,7 +1832,7 @@ + fi + + echo $ac_n "checking for syslog in -lbe""... $ac_c" 1>&6 +-echo "configure:1837: checking for syslog in -lbe" >&5 ++echo "configure:1836: checking for syslog in -lbe" >&5 + ac_lib_var=`echo be'_'syslog | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1841,7 +1840,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lbe $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1845 "configure" ++#line 1844 "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 +@@ -1852,7 +1851,7 @@ + syslog() + ; return 0; } + EOF +-if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1855: \"$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 +@@ -1880,7 +1879,7 @@ + fi + + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +-echo "configure:1884: checking for gethostbyname in -lnsl" >&5 ++echo "configure:1883: checking for gethostbyname in -lnsl" >&5 + ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1888,7 +1887,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lnsl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1892 "configure" ++#line 1891 "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 +@@ -1899,7 +1898,7 @@ + gethostbyname() + ; return 0; } + EOF +-if { (eval echo configure:1903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1902: \"$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 +@@ -1928,12 +1927,12 @@ + + + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:1932: checking for ANSI C header files" >&5 ++echo "configure:1931: 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 1937 "configure" ++#line 1936 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -1941,7 +1940,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1944: \"$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* +@@ -1958,7 +1957,7 @@ + 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 1962 "configure" ++#line 1961 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -1976,7 +1975,7 @@ + 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 1980 "configure" ++#line 1979 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -1997,7 +1996,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 2001 "configure" ++#line 2000 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -2008,7 +2007,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:2012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -2035,17 +2034,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2039: checking for $ac_hdr" >&5 ++echo "configure:2038: 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 2044 "configure" ++#line 2043 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2048: \"$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* +@@ -2076,17 +2075,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2080: checking for $ac_hdr" >&5 ++echo "configure:2079: 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 2085 "configure" ++#line 2084 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2089: \"$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* +@@ -2116,17 +2115,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2120: checking for $ac_hdr" >&5 ++echo "configure:2119: 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 2125 "configure" ++#line 2124 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2129: \"$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* +@@ -2156,17 +2155,17 @@ + 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 ++echo "configure:2159: 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" ++#line 2164 "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; } ++{ (eval echo configure:2169: \"$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* +@@ -2196,17 +2195,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2200: checking for $ac_hdr" >&5 ++echo "configure:2199: 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 2205 "configure" ++#line 2204 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2209: \"$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* +@@ -2234,12 +2233,12 @@ + + + echo $ac_n "checking for size_t""... $ac_c" 1>&6 +-echo "configure:2238: checking for size_t" >&5 ++echo "configure:2237: 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 2243 "configure" ++#line 2242 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2267,12 +2266,12 @@ + fi + + echo $ac_n "checking for mode_t""... $ac_c" 1>&6 +-echo "configure:2271: checking for mode_t" >&5 ++echo "configure:2270: checking for mode_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2276 "configure" ++#line 2275 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2300,12 +2299,12 @@ + fi + + echo $ac_n "checking for off_t""... $ac_c" 1>&6 +-echo "configure:2304: checking for off_t" >&5 ++echo "configure:2303: checking for off_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2309 "configure" ++#line 2308 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2334,12 +2333,12 @@ + + + echo $ac_n "checking for speed_t""... $ac_c" 1>&6 +-echo "configure:2338: checking for speed_t" >&5 ++echo "configure:2337: checking for speed_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_speed_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2343 "configure" ++#line 2342 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2389,12 +2388,12 @@ + fi + + echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 +-echo "configure:2393: checking for st_rdev in struct stat" >&5 ++echo "configure:2392: checking for st_rdev in struct stat" >&5 + if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2398 "configure" ++#line 2397 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/stat.h> +@@ -2402,7 +2401,7 @@ + struct stat s; s.st_rdev; + ; return 0; } + EOF +-if { (eval echo configure:2406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_st_rdev=yes + else +@@ -2423,12 +2422,12 @@ + fi + + echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +-echo "configure:2427: checking whether time.h and sys/time.h may both be included" >&5 ++echo "configure:2426: 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 2432 "configure" ++#line 2431 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/time.h> +@@ -2437,7 +2436,7 @@ + struct tm *tp; + ; return 0; } + EOF +-if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes + else +@@ -2459,12 +2458,12 @@ + + + echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 +-echo "configure:2463: checking for socklen_t" >&5 ++echo "configure:2462: checking for socklen_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2468 "configure" ++#line 2467 "configure" + #include "confdefs.h" + + #include "confdefs.h" +@@ -2480,7 +2479,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_socklen_t=yes + else +@@ -2505,12 +2504,12 @@ + fi + + echo $ac_n "checking whether sys/time.h and sys/select.h may both be included""... $ac_c" 1>&6 +-echo "configure:2509: checking whether sys/time.h and sys/select.h may both be included" >&5 ++echo "configure:2508: checking whether sys/time.h and sys/select.h may both be included" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_header_sys_select'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2514 "configure" ++#line 2513 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/time.h> +@@ -2519,7 +2518,7 @@ + struct tm *tp; + ; return 0; } + EOF +-if { (eval echo configure:2523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + lrzsz_cv_header_sys_select=yes + else +@@ -2540,12 +2539,12 @@ + fi + + echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 +-echo "configure:2544: checking whether struct tm is in sys/time.h or time.h" >&5 ++echo "configure:2543: checking whether struct tm is in sys/time.h or time.h" >&5 + if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2549 "configure" ++#line 2548 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <time.h> +@@ -2553,7 +2552,7 @@ + struct tm *tp; tp->tm_sec; + ; return 0; } + EOF +-if { (eval echo configure:2557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm=time.h + else +@@ -2575,19 +2574,19 @@ + + + echo $ac_n "checking for errno declaration""... $ac_c" 1>&6 +-echo "configure:2579: checking for errno declaration" >&5 ++echo "configure:2578: checking for errno declaration" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_decl_errno'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2584 "configure" ++#line 2583 "configure" + #include "confdefs.h" + #include <errno.h> + int main() { + int i = errno; errno = 1; + ; return 0; } + EOF +-if { (eval echo configure:2591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + lrzsz_cv_decl_errno=yes + else +@@ -2610,7 +2609,7 @@ + + if test $cross_compiling = no ; then + echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 +-echo "configure:2614: checking whether setvbuf arguments are reversed" >&5 ++echo "configure:2613: checking whether setvbuf arguments are reversed" >&5 + if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2618,7 +2617,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2622 "configure" ++#line 2621 "configure" + #include "confdefs.h" + #include <stdio.h> + /* If setvbuf has the reversed format, exit 0. */ +@@ -2632,7 +2631,7 @@ + exit(0); /* Non-reversed systems segv here. */ + } + EOF +-if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_setvbuf_reversed=yes + else +@@ -2657,12 +2656,12 @@ + + fi + echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +-echo "configure:2661: checking return type of signal handlers" >&5 ++echo "configure:2660: checking return type of signal handlers" >&5 + if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2666 "configure" ++#line 2665 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <signal.h> +@@ -2679,7 +2678,7 @@ + int i; + ; return 0; } + EOF +-if { (eval echo configure:2683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void + else +@@ -2701,17 +2700,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2705: checking for $ac_hdr" >&5 ++echo "configure:2704: 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 2710 "configure" ++#line 2709 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2714: \"$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* +@@ -2740,12 +2739,12 @@ + for ac_func in getpagesize + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2744: checking for $ac_func" >&5 ++echo "configure:2743: 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 2749 "configure" ++#line 2748 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2768,7 +2767,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2771: \"$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 +@@ -2793,7 +2792,7 @@ + done + + echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +-echo "configure:2797: checking for working mmap" >&5 ++echo "configure:2796: checking for working mmap" >&5 + if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2801,7 +2800,7 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat > conftest.$ac_ext <<EOF +-#line 2805 "configure" ++#line 2804 "configure" + #include "confdefs.h" + + /* Thanks to Mike Haertel and Jim Avera for this test. +@@ -2941,7 +2940,7 @@ + } + + EOF +-if { (eval echo configure:2945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_mmap_fixed_mapped=yes + else +@@ -2966,19 +2965,19 @@ + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works + # for constant arguments. Useless! + echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +-echo "configure:2970: checking for working alloca.h" >&5 ++echo "configure:2969: checking for working alloca.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2975 "configure" ++#line 2974 "configure" + #include "confdefs.h" + #include <alloca.h> + int main() { + char *p = alloca(2 * sizeof(int)); + ; return 0; } + EOF +-if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_header_alloca_h=yes + else +@@ -2999,12 +2998,12 @@ + fi + + echo $ac_n "checking for alloca""... $ac_c" 1>&6 +-echo "configure:3003: checking for alloca" >&5 ++echo "configure:3002: checking for alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3008 "configure" ++#line 3007 "configure" + #include "confdefs.h" + + #ifdef __GNUC__ +@@ -3032,7 +3031,7 @@ + char *p = (char *) alloca(1); + ; return 0; } + EOF +-if { (eval echo configure:3036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_func_alloca_works=yes + else +@@ -3064,12 +3063,12 @@ + + + echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +-echo "configure:3068: checking whether alloca needs Cray hooks" >&5 ++echo "configure:3067: checking whether alloca needs Cray hooks" >&5 + if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3073 "configure" ++#line 3072 "configure" + #include "confdefs.h" + #if defined(CRAY) && ! defined(CRAY2) + webecray +@@ -3094,12 +3093,12 @@ + if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3098: checking for $ac_func" >&5 ++echo "configure:3097: 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 3103 "configure" ++#line 3102 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3122,7 +3121,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3125: \"$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 +@@ -3149,7 +3148,7 @@ + fi + + echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +-echo "configure:3153: checking stack direction for C alloca" >&5 ++echo "configure:3152: checking stack direction for C alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3157,7 +3156,7 @@ + ac_cv_c_stack_direction=0 + else + cat > conftest.$ac_ext <<EOF +-#line 3161 "configure" ++#line 3160 "configure" + #include "confdefs.h" + find_stack_direction () + { +@@ -3176,7 +3175,7 @@ + exit (find_stack_direction() < 0); + } + EOF +-if { (eval echo configure:3180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:3179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_c_stack_direction=1 + else +@@ -3198,7 +3197,7 @@ + fi + + cat > conftest.$ac_ext <<EOF +-#line 3202 "configure" ++#line 3201 "configure" + #include "confdefs.h" + #include <utime.h> + EOF +@@ -3216,12 +3215,12 @@ + for ac_func in gettimeofday settimeofday + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3220: checking for $ac_func" >&5 ++echo "configure:3219: 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 3225 "configure" ++#line 3224 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3244,7 +3243,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3247: \"$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 +@@ -3271,12 +3270,12 @@ + for ac_func in strchr memcpy select vprintf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3275: checking for $ac_func" >&5 ++echo "configure:3274: 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 3280 "configure" ++#line 3279 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3299,7 +3298,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3302: \"$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 +@@ -3326,12 +3325,12 @@ + for ac_func in times rdchk utime syslog siginterrupt + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3330: checking for $ac_func" >&5 ++echo "configure:3329: 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 3335 "configure" ++#line 3334 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3354,7 +3353,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3357: \"$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 +@@ -3381,12 +3380,12 @@ + for ac_func in mkdir mktime strerror strstr strdup strtoul strtol strpbrk + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3385: checking for $ac_func" >&5 ++echo "configure:3384: 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 3390 "configure" ++#line 3389 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3409,7 +3408,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3412: \"$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 +@@ -3438,12 +3437,12 @@ + for ac_func in stpcpy strftime vasprintf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3442: checking for $ac_func" >&5 ++echo "configure:3441: 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 3447 "configure" ++#line 3446 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3466,7 +3465,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3469: \"$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 +@@ -3494,12 +3493,12 @@ + + + echo $ac_n "checking for getopt_long""... $ac_c" 1>&6 +-echo "configure:3498: checking for getopt_long" >&5 ++echo "configure:3497: checking for getopt_long" >&5 + if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3503 "configure" ++#line 3502 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getopt_long(); below. */ +@@ -3522,7 +3521,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_getopt_long=yes" + else +@@ -3552,12 +3551,12 @@ + + + echo $ac_n "checking for ftime""... $ac_c" 1>&6 +-echo "configure:3556: checking for ftime" >&5 ++echo "configure:3555: checking for ftime" >&5 + if eval "test \"`echo '$''{'ac_cv_func_ftime'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3561 "configure" ++#line 3560 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char ftime(); below. */ +@@ -3580,7 +3579,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_ftime=yes" + else +@@ -3595,7 +3594,7 @@ + if eval "test \"`echo '$ac_cv_func_'ftime`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking that ftime works correctly""... $ac_c" 1>&6 +-echo "configure:3599: checking that ftime works correctly" >&5 ++echo "configure:3598: checking that ftime works correctly" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_sys_ftime_ok'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3603,7 +3602,7 @@ + lrzsz_cv_sys_ftime_ok=runtime + else + cat > conftest.$ac_ext <<EOF +-#line 3607 "configure" ++#line 3606 "configure" + #include "confdefs.h" + + #include <sys/types.h> +@@ -3632,7 +3631,7 @@ + } + + EOF +-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + lrzsz_cv_sys_ftime_ok=yes + else +@@ -3666,20 +3665,20 @@ + + + echo $ac_n "checking for timezone variable""... $ac_c" 1>&6 +-echo "configure:3670: checking for timezone variable" >&5 ++echo "configure:3669: checking for timezone variable" >&5 + if eval "test \"`echo '$''{'libquark_cv_var_timezone'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + + cat > conftest.$ac_ext <<EOF +-#line 3676 "configure" ++#line 3675 "configure" + #include "confdefs.h" + #include <time.h> + int main() { + return(int)(timezone/2); + ; return 0; } + EOF +-if { (eval echo configure:3683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + libquark_cv_var_timezone=yes + else +@@ -3705,13 +3704,13 @@ + : + else + echo $ac_n "checking for $lookup_facility""... $ac_c" 1>&6 +-echo "configure:3709: checking for $lookup_facility" >&5 ++echo "configure:3708: checking for $lookup_facility" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_lookup_facility'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + + cat > conftest.$ac_ext <<EOF +-#line 3715 "configure" ++#line 3714 "configure" + #include "confdefs.h" + + #ifdef HAVE_SYSLOG_H +@@ -3763,17 +3762,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3767: checking for $ac_hdr" >&5 ++echo "configure:3766: 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 3772 "configure" ++#line 3771 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:3776: \"$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* +@@ -3803,12 +3802,12 @@ + strdup __argz_count __argz_stringify __argz_next + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3807: checking for $ac_func" >&5 ++echo "configure:3806: 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 3812 "configure" ++#line 3811 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3831,7 +3830,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3834: \"$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 +@@ -3860,12 +3859,12 @@ + for ac_func in stpcpy + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3864: checking for $ac_func" >&5 ++echo "configure:3863: 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 3869 "configure" ++#line 3868 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3888,7 +3887,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3891: \"$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 +@@ -3922,19 +3921,19 @@ + + if test $ac_cv_header_locale_h = yes; then + echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +-echo "configure:3926: checking for LC_MESSAGES" >&5 ++echo "configure:3925: checking for LC_MESSAGES" >&5 + if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3931 "configure" ++#line 3930 "configure" + #include "confdefs.h" + #include <locale.h> + int main() { + return LC_MESSAGES + ; return 0; } + EOF +-if { (eval echo configure:3938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + am_cv_val_LC_MESSAGES=yes + else +@@ -3955,7 +3954,7 @@ + fi + fi + echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 +-echo "configure:3959: checking whether NLS is requested" >&5 ++echo "configure:3958: checking whether NLS is requested" >&5 + # Check whether --enable-nls or --disable-nls was given. + if test "${enable_nls+set}" = set; then + enableval="$enable_nls" +@@ -3975,7 +3974,7 @@ + EOF + + echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 +-echo "configure:3979: checking whether included gettext is requested" >&5 ++echo "configure:3978: checking whether included gettext is requested" >&5 + # Check whether --with-included-gettext or --without-included-gettext was given. + if test "${with_included_gettext+set}" = set; then + withval="$with_included_gettext" +@@ -3994,17 +3993,17 @@ + + ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 +-echo "configure:3998: checking for libintl.h" >&5 ++echo "configure:3997: checking for libintl.h" >&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 4003 "configure" ++#line 4002 "configure" + #include "confdefs.h" + #include <libintl.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:4007: \"$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* +@@ -4021,19 +4020,19 @@ + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 +-echo "configure:4025: checking for gettext in libc" >&5 ++echo "configure:4024: checking for gettext in libc" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4030 "configure" ++#line 4029 "configure" + #include "confdefs.h" + #include <libintl.h> + int main() { + return (int) gettext ("") + ; return 0; } + EOF +-if { (eval echo configure:4037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + gt_cv_func_gettext_libc=yes + else +@@ -4049,7 +4048,7 @@ + + if test "$gt_cv_func_gettext_libc" != "yes"; then + echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 +-echo "configure:4053: checking for bindtextdomain in -lintl" >&5 ++echo "configure:4052: checking for bindtextdomain in -lintl" >&5 + ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4057,7 +4056,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4061 "configure" ++#line 4060 "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 +@@ -4068,7 +4067,7 @@ + bindtextdomain() + ; return 0; } + EOF +-if { (eval echo configure:4072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4071: \"$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 +@@ -4084,12 +4083,12 @@ + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 +-echo "configure:4088: checking for gettext in libintl" >&5 ++echo "configure:4087: checking for gettext in libintl" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 +-echo "configure:4093: checking for gettext in -lintl" >&5 ++echo "configure:4092: checking for gettext in -lintl" >&5 + ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4097,7 +4096,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4101 "configure" ++#line 4100 "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 +@@ -4108,7 +4107,7 @@ + gettext() + ; return 0; } + EOF +-if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4111: \"$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 +@@ -4147,7 +4146,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4151: checking for $ac_word" >&5 ++echo "configure:4150: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4181,12 +4180,12 @@ + for ac_func in dcgettext + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:4185: checking for $ac_func" >&5 ++echo "configure:4184: 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 4190 "configure" ++#line 4189 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -4209,7 +4208,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4212: \"$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 +@@ -4236,7 +4235,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4240: checking for $ac_word" >&5 ++echo "configure:4239: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4272,7 +4271,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4276: checking for $ac_word" >&5 ++echo "configure:4275: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4304,7 +4303,7 @@ + fi + + cat > conftest.$ac_ext <<EOF +-#line 4308 "configure" ++#line 4307 "configure" + #include "confdefs.h" + + int main() { +@@ -4312,7 +4311,7 @@ + return _nl_msg_cat_cntr + ; return 0; } + EOF +-if { (eval echo configure:4316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + CATOBJEXT=.gmo + DATADIRNAME=share +@@ -4335,7 +4334,7 @@ + + if test "$CATOBJEXT" = "NONE"; then + echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 +-echo "configure:4339: checking whether catgets can be used" >&5 ++echo "configure:4338: checking whether catgets can be used" >&5 + # Check whether --with-catgets or --without-catgets was given. + if test "${with_catgets+set}" = set; then + withval="$with_catgets" +@@ -4348,7 +4347,7 @@ + + if test "$nls_cv_use_catgets" = "yes"; then + echo $ac_n "checking for main in -li""... $ac_c" 1>&6 +-echo "configure:4352: checking for main in -li" >&5 ++echo "configure:4351: checking for main in -li" >&5 + ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4356,14 +4355,14 @@ + ac_save_LIBS="$LIBS" + LIBS="-li $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4360 "configure" ++#line 4359 "configure" + #include "confdefs.h" + + int main() { + main() + ; return 0; } + EOF +-if { (eval echo configure:4367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4366: \"$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 +@@ -4391,12 +4390,12 @@ + fi + + echo $ac_n "checking for catgets""... $ac_c" 1>&6 +-echo "configure:4395: checking for catgets" >&5 ++echo "configure:4394: checking for catgets" >&5 + if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4400 "configure" ++#line 4399 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char catgets(); below. */ +@@ -4419,7 +4418,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_catgets=yes" + else +@@ -4441,7 +4440,7 @@ + # Extract the first word of "gencat", so it can be a program name with args. + set dummy gencat; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4445: checking for $ac_word" >&5 ++echo "configure:4444: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4477,7 +4476,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4481: checking for $ac_word" >&5 ++echo "configure:4480: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4514,7 +4513,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4518: checking for $ac_word" >&5 ++echo "configure:4517: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4549,7 +4548,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4553: checking for $ac_word" >&5 ++echo "configure:4552: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4607,7 +4606,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4611: checking for $ac_word" >&5 ++echo "configure:4610: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4641,7 +4640,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4645: checking for $ac_word" >&5 ++echo "configure:4644: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4677,7 +4676,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4681: checking for $ac_word" >&5 ++echo "configure:4680: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4770,7 +4769,7 @@ + LINGUAS= + else + echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 +-echo "configure:4774: checking for catalogs to be installed" >&5 ++echo "configure:4773: checking for catalogs to be installed" >&5 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in +@@ -4798,17 +4797,17 @@ + if test "$CATOBJEXT" = ".cat"; then + ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 +-echo "configure:4802: checking for linux/version.h" >&5 ++echo "configure:4801: checking for linux/version.h" >&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 4807 "configure" ++#line 4806 "configure" + #include "confdefs.h" + #include <linux/version.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:4811: \"$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* +--- lrzsz-0.12.21.orig/debian/changelog ++++ lrzsz-0.12.21/debian/changelog +@@ -0,0 +1,80 @@ ++lrzsz (0.12.21-4) unstable; urgency=low ++ ++ * Updated for Standards-Version: 3.5.2. ++ * Added touch stamp-h.in before make invocation in order to stop ++ autoheader from running. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 25 Mar 2001 19:48:18 +0200 ++ ++lrzsz (0.12.21-3) unstable; urgency=low ++ ++ * Newish upstream version, (990823 in CVS). ++ * Updated for Policy 3.x. ++ * Misc. fixes for debian/*. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 19 Sep 1999 17:55:38 +0200 ++ ++lrzsz (0.12.21-2) unstable; urgency=low ++ ++ * Removed definition of strstr, advised by upstream maintainer, to ++ get it to compile on glibc2.1, as John Goerzen and Bart Warmerdam ++ noticed (fixes: #39429 #39812). ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 20 Jun 1999 21:38:07 +0200 ++ ++lrzsz (0.12.21-1) unstable; urgency=low ++ ++ * New upstream version (990604 in CVS). ++ * Cleaned up the diff by removing unneeded .deps/ files and not changing ++ aclocal et al. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 6 Jun 1999 21:01:50 +0200 ++ ++lrzsz (0.12.20-2) unstable; urgency=low ++ ++ * Don't install ansi2knr.1 manpage, closing bug #33121 ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.20-1) unstable; urgency=low ++ ++ * New maintainer. ++ * Althought version number doesn't indicate that, this version is ++ today's CVS snapshot from ftp://tirka.ohse.de/uwe/cvs-trees ++ * This release fixes following bugs: #8373 #11208 #16170 #16744 #17210. ++ * Package is lintian clean. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.17) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. automagically generated debian/changelog ++ ++ -- Uwe Ohse <uwe@ohse.de> Mon, 02 Jun 1997 10:06:05 +0200 ++ ++lrzsz (0.12.16) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. changelog is here just to make ++ dpkg happy. ++ * initial release ++ ++ -- Uwe Ohse <uwe@ohse.de> Sun, 2 Jun 1997 21:00:00 +0200 ++ ++lrzsz (0.12b-1.1) unstable; urgency=low ++ ++ * Non-maintainer release. ++ * Libc6 compile. ++ ++ -- Martin Mitchell <martin@debian.org> Sat, 18 Oct 1997 01:58:54 +1000 ++ ++lrzsz (0.12b-1) unstable; urgency=low ++ ++ * Converted to new source packaging format. ++ * New upstream version. ++ ++ -- Michael Alan Dorman <mdorman@calder.med.miami.edu> Tue, 17 Sep 1996 13:39:23 -0400 ++ ++Local variables: ++mode: debian-changelog ++add-log-mailing-address: "jrodin@jagor.srce.hr" ++End: +--- lrzsz-0.12.21.orig/debian/control ++++ lrzsz-0.12.21/debian/control +@@ -0,0 +1,18 @@ ++Source: lrzsz ++Section: comm ++Priority: optional ++Maintainer: Josip Rodin <jrodin@jagor.srce.hr> ++Standards-Version: 3.5.2 ++Build-Depends: debhelper ++ ++Package: lrzsz ++Architecture: any ++Depends: ${shlibs:Depends} ++Suggests: minicom ++Description: Tools for zmodem/xmodem/ymodem file transfer ++ Lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built ++ from the public-domain version of Chuck Forsberg's rzsz package. ++ . ++ These programs use error correcting protocols ({z,x,y}modem) to send ++ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port ++ from a variety of programs running under various operating systems. +--- lrzsz-0.12.21.orig/debian/copyright ++++ lrzsz-0.12.21/debian/copyright +@@ -0,0 +1,31 @@ ++This is the lrzsz Debian GNU/Linux package. It was first maintained by ++Michael Alan Dorman <mdorman@debian.org>, with help of Martin Mitchell ++and current upstream maintainer, Uwe Ohse <uwe@ohse.de>. ++ ++Current maintainer is Josip Rodin <jrodin@jagor.srce.hr> ++ ++Original source was downloaded from: ftp://tirka.ohse.de/uwe/ ++ ++Copyright (C) until 1988 Chuck Forsberg (Omen Technology INC) ++Copyright (C) 1994 Matt Porter, Michael D. Black ++Copyright (C) 1996, 1997 Uwe Ohse ++ ++Please note that credit should be given to Chuck Forsberg (rzsz) and ++Stephen Satchell/Satchell Evaluations (crc routines) for this package. ++ ++ 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; version 2 dated June, 1991. ++ ++ 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. ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in /usr/share/common-licenses/GPL file. +--- lrzsz-0.12.21.orig/debian/rules ++++ lrzsz-0.12.21/debian/rules +@@ -0,0 +1,60 @@ ++#!/usr/bin/make -f ++# Derived from debhelper/dh_make example. ++ ++#export DH_VERBOSE=1 ++tmp := $(CURDIR)/debian/tmp ++ ++CFLAGS := -O2 ++ifneq "$(findstring debug,$(DEB_BUILD_OPTIONS))" "" ++CFLAGS += -g ++endif ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \ ++ --mandir='$${prefix}/share/man' --program-transform-name=s/l// ++ touch stamp-h.in # to stop autoheader from running ++ $(MAKE) ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ [ ! -f Makefile ] || $(MAKE) distclean ++ dh_clean build-stamp ++ ++install: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) install prefix=$(tmp)/usr ++ ++binary-indep: ++# We have nothing to do, no architecture independent packages here. ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs NEWS README README.cvs README.isdn4linux TODO ++# dh_installmanpages ansi2knr.1 ++ dh_installchangelogs ChangeLog ++ifeq "$(findstring nostrip,$(DEB_BUILD_OPTIONS))" "" ++ dh_strip ++endif ++ dh_compress ++ cd $(tmp)/usr/share/man/man1 ; \ ++ ln -s rz.1.gz rb.1.gz ; \ ++ ln -s rz.1.gz rx.1.gz ; \ ++ ln -s sz.1.gz sb.1.gz ; \ ++ ln -s sz.1.gz sx.1.gz ++ 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 +--- lrzsz-0.12.21.orig/lib/Makefile.in ++++ lrzsz-0.12.21/lib/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -127,7 +126,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + DEP_FILES = .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \ + .deps/long-options.P .deps/mkdir.P .deps/mktime.P .deps/stpcpy.P \ +@@ -282,7 +281,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -343,7 +342,7 @@ + all-am: Makefile $(ANSI2KNR) $(LIBRARIES) $(HEADERS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + + +--- lrzsz-0.12.21.orig/man/Makefile.in ++++ lrzsz-0.12.21/man/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -106,7 +105,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: +@@ -173,7 +172,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -202,7 +201,7 @@ + all-am: Makefile $(MANS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 + +--- lrzsz-0.12.21.orig/po/lrzsz.pot ++++ lrzsz-0.12.21/po/lrzsz.pot +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 1999-08-22 21:00+0200\n" ++"POT-Creation-Date: 1999-09-19 19:34+0200\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" +@@ -14,311 +14,311 @@ + "Content-Type: text/plain; charset=CHARSET\n" + "Content-Transfer-Encoding: ENCODING\n" + +-#: src/lsz.c:228 ++#: src/lsz.c:227 + msgid "io_mode(,2) in rbsb.c not implemented\n" + msgstr "" + +-#: src/lrz.c:196 src/lsz.c:230 ++#: src/lrz.c:195 src/lsz.c:229 + #, c-format + msgid "caught signal %d; exiting" + msgstr "" + +-#: src/lsz.c:400 ++#: src/lsz.c:399 + msgid "command tries" + msgstr "" + +-#: src/lsz.c:422 ++#: src/lsz.c:421 + msgid "packetlength" + msgstr "" + +-#: src/lsz.c:427 ++#: src/lsz.c:426 + #, c-format + msgid "packetlength out of range 24..%ld" + msgstr "" + +-#: src/lsz.c:436 ++#: src/lsz.c:435 + msgid "framelength" + msgstr "" + +-#: src/lsz.c:441 ++#: src/lsz.c:440 + #, c-format + msgid "framelength out of range 32..%ld" + msgstr "" + +-#: src/lrz.c:318 src/lsz.c:450 ++#: src/lrz.c:317 src/lsz.c:449 + msgid "min_bps" + msgstr "" + +-#: src/lsz.c:452 ++#: src/lsz.c:451 + msgid "min_bps must be >= 0" + msgstr "" + +-#: src/lrz.c:324 src/lsz.c:458 ++#: src/lrz.c:323 src/lsz.c:457 + msgid "min_bps_time" + msgstr "" + +-#: src/lrz.c:326 src/lsz.c:460 ++#: src/lrz.c:325 src/lsz.c:459 + msgid "min_bps_time must be > 1" + msgstr "" + +-#: src/lrz.c:342 src/lsz.c:484 ++#: src/lrz.c:341 src/lsz.c:483 + msgid "hour to large (0..23)" + msgstr "" + +-#: src/lrz.c:344 src/lsz.c:486 ++#: src/lrz.c:343 src/lsz.c:485 + msgid "unparsable stop time\n" + msgstr "" + +-#: src/lrz.c:348 src/lsz.c:490 ++#: src/lrz.c:347 src/lsz.c:489 + msgid "minute to large (0..59)" + msgstr "" + +-#: src/lrz.c:358 src/lrz.c:365 src/lsz.c:500 src/lsz.c:507 ++#: src/lrz.c:357 src/lrz.c:364 src/lsz.c:499 src/lsz.c:506 + msgid "stop time to small" + msgstr "" + +-#: src/lrz.c:363 src/lsz.c:505 ++#: src/lrz.c:362 src/lsz.c:504 + msgid "stop-at" + msgstr "" + +-#: src/lrz.c:394 src/lsz.c:516 ++#: src/lrz.c:393 src/lsz.c:515 + msgid "timeout" + msgstr "" + +-#: src/lrz.c:396 src/lsz.c:518 ++#: src/lrz.c:395 src/lsz.c:517 + msgid "timeout out of range 10..1000" + msgstr "" + +-#: src/lrz.c:412 src/lsz.c:526 ++#: src/lrz.c:411 src/lsz.c:525 + msgid "security violation: can't do that under restricted shell\n" + msgstr "" + +-#: src/lrz.c:402 src/lsz.c:533 ++#: src/lrz.c:401 src/lsz.c:532 + msgid "window size" + msgstr "" + +-#: src/lrz.c:427 src/lrz.c:434 src/lsz.c:556 src/lsz.c:563 ++#: src/lrz.c:426 src/lrz.c:433 src/lsz.c:555 src/lsz.c:562 + msgid "cannot turnoff syslog" + msgstr "" + +-#: src/lrz.c:449 src/lsz.c:571 ++#: src/lrz.c:448 src/lsz.c:570 + msgid "startup delay" + msgstr "" + +-#: src/lrz.c:465 src/lrz.c:483 src/lrz.c:760 src/lrz.c:1122 src/lrz.c:1244 +-#: src/lrz.c:1292 src/lrz.c:1309 src/lrz.c:1324 src/lrz.c:1423 src/lsz.c:580 +-#: src/lsz.c:596 src/lsz.c:693 src/lsz.c:828 src/lsz.c:1061 ++#: src/lrz.c:464 src/lrz.c:482 src/lrz.c:759 src/lrz.c:1121 src/lrz.c:1243 ++#: src/lrz.c:1291 src/lrz.c:1308 src/lrz.c:1323 src/lrz.c:1422 src/lsz.c:579 ++#: src/lsz.c:595 src/lsz.c:692 src/lsz.c:827 src/lsz.c:1060 + #: src/zreadline.c:127 + msgid "out of memory" + msgstr "" + +-#: src/lrz.c:475 src/lsz.c:592 ++#: src/lrz.c:474 src/lsz.c:591 + msgid "this program was never intended to be used setuid\n" + msgstr "" + +-#: src/lsz.c:612 src/lsz.c:627 ++#: src/lsz.c:611 src/lsz.c:626 + msgid "need at least one file to send" + msgstr "" + +-#: src/lsz.c:629 ++#: src/lsz.c:628 + msgid "Can't send command in restricted mode\n" + msgstr "" + +-#: src/lrz.c:527 src/lsz.c:656 ++#: src/lrz.c:526 src/lsz.c:655 + msgid "hostname too long\n" + msgstr "" + +-#: src/lrz.c:542 src/lsz.c:671 ++#: src/lrz.c:541 src/lsz.c:670 + msgid "illegal server address\n" + msgstr "" + +-#: src/lsz.c:710 ++#: src/lsz.c:709 + msgid "can read only one file from stdin" + msgstr "" + +-#: src/lrz.c:574 src/lsz.c:803 ++#: src/lrz.c:573 src/lsz.c:802 + msgid "Transfer incomplete\n" + msgstr "" + +-#: src/lrz.c:576 src/lsz.c:805 ++#: src/lrz.c:575 src/lsz.c:804 + msgid "Transfer complete\n" + msgstr "" + +-#: src/lsz.c:838 ++#: src/lsz.c:837 + #, c-format + msgid "send_pseudo %s: cannot open tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:851 ++#: src/lsz.c:850 + #, c-format + msgid "send_pseudo %s: cannot lstat tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:859 ++#: src/lsz.c:858 + #, c-format + msgid "send_pseudo %s: avoiding symlink trap" + msgstr "" + +-#: src/lsz.c:870 ++#: src/lsz.c:869 + #, c-format + msgid "send_pseudo %s: cannot write to tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:879 ++#: src/lsz.c:878 + #, c-format + msgid "send_pseudo %s: failed" + msgstr "" + +-#: src/lsz.c:882 ++#: src/lsz.c:881 + #, c-format + msgid "send_pseudo %s: ok" + msgstr "" + +-#: src/lsz.c:916 ++#: src/lsz.c:915 + #, c-format + msgid "Answering TIMESYNC at %s" + msgstr "" + +-#: src/lsz.c:921 ++#: src/lsz.c:920 + msgid "timezone" + msgstr "" + +-#: src/lsz.c:924 ++#: src/lsz.c:923 + msgid "timezone unknown" + msgstr "" + +-#: src/lsz.c:953 ++#: src/lsz.c:952 + msgid "Can't open any requested files." + msgstr "" + +-#: src/lsz.c:1009 ++#: src/lsz.c:1008 + #, c-format + msgid "security violation: not allowed to upload from %s" + msgstr "" + +-#: src/lrz.c:1384 src/lsz.c:1027 ++#: src/lrz.c:1383 src/lsz.c:1026 + #, c-format + msgid "cannot open %s" + msgstr "" + +-#: src/lsz.c:1082 ++#: src/lsz.c:1081 + #, c-format + msgid "is not a file: %s" + msgstr "" + +-#: src/lsz.c:1115 src/lsz.c:1130 ++#: src/lsz.c:1114 src/lsz.c:1129 + #, c-format + msgid "%s/%s: error occured" + msgstr "" + +-#: src/lsz.c:1119 ++#: src/lsz.c:1118 + #, c-format + msgid "skipped: %s" + msgstr "" + +-#: src/lsz.c:1122 ++#: src/lsz.c:1121 + #, c-format + msgid "%s/%s: skipped" + msgstr "" + +-#: src/lsz.c:1149 ++#: src/lsz.c:1148 + #, c-format + msgid "Bytes Sent:%7ld BPS:%-8ld \n" + msgstr "" + +-#: src/lsz.c:1178 ++#: src/lsz.c:1177 + #, c-format + msgid "Sending %s, %ld blocks: " + msgstr "" + +-#: src/lsz.c:1181 ++#: src/lsz.c:1180 + msgid "Give your local XMODEM receive command now." + msgstr "" + +-#: src/lsz.c:1224 ++#: src/lsz.c:1223 + #, c-format + msgid "Sending: %s\n" + msgstr "" + +-#: src/lsz.c:1267 ++#: src/lsz.c:1266 + msgid "Timeout on pathname" + msgstr "" + +-#: src/lsz.c:1314 ++#: src/lsz.c:1313 + msgid "Receiver Cancelled" + msgstr "" + +-#: src/lsz.c:1340 ++#: src/lsz.c:1339 + msgid "No ACK on EOT" + msgstr "" + +-#: src/lsz.c:1361 ++#: src/lsz.c:1360 + #, c-format + msgid "Xmodem sectors/kbytes sent: %3d/%2dk" + msgstr "" + +-#: src/lsz.c:1363 ++#: src/lsz.c:1362 + #, c-format + msgid "Ymodem sectors/kbytes sent: %3d/%2dk" + msgstr "" + +-#: src/lsz.c:1395 ++#: src/lsz.c:1394 + msgid "Cancelled" + msgstr "" + +-#: src/lsz.c:1399 ++#: src/lsz.c:1398 + msgid "Timeout on sector ACK" + msgstr "" + +-#: src/lsz.c:1404 ++#: src/lsz.c:1403 + msgid "NAK on sector" + msgstr "" + +-#: src/lsz.c:1410 ++#: src/lsz.c:1409 + msgid "Got burst for sector ACK" + msgstr "" + +-#: src/lsz.c:1412 ++#: src/lsz.c:1411 + #, c-format + msgid "Got %02x for sector ACK" + msgstr "" + +-#: src/lsz.c:1424 ++#: src/lsz.c:1423 + msgid "Retry Count Exceeded" + msgstr "" + +-#: src/lrz.c:596 src/lsz.c:1502 ++#: src/lrz.c:595 src/lsz.c:1501 + #, c-format + msgid "Try `%s --help' for more information.\n" + msgstr "" + +-#: src/lrz.c:601 src/lsz.c:1507 ++#: src/lrz.c:600 src/lsz.c:1506 + #, c-format + msgid "%s version %s\n" + msgstr "" + +-#: src/lsz.c:1510 ++#: src/lsz.c:1509 + #, c-format + msgid "Usage: %s [options] file ...\n" + msgstr "" + +-#: src/lsz.c:1512 ++#: src/lsz.c:1511 + #, c-format + msgid " or: %s [options] -{c|i} COMMAND\n" + msgstr "" + +-#: src/lsz.c:1513 ++#: src/lsz.c:1512 + msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n" + msgstr "" + +-#: src/lrz.c:607 src/lsz.c:1515 ++#: src/lrz.c:606 src/lsz.c:1514 + msgid "" + " (X) = option applies to XMODEM only\n" + " (Y) = option applies to YMODEM only\n" + " (Z) = option applies to ZMODEM only\n" + msgstr "" + +-#: src/lsz.c:1521 ++#: src/lsz.c:1520 + msgid "" + " -+, --append append to existing destination file (Z)\n" + " -2, --twostop use 2 stop bits\n" +@@ -345,7 +345,7 @@ + " -M, --min-bps-time N for at least N seconds (default: 120)\n" + msgstr "" + +-#: src/lsz.c:1546 ++#: src/lsz.c:1545 + msgid "" + " -n, --newer send file if source newer (Z)\n" + " -N, --newer-or-longer send file if source newer or longer (Z)\n" +@@ -371,64 +371,64 @@ + "short options use the same arguments as the long ones\n" + msgstr "" + +-#: src/lsz.c:1768 ++#: src/lsz.c:1767 + msgid "got ZRQINIT" + msgstr "" + +-#: src/lrz.c:1079 src/lrz.c:1772 src/lsz.c:1774 ++#: src/lrz.c:1078 src/lrz.c:1771 src/lsz.c:1773 + msgid "got ZCAN" + msgstr "" + +-#: src/lsz.c:1991 ++#: src/lsz.c:1990 + #, c-format + msgid "blklen now %d\n" + msgstr "" + +-#: src/lsz.c:2053 ++#: src/lsz.c:2052 + #, c-format + msgid "zsendfdata: bps rate %ld below min %ld" + msgstr "" + +-#: src/lsz.c:2070 ++#: src/lsz.c:2069 + msgid "zsendfdata: reached stop time" + msgstr "" + +-#: src/lsz.c:2080 ++#: src/lsz.c:2079 + #, c-format + msgid "Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d " + msgstr "" + +-#: src/lsz.c:2223 ++#: src/lsz.c:2222 + #, c-format + msgid "calc_blklen: reduced to %d due to error\n" + msgstr "" + +-#: src/lsz.c:2256 ++#: src/lsz.c:2255 + #, c-format + msgid "calc_blklen: returned old value %d due to low bpe diff\n" + msgstr "" + +-#: src/lsz.c:2258 ++#: src/lsz.c:2257 + #, c-format + msgid "calc_blklen: old %ld, new %ld, d %ld\n" + msgstr "" + +-#: src/lsz.c:2267 ++#: src/lsz.c:2266 + #, c-format + msgid "calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n" + msgstr "" + +-#: src/lsz.c:2278 ++#: src/lsz.c:2277 + #, c-format + msgid "calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n" + msgstr "" + +-#: src/lsz.c:2290 ++#: src/lsz.c:2289 + #, c-format + msgid "calc_blklen: returned %d as best\n" + msgstr "" + +-#: src/lsz.c:2486 ++#: src/lsz.c:2485 + #, c-format + msgid "" + "\n" +@@ -444,7 +444,7 @@ + msgid "Sender Canceled" + msgstr "" + +-#: src/lrz.c:1002 src/zm.c:586 src/zm.c:645 ++#: src/lrz.c:1001 src/zm.c:586 src/zm.c:645 + msgid "TIMEOUT" + msgstr "" + +@@ -470,40 +470,40 @@ + msgid "Retry %d: " + msgstr "" + +-#: src/lrz.c:382 ++#: src/lrz.c:381 + msgid "don't have settimeofday, will not set time\n" + msgstr "" + +-#: src/lrz.c:386 ++#: src/lrz.c:385 + msgid "not running as root (this is good!), can not set time\n" + msgstr "" + +-#: src/lrz.c:441 ++#: src/lrz.c:440 + msgid "bytes_per_error" + msgstr "" + +-#: src/lrz.c:443 ++#: src/lrz.c:442 + msgid "bytes-per-error should be >100" + msgstr "" + +-#: src/lrz.c:455 ++#: src/lrz.c:454 + msgid "O_SYNC not supported by the kernel" + msgstr "" + +-#: src/lrz.c:497 src/lrz.c:499 ++#: src/lrz.c:496 src/lrz.c:498 + msgid "garbage on commandline" + msgstr "" + +-#: src/lrz.c:604 ++#: src/lrz.c:603 + #, c-format + msgid "Usage: %s [options] [filename.if.xmodem]\n" + msgstr "" + +-#: src/lrz.c:605 ++#: src/lrz.c:604 + msgid "Receive files with ZMODEM/YMODEM/XMODEM protocol\n" + msgstr "" + +-#: src/lrz.c:612 ++#: src/lrz.c:611 + msgid "" + " -+, --append append to existing files\n" + " -a, --ascii ASCII transfer (change CR/LF to LF)\n" +@@ -543,152 +543,152 @@ + "short options use the same arguments as the long ones\n" + msgstr "" + +-#: src/lrz.c:676 ++#: src/lrz.c:675 + #, c-format + msgid "%s waiting to receive." + msgstr "" + +-#: src/lrz.c:730 src/lrz.c:1806 ++#: src/lrz.c:729 src/lrz.c:1805 + #, c-format + msgid "\rBytes received: %7ld/%7ld BPS:%-6ld \r\n" + msgstr "" + +-#: src/lrz.c:772 ++#: src/lrz.c:771 + #, c-format + msgid "%s: ready to receive %s" + msgstr "" + +-#: src/lrz.c:799 ++#: src/lrz.c:798 + #, c-format + msgid "\rBytes received: %7ld BPS:%-6ld \r\n" + msgstr "" + +-#: src/lrz.c:825 ++#: src/lrz.c:824 + #, c-format + msgid "" + "\r\n" + "%s: %s removed.\r\n" + msgstr "" + +-#: src/lrz.c:856 ++#: src/lrz.c:855 + msgid "Pathname fetch returned EOT" + msgstr "" + +-#: src/lrz.c:903 ++#: src/lrz.c:902 + msgid "Received dup Sector" + msgstr "" + +-#: src/lrz.c:917 ++#: src/lrz.c:916 + msgid "Sync Error" + msgstr "" + +-#: src/lrz.c:965 ++#: src/lrz.c:964 + msgid "CRC" + msgstr "" + +-#: src/lrz.c:976 ++#: src/lrz.c:975 + msgid "Checksum" + msgstr "" + +-#: src/lrz.c:979 ++#: src/lrz.c:978 + msgid "Sector number garbled" + msgstr "" + +-#: src/lrz.c:991 ++#: src/lrz.c:990 + msgid "Sender Cancelled" + msgstr "" + +-#: src/lrz.c:1005 ++#: src/lrz.c:1004 + #, c-format + msgid "Got 0%o sector header" + msgstr "" + +-#: src/lrz.c:1113 ++#: src/lrz.c:1112 + #, c-format + msgid "file name ends with a /, skipped: %s\n" + msgstr "" + +-#: src/lrz.c:1127 ++#: src/lrz.c:1126 + #, c-format + msgid "zmanag=%d, Lzmanag=%d\n" + msgstr "" + +-#: src/lrz.c:1128 ++#: src/lrz.c:1127 + #, c-format + msgid "zconv=%d\n" + msgstr "" + +-#: src/lrz.c:1192 src/lrz.c:1226 ++#: src/lrz.c:1191 src/lrz.c:1225 + #, c-format + msgid "file exists, skipped: %s\n" + msgstr "" + +-#: src/lrz.c:1267 ++#: src/lrz.c:1266 + #, c-format + msgid "TIMESYNC: here %ld, remote %ld, diff %ld seconds\n" + msgstr "" + +-#: src/lrz.c:1276 ++#: src/lrz.c:1275 + #, c-format + msgid "TIMESYNC: cannot set time: %s\n" + msgstr "" + +-#: src/lrz.c:1296 ++#: src/lrz.c:1295 + msgid "Topipe" + msgstr "" + +-#: src/lrz.c:1314 ++#: src/lrz.c:1313 + #, c-format + msgid "Receiving: %s\n" + msgstr "" + +-#: src/lrz.c:1545 ++#: src/lrz.c:1544 + #, c-format + msgid "Blocks received: %d" + msgstr "" + +-#: src/lrz.c:1599 ++#: src/lrz.c:1598 + #, c-format + msgid "%s: %s exists\n" + msgstr "" + +-#: src/lrz.c:1612 src/lrz.c:1620 ++#: src/lrz.c:1611 src/lrz.c:1619 + #, c-format + msgid "%s:\tSecurity Violation" + msgstr "" + +-#: src/lrz.c:1730 ++#: src/lrz.c:1729 + msgid "remote command execution requested" + msgstr "" + +-#: src/lrz.c:1737 ++#: src/lrz.c:1736 + msgid "not executed" + msgstr "" + +-#: src/lrz.c:1768 ++#: src/lrz.c:1767 + msgid "got ZRINIT" + msgstr "" + +-#: src/lrz.c:1817 ++#: src/lrz.c:1816 + msgid "Skipped" + msgstr "" + + #. too bad +-#: src/lrz.c:2049 ++#: src/lrz.c:2048 + #, c-format + msgid "rzfile: bps rate %ld below min %ld" + msgstr "" + + #. too bad +-#: src/lrz.c:2064 ++#: src/lrz.c:2063 + msgid "rzfile: reached stop time" + msgstr "" + +-#: src/lrz.c:2071 ++#: src/lrz.c:2070 + #, c-format + msgid "\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d " + msgstr "" + +-#: src/lrz.c:2215 ++#: src/lrz.c:2214 + msgid "file close error" + msgstr "" +--- lrzsz-0.12.21.orig/src/Makefile.in ++++ lrzsz-0.12.21/src/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -45,10 +45,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -132,7 +131,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + DEP_FILES = .deps/canit.P .deps/crctab.P .deps/lrz.P .deps/lsyslog.P \ + .deps/lsz.P .deps/protname.P .deps/rbsb.P .deps/tcp.P .deps/timing.P \ +@@ -167,8 +166,8 @@ + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ +- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ +- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +@@ -292,7 +291,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -353,7 +352,7 @@ + all-am: Makefile $(ANSI2KNR) $(PROGRAMS) $(HEADERS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + +--- lrzsz-0.12.21.orig/src/lrz.c ++++ lrzsz-0.12.21/src/lrz.c +@@ -44,7 +44,6 @@ + #ifndef STRICT_PROTOTYPES + extern time_t time(); + extern char *strerror(); +-extern char *strstr(); + #endif + + #ifndef HAVE_ERRNO_DECLARATION +--- lrzsz-0.12.21.orig/src/lsz.c ++++ lrzsz-0.12.21/src/lsz.c +@@ -53,7 +53,6 @@ + #ifndef STRICT_PROTOTYPES + extern time_t time(); + extern char *strerror(); +-extern char *strstr(); + #endif + + #ifndef HAVE_ERRNO_DECLARATION +--- lrzsz-0.12.21.orig/testsuite/Makefile.in ++++ lrzsz-0.12.21/testsuite/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -103,7 +102,7 @@ + DIST_COMMON = Makefile.am Makefile.in + + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + EXPECT = expect + RUNTEST = runtest +@@ -133,7 +132,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -192,7 +191,7 @@ + all-am: Makefile + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + + diff --git a/source/a/minicom/minicom.SlackBuild b/source/a/minicom/minicom.SlackBuild new file mode 100755 index 00000000..c9249f64 --- /dev/null +++ b/source/a/minicom/minicom.SlackBuild @@ -0,0 +1,134 @@ +#!/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 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-minicom + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# minicom +cd $TMP +rm -rf minicom-$VERSION +tar xzvf $CWD/minicom-$VERSION.tar.gz +cd minicom-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +# Fix re-declaration of BC in termcap.h +zcat $CWD/wintcap.diff.gz | patch -p1 --verbose || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc +make -j3 +make install DESTDIR=$PKG +mkdir -p $PKG/etc +zcat $CWD/minicom.users.gz > $PKG/etc/minicom.users.new +zcat $CWD/minirc.dfl.gz > $PKG/etc/minirc.dfl.new +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/minicom-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog FILE_ID.DIZ INSTALL NEWS README TODO \ + doc \ + $PKG/usr/doc/minicom-$VERSION + +# lzrz +# If autoconf causes failure here (which it probably will), +# remove it temporarily and the build should work fine... +cd $TMP +tar xzvf $CWD/lrzsz_0.12.21.orig.tar.gz +cd lrzsz-990823 +# Make x86_64 a valid machine type (thanks to Fred Emmott) +zcat $CWD/config.sub-x86_64.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/lrzsz_0.12.21-4.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make -j3 +cd src +cat lrz > $PKG/usr/bin/lrz +cat lsz > $PKG/usr/bin/lsz +chmod 755 $PKG/usr/bin/l*z +cd ../man +for page in lrz.1 lsz.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +echo '.so man1/lrz.1' | gzip -9c > $PKG/usr/man/man1/rz.1.gz +echo '.so man1/lsz.1' | gzip -9c > $PKG/usr/man/man1/sz.1.gz +cd ../po +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/lrzsz.mo +cd .. +mkdir -p $PKG/usr/doc/lrzsz-0.12.21 +cp -a ABOUT-NLS AUTHORS COMPATABILITY COPYING INSTALL NEWS README-alpha \ + README.cvs README.gettext README.isdn4linux README.systems \ + README.tests THANKS TODO $PKG/usr/doc/lrzsz-0.12.21 + + +( cd $PKG + ( cd usr/bin ; rm -rf rx ) + ( cd usr/bin ; ln -sf rz rx ) + ( cd usr/bin ; rm -rf rb ) + ( cd usr/bin ; ln -sf rz rb ) + ( cd usr/bin ; rm -rf sb ) + ( cd usr/bin ; ln -sf sz sb ) + ( cd usr/bin ; rm -rf sx ) + ( cd usr/bin ; ln -sf sz sx ) + ( cd usr/bin ; rm -rf rz ) + ( cd usr/bin ; ln -sf lrz rz ) + ( cd usr/bin ; rm -rf lrb ) + ( cd usr/bin ; ln -sf lrz lrb ) + ( cd usr/bin ; rm -rf lrx ) + ( cd usr/bin ; ln -sf lrz lrx ) + ( cd usr/bin ; rm -rf sz ) + ( cd usr/bin ; ln -sf lsz sz ) + ( cd usr/bin ; rm -rf lsb ) + ( cd usr/bin ; ln -sf lsz lsb ) + ( cd usr/bin ; rm -rf lrx ) + ( cd usr/bin ; ln -sf lsz lrx ) + 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/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/minicom-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/minicom/minicom.users b/source/a/minicom/minicom.users new file mode 100644 index 00000000..509d86f4 --- /dev/null +++ b/source/a/minicom/minicom.users @@ -0,0 +1,36 @@ +# $Id: minicom.users,v 1.1.1.1 1999/12/18 11:18:51 misiek Exp $ +# Minicom.users Access file for the minicom program. +# +# Format: Either just one username per line, or +# a username followed by one or more +# configuration-names. The name of the +# default configuration is "dfl". The maximum +# significant line length is 70 characters. +# +# Location: The minicom library directory, probably +# /etc or /var/lib/minicom or whatever. +# +# Notes: If you don't install this file in the +# specified location, everybody will have +# access to minicom. +# +# This doesn't matter if minicom isn't installed +# setuid root since access will then be based +# on the permissions set on the serial port. +# + +# +# Who may use minicom? +# +# User [line] [..line] +# + +# Everyone has access to all configurations. +ALL + +## The rest are examples. +## # Erik only has access to the default configuration +## erik dfl +## +## # minicom has access to the default configuration, and configuration 'tty5'. +## minicom dfl tty5 diff --git a/source/a/minicom/minirc.dfl b/source/a/minicom/minirc.dfl new file mode 100644 index 00000000..42e9d8fe --- /dev/null +++ b/source/a/minicom/minirc.dfl @@ -0,0 +1 @@ +# Machine-generated file - use "minicom -s" to change parameters. diff --git a/source/a/minicom/slack-desc b/source/a/minicom/slack-desc new file mode 100644 index 00000000..67d1878c --- /dev/null +++ b/source/a/minicom/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------------------------------------------------------| +minicom: minicom (communications package) +minicom: +minicom: Minicom - a full featured menu-driven communications package similar +minicom: to the DOS program 'Telix'. Also includes sz/rz - utilities used to +minicom: upload and download files using the Zmodem protocol. +minicom: +minicom: +minicom: +minicom: +minicom: +minicom: diff --git a/source/a/minicom/wintcap.diff b/source/a/minicom/wintcap.diff new file mode 100644 index 00000000..40d005b3 --- /dev/null +++ b/source/a/minicom/wintcap.diff @@ -0,0 +1,44 @@ +--- minicom-2.1/src/window.c.orig 2003-05-17 00:06:26.000000000 +0400 ++++ minicom-2.1/src/window.c 2007-08-26 11:21:04.000000000 +0400 +@@ -62,7 +62,7 @@ + static char *CS, *SF, *SR, *VB, *BL; + static char *VE, *VI, *KS, *KE; + static char *CD, *CL, *IC, *DC; +-static char *BC, *CR, *NL; ++static char *BCs, *CR, *NL; + #if ST_LINE + static char *TS, *FS, *DS; + #endif +@@ -322,8 +322,8 @@ + else if (NL != CNULL && x == 0 && x == curx && y == cury + 1) + outstr(NL); + #endif +- else if (BC != CNULL && y == cury && x == curx - 1) +- outstr(BC); ++ else if (BCs != CNULL && y == cury && x == curx - 1) ++ outstr(BCs); + else + outstr(tgoto(CM, x, y)); + curx = x; +@@ -1918,7 +1918,7 @@ + CL = tgetstr("cl", &_tptr); + IC = tgetstr("ic", &_tptr); + DC = tgetstr("dc", &_tptr); +- BC = tgetstr("bc", &_tptr); ++ BCs = tgetstr("bc", &_tptr); + CR = tgetstr("cr", &_tptr); + NL = tgetstr("nl", &_tptr); + AC = tgetstr("ac", &_tptr); +@@ -1967,10 +1967,10 @@ + _has_am = tgetflag("am"); + _mv_standout = tgetflag("ms"); + if (tgetflag("bs")) { +- if (BC == CNULL) BC = "\b"; ++ if (BCs == CNULL) BCs = "\b"; + } + else +- BC = CNULL; ++ BCs = CNULL; + + /* Special IBM box-drawing characters */ + D_UL = 201; diff --git a/source/a/mkinitrd/README.initrd b/source/a/mkinitrd/README.initrd new file mode 100644 index 00000000..f027fa27 --- /dev/null +++ b/source/a/mkinitrd/README.initrd @@ -0,0 +1,100 @@ + +Slackware initrd mini HOWTO +by Patrick Volkerding, volkerdi@slackware.com +Wed Jun 17 01:49:18 CDT 2009 + +This document describes how to create and install an initrd, which may be +required to use the 2.6 kernel. Also see "man mkinitrd". + +1. What is an initrd? +2. Why to I need an initrd? +3. How do I build the initrd? +4. Now that I've built an initrd, how do I use it? + + +1. What is an initrd? + +Initrd stands for "initial ramdisk". An initial ramdisk is a very small +Linux filesystem that is loaded into RAM and mounted as the kernel boots, +and before the main root filesystem is mounted. + +2. Why do I need an initrd? + +The usual reason to use an initrd is because you need to load kernel +modules before mounting the root partition. Usually these modules are +required to support the filesystem used by the root partition (ext3, +reiserfs, xfs), or perhaps the controller that the hard drive is attached +to (SCSI, RAID, etc). Essentially, there are so many different options +available in modern Linux kernels that it isn't practical to try to ship +many different kernels to try to cover everyone's needs. It's a lot more +flexible to ship a generic kernel and a set of kernel modules for it. + +3. How do I build the initrd? + +The easiest way to make the initrd is to use the mkinitrd script included +in Slackware's mkinitrd package. We'll walk through the process of +upgrading to the generic 2.6.29.5 Linux kernel using the packages +found in Slackware's slackware/a/ directory. + +First, make sure the kernel, kernel modules, and mkinitrd package are +installed (the current version numbers might be a little different, so +this is just an example): + + installpkg kernel-generic-2.6.29.5-i686-1.tgz + installpkg kernel-modules-2.6.29.5-i686-1.tgz + installpkg mkinitrd-1.1.0-i486-1.tgz + +Change into the /boot directory: + + cd /boot + +Now you'll want to run "mkinitrd". I'm using reiserfs for my root +filesystem, and since it's an IDE system the reiserfs module will be +the only one I need to load: + + mkinitrd -c -k 2.6.29.5 -m reiserfs + +This should do two things. First, it will create a directory +/boot/initrd-tree containing the initrd's filesystem. Then it will +create an initrd (/boot/initrd.gz) from this tree. If you wanted to, +you could make some additional changes in /boot/initrd-tree/ and +then run mkinitrd again without options to rebuild the image. That's +optional, though, and only advanced users will need to think about that. + +Here's another example: Build an initrd image using Linux 2.6.29.5 +kernel modules for a system with an ext3 root partition on /dev/hdb3. +Note that you need the mbcache, jbd, and ext3 modules to use ext3: + + mkinitrd -c -k 2.6.29.5 -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3 + + +4. Now that I've built an initrd, how do I use it? + +Now that you've got an initrd (/boot/initrd.gz), you'll want to load +it along with the kernel at boot time. If you use LILO for your boot +loader you'll need to edit /etc/lilo.conf and add a line to load the +initrd. Here's an example section of lilo.conf showing how this is +done: + +# Linux bootable partition config begins +image = /boot/vmlinuz-generic-2.6.29.5 + initrd = /boot/initrd.gz + root = /dev/hda6 + label = Lnx26295 + read-only +# Linux bootable partition config ends + +The initrd is loaded by the "initrd = /boot/initrd.gz" line. +Just add the line right below the line for the kernel image you use. +Save the file, and then run LILO again ('lilo' at the command line). +You'll need to run lilo every time you edit lilo.conf or rebuild the +initrd. + +Other bootloaders such as syslinux also support the use of an initrd. +See the documentation for those programs for details on using an +initrd with them. + + +--------- + +Have fun! diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff new file mode 100644 index 00000000..e4f64367 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2007-09-29 18:54:25.000000000 -0500 ++++ ./Makefile 2007-11-27 15:35:42.000000000 -0600 +@@ -570,7 +570,7 @@ + quiet_cmd_busybox__ ?= LINK $@ + cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \ + -o $@ -Wl,-Map -Wl,$@.map \ +- -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \ ++ -Wl,--warn-common -Wl,--sort-common \ + -Wl,--start-group $(busybox-all) -Wl,--end-group \ + $(LDLIBS) + diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff new file mode 100644 index 00000000..99257fc7 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff @@ -0,0 +1,20 @@ +--- ./applets/applets.c.orig 2007-09-16 13:48:10.000000000 -0500 ++++ ./applets/applets.c 2007-10-04 22:07:47.000000000 -0500 +@@ -16,7 +16,7 @@ + #include "busybox.h" + + /* Apparently uclibc defines __GLIBC__ (compat trick?). Oh well. */ +-#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__) ++/* #if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__) + #warning Static linking against glibc produces buggy executables + #warning (glibc does not cope well with ld --gc-sections). + #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400 +@@ -24,7 +24,7 @@ + #warning If you still want to do it, remove -Wl,--gc-sections + #warning from top-level Makefile and remove this warning. + #error Aborting compilation. +-#endif ++#endif */ + + + /* Declare <applet>_main() */ diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign new file mode 100644 index 00000000..19ac2fab --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +busybox-1.7.2.tar.bz2 released Sun, 30 Sep 2007 01:02:10 +0100 + +MD5: c91ec9756e2000073a9dd8fa9fc3f89e busybox-1.7.2.tar.bz2 +SHA1: d9c618a7b104af4e70d623b1b6f3bc454405e12b busybox-1.7.2.tar.bz2 + +To verify this signature, you can obtain my public key +from http://busybox.net/~vda/vda_pubkey.gpg + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2.2 (GNU/Linux) + +iD8DBQFG/ueHR7cMVazJllsRAuBAAJ9r7SuXFQJCm/k0KZp39oDMsqBy7ACffZ9t +r/kwDWTYEr7doIKcNINt+p0= +=GHTs +-----END PGP SIGNATURE----- diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 new file mode 100644 index 00000000..012350ef --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 @@ -0,0 +1,855 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.11.2 +# Tue Sep 23 23:25:46 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +# CONFIG_FEATURE_RPM_BZ2 is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_GZIP=y +CONFIG_FEATURE_TAR_BZIP2=y +CONFIG_FEATURE_TAR_LZMA=y +CONFIG_FEATURE_TAR_COMPRESS=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Common options for cpio and tar +# +# CONFIG_FEATURE_DEB_TAR_GZ is not set +# CONFIG_FEATURE_DEB_TAR_BZ2 is not set +# CONFIG_FEATURE_DEB_TAR_LZMA is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +# CONFIG_FINDFS is not set +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 new file mode 100644 index 00000000..b462fe9a --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.0 +# Thu Sep 25 12:38:54 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +# CONFIG_FINDFS is not set +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 new file mode 100644 index 00000000..5987e050 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.1 +# Fri Nov 7 10:20:30 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 new file mode 100644 index 00000000..5b9c00b4 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 @@ -0,0 +1,753 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.7.2 +# Thu Oct 4 22:03:29 2007 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_NITPICK=y +CONFIG_DESKTOP=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_BUILD_AT_ONCE=y + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_FANCY_KEYS=y +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_CPIO=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +# CONFIG_FEATURE_RPM_BZ2 is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_BZIP2=y +CONFIG_FEATURE_TAR_LZMA=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_GZIP=y +CONFIG_FEATURE_TAR_COMPRESS=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Common options for cpio and tar +# +CONFIG_FEATURE_UNARCHIVE_TAPE=y +# CONFIG_FEATURE_DEB_TAR_GZ is not set +# CONFIG_FEATURE_DEB_TAR_BZ2 is not set +# CONFIG_FEATURE_DEB_TAR_LZMA is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_PWD_GRP is not set +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_ADDUSER=y +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_READPROFILE=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_LAST=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_STRINGS=y +CONFIG_SETSID=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_PSCAN=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_ROUTE=y +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_LASH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set + +# +# ipsvd utilities +# +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y diff --git a/source/a/mkinitrd/busybox-1.12.1_inotify.diff b/source/a/mkinitrd/busybox-1.12.1_inotify.diff new file mode 100644 index 00000000..151d16ce --- /dev/null +++ b/source/a/mkinitrd/busybox-1.12.1_inotify.diff @@ -0,0 +1,11 @@ +--- busybox-1.12.1.orig/miscutils/inotifyd.c 2008-11-07 01:39:21.000000000 +0000 ++++ busybox-1.12.1/miscutils/inotifyd.c 2008-11-07 01:37:05.000000000 +0000 +@@ -28,7 +28,7 @@ + */ + + #include "libbb.h" +-#include <linux/inotify.h> ++#include <sys/inotify.h> + + static volatile smallint signalled; + diff --git a/source/a/mkinitrd/busybox-dot-config b/source/a/mkinitrd/busybox-dot-config new file mode 100644 index 00000000..5987e050 --- /dev/null +++ b/source/a/mkinitrd/busybox-dot-config @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.1 +# Fri Nov 7 10:20:30 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init new file mode 100755 index 00000000..0559932e --- /dev/null +++ b/source/a/mkinitrd/init @@ -0,0 +1,230 @@ +#!/bin/ash +# +# /init: init script to load kernel modules from an initramfs +# This requires that your kernel supports initramfs!!! +# +# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA +# 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. + + +# With a generic kernel, you need to load the modules needed to mount the +# root partition. This might mean a SCSI, RAID, or other drive controller +# module, as well as the module to support the root filesystem. Once the +# root partition is mounted all the other modules will be available so you +# don't need to load them here. +# +# Config files used by this script: +# +# /rootdev Contains the name of the root device, such as: /dev/hda1 +# +# /rootfs Contains the root filesystem type, such as: xfs +# +# /initrd-name Contains the name of the initrd file. +# +# Optional: +# /load_kernel_modules A script that uses insmod to load the desired +# modules. If this file is not present, all the modules +# in /lib/modules/`uname -r`/ will be loaded in the usual +# sorted order. If you need to load the modules in a +# certain order, or if the modules need extra options, +# then use a load_kernel_modules script. +# +# There's an example in here. To actually use it, you'll +# need to make it executable: +# +# chmod 755 load_kernel_modules + +INITRD=`cat /initrd-name` +ROOTDEV=`cat /rootdev` +ROOTFS=`cat /rootfs` +LUKSDEV=`cat /luksdev` +RESUMEDEV=`cat /resumedev` +WAIT=`cat /wait-for-root` +KEYMAP=`cat /keymap` + +# Mount /proc and /sys: +mount -n proc /proc -t proc +mount -n sysfs /sys -t sysfs + +# Parse command line +for ARG in `cat /proc/cmdline`; do + case $ARG in + rescue) + RESCUE=1 + ;; + root=/dev/*) + ROOTDEV=`echo $ARG | cut -f2 -d=` + ;; + rootfs=*) + ROOTFS=`echo $ARG | cut -f2 -d=` + ;; + luksdev=/dev/*) + LUKSDEV=`echo $ARG | cut -f2 -d=` + ;; + waitforroot=*) + WAIT=`echo $ARG | cut -f2 -d=` + ;; + root=LABEL=*) + ROOTDEV=`echo $ARG | cut -f2- -d=` + ;; + resume=*) + RESUMEDEV=`echo $ARG | cut -f2 -d=` + ;; + 0|1|2|3|4|5|6) + RUNLEVEL=$ARG + ;; + esac +done + +# Load kernel modules: +if [ ! -d /lib/modules/`uname -r` ]; then + echo "No kernel modules found for Linux `uname -r`." +elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script: + echo "${INITRD}: Loading kernel modules from initrd image:" + . ./load_kernel_modules +else # load modules (if any) in order: + if ls /lib/modules/`uname -r`/*.*o 1> /dev/null 2> /dev/null ; then + echo "${INITRD}: Loading kernel modules from initrd image:" + for module in /lib/modules/`uname -r`/*.*o ; do + insmod $module + done + unset module + fi +fi + +# Sometimes the devices needs extra time to be available. +# root on USB are good example of that. +sleep $WAIT + +# If udevd is available, use it to generate block devices +# else use mdev to read sysfs and generate the needed devices +if [ -x /sbin/udevd -a -x /sbin/udevadm ]; then + /sbin/udevd --daemon + /sbin/udevadm trigger --subsystem-match=block + /sbin/udevadm settle --timeout=10 +else + mdev -s +fi + +# Load a custom keyboard mapping: +if [ -n "$KEYMAP" ]; then + echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:" + tar xzOf /etc/keymaps.tar.gz ${KEYMAP}.bmap | loadkmap +fi + +if [ "$RESCUE" = "" ]; then + # Initialize RAID: + if [ -x /sbin/mdadm ]; then + /sbin/mdadm -E -s >/etc/mdadm.conf + /sbin/mdadm -A -s + fi + + # Find root device if a label was given: + if echo $ROOTDEV | grep -q "LABEL=" ; then + ROOTDEV=`findfs $ROOTDEV` + fi + + # Make encrypted root partition available: + # The useable device will be under /dev/mapper/ + # Three scenarios for the commandline exist: + # 1- ROOTDEV is on a LUKS volume, and LUKSDEV is a real block device + # 2- ROOTDEV is on a LVM volume, and LUKSDEV is a real block device + # 3- ROOTDEV is on a LUKS volume, and LUKSDEV is on a LVM volume + # Case (3) will have to wait until we initialize the LVM. + # Test if ROOTDEV is "/dev/someting" or just "something" - the first means + # ROOTDEV is on a LVM volume (scenario 2); we don't need to rewrite ROOTDEV. + # The second means that ROOTDEV is on a LUKS volume (scenario 1). + CRYPTDEV="" + if [ -x /sbin/cryptsetup ]; then + # If we find a LUKS device now, it is on a real block device: + if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then + CRYPTDEV=$(basename $ROOTDEV) + echo "Unlocking LUKS crypt volume '${CRYPTDEV}' on device '$LUKSDEV':" + /sbin/cryptsetup luksOpen ${LUKSDEV} $CRYPTDEV </dev/systty >/dev/systty 2>&1 + if [ "$CRYPTDEV" == "$ROOTDEV" ]; then # scenario 1 + ROOTDEV="/dev/mapper/${CRYPTDEV}" + fi + fi + fi + + # Initialize LVM: + if [ -x /sbin/vgscan ]; then + /sbin/vgscan --mknodes --ignorelockingfailure + sleep 10 + /sbin/vgchange -ay --ignorelockingfailure + fi + + # Make encrypted root partition available (scenario 3): + # We have to handle cases here where the LUKS volume is created on a LV + if [ -x /sbin/cryptsetup ]; then + if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then + # Only act if we could not open the LUKS device before (i.e. is on a LV): + if [ "x$CRYPTDEV" == "x" ]; then + echo "Unlocking LUKS crypt volume '${ROOTDEV}' on device '$LUKSDEV':" + /sbin/cryptsetup luksOpen ${LUKSDEV} $ROOTDEV </dev/systty >/dev/systty 2>&1 + ROOTDEV="/dev/mapper/${ROOTDEV}" + fi + fi + fi + + # Resume state from swap + if [ "$RESUMEDEV" != "" ]; then + if ls -l $RESUMEDEV | grep -q "^l" ; then + RESUMEDEV=`ls -l $RESUMEDEV | awk '{ print $NF }'` + fi + echo "Trying to resume from $RESUMEDEV" + RESMAJMIN=`ls -l $RESUMEDEV | tr , : | awk '{ print $5$6 }'` + echo $RESMAJMIN > /sys/power/resume + fi + + # Switch to real root partition: + echo 0x0100 > /proc/sys/kernel/real-root-dev + mount -o ro -t $ROOTFS $ROOTDEV /mnt + + if [ ! -r /mnt/sbin/init ]; then + echo "ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead." + echo " You can try to fix it. Type 'exit' when things are done." + echo + /bin/sh + fi +else + echo "RESCUE mode" + echo + echo " You can try to fix or rescue your system now. If you want" + echo " to boot into your fixed system, mount your root filesystem" + echo " read-only under /mnt:" + echo + echo " # mount -o ro -t filesystem root_device /mnt" + echo + echo " Type 'exit' when things are done." + echo + /bin/sh +fi + +if ps axc | grep -q udevd ; then + killall udevd +fi + +unset ERR +umount /proc +umount /sys +echo "${INITRD}: exiting" +exec switch_root /mnt /sbin/init $RUNLEVEL diff --git a/source/a/mkinitrd/mkinitrd b/source/a/mkinitrd/mkinitrd new file mode 100644 index 00000000..8f77725f --- /dev/null +++ b/source/a/mkinitrd/mkinitrd @@ -0,0 +1,494 @@ +#!/bin/sh +# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2004 Patrick J. Volkerding, Concord, CA, 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. + +# Modified by Robby Workman <rworkman@slackware.com> 26 November 2007 +# to add support for mkinitrd.conf - No additional license terms added +# Modified by Alan Hicks <alan@slackware.com> 27 November 2007 to enable +# passing arguments to kernel modules - No additional license terms added +# volkerdi - feel free to remove these :) +# Modified by Eric Hameleers <alien@slackware.com> 3 April 2008 +# to add support custom keymaps - No additional license terms added +# Modified by Patrick Volkerding <volkerdi@slackware.com> 17 Dec 2008 +# Added support to bail out if kernel modules are requested for a kernel +# version that is not installed (thanks to Eric Hameleers), be more +# verbose about showing modules added to the initrd (thanks to +# Ellington Santos), and if "mount" returns /dev/root as the root device, +# use readlink to resolve the device pointed to by the /dev/root +# symlink, changed modprobe to use --ignore-install to avoid catching +# custom "install" lines and causing /sbin/modprobe to be copied to the +# initrd (thanks to Ken Milmore). +# Of course, license terms remain unchanged. + +MKINITRD_VERSION=1.3.4 + +print_usage() { + cat << EOF +Usage: mkinitrd [OPTION] + +mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip +archive) used to load kernel modules that are needed to mount the +root filesystem, or other modules that might be needed before the +root filesystem is available. Other binaries may be added to the +initrd, and the script is easy to modify. Be creative. :-) + + -F Use the contents of /etc/mkinitrd.conf (optional) + If this is used in conjunction with any other options passed + on the command line, the command-line options will override + the config file options. See mkinitrd.conf(5) for details. + -c Clear the existing initrd tree first + -f Filesystem to use for root partition (must be used with -r) + --help Display this message + -h Device to resume from hibernation. Needs to be the name of + the swap partition holding the hibernation image. + -k Kernel version to use + -l Custom keymap to load. Like, 'nl' or 'de-latin1-nodeadkeys' + -m A colon (:) delimited list of kernel modules to load. + Additional options may be added to use when loading the + kernel modules (but in this case the entire list must be + wrapped with double quotes). Any dependencies of requested + modules will also be added to the initrd. + -o Output image (default /boot/initrd.gz) + -r Root partition device (must be used with -f) + -s Initrd source tree (default /boot/initrd-tree/) + -w Time to wait until all disks are detected + -C Use cryptsetup to unlock the underlying device of an + encrypted root filesystem (must be used with '-r' parameter). + Two scenarios are possible. (1) root filesystem was created on the + encrypted disk/LVM partition, example: + -C /dev/sda2 -r cryptroot + where /dev/sda2 is the encrypted partition and + the actual root device name in /etc/fstab is: + /dev/mapper/cryptroot + (2) the encrypted partition contains a LVM volume which holds the + root filesystem, example: + -C /dev/sda2 -r /dev/vg/root + where /dev/sda2 is the encrypted partition and + the actual root device name in /etc/fstab is: + /dev/vg/root + -L Add support for LVM partitions + -R Add support for RAID partitions + -V Display version number + +A simple example: Build an initrd for a reiserfs root partition: + + mkinitrd -c -m reiserfs + +Another example: Build an initrd image using Linux 2.6.29.3-smp kernel +modules for a system with an ext3 root partition on /dev/hdb3: + + mkinitrd -c -k 2.6.29.3-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3 + +Note that if you are already logged in with /dev/hdb3 as your / +partition, and it is running ext3, this command works just the same: + + mkinitrd -c -m ext3 + +If run without options, mkinitrd will rebuild an initrd image using +the contents of the $SOURCE_TREE directory, or, if that directory +does not exist it will be created and populated, and then mkinitrd +will exit. + +EOF +} + +create_new_source_tree() { + mkdir -p $SOURCE_TREE + # Make sure a kernel module directory exists: + mkdir -p $SOURCE_TREE/lib/modules/${KERNEL_VERSION} + # Add the initrd-tree skeleton: + ( cd $SOURCE_TREE ; tar xzf /usr/share/mkinitrd/initrd-tree.tar.gz ) + # Make sure we have any block devices that might be needed: + + SLOPPY_DEV_LIST=$(cat /proc/partitions) + for device in $SLOPPY_DEV_LIST ; do + if [ ! -r $SOURCE_TREE/dev/$device ]; then + if [ -b /dev/$device ]; then + if [ -L /dev/$device ]; then + cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE + fi + cp -a --parents /dev/$device $SOURCE_TREE + fi + fi + done +} + +clear_source_tree() { + if [ -d "$SOURCE_TREE" ]; then + rm -rf $SOURCE_TREE + fi +} + +build_initrd_image() { + # Make sure we have any block devices that might be needed: + SLOPPY_DEV_LIST=$(cat /proc/partitions) + for device in $SLOPPY_DEV_LIST ; do + if [ ! -r $SOURCE_TREE/dev/$device ]; then + if [ -b /dev/$device ]; then + if [ -L /dev/$device ]; then + cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE + fi + cp -a --parents /dev/$device $SOURCE_TREE + fi + fi + done + # Wrap the initrd as an initramfs image and move it into place: + ( cd $SOURCE_TREE + rm -f $OUTPUT_IMAGE + find . | cpio -o -H newc | gzip -9c > $OUTPUT_IMAGE + ) +} + +badconf_file() { + # This won't really help with what's *wrong* with the file, + # but it will at least give them a clue that there's a problem + echo "/etc/mkinitrd.conf is bad or does not exist." + echo "If the file does not exist, do not pass -F to mkinitrd." + exit 1 +} + +# If --help is given, print_usage and exit: +if echo $* | grep -wq '\--help' ; then + print_usage + exit 0 +fi + +# If -V given, print version and exit: +if echo $* | grep -wq '\-V' ; then + echo "mkinitrd version $MKINITRD_VERSION" + exit 0 +fi + +# Default values if these aren't previously set. +# Might be set from config file or by -s and -o options too. +SOURCE_TREE=${SOURCE_TREE:-/boot/initrd-tree} +OUTPUT_IMAGE=${OUTPUT_IMAGE:-/boot/initrd.gz} +KERNEL_VERSION=${KERNEL_VERSION:-"$(uname -r)"} + +# Default actions without options: +if [ -z "$1" ]; then + # If the output tree doesn't exist, create it and then exit: + if [ ! -d $SOURCE_TREE ]; then + echo "Nothing found at location $SOURCE_TREE, so we will create an" + echo -n "initrd directory structure there... " + create_new_source_tree + echo "done." + echo + echo "Now cd to $SOURCE_TREE and install some modules in your" + echo "module directory (lib/modules/${KERNEL_VERSION}). Then see init" + echo "for more information (there are a few other files to edit)." + echo "Finally, run mkinitrd again once the initrd-tree is ready," + echo "and $OUTPUT_IMAGE will be created from it." + echo + exit 0 + else + # If the source tree does exist, the default is to build the initrd + # image from it and then exit: + build_initrd_image + echo "$OUTPUT_IMAGE created." + echo "Be sure to run lilo again if you use it." + exit 0 + fi +fi # default no-option actions + +# Parse for the use config file option first or else the other command +# line options can not override /etc/mkinitrd.conf. +for opt in "$@"; do + if [ $opt = "-F" ]; then + if [ -e /etc/mkinitrd.conf ]; then + . /etc/mkinitrd.conf || badconf_file + else + badconf_file + fi + fi +done + +# Parse options: +while [ ! -z "$1" ]; do + case $1 in + -c) + CLEAR_TREE=1 + shift + ;; + -f) + ROOTFS="$2" + shift 2 + ;; + -h) + RESUMEDEV="$2" + shift 2 + ;; + -k) + KERNEL_VERSION="$2" + shift 2 + ;; + -l) + KEYMAP="$2" + shift 2 + ;; + -m) + MODULE_LIST="$2" + shift 2 + ;; + -o) + OUTPUT_IMAGE="$2" + if [ ! "$(echo $OUTPUT_IMAGE | cut -b1)" = "/" ]; then + OUTPUT_IMAGE=$(pwd)/$OUTPUT_IMAGE + fi + shift 2 + ;; + -r) + ROOTDEV="$2" + shift 2 + ;; + -s) + SOURCE_TREE="$2" + shift 2 + ;; + -w) + WAIT="$2" + shift 2 + ;; + -C) + CRYPT=1 + LUKSDEV="$2" + shift 2 + ;; + -L) + LVM=1 + shift + ;; + -R) + RAID=1 + shift + ;; + *) # unknown, prevent infinite loop + shift + ;; + esac +done + +# If kernel modules are needed but the kernel version is absent, exit now: +if [ ! -d /lib/modules/$KERNEL_VERSION ]; then + echo "ERROR: No /lib/modules/$KERNEL_VERSION kernel modules tree found for kernel \"$KERNEL_VERSION\"" + exit 1 +fi + +# If clearing source tree was requested, do that first +if [ "$CLEAR_TREE" = "1" ]; then + clear_source_tree +fi + +# If there's no $SOURCE_TREE, make one now: +if [ ! -d "$SOURCE_TREE" ]; then + create_new_source_tree +fi + +# If $ROOTDEV and $ROOTFS are not set, assume we want the +# values for the currently mounted / +# (unless we find that values are already set in the initrd-tree): +if [ -z "$ROOTDEV" -a -z "$(cat $SOURCE_TREE/rootdev 2> /dev/null)" ]; then + ROOTDEV=$(mount | grep ' on / ' | cut -f 1 -d ' ') + if [ "$ROOTDEV" = "/dev/root" ]; then # find real root device + ROOTDEV="/dev/$(readlink /dev/root)" + fi +fi +if [ -z "$ROOTFS" -a -z "$(cat $SOURCE_TREE/rootfs 2> /dev/null)" ]; then + ROOTFS=$(mount | grep ' on / ' | cut -f 5 -d ' ') +fi +# If needed, write them in the initrd-tree: +if [ ! -z "$ROOTDEV" ]; then + echo $ROOTDEV > $SOURCE_TREE/rootdev +fi +if [ ! -z "$ROOTFS" ]; then + echo $ROOTFS > $SOURCE_TREE/rootfs +fi + +# If $WAIT is not set, assume we need only one second +# to have all devices done +# (unless we find that value is already set in the initrd-tree): +if [ -z "$WAIT" -a -z "$(cat $SOURCE_TREE/wait-for-root)" ]; then + WAIT=1 +fi +if [ ! -z "$WAIT" ]; then + echo $WAIT > $SOURCE_TREE/wait-for-root +fi + +# Useful to know which initrd is running: +INITRD_NAME=$(basename $OUTPUT_IMAGE) +echo $INITRD_NAME > $SOURCE_TREE/initrd-name + +# Fill /resumedev with the swap partition holding the hibernation image +if [ ! -z "$RESUMEDEV" ]; then + echo $RESUMEDEV > $SOURCE_TREE/resumedev +fi + +# Add custom keymap support if one was given +if [ ! -z "$KEYMAP" ]; then + echo $KEYMAP > $SOURCE_TREE/keymap + cp /usr/share/mkinitrd/keymaps.tar.gz $SOURCE_TREE/etc/ +fi + +# If LUKSDEV was set in the config file, then we need to set CRYPT=1 +if [ ! -z "$LUKSDEV" ]; then + CRYPT=1 +fi + +# Include RAID support in initrd +if [ ! -z "$RAID" ]; then + if [ -r /sbin/mdadm ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/mdadm $SOURCE_TREE/sbin/mdadm + chmod 755 $SOURCE_TREE/sbin/mdadm + else + echo "ERROR: mdadm binary is missing, RAID support not installed" + fi +fi + +# Include LVM support in initrd +if [ ! -z "$LVM" ]; then + if [ -f /sbin/lvm.static ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/lvm.static $SOURCE_TREE/sbin/lvm.static + cp /sbin/dmsetup.static $SOURCE_TREE/sbin/dmsetup.static + ( cd $SOURCE_TREE/sbin + ln -s lvm.static vgchange 2>/dev/null + ln -s lvm.static vgscan 2>/dev/null ) + if [ -z "${MODULE_LIST}" ] ; then + MODULE_LIST="dm-mod" + elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then + MODULE_LIST="$MODULE_LIST:dm-mod" + fi + else + echo "LVM static binary is missing, LVM support isn't installed" + fi +fi + +# Include cryptsetup (LUKS) support in initrd +if [ ! -z "$CRYPT" ]; then + if [ -e /sbin/cryptsetup.static ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/cryptsetup.static $SOURCE_TREE/sbin/cryptsetup.static + ( cd $SOURCE_TREE/sbin + ln -s cryptsetup.static cryptsetup 2>/dev/null + ) + cat << EOF > $SOURCE_TREE/sbin/udevadm +#!/bin/sh +sleep 3 +EOF + chmod 0755 $SOURCE_TREE/sbin/udevadm + + if [ -z "${MODULE_LIST}" ] ; then + MODULE_LIST="dm-mod" + elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then + MODULE_LIST="$MODULE_LIST:dm-mod" + fi + # Write the underlying luks device to the initrd-tree: + echo $LUKSDEV > $SOURCE_TREE/luksdev + else + echo "Cryptsetup static binary is missing, CRYPT support isn't installed" + fi +fi + +# Make module directory: +if [ ! -d $SOURCE_TREE/lib/modules/$KERNEL_VERSION ]; then + mkdir -p $SOURCE_TREE/lib/modules/$KERNEL_VERSION +fi + +# If a module list was given, copy the modules into place: +if [ ! -z "$MODULE_LIST" ]; then + if grep -q "#insmod /lib/modules/2.6.18.8-smp/reiserfs.ko" $SOURCE_TREE/load_kernel_modules ; then + rm -f $SOURCE_TREE/load_kernel_modules + touch $SOURCE_TREE/load_kernel_modules + chmod 755 $SOURCE_TREE/load_kernel_modules + echo "# This is a script used to load the kernel modules." >> $SOURCE_TREE/load_kernel_modules + echo "# To use it, chmod it 755, and then add the insmod" >> $SOURCE_TREE/load_kernel_modules + echo "# lines needed to load your modules, like this:" >> $SOURCE_TREE/load_kernel_modules + echo >> $SOURCE_TREE/load_kernel_modules + fi + + # Count number of modules + # This INDEX number gives us an easy way to find individual + # modules and their arguments, as well as tells us how many + # times to run through the list + if ! echo $MODULE_LIST | grep ':' > /dev/null ; then # only 1 module specified + INDEX=1 + else + INDEX=1 + while [ ! "$(echo "$MODULE_LIST" | cut -f $INDEX -d ':' )" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # Don't include the null value + fi + +# Wrap everything in a while loop +i=0 +while [ $i -ne $INDEX ]; do + i=$(( $i + 1 )) + + # FULL_MOD is the module plus any arguments (if any) + # MODULE is the module name + # ARGS is any optional arguments to be passed to the kernel + FULL_MOD="$(echo "$MODULE_LIST" | cut -d ':' -f $i)" + MODULE="$(echo "$FULL_MOD" | cut -d ' ' -f 1 )" + # Test for arguments + if echo "$FULL_MOD" | grep ' ' > /dev/null; then + ARGS=" $(echo "$FULL_MOD" | cut -d ' ' -f 2- )" + else + unset ARGS + fi + + # Get MODULE deps and prepare insmod lines + /sbin/modprobe --set-version $KERNEL_VERSION --show-depends --ignore-install $MODULE 2> /dev/null \ + | grep "^insmod " | cut -f 2 -d ' ' | while read SRCMOD; do + + if ! grep -q "$SRCMOD" $SOURCE_TREE/load_kernel_modules 2>/dev/null ; then + LINE="$(echo "insmod -v $SRCMOD" | sed -e "s/$KERNEL_VERSION/\$(uname -r)/")" + + # Test to see if arguments should be passed + # Over-ride the previously defined LINE variable if so + if [ "$(basename $SRCMOD .ko)" = "$MODULE" ]; then + # SRCMOD and MODULE are same, ARGS can be passed + LINE="$LINE$ARGS" + fi + + fi + + if ! grep -qx "$LINE" $SOURCE_TREE/load_kernel_modules ; then + echo "$LINE" >> $SOURCE_TREE/load_kernel_modules + fi + + if cp -a --parents $SRCMOD $SOURCE_TREE 2> /dev/null; then + echo "OK: $SRCMOD added." + else + echo "WARNING: Could not find module \"$SRCMOD\"" + fi + + done + +done + +fi + +# And finally, build the initrd: +build_initrd_image + diff --git a/source/a/mkinitrd/mkinitrd.8 b/source/a/mkinitrd/mkinitrd.8 new file mode 100644 index 00000000..5fa95721 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.8 @@ -0,0 +1,194 @@ +.\" -*- 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 MKINITRD 8 "04 March 2008" "Slackware Version 12.1" +.SH NAME +mkinitrd \- create or rebuilt an initrd (initial ramdisk) using initramfs (simple cpio+gzip). +.SH SYNOPSIS +.B mkinitrd +[ +.B \-F +] +[ +.B \-c +] +[ +.B \-f filesystem +] +[ +.B \-h hibernate_partition +] +[ +.B \-k kernel_version +] +[ +.B \-m module1:module2:module3... +] +[ +.B \-o output_file +] +[ +.B \-r root_device +] +[ +.B \-s source_tree +] +[ +.B \-C crypt_device +] +[ +.B \-L +] +[ +.B \-R +] +[ +.B \-V +] +.SH DESCRIPTION +.B mkinitrd +is used to build an initial ramdisk. An initial ramdisk is a very small +set of files that are loaded into RAM and "mounted" (as initramfs doesn't +actually use a filesystem) as the kernel boots (before the main root +filesystem is mounted). The usual reason to use an initrd is because +you need to load kernel modules before mounting the root partition. +Usually these modules are required to support the filesystem used by the +root partition (ext3, reiserfs, xfs), or perhaps the controller that the +hard drive is attached to (SCSI, RAID, etc). Essentially, there are so many +different options available in modern Linux kernels that it isn't practical +to try to ship many different kernels to try to cover everyone's needs. +It's a lot more flexible to ship a generic kernel and a set of kernel +modules for it. +.SH OPTIONS +.TP +.B \-F +Use the contents of /etc/mkinitrd.conf as options to mkinitrd (optional). +If this is used in conjunction with any other options passed on the command +line, the command-line options will override the config file options. +.br +See mkinitrd.conf(5) for details. +.TP +.B \-c +Clear the existing initrd tree (by default in /boot/initrd-tree/) first. +If this is not done, running mkinitrd will add additional modules to the +existing initrd. +.TP +.B \-f filesystem +Specify the filesystem to use for the root partition. If this isn't given, +mount will usually figure it out. This option must be used together with the +\-r option in order to be beneficial. +.TP +.B \--help +Display a help summary. +.TP +.B \-h hibernate_partition +Specify the swap partition holding the hibernation image. +.TP +.B \-k kernel version +Use kernel modules from the specified kernel version. mkinitrd will look +for them in /lib/modules/(kernel version). +.TP +.B \-l keymap +Load an alternative keyboard mapping. All supported keyboard mappings +can be found in /usr/share/mkinitrd/keymaps.tar.gz +Leave the '.bmap' out when you supply this parameter. E.g. '-l nl' will +add support for dutch keyboard mapping to the initrd. +.TP +.B \-m module list +This is a list of colon-delimited modules to build into the initrd. +Any dependencies of requested modules will also be added to the initrd. +Additional options may be added to use when loading the kernel modules +(but in this case the entire list must be wrapped with double quotes). +.TP +.B \-o output image +The file to write the initrd to. (default: /boot/initrd.gz) +.TP +.B \-r root partition +Specify the device to be used as the root partition. If this isn't given, the +kernel default will be used (which is usually fine). This option must be used +together with the \-f option in order to be beneficial. +.TP +.B \-s source tree +The directory to use as the source for the initrd. (default: /boot/initrd-tree/) +.TP +.B \-w +The -w option specifies how long to wait in seconds before assuming that all the +drives are spun up and ready to go. +.TP +.B \-C +Use cryptsetup to enable the underlying device of an encrypted root partition. +Requires '-r' parameter. Two scenarios are possible. +.br +(1) root filesystem was created on the encrypted disk/LVM partition, example: + + -C /dev/sda2 -r cryptroot + +where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is: + + /dev/mapper/cryptroot + +(2) the encrypted partition contains a LVM volume which holds the root filesystem, example: + + -C /dev/sda2 -r /dev/vg/root + +where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is: + + /dev/vg/root +.TP +.B \-L +This option adds LVM support to the initrd, if the tools are +available on the system. +.TP +.B \-R +This option adds RAID support to the initrd, if a static mdadm binary is +available on the system. +.TP +.B \-V +Display version information and exit. +.SH EXAMPLES +A simple example: Build an initrd for a reiserfs root partition: + + mkinitrd -c -m reiserfs + +Another example: Build an initrd image using Linux 2.6.24.5 kernel +modules for a system with an ext3 root partition on /dev/hdb3: + + mkinitrd -c -k 2.6.24.5 -m ext3 -f ext3 -r /dev/hdb3 + +If run without options, mkinitrd will rebuild an initrd image using +the contents of the $SOURCE_TREE directory, or, if that directory +does not exist it will be created and populated, and then mkinitrd +will exit. These options are handy for building an initrd mostly +by hand. After creating /boot/initrd-tree/, you can add modules and +edit files by hand, and then rerun mkinitrd to create the initrd. + +Once the initrd is created, you'll need to tell your boot loader +to load it. If you boot with LILO, you will need to add an initrd +line to /etc/lilo.conf. Here's a section of lilo.conf that shows +how to set this up: + + # Linux bootable partition config begins + image = /boot/vmlinuz-generic-2.6.24.5 + initrd = /boot/initrd.gz + root = /dev/hda6 + label = Linux26245 + read-only + # Linux bootable partition config ends + +Once you've created the initrd and editing /etc/lilo.conf, you will +need to run 'lilo' to write out the changed boot block. The next +time you reboot the initrd should be loaded along with the kernel. + +Have fun! + +.SH SEE ALSO +mkinitrd.conf (5) + +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild new file mode 100755 index 00000000..10e70b99 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# 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. + + +VERSION=1.3.4 +BB=1.12.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:--j7} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mkinitrd + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf busybox-$BB +tar xvf $CWD/busybox-$BB.tar.bz2 || exit 1 +cd busybox-$BB + +#zcat $CWD/busybox-${BB}.remove_warning.diff.gz | patch -p1 --verbose || exit 1 +#zcat $CWD/busybox-${BB}.no-gc-sections.diff.gz | patch -p1 --verbose || exit 1 +# Needed with 2.6.27 kernel: +zcat $CWD/busybox-1.12.1_inotify.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +sed -e \ + 's#^CONFIG_PREFIX=.*#CONFIG_PREFIX="'$PKG'/usr/share/mkinitrd/initrd-tree"#' \ + $CWD/busybox-dot-config > .config +make oldconfig +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/share/mkinitrd/initrd-tree/{bin,sbin} +make install || exit 1 +rm -f $PKG/usr/share/mkinitrd/initrd-tree/linuxrc + +# Copying additional files: +cp $CWD/mkinitrd_command_generator.sh $PKG/usr/share/mkinitrd +chmod 755 $PKG/usr/share/mkinitrd/mkinitrd_command_generator.sh +cp $CWD/keymaps.tar.gz $PKG/usr/share/mkinitrd + +# Zip up the initrd-tree: +( cd $PKG/usr/share/mkinitrd/initrd-tree + tar xf $CWD/_initrd-tree.tar.gz + cat $CWD/init > init + tar czf ../initrd-tree.tar.gz . +) +rm -rf $PKG/usr/share/mkinitrd/initrd-tree + +# Add busybox docs: +mkdir -p $PKG/usr/doc/busybox-$BB +cp -a AUTHORS INSTALL LICENSE README \ + $PKG/usr/doc/busybox-$BB + +mkdir -p $PKG/sbin +cat $CWD/mkinitrd > $PKG/sbin/mkinitrd +chmod 755 $PKG/sbin/mkinitrd + +mkdir -p $PKG/usr/man/man{5,8} +cat $CWD/mkinitrd.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd.8.gz +cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz + +mkdir -p $PKG/etc +cat $CWD/mkinitrd.conf.sample > $PKG/etc/mkinitrd.conf.sample + +mkdir -p $PKG/usr/doc/mkinitrd-$VERSION +cp -a $CWD/README.initrd $PKG/usr/doc/mkinitrd-$VERSION + +( cd $PKG/usr/doc/mkinitrd-$VERSION + DATE="$(date)" + KERNEL_VERSION="$(uname -r)" + PACKAGE_VERSION="$(uname -r | tr - _)" + LILO_KERNEL_NAME="$(echo $(uname -r) | tr -d . | tr -d - )" + cat README.initrd | sed -e s/@DATE@/"$DATE"/ > README.initrd1 + cat README.initrd1 | sed -e s/@KERNEL_VERSION@/"$KERNEL_VERSION"/ > README.initrd2 + cat README.initrd2 | sed -e s/@PACKAGE_VERSION@/"$PACKAGE_VERSION"/ > README.initrd3 + cat README.initrd3 | sed -e s/@LILO_KERNEL_NAME@/"$LILO_KERNEL_NAME"/ > README.initrd4 + cat README.initrd4 | sed -e s/@MKINITRD_VERSION@/"$VERSION"/ > README.initrd5 + cat README.initrd5 | sed -e s/@ARCH@/"$ARCH"/ > README.initrd6 + cat README.initrd6 | sed -e s/@BUILD@/"$BUILD"/ > README.initrd + rm -f README.initrd{1,2,3,4,5,6} +) +chmod 644 $PKG/usr/doc/mkinitrd-$VERSION/* +chown root:root $PKG/usr/doc/mkinitrd-$VERSION/* + +mkdir $PKG/boot +( cd $PKG/boot + ln -sf /usr/doc/mkinitrd-$VERSION/README.initrd . +) + +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/mkinitrd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mkinitrd/mkinitrd.conf.5 b/source/a/mkinitrd/mkinitrd.conf.5 new file mode 100644 index 00000000..5890e246 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.conf.5 @@ -0,0 +1,174 @@ +.\" mkinitrd.5 Robby Workman <rworkman@slackware.com> +.\" 25 November 2007 " + +.TH MKINITRD.CONF 5 "05 Februrary 2008" "Slackware 12.1" +.SH NAME +.B mkinitrd.conf(5) +.SH SYNOPSIS +.B mkinitrd.conf - optional configuration file for +.I mkinitrd(8) + +.SH DESCRIPTION +The +.I mkinitrd.conf +file contains options to be passed to +.I mkinitrd(8) +on every run if mkinitrd is executed with the -F flag. +.br +It is intended as a fast and easy way for the system administrator to +pass options to mkinitrd without having to type them on each execution. + +Options passed to +.I mkinitrd(8) +on the command line will override any +values set in the config file. + +.SH OPTIONS AND SYNTAX + +All options are in the format of OPTION="value" +.br +Unset variables have no effect. + +.TP 5 +.I SOURCE_TREE +This is the location for the initrd's source tree. +.br +Defaults to "/boot/initrd-tree" + +.TP 5 +.I CLEAR_TREE +This option specifies whether to clear the initrd source tree prior to +creating the initrd. +.br +This requires a value of either "0" or "1" where 0=no and 1=yes +.br +Examples: +.br +CLEAR_TREE="0" # Do not clear initrd tree first +.br +CLEAR_TREE="1" # Clear initrd tree first + +It is recommended to leave this unset and pass "-c" on the command line +when clearing the tree is desired. Clearing the tree is not desirable +if you wish to build support for more than one kernel into the initrd +image. + +.TP 5 +.I OUTPUT_IMAGE +This is the location for the initrd image that is created. +.br +Defaults to "/boot/initrd.gz" + +.TP 5 +.I KERNEL_VERSION +This is the kernel version for which the initrd should be created. +.br +Defaults to "$(uname -r)" + +.TP 5 +.I KEYMAP +This is the custom keyboard map that should be loaded instead of the +default 'us' keymap. +.br +The file /usr/share/mkinitrd/keymaps.tar.gz contains all possible keymaps +to choose from (omit the '.bmap' extension in the mkinitrd command) +.br +Example: KEYMAP="nl" + +.TP 5 +.I MODULE_LIST +This should be a colon-separated list of modules you wish to be included +in the initrd image. +.br +Example: MODULE_LIST="ext3:mbcache:jbd" + +If you have loadtime options that you need to specify when loading kernel +modules, those can be added here as well. +.br +Example: MODULE_LIST="module1:module2 option=1:module3" + +.TP 5 +.I LUKSDEV +When using cryptsetup with an encrypted root partition, use this variable to +define the *actual* device name of the encrypted root partition and define the +*mapped* device name as ROOTDEV. +.br +For example, if your actual root device name in /etc/fstab is: +.br +.I /dev/mapper/cryptroot +on +.I /dev/sda2 + +Then you'll need to set: +.br +LUKSDEV="/dev/sda2" +.br +ROOTDEV="cryptroot" + +.TP 5 +.I ROOTDEV +The device on which your root filesystem is located. +.br +Example: ROOTDEV="/dev/sda2" + +If you are using cryptsetup and an encrypted root filesystem, be sure to +read the option above for LUKSDEV or Bad Things will happen. + +.TP 5 +.I ROOTFS +The filesystem type of your root filesystem +.br +Example: ROOTFS="ext3" + +.TP 5 +.I RAID +This option adds the mdadm binary to the initrd to support RAID. +Additional modules may be required, depending on your kernel +configuration. If you wish to add LVM support to the initrd, then +set this to 1; otherwise, leave it unset or set it to 0. +.br +Examples: +.br +RAID="0" # Do not add RAID support to initrd +.br +RAID="1" # Add RAID support to initrd + +.TP 5 +.I LVM +This option adds support for LVM partitions into the initrd. +If you wish to add LVM support to the initrd, then set this to 1; +otherwise, leave it unset or set it to 0. +.br +Examples: +.br +LVM="0" # Do not add LVM support to initrd +.br +LVM="1" # Add LVM support to initrd + +.TP 5 +.I WAIT +This defines the time to wait, in seconds, until all disks are detected. +.br +This is useful for allowing extra time that might be needed for slow usb disks or systems with large amounts of storage to become ready. +.br +If not defined, the default is 1 second. + +.TP 5 +.I RESUMEDEV +The swap partition holding your hibernation image. +.br +Example: RESUMEDEV="/dev/sda2" + +.SH FILES +.I /etc/mkinitrd.conf +.br +See /etc/mkinitrd.conf.sample + +.SH "SEE ALSO" +.BR mkinitrd "(8)" + +.SH BUGS +None known :-) + +.SH MISCELLANEOUS +Support for mkinitrd.conf was added in mkinitrd-1.3.0 diff --git a/source/a/mkinitrd/mkinitrd.conf.sample b/source/a/mkinitrd/mkinitrd.conf.sample new file mode 100644 index 00000000..29e56f5f --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.conf.sample @@ -0,0 +1,16 @@ +# mkinitrd.conf.sample +# See "man mkinitrd.conf" for details on the syntax of this file +# +#SOURCE_TREE="/boot/initrd-tree" +#CLEAR_TREE="0" +#OUTPUT_IMAGE="/boot/initrd.gz" +#KERNEL_VERSION="$(uname -r)" +#KEYMAP="us" +#MODULE_LIST="ext3" +#LUKSDEV="/dev/hda1" +#ROOTDEV="/dev/hda1" +#ROOTFS="ext3" +#RESUMEDEV="/dev/hda2" +#RAID="0" +#LVM="0" +#WAIT="1" diff --git a/source/a/mkinitrd/mkinitrd_command_generator.sh b/source/a/mkinitrd/mkinitrd_command_generator.sh new file mode 100644 index 00000000..d3cdfb73 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd_command_generator.sh @@ -0,0 +1,842 @@ +#!/bin/sh +# $Id: mkinitrd_command_generator.sh,v 1.40 2008/12/18 23:32:56 eha Exp eha $ +# Copyright 2008, 2009 by Eric Hameleers <alien@slackware.com>, Eindhoven, Netherlands +# Copyright 2008, 2009 by PiterPUNK <piterpunk@slackware.com>, Sao Paulo, SP, Brazil +# All rights reserved. +# +# 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. +# ----------------------------------------------------------------------------- +# +# Create an initrd which fits the system. +# Take into account the use of LVM/LUKS/RAID. +# Find out about any hardware drivers the system may need in an initrd when +# booting from a generic lightweight kernel. +# +# ----------------------------------------------------------------------------- + +# The script's revision number will be displayed in the help text: +REV=$( echo "$Revision: 1.40 $" | cut -d' ' -f2 ) + +# Define some essential parameter values: +USING_LVM="" +USING_LUKS="" +USING_RAID="" +MLIST="" +REALDEV="" # The device that contains the LUKS volume +BASEDEV="" # Lowest level device (raw block device or RAID volume) + +FSTAB=${FSTAB:-"/etc/fstab"} # so we can test with alternate fstab files + +# These are needed by -c and -i options: +SOURCE_TREE=${SOURCE_TREE:-"/boot/initrd-tree"} +CLEAR_TREE=${CLEAR_TREE:-1} +KEYMAP=${KEYMAP:-"us"} +WAIT=${WAIT:-1} + +# A basic explanation of the commandline parameters: +basic_usage() { + cat <<-EOT + + *** $(basename $0) revision $REV *** + Usage: + $(basename $0) [ options ] [ kernel_filename ] + Options: + -a <"additional params"> Additional parameters to pass to mkinitrd. + -c | --conf Show a suitable mkinitrd configuration file. + -h | --help Show this help. + -i | --interactive Navigate through menus instead of using + commandline arguments. + --longhelp Show more detailed information/examples. + -k <kernelversion> Use specific kernel version. + -m <"additional mods"> Additional modules to pass to mkinitrd, + separated by colons (:). + -l | --lilo Only show lilo.conf section + (requires a kernel_filename). + -r | --run Only show 'mkinitrd' command. + EOT +} + +# More of a tutorial here: +extended_usage() { + cat <<-EOT + + This script is useful in situations where you require an initrd image + to boot your computer. + For instance, when booting a kernel that does not have support for your + storage or root filesystem built in (such as the Slackware 'generic' + kernels'). + + * When you run the script without parameters, it will examine your + running system, your current kernel version and will output an example + of a 'mkinitrd' commandline that you can use to generate an initrd + image containing enough driver support to boot the computer. + + * You can make it more specific: when you add the filename of a kernel + as parameter to the script, it will determine the kernel version from + that kernel, and also give an example of the lines that you should add + to your '/etc/lilo.conf' file. + + * If you want your initrd image to have a custom name instead of the + default '/boot/initrd.gz' you can add it as another parameter to the + script, as follows: + + $(basename $0) -a "-o /boot/custom.gz" + + The arguments to the '-a' parameter will be used as additional arguments + to the 'mkinitrd' command. + + * If you need additional modules in the initrd image, apart from what + the script determines, you can pass then to the script using the '-m' + parameter as follows: + + $(basename $0) -m "uhci-hcd:usbhid" + + The above example adds support for USB keyboards to the initrd - you + may need that if you have encrypted your root partition and need to + enter a passphrase using a USB keyboard. + + * Instead of copying and pasting the script's output, you can create + an initrd by directly executing the output, like in this example: + + EOT + + echo " \$($(basename $0) --run /boot/vmlinuz-generic-smp-2.6.24.5-smp)" + + cat <<-EOT + + That used the '-r' or '--run' switch to make the script only write + the 'mkinitrd' commandline to the terminal. + + * When you want to add a section for a specific kernel to + '/etc/lilo.conf' directly, use the '-l' or '--lilo' switch and use a + command like in this example: + + EOT + + echo " $(basename $0) --lilo /boot/vmlinuz-generic-smp-2.6.24.5-smp >>/etc/lilo.conf" + + cat <<-EOT + + That command will result in the following lines being added to your + '/etc/lilo.conf' file (example for my hardware): + + # Linux bootable partition config begins + # initrd created with 'mkinitrd -c -k 2.6.24.5-smp -m ata_generic:pata_amd:mbcache:jbd:ext3 -f ext3 -r /dev/hda7' + image = /boot/vmlinuz-generic-smp-2.6.24.5-smp + initrd = /boot/initrd.gz + root = /dev/hda7 + label = 2.6.24.5-smp + read-only + # Linux bootable partition config ends + + The last two examples show how easy it is to configure your computer + for the use of an initrd if you need one. The only thing left to do + afterwards is running 'lilo'. + + EOT +} + +# Find the device that holds the root partition: +get_root_device() { + if [ -e $FSTAB ]; then + RD=$(cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f1 -d' ') + if [ "$(echo $RD | cut -f1 -d=)" = "LABEL" -o "$(echo $RD | cut -f1 -d=)" = "UUID" ]; then + DKEY=$(echo $RD | cut -f1 -d=) + # The value can be LABEL=foo or LABEL='foo' or LABEL="foo" + DVAL=$(echo $RD | cut -f2 -d= | tr -d "'\042") + RD=$(/sbin/blkid | grep -w $DKEY | grep -w $DVAL | cut -f1 -d:) + fi + else + RD=$(grep -m1 "^/dev/.*[[:blank:]]/[[:blank:]]" /proc/mounts | cut -f1 -d' ') + fi + echo $RD +} + +# Get the root fs information: +get_rootfs_type() { + if $(type vol_id 1>/dev/null 2>&1) ; then + vol_id $ROOTDEV | grep ID_FS_TYPE | cut -f2 -d= + else + # Alternatively, use: + cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f3 -d' ' + fi +} + +# Add the module(s) needed for the root filesystem: +add_rootfs_module() { + local FSMOD + FSMOD=$(/sbin/modprobe --set-version $KVER --show-depends ${ROOTFS} 2>/dev/null | while read LINE; do + echo $(basename $(echo $LINE | cut -d' ' -f2) .ko ) + done) + if [ -n "$FSMOD" ]; then + [ -n "$MLIST" ] && echo "$MLIST:$(echo $FSMOD | tr ' ' ':')" \ + || echo $FSMOD | tr ' ' ':' + fi +} + +# Determine the list of kernel modules needed to support the root device: +determine_blockdev_drivers() { + # Walk the /sys tree to find kernel modules that are + # required for our storage devices. + # Thanks to PiterPUNK for this piece of code. + local MLIST + MLIST=$(for i in $(find /sys/block -name "device" -exec ls -l {} \; | sed -ne 's:.*/\(devices.*\)/[a-zA-Z]\+[.0-9]\+/.*:/sys/\1:p' | sort -u); do + for j in $(find $i -name "modalias"); do + /sbin/modprobe --set-version $KVER --show-depends $(cat $j) 2>/dev/null | while read LINE ; do + echo $(basename $(echo $LINE | cut -d' ' -f2) .ko ) + done + done + done) + MLIST=$( echo $MLIST | tr ' ' ':' ) + echo $MLIST +} + +# Search for USB keyboards: +function add_usb_keyboard() { + local USBMOD + if cat /proc/bus/input/devices | sed -e 's/^$/\$/g' | \ + tr "\n$" " \n" | grep -q " Phys=.*usb.* .*Handlers=.*kbd.*B:"; then + USBMOD="usbhid" + [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \ + || MLIST="$USBMOD" + fi + echo $MLIST +} + +# Determine what USB Host Controller is in use +function add_usb_hcd() { + local USBMOD + for i in `ls -Ld /sys/module/*_hcd/drivers/*`; do + if ls -L $i | grep -q "[0-9a-f]*:" ; then + USBMOD=$( echo $i | cut -f4 -d/ | tr "_" "-") + [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \ + || MLIST="$USBMOD" + fi + done + echo $MLIST +} + +# Is the root partition on a (combination of) LVM/LUKS volume? +check_luks_lvm_raid() { + if $( lvdisplay -c $ROOTDEV 1>/dev/null 2>/dev/null ); then + # Our root partition is on a LV: + USING_LVM=1 + # Search the Physical Volume of our Logical Volume: + MYVG=$( echo $(lvdisplay -c $ROOTDEV) | cut -d: -f2 ) + for LINE in $(pvdisplay -c) ; do + VG=$(echo $LINE | cut -d: -f2) + [ "$VG" = "$MYVG" ] && break + done + PV=$(echo $LINE | cut -d: -f1) + # Check if there is a LUKS device underneath: + if $( cryptsetup status $PV 1>/dev/null 2>/dev/null ) ; then + # Our root partition's LV is on a LUKS volume: + USING_LUKS=1 + REALDEV=$( cryptsetup status $PV | grep 'device: ' | tr -d ' ' | cut -d: -f2 ) + BASEDEV=$REALDEV + else + BASEDEV=$PV + fi + elif $( cryptsetup status $ROOTDEV 1>/dev/null 2>/dev/null ) ; then + # Our root device is on a LUKS volume: + USING_LUKS=1 + REALDEV=$( cryptsetup status $ROOTDEV | grep 'device: ' | tr -d ' ' | cut -d: -f2 ) + ROOTDEV=$(basename $ROOTDEV) + # Check for LVM: + for LV in $(lvdisplay -c | tr -d ' ' | cut -f1 -d:) ; do + # Note: cryptsetup shows the real device, whereas + # lvdisplay requires the /dev/<myvg>/... symlink to the real device. + if [ "$(readlink $LV)" = "$REALDEV" ]; then + REALDEV=$LV + break + fi + done + if $( lvdisplay -c $REALDEV 1>/dev/null 2>/dev/null ); then + # Our root partition's LUKS device is on a LV: + USING_LVM=1 + # Search the Physical Volume of our Logical Volume: + MYVG=$( echo $(lvdisplay -c $REALDEV) | cut -d: -f2 ) + for LINE in $(pvdisplay -c) ; do + VG=$(echo $LINE | cut -d: -f2) + [ "$VG" = "$MYVG" ] && break + done + PV=$(echo $LINE | cut -d: -f1) + BASEDEV=$PV + else + BASEDEV=$REALDEV + fi + else + BASEDEV=$ROOTDEV + fi + + # Finally, we should check if base device is + # a real block device or a RAID volume: + for MD in $(cat /proc/mdstat | grep -w active | cut -d' ' -f1) ; do + if [ "$BASEDEV" = "/dev/$MD" ]; then + USING_RAID=1 + break + fi + done +} + +# Before we start +[ -x /bin/id ] && CMD_ID="/bin/id" || CMD_ID="/usr/bin/id" +if [ "$($CMD_ID -u)" != "0" ]; then + echo "You need to be root to run $(basename $0)." + exit 1 +fi + +# Parse the commandline parameters: +while [ ! -z "$1" ]; do + case $1 in + --longhelp) + basic_usage + extended_usage + exit 0 + ;; + -a) + MKINIT_PARAMS=$2 + shift 2 + ;; + -c|--conf) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="conf" + shift + ;; + -h|--help) + basic_usage + exit 0 + ;; + -i|--interactive) + INTERACTIVE=1 + shift + ;; + -k) + KVER=$2 + shift 2 + ;; + -m) + MKINIT_MODS=$2 + shift 2 + ;; + -l|--lilo) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="lilo" + shift + ;; + -L|--fromlilo) + FROMLILO=1 + shift + ;; + -r|--run) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="run" + shift + ;; + -R|--rootdev) + ROOTDEV=$2 + shift 2 + ;; + -*) + echo "Unsupported parameter '$1'!" + exit 1 + ;; + *) # Everything else but switches (which start with '-') follows: + if [ -f $1 ]; then + KFILE=$1 + # Construction of KFILE's full filename: + KFILEPATH=$(cd $(dirname $KFILE) && pwd) + if [ -L $KFILE ]; then + KFILE=$(readlink $KFILE) + else + KFILE=$(basename $KFILE) + fi + KFILE=${KFILEPATH}/$KFILE + if [ -z "$(file $KFILE | grep 'Linux kernel x86 boot')" ]; then + echo "File '$KFILE' does not look like it is a kernel file!" + exit 1 + fi + else + echo "File $1 not found!" + exit 1 + fi + shift + ;; + esac +done + +# Determine what to show as output (other options may have set EMIT already) +EMIT=${EMIT:-"all"} + +# An EMIT value of 'lilo' requires a kernel filename as script parameter: +if [ "$EMIT" = "lilo" ]; then + if [ -z "$KFILE" ]; then + echo "A kernel_filename is required with the '-l|--lilo' option!" + exit 1 + fi +fi + +# Determine kernel version to use, +# and check if modules for this kernel are actually present: +if [ -z "$KVER" ]; then + if [ -n "$KFILE" ]; then + KVER="$(strings $KFILE | grep '(.*@.*) #' | cut -f1 -d' ')" + else + KVER="$(uname -r)" + fi +fi +if [ ! -d /lib/modules/$KVER ]; then + echo "Modules for kernel $KVER aren't installed." + exit 1 +fi + +# Determine whether the user passed an alternate filename for the initrd: +if [ -n "$MKINIT_PARAMS" ]; then + SRCHLIST="$MKINIT_PARAMS" + for ELEM in $MKINIT_PARAMS ; do + SRCHLIST=$(echo $SRCHLIST | cut -d' ' -f2-) # cut ELEM from the list + if [ "$ELEM" = "-o" ]; then + IMGFILE=$(echo $SRCHLIST | cut -d' ' -f1) + break + fi + done +fi +IMGFILE=${IMGFILE:-"/boot/initrd.gz"} + +# Get information about the root device / root filesystem: +ROOTDEV=${ROOTDEV:-$(get_root_device)} +ROOTFS=$(get_rootfs_type) + +# Determine the list of kernel modules needed to support the root device: +MLIST=$(determine_blockdev_drivers) + +# Determine if a USB keyboard is in use and include usbhid to module list +MLIST=$(add_usb_keyboard) + +# If we use any USB module, try to determine the Host Controller +if echo $MLIST | grep -q "usb"; then + MLIST=$(add_usb_hcd) +fi + +# Check what combination of LUKS/LVM/RAID we have to support: +# This sets values for USING_LUKS, USING_LVM, USING_RAID, REALDEV and BASEDEV. +check_luks_lvm_raid + +# This is the interactive part: +if [ "$INTERACTIVE" = "1" ]; then + if [ "$FROMLILO" != "1" ]; then + dialog --stdout --title "WELCOME TO MKINITRD COMMAND GENERATOR" --msgbox "\ +The main goal of this utility is to create a good initrd to \ +fit your needs. It can detect what kernel you are running, \ +what is your root device, root filesystem, if you use encryption, \ +LVM, RAID, etc. \ +\n\n\ +Usually the probed values are OK and they will be the \ +defaults in all subsequent dialogs, but maybe you want \ +to change something. \n\ +If in doubt, leave the defaults." 0 0 + + KVER=$( ls -d1 --indicator-style=none /lib/modules/* | \ + awk -F/ -vVER=$KVER '{ + if ( VER == $NF ) { + ONOFF="on" + } else { + ONOFF="off" + } ; printf("%s \"\" %s\n",$NF,ONOFF) }' | \ + xargs dialog --stdout --title "CHOOSE KERNEL VERSION" \ + --default-item $KVER --radiolist "\ +Please, select the kernel version you want to create this initrd for." 0 0 4 ) + [ -z "$KVER" ] && exit 1 + + OLDROOTDEV=$ROOTDEV + ROOTDEV=$( dialog --stdout --title "SELECT ROOT DEVICE" --inputbox "\ +Enter your root device. Root device is the one where your '/' filesystem \ +is mounted." 0 0 "$ROOTDEV" ) + [ -z "$ROOTDEV" ] && exit 1 + + # We need to re-check our defaults in case the user changed the default + # value for ROOTDEV: + [ "$OLDROOTDEV" != "$ROOTDEV" ] && check_luks_lvm_raid + ROOTFS=$(get_rootfs_type) + + ROOTFS=$( dialog --stdout --title "SELECT ROOT FILESYSTEM" --inputbox "\ +Enter the type of your root filesystem." 0 0 "$ROOTFS" ) + [ -z "$ROOTFS" ] && exit 1 + fi + + MLIST=$(add_rootfs_module) + + LLR=$( dialog --stdout --title "LVM/LUKS/RAID" --checklist "\ +Do you use some of those in your root filesystem? \ +If this is the case, please select one or more options." 12 45 3 \ +"LVM" "Logical Volume Manager" $([ "$USING_LVM" = "1" ] && echo on || echo off) \ +"LUKS" "Linux Unified Key Setup" $([ "$USING_LUKS" = "1" ] && echo on || echo off) \ +"RAID" "Linux Software RAID" $([ "$USING_RAID" = "1" ] && echo on || echo off)) + + if [ "$?" != "0" ]; then + exit 1 + fi + + echo $LLR | grep -q LUKS && USING_LUKS="1" + echo $LLR | grep -q LVM && USING_LVM="1" + echo $LLR | grep -q RAID && USING_RAID="1" + + if [ "$USING_LUKS" = "1" ]; then + REALDEV=$( dialog --stdout --title "LUKS ROOT DEVICE" --inputbox "\ +Please, enter your LUKS root device:" 0 0 "$REALDEV" ) + [ -z "$REALDEV" ] && exit 1 + fi +fi + +# Step out of the interactive loop for a moment. The next block needs to be +# executed in all cases. + +# We need to 'undouble' the MLIST array. Some people report that walking the +# /sys tree produces duplicate modules in the list. +# The awk command elimitates doubles without changing the order: +MLIST=$( echo $MLIST | tr ':' '\n' | awk '!x[$0]++' | tr '\n' ' ' ) +MLIST=$( echo $MLIST | tr ' ' ':' ) +MLIST=$(echo ${MLIST%:}) # To weed out a trailing ':' which was reported once. + +# Back to the interactive part: + +if [ "$INTERACTIVE" = "1" ]; then + MLIST=$( dialog --stdout --title "INITRD'S MODULE LIST" --inputbox "\ +The list here shows all modules needed to support your root filesystem \ +and boot from it. But you can change the list to use some alternative \ +or additional modules. If you don't know what to do, the default is safe." \ +0 0 "$MLIST" ) + if [ "$?" != "0" ]; then + exit 1 + fi + + EXTRA=$( dialog --stdout --title "EXTRA CONFIGURATION" --checklist "\ +Now is your chance for some additional configuration. All of these \ +configurations are optional and you can stick to the defaults." 11 72 3 \ +"KEYMAP" "Select keyboard layout (default: US)" \ + $([ $USING_LUKS = 1 ] && echo on || echo off) \ +"RESUMEDEV" "Select device for 'suspend-to-disk' feature" off \ +"WAIT" "Add delay to allow detection of slow disks at boot" off) + if [ "$?" != "0" ]; then + exit 1 + fi + + if echo $EXTRA | grep -q KEYMAP ; then + KEYMAP=$( dialog --stdout --title "KEYBOARD LAYOUT SELECTION" \ + --cancel-label "Skip" \ + --menu "You may select one of the following keyboard layouts. \ +If you do not select a keyboard map, 'us.map' \ +(the US keyboard layout) is the default. Use the UP/DOWN \ +arrow keys and PageUp/PageDown to scroll \ +through the whole list of choices." \ +22 55 11 \ +"qwerty/us.map" "" \ +"azerty/azerty.map" "" \ +"azerty/be-latin1.map" "" \ +"azerty/fr-latin0.map" "" \ +"azerty/fr-latin1.map" "" \ +"azerty/fr-latin9.map" "" \ +"azerty/fr-old.map" "" \ +"azerty/fr-pc.map" "" \ +"azerty/fr.map" "" \ +"azerty/wangbe.map" "" \ +"azerty/wangbe2.map" "" \ +"dvorak/ANSI-dvorak.map" "" \ +"dvorak/dvorak-l.map" "" \ +"dvorak/dvorak-r.map" "" \ +"dvorak/dvorak.map" "" \ +"dvorak/no-dvorak.map" "" \ +"fgGIod/tr_f-latin5.map" "" \ +"fgGIod/trf-fgGIod.map" "" \ +"olpc/es-olpc.map" "" \ +"olpc/pt-olpc.map" "" \ +"qwerty/bg-cp1251.map" "" \ +"qwerty/bg-cp855.map" "" \ +"qwerty/bg_bds-cp1251.map" "" \ +"qwerty/bg_bds-utf8.map" "" \ +"qwerty/bg_pho-cp1251.map" "" \ +"qwerty/bg_pho-utf8.map" "" \ +"qwerty/br-abnt.map" "" \ +"qwerty/br-abnt2.map" "" \ +"qwerty/br-latin1-abnt2.map" "" \ +"qwerty/br-latin1-us.map" "" \ +"qwerty/by-cp1251.map" "" \ +"qwerty/by.map" "" \ +"qwerty/bywin-cp1251.map" "" \ +"qwerty/cf.map" "" \ +"qwerty/cz-cp1250.map" "" \ +"qwerty/cz-lat2-prog.map" "" \ +"qwerty/cz-lat2.map" "" \ +"qwerty/cz-qwerty.map" "" \ +"qwerty/defkeymap.map" "" \ +"qwerty/defkeymap_V1.0.map" "" \ +"qwerty/dk-latin1.map" "" \ +"qwerty/dk.map" "" \ +"qwerty/emacs.map" "" \ +"qwerty/emacs2.map" "" \ +"qwerty/es-cp850.map" "" \ +"qwerty/es.map" "" \ +"qwerty/et-nodeadkeys.map" "" \ +"qwerty/et.map" "" \ +"qwerty/fi-latin1.map" "" \ +"qwerty/fi-latin9.map" "" \ +"qwerty/fi-old.map" "" \ +"qwerty/fi.map" "" \ +"qwerty/gr-pc.map" "" \ +"qwerty/gr.map" "" \ +"qwerty/hu101.map" "" \ +"qwerty/il-heb.map" "" \ +"qwerty/il-phonetic.map" "" \ +"qwerty/il.map" "" \ +"qwerty/is-latin1-us.map" "" \ +"qwerty/is-latin1.map" "" \ +"qwerty/it-ibm.map" "" \ +"qwerty/it.map" "" \ +"qwerty/it2.map" "" \ +"qwerty/jp106.map" "" \ +"qwerty/kazakh.map" "" \ +"qwerty/kyrgyz.map" "" \ +"qwerty/la-latin1.map" "" \ +"qwerty/lt.baltic.map" "" \ +"qwerty/lt.l4.map" "" \ +"qwerty/lt.map" "" \ +"qwerty/mk-cp1251.map" "" \ +"qwerty/mk-utf.map" "" \ +"qwerty/mk.map" "" \ +"qwerty/mk0.map" "" \ +"qwerty/nl.map" "" \ +"qwerty/nl2.map" "" \ +"qwerty/no-latin1.map" "" \ +"qwerty/no.map" "" \ +"qwerty/pc110.map" "" \ +"qwerty/pl.map" "" \ +"qwerty/pl1.map" "" \ +"qwerty/pl2.map" "" \ +"qwerty/pl3.map" "" \ +"qwerty/pl4.map" "" \ +"qwerty/pt-latin1.map" "" \ +"qwerty/pt-latin9.map" "" \ +"qwerty/pt.map" "" \ +"qwerty/ro.map" "" \ +"qwerty/ro_std.map" "" \ +"qwerty/ru-cp1251.map" "" \ +"qwerty/ru-ms.map" "" \ +"qwerty/ru-yawerty.map" "" \ +"qwerty/ru.map" "" \ +"qwerty/ru1.map" "" \ +"qwerty/ru2.map" "" \ +"qwerty/ru3.map" "" \ +"qwerty/ru4.map" "" \ +"qwerty/ru_win.map" "" \ +"qwerty/ruwin_alt-CP1251.map" "" \ +"qwerty/ruwin_alt-KOI8-R.map" "" \ +"qwerty/ruwin_alt-UTF-8.map" "" \ +"qwerty/ruwin_cplk-CP1251.map" "" \ +"qwerty/ruwin_cplk-KOI8-R.map" "" \ +"qwerty/ruwin_cplk-UTF-8.map" "" \ +"qwerty/ruwin_ct_sh-CP1251.map" "" \ +"qwerty/ruwin_ct_sh-KOI8-R.map" "" \ +"qwerty/ruwin_ct_sh-UTF-8.map" "" \ +"qwerty/ruwin_ctrl-CP1251.map" "" \ +"qwerty/ruwin_ctrl-KOI8-R.map" "" \ +"qwerty/ruwin_ctrl-UTF-8.map" "" \ +"qwerty/se-fi-ir209.map" "" \ +"qwerty/se-fi-lat6.map" "" \ +"qwerty/se-ir209.map" "" \ +"qwerty/se-lat6.map" "" \ +"qwerty/se-latin1.map" "" \ +"qwerty/sk-prog-qwerty.map" "" \ +"qwerty/sk-qwerty.map" "" \ +"qwerty/speakup-jfw.map" "" \ +"qwerty/speakupmap.map" "" \ +"qwerty/sr-cy.map" "" \ +"qwerty/sv-latin1.map" "" \ +"qwerty/tr_q-latin5.map" "" \ +"qwerty/tralt.map" "" \ +"qwerty/trf.map" "" \ +"qwerty/trq.map" "" \ +"qwerty/ttwin_alt-UTF-8.map.gz" "" \ +"qwerty/ttwin_cplk-UTF-8.map.gz" "" \ +"qwerty/ttwin_ct_sh-UTF-8.map.gz" "" \ +"qwerty/ttwin_ctrl-UTF-8.map.gz" "" \ +"qwerty/ua-cp1251.map.gz" "" \ +"qwerty/ua-utf-ws.map" "" \ +"qwerty/ua-utf.map" "" \ +"qwerty/ua-ws.map" "" \ +"qwerty/ua.map" "" \ +"qwerty/uk.map" "" \ +"qwerty/us-acentos.map" "" \ +"qwerty/us.map" "" \ +"qwertz/croat.map" "" \ +"qwertz/cz-us-qwertz.map" "" \ +"qwertz/cz.map" "" \ +"qwertz/de-latin1-nodeadkeys.map" "" \ +"qwertz/de-latin1.map" "" \ +"qwertz/de.map" "" \ +"qwertz/de_CH-latin1.map" "" \ +"qwertz/fr_CH-latin1.map" "" \ +"qwertz/fr_CH.map" "" \ +"qwertz/hu.map" "" \ +"qwertz/sg-latin1-lk450.map" "" \ +"qwertz/sg-latin1.map" "" \ +"qwertz/sg.map" "" \ +"qwertz/sk-prog-qwertz.map" "" \ +"qwertz/sk-qwertz.map" "" \ +"qwertz/slovene.map" "" ) + [ -n "$KEYMAP" ] && KEYMAP=$(basename $KEYMAP .map) + fi + + if echo $EXTRA | grep -q RESUMEDEV ; then + # Print information about swap partitions: + FREERAM=$(free -k | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2) + SWPINFO="" + for SWPDEV in $(grep -w swap $FSTAB | cut -d' ' -f1) ; do + SWPINFO="$SWPINFO $SWPDEV Linux swap partition $(fdisk -s $SWPDEV) KB \\n" + [ $(fdisk -s $SWPDEV) -gt $FREERAM ] && RESUMEDEV=$SWPDEV + done + FREERAM=$(free -m | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2) + RESUMEDEV=$( dialog --stdout --no-collapse --title "HIBERNATE RESUME DEVICE" --inputbox "\ +When using suspend-to-disk feature (hibernate), your computer's RAM is copied \ +to a swap device when it shuts down. The kernel will resume from that RAM \ +image at boot. This means that the swap partition must not be smaller than \ +the amount of RAM you have ($FREERAM MB). \n\ +$SWPINFO \n\ +Please specify a swap partition to be used for hibernation:" \ +0 0 "$RESUMEDEV") + [ -z "$RESUMEDEV" ] && exit 1 + fi + + if echo $EXTRA | grep -q WAIT ; then + WAIT=$( dialog --stdout --title "WAIT FOR ROOT DEVICE" --inputbox "\ +Some block devices are too slow to be detected properly at boot. USB storage \ +devices and some disk arrays have this 'feature'. To make your machine \ +boot properly, you can add some delay here, to wait until all your disks are \ +probed and detected. The time is in seconds:" 0 0 "$WAIT") + [ -z "$WAIT" ] && exit 1 + fi + + IMGFILE=$( dialog --stdout --title "INITRD IMAGE NAME" --inputbox "\ +Enter your initrd image filename." 0 0 "$IMGFILE" ) + [ -z "$IMGFILE" ] && exit 1 + +else + MLIST=$(add_rootfs_module) +fi + +# Add any modules passed along on the commandline: +if [ -n "$MKINIT_MODS" ]; then + [ -n "$MLIST" ] && MLIST="$MLIST:$(echo $MKINIT_MODS | tr ' ' ':')" \ + || MLIST="$(echo $MKINIT_MODS | tr ' ' ':')" +fi + +# Constructing the mkinitrd command: +MKINIT="mkinitrd -c -k $KVER -f $ROOTFS -r $ROOTDEV" + +# If we have a module list, add them: +if ! [ -z "$MLIST" -o "$MLIST" = ":" ]; then + MKINIT="$MKINIT -m $MLIST" +fi + +# Deal with LUKS/LVM/RAID: +if [ "$USING_LUKS" = "1" ]; then + MKINIT="$MKINIT -C $REALDEV" +fi +if [ "$USING_LVM" = "1" ]; then + MKINIT="$MKINIT -L" +fi +if [ "$USING_RAID" = "1" ]; then + MKINIT="$MKINIT -R" +fi + +if [ -n "$RESUMEDEV" ]; then + # Add hibernation partition: + MKINIT="$MKINIT -h $RESUMEDEV" +fi +if [ -n "$KEYMAP" -a "$KEYMAP" != "us" ]; then + # Add non-us keyboard mapping: + MKINIT="$MKINIT -l $KEYMAP" +fi +if [ -n "$WAIT" -a $WAIT -ne 1 ]; then + # Add non-default wait time: + MKINIT="$MKINIT -w $WAIT" +fi +if ! echo "$MKINIT_PARAMS" | grep -q ' -o ' ; then + # Add non-default output filename: + MKINIT="$MKINIT -o $IMGFILE" +fi +if [ -n "$MKINIT_PARAMS" ]; then + # Add user-supplied additional parameters: + MKINIT="$MKINIT $MKINIT_PARAMS" +fi + +# Notify the user: +if [ "$EMIT" = "all" ]; then + cat <<-EOT + # + # $(basename $0) revision $REV + # + # This script will now make a recommendation about the command to use + # in case you require an initrd image to boot a kernel that does not + # have support for your storage or root filesystem built in + # (such as the Slackware 'generic' kernels'). + # A suitable 'mkinitrd' command will be: + + $MKINIT + EOT +elif [ "$EMIT" = "run" ]; then + echo "$MKINIT" +elif [ "$EMIT" = "conf" ]; then + cat <<-EOT + SOURCE_TREE="$SOURCE_TREE" + CLEAR_TREE="$CLEAR_TREE" + OUTPUT_IMAGE="$IMGFILE" + KERNEL_VERSION="$KVER" + KEYMAP="$KEYMAP" + MODULE_LIST="$(echo $MLIST | cut -f2 -d\ )" + LUKSDEV="$REALDEV" + ROOTDEV="$ROOTDEV" + ROOTFS="$ROOTFS" + RESUMEDEV="$RESUMEDEV" + RAID="$USING_RAID" + LVM="$USING_LVM" + WAIT="$WAIT" + EOT +fi + +if [ -n "$KFILE" ]; then + if [ "$EMIT" = "all" ]; then + cat <<-EOT + # An entry in 'etc/lilo.conf' for kernel '$KFILE' would look like this: + EOT + fi + if [ "$EMIT" = "all" -o "$EMIT" = "lilo" ]; then + # Compensate for the syntax used for the LUKS-on-LVM case: + [ "$(basename $ROOTDEV)" = "$ROOTDEV" ] && BASE="/dev/mapper/" || BASE="" + cat <<-EOT + # Linux bootable partition config begins + # initrd created with '$MKINIT' + image = $KFILE + initrd = $IMGFILE + root = $BASE$ROOTDEV + label = $KVER + read-only + # Linux bootable partition config ends + EOT + fi +fi diff --git a/source/a/mkinitrd/mkinitrd_kernelcheck.diff b/source/a/mkinitrd/mkinitrd_kernelcheck.diff new file mode 100644 index 00000000..e1302f54 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd_kernelcheck.diff @@ -0,0 +1,15 @@ +--- mkinitrd.orig 2008-11-30 15:35:58.000000000 +0100 ++++ mkinitrd 2008-12-11 11:16:37.000000000 +0100 +@@ -277,6 +277,12 @@ + esac + done + ++# If kernel modules are needed but the kernel version is absent, exit now: ++if [ ! -d /lib/modules/$KERNEL_VERSION ]; then ++ echo "No modules tree found for kernel \"$KERNEL_VERSION\"" ++ exit 1 ++fi ++ + # If clearing source tree was requested, do that first + if [ "$CLEAR_TREE" = "1" ]; then + clear_source_tree diff --git a/source/a/mkinitrd/slack-desc b/source/a/mkinitrd/slack-desc new file mode 100644 index 00000000..49d1a764 --- /dev/null +++ b/source/a/mkinitrd/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------------------------------------------------------| +mkinitrd: mkinitrd (make an initial ramdisk) +mkinitrd: +mkinitrd: mkinitrd is a script to create an initial ramdisk that is loaded at +mkinitrd: the same time as the kernel. The initial ramdisk may be responsible +mkinitrd: for loading kernel modules (such a filesystem or SCSI controller +mkinitrd: module) that are needed to mount the root filesystem. +mkinitrd: +mkinitrd: The "initrd" is implemented as an initramfs. See the kernel +mkinitrd: documentation for more information on this, if you are interested. +mkinitrd: +mkinitrd: diff --git a/source/a/module-init-tools/doinst.sh b/source/a/module-init-tools/doinst.sh new file mode 100644 index 00000000..41ff1d75 --- /dev/null +++ b/source/a/module-init-tools/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... +} +config etc/modprobe.conf.new + +# Retain legacy behavior by tossing a symlink in /etc/modprobe.d/: +# Note that the plan is to eliminate /etc/modprobe.conf and +# /etc/modules.conf in the long run, so you may wish to remove the +# link and move your actual file into /etc/modprobe.d/ if you want +# to keep it instead of going with smaller chunks in there... +if [ -r etc/modprobe.conf ]; then + ( cd etc/modprobe.d ; ln -s ../modprobe.conf . 2> /dev/null ) +fi + diff --git a/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff new file mode 100644 index 00000000..1565d93a --- /dev/null +++ b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff @@ -0,0 +1,27 @@ +diff -Nur module-init-tools-3.6.old/doc/modprobe.conf.sgml module-init-tools-3.6.new/doc/modprobe.conf.sgml +--- module-init-tools-3.6.old/doc/modprobe.conf.sgml 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/doc/modprobe.conf.sgml 2009-02-08 01:42:05.097637263 -0600 +@@ -35,7 +35,9 @@ + <para>Because the <command>modprobe</command> command can add or + remove extra more than one module, due to module dependencies, + we need a method of specifying what options are to be used with +- those modules. <filename>/etc/modprobe.conf</filename> (or, if that does not exist, all files under the <filename>/etc/modprobe.d</filename> directory) specifies ++ those modules. All of the files under the <filename>/etc/modprobe.d/</filename> ++ directory are used, or if that directory does not exist, the ++ <filename>/etc/modprobe.conf</filename> file specifies + those options, as required. It can also be used to create + convenient aliases: alternate names for a module. Finally, it + can override the normal <command>modprobe</command> behavior +diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c +--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:42:05.099636402 -0600 +@@ -1366,8 +1366,8 @@ + + static const char *default_configs[] = + { +- "/etc/modprobe.conf", + "/etc/modprobe.d", ++ "/etc/modprobe.conf", + }; + + static void read_toplevel_config(const char *filename, diff --git a/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff new file mode 100644 index 00000000..24967f0b --- /dev/null +++ b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff @@ -0,0 +1,43 @@ +diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c +--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:40:24.143637295 -0600 +@@ -38,6 +38,7 @@ + #include <asm/unistd.h> + #include <sys/wait.h> + #include <syslog.h> ++#include <regex.h> + + #define streq(a,b) (strcmp((a),(b)) == 0) + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +@@ -1275,6 +1276,20 @@ + return 1; + } + ++/* Let's exclude a few file extensions */ ++static int valid_file_name(const char *filename) ++{ ++ static regex_t *re = NULL; ++ ++ if (!re) { ++ re = NOFAIL(malloc(sizeof(regex_t))); ++ if (regcomp(re, "(^(\\.|\\.\\.)|\\.(new|orig|bak)$)", ++ REG_EXTENDED|REG_NOSUB) != 0) ++ fatal("regcomp failed: %s\n", strerror(errno)); ++ } ++ return regexec(re, filename, 0, NULL, 0); ++} ++ + /* Simple format, ignore lines starting with #, one command per line. + Returns true or false. */ + static int read_config(const char *filename, +@@ -1294,7 +1309,10 @@ + if (dir) { + struct dirent *i; + while ((i = readdir(dir)) != NULL) { ++ /* Removed this line: + if (!streq(i->d_name,".") && !streq(i->d_name,"..") ++ and replaced with this one: */ ++ if (valid_file_name(i->d_name) + && config_filter(i->d_name)) { + char sub[strlen(filename) + 1 + + strlen(i->d_name) + 1]; diff --git a/source/a/module-init-tools/modprobe.no_sys_check.diff b/source/a/module-init-tools/modprobe.no_sys_check.diff new file mode 100644 index 00000000..90e9a7d1 --- /dev/null +++ b/source/a/module-init-tools/modprobe.no_sys_check.diff @@ -0,0 +1,51 @@ +http://bugs.gentoo.org/258442 + +From 1a55ee5297b883ea4b43cdf74ad890873ebe966c Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Fri, 13 Feb 2009 02:21:10 -0500 +Subject: [PATCH] modprobe: remove pointless /sys requirement + +When modprobe was converted from parsing /proc to parsing /sys, it was not +a straight conversion. Instead, a "sanity" check was added early on where +modprobe would simply abort doing anything useful if /sys isn't mounted. +Unfortunately, this makes modprobe fairly unusable. Considering the +kernel itself can invoke modprobe before userspace gets a chance to start +the init process (and actually mount /sys), we end up with a chicken and +egg issue. Which gets even worse when the kernel keeps running modprobe +over and over and the boot output fills up with: +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. + +Since modprobe itself is already written to handle the case where it +cannot figure out whether a given module is loaded (and so was able to run +perfectly fine without /proc being mounted), the check is wholly useless. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + modprobe.c | 5 ----- + 1 files changed, 0 insertions(+), 5 deletions(-) + +diff --git a/modprobe.c b/modprobe.c +index 022004c..110204b 100644 +--- a/modprobe.c ++++ b/modprobe.c +@@ -1522,11 +1522,6 @@ static void handle_module(const char *modname, + const char *cmdline_opts, + int flags) + { +- struct stat finfo; +- +- if (stat("/sys/module", &finfo) < 0) +- fatal("/sys is not mounted.\n"); +- + if (list_empty(todo_list)) { + const char *command; + +-- +1.6.1.3 + + diff --git a/source/a/module-init-tools/module-init-tools.SlackBuild b/source/a/module-init-tools/module-init-tools.SlackBuild new file mode 100755 index 00000000..d69b43bc --- /dev/null +++ b/source/a/module-init-tools/module-init-tools.SlackBuild @@ -0,0 +1,122 @@ +#!/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} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-module-init-tools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf module-init-tools-$VERSION +tar xvf $CWD/module-init-tools-$VERSION.tar.bz2 || exit 1 +cd module-init-tools-$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 {} \; + +# Look for /etc/modprobe.d/ first rather than bailing on the idea if +# /etc/modprobe.conf exists. IMHO, this is a better default behavior +# because it allows /etc/modprobe.conf to remain behind if something +# still looks there, and allows a smoother transition towards using +# /etc/modprobe.d/ instead. +zcat $CWD/modprobe.favor.etc.modprobe.d.diff.gz | patch -p1 --verbose || exit 1 + +# Exclude *.{old,new,bak} files (and a few others that obviously aren't +# valid for this... Thanks to Marco d'Itri for the patch that it's based on +zcat $CWD/modprobe.ignore_some_suffixes.diff.gz | patch -p1 --verbose || exit 1 + +# We get (pointless) errors in early stages of the boot if modprobe checks for +# a mounted /sys before it actually gets mounted: +zcat $CWD/modprobe.no_sys_check.diff.gz | patch -p1 --verbose || exit 1 + +# Using --bindir=/sbin to make lsmod go there too +CFLAGS= \ +./configure \ + --prefix=/ \ + --bindir=/sbin \ + --docdir=/usr/doc/module-init-tools-$VERSION \ + --mandir=/usr/man \ + --enable-zlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We don't need this +rm -f $PKG/sbin/generate-modprobe.conf + +# Links lsmod into /bin +mkdir -p $PKG/bin +( cd $PKG/bin ; ln -sf /sbin/lsmod . ) + +# Add manpage symlink for modprobe.d +( cd $PKG/usr/man/man5 + if [ -f modprobe.conf.5 -a ! -e modprobe.d.5 ]; then + ln -sf modprobe.conf.5 modprobe.d.5 + fi +) + +# Compress manpages +( 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/etc/modprobe.d/ +cat << EOF > $PKG/etc/modprobe.conf.new +# /etc/modprobe.conf (old location for Linux 2.6+ config) +# +# The use of this config file is deprecated. +# Instead, create files in the /etc/modprobe.d/ directory +# containing modprobe options. +# +# For more information, see "man modprobe.conf". +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/module-init-tools-$VERSION +# Most of these are out of date +cp -a \ + AUTHORS CODING COPYING FAQ HACKING INSTALL NEWS README TODO \ + $PKG/usr/doc/module-init-tools-$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/module-init-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/module-init-tools/slack-desc b/source/a/module-init-tools/slack-desc new file mode 100644 index 00000000..2f0ca331 --- /dev/null +++ b/source/a/module-init-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------------------------------------------------------| +module-init-tools: module-init-tools (kernel module utilities) +module-init-tools: +module-init-tools: Utilities to load and unload kernel modules. These are used on Linux +module-init-tools: to load extra drivers or other features into the running kernel. +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: diff --git a/source/a/mt-st/mt-st.SlackBuild b/source/a/mt-st/mt-st.SlackBuild new file mode 100755 index 00000000..cbf44ec2 --- /dev/null +++ b/source/a/mt-st/mt-st.SlackBuild @@ -0,0 +1,82 @@ +#!/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:-0.9b} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mt-st + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mt-st-$VERSION +tar xzvf $CWD/mt-st-$VERSION.tar.gz +cd mt-st-$VERSION + +zcat $CWD/mt-st.config.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/mt-st.man.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/mt-st.sdlt.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 {} \; + +sed -i -e 's#<linux/qic117.h>#"qic117.h"#' mtio.h || exit 1 +make || exit 1 + +strip mt stinit +mkdir -p $PKG/bin +cat mt > $PKG/bin/mt-st +chmod 755 $PKG/bin/mt-st +( cd $PKG/bin ; ln -sf mt-st mt ) +mkdir -p $PKG/sbin +cat stinit > $PKG/sbin/stinit +chmod 755 $PKG/sbin/stinit +mkdir -p $PKG/usr/man/man{1,8} +cat mt.1 | gzip -9c > $PKG/usr/man/man1/mt-st.1.gz +cat stinit.8 | gzip -9c > $PKG/usr/man/man8/stinit.8.gz + +( 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/usr/doc/mt-st-$VERSION +cp -a \ + COPYING README* *.lsm stinit.def.examples \ + $PKG/usr/doc/mt-st-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/mt-st-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mt-st/mt-st.config.diff b/source/a/mt-st/mt-st.config.diff new file mode 100644 index 00000000..756261b1 --- /dev/null +++ b/source/a/mt-st/mt-st.config.diff @@ -0,0 +1,172 @@ +--- mt-st-0.8/stinit.def.examples.configfiles 2002-09-23 19:02:21.000000000 +0200 ++++ mt-st-0.8/stinit.def.examples 2005-04-07 08:21:01.732633520 +0200 +@@ -56,3 +56,169 @@ + mode3 blocksize=0 density=1 # 800 bpi + } + ++# DLT2000 / 2000XT ++manufacturer="QUANTUM" model = "DLT2000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++mode1 blocksize=0 density=0x81 # 10GB + compression on DLTtape III, 15+ with DLTtape IIIXT in 2000XT ++mode2 blocksize=0 density=0x80 # 10GB, no compression on DLTtape III, 15 with DLTtape IIIXT in 2000XT ++mode3 blocksize=0 density=0x18 # 6GB, compression not available, on DLTtape III ++mode4 blocksize=0 density=0x17 #2.6GB, compression not available, on DLTtape III ++} ++ ++# DLT4000 ++manufacturer="QUANTUM" model = "DLT4000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible, use older modes (e.g. from above) as required ++mode1 blocksize=0 density=0x83 # 20GB + compression ++mode2 blocksize=0 density=0x82 # 20GB, no compression ++mode3 blocksize=0 density=0x81 # 10GB + compression (DLT2000 mode) with DLTtape III, 15+ with DLTtape IIIXT in 2000XT ++mode4 blocksize=0 density=0x80 # 10GB, no compression (DLT2000 mode) with DLTtape III, 15 with DLTtape IIIXT in 2000XT ++} ++ ++# DLT7000 ++manufacturer="QUANTUM" model = "DLT7000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible, use older modes (e.g. from above) as required. ++mode1 blocksize=0 density=0x85 # 35GB + compression ++mode2 blocksize=0 density=0x84 # 35GB, no compression ++mode3 blocksize=0 density=0x83 # 20GB + compression (DLT4000 mode) ++mode4 blocksize=0 density=0x82 # 20GB, no compression (DLT4000 mode) ++} ++ ++# DLT8000 ++manufacturer="QUANTUM" model = "DLT8000" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible to DLT7000, use older modes (e.g. from above) as required. Modes <10GB (<0x19) not supported! ++mode1 blocksize=0 density=0x89 # 40GB + compression ++mode2 blocksize=0 density=0x88 # 40GB, no compression ++mode3 blocksize=0 density=0x85 # 35GB + compression (DLT7000 mode) ++mode4 blocksize=0 density=0x84 # 35GB, no compression (DLT7000 mode) ++} ++ ++ ++# SDLT220 ++manufacturer="QUANTUM" model = "SuperDLT1" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so no need to define any other modes here. ++mode1 blocksize=0 density=0x48 compression=1 # 110 GB + compression ++mode2 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression ++} ++ ++# SDLT320 ++manufacturer="QUANTUM" model = "SDLT320" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards write compatible to SDLT220 and read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so we need only the SDL220/320 modes here ++mode1 blocksize=0 density=0x49 compression=1 # 160 GB + compression ++mode2 blocksize=0 density=0x49 compression=0 # 160 GB, no ompression ++mode3 blocksize=0 density=0x48 compression=1 # 110 GB + compression ++mode4 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression ++} ++ ++# SDLT600 ++manufacturer="QUANTUM" model = "SDLT600" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards read compatible to SDLT220/320 and VS160. Mode settings are only required for writing, so we need only the native SDLT600 mode here. ++mode1 blocksize=0 density=0x4a compression=1 # 300 GB + compression ++mode2 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression ++mode3 blocksize=0 density=0x4a compression=1 # 300 GB + compression ++mode4 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression ++} ++ diff --git a/source/a/mt-st/mt-st.man.diff b/source/a/mt-st/mt-st.man.diff new file mode 100644 index 00000000..d22acefc --- /dev/null +++ b/source/a/mt-st/mt-st.man.diff @@ -0,0 +1,31 @@ +--- mt-st-0.9b/mt.1.manfix 2005-08-21 20:53:50.000000000 +0200 ++++ mt-st-0.9b/mt.1 2005-10-25 12:13:43.000000000 +0200 +@@ -48,20 +48,22 @@ + files. + The tape is positioned on the first block of the next file. + .IP fsfm +-Forward space ++Forward space past + .I count +-files. +-The tape is positioned on the last block of the previous file. ++file marks, then backward space one file record. ++This leaves the tape positioned on the last block of the file that is count-1 ++files past the current file. + .IP bsf + Backward space + .I count + files. + The tape is positioned on the last block of the previous file. + .IP bsfm +-Backward space ++Backward space past + .I count +-files. +-The tape is positioned on the first block of the next file. ++file marks, then forward space one file record. ++This leaves the tape positioned on the first block of the file that is count-1 ++files before the current file. + .IP asf + The tape is positioned at the beginning of the + .I count diff --git a/source/a/mt-st/mt-st.sdlt.diff b/source/a/mt-st/mt-st.sdlt.diff new file mode 100644 index 00000000..8dd9fa9f --- /dev/null +++ b/source/a/mt-st/mt-st.sdlt.diff @@ -0,0 +1,11 @@ +--- mt-st-0.7/mt.c.orig Sat Feb 22 14:48:09 2003 ++++ mt-st-0.7/mt.c Sat Feb 22 14:50:21 2003 +@@ -220,6 +220,8 @@ + {0x41, "DLT 40GB"}, + {0x45, "QIC-3095-MC (TR-4)"}, + {0x47, "TR-5"}, ++ {0x48, "Quantum SDLT220"}, ++ {0x49, "Quantum SDLT320"}, + {0x80, "DLT 15GB uncomp. or Ecrix"}, + {0x81, "DLT 15GB compressed"}, + {0x82, "DLT 20GB uncompressed"}, diff --git a/source/a/mt-st/slack-desc b/source/a/mt-st/slack-desc new file mode 100644 index 00000000..dda83093 --- /dev/null +++ b/source/a/mt-st/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------------------------------------------------------| +mt-st: mt-st (controls magnetic tape drive operation) +mt-st: +mt-st: This mt originates from BSD NET-2. Some Linux SCSI tape-specific +mt-st: ioctls have been added to the original source and the man page has +mt-st: been updated. Although this mt program is tailored for SCSI tape, it +mt-st: can also be used with the QIC-02 driver and hopefully with other Linux +mt-st: tape drivers using the same ioctls (some of the commands may not work +mt-st: with all drivers). +mt-st: +mt-st: +mt-st: diff --git a/source/a/mtx/mtx.SlackBuild b/source/a/mtx/mtx.SlackBuild new file mode 100755 index 00000000..c17d1176 --- /dev/null +++ b/source/a/mtx/mtx.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/bash + +# 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. + + +# mtx.SlackBuild +# Package mtx for Slackware +# mozes@slackware.com +# ftp://ftp.badtux.net/pub/storage/mtx + +PACKAGE=mtx +VERSION=1.3.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PACKAGE + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Extract source: +cd $TMP +rm -rf $PACKAGE-* +tar zxvvf $CWD/$PACKAGE-$VERSION.tar.gz +cd $PACKAGE-$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: +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux || exit 1 + +# Avoid looking in the Kernel source: +sed -i 's?-I/usr/src/linux/include? ?g' Makefile + +# Build: +make || exit 1 + +# Install into package: +mkdir -pm755 $PKG/{install,usr/{sbin,doc/$PACKAGE-$VERSION,man/man1}} +install -m755 scsitape tapeinfo mtx loaderinfo $PKG/usr/sbin +install -m644 *.1 $PKG/usr/man/man1 +gzip -9 $PKG/usr/man/man1/* + +# Strip: +( 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 +) + +# Copy docs: +cp -fa mtx.doc CHANGES COMPATABILITY FAQ LICENSE README TODO \ + $PKG/usr/doc/$PACKAGE-$VERSION + +# Install package description: +install -m644 $CWD/slack-desc $PKG/install + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/$PACKAGE-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/mtx/slack-desc b/source/a/mtx/slack-desc new file mode 100644 index 00000000..901abb3d --- /dev/null +++ b/source/a/mtx/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------------------------------------------------------| +mtx: mtx (Controls tape autochangers) +mtx: +mtx: The MTX program controls the robotic mechanism in autoloaders and +mtx: tape libraries such as the HP SureStore DAT 40x6, Exabyte EZ-17, and +mtx: Exabyte 220. +mtx: +mtx: This program is also reported to work with a variety of other tape +mtx: libraries and autochangers from Tandberg/Overland, Breece Hill, HP, +mtx: Seagate, Dell and Quantum. +mtx: +mtx: diff --git a/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch new file mode 100644 index 00000000..0ae7ec59 --- /dev/null +++ b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch @@ -0,0 +1,13 @@ +--- ncompress-4.2.4/compress42.c.bssUnderflow 2006-08-10 11:40:03.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-08-10 11:40:31.000000000 +0200 +@@ -1689,6 +1689,10 @@ + + if (oldcode == -1) + { ++ if (code >= 256) { ++ fprintf(stderr, "uncompress: corrupt input\n"); ++ abort_compress(); ++ } + outbuf[outpos++] = (char_type)(finchar = (int)(oldcode = code)); + continue; + } diff --git a/source/a/ncompress/ncompress-4.2.4-endians.patch b/source/a/ncompress/ncompress-4.2.4-endians.patch new file mode 100644 index 00000000..fdc96622 --- /dev/null +++ b/source/a/ncompress/ncompress-4.2.4-endians.patch @@ -0,0 +1,11 @@ +--- ncompress-4.2.4/compress42.c.endians 2006-09-19 13:53:58.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-09-19 13:57:54.000000000 +0200 +@@ -432,7 +432,7 @@ + + union bytes + { +- long word; ++ int word; + struct + { + #if BYTEORDER == 4321 diff --git a/source/a/ncompress/ncompress.2GB.diff b/source/a/ncompress/ncompress.2GB.diff new file mode 100644 index 00000000..8c545caf --- /dev/null +++ b/source/a/ncompress/ncompress.2GB.diff @@ -0,0 +1,11 @@ +--- ncompress-4.2.4/compress42.c.2GB 2004-07-14 12:16:19.000000000 -0400 ++++ ncompress-4.2.4/compress42.c 2004-07-14 12:16:59.000000000 -0400 +@@ -1329,7 +1329,7 @@ + REG11 int boff; + REG12 int n_bits; + REG13 int ratio; +- REG14 long checkpoint; ++ REG14 unsigned long long checkpoint; + REG15 code_int extcode; + union + { diff --git a/source/a/ncompress/ncompress.SlackBuild b/source/a/ncompress/ncompress.SlackBuild new file mode 100755 index 00000000..e8b1c68f --- /dev/null +++ b/source/a/ncompress/ncompress.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2005-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.2.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ncompress + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncompress-${VERSION} +tar xzf $CWD/ncompress-${VERSION}.tar.gz +cd ncompress-${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/ncompress.make.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.lfs2.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.filenamelen.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.2GB.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.zerobyteforce.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress-${VERSION}-bssUnderflow.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress-${VERSION}-endians.patch.gz | patch -p1 --verbose || exit 1 + +make ENDIAN=4321 || exit 1 +mkdir -p $PKG/usr/bin +cat compress > $PKG/usr/bin/compress +chmod 755 $PKG/usr/bin/compress +( cd $PKG/usr/bin ; ln -sf compress uncompress ) +mkdir $PKG/bin +( cd $PKG/bin ; ln -sf /usr/bin/compress compress ) +( cd $PKG/bin ; ln -sf compress uncompress ) +mkdir -p $PKG/usr/man/man1 +cat compress.1 | gzip -9c > $PKG/usr/man/man1/compress.1.gz +echo '.so man1/compress.1' | gzip -9c > $PKG/usr/man/man1/uncompress.1.gz +mkdir -p $PKG/usr/doc/ncompress-${VERSION} +cp -a \ + Acknowleds LZW.INFO README \ + $PKG/usr/doc/ncompress-${VERSION} + +# Strip everything for good measure: +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/ncompress-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/ncompress/ncompress.filenamelen.diff b/source/a/ncompress/ncompress.filenamelen.diff new file mode 100644 index 00000000..67676c7a --- /dev/null +++ b/source/a/ncompress/ncompress.filenamelen.diff @@ -0,0 +1,98 @@ +--- ncompress-4.2.4/compress42.c.filenamelen Wed Nov 21 12:19:38 2001 ++++ ncompress-4.2.4/compress42.c Wed Nov 21 12:20:03 2001 +@@ -140,6 +140,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <errno.h> ++#include <string.h> + + #ifdef DIRENT + # include <dirent.h> +@@ -213,7 +214,7 @@ + # define OBUFSIZ BUFSIZ /* Default output buffer size */ + #endif + +-#define MAXPATHLEN 1024 /* MAXPATHLEN - maximum length of a pathname we allow */ ++#define MAXPATHLEN PATH_MAX /* MAXPATHLEN - maximum length of a pathname we allow */ + #define SIZE_INNER_LOOP 256 /* Size of the inter (fast) compress loop */ + + /* Defines for third byte of header */ +@@ -641,13 +642,11 @@ + } ; + #endif + +-void main ARGS((int,char **)); + void Usage ARGS((void)); + void comprexx ARGS((char **)); + void compdir ARGS((char *)); + void compress ARGS((int,int)); + void decompress ARGS((int,int)); +-char *rindex ARGS((char *,int)); + void read_error ARGS((void)); + void write_error ARGS((void)); + void abort_compress ARGS((void)); +@@ -694,13 +693,15 @@ + * deterministic, and can be done on the fly. Thus, the decompression + * procedure needs no input table, but tracks the way the table was built. + */ +-void ++int + main(argc, argv) + REG1 int argc; + REG2 char *argv[]; + { + REG3 char **filelist; + REG4 char **fileptr; ++ int i; ++ + + if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN)) + signal(SIGINT, (SIG_TYPE)abort_compress); +@@ -714,7 +715,14 @@ + nomagic = 1; /* Original didn't have a magic number */ + #endif + +- filelist = fileptr = (char **)malloc(argc*sizeof(char *)); ++ for(i=0;i<argc;i++){ ++ if(strlen(argv[i])>(MAXPATHLEN-1)){ ++ fprintf(stderr,"Filename too long\n"); ++ exit(1); ++ } ++ } ++ ++ filelist = fileptr = (char **)malloc(argc*sizeof(char *)); + *filelist = NULL; + + if((progname = rindex(argv[0], '/')) != 0) +@@ -853,8 +861,9 @@ + else + decompress(0, 1); + } +- ++ + exit((exit_code== -1) ? 1:exit_code); ++ return 0; + } + + void +@@ -1801,20 +1810,6 @@ + write_error(); + } + +-char * +-rindex(s, c) /* For those who don't have it in libc.a */ +- REG1 char *s; +- REG2 int c; +- { +- char *p; +- +- for (p = NULL; *s; s++) +- if (*s == (char)c) +- p = s; +- +- return(p); +- } +- + void + read_error() + { diff --git a/source/a/ncompress/ncompress.lfs2.diff b/source/a/ncompress/ncompress.lfs2.diff new file mode 100644 index 00000000..9da42eb5 --- /dev/null +++ b/source/a/ncompress/ncompress.lfs2.diff @@ -0,0 +1,52 @@ +--- ncompress-4.2.4/compress42.c.lfs 2002-06-19 19:19:33.000000000 -0400 ++++ ncompress-4.2.4/compress42.c 2002-06-19 19:20:48.000000000 -0400 +@@ -130,6 +130,7 @@ + * Add variable bit length output. + * + */ ++#include <unistd.h> + #include <stdio.h> + #include <fcntl.h> + #include <ctype.h> +@@ -168,30 +169,6 @@ + # define SIG_TYPE void (*)() + #endif + +-#ifndef NOFUNCDEF +- extern void *malloc LARGS((int)); +- extern void free LARGS((void *)); +-#ifndef _IBMR2 +- extern int open LARGS((char const *,int,...)); +-#endif +- extern int close LARGS((int)); +- extern int read LARGS((int,void *,int)); +- extern int write LARGS((int,void const *,int)); +- extern int chmod LARGS((char const *,int)); +- extern int unlink LARGS((char const *)); +- extern int chown LARGS((char const *,int,int)); +- extern int utime LARGS((char const *,struct utimbuf const *)); +- extern char *strcpy LARGS((char *,char const *)); +- extern char *strcat LARGS((char *,char const *)); +- extern int strcmp LARGS((char const *,char const *)); +- extern unsigned strlen LARGS((char const *)); +- extern void *memset LARGS((void *,char,unsigned int)); +- extern void *memcpy LARGS((void *,void const *,unsigned int)); +- extern int atoi LARGS((char const *)); +- extern void exit LARGS((int)); +- extern int isatty LARGS((int)); +-#endif +- + #define MARK(a) { asm(" .globl M.a"); asm("M.a:"); } + + #ifdef DEF_ERRNO +@@ -535,8 +512,8 @@ + char ofname[MAXPATHLEN]; /* Output filename */ + int fgnd_flag = 0; /* Running in background (SIGINT=SIGIGN) */ + +-long bytes_in; /* Total number of byte from input */ +-long bytes_out; /* Total number of byte to output */ ++long long bytes_in; /* Total number of byte from input */ ++long long bytes_out; /* Total number of byte to output */ + + /* + * 8086 & 80286 Has a problem with array bigger than 64K so fake the array diff --git a/source/a/ncompress/ncompress.make.diff b/source/a/ncompress/ncompress.make.diff new file mode 100644 index 00000000..2a0acc1c --- /dev/null +++ b/source/a/ncompress/ncompress.make.diff @@ -0,0 +1,60 @@ +--- ncompress-4.2.4/Makefile.orig Thu Oct 31 10:38:46 1996 ++++ ncompress-4.2.4/Makefile Thu Oct 31 10:39:12 1996 +@@ -0,0 +1,57 @@ ++# Makefile generated by build. ++ ++# C complier ++CC=cc $(RPM_OPT_FLAGS) ++ ++# Install directory for binarys ++BINDIR=/usr/bin ++ ++# Install directory for manual ++MANDIR=/usr/man/man1 ++ ++# compiler options: ++# options is a collection of: ++# ++# -DAMIGA=1 Amiga support. ++# -DNOFUNCDEF=1 Disable libary function definitions in ++# compress42.c ++# -DDIRENT=1 Use dirent.h ++# -DSYSDIR=1 Use sys/dir.h ++# -DLSTAT=1 Use lstat for finding symlinks. ++# -DUTIME_H=1 Use utime.h ++# -DUSERMEM=<size> Availble memory for compress (default 800k). ++# -DREGISTERS=<nbr> Number of registers (default 2). ++# -DIBUFSIZ=<size> Input buffer size (default BUFSIZ). ++# -DOBUFSIZ=<size> Output buffer size (default BUFSIZ) ++# -DBYTEORDER=<order> Byte order (default: unknown). ++# -DNOALLIGN=1 Data word allignment (default: yes). ++# -DDEF_ERRNO=1 Define error (not defined in errno.h). ++# -DMAXSEG_64K=1 -BITS=16 Support segment processsor like 80286. ++# ++options= -DDIRENT=1 -DSYSDIR=1 -DUTIME_H=1 -DUSERMEM=800000 -DREGISTERS=20 -DIBUFSIZ=1024 -DOBUFSIZ=1024 -DBYTEORDER=$(ENDIAN) ++ ++# libary options ++LBOPT= ++ ++ ++compress: Makefile compress42.c patchlevel.h ++ $(CC) -o compress $(options) "-DCOMPILE_DATE=\"`date`\"" compress42.c ++ ++install: compress ++ [ -f $(BINDIR)/compress ] && \ ++ { rm -f $(BINDIR)/compress.old ; \ ++ mv $(BINDIR)/compress $(BINDIR)/compress.old ; } ++ rm -f $(BINDIR)/uncompress $(BINDIR)/zcat ++ cp compress $(BINDIR)/compress ++ strip $(BINDIR)/compress ++ rm -f $(BINDIR)/uncompress ++ ln $(BINDIR)/compress $(BINDIR)/uncompress ++ rm -f $(BINDIR)/zcat ++ ln -f $(BINDIR)/compress $(BINDIR)/zcat ++ cp zcmp zdiff zmore $(BINDIR)/. ++ chmod 0755 $(BINDIR)/compress $(BINDIR)/zcmp $(BINDIR)/zdiff $(BINDIR)/zmore ++ cp compress.1 zcmp.1 zmore.1 $(MANDIR)/. ++ chmod 0644 $(MANDIR)/compress.1 $(MANDIR)/zcmp.1 $(MANDIR)/zmore.1 ++ ++cleanup: ++ rm -f compress compress.def comp.log diff --git a/source/a/ncompress/ncompress.zerobyteforce.diff b/source/a/ncompress/ncompress.zerobyteforce.diff new file mode 100644 index 00000000..465d67e3 --- /dev/null +++ b/source/a/ncompress/ncompress.zerobyteforce.diff @@ -0,0 +1,24 @@ +--- ncompress-4.2.4/compress42.c.zerobyteforce 2006-04-14 14:18:28.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-04-14 14:20:15.000000000 +0200 +@@ -1145,10 +1145,12 @@ + if (fdout != 1 && close(fdout)) + write_error(); + +- if (bytes_in == 0) ++ if ( (bytes_in == 0) && (force == 0 ) ) + { + if (remove_ofname) + { ++ if(!quiet) ++ fprintf(stderr, "No compression -- %s unchanged\n", ifname); + if (unlink(ofname)) /* Remove input file */ + { + fprintf(stderr, "\nunlink error (ignored) "); +@@ -1157,6 +1159,7 @@ + } + + remove_ofname = 0; ++ exit_code = 2; + } + } + else diff --git a/source/a/ncompress/slack-desc b/source/a/ncompress/slack-desc new file mode 100644 index 00000000..24bfa022 --- /dev/null +++ b/source/a/ncompress/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------------------------------------------------------| +ncompress: ncompress (the classic *nix compression utility) +ncompress: +ncompress: Compress reduces the size of the named files using adaptive Lempel-Ziv +ncompress: coding. Whenever possible, each file is replaced by one with the +ncompress: extension .Z, while keeping the same ownership modes, access and +ncompress: modification times. If no files are specified, the standard input is +ncompress: compressed to the standard output. Compressed files can be restored +ncompress: to their original form using uncompress or zcat. +ncompress: +ncompress: +ncompress: diff --git a/source/a/ntfs-3g/10-ntfs-3g-policy.fdi b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi new file mode 100644 index 00000000..baaf8159 --- /dev/null +++ b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<deviceinfo version="0.2"> + <device> + <match key="volume.fstype" string="ntfs"> + <match key="@block.storage_device:storage.hotpluggable" bool="true"> + <merge key="volume.fstype" type="string">ntfs-3g</merge> + <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge> + <append key="volume.mount.valid_options" type="strlist">locale=</append> + </match> + </match> + </device> +</deviceinfo> diff --git a/source/a/ntfs-3g/ntfs-3g.SlackBuild b/source/a/ntfs-3g/ntfs-3g.SlackBuild new file mode 100755 index 00000000..2883d4fb --- /dev/null +++ b/source/a/ntfs-3g/ntfs-3g.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Slackware build script for ntfs-3g + +# Copyright (c) 2008, Antonio Hernandez Blas <hba.nihilismus@gmail.com> +# 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. +# +# 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. + +# Modified by Robby Workman <rworkman@slackware.com> +# Modified by Patrick Volkerding <volkerdi@slackware.com> +# Modified by Eric Hameleers <alien@slackware.com> + +PRGNAM=ntfs-3g +VERSION=${VERSION:-2009.4.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +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 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +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} \ + --mandir=/usr/man \ + --bindir=/bin \ + --sbindir=/sbin \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-fuse=internal \ + --disable-ldconfig \ + --enable-static=no \ + --build=${ARCH}-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add the HAL fdi file so that automount uses "ntfs-3g" as filesystem type +mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor +cat $CWD/10-ntfs-3g-policy.fdi \ + > $PKG/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g-policy.fdi + +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 -rf $PKG/usr/share/doc +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* CREDITS INSTALL NEWS 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/a/ntfs-3g/slack-desc b/source/a/ntfs-3g/slack-desc new file mode 100644 index 00000000..353695bb --- /dev/null +++ b/source/a/ntfs-3g/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-----------------------------------------------------| +ntfs-3g: ntfs-3g (NTFS read-write filesystem driver) +ntfs-3g: +ntfs-3g: The NTFS-3G driver is an open source, freely available NTFS driver +ntfs-3g: for Linux with read and write support. It provides safe and fast +ntfs-3g: handling of the Windows XP, Windows Server 2003, Windows 2000 and +ntfs-3g: Windows Vista file systems. Most POSIX file system operations are +ntfs-3g: supported, with the exception of full file ownership and access +ntfs-3g: rights support. +ntfs-3g: +ntfs-3g: Homepage for the ntfs-3g project: http://www.ntfs-3g.org +ntfs-3g: diff --git a/source/a/patch/patch.SlackBuild b/source/a/patch/patch.SlackBuild new file mode 100755 index 00000000..fb0c06d9 --- /dev/null +++ b/source/a/patch/patch.SlackBuild @@ -0,0 +1,64 @@ +#!/bin/sh + +# Copyright 2005-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.5.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-patch + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf patch-${VERSION} +tar xzvf $CWD/patch-${VERSION}.tar.gz +cd patch-${VERSION} +chown -R root:root . +mkdir -p $PKG/usr/doc/patch-${VERSION} +cp -a AUTHORS COPYING NEWS README $PKG/usr/doc/patch-${VERSION} +chmod 644 $PKG/usr/doc/patch-${VERSION}/* +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make CFLAGS=-O2 || exit 1 +mkdir -p $PKG/usr/bin +cat patch > $PKG/usr/bin/patch +chmod 755 $PKG/usr/bin/patch +mkdir -p $PKG/usr/man/man1 +cat patch.man | gzip -9c > $PKG/usr/man/man1/patch.1.gz + +# Strip everything for good measure: +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/patch-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/patch/slack-desc b/source/a/patch/slack-desc new file mode 100644 index 00000000..5ddba89b --- /dev/null +++ b/source/a/patch/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------------------------------------------------------| +patch: patch (apply a diff file to an original file or files) +patch: +patch: Patch is a utility used to apply diffs (or patches) to files, which +patch: are usually source code. +patch: +patch: Larry Wall wrote the original version of patch. Paul Eggert removed +patch: patch's arbitrary limits; added support for binary files, setting +patch: file times, and deleting files; and made it conform better to POSIX. +patch: Other contributors include Wayne Davison, who added unidiff support, +patch: and David MacKenzie, who added configuration and backup support. +patch: diff --git a/source/a/pciutils/pciutils.SlackBuild b/source/a/pciutils/pciutils.SlackBuild new file mode 100755 index 00000000..183c7add --- /dev/null +++ b/source/a/pciutils/pciutils.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=${VERSION:-3.1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pciutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf pciutils-$VERSION +tar xvf $CWD/pciutils-$VERSION.tar.bz2 || exit 1 +cd pciutils-$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 {} \; + +# Fetch the latest pci.ids: +rm -f pci.ids +sh update-pciids.sh +# Now fix the update-pciids script and preinstall it before 'make install' +# decides that it knows best +zcat $CWD/pciutils.ids.dest.diff.gz | patch -p1 --verbose || exit 1 +mkdir -p $PKG/usr/sbin +cat update-pciids.sh > $PKG/usr/sbin/update-pciids +chmod 755 $PKG/usr/sbin/update-pciids + +make \ + PREFIX=/usr \ + SBINDIR=/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + MANDIR=/usr/man \ + OPT="$SLKCFLAGS" \ + $NUMJOBS || exit 1 + +make install install-lib \ + PREFIX=/usr \ + SBINDIR=/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + MANDIR=/usr/man \ + DESTDIR=$PKG + +# Do not compress pci.ids - hal-0.5.11 needs it uncompressed +( cd $PKG/usr/share ; gzip -d pci.ids.gz ) +# Remove the update-pciids script that 'make install' placed +rm -f $PKG/sbin/update-pciids + +( 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 +) + +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/pciutils-$VERSION +cp -a \ + ChangeLog README TODO \ + $PKG/usr/doc/pciutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pciutils-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/pciutils/pciutils.ids.dest.diff b/source/a/pciutils/pciutils.ids.dest.diff new file mode 100644 index 00000000..98d152c2 --- /dev/null +++ b/source/a/pciutils/pciutils.ids.dest.diff @@ -0,0 +1,14 @@ +diff -Nur pciutils-3.1.3.orig/update-pciids.sh pciutils-3.1.3/update-pciids.sh +--- pciutils-3.1.3.orig/update-pciids.sh 2008-11-10 17:11:51.000000000 -0600 ++++ pciutils-3.1.3/update-pciids.sh 2009-07-29 02:23:53.102308103 -0500 +@@ -3,8 +3,8 @@ + [ "$1" = "-q" ] && quiet=true || quiet=false + + set -e +-SRC="http://pciids.sourceforge.net/v2.2/pci.ids" +-DEST=pci.ids ++SRC="http://pciids.sourceforge.net/pci.ids" ++DEST=/usr/share/pci.ids + PCI_COMPRESSED_IDS= + GREP=grep + diff --git a/source/a/pciutils/pciutils.url b/source/a/pciutils/pciutils.url new file mode 100644 index 00000000..e77494b5 --- /dev/null +++ b/source/a/pciutils/pciutils.url @@ -0,0 +1,2 @@ +#ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/ +ftp.kernel.org:/pub/software/utils/pciutils/ diff --git a/source/a/pciutils/slack-desc b/source/a/pciutils/slack-desc new file mode 100644 index 00000000..913f9646 --- /dev/null +++ b/source/a/pciutils/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------------------------------------------------------| +pciutils: pciutils (PCI utilities) +pciutils: +pciutils: lspci displays detailed information about all PCI buses and devices +pciutils: in the system, replacing the original /proc/pci interface. +pciutils: +pciutils: setpci allows reading from and writing to PCI device configuration +pciutils: registers. For example, you can adjust the latency timers with it. +pciutils: +pciutils: See the manual pages for more details. +pciutils: +pciutils: diff --git a/source/a/pcmciautils/config/60-pcmcia.rules b/source/a/pcmciautils/config/60-pcmcia.rules new file mode 100644 index 00000000..677da01b --- /dev/null +++ b/source/a/pcmciautils/config/60-pcmcia.rules @@ -0,0 +1,22 @@ +# PCMCIA devices: +# +# Very few CIS firmware entries (which we use for matching) +# are so broken that we need to read out random bytes of it +# instead of the manufactor, card or product ID. Then the +# matching is done in userspace. +ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/sbin/pcmcia-check-broken-cis" + +# However, the "weak" matching by func_id is only allowed _after_ modprobe +# returns, so that "strong" matches have a higher priority. +ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/bin/sh -c 'echo 1 > /sys/$DEVPATH/allow_func_id_match'" + +# PCMCIA sockets: +# +# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work +ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia" + +# if this is a PCMCIA socket which needs a resource database, +# pcmcia-socket-startup sets it up +ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/pcmcia-socket-startup" diff --git a/source/a/pcmciautils/config/config.opts b/source/a/pcmciautils/config/config.opts new file mode 100644 index 00000000..5b8d5faf --- /dev/null +++ b/source/a/pcmciautils/config/config.opts @@ -0,0 +1,71 @@ +# +# Local PCMCIA Configuration File +# +#---------------------------------------------------------------------- +# +# System resources available for PCMCIA cards +# +# NOTE: these settings have no effect on resources assigned to a +# CardBus bridge device itself; this file only affects resources +# assigned to cards. Also, interrupt settings here will only affect +# ISA bus interrupts assigned to 16-bit cards. PCI interrupts +# generally can't be reconfigured. +# +# With the kernel PCMCIA subsystem, these settings also have no effect +# at all on resources used for 32-bit CardBus cards. Those are set by +# the PCI hotplug subsystem. +# + +# These are the official ports to use from pcmcia-cs: +#include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff +# However, ports 0x810-0x81f hurt on some DELL machines and +# ports 0x3b0-0x3df hurt on some FSC machines, so we use this port +# list instead: +include port 0x100-0x3af, port 0x3e0-0x4ff, port 0xc00-0xcff + +include memory 0xc0000-0xfffff +include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff + +# High port numbers do not always work... +# include port 0x1000-0x17ff + +# Extra port range for IBM Token Ring +include port 0xa00-0xaff + +# Resources we should not use, even if they appear to be available + +# First built-in serial port +exclude irq 4 +# Second built-in serial port +#exclude irq 3 +# First built-in parallel port +exclude irq 7 + +#---------------------------------------------------------------------- + +# Examples of options for loadable modules + +# To fix sluggish network with IBM ethernet adapter... +#module "pcnet_cs" opts "mem_speed=600" + +# Options for IBM Token Ring adapters +#module "ibmtr_cs" opts "mmiobase=0xd0000 srambase=0xd4000" + +# Options for Raylink/WebGear driver: uncomment only one line... +# These are the default settings for use with the WebGear Windows driver: +#module "ray_cs" opts "essid=NETWORK_NAME hop_dwell=128 beacon_period=256 translate=0" +# Generic ad-hoc network +#module "ray_cs" opts "essid=ADHOC_ESSID hop_dwell=128 beacon_period=256 translate=1" +# Infrastructure network for older cards +#module "ray_cs" opts "net_type=1 essid=ESSID1" +# Infrastructure network for WebGear +#module "ray_cs" opts "net_type=1 essid=ESSID1 translate=1 hop_dwell=128 beacon_period=256" + +# Options for WaveLAN/IEEE driver (AccessPoint mode)... +#module "wvlan_cs" opts "station_name=MY_PC" +# Options for WaveLAN/IEEE driver (ad-hoc mode)... +#module "wvlan_cs" opts "port_type=3 channel=1 station_name=MY_PC" + +# Options for Xircom Netwave driver... +#module "netwave_cs" opts "domain=0x100 scramble_key=0x0" + diff --git a/source/a/pcmciautils/config/rc.pcmcia b/source/a/pcmciautils/config/rc.pcmcia new file mode 100755 index 00000000..1f21be84 --- /dev/null +++ b/source/a/pcmciautils/config/rc.pcmcia @@ -0,0 +1,65 @@ +#!/bin/sh +# +# rc.pcmcia: Script to initialize PCMCIA subsystem. +# Based in an example found in cardmgr-to-pcmciautils.txt +# and in Slackware rc.pcmcia found in pcmcia-cs package. +# + +# Set this to the driver to use, one of: +# probe, yenta_socket, i82365, i82092, pd6729, tcic, etc. +# +DRIVER=probe +DRIVER_OPTS= + +case "$1" in + start) + echo "Starting PCMCIA services:" + fgrep -q pcmcia /proc/devices + if [ $? -ne 0 ] ; then + if [ "$DRIVER" = "probe" ]; then + echo " <Probing for PCIC: edit /etc/rc.d/rc.pcmcia>" + for DRV in yenta_socket i82365 tcic ; do + /sbin/modprobe $DRV > /dev/null 2>&1 + /sbin/pccardctl status | grep -q Socket && break + /sbin/modprobe -r $DRV > /dev/null 2>&1 + done + else + echo " <Loading PCIC: $DRIVER>" + /sbin/modprobe $DRIVER $DRIVER_OPTS > /dev/null 2>&1 + fi + /sbin/modprobe pcmcia > /dev/null 2>&1 # just in case it's not auto-loaded + else + echo " <PCIC already loaded>" + fi + ;; + + stop) + echo -n "Shutting down PCMCIA services: " + echo -n "cards " + /sbin/pccardctl eject + MODULES=`/sbin/lsmod | grep "pcmcia " | awk '{print $4}' | tr , ' '` + for i in $MODULES ; do + echo -n "$i " + /sbin/modprobe -r $i > /dev/null 2>&1 + done + echo -n "pcmcia " + /sbin/modprobe -r pcmcia > /dev/null 2>&1 + if [ "$DRIVER" = "probe" ]; then + for DRV in yenta_socket i82365 tcic ; do + grep -qw $DRV /proc/modules && modprobe -r $DRV && \ + echo -n "$DRV " && break + done + else + /sbin/modprobe -r $DRIVER > /dev/null 2>&1 + fi + echo -n "rsrc_nonstatic " + /sbin/modprobe -r rsrc_nonstatic > /dev/null 2>&1 + echo "pcmcia_core" + /sbin/modprobe -r pcmcia_core > /dev/null 2>&1 + ;; + + restart) + $0 stop + $0 start + ;; +esac diff --git a/source/a/pcmciautils/doinst.sh b/source/a/pcmciautils/doinst.sh new file mode 100644 index 00000000..d01ddb5c --- /dev/null +++ b/source/a/pcmciautils/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/rc.d/rc.pcmcia.new +config etc/pcmcia/config.opts.new diff --git a/source/a/pcmciautils/pcmciautils.SlackBuild b/source/a/pcmciautils/pcmciautils.SlackBuild new file mode 100755 index 00000000..dcf70895 --- /dev/null +++ b/source/a/pcmciautils/pcmciautils.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Slackware build script for pcmciautils + +# 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:-015} +ARCH=${ARCH:-x86_64} +# parallel build will cause an error building ccdv: +NUMJOBS=${NUMJOBS:-" -j1 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pcmciautils + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf pcmciautils-$VERSION +tar xvf $CWD/pcmciautils-$VERSION.tar.bz2 +cd pcmciautils-$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 $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( 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 +) + +# Add some firmware: +( cd $PKG + tar xvf $CWD/cis-cs-3.2.8.tar.gz + chown -R root:root lib +) + +rm -rf $PKG/etc/* +mkdir -p $PKG/etc/pcmcia $PKG/etc/rc.d $PKG/lib/udev/rules.d + +cp -a $CWD/config/rc.pcmcia $PKG/etc/rc.d/rc.pcmcia.new +chown root:root $PKG/etc/rc.d/rc.pcmcia.new +chmod 0755 $PKG/etc/rc.d/rc.pcmcia.new + +cp -a $CWD/config/config.opts $PKG/etc/pcmcia/config.opts.new +chown root:root $PKG/etc/pcmcia/config.opts.new +chmod 0644 $PKG/etc/pcmcia/config.opts.new + +cp -a udev/60-pcmcia.rules $PKG/lib/udev/rules.d/60-pcmcia.rules +chown root:root $PKG/lib/udev/rules.d/60-pcmcia.rules +chmod 0644 $PKG/lib/udev/rules.d/60-pcmcia.rules + +# Create some symlinks that the udev rules file wants +( cd $PKG/lib/udev + ln -s ../../sbin/pcmcia-check-broken-cis . + ln -s ../../sbin/pcmcia-socket-startup . +) + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# 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/pcmciautils-$VERSION +cp COPYING* $PKG/usr/doc/pcmciautils-$VERSION + +mkdir $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/pcmciautils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/pcmciautils/slack-desc b/source/a/pcmciautils/slack-desc new file mode 100644 index 00000000..c9958af8 --- /dev/null +++ b/source/a/pcmciautils/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-------------------------------------------------------| +pcmciautils: pcmciautils (Utilities for using PCMCIA cards with 2.6+ kernels) +pcmciautils: +pcmciautils: This package provides PCMCIA tools that replace the pcmcia-cs tools +pcmciautils: used with the 2.4.x Linux kernel. PCMCIA cards are commonly used +pcmciautils: in laptops to provide expanded capabilities such as network +pcmciautils: connections, modems, increased memory, and more. +pcmciautils: +pcmciautils: +pcmciautils: +pcmciautils: +pcmciautils: diff --git a/source/a/pkgtools/manpages/explodepkg.8 b/source/a/pkgtools/manpages/explodepkg.8 new file mode 100644 index 00000000..3e11fddc --- /dev/null +++ b/source/a/pkgtools/manpages/explodepkg.8 @@ -0,0 +1,41 @@ +.\" -*- 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 EXPLODEPKG 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +explodepkg \- Extract the contents of a tar+compression package (such as a Slackware +software package) in the current directory. +.SH SYNOPSIS +.B explodepkg +.BI package +.BI [ +.BI package2, +.BI package3, +.BI ... +.BI ] +.SH DESCRIPTION +.B explodepkg +uncompresses and untars Slackware *.tgz (or .tbz, .tlz, .txz) packages (or any archive +that was created by +compressing a tarfile with one of the supported compression utilities) in the current directory. It is not usually +used to install packages, since it doesn't execute the installation scripts +in ./install or ./var/log/setup. The primary use for +.B explodepkg +is in package maintenance - exploding a package in a subdirectory, making fixes +to it or upgrading the software, and then building the updated package with +.B makepkg. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR tar(1), +.BR gzip(1), +.BR installpkg(8), +.BR makepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/installpkg.8 b/source/a/pkgtools/manpages/installpkg.8 new file mode 100644 index 00000000..2d77f10e --- /dev/null +++ b/source/a/pkgtools/manpages/installpkg.8 @@ -0,0 +1,91 @@ +.\" -*- 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 INSTALLPKG 8 "22 Nov 2001" "Slackware Version 8.1.0" +.SH NAME +installpkg \- install Slackware packages. +.SH SYNOPSIS +.B installpkg +[ +.B \--warn +] +[ +.B \--md5sum +] +[ +.B \--root /otherroot +] +[ +.B \--infobox +] +[ +.B \--menu +] +[ +.B \--ask +] +[ +.B \--priority ADD|REC|OPT|SKP +] +[ +.B \--tagfile /somedir/tagfile +] +.BI packagename +[ +.B packagename2 ... +] +.SH DESCRIPTION +.B installpkg +installs single or multiple *.tgz (or .tbz, .tlz, .txz) binary packages designed +for use with the Slackware Linux distribution onto your system. +.SH OPTIONS +.TP +.B \--warn packagename +Generate a report to the standard output about which files and directories +would be removed or overwritten if you install the package, but do not +actually install it. +.TP +.B \--md5sum packagename +Record the package md5sum in the metadata written in /var/log/packages. +.TP +.B \--root /otherroot +Install using a location other than / (the default) as the root of the +filesystem to install on. In the example given, use /otherroot instead. Setting +the ROOT environment variable does the same thing. +.TP +.B \--infobox +Use /bin/dialog to display an informational dialog as the package is installed. +Primarily used when installpkg is called from other scripts. +.TP +.B \--menu +Use /bin/dialog to display a menu asking the user if they would like to install the +package(s) or not. Generally used when installpkg is called from other scripts. +.TP +.B \--ask +Used with -menu mode. When selected, always ask if a package should be +installed regardless of what the package's priority is. +.TP +.B \--priority ADD|REC|OPT|SKP +When installing with the \-menu option, package priority levels (found in the file +"tagfile" in the package directory) are used to automatically install (ADD) or +skip (SKP) a package, or to suggest recommended (REC) or optional (OPT) to the user +if a menu is displayed. If a priority is set on the command line, it will override +the values set in the tagfile for the entire package list. +.TP +.B \--tagfile /somedir/tagfile +Specify a different file to use for package priorities (in this example, /somedir/tagfile +will be used). The default is "tagfile" in the package's directory. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR removepkg(8), +.BR explodepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/makepkg.8 b/source/a/pkgtools/manpages/makepkg.8 new file mode 100644 index 00000000..b280ce51 --- /dev/null +++ b/source/a/pkgtools/manpages/makepkg.8 @@ -0,0 +1,135 @@ +.\" -*- 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 MAKEPKG 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +makepkg \- make Slackware packages. +.SH SYNOPSIS +.B makepkg +[ +.B -l, --linkadd y|n +] +[ +.B -c, --chown y|n +] +.BI packagename +.SH DESCRIPTION +.B makepkg +creates a new Slackware compatible package. +The package is constructed using the contents of the current directory and +all subdirectories. If symbolic links exist, they will be converted to script +code to recreate them when the package is installed. This code will be +appended to the primary installation script +.B ( install/doinst.sh ) +, or, if that script does not exist it will be created with those contents. +The package will be written out to the file +.BI packagename +which should be the full name, including the extension. This is usually .tgz, +but .tbz, .tlz, and .txz are also accepted. The proper compression utility +(gzip, bzip2, lzma, or xz) needs to be installed on the machine. +.SH OPTIONS +.TP +.B \-l, --linkadd y|n +If y, add any symbolic links found to the install script (doinst.sh) and +delete them. This is the recommended action. If this option is not used, +makepkg will prompt if symbolic links are found. +.TP +.B \-p, --prepend +If this option is given, then any symbolic links added to doinst.sh will be +prepended to the existing script. This is useful for packages that contain +shared libraries that need to be linked first because programs will use them +later in the doinst.sh script. +.TP +.B \-c, --chown y|n +If y, makepkg will reset all directory permissions to 755 and ownership to root:root. +In general, you should have the permissions and ownerships worked out yourself, so +relying on setting this option to y is somewhat sloppy. It is not the default. If an +option is not provided, makepkg will prompt. +.SH INSTALLATION SCRIPTS +There are 3 types of installation scripts supported in the Slackware package +system. +.TP +The first is the +.B primary +installation script. This is found in the subdirectory +.B ./install +and must have the name +.B doinst.sh +in order to be recognized. This ( and other install scripts ) should be written +using the basic Bourne shell syntax recognized by the +.B ash +shell, since this is the shell that will be used to execute the script when +installing from a Slackware install floppy. This is a common trap - beware of +using +.B bash +syntax extensions, because the script will work fine when installed from the +hard drive, but will bomb out when installed from floppy. If the package is +for personal use, this isn't a problem. Be careful, though, if you plan to +share your package with other users. The +.B primary installation script +is executed immediately after the package is installed with +.B installpkg, pkgtool, +or +.B setup. +.TP +The second type of script is the +.B configuration +script. This is found in the subdirectory +.B ./var/log/setup +and must have a name that starts with +.B setup. +in order to be recongnized. An example is the timezone script: +.B /var/log/setup/setup.timeconfig. +These scripts are executed during the +.B CONFIGURE +phase of +.B setup, +and are re-executed each time the user runs the +.B CONFIGURE +option from +.B setup +from then on. +Typically, the user will go through this phase of setup following the +installation of all the packages. Anything that needs to be interactive +should go in one of these scripts to avoid halting the package installation +process during +.B setup. +.TP +The third type of script is the +.B onlyonce +script. Like the name suggests, these are executed only once after the package +is installed, in contrast to the standard +.B configuration +script. These scripts are also found in the +.B ./var/log/setup +directory and must have a name that starts with +.B setup., +but in addition the name must contain the string +.B onlyonce. +An example might be a script with the name +.B /var/log/setup/setup.onlyonce.testscript +.SH PACKAGE FORMAT +.B makepkg +uses GNU tar plus GNU gzip to create its packages. A simple way to +extract the contents of a package (without executing the installation +scripts, of course) is to use a command like this: +.TP +explodepkg package.tgz +.TP +Or, something like this: +.TP +gzip -dc package.tgz | tar xvvf - +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR installpkg(8), +.BR explodepkg(8), +.BR removepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/pkgtool.8 b/source/a/pkgtools/manpages/pkgtool.8 new file mode 100644 index 00000000..56e39217 --- /dev/null +++ b/source/a/pkgtools/manpages/pkgtool.8 @@ -0,0 +1,95 @@ +.\" -*- 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 PKGTOOL 8 "24 Nov 1995" "Slackware Version 3.1.0" +.SH NAME +pkgtool \- software package maintenance tool. +.SH SYNOPSIS +.B pkgtool +.LP +.B pkgtool +[ +.B --sets #a#b#c# +] +[ +.B --source_mounted +] +[ +.B --ignore_tagfiles +] +[ +.B --tagfile tagfile +] +[ +.B --source_dir directory +] +[ +.B --target_dir directory +] +[ +.B --source_device device +] +.SH DESCRIPTION +.B pkgtool +is a menu-driven package maintenance tool provided with the Slackware Linux +distribution. It allows the user to install, remove, or view +software packages through an interactive +system. Pkgtool can also be used to re-run the menu-driven scripts normally +executed at the end of a Slackware installation. This is useful for doing +basic reconfiguration (like changing the mouse type). +.SH OPTIONS +Most users will not want to use any options when running +.B pkgtool. +These are generally used only when +.B pkgtool +is run during the initial system installation. +Feel free to try them, but be careful. +.TP +.B \--sets #A#B#C# +Install the disk sets A, B, C. Seperate the disk set names by '#' symbols. +.TP +.B \--source_mounted +When this flag is present, +.B pkgtool +will not attempt to unmount and remount the source device with each disk. +.TP +.B \--ignore_tagfiles +When this flag is present, +.B pkgtool +will install every package encountered no matter what the tagfiles say. +.TP +.B \--tagfile tagfile +This flag is used to specify from the command line which tagfile should be +used for the installation. +.TP +.B \--source_dir directory +Used when installing multiple packages from disk sets. This is the directory +in which the subdirectories for each disk are found. This isn't used when +installing from floppy. +.TP +.B \--target_dir directory +The directory where the target root directory is located. This is '/' when +installing on the hard drive, or typically '/mnt' when installing from an +install disk. +.TP +.B \--source_device device +The source device to install from. This is not used if you've provided the +.B \--source_mounted +flag. It's usually used when installing from floppy, as in: + \--source_device /dev/fd0u1440 +or + \--source_device /dev/fd1h1200. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR explodepkg(8), +.BR installpkg(8), +.BR removepkg(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/removepkg.8 b/source/a/pkgtools/manpages/removepkg.8 new file mode 100644 index 00000000..3bd8bf7a --- /dev/null +++ b/source/a/pkgtools/manpages/removepkg.8 @@ -0,0 +1,108 @@ +.\" -*- 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 REMOVEPKG 8 "23 Nov 2001" "Slackware Version 8.1.0" +.SH NAME +removepkg \- remove Slackware packages. +.SH SYNOPSIS +.B removepkg +.BI packagename +.LP +[ +.B ROOT=/mnt +] +.B removepkg +[ +.B \-copy +] +[ +.B \-keep +] +[ +.B \-preserve +] +[ +.B \-warn +] +.BI packagename +.SH DESCRIPTION +.B removepkg +removes a previously installed Slackware package, while writing a progress +report to the standard output. A package may be specified either by the +full package name (as you'd see listed in /var/log/packages/), or by the +base package name. For example, the package foo-1.0-i486-1.tgz may be removed +with any of the following commands: + +removepkg foo-1.0-i486-1.tgz (also recognized: .tbz, .tlz, .txz) + +removepkg foo-1.0-i486-1 + +removepkg foo.tgz + +removepkg foo + +When deleting files, +.B removepkg +will analyze the contents of the other packages installed on your system, and +will only delete the files that are unique to the package being removed. +Similarly, the installation scripts for all the other packages will be +considered when deciding whether or not to delete symbolic links from the +package. +.LP +Removing a package (as well as installing one) can be a dangerous undertaking. +For this reason, there is the +.B \-warn +option available. When you use this, +.B removepkg +will not actually remove any files or links, but will output a detailed report +of what it would do if you actually did remove the package. It's suggested that +you do this (and maybe pipe the output to +.B less +) before removing packages to make sure you've backed up anything that might +be important. +.LP +When removing a package, it's original file index will be moved from +/var/log/packages to /var/log/removed_packages. Likewise, it's installation +script will be moved from /var/log/scripts to /var/log/removed_scripts. +.SH OPTIONS +.TP +.B \-warn packagename +Generate a report to the standard output about which files and directories +would be removed, but does not actually remove the package. +.TP +.B \-preserve packagename +If specified, the complete package subtree is reconstructed in +/var/log/setup/tmp/preserved_packages/packagename. +.TP +.B \-copy packagename +Construct a copy of the package under /var/log/setup/tmp/preserved_packages/packagename, +but don't remove it. (same effect as \-warn \-preserve) +.TP +.B \-keep +Save the intermediate files created by removepkg (delete_list, +required_files, uniq_list, del_link_list, required_links, +required_list). Mostly useful for debugging purposes. +.SH " " +It's possible to remove a package from a filesystem +other than / by supplying +.B removepkg +with a +.B ROOT +environment variable: +.TP +.B ROOT=/mnt removepkg package + +.SH AUTHORS +Patrick J. Volkerding <volkerdi@slackware.com>, +with enhancements by Christian Franke <c.franke@acm.org> +.SH "SEE ALSO" +.BR installpkg(8), +.BR makepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/setup.8-deprecated b/source/a/pkgtools/manpages/setup.8-deprecated new file mode 100644 index 00000000..53397422 --- /dev/null +++ b/source/a/pkgtools/manpages/setup.8-deprecated @@ -0,0 +1,120 @@ +.\" -*- 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 SETUP 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +setup \- Slackware system setup tool. +.SH SYNOPSIS +.B setup +.LP +.SH DESCRIPTION +.B setup +is the system installation and setup tool provided with the Slackware Linux +distribution. +.LP +.B setup +is usually used to install software packages from your hard drive, a CD, +NFS, or floppy disks. It is also a frontend for +.B pkgtool +and many configuration scripts that come with various packages, such as the +scripts which allow you to install LILO, configure your timezone, set your +keyboard fonts, make bootdisks, and many other tasks. +.SH OPTIONS +.TP +.B HELP +Read the +.B setup +help file. +.TP +.B KEYMAP +Change your keyboard map to one of many international and specialized keymaps +available. +.B NOTE: +This change will not become permanent unless you go through the +.B CONFIGURE option. +.TP +.B MAKE TAGS +This allows you to write out custom tagfiles. A +.B tagfile +is a list of package names followed by one of these tags: +.B ADD +(required), +.B SKP +(skip), +.B REC +(recommended) or, +.B OPT +(optional). These allow you to completely automate your software installation. +You can either put these files on the first disk of each disk series +(optionally using a custom 3 character extension), or in a custom location +altogether, such as on a floppy disk in ./a1, ./ap1, ./d1, ..., directories. +The format of a line in a +.B tagfile +is like this: +.LP +package: +.B TAG +.TP +.B SOURCE +Select your source media, such as hard disk, NFS, CD, or floppy. You should +select installation from a directory if your CD or NFS directory has already +been mounted, as it probably is if you're using +.B setup +on your hard drive. +.TP +.B TARGET +Select your target directory. For testing purposes, you may install the +packages to a directory other than '/'. Don't expect them to run from there, +though. +.TP +.B DISK SETS +Select the disk sets you want to install. You can also install custom disk +sets by tagging the +.B CUS +selection. The disk sets must be Slackware-like: they require the diskxxx? +index on each disk, such as diskxyz1 for the first disk of the XYZ series. +On the last disk there must be a file called +.B install.end +to signal the end of the disk series. +.TP +.B INSTALL +Once you've gone through +.B SOURCE +and +.B DISK SETS +( and possibly +.B TARGET +), then you select this choice to go on with the software installation. You'll +be asked what type of tagfiles you want to use and then +.B pkgtool +will be called to install the software. +.TP +.B CONFIGURE +This option runs through several scripts that configure various aspects of your +Linux system. These might include LILO installation, timezone configuration, +and other things. +.TP +.B PKGTOOL +This option calls the +.B pkgtool(8) +utility for you. +.TP +.B EXIT +Exit the +.B setup +program. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR installpkg(8), +.BR explodepkg(8), +.BR removepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/upgradepkg.8 b/source/a/pkgtools/manpages/upgradepkg.8 new file mode 100644 index 00000000..8ca7811b --- /dev/null +++ b/source/a/pkgtools/manpages/upgradepkg.8 @@ -0,0 +1,98 @@ +.\" -*- 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 UPGRADEPKG 8 "31 May 2002" "Slackware Version 8.1.0" +.SH NAME +upgradepkg \- upgrade Slackware packages. +.SH SYNOPSIS +.B upgradepkg +[ +.B --dry-run +] +[ +.B --install-new +] +[ +.B --reinstall +] +[ +.B --verbose +] +.BI newpackagename +.BI [ newpackagename2 ] +.LP +.B upgradepkg +[ +.B --dry-run +] +[ +.B --install-new +] +[ +.B --reinstall +] +[ +.B --verbose +] +.BI oldpackagename%newpackagename +.BI [ old2%new2 ] +.SH DESCRIPTION +.B upgradepkg +upgrades a Slackware package from an older version to a +newer one. It does this by +.B INSTALLING +the new package onto the system, and then +.B REMOVING +any files from the old package that aren't in the new package. +If the old and new packages have the same name, a single argument is all that +is required. If the packages have different names, supply the name of the +old package followed by a percent symbol (%), then the name of the new package. +Do not add any extra whitespace between pairs of old/new package names. + +If upgradepkg finds more than one installed package matching the old package's +name, it will remove them all. +.TP +To upgrade in a directory other than / (such as /mnt): +.TP +ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz) +.SH OPTIONS +.TP +.B \--dry-run +Output a report about which packages would be installed or upgraded +but don't actually perform the upgrades. +.TP +.B \--install-new +Normally upgradepkg only upgrades packages that are already installed on the system, and +will skip any packages that do not already have a version installed. +If +.B --install-new +is specified, the behavior is modified to install new packages in addition to upgrading +existing ones. +.TP +.B \--reinstall +Upgradepkg usually skips packages if the exact same package +(matching name, version, arch, and build number) is already installed on the system. +Use the --reinstall option if you want to upgrade all packages even if the same +version is already installed. +.TP +.B \--verbose +Show all the gory details of the upgrade. +.SH BUGS +Before upgrading a package, save any configuration files (such as in /etc) +that you wish to keep. Sometimes these will be preserved, but it depends on +the package structure. If you want to force new versions of the config files +to be installed, remove the old ones manually prior to running upgradepkg. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR installpkg(8), +.BR removepkg(8), +.BR explodepkg(8), +.BR pkgtool(8) diff --git a/source/a/pkgtools/obsolete-scripts/README b/source/a/pkgtools/obsolete-scripts/README new file mode 100644 index 00000000..3e0060de --- /dev/null +++ b/source/a/pkgtools/obsolete-scripts/README @@ -0,0 +1,5 @@ +This directory contains retired installation scripts. + +setup.90.modem-device is obsolete since udev will overwrite any +existing devices or links in /dev. + diff --git a/source/a/pkgtools/obsolete-scripts/setup.90.modem-device b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device new file mode 100644 index 00000000..a1c5993a --- /dev/null +++ b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device @@ -0,0 +1,44 @@ +#!/bin/sh +#BLURB="Select modem device" +TMP=/var/log/setup/tmp +T_PX="$1" +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi + +dialog --title "MODEM CONFIGURATION" --menu "This part of the configuration \ +process will create a /dev/modem link pointing to the callout device (ttyS0, \ +ttyS1, ttyS2, ttyS3) representing your default modem. You \ +can change this link \ +later if you move your modem to a different port. If your modem is a PCI card, \ +it will probably use /dev/ttyS4 or higher. \ +Please select the callout \ +device which you would like to use for your modem:" 22 68 9 \ +"no modem" "do not set a /dev/modem link" \ +"/dev/ttyS0" "(COM1: under DOS)" \ +"/dev/ttyS1" "(COM2: under DOS)" \ +"/dev/ttyS2" "(COM3: under DOS)" \ +"/dev/ttyS3" "(COM4: under DOS)" \ +"/dev/ttyS4" "PCI modem" \ +"/dev/ttyS5" "PCI modem" \ +"/dev/ttyS6" "PCI modem" \ +"/dev/ttyS7" "PCI modem" \ +"/dev/ttyS8" "PCI modem" \ +"/dev/ttyS9" "PCI modem" \ +"/dev/ttyS10" "PCI modem" \ +"/dev/ttyS11" "PCI modem" \ +"/dev/ttyS12" "PCI modem" \ +"/dev/ttyS13" "PCI modem" \ +"/dev/ttyS14" "PCI modem" \ +"/dev/ttyS15" "PCI modem" \ +2> $TMP/callout + +if [ $? = 0 ]; then + MODEM_DEVICE="`cat $TMP/callout`" + if [ ! "$MODEM_DEVICE" = "no modem" ]; then + MODEM_DEVICE=`basename $MODEM_DEVICE` + ( cd $T_PX/dev ; ln -sf $MODEM_DEVICE modem ) + fi +fi +rm -f $TMP/callout + diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild new file mode 100755 index 00000000..da70e19f --- /dev/null +++ b/source/a/pkgtools/pkgtools.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh +# 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` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-pkgtools + +# *** UPDATE THESE WITH EACH BUILD: +VERSION=13.0 +ARCH=${ARCH:-noarch} +BUILD=3 + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +rm -rf $PKG +mkdir -p $PKG + +# Install Slackware script manpages: +( cd $CWD/manpages + mkdir -p $PKG/usr/man/man8 + for page in explodepkg.8 installpkg.8 makepkg.8 upgradepkg.8 pkgtool.8 \ + removepkg.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz + done +) + +# Install Slackware scripts: +( cd $CWD/scripts + # Install the core Slackware package tools: + mkdir -p $PKG/sbin + for file in explodepkg installpkg makebootdisk makepkg pkgtool removepkg upgradepkg ; do + cp -a $CWD/scripts/$file $PKG/sbin + done + chown root:root $PKG/sbin/* + chmod 755 $PKG/sbin/* + # These scripts are used during the installation: + mkdir -p $PKG/var/log/setup/tmp + chmod 700 $PKG/var/log/setup/tmp + for file in setup.* ; do + cp -a $file $PKG/var/log/setup + done + chown root:root $PKG/var/log/setup/setup.* + chmod 755 $PKG/var/log/setup/setup.* +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/pkgtools-$VERSION-$ARCH-$BUILD.tgz + +echo +echo "HEY -- did you remember to update the version numbers in the setup scripts?" +echo + diff --git a/source/a/pkgtools/scripts/explodepkg b/source/a/pkgtools/scripts/explodepkg new file mode 100644 index 00000000..a113b085 --- /dev/null +++ b/source/a/pkgtools/scripts/explodepkg @@ -0,0 +1,97 @@ +#!/bin/sh +# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA +# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 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. + +TAR=tar-1.13 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "`LC_MESSAGES=C $TAR --version`" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 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. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +if [ $# = 0 ]; then + cat << EOF +Usage: explodepkg package_name [package_name2, ...] + +Explodes a Slackware compatible software package +(or any tar+{gzip,bzip2,lzma,xz archive) in the current directory. +Equivalent to (for each package listed): + + ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xzvf package_name ) + +Note: This should only be used for debugging or examining packages, not for +installing them. It doesn't execute installation scripts or update the package +indexes in /var/log/packages and /var/log/scripts. + +EOF +fi + +# Main loop: +for PKG in $* ; do + echo "Exploding package $PKG in current directory:" + # Determine extension: + packageext="$( echo $PKG | rev | cut -f 1 -d . | rev)" + # Determine compression utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'gz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'bz2' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'lzma' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + 'xz' ) + packagecompression=xz + ;; + esac + ( umask 000 ; cat $PKG | $packagecompression -dc | $TAR xvf - 2> /dev/null ) + if [ -r install/doinst.sh ]; then + echo + echo "An installation script was detected in ./install/doinst.sh, but" + echo "was not executed." + fi +done + diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg new file mode 100644 index 00000000..31bb0b71 --- /dev/null +++ b/source/a/pkgtools/scripts/installpkg @@ -0,0 +1,568 @@ +#!/bin/sh +# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA +# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 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. +# +# Sat Apr 25 21:18:53 UTC 2009 +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Sat Apr 4 22:58:06 CDT 2009 +# Support additional compression formats if the supporting utilities exist: +# .tbz - bzip2 +# .tlz - lzma +# .txz - xz (also LZMA) +# And of course, .tgz (gzip) is not going anywhere. :-) <volkerdi> +# Add command switches to determine the uncompressed package size even if +# that will slow things down, and to add the package's md5sum to the +# metadata stored in /var/log/packages/. +# +# Fri Dec 21 17:21:35 CST 2007 +# Added a patch from Johnny Morano to work around package removal issues +# caused by packages that do not comply with FHS combined with a grep +# regex error in installpkg. Any package with a single-letter top- +# level directory could not be removed. +# +# Shortened some of the top-line dialog output to avoid overflowing the +# textbox (needed as some of the packages, especially in X, have very +# long base package names now). <pjv> +# +# Sun Nov 26 12:38:25 CST 1995 +# Added patch from Glenn Moloney <glenn@physics.unimelb.edu.au> to allow +# packages to be installed to directories other than /. +# +# Wed Mar 18 15:15:51 CST 1998 +# Changed $TMP directory to /var/log/setup/tmp, and chmod'ed it 700 to close +# some security holes. + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# If installpkg encounters a problem, it will return a non-zero error code. +# If it finds more than one problem (i.e. with a list of packages) you'll only +# hear about the most recent one. :) +# 1 = tar returned error code +# 2 = corrupt compression envelope +# 3 = does not end in .tgz +# 4 = no such file +# 5 = external compression utility missing +# 99 = user abort from menu mode +EXITSTATUS=0 + +# Do not store md5sums by default: +MD5SUM=0 + +# So that we know what to expect... +umask 022 +TAR=tar-1.13 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 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. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +usage() { + cat << EOF +Usage: installpkg [options] <package_filename> + +Installpkg is used to install a .t{gz,bz,lz,xz} package like this: + installpkg slackware-package-1.0.0-i486-1.tgz (or .tbz, .tlz, .txz) + +options: --warn (warn if files will be overwritten, but do not install) + --root /mnt (install someplace else, like /mnt) + --infobox (use dialog to draw an info box) + --menu (confirm package installation with a menu, unless + the priority is [required] or ADD) + --ask (used with menu mode: always ask if a package should be + installed regardless of what the package's priority is) + --priority ADD|REC|OPT|SKP (provide a priority for the entire + package list to use instead of the priority in the + tagfile) + --tagfile /somedir/tagfile (specify a different file to use + for package priorities. The default is "tagfile" in + the package's directory) + --md5sum (record the package's md5sum in the metadata file) + +EOF +} + +# Eliminate whitespace function: +crunch() { + while read FOO ; do + echo $FOO + done +} + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +# Parse options: +MODE=install # standard text-mode +while [ 0 ]; do + if [ "$1" = "-warn" -o "$1" = "--warn" ]; then + MODE=warn + shift 1 + elif [ "$1" = "-md5sum" -o "$1" = "--md5sum" ]; then + MD5SUM=1 + shift 1 + elif [ "$1" = "-infobox" -o "$1" = "--infobox" ]; then + MODE=infobox + shift 1 + elif [ "$1" = "-menu" -o "$1" = "--menu" ]; then + MODE=menu + shift 1 + elif [ "$1" = "-ask" -o "$1" = "--ask" ]; then + ALWAYSASK="yes" + shift 1 + elif [ "$1" = "-tagfile" -o "$1" = "--tagfile" ]; then + if [ -r "$2" ]; then + USERTAGFILE="$2" + elif [ -r "$(pwd)/$2" ]; then + USERTAGFILE="$(pwd)/$2" + else + usage + exit + fi + shift 2 + elif [ "$1" = "-priority" -o "$1" = "--priority" ]; then + if [ "$2" = "" ]; then + usage + exit + fi + USERPRIORITY="$2" + shift 2 + elif [ "$1" = "-root" -o "$1" = "--root" ]; then + if [ "$2" = "" ]; then + usage + exit + fi + ROOT="$2" + shift 2 + else + break + fi +done + +# Set the prefix for the package database directories (packages, scripts). +ADM_DIR="$ROOT/var/log" +# If the directories don't exist, "initialize" the package database: +for PKGDBDIR in packages removed_packages removed_scripts scripts setup ; do + if [ ! -d $ADM_DIR/$PKGDBDIR ]; then + rm -rf $ADM_DIR/$PKGDBDIR # make sure it's not a symlink or something stupid + mkdir -p $ADM_DIR/$PKGDBDIR + chmod 755 $ADM_DIR/$PKGDBDIR + fi +done + +# Make sure there's a proper temp directory: +TMP=$ADM_DIR/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi + +# usage(), exit if called with no arguments: +if [ $# = 0 ]; then + usage; + exit +fi + +# If -warn mode was requested, produce the output and then exit: +if [ "$MODE" = "warn" ]; then + while [ -f "$1" ]; do + echo "#### Scanning the contents of $1..." + mkdir -p $TMP/scan$$ + # Determine extension: + packageext="$( echo $1 | rev | cut -f 1 -d . | rev)" + # Determine compressor utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + esac + ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $1 2> /dev/null + if [ -r $TMP/scan$$/install/doinst.sh ]; then + if cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' 1>/dev/null 2>/dev/null ; then + cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' > $TMP/scan$$/install/delete + echo "The following locations will be completely WIPED OUT to allow symbolic" + echo "links to be made. (We're talking 'rm -rf') These locations may be files," + echo "or entire directories. Be sure you've backed up anything at these" + echo "locations that you want to save before you install this package:" + cat $TMP/scan$$/install/delete | cut -f 3,7 -d ' ' | tr ' ' '/' + fi + if [ -d $TMP/scan$$ ]; then + ( cd $TMP/scan$$ ; rm -rf install ) 2> /dev/null + ( cd $TMP ; rmdir scan$$ ) 2> /dev/null + fi + fi + echo "The following files will be overwritten when installing this package." + echo "Be sure they aren't important before you install this package:" + ( $packagecompression -dc | $TAR tvvf - ) < $1 | grep -v 'drwx' + echo + shift 1 + done + exit +fi + +# Main loop: +for package in $* ; do + + # Simple package integrity check: + if [ ! -f $package ]; then + EXITSTATUS=4 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: file not found" + fi + continue; + fi + + # "shortname" isn't really THAT short... + # it's just the full name without ".t{gz,bz,lz,xz}" + shortname="$(pkgbase $package)" + packagedir="$(dirname $package)" + # This is the base package name, used for grepping tagfiles and descriptions: + packagebase="$(package_name $shortname)" + + # Reject package if it does not end in '.t{gz,bz,lz,xz}': + if [ "$shortname" = "$(basename $package)" ]; then + EXITSTATUS=3 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: file does not end in .tgz, .tbz, .tlz, or .txz" + fi + continue; + fi + + # Determine extension: + packageext="$(echo $package | rev | cut -f 1 -d . | rev)" + + # Determine compressor utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + esac + + # Test presence of external compression utility: + if ! $packagecompression --help 1> /dev/null 2> /dev/null ; then + EXITSTATUS=5 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: external compression utility $packagecompression missing" + fi + continue; + fi + + # Determine package's priority: + unset PRIORITY + if [ "$USERTAGFILE" = "" ]; then + TAGFILE="$packagedir/tagfile" + else + TAGFILE="$USERTAGFILE" + fi + if [ ! -r "$TAGFILE" ]; then + TAGFILE=/dev/null + fi + if grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then + PRIORITY="ADD" + elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then + PRIORITY="REC" + elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then + PRIORITY="OPT" + elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then + PRIORITY="SKP" + fi + if [ "$PRIORITY" = "ADD" ]; then + PMSG="[ADD]" + elif [ "$PRIORITY" = "REC" ]; then + PMSG="[REC]" + elif [ "$PRIORITY" = "OPT" ]; then + PMSG="[OPT]" + elif [ "$PRIORITY" = "SKP" ]; then + PMSG="[SKP]" + else + PMSG="" + fi + + # If a tagfile wants this package to be skipped, do that now before + # wasting any more CPU on it: + if [ "$PRIORITY" = "SKP" -a ! "$ALWAYSASK" = "yes" ]; then + continue # next package + fi + + # Figure out some package information, like the compressed and uncompressed + # sizes, and where to find the package description: + COMPRESSED="$(du -s $package | cut -f 1)K" + DESCRIPTION="" + # First check for .txt file next to the package, since this is faster: + if grep "^$packagebase:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$packagedir/$shortname.txt" + elif grep "^$shortname:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$packagedir/$shortname.txt" + fi + + # Test tarball integrity and get uncompressed package size: + if [ "$MODE" = "install" ]; then + echo "Verifying package $(basename $package)." + fi + cat $package | $packagecompression -dc | dd 2> $TMP/tmpsize$$ | $TAR tf - 1> $TMP/tmplist$$ 2> /dev/null + TARERROR=$? + if [ ! "$TARERROR" = "0" ]; then + EXITSTATUS=1 # tar file corrupt + if [ "$MODE" = "install" ]; then + echo "Unable to install $package: tar archive is corrupt (tar returned error code $TARERROR)" + fi + rm -f $TMP/tmplist$$ $TMP/tmpsize$$ + continue + fi + UNCOMPRESSED="$(expr $(cat $TMP/tmpsize$$ | head -n 1 | cut -f 1 -d +) / 2)K" + rm -f $TMP/tmpsize$$ + + # If we still don't have a package description, look inside the package. + # This requires a costly untar. + if [ "$DESCRIPTION" = "" ]; then + mkdir -p $TMP/scan$$ + ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $package 2> /dev/null + if grep "^$packagebase:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$TMP/scan$$/install/slack-desc" + elif grep "^$shortname:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$TMP/scan$$/install/slack-desc" + fi + fi + + if [ "$DESCRIPTION" = "" ]; then + #echo "WARNING NO SLACK-DESC" + DESCRIPTION="/dev/null" + fi + + # Gather package infomation into a temporary file: + cat $DESCRIPTION | grep "^$packagebase:" | cut -f 2- -d : | cut -b2- 1> $TMP/tmpmsg$$ 2> /dev/null + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" | cut -f 2- -d : | cut -b2- 1>> $TMP/tmpmsg$$ 2> /dev/null + fi + # Adjust the length here. This allows a slack-desc to be any size up to 13 lines instead of fixed at 11. + LENGTH=$(cat $TMP/tmpmsg$$ | wc -l) + while [ $LENGTH -lt 12 ]; do + echo >> $TMP/tmpmsg$$ + LENGTH=$(expr $LENGTH + 1) + done + echo "Size: Compressed: ${COMPRESSED}, uncompressed: ${UNCOMPRESSED}." >> $TMP/tmpmsg$$ + # For recent versions of dialog it is necessary to add \n to the end of each line + # or it will remove repeating spaces and mess up our careful formatting: + cat << EOF > $TMP/controlns$$ +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +EOF + paste -d "" $TMP/tmpmsg$$ $TMP/controlns$$ > $TMP/pasted$$ + rm -f $TMP/controlns$$ + mv $TMP/pasted$$ $TMP/tmpmsg$$ + # Emit information to the console: + if [ "$MODE" = "install" ]; then + if [ "$PMSG" = "" ]; then + echo "Installing package $(basename $package):" + else + echo "Installing package $(basename $package) $PMSG:" + fi + echo "PACKAGE DESCRIPTION:" + cat $DESCRIPTION | grep "^$packagebase:" | uniq | sed "s/^$packagebase:/#/g" + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" | uniq | sed "s/^$shortname:/#/g" + fi + elif [ "$MODE" = "infobox" ]; then # install infobox package + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + elif [ "$MODE" = "menu" -a "$PRIORITY" = "ADD" -a ! "$ALWAYSASK" = "yes" ]; then # ADD overrides menu mode unless -ask was used + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + elif [ "$MODE" = "menu" -a "$USERPRIORITY" = "ADD" ]; then # install no matter what $PRIORITY + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + else # we must need a full menu: + dialog --title "Package Name: $shortname $PMSG" --menu "$(cat $TMP/tmpmsg$$)" 0 0 3 \ + "Yes" "Install package $shortname" \ + "No" "Do not install package $shortname" \ + "Quit" "Abort software installation completely" 2> $TMP/reply$$ + if [ ! $? = 0 ]; then + echo "No" > $TMP/reply$$ + fi + REPLY="$(cat $TMP/reply$$)" + rm -f $TMP/reply$$ $TMP/tmpmsg$$ + if [ "$REPLY" = "Quit" ]; then + exit 99 # EXIT STATUS 99 = ABORT! + elif [ "$REPLY" = "No" ]; then + continue # skip the package + fi + fi + + # Make sure there are no symbolic links sitting in the way of + # incoming package files: + cat $TMP/tmplist$$ | grep -v "/$" | while read file ; do + if [ -L "$ROOT/$file" ]; then + rm -f "$ROOT/$file" + fi + done + rm -f $TMP/tmplist$$ + + # Write the package file database entry and install the package: + echo "PACKAGE NAME: $shortname" > $ADM_DIR/packages/$shortname + echo "COMPRESSED PACKAGE SIZE: $COMPRESSED" >> $ADM_DIR/packages/$shortname + echo "UNCOMPRESSED PACKAGE SIZE: $UNCOMPRESSED" >> $ADM_DIR/packages/$shortname + echo "PACKAGE LOCATION: $package" >> $ADM_DIR/packages/$shortname + # Record the md5sum if that's a selected option: + if [ $MD5SUM = 1 ]; then + echo "PACKAGE MD5SUM: $(md5sum $package | cut -f 1 -d ' ')" >> $ADM_DIR/packages/$shortname + fi + echo "PACKAGE DESCRIPTION:" >> $ADM_DIR/packages/$shortname + cat $DESCRIPTION | grep "^$packagebase:" >> $ADM_DIR/packages/$shortname 2> /dev/null + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" >> $ADM_DIR/packages/$shortname 2> /dev/null + fi + echo "FILE LIST:" >> $ADM_DIR/packages/$shortname + ( cd $ROOT/ ; $packagecompression -dc | $TAR -xlUpvf - ) < $package >> $TMP/$shortname 2> /dev/null + if [ "$(cat $TMP/$shortname | grep '^\./' | wc -l | tr -d ' ')" = "1" ]; then + # Good. We have a package that meets the Slackware spec. + cat $TMP/$shortname >> $ADM_DIR/packages/$shortname + else + # Some dumb bunny built a package with something other than makepkg. Bad! + # Oh well. Bound to happen. Par for the course. Fix it and move on... + echo "WARNING: Package has not been created with 'makepkg'" + echo './' >> $ADM_DIR/packages/$shortname + cat $TMP/$shortname >> $ADM_DIR/packages/$shortname + fi + rm -f $TMP/$shortname + + # It's a good idea to make sure those newly installed libraries + # are properly activated for use: + if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig + fi + + if [ -f $ROOT/install/doinst.sh ]; then + if [ "$MODE" = "install" ]; then + echo "Executing install script for $(basename $package)." + fi + ( cd $ROOT/ ; sh install/doinst.sh -install; ) + fi + # Clean up the mess... + if [ -d $ROOT/install ]; then + if [ -r $ROOT/install/doinst.sh ]; then + cp $ROOT/install/doinst.sh $ADM_DIR/scripts/$shortname + chmod 755 $ADM_DIR/scripts/$shortname + fi + # /install/doinst.sh and /install/slack-* are reserved locations for the package system. + ( cd $ROOT/install ; rm -f doinst.sh slack-* 1> /dev/null 2>&1 ) + rmdir $ROOT/install 1> /dev/null 2>&1 + fi + # If we used a scan directory, get rid of it: + if [ -d "$TMP/scan$$" ]; then + rm -rf "$TMP/scan$$" + fi + rm -f $TMP/tmpmsg$$ $TMP/reply$$ + if [ "$MODE" = "install" ]; then + echo "Package $(basename $package) installed." + echo + fi +done + +exit $EXITSTATUS diff --git a/source/a/pkgtools/scripts/makebootdisk b/source/a/pkgtools/scripts/makebootdisk new file mode 100644 index 00000000..86b843a8 --- /dev/null +++ b/source/a/pkgtools/scripts/makebootdisk @@ -0,0 +1,444 @@ +#!/bin/sh +# Copyright 1995, 1998, 2002, 2005 Patrick Volkerding, Moorhead, 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. +# + +if [ ! "$UID" = "0" ]; then + echo "You need to be root to run this script." + exit 1 +fi + +# Was a kernel specified on the command line? +if [ -r "$1" ]; then + KERNEL=$1 + KMSG="Using kernel $KERNEL" +else + KMSG="No kernel selected yet" +fi + +# Make sure there's a proper temp directory: +TMP=/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi + +ROOT_DEVICE="`mount | grep ' on / ' | cut -f 1 -d ' '`" + +if mount | grep ' on / ' | grep umsdos 1> /dev/null 2> /dev/null ; then + MOUNT="read-write" +else + MOUNT="read-only" +fi + +make_root_device() { +# Make a device: +makedev() { + if [ ! -b $1 ]; then + mknod $1 b $2 $3 + chown root.disk $1 + chmod 640 $1 + fi +} + +# Make ide device +# make ide major minor hd1 hd2 (2 base devs for major) +make_ide() { + # Handle base devices: + if [ "$2" = "0" ]; then + makedev $TMP/lilo/dev/$3 $1 $2 + return 0 + elif [ "$2" = "64" ]; then + makedev $TMP/lilo/dev/$4 $1 $2 + return 0 + fi + # Must be a partition: + if [ "`expr $2 / 64`" = "0" ]; then + DEV=$3 + NUM=$2 + else + DEV=$4 + NUM=`expr $2 - 64` + fi + makedev $TMP/lilo/dev/$DEV$NUM $1 $2 +} + +# Make SCSI device +make_scsi() { + # find drive # 0 - 15 + DRV=`expr $1 / 16` + NUM=`expr $1 % 16` + if [ "$NUM" = "0" ]; then + NUM="" + fi + if [ "$DRV" = "0" ]; then + makedev $TMP/lilo/dev/sda$NUM 8 $1 + elif [ "$DRV" = "1" ]; then + makedev $TMP/lilo/dev/sdb$NUM 8 $1 + elif [ "$DRV" = "2" ]; then + makedev $TMP/lilo/dev/sdc$NUM 8 $1 + elif [ "$DRV" = "3" ]; then + makedev $TMP/lilo/dev/sdd$NUM 8 $1 + elif [ "$DRV" = "4" ]; then + makedev $TMP/lilo/dev/sde$NUM 8 $1 + elif [ "$DRV" = "5" ]; then + makedev $TMP/lilo/dev/sdf$NUM 8 $1 + elif [ "$DRV" = "6" ]; then + makedev $TMP/lilo/dev/sdg$NUM 8 $1 + elif [ "$DRV" = "7" ]; then + makedev $TMP/lilo/dev/sdh$NUM 8 $1 + elif [ "$DRV" = "8" ]; then + makedev $TMP/lilo/dev/sdi$NUM 8 $1 + elif [ "$DRV" = "9" ]; then + makedev $TMP/lilo/dev/sdj$NUM 8 $1 + elif [ "$DRV" = "10" ]; then + makedev $TMP/lilo/dev/sdk$NUM 8 $1 + elif [ "$DRV" = "11" ]; then + makedev $TMP/lilo/dev/sdl$NUM 8 $1 + elif [ "$DRV" = "12" ]; then + makedev $TMP/lilo/dev/sdm$NUM 8 $1 + elif [ "$DRV" = "13" ]; then + makedev $TMP/lilo/dev/sdn$NUM 8 $1 + elif [ "$DRV" = "14" ]; then + makedev $TMP/lilo/dev/sdo$NUM 8 $1 + elif [ "$DRV" = "15" ]; then + makedev $TMP/lilo/dev/sdp$NUM 8 $1 + fi +} + +if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new + cat /proc/partitions | grep / | while read line ; do + SMASHED_LINE=$line + MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` + MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` + if [ "$MAJOR" = "3" ]; then + make_ide $MAJOR $MINOR hda hdb + elif [ "$MAJOR" = "8" ]; then + make_scsi $MINOR + elif [ "$MAJOR" = "22" ]; then + make_ide $MAJOR $MINOR hdc hdd + elif [ "$MAJOR" = "33" ]; then + make_ide $MAJOR $MINOR hde hdf + elif [ "$MAJOR" = "34" ]; then + make_ide $MAJOR $MINOR hdg hdh + elif [ "$MAJOR" = "56" ]; then + make_ide $MAJOR $MINOR hdi hdj + fi + done +else # old format + cat /proc/partitions | grep d | while read line ; do + SMASHED_LINE=$line + MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` + MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` + DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '` + makedev $TMP/lilo/dev/$DEVNAME $MAJOR $MINOR + done +fi +} + +choose_kernel() { +while [ 0 ]; do # input loop +cat << EOF > $TMP/tmpmsg + +Some possible paths to kernels are these: + +/boot/vmlinuz +/usr/src/linux/arch/i386/boot/bzImage +/usr/src/linux/arch/i386/boot/zImage +/vmlinuz + +Put the path to the kernel you want to use in the box below. + +EOF + + dialog --title "CHOOSE KERNEL" --inputbox "`cat $TMP/tmpmsg`" \ + 16 72 "/boot/vmlinuz" 2> $TMP/return + if [ ! $? = 0 ]; then + exit + fi + + KERNEL="`cat $TMP/return`" + + if [ ! -r "$KERNEL" ]; then + dialog --title "NOT FOUND!" --msgbox "$KERNEL" 5 60 + continue + fi + KMSG="Using kernel $KERNEL" +break +done +} + +format_disk() { + # If anyone still uses 1.2 MB, you'll have to uncomment this. + # It's no longer a default option. + #FDEV=/dev/fd0h1200 + #FDEV=/dev/fd0u1400 + FDEV=/dev/fd0u1680 + if [ "$FDEV" = "/dev/fd0u1680" ]; then + dialog --title "Formatting /dev/fd0u1680" --infobox \ + "Formatting /dev/fd0, 1.68 megabytes." 3 42 + elif [ "$FDEV" = "/dev/fd0u1400" ]; then + dialog --title "Formatting /dev/fd0u1440" --infobox \ + "Formatting /dev/fd0, 1.44 megabytes." 3 42 + elif [ "$FDEV" = "/dev/fd0h1200" ]; then + dialog --title "Formatting /dev/fd0h1200" --infobox \ + "Formatting /dev/fd0, 1.2 megabytes." 3 42 + fi + fdformat $FDEV 1> /dev/null 2> /dev/null + if [ ! $? = 0 ]; then + dialog --title "ERROR: FLOPPY FORMAT FAILED" --msgbox "The attempt to format the floppy \ +disk in /dev/fd0 has failed, probably due to bad media. Please try again with a \ +different disk. If that doesn't work, perhaps the drive needs cleaning." 0 0 + return 1 + fi +} + +DEFAULT_ITEM="syslinux" + +while [ 0 ]; do # menu loop + dialog --title "MAKE BOOT FLOPPY FROM KERNEL" \ +--default-item $DEFAULT_ITEM \ +--backtitle "$KMSG" --menu "This menu allows you to make a SYSLINUX bootdisk \ +from a compiled kernel. The SYSLINUX bootloader has the advantage of \ +using a FAT filesystem making it easy to replace the kernel later. \ +Which option would you like?" 12 67 2 \ +"syslinux" "Make a SYSLINUX bootdisk" \ +"exit" "Exit this program" 2> $TMP/return + if [ ! $? = 0 ]; then + break; + fi + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "simple" ]; then # make simple bootdisk + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + kernel_size=`du -Lk $KERNEL | cut -f1` + if [ "$kernel_size" -gt "1023" ]; then +cat << EOF > $TMP/tmpmsg + +The kernel $KERNEL is $kernel_size K (which is +more than 1023 Kb in size), so it probably won't +boot standalone on the floppy. Use the 'syslinux' +method instead. + +EOF + dialog --title "KERNEL TOO BIG!" --msgbox "`cat $TMP/tmpmsg`" 10 60 + continue + fi + dialog --title "BOOT DISK CREATION" --backtitle "$KMSG" --yesno \ +"\n\ +Now put a formatted floppy in your boot drive. \n\ +This will be made into your Linux boot disk. Use this to\n\ +boot Linux until LILO has been configured to boot from\n\ +the hard drive.\n\n\ +Any data on the target disk will be destroyed.\n\n\ +YES creates the disk, NO aborts.\n" 14 62 + if [ $? = 0 ]; then + format_disk + dialog --title "CREATING DISK" --infobox "Creating boot disk from $KERNEL..." 5 72 + dd if=$KERNEL of=/dev/fd0 2> /dev/null + rdev /dev/fd0 $ROOT_DEVICE + rdev -v /dev/fd0 -1 + if [ "$MOUNT" = "read-only" ]; then + rdev -R /dev/fd0 1 + else + rdev -R /dev/fd0 0 + fi + fi + elif [ "$REPLY" = "syslinux" ]; then # make syslinux bootdisk + DEFAULT_ITEM="exit" + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + dialog --title "CREATING SYSLINUX BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ +floppy in your boot drive. This will be made into a SYSLINUX \ +bootdisk that you can use to start your Linux system. Any data on the \ +target disk will be destroyed. YES creates the disk, NO aborts." 8 62 + if [ $? = 0 ]; then # make the disk + format_disk + if [ ! $? = 0 ]; then + continue + fi + dialog --title "CREATING BOOT FLOPPY" --infobox "Creating SYSLINUX bootdisk for \ +$ROOT_DEVICE in /dev/fd0." 3 64 + mkdosfs -F 12 /dev/fd0u1680 1680 1> /dev/null 2> /dev/null + if [ ! -d $TMP/bootdisk ]; then + mkdir $TMP/bootdisk + fi + mount -t vfat /dev/fd0 $TMP/bootdisk 1> /dev/null 2> /dev/null + cp $KERNEL $TMP/bootdisk/vmlinuz + ## This avoids a syslinux-1.72 bug, and doesn't seem to hurt anything: + #dd if=/dev/zero bs=1k count=1 >> $TMP/bootdisk/vmlinuz 2> /dev/null + if [ ! "$?" = "0" ]; then + dialog --title "ERROR COPYING KERNEL TO FLOPPY" \ + --msgbox "Sorry, but there was an error copying the kernel to the \ +floppy disk. Possibly the kernel is too large to fit the disk. \ +This program will now exit." 0 0 + umount /dev/fd0 + rm -rf $TMP/bootdisk + exit 1 + fi + cat << EOF > $TMP/bootdisk/message.txt + +Welcome to the 09Slackware07 Linux custom bootdisk! + +By default, this disk boots a root Linux partition on $ROOT_DEVICE when you +hit ENTER. If you'd like to boot some other partition, use a command like +this on the prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you wish to mount +the partition read-write, use "rw" instead. To set the video console mode, +use the vga= parameter (press F1 to see a table). You may also add any other +kernel parameters you might need depending on your hardware, and which +drivers are included in your kernel. + +EOF + cat << EOF > $TMP/bootdisk/syslinux.cfg +default vmlinuz ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro +prompt 1 +timeout 6000 +display message.txt +F1 f1.txt +F2 message.txt +#F3 f3.txt +#F4 f4.txt +#F5 f5.txt +#F6 f6.txt +#F7 f7.txt +label mount + kernel vmlinuz + append ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro +label ramdisk + kernel vmlinuz + append vmlinuz ramdisk_size=7000 root=/dev/fd0u1440 vga=normal rw +EOF + cat << EOF > $TMP/bootdisk/f1.txt + STANDARD MODES: + To make the kernel prompt for standard video modes use: vga=ask + + FRAMEBUFFER MODES: + To get the kernel to start in VESA framebuffer mode, you need to pass it + a vga= init string on the "boot:" prompt. Here's a table: + + Colors 640x480 800x600 1024x768 1280x1024 1600x1200 + --------+--------------------------------------------- + 256 | 769 771 773 775 796 + 32,768 | 784 787 790 793 797 + 65,536 | 785 788 791 794 798 + 16.8M | 786 789 792 795 799 + + ...such as this for 1024x768x64k: + vga=791 + + F2 returns to the previous page. + +EOF + umount /dev/fd0 + syslinux-nomtools -s /dev/fd0 + rm -r $TMP/bootdisk + fi + elif [ "$REPLY" = "lilo" ]; then # make lilo bootdisk + DEFAULT_ITEM="exit" + if [ ! -x "`type -path lilo`" ]; then +cat << EOF > $TMP/tmpmsg + +You don't have 'lilo' installed on the system. +I guess you didn't install the lilo package. + +EOF + dialog --title "LILO NOT FOUND" --msgbox "`cat $TMP/tmpmsg`" 8 60 + continue + fi + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + dialog --title "CREATING LILO BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ +floppy in your boot drive. This will be made into a LILO \ +bootdisk that you can use to start your Linux system. Any data on the \ +target disk will be destroyed. YES creates the disk, NO aborts." 8 62 + if [ $? = 0 ]; then # make the disk + format_disk + DEV=/dev/fd0u1680 + mknod_fd="-m 0640 $TMP/lilo$DEV b 2 44" + dialog --infobox "Creating LILO bootdisk from $KERNEL for $ROOT_DEVICE..." 4 60 + mke2fs -q -m 0 -i 4096 $DEV 1> /dev/null 2> /dev/null || exit 1 + if [ ! -d $TMP/lilo ]; then + mkdir -p $TMP/lilo + fi + mount -t ext2 $DEV $TMP/lilo 1> /dev/null || exit 1 + rmdir $TMP/lilo/lost+found + cp $KERNEL $TMP/lilo/vmlinuz || exit 1 + mkdir $TMP/lilo/dev + make_root_device + mknod -m 0640 $TMP/lilo/dev/fd0 b 2 0 + mknod -m 0640 $TMP/lilo/dev/fd1 b 2 1 + mknod $mknod_fd + mknod -m 0666 $TMP/lilo/dev/null c 1 3 + mkdir $TMP/lilo/etc + cat << EOF > $TMP/lilo/etc/lilo.conf +boot = $DEV +message=/boot/message +backup=/dev/null +prompt +image = /vmlinuz + label = mount + ramdisk = 0 + root = $ROOT_DEVICE + vga = normal + $MOUNT +EOF + mkdir $TMP/lilo/boot + cp -a /boot/chain.b $TMP/lilo/boot + if [ -f /boot/boot-text.b ]; then + cp -a /boot/boot-text.b $TMP/lilo/boot/boot.b + else + cp -a /boot/boot.b $TMP/lilo/boot + fi + cat << EOF > $TMP/lilo/boot/message + +Welcome to the Slackware Linux custom LILO bootdisk! + +By default, this disk boots a root Linux partition on $ROOT_DEVICE when +you hit ENTER. If you'd like to boot some other partition, use a command +like this on the LILO prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you which to mount +the partition read-write, use "rw" instead. You may also add any other kernel +parameters you might need depending on your hardware, and which drivers are +included in your kernel. + +EOF + lilo -r $TMP/lilo > /dev/null + umount $TMP/lilo + rm -rf $TMP/lilo + fi + elif [ "$REPLY" = "exit" ]; then + break; + fi +done diff --git a/source/a/pkgtools/scripts/makepkg b/source/a/pkgtools/scripts/makepkg new file mode 100644 index 00000000..e6805476 --- /dev/null +++ b/source/a/pkgtools/scripts/makepkg @@ -0,0 +1,347 @@ +#!/bin/sh +# Copyright 1994, 1998, 2008 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2003 Slackware Linux, Inc. Concord, CA 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. +# +# Sun Apr 5 21:23:26 CDT 2009 +# Support .tgz, .tbz, .tlz, and .txz packages. <volkerdi> +# +# Wed Mar 18 15:32:33 CST 1998 +# Patched to avoid possible symlink attacks in /tmp. + +CWD=$(pwd) + +TAR=tar-1.13 +umask 022 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 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. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +make_install_script() { + COUNT=1 + LINE="$(sed -n "$COUNT p" $1)" + while [ ! "$LINE" = "" ]; do + LINKGOESIN="$(echo "$LINE" | cut -f 1 -d " ")" + LINKGOESIN="$(dirname $LINKGOESIN)" + LINKNAMEIS="$(echo "$LINE" | cut -f 1 -d ' ')" + LINKNAMEIS="$(basename "$LINKNAMEIS")" + LINKPOINTSTO="$(echo "$LINE" | cut -f 3 -d ' ')" + echo "( cd $LINKGOESIN ; rm -rf $LINKNAMEIS )" + echo "( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS )" + COUNT=$(expr $COUNT + 1) + LINE="$(sed -n "$COUNT p" $1)" + done +} + +usage() { + cat << EOF + +Usage: makepkg package_name.tgz + (or: package_name.tbz, package_name.tlz, package_name.txz) + +Makes a Slackware compatible package containing the contents of the current +and all subdirectories. If symbolic links exist, they will be removed and +an installation script will be made to recreate them later. This script will +be called "install/doinst.sh". You may add any of your own ash-compatible +shell scripts to this file and rebuild the package if you wish. + +options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended) + -p, --prepend (prepend rather than append symlinks to an existing + doinst.sh. Useful to link libraries needed by + programs in the doinst.sh script) + -c, --chown y|n (resets all permissions to root:root 755 + - not generally recommended) + +If these options are not set, makepkg will prompt as appropriate. +EOF +} + +TMP=/tmp # This can be a hole, but I'm going to be careful about file + # creation in there, so don't panic. :^) + +# Parse options +while [ 0 ]; do + if [ "$1" = "--linkadd" -o "$1" = "-l" ]; then + if [ "$2" = "y" ]; then + LINKADD=y + elif [ "$2" = "n" ]; then + LINKADD=n + else + usage + exit 2 + fi + shift 2 + elif [ "$1" = "--chown" -o "$1" = "-c" ]; then + if [ "$2" = "y" ]; then + CHOWN=y + elif [ "$2" = "n" ]; then + CHOWN=n + else + usage + exit 2 + fi + shift 2 + elif [ "$1" = "-p" -o "$1" = "--prepend" ]; then + PREPEND=y + shift 1 + elif [ "$1" = "-h" -o "$1" = "-H" -o "$1" = "--help" -o $# = 0 ]; then + usage + exit 0 + else + break + fi +done + +PACKAGE_NAME="$1" +TARGET_NAME="$(dirname $PACKAGE_NAME)" +PACKAGE_NAME="$(basename $PACKAGE_NAME)" + +# Identify package extension: +if [ ! "$(basename $PACKAGE_NAME .tgz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tgz" +elif [ ! "$(basename $PACKAGE_NAME .tar.gz)" = "$PACKAGE_NAME" ]; then + # .tar.compression is also supported, although the resulting "packages" will + # not be installable by installpkg without the correct 3 letter extension + # instead. + EXTENSION="tar.gz" +elif [ ! "$(basename $PACKAGE_NAME .tbz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tbz" +elif [ ! "$(basename $PACKAGE_NAME .tar.bz2)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.bz2" +elif [ ! "$(basename $PACKAGE_NAME .tlz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tlz" +elif [ ! "$(basename $PACKAGE_NAME .tar.lzma)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.lzma" +elif [ ! "$(basename $PACKAGE_NAME .txz)" = "$PACKAGE_NAME" ]; then + EXTENSION="txz" +elif [ ! "$(basename $PACKAGE_NAME .tar.xz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.xz" +else + EXTENSION="$(echo $PACKAGE_NAME | rev | cut -f 1 -d . | rev)" + echo "ERROR: Package extension .$EXTENSION is not supported." + exit 1 +fi + +TAR_NAME="$(basename $PACKAGE_NAME .$EXTENSION)" + +# Sanity check -- we can't make the package in the current directory: +if [ "$CWD" = "$TARGET_NAME" -o "." = "$TARGET_NAME" ]; then + echo "ERROR: Can't make output package in current directory." + exit 2 +fi + +# Make sure external compression utility is available: +case $EXTENSION in +'tgz' | 'tar.gz' ) + if ! which gzip 1> /dev/null 2> /dev/null ; then + echo "ERROR: gzip compression utility not found in \$PATH." + exit 3 + fi + ;; +'tbz' | 'tar.bz2' ) + if ! which bzip2 1> /dev/null 2> /dev/null ; then + echo "ERROR: bzip2 compression utility not found in \$PATH." + exit 3 + fi + ;; +'tlz' | 'tar.lzma' ) + if ! which lzma 1> /dev/null 2> /dev/null ; then + echo "ERROR: lzma compression utility not found in \$PATH." + exit 3 + fi + ;; +'txz' | 'tar.xz' ) + if ! which xz 1> /dev/null 2> /dev/null ; then + echo "ERROR: xz compression utility not found in \$PATH." + exit 3 + fi + ;; +esac + +echo +echo "Slackware package maker, version 3.14159." +echo +echo "Searching for symbolic links:" +# Get rid of possible pre-existing trouble: +INST=$(mktemp $TMP/makepkg.XXXXXX) +# This requires the ls from coreutils-5.0 (or newer): +find . -type l -exec ls -l --time-style=long-iso {} \; | while read foo ; do echo $foo ; done | cut -f 8- -d ' ' | cut -b3- | tee $INST +if [ ! "$(cat $INST)" = "" ]; then + echo + echo "Making symbolic link creation script:" + make_install_script $INST | tee doinst.sh +fi +echo +if [ ! "$(cat $INST)" = "" ]; then + if [ -r install/doinst.sh ]; then + echo "Unless your existing installation script already contains the code" + echo "to create these links, you should append these lines to your existing" + echo "install script. Now's your chance. :^)" + echo + echo "Would you like to add this stuff to the existing install script and" + echo -n "remove the symbolic links ([y]es, [n]o)? " + else + echo "It is recommended that you make these lines your new installation script." + echo + echo "Would you like to make this stuff the install script for this package" + echo -n "and remove the symbolic links ([y]es, [n]o)? " + fi + if [ ! "$LINKADD" ]; then + read LINKADD; + echo + else + echo $LINKADD + echo + fi + if [ "$LINKADD" = "y" ]; then + if [ -r install/doinst.sh ]; then + UPDATE="t" + if [ "$PREPEND" = "y" ]; then + touch install/doinst.sh + mv install/doinst.sh install/doinst.sh.shipped + cat doinst.sh > install/doinst.sh + echo "" >> install/doinst.sh + cat install/doinst.sh.shipped >> install/doinst.sh + rm -f install/doinst.sh.shipped + else + cat doinst.sh >> install/doinst.sh + fi + else + mkdir -p install + cat doinst.sh > install/doinst.sh + fi + echo + echo "Removing symbolic links:" + find . -type l -exec rm -v {} \; + echo + if [ "$UPDATE" = "t" ]; then + if [ "$PREPEND" = "y" ]; then + echo "Updating your ./install/doinst.sh (prepending symlinks)..." + else + echo "Updating your ./install/doinst.sh..." + fi + else + echo "Creating your new ./install/doinst.sh..." + fi + fi +else + echo "No symbolic links were found, so we won't make an installation script." + echo "You can make your own later in ./install/doinst.sh and rebuild the" + echo "package if you like." +fi +rm -f doinst.sh $INST +echo +echo "This next step is optional - you can set the directories in your package" +echo "to some sane permissions. If any of the directories in your package have" +echo "special permissions, then DO NOT reset them here!" +echo +echo "Would you like to reset all directory permissions to 755 (drwxr-xr-x) and" +echo -n "directory ownerships to root.root ([y]es, [n]o)? " +if [ ! "$CHOWN" ]; then + read CHOWN; + echo +else + echo $CHOWN + echo +fi +if [ "$CHOWN" = "y" ]; then + find . -type d -exec chmod -v 755 {} \; + find . -type d -exec chown -v root.root {} \; +fi + +echo "Creating Slackware package: ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}" +echo +rm -f ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} +case $EXTENSION in +'tgz' | 'tar.gz' ) + $TAR cvf - . | gzip -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $? = 0 ]; then + echo "ERROR: gzip returned error code $? -- makepkg failed." + fi + ;; +'tbz' | 'tar.bz2' ) + $TAR cvf - . | bzip2 -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: bzip2 returned error code $ERRCODE -- makepkg failed." + fi + ;; +'tlz' | 'tar.lzma' ) + $TAR cvf - . | lzma -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: lzma returned error code $ERRCODE -- makepkg failed." + fi + ;; +'txz' | 'tar.xz' ) + $TAR cvf - . | xz -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: xz returned error code $ERRCODE -- makepkg failed." + fi + ;; +esac + +# Warn of zero-length files: +find . -type f -size 0c | while read file ; do + echo "WARNING: zero length file $(echo $file | cut -b3-)" +done + +# Warn of corrupt or empty gzip files: +find . -type f -name '*.gz' | while read file ; do + if ! gzip -t $file 1> /dev/null 2> /dev/null ; then + echo "WARNING: gzip test failed on $(echo $file | cut -b3-)" + else + if [ "$(gzip -l $file | tail -n 1 | tr -s ' ' | cut -f 3 -d ' ')" -eq 0 ]; then + echo "WARNING: $(echo $file | cut -b3-) is an empty gzipped file" + fi + fi +done + +# Some more handy warnings: +if [ -d usr/share/man ]; then + echo "WARNING: /usr/share/man (with possibly not gzipped man pages) detected" +fi + +if [ -d usr/share/info ]; then + echo "WARNING: /usr/share/info (with possibly not gzipped info pages) detected" +fi + +if find . | grep site_perl 1> /dev/null ; then + echo "WARNING: site_perl directory detected (this is fine for a local package build)" +fi + +echo +echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created." +echo diff --git a/source/a/pkgtools/scripts/pkgtool b/source/a/pkgtools/scripts/pkgtool new file mode 100644 index 00000000..6191e36e --- /dev/null +++ b/source/a/pkgtools/scripts/pkgtool @@ -0,0 +1,754 @@ +#!/bin/sh +# +# Copyright 1993, 1994, 1995, 1996, 1997, +# 1998, 1999 Patrick Volkerding, Moorhead, MN USA +# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA +# All rights reserved. +# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# +# 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. +# + +# Sat Apr 25 21:18:53 UTC 2009 +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Wed Oct 31 16:28:46 CDT 2007 +# * Thanks to Gabriele Inghirami for a patch allowing this script to work +# with much larger numbers of installed packages. +# Wed, 27 Apr 1994 00:06:50 -0700 (PDT) +# * Optimization by David Hinds. +# Sun Oct 24 23:11:40 BST 2004 +# * Further optimisations by Jim Hawkins <jawkins@armedslack.org> +# - dramatically improved the speed of the "View" option +# Thu Nov 04 12:19:56 BST 2004 +# * More optimisations by Jim Hawkins +# - improved "Remove" speed in a similar manner to "View" +# Wed Jan 12 16:53:48 GMT 2005 +# * Fixed quoting bug thanks to Lasse Collin +# Wed Jan 26 23:06:22 GMT 2005 +# * Fix for non-standard package descriptions by Jim Hawkins + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +SOURCE_DIR=/var/log/mount +ASK="tagfiles" +if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox + TARGET_DIR=/mnt + TMP=/mnt/var/log/setup/tmp + if mount | grep "on /mnt" 1> /dev/null 2>&1 ; then # good + true + else # bad + echo + echo + echo "You can't run pkgtool from the rootdisk until you've mounted your Linux" + echo "partitions beneath /mnt. Here are some examples of this:" + echo + echo "If your root partition is /dev/hda1, and is using ext2fs, you would type:" + echo "mount /dev/hda1 /mnt -t ext2" + echo + echo "Then, supposing your /usr partition is /dev/hda2, you must do this:" + echo "mount /dev/hda2 /mnt/usr -t ext2" + echo + echo "Please mount your Linux partitions and then run pkgtool again." + echo + exit + fi +else + TARGET_DIR=/ + TMP=/var/log/setup/tmp +fi +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP + fi +ADM_DIR=$TARGET_DIR/var/log +LOG=$TMP/PKGTOOL.REMOVED + +# remove whitespace +crunch() { + while read FOO ; do + echo $FOO + done +} + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +remove_packages() { + for pkg_name in $(cat $TMP/return | tr -d "\042") + do + if [ -r $ADM_DIR/packages/$pkg_name ]; then + dialog --title "PACKAGE REMOVAL IN PROGRESS" --cr-wrap --infobox \ +"\nRemoving package $pkg_name.\n\ +\n\ +Since each file must be checked \ +against the contents of every other installed package to avoid wiping out \ +areas of overlap, this process can take quite some time. If you'd like to \ +watch the progress, flip over to another virtual console and type:\n\ +\n\ +tail -f $TMP/PKGTOOL.REMOVED\n" 13 60 + export ROOT=$TARGET_DIR + removepkg $pkg_name >> $LOG 2> /dev/null + else + echo "No such package: $pkg_name. Can't remove." >> $LOG + fi + done +} + +create_list_of_installed_packages() +{ + FILES=$(ls $ADM_DIR/packages) + if [ -n "$FILES" ]; then + cd $ADM_DIR/packages + { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ + | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g + s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" "View information about package \1" \\/;p' > $TMP/list_of_installed_packages \ + + fi +} + + create_list_of_files_to_remove () +{ +FILES=$(ls $ADM_DIR/packages) + if [ -n "$FILES" ]; then + cd $ADM_DIR/packages + { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ + | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g + s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \ + + fi +} + +# Here, we read the list of arguments passed to the pkgtool script. +if [ $# -gt 0 ]; then # there are arguments to the command + while [ $# -gt 0 ]; do + case "$1" in + -sets | --sets) + DISK_SETS=$(echo $2 | tr "[A-Z]" "[a-z]") ; shift 2 ;; + -source_mounted | --source-mounted) + SOURCE_MOUNTED="always" ; shift 1 ;; + -ignore_tagfiles | --ignore-tagfiles) + ASK="never" ; shift 1 ;; + -tagfile | --tagfile) + USETAG=$2 ; shift 2 ;; + -source_dir | --source_dir) + SOURCE_DIR=$2 ; shift 2 ;; + -target_dir | --target_dir) + TARGET_DIR=$2 + ADM_DIR=$TARGET_DIR/var/log + shift 2 ;; + -source_device | --source_device) + SOURCE_DEVICE=$2 ; shift 2 ;; + esac + done +else # there were no arguments, so we'll get the needed information from the + # user and then go on. + CMD_START="true" + rm -f $TMP/SeT* + while [ 0 ]; do + dialog --title "Slackware Package Tool (pkgtool version 13.0)" \ +--menu "\nWelcome to the Slackware package tool.\n\ +\nWhich option would you like?\n" 17 75 7 \ +"Current" "Install packages from the current directory" \ +"Other" "Install packages from some other directory" \ +"Floppy" "Install packages from floppy disks" \ +"Remove" "Remove packages that are currently installed" \ +"View" "View the list of files contained in a package" \ +"Setup" "Choose Slackware installation scripts to run again" \ +"Exit" "Exit Pkgtool" 2> $TMP/reply + if [ ! $? = 0 ]; then + rm -f $TMP/reply + dialog --clear + exit + fi + REPLY="$(cat $TMP/reply)" + rm -f $TMP/reply + if [ "$REPLY" = "Exit" ]; then + dialog --clear + exit + fi + if [ "$REPLY" = "Setup" ]; then + echo 'dialog --title "SELECT SYSTEM SETUP SCRIPTS" --item-help --checklist \ + "Please use the spacebar to select the setup scripts to run. Hit enter when you \ +are done selecting to run the scripts." 17 70 9 \' > $TMP/setupscr + for script in $ADM_DIR/setup/setup.* ; do + BLURB=$(grep '#BLURB' $script | cut -b8-) + if [ "$BLURB" = "" ]; then + BLURB="\"\"" + fi + echo " \"$(basename $script | cut -f2- -d .)\" $BLURB \"no\" $BLURB \\" >> $TMP/setupscr + done + echo "2> $TMP/return" >> $TMP/setupscr + . $TMP/setupscr + if [ ! "$(cat $TMP/return)" = "" ]; then + # Run each script: + for script in $(cat $TMP/return) ; do + scrpath=$ADM_DIR/setup/setup.$(echo $script | tr -d \") + rootdevice="$(mount | head -n 1 | cut -f 1 -d ' ')" + ( COLOR=on ; cd $TARGET_DIR ; . $scrpath / $rootdevice ) + done + fi + rm -f $TMP/return $TMP/setupscr + continue + fi # end Setup + + if [ "$REPLY" = "View" ]; then +create_list_of_installed_packages + DEFITEM="" + export DEFITEM + #dialog --title "SCANNING" --infobox "Please wait while \ +#Pkgtool scans your system to determine which packages you have \ +#installed and prepares a list for you." 0 0 + ( + echo 'dialog $DEFITEM --item-help --menu "Please select the package you wish to view." 17 68 10 \ + --file $TMP/list_of_installed_packages \' + echo "2> $TMP/return" + ) > $TMP/viewscr + while [ 0 ]; do + . $TMP/viewscr + if [ ! "$(cat $TMP/return)" = "" ]; then + DEFITEM="--default-item $(cat $TMP/return)" + dialog --title "CONTENTS OF PACKAGE: $(cat $TMP/return)" --no-shadow --textbox "$ADM_DIR/packages/$(cat $TMP/return)" \ + 0 0 2> /dev/null + else + break + fi + done + rm -f $TMP/return $TMP/viewscr $TMP/tmpmsg $TMP/list_of_installed_packages + # This will clean up after most defective packages: + chmod 755 / + chmod 1777 /tmp + continue + fi + + if [ "$REPLY" = "Remove" ]; then + #dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \ +#your system to determine which packages you have installed and prepares \ +#a list for you." 0 0 + # end section + ( +create_list_of_files_to_remove #call the function to create a list of installed packages + cat << EOF +dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \ +"Please select the \ +packages you wish to Remove. Use the \ +spacebar to select packages to delete, and the UP/DOWN arrow keys to \ +scroll up and down through the entire list." 20 75 11 \ +--file $TMP/temporary_list \\ +EOF + echo "2> $TMP/return" + ) > $TMP/rmscript + if [ -L $LOG -o -r $LOG ]; then + rm -f $LOG + fi + cat /dev/null > $LOG + chmod 600 $LOG + chmod 700 $TMP/rmscript + export ADM_DIR; + $TMP/rmscript + remove_packages + if [ "$(cat $TMP/PKGTOOL.REMOVED)" = "" ]; then + rm -f $TMP/PKGTOOL.REMOVED + dialog --title "NO PACKAGES REMOVED" --msgbox "Hit OK to return \ +to the main menu." 5 40 + else + dialog --title "PACKAGE REMOVAL COMPLETE" --msgbox "The packages have \ +been removed. A complete log of the files that were removed has been created \ +in $TMP: PKGTOOL.REMOVED." 0 0 + fi + rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list + chmod 755 / + chmod 1777 /tmp +# No, return to the main menu: +# exit + elif [ "$REPLY" = "Floppy" ]; then + dialog --title "SELECT FLOPPY DRIVE" --menu "Which floppy drive would \ +you like to install from?" \ +11 70 4 \ +"/dev/fd0u1440" "1.44 MB first floppy drive" \ +"/dev/fd1u1440" "1.44 MB second floppy drive" \ +"/dev/fd0h1200" "1.2 MB first floppy drive" \ +"/dev/fd1h1200" "1.2 MB second floppy drive" 2> $TMP/wdrive + if [ $? = 1 ]; then + dialog --clear + exit + fi + SOURCE_DEVICE="$(cat $TMP/wdrive)" + rm -f $TMP/wdrive + cat << EOF > $TMP/tmpmsg + +Enter the names of any disk sets you would like to install. +Separate the sets with a space, like this: a b oi x + +To install packages from one disk, hit [enter] without typing +anything. + +EOF + dialog --title "SOFTWARE SELECTION" --inputbox "$(cat $TMP/tmpmsg)" 13 70 2> $TMP/sets + DISK_SETS="$(cat $TMP/sets)" + rm -f $TMP/sets + if [ "$DISK_SETS" = "" ]; then + DISK_SETS="disk" + else + DISK_SETS=$(echo $DISK_SETS | sed 's/ /#/g') + DISK_SETS="#$DISK_SETS" + fi + break; + elif [ "$REPLY" = "Other" ]; then + dialog --title "SELECT SOURCE DIRECTORY" --inputbox "Please enter the name of the directory that you wish to \ +install packages from:" 10 50 2> $TMP/pkgdir + if [ $? = 1 ]; then + rm -f $TMP/pkgdir $TMP/SeT* + dialog --clear + exit + fi + SOURCE_DIR="$(cat $TMP/pkgdir)" + SOURCE_MOUNTED="always" + DISK_SETS="disk" + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + rm -f $TMP/pkgdir + if [ ! -d $SOURCE_DIR ]; then + dialog --title "DIRECTORY NOT FOUND" --msgbox "The directory you want to \ +install from ($SOURCE_DIR) \ +does not seem to exist. Please check the directory and then try again." \ +10 50 + dialog --clear + exit + fi + break; + else # installing from current directory + SOURCE_MOUNTED="always" + SOURCE_DIR="$PWD" + DISK_SETS="disk" + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + break; + fi + done +fi +if [ "$DISK_SETS" = "disk" ]; then + ASK="always" +fi + +mount_the_source() { + # is the source supposed to be mounted already? + if [ "$SOURCE_MOUNTED" = "always" ]; then + # The source should already be mounted, so we test it + if [ ! -d $SOURCE_DIR ]; then # the directory is missing + cat << EOF > $TMP/tmpmsg + +Your source device cannot be accessed properly. + +Please be sure that it is mounted on $SOURCE_DIR, +and that the Slackware disks are found in subdirectories +of $SOURCE_DIR like specified. + +EOF + dialog --title "MOUNT ERROR" --msgbox "$(cat $TMP/tmpmsg)" 11 67 + rm -f $TMP/tmpmsg + exit 1; + fi + return 0; + fi + dialog --title "INSERT DISK" --menu "Please insert disk $1 and \ +press ENTER to continue." \ +11 50 3 \ +"Continue" "Continue with the installation" \ +"Skip" "Skip the current disk series" \ +"Quit" "Abort the installation process" 2> $TMP/reply + if [ ! $? = 0 ]; then + REPLY="Quit" + else + REPLY="$(cat $TMP/reply)" + fi + rm -f $TMP/reply + if [ "$REPLY" = "Skip" ]; then + return 1; + fi + if [ "$REPLY" = "Quit" ]; then + dialog --title "ABORTING" --msgbox "Aborting software installation." 5 50 + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + exit 1; + fi; + # Old line: + # mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR + # New ones: (thanks to Andy Schwierskott!) + go_on=y + not_successfull_mounted=1 + while [ "$go_on" = y -a "$not_successfull_mounted" = 1 ]; do + mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR + not_successfull_mounted=$? + if [ "$not_successfull_mounted" = 1 ]; then + mount_answer=x + while [ "$mount_answer" != "y" -a "$mount_answer" != "q" ] ; do + dialog --title "MOUNT PROBLEM" --menu "Media was not successfully \ +mounted! Do you want to \ +retry, or quit?" 10 60 2 \ +"Yes" "Try to mount the disk again" \ +"No" "No, abort." 2> $TMP/mntans + mount_answer="$(cat $TMP/mntans)" + rm -f $TMP/mntans + if [ "$mount_answer" = "Yes" ]; then + mount_answer="y" + else + mount_answer="q" + fi + done + go_on=$mount_answer + fi + done + test $not_successfull_mounted = 0 +} + +umount_the_source() { + if [ ! "$SOURCE_MOUNTED" = "always" ]; then + umount $SOURCE_DEVICE 1> /dev/null 2>&1 + fi; +} + +install_disk() { + mount_the_source $1 + if [ $? = 1 ]; then + umount_the_source; + return 1; + fi + CURRENT_DISK_NAME="$1" + PACKAGE_DIR=$SOURCE_DIR + if [ "$SOURCE_MOUNTED" = "always" -a ! "$DISK_SETS" = "disk" ]; then + PACKAGE_DIR=$PACKAGE_DIR/$1 + fi + + # If this directory is missing or contains no *.t?z files, bail. + if [ ! -d $PACKAGE_DIR ]; then + return 1 + fi + if ! ls $PACKAGE_DIR/*.t?z 1> /dev/null 2> /dev/null ; then + return 1 + fi + + # + # look for tagfile for this series and copy into $TMP/tagfile + # + touch $TMP/tagfile + if [ ! "$DISK_SETS" = "disk" ]; then + if [ -r $TMP/SeTtagext ]; then + if [ -r $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) ]; then + cat $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) >> $TMP/tagfile + else + if [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + fi + + # + # Do we need to follow a custom path to the tagfiles? + # + elif [ -r $TMP/SeTtagpath ]; then + custom_path=$(cat $TMP/SeTtagpath) + short_path=$(basename $PACKAGE_DIR) + + # If tagfile exists at the specified custom path, copy it over. + if [ -r $custom_path/$short_path/tagfile ]; then + cat $custom_path/$short_path/tagfile >> $TMP/tagfile + + else # well, I guess we'll use the default one then. + if [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + fi + # + # We seem to be testing for this too often... maybe this code should + # be optimized a little... + # + elif [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + + # + # Execute menus if in QUICK mode: + # + if [ -r $TMP/SeTQUICK -a -r $PACKAGE_DIR/maketag ]; then + if [ ! "$MAKETAG" = "" -a -r $PACKAGE_DIR/$MAKETAG ]; then # use alternate maketag + sh $PACKAGE_DIR/$MAKETAG + else + sh $PACKAGE_DIR/maketag + fi + if [ -r $TMP/SeTnewtag ]; then + mv $TMP/SeTnewtag $TMP/tagfile + fi + fi + + # + # Protect tagfile from hacker attack: + # + if [ -r $TMP/tagfile ]; then + chmod 600 $TMP/tagfile + fi + + fi # ! "$DISK_SETS" = "disk" + + # It's possible that the tagfile was specified on the command line. If that's + # the case, then we'll just override whatever we figured out up above. + if [ ! "$USETAG" = "" ]; then + cat $USETAG > $TMP/tagfile + fi + + # If there's a catalog file present, use it to check for missing files. + # If not, forget about that and install whatever's there. + if [ "$1" = "single_disk" -o -r $PACKAGE_DIR/disk$1 -o -r $PACKAGE_DIR/package-list.txt ]; then + if [ -r $PACKAGE_DIR/package-list.txt ]; then + CATALOG_FILE=$PACKAGE_DIR/package-list.txt + else + CATALOG_FILE=$(basename $PACKAGE_DIR/disk*); + fi + if [ -r $PACKAGE_DIR/$CATALOG_FILE -a ! -d $PACKAGE_DIR/$CATALOG_FILE ]; then + if grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE 1> /dev/null 2>&1 ; then + # First we check for missing packages... + for PKGTEST in $(grep "^CONTENTS:" $PACKAGE_DIR/$CATALOG_FILE | cut -f2- -d : 2> /dev/null) ; do + # This is not a perfect test. (say emacs is missing but emacs-nox is not) + if ls $PACKAGE_DIR/$PKGTEST*.t?z 1> /dev/null 2> /dev/null ; then # found something like it + true + else + cat << EOF > $TMP/tmpmsg + +WARNING!!! + +While looking through your index file ($CATALOG_FILE), +I noticed that you might be missing a package: + +$PKGTEST-\*-\*-\*.t?z + +that is supposed to be on this disk (disk $1). You may go +on with the installation if you wish, but if this is a +crucial file I'm making no promises that your machine will +boot. + +EOF + dialog --title "FILE MISSING FROM YOUR DISK" --msgbox \ +"$(cat $TMP/tmpmsg)" 17 67 + fi + done # checking for missing packages + # Now we test for extra packages: + ALLOWED="$(grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE | cut -b10- 2> /dev/null)" + for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do + BASE=$(pkgbase $PACKAGE_FILENAME) + BASE="$(package_name $BASE)" + if echo $ALLOWED | grep $BASE 1> /dev/null 2>&1 ; then + true + else + cat << EOF > $TMP/tmpmsg + +WARNING!!! + +While looking through your index file ($CATALOG_FILE), +I noticed that you have this extra package: + +($BASE.t?z) + +that I don't recognize. Please be sure this package is +really supposed to be here, and is not left over from an +old version of Slackware. Sometimes this can happen at the +archive sites. + +EOF + dialog --title "EXTRA FILE FOUND ON YOUR DISK" \ +--msgbox "$(cat $TMP/tmpmsg)" 17 67 + rm -f $TMP/tmpmsg + fi + done + fi + fi + fi # check for missing/extra packages + + # Install the packages: + for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do + if [ "$PACKAGE_FILENAME" = "$PACKAGE_DIR/*.t?z" ]; then + continue; + fi + if [ "$ASK" = "never" ]; then # install the package + installpkg -root $TARGET_DIR -infobox -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + elif [ "$ASK" = "tagfiles" ]; then + installpkg -root $TARGET_DIR -menu -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + else # ASK should be = always here, and that's how we'll treat it + installpkg -root $TARGET_DIR -menu -ask -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + fi + # Check for abort: + if [ "$ERROR" = "99" ]; then + umount_the_source; + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + exit 1; + fi + done + OUTTAHERE="false" + if [ -r $PACKAGE_DIR/install.end ]; then + OUTTAHERE="true" + fi + umount_the_source; + if [ "$OUTTAHERE" = "true" ]; then + return 1; + fi +} + +install_disk_set() { # accepts one argument: the series name in lowercase. + SERIES_NAME=$1 + CURRENT_DISK_NUMBER="1"; + while [ 0 ]; do + # Don't start numbering the directories until 2: + if [ $CURRENT_DISK_NUMBER = 1 ]; then + DISKTOINSTALL=$SERIES_NAME + else + DISKTOINSTALL=$SERIES_NAME$CURRENT_DISK_NUMBER + fi + install_disk $DISKTOINSTALL + if [ ! $? = 0 ]; then # install.end was found, or the user chose + # to quit installing packages. + return 0; + fi + CURRENT_DISK_NUMBER=$(expr $CURRENT_DISK_NUMBER + 1) + done; +} + +# /* main() */ ;) +if [ "$DISK_SETS" = "disk" ]; then + install_disk single_disk; + ASK="always" +else + touch $TMP/tagfile + chmod 600 $TMP/tagfile + if echo $DISK_SETS | grep "#a#" 1> /dev/null 2>&1; then + A_IS_NEEDED="true" + else + A_IS_NEEDED="false" + fi + while [ 0 ]; + do + while [ 0 ]; # strip leading '#'s + do + if [ "$(echo $DISK_SETS | cut -b1)" = "#" ]; then + DISK_SETS="$(echo $DISK_SETS | cut -b2-)" + else + break; + fi + done + if [ "$A_IS_NEEDED" = "true" ]; then + cat << EOF > $TMP/tmpmsg + +--- Installing package series ==>a<== + +EOF + dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 + sleep 1 + rm -f $TMP/tmpmsg + install_disk_set a; + A_IS_NEEDED="false" + fi + count="1" + if [ "$(echo $DISK_SETS | cut -b$count)" = "" ]; then + break; # we be done here :^) + else + count="2" + while [ 0 ]; do + if [ "$(echo $DISK_SETS | cut -b$count)" = "" -o "$(echo $DISK_SETS | cut -b$count)" = "#" ]; then + count="$(expr $count - 1)" + break; + else + count="$(expr $count + 1)" + fi + done + fi + diskset="$(echo $DISK_SETS | cut -b1-$count)" + count="$(expr $count + 1)" + DISK_SETS="$(echo $DISK_SETS | cut -b$count-)" + if [ "$diskset" = "a" ]; then + continue; # we expect this to be done elsewhere + fi + cat << EOF > $TMP/tmpmsg + +Installing package series ==>$diskset<== + +EOF + dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 + sleep 1 + rm -f $TMP/tmpmsg + install_disk_set $diskset; + done +fi + +if [ "$DISK_SETS" = "disk" -o "$CMD_START" = "true" ]; then + if [ -r $TMP/tagfile ]; then + rm $TMP/tagfile + fi + dialog --clear +fi +chmod 755 $TARGET_DIR $TARGET_DIR/var $TARGET_DIR/usr +chmod 1777 $TARGET_DIR/tmp diff --git a/source/a/pkgtools/scripts/removepkg b/source/a/pkgtools/scripts/removepkg new file mode 100644 index 00000000..8b5a911d --- /dev/null +++ b/source/a/pkgtools/scripts/removepkg @@ -0,0 +1,430 @@ +#!/bin/sh +# Slackware remove package script +# +# Sat Apr 25 21:18:53 UTC 2009 (12.34567890b) +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Revision 12.34567890 Sun Apr 5 20:59:32 CDT 2009 <volkerdi> +# - Support packages with the extensions: .tgz, .tbz, .tlz, .txz +# +# Revision 1.9 Wed Oct 31 14:04:28 CDT 2007 volkerding +# - Fix problem removing packages with a large number of fields. +# Thanks to Niki Kovacs for noticing this, and to Piter Punk +# for the patch. +# - Use LC_ALL=C locale, which is much faster with "sort". +# Thanks to Tsomi. +# - Don't try to remove any package that starts with '-'. This +# is not a proper package name (usually a typo), and results +# in the package database being broken. Thanks to Jef Oliver. +# - Patched cat_except() to allow the last Slackware package on +# a partition to be removed (using ROOT=, of course) +# Thanks to Selkfoster for the patch, and to everyone else who +# proposed solutions before. This issue really wasn't given +# the highest priority before, but I figured while I'm in here... +# +# Revision 1.8 Thu Nov 22 14:00:13 PST 2001 volkerding Rel $ +# - Move $TMP underneath $ROOT +# - Understand the idea of a base package name, so that packages +# can be removed with any of these notations: +# removepkg foo-1.0-i386-1.tgz +# removepkg foo-1.0-i386-1 +# removepkg foo.tgz +# removepkg foo +# +# Revision 1.7 2001/03/30 12:36:28 volkerding +# - Strip extra ".tgz" from input names. +# +# Revision 1.6 1999/03/25 18:26:41 volkerding +# - Use external $ROOT variable, like installpkg. +# +# Revision 1.5.1 1998/03/18 15:37:28 volkerding +# - Since removepkg is always run by root, the temp directory has been +# moved from /tmp to a private directory to avoid symlink attacks from +# malicious users. +# +# Revision 1.5 1997/06/26 12:09:53 franke +# - Fixed old bug in TRIGGER regex setting +# - -preserve/-copy options now preserve non-unique files +# and empty directories also +# +# Revision 1.4 1997/06/09 13:21:36 franke +# - Package file preserve (-preserve, -copy) added. +# - Don't execute "rm -rf" lines from doinst.sh, removing links explicit. +# - Warning on no longer existing files added. +# - Warning on files changed after package installation added. +# - Intermediate file preserve (-keep) added. +# - Check for required files/links now done on a combined list. +# - Write access to /var/log/{packages,scripts} no longer necessary for -warn. +# +# Revision 1.3 1997/06/08 13:03:05 franke +# Merged with revision 1.1.1.1 +# +# Revision 1.2 1996/06/01 20:04:26 franke +# Delete empty directories & formated manual pages added +# +# Revision 1.1.1.1 1995/12/18 21:20:42 volkerding +# Original Version from Slackware 3.1 +# +# Revision 1.1 1995/06/05 22:49:11 volkerding +# Original Version from Slackware 3.0 +# + +# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2001, Slackware Linux, Inc., Concord, CA 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. +# + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# This makes "sort" run much faster: +export LC_ALL=C + +# Make sure there's a proper temp directory: +TMP=$ROOT/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi +ADM_DIR=$ROOT/var/log +PRES_DIR=$TMP/preserved_packages + +# This simple cat_except() should be used on the installer, +# since the busybox "find" can't handle the complex find +# syntax: +#cat_except() { +# ( cd "$1" && cat $(ls * | sed "/^$2\$/d")) +#} + +# This version of cat_except() allows the last package to be +# removed when ROOT= is used: +cat_except() { + ( cd "$1" && \ + if [ $(find . -type f -maxdepth 1 | wc -l) -ne 1 ]; then + cat $(find . -type f -maxdepth 1 | grep -v "$2") + fi + ) +} + +extract_links() { + sed -n 's,^( *cd \([^ ;][^ ;]*\) *; *rm -rf \([^ )][^ )]*\) *) *$,\1/\2,p' +} + +preserve_file() { + if [ "$PRESERVE" = "true" ]; then + F="$(basename "$1")" + D="$(dirname "$1")" + if [ ! -d "$PRES_DIR/$PKGNAME/$D" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/$D" || return 1 + fi + cp -p "$ROOT/$D/$F" "$PRES_DIR/$PKGNAME/$D" || return 1 + fi + return 0 +} + +preserve_dir() { + if [ "$PRESERVE" = "true" ]; then + if [ ! -d "$PRES_DIR/$PKGNAME/$1" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/$1" || return 1 + fi + fi + return 0 +} + +keep_files() { + while read FILE ; do + if [ ! -d "$ROOT/$FILE" ]; then + if [ -r "$ROOT/$FILE" ]; then + echo " --> $ROOT/$FILE was found in another package. Skipping." + preserve_file "$FILE" + else + if [ "$(echo $FILE | cut -b1-8)" != "install/" ]; then + echo "WARNING: Nonexistent $ROOT/$FILE was found in another package. Skipping." + fi + fi + else + preserve_dir "$FILE" + fi + done +} + +keep_links() { + while read LINK ; do + if [ -L "$ROOT/$LINK" ]; then + echo " --> $ROOT/$LINK (symlink) was found in another package. Skipping." + else + echo "WARNING: Nonexistent $ROOT/$LINK (symlink) was found in another package. Skipping." + fi + done +} + +delete_files() { + while read FILE ; do + if [ ! -d "$ROOT/$FILE" ]; then + if [ -r "$ROOT/$FILE" ]; then + if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then + echo "WARNING: $ROOT/$FILE changed after package installation." + fi + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting $ROOT/$FILE" + preserve_file "$FILE" && rm -f "$ROOT/$FILE" + else + echo " --> $ROOT/$FILE would be deleted" + preserve_file "$FILE" + fi + else + echo " --> $ROOT/$FILE no longer exists. Skipping." + fi + else + preserve_dir "$FILE" + fi + done +} + +delete_links() { + while read LINK ; do + if [ -L "$ROOT/$LINK" ]; then + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting symlink $ROOT/$LINK" + rm -f $ROOT/$LINK + else + echo " --> $ROOT/$LINK (symlink) would be deleted" + fi + else + echo " --> $ROOT/$LINK (symlink) no longer exists. Skipping." + fi + done +} + +delete_dirs() { + sort -r | \ + while read DIR ; do + if [ -d "$ROOT/$DIR" ]; then + if [ ! "$WARN" = "true" ]; then + if [ $(ls -a "$ROOT/$DIR" | wc -l) -eq 2 ]; then + echo " --> Deleting empty directory $ROOT/$DIR" + rmdir "$ROOT/$DIR" + else + echo "WARNING: Unique directory $ROOT/$DIR contains new files" + fi + else + echo " --> $ROOT/$DIR (dir) would be deleted if empty" + fi + fi + done +} + +delete_cats() { + sed -n 's,/man\(./[^/]*$\),/cat\1,p' | \ + while read FILE ; do + if [ -f "$ROOT/$FILE" ]; then + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting $ROOT/$FILE (fmt man page)" + rm -f $ROOT/$FILE + else + echo " --> $ROOT/$FILE (fmt man page) would be deleted" + fi + fi + done +} + +package_name() { + STRING=$(pkgbase $1) + # If we don't do this, commands run later will take the '-' to be an option + # and will destroy the package database. Packages should not contain spaces + # in them. Normally this type of problem results from a command line typo. + if [ "$(echo $STRING | cut -b 1)" = "-" ]; then + STRING="malformed-package-name-detected" + fi + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +# Conversion to 'comm' utility by Mark Wisdom. +# is pretty nifty! :^) +remove_packages() { + for PKGLIST in $* + do + PKGNAME=$(pkgbase $PKGLIST) + echo + # If we don't have a package match here, then we will attempt to find + # a package using the long name format (name-version-arch-build) for + # which the base package name was given. On a properly-managed machine, + # there should only be one package installed with a given basename, but + # we don't enforce this policy. If there's more than one, only one will + # be removed. If you want to remove them all, you'll need to run + # removepkg again until it removes all the same-named packages. + if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then + SHORT="$(package_name $PKGNAME)" + for long_package in $ADM_DIR/packages/${PKGNAME}* ; do + if [ "$SHORT" = "$(package_name $long_package)" ]; then + PKGNAME="$(basename $long_package)" + fi + done + fi + + if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then + long_package=$(ls -1 $ADM_DIR/packages/${PKGNAME}* | grep -m 1 "${PKGNAME}-[^-]*-[^-]*-[^-]*$") + if [ -e "$long_package" ]; then + PKGNAME=$(basename $long_package) + fi + fi + + if [ -r $ADM_DIR/packages/$PKGNAME ]; then + if [ ! "$WARN" = true ]; then + echo "Removing package $ADM_DIR/packages/$PKGNAME..." + fi + if fgrep "./" $ADM_DIR/packages/$PKGNAME 1> /dev/null 2>&1; then + TRIGGER="^\.\/" + else + TRIGGER="FILE LIST:" + fi + if [ ! "$WARN" = true ]; then + echo "Removing files:" + fi + sed -n "/$TRIGGER/,/^$/p" < $ADM_DIR/packages/$PKGNAME | \ + fgrep -v "FILE LIST:" | sort -u > $TMP/delete_list$$ + # Pat's new-new && improved pre-removal routine. + cat_except $ADM_DIR/packages $PKGNAME | sort -u > $TMP/required_list$$ + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + extract_links < $ADM_DIR/scripts/$PKGNAME | sort -u > $TMP/del_link_list$$ + cat_except $ADM_DIR/scripts $PKGNAME | extract_links | \ + sort -u > $TMP/required_links$$ + mv $TMP/required_list$$ $TMP/required_files$$ + sort -u $TMP/required_links$$ $TMP/required_files$$ > $TMP/required_list$$ + comm -12 $TMP/del_link_list$$ $TMP/required_list$$ | keep_links + comm -23 $TMP/del_link_list$$ $TMP/required_list$$ | delete_links + else + cat $ADM_DIR/scripts/* | extract_links | \ + sort -u > $TMP/required_links$$ + mv $TMP/required_list$$ $TMP/required_files$$ + sort -u $TMP/required_links$$ $TMP/required_files$$ >$TMP/required_list$$ + fi + comm -12 $TMP/delete_list$$ $TMP/required_list$$ | keep_files + comm -23 $TMP/delete_list$$ $TMP/required_list$$ > $TMP/uniq_list$$ + delete_files < $TMP/uniq_list$$ + delete_dirs < $TMP/uniq_list$$ + delete_cats < $TMP/uniq_list$$ + if [ ! "$KEEP" = "true" ]; then + rm -f $TMP/delete_list$$ $TMP/required_files$$ $TMP/uniq_list$$ + rm -f $TMP/del_link_list$$ $TMP/required_links$$ $TMP/required_list$$ + fi + if [ "$PRESERVE" = "true" ]; then + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + if [ ! -d "$PRES_DIR/$PKGNAME/install" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/install" + fi + cp -p $ADM_DIR/scripts/$PKGNAME $PRES_DIR/$PKGNAME/install/doinst.sh + fi + fi + if [ ! "$WARN" = "true" ]; then + for DIR in $ADM_DIR/removed_packages $ADM_DIR/removed_scripts ; do + if [ ! -d $DIR ] ; then mkdir -p $DIR ; chmod 755 $DIR ; fi + done + mv $ADM_DIR/packages/$PKGNAME $ADM_DIR/removed_packages + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + mv $ADM_DIR/scripts/$PKGNAME $ADM_DIR/removed_scripts + fi + fi + else + echo "No such package: $ADM_DIR/packages/$PKGNAME. Can't remove." + fi + done +} + +if [ "$#" = "0" ]; then + echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1 +fi + +while : ; do + case "$1" in + -copy | --copy) WARN=true; PRESERVE=true; shift;; + -keep | --keep) KEEP=true; shift;; + -preserve | --preserve) PRESERVE=true; shift;; + -warn | --warn) WARN=true; shift;; + -* | --*) echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1;; + *) break + esac +done + +if [ "$WARN" = "true" ]; then + echo "Only warning... not actually removing any files." + if [ "$PRESERVE" = "true" ]; then + echo "Package contents is copied to $PRES_DIR." + fi + echo "Here's what would be removed (and left behind) if you" + echo "removed the package(s):" + echo +else + if [ "$PRESERVE" = "true" ]; then + echo "Package contents is copied to $PRES_DIR." + fi +fi + +remove_packages $* + diff --git a/source/a/pkgtools/scripts/setup.70.install-kernel b/source/a/pkgtools/scripts/setup.70.install-kernel new file mode 100644 index 00000000..8edf6477 --- /dev/null +++ b/source/a/pkgtools/scripts/setup.70.install-kernel @@ -0,0 +1,5 @@ +# Install the bootdisk or CD-ROM's Linux kernel: +#BLURB="Install a Linux kernel from a bootdisk" +if [ -x /usr/lib/setup/SeTkernel ]; then + . /usr/lib/setup/SeTkernel +fi diff --git a/source/a/pkgtools/scripts/setup.80.make-bootdisk b/source/a/pkgtools/scripts/setup.80.make-bootdisk new file mode 100644 index 00000000..d9b4012f --- /dev/null +++ b/source/a/pkgtools/scripts/setup.80.make-bootdisk @@ -0,0 +1,175 @@ +#!/bin/sh +#BLURB="Create a USB Linux boot stick" +RDIR=/dev/tty4 +NDIR=/dev/null +TMP=/var/log/setup/tmp + +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +T_PX="$1" +ROOT_DEVICE="$2" + +while [ 0 ]; do # the bootdisk menu loop + # Run "rescan-scsi-bus -l" to get an up to date overview of devices: + /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR + # Get a list of removable block devices before the USB stick is inserted: + echo "" > $TMP/remov_prior + for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do + [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ + && echo $BDEV >> $TMP/remov_prior + done + dialog --title "MAKE USB FLASH BOOT" --default-item "Skip" --menu \ +"If your computer supports booting from a USB device, it is recommended that you make \ +a USB boot stick for your system at this time. It will boot your computer straight \ +into the root filesystem on $ROOT_DEVICE. \n\ +\n\ +Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\ +\n\ +WARNING! The existing contents of the USB stick will be erased. \n\ + " 18 70 2 \ + "Create" "Make a USB Linux boot stick" \ + "Skip" "Skip making a USB boot stick" \ + 2> $TMP/return + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "Create" ]; then + # Run "rescan-scsi-bus -l" to discover our USB stick if needed: + /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR + # Get a list of removable block devices after the USB stick is inserted: + echo "" > $TMP/remov_after + for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do + [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ + && echo $BDEV >> $TMP/remov_after + done + ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') + REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') + if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi + rm $TMP/remov_prior $TMP/remov_after + if [ ! -n "$STICK" ]; then + dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \ +"No new USB device was detected. +If you had already inserted your USB stick, please remove it now. \ +Then select 'Restart'." 7 70 + continue + else + VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)" + MODEL="Model : $(cat /sys/block/$STICK/device/model)" + SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB" + dialog --title "NEW DEVICE DETECTED" --yesno \ +"A new USB device '/dev/$STICK' was detected with specifications: + +-- $VENDOR +-- $MODEL +-- $SIZE + +If this is the USB stick to use, select 'Yes', +otherwise select 'No'." 12 70 + if [ $? -eq 1 ]; then + continue + fi + fi + + dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \ +$ROOT_DEVICE on /dev/$STICK." 3 64 + # Determine max size of the filesystem (in KB) we want to create: + USBSIZE=$(( $(cat /sys/block/$STICK/size) / 2048)) + if [ $USBSIZE -lt 512 ]; then DOSSIZE=$(($USBSIZE*1024)) + else DOSSIZE=$((512*1024)) + fi + # Hack from Pat. If we're wasting a whole stick, who cares if the partition is + # extra-small, as long as the kernel fits? Also, FAT12 is the least problematic. + DOSSIZE=15861 + if [ -x /sbin/mkdosfs ]; then + /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null + else + chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null + fi + if [ ! -d $TMP/bootdisk ]; then + mkdir $TMP/bootdisk + fi + mount -t vfat /dev/$STICK $TMP/bootdisk 1> /dev/null 2> /dev/null + if [ -r $T_PX/vmlinuz ]; then + cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz + elif [ -r $T_PX/boot/vmlinuz ]; then + cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz + fi + # We don't need the isolinux bootloader with syslinux do we? + #cp $T_PX/usr/share/syslinux/isolinux.bin $TMP/bootdisk/ + cat << EOF > $TMP/bootdisk/message.txt + +Welcome to the 09Slackware07 Linux custom USB boot stick! + +By default, this stick boots a root Linux partition on $ROOT_DEVICE when you +hit ENTER. If you'd like to boot some other partition, use a command like +this on the prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you wish to mount +the partition read-write, use "rw" instead. To set the video console mode, +use the vga= parameter (press F1 to see a table). You may also add any other +kernel parameters you might need depending on your hardware, and which +drivers are included in your kernel. + +EOF + cat << EOF > $TMP/bootdisk/syslinux.cfg +default vmlinuz root=$ROOT_DEVICE vga=normal ro +prompt 1 +timeout 6000 +display message.txt +F1 f1.txt +F2 message.txt +#F3 f3.txt +#F4 f4.txt +#F5 f5.txt +#F6 f6.txt +#F7 f7.txt +label mount + kernel vmlinuz + append root=$ROOT_DEVICE vga=normal ro +EOF + cat << EOF > $TMP/bootdisk/f1.txt + STANDARD MODES: + To make the kernel prompt for standard video modes use: vga=ask + + FRAMEBUFFER MODES: + To get the kernel to start in VESA framebuffer mode, you need to pass it + a vga= init string on the "boot:" prompt. Here's a table: + + Colors 640x480 800x600 1024x768 1280x1024 1600x1200 + --------+--------------------------------------------- + 256 | 769 771 773 775 796 + 32,768 | 784 787 790 793 797 + 65,536 | 785 788 791 794 798 + 16.8M | 786 789 792 795 799 + + ...such as this for 1024x768x64k: + vga=791 + + F2 returns to the previous page. + +EOF + umount /dev/$STICK + rm -r $TMP/bootdisk + # Make the device bootable: + syslinux -s /dev/$STICK 1> /dev/null 2> /dev/null + dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \ +"The USB boot stick has been successfully created in /dev/$STICK. If you would like to \ +create an additional boot stick, please select 'Create' and we'll go back and make another \ +one, otherwise select 'Continue' to continue configuring your system." 12 70 2 \ + "Continue" "Continue the configuration (done making boot sticks)" \ + "Create" "Make a spare Linux boot stick in /dev/$STICK" \ + 2> $TMP/return + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "Create" ]; then + continue + else + break + fi + else # ! Create + break + fi +done diff --git a/source/a/pkgtools/scripts/setup.htmlview b/source/a/pkgtools/scripts/setup.htmlview new file mode 100644 index 00000000..2fd9930a --- /dev/null +++ b/source/a/pkgtools/scripts/setup.htmlview @@ -0,0 +1,33 @@ +#!/bin/sh +#BLURB="Set a default browser link." +# Sorry, this is not a full menu, and may not ever be. +# It is trivial to find the htmllink symbolic link and +# point it at the browser that you like. Besides, +# this is not a Linux standard that could be locating +# in any official document. It seems to have been +# started without any consultation with other +# distributions by <take a wild guess>, and now things +# expect it to be there. +# +# +# Note 1. Listing a browser doesn't mean we ship it. +# Note 2. Complaints about our preferences or missing +# browsers in the list will be considered. +# Yell at Pat about it. ;-) + +# There must be no link, or we assume the admin set it and +# do nothing. Can you tell this Q+D script was written for +# the initial installation? + +for browser in firefox seamonkey konqueror galeon epiphany links lynx ; do + if [ ! -e usr/bin/htmlview -a -x usr/bin/$browser ]; then + cat << EOF > usr/bin/htmlview +#!/bin/sh +exec $browser "\$@" +EOF + fi +done +if [ -e usr/bin/htmlview ]; then + chmod 755 usr/bin/htmlview +fi + diff --git a/source/a/pkgtools/scripts/setup.services b/source/a/pkgtools/scripts/setup.services new file mode 100644 index 00000000..aee2599f --- /dev/null +++ b/source/a/pkgtools/scripts/setup.services @@ -0,0 +1,287 @@ +#!/bin/sh +#BLURB="Select/deselect system daemons (services)" +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +T_PX="$1" +cd $T_PX +rm -f $TMP/tmpscript + +cat << EOF > $TMP/tmpscript +dialog --title "CONFIRM STARTUP SERVICES TO RUN" --item-help --checklist \\ +"The selected services will be started at boot time. If you \\ +don't need them, you may unselect them to turn them off (which may improve \\ +overall system security). You may also choose to start services that are \\ +not run by default, but be aware that more services means less security. \\ +Use the spacebar to select or unselect the services you wish to run. \\ +Recommended choices have been preselected. \\ +Press the ENTER key when you are finished." \\ +20 75 7 \\ +EOF + +if [ -r etc/rc.d/rc.atalk ]; then + if [ -x etc/rc.d/rc.atalk ]; then + RC_ATALK=on + else + RC_ATALK=off + fi + cat << EOF >> $TMP/tmpscript + "rc.atalk" "Netatalk Appletalk file/print server" $RC_ATALK "The Netatalk server is a file and print server for Macintosh networks." \\ +EOF +fi + +if [ -r etc/rc.d/rc.bind ]; then + if [ -x etc/rc.d/rc.bind ]; then + RC_BIND=on + else + RC_BIND=off + fi + cat << EOF >> $TMP/tmpscript + "rc.bind" "BIND (Domain Name System) server" $RC_BIND "BIND (Berkeley Internet Name Domain) is a Domain Name System (DNS) server." \\ +EOF +fi + +if [ -r etc/rc.d/rc.cups ]; then + if [ -x etc/rc.d/rc.cups ]; then + RC_CUPS=on + else + RC_CUPS=off + fi + cat << EOF >> $TMP/tmpscript + "rc.cups" "CUPS print server" $RC_CUPS "The Common UNIX Printing system (print spooler choice #1)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.dnsmasq ]; then + if [ -x etc/rc.d/rc.dnsmasq ]; then + RC_DNSMASQ=on + else + RC_DNSMASQ=off + fi + cat << EOF >> $TMP/tmpscript + "rc.dnsmasq" "dnsmasq DHCP/DNS server" $RC_DNSMASQ "dnsmasq provides DNS and DHCP service to a LAN." \\ +EOF +fi + +if [ -r etc/rc.d/rc.fuse ]; then + if [ -x etc/rc.d/rc.fuse ]; then + RC_FUSE=on + else + RC_FUSE=off + fi + cat << EOF >> $TMP/tmpscript + "rc.fuse" "Filesystem in Userspace library" $RC_FUSE "FUSE is an interface to allow userspace programs to use filesystems." \\ +EOF +fi + +if [ -r etc/rc.d/rc.hald ]; then + if [ -x etc/rc.d/rc.hald ]; then + RC_HALD=on + else + RC_HALD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.hald" "Hardware Abstraction Layer" $RC_HALD "HAL makes access to CD/DVD drives and USB devices easier." \\ +EOF +fi + +if [ -r etc/rc.d/rc.hplip ]; then + if [ -x etc/rc.d/rc.hplip ]; then + RC_HPLIP=on + else + RC_HPLIP=off + fi + cat << EOF >> $TMP/tmpscript + "rc.hplip" "HP printer/scanner daemons" $RC_HPLIP "Programs used to run printers and scanners from Hewlett Packard." \\ +EOF +fi + +if [ -r etc/rc.d/rc.httpd ]; then + if [ -x etc/rc.d/rc.httpd ]; then + RC_HTTPD=on + else + RC_HTTPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.httpd" "The Apache web server" $RC_HTTPD "Apache, the most widely used web server on the net." \\ +EOF +fi + +if [ -r etc/rc.d/rc.inetd ]; then + if [ -x etc/rc.d/rc.inetd ]; then + RC_INETD=on + else + RC_INETD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.inetd" "The BSD Inetd daemon" $RC_INETD "Inetd daemon (this allows: time, ftp, comsat, talk, finger, and auth)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.ip_forward ]; then + if [ -x etc/rc.d/rc.ip_forward ]; then + RC_IP_FORWARD=on + else + RC_IP_FORWARD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.ip_forward" "Activate IP packet forwarding" $RC_IP_FORWARD "Packet forwarding allows your Linux machine to act as a router." \\ +EOF +fi + +if [ -r etc/rc.d/rc.lprng ]; then + if [ -x etc/rc.d/rc.lprng ]; then + RC_LPRNG=on + else + RC_LPRNG=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lprng" "LPRng print server" $RC_LPRNG "The LPRng printing system (print spooler choice #2)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.messagebus ]; then + if [ -x etc/rc.d/rc.messagebus ]; then + RC_MESSAGEBUS=on + else + RC_MESSAGEBUS=off + fi + cat << EOF >> $TMP/tmpscript + "rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for communication by HAL and other programs." \\ +EOF +fi + +if [ -r etc/rc.d/rc.mysqld ]; then + if [ -x etc/rc.d/rc.mysqld ]; then + RC_MYSQLD=on + else + RC_MYSQLD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.mysqld" "The MySQL database server" $RC_MYSQLD "MySQL, an SQL-based relational database daemon." \\ +EOF +fi + +if [ -r etc/rc.d/rc.ntpd ]; then + if [ -x etc/rc.d/rc.ntpd ]; then + RC_NTPD=on + else + RC_NTPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.ntpd" "The network time server" $RC_NTPD "NTP synchronizes your time to/from other NTP servers." \\ +EOF +fi + +if [ -r etc/rc.d/rc.pcmcia ]; then + if [ -x etc/rc.d/rc.pcmcia ]; then + RC_PCMCIA=on + else + RC_PCMCIA=off + fi + cat << EOF >> $TMP/tmpscript + "rc.pcmcia" "PCMCIA/Cardbus card services" $RC_PCMCIA "This supports PCMCIA or Cardbus cards used with laptops." \\ +EOF +fi + +if [ -r etc/rc.d/rc.rpc ]; then + if [ -x etc/rc.d/rc.rpc ]; then + RC_RPC=on + else + RC_RPC=off + fi + cat << EOF >> $TMP/tmpscript + "rc.rpc" "RPC (NFS) daemons" $RC_RPC "Needed to serve or mount NFS (Network File System) partitions." \\ +EOF +fi + +if [ -r etc/rc.d/rc.samba ]; then + if [ -x etc/rc.d/rc.samba ]; then + RC_SAMBA=on + else + RC_SAMBA=off + fi + cat << EOF >> $TMP/tmpscript + "rc.samba" "The Samba file/print server" $RC_SAMBA "Samba is a file and print server for Windows networks." \\ +EOF +fi + +if [ -r etc/rc.d/rc.saslauthd ]; then + if [ -x etc/rc.d/rc.saslauthd ]; then + RC_SASLAUTHD=on + else + RC_SASLAUTHD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.saslauthd" "The SASL authentication server" $RC_SASLAUTHD "SASL is an authentication method often used by mail servers." \\ +EOF +fi + +if [ -r etc/rc.d/rc.sendmail ]; then + if [ -x etc/rc.d/rc.sendmail ]; then + RC_SENDMAIL=on + else + RC_SENDMAIL=off + fi + cat << EOF >> $TMP/tmpscript + "rc.sendmail" "The Sendmail mail server" $RC_SENDMAIL "The Sendmail server allows your machine to send and receive mail." \\ +EOF +fi + +if [ -r etc/rc.d/rc.snmpd ]; then + if [ -x etc/rc.d/rc.snmpd ]; then + RC_SNMPD=on + else + RC_SNMPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.snmpd" "Net-SNMP daemon" $RC_SNMPD "SNMP daemon that receives and logs SNMP TRAP and INFORM messages." \\ +EOF +fi + +if [ -r etc/rc.d/rc.syslog ]; then + if [ -x etc/rc.d/rc.syslog ]; then + RC_SYSLOGD=on + else + RC_SYSLOGD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.syslog" "The Linux system logging utilities" $RC_SYSLOGD "The syslogd and klogd daemons log important messages under /var/log." \\ +EOF +fi + +if [ -r etc/rc.d/rc.sshd ]; then + if [ -x etc/rc.d/rc.sshd ]; then + RC_SSHD=on + else + RC_SSHD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.sshd" "The SSHD (secure shell) daemon" $RC_SSHD "SSHD allows secure encrypted logins to your machine." \\ +EOF +fi + +cat << EOF >> $TMP/tmpscript + 2> $TMP/reply +EOF + +. $TMP/tmpscript + +if [ ! $? = 0 ]; then + rm -f $TMP/reply $TMP/tmpscript + exit +fi + +for service in rc.atalk rc.bind rc.cups rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.ntpd rc.pcmcia rc.rpc rc.samba rc.saslauthd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do + if [ -f etc/rc.d/$service ]; then + if grep -w $service $TMP/reply 1> /dev/null ; then + chmod 755 etc/rc.d/$service + else + chmod 644 etc/rc.d/$service + fi + fi +done + +rm -f $TMP/reply $TMP/tmpscript + diff --git a/source/a/pkgtools/scripts/upgradepkg b/source/a/pkgtools/scripts/upgradepkg new file mode 100644 index 00000000..cc3250da --- /dev/null +++ b/source/a/pkgtools/scripts/upgradepkg @@ -0,0 +1,387 @@ +#!/bin/sh +# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA +# Copyright 2001, 2002, 2003 Slackware Linux, Inc., Concord, 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. +# +# Modified to handle either old 8.3 or new package-version-arch-build.tgz +# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi +# +# Rewritten to clean out _all_ old packages of a given basename, not just +# the first one found, Thu Apr 4 01:01:05 PST 2002 volkerdi +# +# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi +# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003 +# +# Sat Apr 25 21:18:53 UTC 2009 +# Support new compression types and package extensions. +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +usage() { + cat << EOF + +Usage: upgradepkg newpackage [newpackage2 ... ] + upgradepkg oldpackage%newpackage [oldpackage2%newpackage2 ... ] + +Upgradepkg upgrades a Slackware package (.tgz, .tbz, .tlz, .txz) from an +older version to a newer one. It does this by INSTALLING the new package +onto the system, and then REMOVING any files from the old package that +aren't in the new package. If the old and new packages have the same +name, a single argument is all that is required. If the packages have +different names, supply the name of the old package followed by a percent +symbol (%), then the name of the new package. Do not add any extra +whitespace between pairs of old/new package names. + +Before upgrading a package, save any configuration files (such as in /etc) +that you wish to keep. Sometimes these will be preserved, but it depends +on the package. If you want to force new versions of the config files +to be installed, remove the old ones manually prior to running upgradepkg. + +To upgrade in a directory other than / (such as /mnt): + + ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz) + +EOF +} + +# Make sure there's a proper temp directory: +TMP=$ROOT/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir $TMP + chmod 700 $TMP # no need to leave it open +fi + +# This script expects an 022 umask: +umask 022 + +# $ROOT defined? +if [ -d "$ROOT" ]; then + export ROOT +fi + +# --help or no args? +if [ "$1" = "" -o "$1" = "--help" -o "$1" = "-?" ]; then + usage; + exit 1; +fi + +# Arg processing loop. These must come before any packages are listed. +while [ 0 ]; do + if [ "$1" = "--no-paranoia" ]; then + # Enable --no-paranoia mode. This is so not-recommended that we're + # not even going to document it. ;) If a file used to be directly + # managed and now is moved into place, using --no-paranoia will cause + # it to improperly disappear. It does slightly speed things up, though. + # Don't use it. + NOT_PARANOID="true" + shift 1 + elif [ "$1" = "--install-new" ]; then + # Install packages that do not already have an installed version. + # The usual default is to skip them. + INSTALL_NEW="yes" + shift 1 + elif [ "$1" = "--reinstall" ]; then + # Reinstall packages even if the installed one is the same version. + REINSTALL="true" + shift 1 + elif [ "$1" = "--verbose" -o "$1" = "-v" ]; then + # We're adding a --verbose mode that doesn't filter removepkg as much + VERBOSE="verbose" + shift 1 + elif [ "$1" = "--dry-run" ]; then + # Output a report about which packages would be installed or upgraded + # but don't actually perform the upgrades. + DRY_RUN="true" + shift 1 + else # no more args + break; + fi +done # processing args + +# Here's a function to figure out the package name from one of those +# new long filenames. We'll need this to double check the name of the +# old package. + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +ERRCODE=0 + +# Main processing loop: +while [ ! "$1" = "" ]; do + +# Simple package integrity check: +if [ ! -f $(echo $1 | cut -f 2 -d '%') ]; then + ERRCODE=4 + echo "Cannot install $1: file not found" + shift 1 + continue; +fi + +# Figure out the names of the old and new packages: +OLD=$(echo $1 | cut -f 1 -d '%') +NEW=$(echo $1 | cut -f 2 -d '%') +INCOMINGDIR=$(dirname $NEW) +# These are the package names with the extension: +NNAME=$(basename $NEW) +ONAME=$(basename $OLD) +# These are the package names without the extension: +OLD=$(pkgbase $OLD) +NEW=$(pkgbase $NEW) + +# Make sure the extension is valid: +if [ "$NNAME" = "$NEW" ]; then + # We won't throw an ERRCODE for this, but the package is skipped: + echo "Cannot install $1: invalid package extension" + shift 1 + continue; +fi + +# Check and fix the old package name: +SHORT="$(package_name $OLD)" +if [ ! -r $ROOT/var/log/packages/$OLD ]; then + if ls $ROOT/var/log/packages/$SHORT* 1> /dev/null 2> /dev/null ; then + for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one + OLD="$(basename $installed_package)" + break + fi + done + fi +fi + +# Test to see if both the old and new packages are where we expect them +# to be -- skip to the next package (or package pair) if anything's wrong: + +if [ ! -r $ROOT/var/log/packages/$OLD ]; then + if [ ! "$INSTALL_NEW" = "yes" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$OLD would not be upgraded (no installed package named $SHORT)." + else + echo + echo "Error: there is no installed package named $OLD." + echo " (looking for $ROOT/var/log/packages/$OLD)" + echo + fi + ERRCODE=1 + else # --install-new was given, so install the new package: + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW would be installed (new package)." + else + cat << EOF + ++============================================================================== +| Installing new package $INCOMINGDIR/$NNAME ++============================================================================== + +EOF + installpkg $INCOMINGDIR/$NNAME + fi + fi + shift 1 + continue; +elif [ ! -r "$INCOMINGDIR/$NNAME" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW incoming package not found (command line)." + else + echo + echo "Error: incoming package $INCOMINGDIR/$NNAME not found." + echo + fi + shift 1 + ERRCODE=1 + continue; +fi + +# Unless --reinstall was given, compare the package names +# and skip any exact matches: +if [ ! "$REINSTALL" = "true" ]; then + if [ "$OLD" = "$NEW" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW would be skipped (already installed)." + else + cat << EOF + ++============================================================================== +| Skipping package $NEW (already installed) ++============================================================================== + +EOF + fi + shift 1 + continue; + fi +fi + +# Showtime. Let's do the upgrade. First, we will rename all the +# installed packages with this basename to make them easy to remove later: + +TIMESTAMP=$(date +%Y-%m-%d,%T) +SHORT="$(package_name $OLD)" +if [ "$DRY_RUN" = "true" ]; then + echo -n "$NEW would upgrade: " + for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then + echo -n "$(pkgbase $installed_package)" + fi + done + echo + shift 1 + continue +fi +for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then + mv $installed_package ${installed_package}-upgraded-$TIMESTAMP + fi +done +for installed_script in $ROOT/var/log/scripts/$SHORT* ; do + if [ "$(package_name $installed_script)" = "$SHORT" ]; then + if [ -r $installed_script ]; then + mv $installed_script ${installed_script}-upgraded-$TIMESTAMP + fi + fi +done + +# Print a banner for the current upgrade: +cat << EOF + ++============================================================================== +| Upgrading $OLD package using $INCOMINGDIR/$NNAME ++============================================================================== + +EOF + +# Next, the new package is pre-installed: +if [ "$VERBOSE" = "verbose" ]; then + installpkg $INCOMINGDIR/$NNAME + RETCODE=$? +else + echo "Pre-installing package $NEW..." + installpkg $INCOMINGDIR/$NNAME 1> /dev/null + RETCODE=$? +fi +# Make sure that worked: +if [ ! $RETCODE = 0 ]; then + echo "ERROR: Package $INCOMINGDIR/$NNAME did not install" + echo "correctly. You may need to reinstall your old package" + echo "to avoid problems. Make sure the new package is not" + echo "corrupted." + sleep 30 + # Skip this package, but still try to proceed. Good luck... + shift 1 + continue; +fi + +# Now, the leftovers from the old package(s) can go. Pretty simple, huh? :) +if [ -d "$ROOT" ]; then + ( cd $ROOT/var/log/packages + for rempkg in *-$TIMESTAMP ; do + if [ "$VERBOSE" = "verbose" ]; then + ROOT=$ROOT removepkg $rempkg + else + ROOT=$ROOT removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:" + fi + done + ) +else + ( cd /var/log/packages + for rempkg in *-$TIMESTAMP ; do + if [ "$VERBOSE" = "verbose" ]; then + removepkg $rempkg + else + removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:" + fi + done + ) +fi +echo + +# Again! Again! +# Seriously, the reinstalling of a package can be crucial if any files +# shift location, so we should always reinstall as the final step: +if [ ! "$NOT_PARANOID" = "true" ]; then + installpkg $INCOMINGDIR/$NNAME +fi + +echo "Package $OLD upgraded with new package $INCOMINGDIR/$NNAME." +ERRCODE=0 + +# Process next parameter: +shift 1 + +done + +if [ ! "$DRY_RUN" = "true" ]; then + echo +fi +exit $ERRCODE diff --git a/source/a/pkgtools/slack-desc b/source/a/pkgtools/slack-desc new file mode 100644 index 00000000..ab3fc119 --- /dev/null +++ b/source/a/pkgtools/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------------------------------------------------------| +pkgtools: pkgtools (The Slackware package maintenance system) +pkgtools: +pkgtools: This package contains utilities for handling Slackware packages. +pkgtools: Included are the command line utilities 'installpkg', 'removepkg', +pkgtools: 'makepkg', 'explodepkg', and 'upgradepkg' that install, remove, +pkgtools: build, examine, and upgrade software packages. Also included are +pkgtools: 'pkgtool', a menu based program for installing packages, removing +pkgtools: packages, or viewing the packages that are installed on the system, +pkgtools: documentation (man pages), and a few other system admin scripts. +pkgtools: +pkgtools: diff --git a/source/a/procps/procinfo.gcc3.diff b/source/a/procps/procinfo.gcc3.diff new file mode 100644 index 00000000..96a3dbb1 --- /dev/null +++ b/source/a/procps/procinfo.gcc3.diff @@ -0,0 +1,11 @@ +--- ./routines.c.orig 2001-02-24 15:30:45.000000000 -0800 ++++ ./routines.c 2003-02-07 13:38:09.000000000 -0800 +@@ -390,7 +390,7 @@ + unsigned int d, h, m, s; + static char buf[22]; + +- t = t * 100 / HZ; ++ t = t * 100. / HZ; + d = (int) (t / 8640000); + t = t - (long) (d * 8640000); + h = (int) (t / 360000); diff --git a/source/a/procps/procinfo.lsm b/source/a/procps/procinfo.lsm new file mode 100644 index 00000000..70ff559f --- /dev/null +++ b/source/a/procps/procinfo.lsm @@ -0,0 +1,15 @@ +Begin3 +Title: procinfo +Version: 18 +Entered-date: 02MAR01 +Description: A utility to prettyprint /proc/* +Keywords: procinfo, system info +Author: svm@kozmix.cistron.nl (Sander van Malssen) +Maintained-by: svm@kozmix.cistron.nl (Sander van Malssen) +Primary-site: ftp.cistron.nl /pub/people/svm + 23k procinfo-18.tar.gz +Alternate-site: metalab.unc.edu /pub/Linux/system/status/ps +Alternate-site: tsx-11.mit.edu /pub/linux/sources/usr.bin +Platforms: Linux 1.0.x - 2.4.x +Copying-policy: GNU Public License +End diff --git a/source/a/procps/procps-3.2.7-ps-eip64.diff b/source/a/procps/procps-3.2.7-ps-eip64.diff new file mode 100644 index 00000000..9eb851f4 --- /dev/null +++ b/source/a/procps/procps-3.2.7-ps-eip64.diff @@ -0,0 +1,48 @@ +--- procps-3.2.7/ps/ps.1.eip64 2007-06-14 11:08:35.000000000 +0200 ++++ procps-3.2.7/ps/ps.1 2007-06-14 11:03:28.000000000 +0200 +@@ -1156,6 +1156,14 @@ + or\ a\ decimal representation otherwise. + T} + ++rip RIP T{ ++64-bit instruction pointer. ++T} ++ ++rsp RSP T{ ++64-bit stack pointer. ++T} ++ + rss RSS T{ + resident set size, the non\-swapped physical memory that + a task has used (in\ kiloBytes). +--- procps-3.2.7/ps/output.c.eip64 2007-06-14 11:08:24.000000000 +0200 ++++ procps-3.2.7/ps/output.c 2007-06-14 10:58:21.000000000 +0200 +@@ -764,10 +764,18 @@ + return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_esp)); + } + ++static int pr_rsp(char *restrict const outbuf, const proc_t *restrict const pp){ ++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_esp)); ++} ++ + static int pr_eip(char *restrict const outbuf, const proc_t *restrict const pp){ + return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_eip)); + } + ++static int pr_rip(char *restrict const outbuf, const proc_t *restrict const pp){ ++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_eip)); ++} ++ + /* This function helps print old-style time formats */ + static int old_time_helper(char *dst, unsigned long long t, unsigned long long rel) { + if(!t) return snprintf(dst, COLWID, " -"); +@@ -1403,7 +1411,9 @@ + {"resident", "RES", pr_nop, sr_resident, 5,MEM, LNX, PO|RIGHT}, + {"rgid", "RGID", pr_rgid, sr_rgid, 5, 0, XXX, ET|RIGHT}, + {"rgroup", "RGROUP", pr_rgroup, sr_rgroup, 8, GRP, U98, ET|USER}, /* was 8 wide */ ++{"rip", "RIP", pr_rip, sr_kstk_eip, 16, 0, LNX, TO|RIGHT}, + {"rlink", "RLINK", pr_nop, sr_nop, 8, 0, BSD, AN|RIGHT}, ++{"rsp", "RSP", pr_rsp, sr_kstk_eip, 16, 0, LNX, TO|RIGHT}, + {"rss", "RSS", pr_rss, sr_rss, 5, 0, XXX, PO|RIGHT}, /* was 5 wide */ + {"rssize", "RSS", pr_rss, sr_vm_rss, 5, 0, DEC, PO|RIGHT}, /*rsz*/ + {"rsz", "RSZ", pr_rss, sr_vm_rss, 5, 0, BSD, PO|RIGHT}, /*rssize*/ diff --git a/source/a/procps/procps.SlackBuild b/source/a/procps/procps.SlackBuild new file mode 100755 index 00000000..a5163bbc --- /dev/null +++ b/source/a/procps/procps.SlackBuild @@ -0,0 +1,191 @@ +#!/bin/sh + +# Copyright 2005-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=3.2.7 +# Sometimes this number lags behind... +SOVER=3.2.7 +PSMISCVER=22.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-procps + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$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 + +# Prepare build locations: +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf procps-$VERSION +tar xzvf $CWD/procps-$VERSION.tar.gz +cd procps-$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 {} \; + +mkdir -p $PKG/usr/doc/procps-$VERSION +cp -a BUGS COPYING COPYING.LIB NEWS TODO $PKG/usr/doc/procps-$VERSION +chown root:root $PKG/usr/doc/procps-$VERSION/* +chmod 644 $PKG/usr/doc/procps-$VERSION/* +# While I don't agree this is a harmful patch, I will defer to the +# maintainer's judgement on this one. Besides, I quit using the '-' +# with ps years ago. It wasn't that hard to change. +#echo zcat $CWD/procps.nowarning.diff.gz +#zcat $CWD/procps.nowarning.diff.gz | patch -p1 --verbose || exit 1 + +# Display the location from which the user is logged in by default. +# This is how previous versions of 'w' in Slackware have always +# defaulted. +echo zcat $CWD/procps.w.showfrom.diff.gz +zcat $CWD/procps.w.showfrom.diff.gz | patch -p1 --verbose || exit 1 + +if [ "$ARCH" = "x86_64" ]; then +# Taken from RedHat: ps truncates eip and esp to 32bit values on 64bit systems. +# The patch adds 64bit rip and rsp to the 'ps' output options on x86_64 + zcat $CWD/procps-3.2.7-ps-eip64.diff.gz | patch -p1 --verbose || exit 1 +fi + +make OPT="$SLKCFLAGS" +mkdir -p $PKG/lib${LIBDIRSUFFIX} $PKG/bin $PKG/sbin $PKG/usr/bin +cat free > $PKG/bin/free +cat ps/ps> $PKG/bin/ps +cat proc/libproc-${SOVER}.so > $PKG/lib${LIBDIRSUFFIX}/libproc-${SOVER}.so +cat pkill > $PKG/usr/bin/pkill +cat skill > $PKG/usr/bin/skill +cat pmap > $PKG/usr/bin/pmap +cat slabtop > $PKG/usr/bin/slabtop +cat sysctl > $PKG/sbin/sysctl +cat tload > $PKG/usr/bin/tload +cat top > $PKG/usr/bin/top +cat uptime > $PKG/usr/bin/uptime +cat vmstat > $PKG/usr/bin/vmstat +cat w > $PKG/usr/bin/w +cat watch > $PKG/usr/bin/watch +( cd $PKG/usr/bin + ln -sf pkill pgrep + ln -sf skill snice + # Just in case + ln -sf /bin/free . + ln -sf /bin/ps . +) +cp -a ps/ps.1 . +mkdir -p $PKG/usr/man/man1 +for page in free.1 pgrep.1 pkill.1 ps.1 slabtop.1 skill.1 snice.1 tload.1 top.1 uptime.1 w.1 watch.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +mkdir -p $PKG/usr/man/man5 +cat sysctl.conf.5 | gzip -9c > $PKG/usr/man/man5/sysctl.conf.5.gz +mkdir -p $PKG/usr/man/man8 +for page in vmstat.8 sysctl.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done + +echo "+=============+" +echo "| psmisc-$PSMISCVER |" +echo "+=============+" +cd $TMP +rm -rf psmisc-$PSMISCVER +tar xzvf $CWD/psmisc-$PSMISCVER.tar.gz +cd psmisc-$PSMISCVER +# Maybe we'll turn on NLS when it supports more than +# just US English. :) +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-nls +mkdir -p $PKG/usr/doc/psmisc-$PSMISCVER +cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README $PKG/usr/doc/psmisc-$PSMISCVER +chmod 644 $PKG/usr/doc/psmisc-$PSMISCVER/* +chown root:root $PKG/usr/doc/psmisc-$PSMISCVER/* +make +cd src +strip fuser pstree killall +cat fuser > $PKG/usr/bin/fuser +cat pstree > $PKG/usr/bin/pstree +cat killall > $PKG/bin/killall +cd ../doc +for page in fuser.1 killall.1 pstree.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cd .. + +echo "+=============+" +echo "| procinfo-18 |" +echo "+=============+" +cd $TMP +rm -rf procinfo-18 +tar xzvf $CWD/procinfo-18.tar.gz +cd procinfo-18 +zcat $CWD/procinfo.gcc3.diff.gz | patch -p1 --backup --suffix=.orig --verbose || exit 1 +mkdir -p $PKG/usr/doc/procinfo-18 +cp -a CHANGES README $PKG/usr/doc/procinfo-18 +chmod 644 $PKG/usr/doc/procinfo-18/* +chown root:root $PKG/usr/doc/procinfo-18/* +make CFLAGS="$SLKCFLAGS" +strip procinfo +cat procinfo > $PKG/usr/bin/procinfo +cat lsdev.pl > $PKG/usr/bin/lsdev +cat socklist.pl > $PKG/usr/bin/socklist +for page in procinfo.8 lsdev.8 socklist.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done + +# Fix permissions: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* $PKG/bin/* $PKG/sbin/* $PKG/usr/bin/* +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/procps-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/procps-$VERSION + rm -rf $TMP/procinfo-18 + rm -rf $TMP/psmisc-$PSMISCVER + rm -rf $PKG +fi diff --git a/source/a/procps/procps.nowarning.diff b/source/a/procps/procps.nowarning.diff new file mode 100644 index 00000000..bd4b1466 --- /dev/null +++ b/source/a/procps/procps.nowarning.diff @@ -0,0 +1,25 @@ +--- ./ps/parser.c.orig 2004-08-09 17:41:10.000000000 -0700 ++++ ./ps/parser.c 2004-08-16 18:30:09.000000000 -0700 +@@ -1213,12 +1213,20 @@ + // about "ps -aux" suddenly changing behavior if a user "x" were + // added to the system. + // ++ // Yes, this is still getting patched out here. IMO, people can change ++ // old habits if and when user 'x' comes along. I still find this warning ++ // to be a POLA violation. No offense... that's the beauty of open source. ++ // You've got your ideas about this, and I have mine, and we're allowed ++ // to disagree. Nothing in the UNIX or POSIX standards requires this (annoying) ++ // warning to be displayed, and we're not changing the actual behavior ++ // of ps in any way. I know of no other 'ps' that produces this message. ++ // + // Also, a "-x" option is coming. It's already there in fact, + // for some non-default personalities. So "ps -ax" will parse + // as SysV options... and you're screwed if you've been patching + // out the friendly warning. Cut-over is likely to be in 2005. +- if(!(personality & PER_FORCE_BSD)) +- fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n"); ++ // if(!(personality & PER_FORCE_BSD)) ++ // fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n"); + // Remember: contact albert@users.sf.net or procps-feedback@lists.sf.net + // if you should feel tempted. Be damn sure you understand all + // the issues. The same goes for other stuff too, BTW. Please ask. diff --git a/source/a/procps/procps.w.showfrom.diff b/source/a/procps/procps.w.showfrom.diff new file mode 100644 index 00000000..0b1c71a3 --- /dev/null +++ b/source/a/procps/procps.w.showfrom.diff @@ -0,0 +1,11 @@ +--- ./w.c.orig 2002-12-21 05:30:33.000000000 -0800 ++++ ./w.c 2003-02-02 11:46:58.000000000 -0800 +@@ -33,6 +33,8 @@ + + typedef struct utmp utmp_t; + ++#define W_SHOWFROM 1 ++ + #ifdef W_SHOWFROM + # define FROM_STRING "on" + #else diff --git a/source/a/procps/slack-desc b/source/a/procps/slack-desc new file mode 100644 index 00000000..22cf9e0d --- /dev/null +++ b/source/a/procps/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------------------------------------------------------| +procps: procps (utilities for displaying process information) +procps: +procps: The procps package provides the classic set of utilities used to +procps: display information about the processes currently running on the +procps: machine. +procps: +procps: +procps: +procps: +procps: +procps: diff --git a/source/a/quota/quota.SlackBuild b/source/a/quota/quota.SlackBuild new file mode 100755 index 00000000..0ae450b9 --- /dev/null +++ b/source/a/quota/quota.SlackBuild @@ -0,0 +1,108 @@ +#!/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=3.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-quota + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf quota-tools +tar xvf $CWD/quota-$VERSION.tar.?z* +cd quota-tools +chown -R root:root . +find . -perm 2755 -exec chmod 755 {} \; +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make +make mo +mkdir -p $PKG/sbin +cat convertquota > $PKG/sbin/convertquota +cat quotacheck > $PKG/sbin/quotacheck +cat quotaon > $PKG/sbin/quotaon +( cd $PKG/sbin ; ln -sf quotaon quotaoff ) +chmod 755 $PKG/sbin/* +mkdir -p $PKG/usr/sbin +for file in edquota repquota warnquota quotastats setquota quot xqmstats rpc.rquotad ; do + cat $file > $PKG/usr/sbin/$file +done +chmod 755 $PKG/usr/sbin/* +mkdir -p $PKG/usr/bin +cat quota > $PKG/usr/bin/quota +chmod 755 $PKG/usr/bin/quota +mkdir -p $PKG/usr/include/rpcsvc +cat rquota.h > $PKG/usr/include/rpcsvc/rquota.h +cat rquota.x > $PKG/usr/include/rpcsvc/rquota.x +mkdir -p $PKG/etc +cat warnquota.conf > $PKG/etc/warnquota.conf-sample +cat quotatab > $PKG/etc/quotatab-sample +cat quotagrpadmins > $PKG/etc/quotagrpadmins-sample +mkdir -p $PKG/usr/man/man{1,2,3,8} +for page in *.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +for page in *.2 ; do + cat $page | gzip -9c > $PKG/usr/man/man2/$page.gz +done +for page in *.3 ; do + cat $page | gzip -9c > $PKG/usr/man/man3/$page.gz +done +for page in *.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +mkdir -p $PKG/usr/share/locale/pl/LC_MESSAGES +cat po/pl.mo > $PKG/usr/share/locale/pl/LC_MESSAGES/quota.mo +mkdir -p $PKG/usr/doc/quota-$VERSION +cp -a Changelog README* $PKG/usr/doc/quota-$VERSION +( cd doc + sgml2txt quotadoc.sgml + sgml2html -s 0 quotadoc.sgml + if [ ! -r quotadoc.html ]; then + echo "WARNING: no quotadoc.html generated" + sleep 100 + fi + cp quotadoc*txt quotadoc*html $PKG/usr/doc/quota-$VERSION/ ) +find $PKG/usr/doc/quota-$VERSION -name CVS -type d | xargs rm -rf +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/quota-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/quota + rm -rf $PKG +fi diff --git a/source/a/quota/slack-desc b/source/a/quota/slack-desc new file mode 100644 index 00000000..dd07ea43 --- /dev/null +++ b/source/a/quota/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------------------------------------------------------| +quota: quota (Linux disk quota utilities) +quota: +quota: An implementation of the diskquota system for the Linux operating +quota: system to keep those greedy users from gobbling up 100% of the hard +quota: drive space. Works with ext2, ext3, reiserfs, and xfs filesystems. +quota: This system is based on the Melbourne quota system by Robert Elz. +quota: Edvard Tuinder and Marco van Wieringen ported this code to Linux. +quota: Jan Kara added support for the new Linux quota format and the XFS +quota: filesystem. +quota: +quota: diff --git a/source/a/reiserfsprogs/reiserfsprogs.SlackBuild b/source/a/reiserfsprogs/reiserfsprogs.SlackBuild new file mode 100755 index 00000000..c56d8f13 --- /dev/null +++ b/source/a/reiserfsprogs/reiserfsprogs.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=3.6.21 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-reiserfs + +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 reiserfsprogs-$VERSION +tar xvf $CWD/reiserfsprogs-$VERSION.tar.?z* || exit 1 +cd reiserfsprogs-$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 \ + --sbindir=/sbin \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +if [ "$ARCH" = "x86_64" ]; then + # To prevent compilation errors due to broken header: + sed -i -e 's?#define HAVE_ASM_UNALIGNED_H 1?/* & */?' config.h +fi + +make $NUMJOBS || make || exit1 +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 + +# Add a couple of useful symlinks +( cd $PKG/sbin + ln -sf mkreiserfs mkfs.reiserfs + ln -sf reiserfsck fsck.reiserfs +) + +# These were renamed, it seems +# --> Deleting /usr/man/man8/debugreiserfs.8.gz +# --> Deleting /usr/man/man8/mkreiserfs.8.gz +# --> Deleting /usr/man/man8/reiserfsck.8.gz +# --> Deleting /usr/man/man8/reiserfstune.8.gz +# --> Deleting /usr/man/man8/resize_reiserfs.8.gz +# Do we want symlinks for backwards compatibility? If so... +( cd $PKG/usr/man/man8 + ln -s mkfs.reiserfs.8 mkreiserfs.8 + ln -s debugfs.reiserfs.8 debugreiserfs.8 + ln -s fsck.reiserfs.8 reiserfsck.8 + ln -s tunefs.reiserfs.8 reiserfstune.8 + ln -s resizefs.reiserfs.8 resize_reiserfs.8 +) + +# Compress the 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/usr/doc/reiserfsprogs-$VERSION +cp -a \ + AUTHORS COPYING* CREDITS INSTALL NEWS README* \ + $PKG/usr/doc/reiserfsprogs-$VERSION +chmod 644 $PKG/usr/doc/reiserfsprogs-$VERSION/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/reiserfsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/reiserfsprogs/slack-desc b/source/a/reiserfsprogs/slack-desc new file mode 100644 index 00000000..3358fdf7 --- /dev/null +++ b/source/a/reiserfsprogs/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------------------------------------------------------| +reiserfsprogs: reiserfsprogs (Reiserfs filesystem utilities) +reiserfsprogs: +reiserfsprogs: These utilities are used for Reiserfs. Reiserfs is a file system +reiserfsprogs: based on balanced tree algorithms. Learn more at the home site: +reiserfsprogs: http://www.namesys.com +reiserfsprogs: +reiserfsprogs: Reiserfs is the work of Hans Reiser and many others. See the file +reiserfsprogs: /usr/doc/reiserfs*/README for full credits. +reiserfsprogs: +reiserfsprogs: +reiserfsprogs: diff --git a/source/a/rpm2tgz/rpm2targz b/source/a/rpm2tgz/rpm2targz new file mode 100644 index 00000000..484e5ad0 --- /dev/null +++ b/source/a/rpm2tgz/rpm2targz @@ -0,0 +1,129 @@ +#!/bin/sh +# Copyright 1997, 1998 Patrick Volkerding, Moorhead, MN USA +# Copyright 2002, 2004 Slackware Linux, Inc., Concord, CA USA +# Copyright 2006, 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. +# + +if [ "$1" = "" ]; then + echo "$0: Converts RPM format to standard GNU tar + GNU zip format." + echo " (view converted packages with \"less\", install and remove" + echo " with \"installpkg\", \"removepkg\", \"pkgtool\", or manually" + echo " with \"tar\")" + echo + echo "Usage: $0 <file.rpm>" + if [ "$(basename $0)" = "rpm2tgz" ]; then + echo " (Outputs \"file.tgz\")" + else + echo " (Outputs \"file.tar.gz\")" + fi + exit 1; +fi + +CWD=$(pwd) + +# Create a new temporary directory with a secure filename: +make_temp_dir() { + if [ -x "$(which mcookie)" ]; then + tempd=/tmp/tmp.$(mcookie) + mkdir -p -m 0755 $tempd + elif [ -x "$(which openssl)" ]; then + tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5) + mkdir -p -m 0755 $tempd + elif [ -x "$(which md5)" ]; then + tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5) + mkdir -p -m 0755 $tempd + elif [ -x "$(which mktemp)" ]; then + tempd=$(mktemp -d) + chmod 755 $tempd + ## Uncomment for insecure use, but don't blame me: + #else + # tempd=/tmp/tmp.$$ + # mkdir -p -m 0755 $tempd + fi + if [ -d $tempd ]; then # success, return the name of the directory: + echo $tempd + else + echo "ERROR: Could not find mcookie, openssl, or md5." + echo " Exiting since a secure temporary directory could not be made." + exit 1 + fi +} + +for i in $* ; do + + # Determine if this is a source or binary RPM. + # If we have getrpmtype, use that. Otherwise, try "file". + if which getrpmtype 1> /dev/null 2> /dev/null; then + if getrpmtype -n $i | grep source 1> /dev/null 2> /dev/null ; then + isSource=1 + else + isSource=0 + fi + else # use file. This works fine on Slackware, and is the default. + if file $i | grep RPM | grep " src " 1> /dev/null 2> /dev/null ; then + isSource=1 + else + isSource=0 + fi + fi + + # Create a temporary directory: + TMPDIR=$(make_temp_dir) + + # Extract the RPM: + ofn=$TMPDIR/$(basename $i .rpm).cpio + if which rpm2cpio 1> /dev/null 2> /dev/null ; then + rpm2cpio $i > $ofn 2> /dev/null + if [ ! $? = 0 ]; then + echo "ERROR: rpm2cpio failed. (maybe $i is not an RPM?)" + rm -rf $TMPDIR + continue + fi + else # less reliable than rpm2cpio... + ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | gzip -dc > $ofn 2>/dev/null ) || \ + ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | bzip2 -dc > $ofn 2>/dev/null ) + fi + DEST=$TMPDIR + if [ "$isSource" = "1" ]; then + DEST=$DEST/$(basename $(basename $i .rpm) .src) + fi + mkdir -p $DEST + ( cd $DEST + cpio -i -m -d < $ofn 1> /dev/null 2> /dev/null + rm -f $ofn + find . -type d -perm 700 -exec chmod 755 {} \; + ) + + # If this program was called as "rpm2targz", then repack as a plain + # tar+gz archive. If it was called as "rpm2tgz", use Slackware's + # makepkg to produce the .tgz: + if [ "$(basename $0)" = "rpm2tgz" ]; then + ( cd $TMPDIR ; makepkg -l y -c n $CWD/$(basename $i .rpm).tgz ) + else + ( cd $TMPDIR ; tar cf - . ) > $(basename $i .rpm).tar + gzip -9 $(basename $i .rpm).tar + fi + + # Remove temporary directory: + rm -rf $TMPDIR + +done + diff --git a/source/a/rpm2tgz/rpm2targz.README b/source/a/rpm2tgz/rpm2targz.README new file mode 100644 index 00000000..2ce141c0 --- /dev/null +++ b/source/a/rpm2tgz/rpm2targz.README @@ -0,0 +1,18 @@ + +This package contains 'rpm2targz', a simple utility to convert Red Hat-style +RPM packages into standard tar.gz archives. Converted binary packages can then +be installed/removed using the 'installpkg/removepkg' commands, or 'pkgtool'. + +It's advisable to at least examine the converted package with 'less' to make +sure it won't do anything too crazy to your system. If it does, Patrick +Volkerding and David Cantrell are not responsible, so use this at your own +risk. :-) + +By default, rpm2targz will attempt to use "file" to detect source RPMS, and will +put the contents into a subdirectory in the resulting package. This may not be +portable to other operating systems -- if you're trying to run rpm2targz on an +OS that doesn't have a file that knows RPM types, and you care about this source +RPM feature, you can compile and install David Cantrell's standalone getrpmtype +utility. The getrpmtype.tar.gz source archive can be found in Slackware's +source tree in source/a/rpm2tgz/. + diff --git a/source/a/rpm2tgz/rpm2tgz.SlackBuild b/source/a/rpm2tgz/rpm2tgz.SlackBuild new file mode 100755 index 00000000..abfe3298 --- /dev/null +++ b/source/a/rpm2tgz/rpm2tgz.SlackBuild @@ -0,0 +1,58 @@ +#!/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.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bin + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+===========+" +echo "| rpm2targz |" +echo "+===========+" +cd $TMP +mkdir -p $PKG/usr/bin +cc -o $PKG/usr/bin/rpmoffset $CWD/rpmoffset.c +cat $CWD/rpm2targz > $PKG/usr/bin/rpm2targz +chmod 755 $PKG/usr/bin/{rpmoffset,rpm2targz} +( cd $PKG/usr/bin ; ln -sf rpm2targz rpm2tgz ) +mkdir -p $PKG/usr/doc/rpm2targz +cp -a $CWD/rpm2targz.README $PKG/usr/doc/rpm2targz/rpm2targz.README +chown root:root $PKG/usr/doc/rpm2targz/rpm2targz.README +chmod 644 $PKG/usr/doc/rpm2targz/rpm2targz.README +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/rpm2tgz-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/rpm2tgz/rpmoffset.c b/source/a/rpm2tgz/rpmoffset.c new file mode 100644 index 00000000..57af397c --- /dev/null +++ b/source/a/rpm2tgz/rpmoffset.c @@ -0,0 +1,24 @@ + +/* Find how deeply inside an .RPM the real data is */ +/* kept, and report the offset in bytes */ + +/* Wouldn't it be a lot more sane if we could just untar these things? */ + +#include <stdlib.h> + +/* These offsets keep getting bigger, so we're going to just bite a 2MB */ +/* chunk of RAM right away so that we have enough. Yeah, horrible */ +/* quick and dirty implementation, but hey -- it gets the job done. */ + +#define RPMBUFSIZ 2097152 + +main() +{ + char *buff = malloc(RPMBUFSIZ),*eb,*p; + for (p = buff, eb = buff + read(0,buff,RPMBUFSIZ); p < eb; p++) + if ((*p == '\037' && p[1] == '\213' && p[2] == '\010') || + (*p == 'B' && p[1] == 'Z' && p[2] == 'h' && '1' <= p[3] && p[3] <= '9' )) + printf("%d\n",p - buff), + exit(0); + exit(1); +} diff --git a/source/a/rpm2tgz/slack-desc b/source/a/rpm2tgz/slack-desc new file mode 100644 index 00000000..8f8861b5 --- /dev/null +++ b/source/a/rpm2tgz/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------------------------------------------------------| +rpm2tgz: rpm2tgz (a tool for converting an RPM archive into a tar+gz one) +rpm2tgz: +rpm2tgz: Converts RPM format to Slackware's GNU tar + GNU zip format. (view +rpm2tgz: converted packages with "less", install and remove with "installpkg", +rpm2tgz: "removepkg", "pkgtool", or manually with "tar"). +rpm2tgz: +rpm2tgz: Converted packages come with no warranty. ;-) +rpm2tgz: +rpm2tgz: +rpm2tgz: +rpm2tgz: diff --git a/source/a/sdparm/sdparm.SlackBuild b/source/a/sdparm/sdparm.SlackBuild new file mode 100755 index 00000000..e00a9356 --- /dev/null +++ b/source/a/sdparm/sdparm.SlackBuild @@ -0,0 +1,107 @@ +#!/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=sdparm +VERSION=${VERSION:-1.01} +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" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $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 {} \; + +# Use --bindir=/usr/sbin, as that's where hdparm has always been... + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/usr/sbin \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || 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 CREDITS INSTALL NEWS README notes.txt \ + doc/sdparm.html \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +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/a/sdparm/slack-desc b/source/a/sdparm/slack-desc new file mode 100644 index 00000000..497c4d9e --- /dev/null +++ b/source/a/sdparm/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------------------------------------------------------| +sdparm: sdparm (fetch and change SCSI attributes) +sdparm: +sdparm: sdparm is a utility for listing and potentially changing SCSI disk +sdparm: parameters. More generally it can be used on any device that uses +sdparm: a SCSI command set. Apart from SCSI disks, examples of devices that +sdparm: use SCSI command sets are ATAPI CD/DVD drives, SCSI and ATAPI tape +sdparm: drives and SCSI enclosures. +sdparm: +sdparm: sdparm was written by Douglas Gilbert. +sdparm: +sdparm: diff --git a/source/a/sed/sed.SlackBuild b/source/a/sed/sed.SlackBuild new file mode 100755 index 00000000..8dedfc4b --- /dev/null +++ b/source/a/sed/sed.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2005-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.1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sed + +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 + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf sed-$VERSION +tar xzvf $CWD/sed-$VERSION.tar.gz +cd sed-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make -j5 +make install DESTDIR=$PKG +mkdir -p $PKG/bin +mv $PKG/usr/bin/sed $PKG/bin +( cd $PKG/usr/bin ; ln -sf /bin/sed . ) +( 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/usr/doc/sed-$VERSION +cp -a \ + ANNOUNCE AUTHORS BUGS COPYING* INSTALL NEWS README README.boot THANKS TODO \ + $PKG/usr/doc/sed-$VERSION +gzip -9 $PKG/usr/man/man?/*.? +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sed/slack-desc b/source/a/sed/slack-desc new file mode 100644 index 00000000..46e3ef35 --- /dev/null +++ b/source/a/sed/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------------------------------------------------------| +sed: sed (stream editor) +sed: +sed: This is the GNU version of sed, a stream editor. A stream editor is +sed: used to perform basic text transformations on an input stream (a file +sed: or input from a pipeline). It is sed's ability to filter text in a +sed: pipeline which distinguishes it from other types of editors. +sed: +sed: sed is a required package (it is needed by many system scripts). +sed: +sed: +sed: diff --git a/source/a/shadow/adduser b/source/a/shadow/adduser new file mode 100644 index 00000000..02385e33 --- /dev/null +++ b/source/a/shadow/adduser @@ -0,0 +1,437 @@ +#!/bin/bash +# +# Copyright 1995 Hrvoje Dogan, Croatia. +# Copyright 2002, 2003, 2004, 2008, 2009 Stuart Winter, Surrey, England, UK. +# Copyright 2004, 2008, 2009 Slackware Linux, Inc., Concord, CA, 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. +# +# +########################################################################## +# Program: /usr/sbin/adduser +# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux +# Author : Stuart Winter <mozes@slackware.com> +# Based on the original Slackware adduser by Hrvoje Dogan +# with modifications by Patrick Volkerding +# Version: 1.12 +########################################################################## +# Usage..: adduser [<new_user_name>] +########################################################################## +# History # +########### +# v1.12 - 21/07/09 +# * Adjusted the search of /etc/passwd to exclude the NIS inclusion +# string. Thanks to Dominik L. Borkowski. +# v1.11 - 04/06/09 +# * Add power and netdev to the suggested group list +# v1.10 - 24/03/08 +# * To facilitate use of the automatic mounting features of HAL, +# allow the admin to easily add users to the default groups: +# audio,cdrom,video,plugdev,floppy. +# The default is not to add new users to these groups. +# And by the way, this script is "useradd from Slackware" not +# "superadduser from Gentoo" ;-) +# v1.09 - 07/06/04 +# * Added standard Slackware script licence to the head of this file. +# v1.08 - 25/04/04 +# * Disallow user names that begin with a numeric because useradd +# (from shadow v4.03) does not allow them. <sw> +# v1.07 - 07/03/03 +# * When supplying a null string for the uid (meaning 'Choose next available'), +# if there were file names in the range 'a-z' in the pwd then the +# egrep command considered these files rather than the null string. +# The egrep expression is now in quotes. +# Reported & fixed by Vadim O. Ustiansky <sw> +# v1.06 - 31/03/03 +# * Ask to chown user.group the home directory if it already exists. +# This helps reduce later confusion when adding users whose home dir +# already exists (mounted partition for example) and is owned +# by a user other than the user to which the directory is being +# assigned as home. Default is not to chown. +# Brought to my attention by mRgOBLIN. <sw> +# v1.05 - 04/01/03 +# * Advise & prevent users from creating logins with '.' characters +# in the user name. <sw> +# * Made pending account creation info look neater <sw> +# v1.04 - 09/06/02 +# * Catered for shadow-4.0.3's 'useradd' binary that no longer +# will let you create a user that has any uppercase chars in it +# This was reported on the userlocal.org forums +# by 'xcp' - thanks. <sw,pjv> +# v1.03 - 20/05/02 +# * Support 'broken' (null lines in) /etc/passwd and +# /etc/group files <sw> +# * For recycling UIDs (default still 'off'), we now look in +# /etc/login.defs for the UID_MIN value and use it +# If not found then default to 1000 <sw> +# v1.02 - 10/04/02 +# * Fix user-specified UID bug. <pjv> +# v1.01 - 23/03/02 +# * Match Slackware indenting style, simplify. <pjv> +# v1.00 - 22/03/02 +# * Created +####################################################################### + +# Path to files +pfile=/etc/passwd +gfile=/etc/group +sfile=/etc/shells + +# Paths to binaries +useradd=/usr/sbin/useradd +chfn=/usr/bin/chfn +passwd=/usr/bin/passwd +chmod=/bin/chmod + +# Defaults +defhome=/home +defshell=/bin/bash +defchmod=711 # home dir permissions - may be preferable to use 701, however. +defgroup=users +AGID="audio cdrom floppy plugdev video power netdev" # additional groups for desktop users + +# Determine what the minimum UID is (for UID recycling) +# (we ignore it if it's not at the beginning of the line (i.e. commented out with #)) +export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)" +# If we couldn't find it, set it to the default of 1000 +if [ -z "$recycleUIDMIN" ]; then + export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs +fi + + +# This setting enables the 'recycling' of older unused UIDs. +# When you userdel a user, it removes it from passwd and shadow but it will +# never get used again unless you specify it expliticly -- useradd (appears to) just +# look at the last line in passwd and increment the uid. I like the idea of +# recycling uids but you may have very good reasons not to (old forgotten +# confidential files still on the system could then be owned by this new user). +# We'll set this to no because this is what the original adduser shell script +# did and it's what users expect. +recycleuids=no + +# Function to read keyboard input. +# bash1 is broken (even ash will take read -ep!), so we work around +# it (even though bash1 is no longer supported on Slackware). +function get_input() { + local output + if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then + echo -n "${1} " >&2 # fudge for use with bash v1 + read output + else # this should work with any other /bin/sh + read -ep "${1} " output + fi + echo $output +} + +# Function to display the account info +function display () { + local goose + goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs + echo -n "$1 " + # If it's null then display the 'other' information + if [ -z "$goose" -a ! -z "$3" ]; then + echo "$3" + else + echo "$goose" + fi +} + +# Function to check whether groups exist in the /etc/group file +function check_group () { + local got_error group + if [ ! -z "$@" ]; then + for group in $@ ; do + local uid_not_named="" uid_not_num="" + grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes + grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes + if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then + echo "- Group '$group' does not exist" + got_error=yes + fi + done + fi + # Return exit code of 1 if at least one of the groups didn't exist + if [ ! -z "$got_error" ]; then + return 1 + fi +} + +#: Read the login name for the new user :# +# +# Remember that most Mail Transfer Agents are case independant, so having +# 'uSer' and 'user' may cause confusion/things to break. Because of this, +# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase, +# and we must reject them, too. + +# Set the login variable to the command line param +echo +LOGIN="$1" +needinput=yes +while [ ! -z $needinput ]; do + if [ -z "$LOGIN" ]; then + while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done + fi + grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used + if [ $? -eq 0 ]; then + echo "- User '$LOGIN' already exists; please choose another" + unset LOGIN + elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then + echo "- User names cannot begin with a number; please choose another" + unset LOGIN + elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase + echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another" + unset LOGIN + elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then + echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another" + unset LOGIN + else + unset needinput + fi +done + +# Display the user name passed from the shell if it hasn't changed +if [ "$1" = "$LOGIN" ]; then + echo "Login name for new user: $LOGIN" +fi + +#: Get the UID for the user & ensure it's not already in use :# +# +# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because +# when you change password for the uid, it finds the first match in /etc/passwd +# which isn't necessarily the correct user +# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")" + egrep -v "^$|^\+" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "- That UID is already in use; please choose another" + elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then + echo "- UIDs are numerics only" + else + unset needinput + fi +done +# If we were given a UID, then syntax up the variable to pass to useradd +if [ ! -z "$_UID" ]; then + U_ID="-u ${_UID}" +else + # Will we be recycling UIDs? + if [ "$recycleuids" = "yes" ]; then + U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)" + fi +fi + +#: Get the initial group for the user & ensure it exists :# +# +# We check /etc/group for both the text version and the group ID number +echo +needinput=yes +while [ ! -z "$needinput" ]; do + GID="$(get_input "Initial group [ ${defgroup} ]:")" + check_group "$GID" + if [ $? -gt 0 ]; then + echo "- Please choose another" + else + unset needinput + fi +done +# Syntax the variable ready for useradd +if [ -z "$GID" ]; then + GID="-g ${defgroup}" +else + GID="-g ${GID}" +fi + +#: Get additional groups for the user :# +# +echo "Additional UNIX groups:" +echo +echo "Users can belong to additional UNIX groups on the system." +echo "For local users using graphical desktop login managers such" +echo "as XDM/KDM, users may need to be members of additional groups" +echo "to access the full functionality of removable media devices." +echo +echo "* Security implications *" +echo "Please be aware that by adding users to additional groups may" +echo "potentially give access to the removable media of other users." +echo +echo "If you are creating a new user for remote shell access only," +echo "users do not need to belong to any additional groups as standard," +echo "so you may press ENTER at the next prompt." +echo +needinput=yes +while [ ! -z "$needinput" ]; do + history -c + history -s "$AGID" + echo "Press ENTER to continue without adding any additional groups" + echo "Or press the UP arrow to add/select/edit additional groups" + AGID="$(get_input ": " | tr -d '[:punct:]' | tr -s ' ' | sed 's?^ $??g' )" + if [ ! -z "$AGID" ]; then + check_group "$AGID" # check all groups at once (treated as N # of params) + if [ $? -gt 0 ]; then + echo "- Please re-enter the group(s)" + echo + else + unset needinput # we found all groups specified + AGID="-G $(echo $AGID | tr ' ' ,)" # useradd takes comma delimited groups + fi + else + unset needinput # we don't *have* to have additional groups + fi +done + +#: Get the new user's home dir :# +# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")" + if [ -z "$HME" ]; then + HME="${defhome}/${LOGIN}" + fi + # Warn the user if the home dir already exists + if [ -d "$HME" ]; then + echo "- Warning: '$HME' already exists !" + getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")" + if [ "$(echo $getyn | grep -i "n")" ]; then + unset needinput + # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME + getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")" + if [ "$(echo $getyn | grep -i "y")" ]; then + CHOWNHOMEDIR=$HME # set this to the home directory + fi + fi + else + unset needinput + fi +done +HME="-d ${HME}" + +#: Get the new user's shell :# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + unset got_error + SHL="$(get_input "Shell [ ${defshell} ]")" + if [ -z "$SHL" ]; then + SHL="${defshell}" + fi + # Warn the user if the shell doesn't exist in /etc/shells or as a file + if [ -z "$(grep "^${SHL}$" $sfile)" ]; then + echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)" + got_error=yes + fi + if [ ! -f "$SHL" ]; then + echo "- Warning: ${SHL} does not exist as a file" + got_error=yes + fi + if [ ! -z "$got_error" ]; then + getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")" + if [ "$(echo $getyn | grep -i "n")" ]; then + unset needinput + fi + else + unset needinput + fi +done +SHL="-s ${SHL}" + +#: Get the expiry date :# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")" + if [ ! -z "$EXP" ]; then + # Check to see whether the expiry date is in the valid format + if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then + echo "- That is not a valid expiration date" + else + unset needinput + EXP="-e ${EXP}" + fi + else + unset needinput + fi +done + +# Display the info about the new impending account +echo +echo "New account will be created as follows:" +echo +echo "---------------------------------------" +display "Login name.......: " "$LOGIN" +display "UID..............: " "$_UID" "[ Next available ]" +display "Initial group....: " "$GID" +display "Additional groups: " "$AGID" "[ None ]" +display "Home directory...: " "$HME" +display "Shell............: " "$SHL" +display "Expiry date......: " "$EXP" "[ Never ]" +echo + +echo "This is it... if you want to bail out, hit Control-C. Otherwise, press" +echo "ENTER to go ahead and make the account." +read junk + +echo +echo "Creating new account..." +echo +echo + +# Add the account to the system +CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN"" +$CMD + +if [ $? -gt 0 ]; then + echo "- Error running useradd command -- account not created!" + echo "(cmd: $CMD)" + exit 1 +fi + +# chown the home dir ? We can only do this once the useradd has +# completed otherwise the user name doesn't exist. +if [ ! -z "${CHOWNHOMEDIR}" ]; then + chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}" +fi + +# Set the finger information +$chfn "$LOGIN" +if [ $? -gt 0 ]; then + echo "- Warning: an error occurred while setting finger information" +fi + +# Set a password +$passwd "$LOGIN" +if [ $? -gt 0 ]; then + echo "* WARNING: An error occured while setting the password for" + echo " this account. Please manually investigate this *" + exit 1 +fi + +# If it was created (it should have been!), set the permissions for that user's dir +HME="$(echo "$HME" | awk '{print $2}')" # We have to remove the -g prefix +if [ -d "$HME" ]; then + $chmod $defchmod "$HME" +fi + +echo +echo +echo "Account setup complete." +exit 0 diff --git a/source/a/shadow/shadow-4.0.3.x86_64.diff b/source/a/shadow/shadow-4.0.3.x86_64.diff new file mode 100644 index 00000000..15d16c7c --- /dev/null +++ b/source/a/shadow/shadow-4.0.3.x86_64.diff @@ -0,0 +1,166 @@ +--- shadow-4.0.3/libmisc/failure.h.orig 2004-01-02 18:47:01.000000000 -0800 ++++ shadow-4.0.3/libmisc/failure.h 2004-01-02 18:52:38.000000000 -0800 +@@ -4,7 +4,12 @@ + + #include "defines.h" + #include "faillog.h" ++ ++#if HAVE_UTMPX_H ++#include <utmpx.h> ++#else + #include <utmp.h> ++#endif + + /* + * failure - make failure entry +@@ -38,7 +43,11 @@ + * failtmp updates the (struct utmp) formatted failure log which + * maintains a record of all login failures. + */ ++#if HAVE_UTMPX_H ++extern void failtmp(const struct utmpx *); ++#else + extern void failtmp(const struct utmp *); ++#endif + + #endif + +--- shadow-4.0.3/libmisc/failure.c.orig 2004-01-02 18:47:06.000000000 -0800 ++++ shadow-4.0.3/libmisc/failure.c 2004-01-02 18:53:37.000000000 -0800 +@@ -39,7 +39,11 @@ + #include "getdef.h" + #include "failure.h" + ++#if HAVE_UTMPX_H ++#include <utmpx.h> ++#else + #include <utmp.h> ++#endif + + #define YEAR (365L*DAY) + +@@ -248,7 +252,11 @@ + */ + + void ++#if HAVE_UTMPX_H ++failtmp(const struct utmpx *failent) ++#else + failtmp(const struct utmp *failent) ++#endif + { + char *ftmp; + int fd; +--- shadow-4.0.3/libmisc/log.c.orig 2004-01-02 18:58:04.000000000 -0800 ++++ shadow-4.0.3/libmisc/log.c 2004-01-02 18:58:51.000000000 -0800 +@@ -57,6 +57,7 @@ + int fd; + off_t offset; + struct lastlog newlog; ++ time_t ll_time; + + /* + * If the file does not exist, don't create it. +@@ -88,7 +89,8 @@ + if (ll) + *ll = newlog; + +- time(&newlog.ll_time); ++ ll_time = newlog.ll_time; ++ time(&ll_time); + strncpy(newlog.ll_line, line, sizeof newlog.ll_line); + #if HAVE_LL_HOST + strncpy(newlog.ll_host, host, sizeof newlog.ll_host); +--- shadow-4.0.3/libmisc/utmp.c.orig 2004-01-02 18:59:04.000000000 -0800 ++++ shadow-4.0.3/libmisc/utmp.c 2004-01-02 19:05:34.000000000 -0800 +@@ -79,6 +79,8 @@ + { + char *line; + struct utmp *ut; ++ time_t uttime; ++ + pid_t pid = getpid(); + + setutent(); +@@ -111,7 +113,8 @@ + /* XXX - assumes /dev/tty?? */ + strncpy(utent.ut_id, utent.ut_line + 3, sizeof utent.ut_id); + strcpy(utent.ut_user, "LOGIN"); +- time(&utent.ut_time); ++ time(&uttime); ++ utent.ut_time = uttime; + } + } + +@@ -284,9 +287,14 @@ + void + setutmp(const char *name, const char *line, const char *host) + { ++ time_t uttime; ++ + utent.ut_type = USER_PROCESS; + strncpy(utent.ut_user, name, sizeof utent.ut_user); +- time(&utent.ut_time); ++ ++ time(&uttime); ++ utent.ut_time = uttime; ++ + /* other fields already filled in by checkutmp above */ + setutent(); + pututline(&utent); +--- shadow-4.0.3/src/lastlog.c.orig 2004-01-02 18:06:09.000000000 -0800 ++++ shadow-4.0.3/src/lastlog.c 2004-01-02 18:29:57.000000000 -0800 +@@ -167,6 +167,7 @@ + static int once; + char *cp; + struct tm *tm; ++ time_t ll_time; + + #ifdef HAVE_STRFTIME + char ptime[80]; +@@ -184,7 +185,9 @@ + #endif + once++; + } +- tm = localtime (&lastlog.ll_time); ++ ll_time = lastlog.ll_time; ++ tm = localtime (&ll_time); ++ + #ifdef HAVE_STRFTIME + strftime (ptime, sizeof (ptime), "%a %b %e %H:%M:%S %z %Y", tm); + cp = ptime; +--- shadow-4.0.3/src/login.c.orig 2004-01-02 18:33:13.000000000 -0800 ++++ shadow-4.0.3/src/login.c 2004-01-02 18:40:17.000000000 -0800 +@@ -1019,8 +1019,12 @@ + const char *failent_user; + + #if HAVE_UTMPX_H ++ struct timeval ut_tv; ++ ut_tv.tv_sec = failent.ut_tv.tv_sec; ++ ut_tv.tv_usec = failent.ut_tv.tv_usec; ++ + failent = utxent; +- gettimeofday (&(failent.ut_tv), NULL); ++ gettimeofday (&ut_tv, NULL); + #else + failent = utent; + time (&failent.ut_time); +@@ -1271,15 +1275,16 @@ + } + if (getdef_bool ("LASTLOG_ENAB") + && lastlog.ll_time != 0) { ++ time_t ll_time= lastlog.ll_time; + #ifdef HAVE_STRFTIME + strftime (ptime, sizeof (ptime), + "%a %b %e %H:%M:%S %z %Y", +- localtime (&lastlog.ll_time)); ++ localtime (&ll_time)); + printf (_("Last login: %s on %s"), + ptime, lastlog.ll_line); + #else + printf (_("Last login: %.19s on %s"), +- ctime (&lastlog.ll_time), ++ ctime (&ll_time), + lastlog.ll_line); + #endif + #ifdef HAVE_LL_HOST /* SVR4 || __linux__ || SUN4 */ diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild new file mode 100755 index 00000000..2f0e1178 --- /dev/null +++ b/source/a/shadow/shadow.SlackBuild @@ -0,0 +1,156 @@ +#!/bin/sh + +# Copyright 2005-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.0.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-18} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-shadow + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_shadow.tar.gz + +cd $TMP +rm -rf shadow-$VERSION +tar xjvf $CWD/shadow-$VERSION.tar.bz2 +cd shadow-$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/shadow.shadowconfig.diff.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.newgrp.nopam.gz | patch -p0 --verbose --backup || exit 1 +zcat $CWD/shadow.login.defs.diff.gz | patch -p0 --verbose --backup || exit 1 +zcat $CWD/shadow.newgrp.getlogin.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.gcc34.diff.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.remove.obsolete.options.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/shadow-4.0.3.x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +fi + +./configure \ + --prefix=/usr \ + --disable-shared \ + --disable-desrpc \ + --build=$ARCH-slackware-linux + +make -j6 || exit 1 +cat etc/login.defs.linux > $PKG/etc/login.defs.new +cat etc/login.access > $PKG/etc/login.access.new +cat $CWD/adduser > $PKG/usr/sbin/adduser + +# These things aren't needed when using glibc, as it +# supplies its own shadow functions: +#cat lib/libshadow.a > $PKG/usr/lib/libshadow.a +#cp -a lib/pwauth.h $PKG/usr/include/shadow/pwauth.h +#cp -a lib/shadow_.h $PKG/usr/include/shadow/shadow.h +#chmod 644 $PKG/usr/include/shadow/* +#chown root.root $PKG/usr/include/shadow/* + +cd po +for file in *.gmo ; do + mkdir -p $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES + cat $file > $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES/shadow.mo +done +cd ../src +cat login > $PKG/bin/login +cat su > $PKG/bin/su +cat sulogin > $PKG/sbin/sulogin +cat ../debian/shadowconfig.sh > $PKG/usr/sbin/shadowconfig +for file in chpasswd dpasswd faillog groupadd groupdel groupmod grpck \ +lastlog logoutd mkpasswd newusers pwck useradd userdel usermod \ +pwconv pwunconv grpconv grpunconv vipw ; do + cat $file > $PKG/usr/sbin/$file +done +for file in chage chfn chsh expiry gpasswd newgrp passwd ; do + cat $file > $PKG/usr/bin/$file +done +cd .. +cp contrib/adduser.sh /sbin/adduser +mkdir -p $PKG/usr/doc/shadow-$VERSION +cp -a \ + ABOUT-NLS ChangeLog NEWS README TODO doc/* \ + $PKG/usr/doc/shadow-$VERSION +chmod 644 $PKG/usr/doc/shadow-$VERSION/* + +install_man_pages() { +for file in chage.1 chfn.1 chsh.1 gpasswd.1 groups.1 login.1 newgrp.1 \ +passwd.1 su.1 ; do + if [ -r $file ]; then + mkdir -p $1/man1 + gzip -9c $file > $1/man1/$file.gz + fi +done +for file in pw_auth.3 shadow.3 ; do + if [ -r $file ]; then + mkdir -p $1/man3 + gzip -9c $file > $1/man3/$file.gz + fi +done +for file in faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 \ +porttime.5 shadow.5 suauth.5 ; do + if [ -r $file ]; then + mkdir -p $1/man5 + gzip -9c $file > $1/man5/$file.gz + fi +done +for file in chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 \ +grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwauth.8 pwck.8 pwconv.8 \ +shadowconfig.8 sulogin.8 useradd.8 userdel.8 usermod.8 vipw.8 ; do + if [ -r $file ]; then + mkdir -p $1/man8 + gzip -9c $file > $1/man8/$file.gz + fi +done +} + +cd man + install_man_pages $PKG/usr/man + for dir in * ; do + if [ -d $dir ] ; then + ( cd $dir ; install_man_pages $PKG/usr/man/$dir ) + fi + done +cd .. + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/shadow-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/shadow-$VERSION + rm -rf $PKG +fi diff --git a/source/a/shadow/shadow.gcc34.diff b/source/a/shadow/shadow.gcc34.diff new file mode 100644 index 00000000..71dff4c8 --- /dev/null +++ b/source/a/shadow/shadow.gcc34.diff @@ -0,0 +1,11 @@ +--- ./libmisc/xmalloc.c.orig 1998-12-28 14:34:56.000000000 -0600 ++++ ./libmisc/xmalloc.c 2006-08-12 19:02:51.000000000 -0500 +@@ -16,8 +16,6 @@ + + #include "defines.h" + +-extern char *malloc(); +- + char * + xmalloc(size_t size) + { diff --git a/source/a/shadow/shadow.login.defs.diff b/source/a/shadow/shadow.login.defs.diff new file mode 100644 index 00000000..bfed463a --- /dev/null +++ b/source/a/shadow/shadow.login.defs.diff @@ -0,0 +1,67 @@ +--- ./etc/login.defs.linux.orig 2000-08-26 13:27:10.000000000 -0500 ++++ ./etc/login.defs.linux 2008-03-24 15:10:09.000000000 -0500 +@@ -170,8 +170,8 @@ + # *REQUIRED* The default PATH settings, for superuser and normal users. + # + # (they are minimal, add the rest in the shell startup files) +-ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin +-ENV_PATH PATH=/bin:/usr/bin ++ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin ++ENV_PATH PATH=/usr/local/bin:/bin:/usr/bin + + # + # Terminal permissions +@@ -185,7 +185,7 @@ + # TTYPERM to either 622 or 600. + # + TTYGROUP tty +-TTYPERM 0600 ++TTYPERM 0620 + + # + # Login configuration initializations: +@@ -230,7 +230,7 @@ + # + # If compiled with cracklib support, where are the dictionaries + # +-CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict ++#CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict + + # + # Min/max values for automatic uid selection in useradd +@@ -282,7 +282,7 @@ + # phone, home phone). If not defined, no changes are allowed. + # For backward compatibility, "yes" = "rwh" and "no" = "frwh". + # +-CHFN_RESTRICT rwh ++CHFN_RESTRICT frwh + + # + # Password prompt (%s will be replaced by user name). +@@ -299,7 +299,7 @@ + # Set to "no" if you need to copy encrypted passwords to other systems + # which don't understand the new algorithm. Default is "no". + # +-#MD5_CRYPT_ENAB no ++MD5_CRYPT_ENAB yes + + # + # List of groups to add to the user's supplementary group set +@@ -310,7 +310,16 @@ + # access to these groups, even when not logged in on the console. + # How to do it is left as an exercise for the reader... + # +-#CONSOLE_GROUPS floppy:audio:cdrom ++# Most of these groups are self-explanatory. ++# ++# Note that users are added to these default groups only when ++# logging into a shell with /bin/login, not when using a login ++# manager such as kdm. In that case, users who should have ++# hardware access must be added to the appropriate groups ++# when the user is added with adduser or useradd, or by editing ++# /etc/group directly. ++# ++CONSOLE_GROUPS floppy:audio:cdrom:video + + # + # Should login be allowed if we can't cd to the home directory? diff --git a/source/a/shadow/shadow.newgrp.getlogin b/source/a/shadow/shadow.newgrp.getlogin new file mode 100644 index 00000000..5d032f15 --- /dev/null +++ b/source/a/shadow/shadow.newgrp.getlogin @@ -0,0 +1,21 @@ +--- ./src/newgrp.c.orig 2003-05-31 21:19:39.000000000 -0700 ++++ ./src/newgrp.c 2003-05-31 21:21:32.000000000 -0700 +@@ -76,6 +76,7 @@ + gid_t gid; + char *cp; + const char *cpasswd, *name, *prog; ++ char *loginname = NULL; + char *group = NULL; + char *command = NULL; + char **envp = environ; +@@ -386,7 +387,9 @@ + SYSLOG ((LOG_INFO, "user `%s' switched to group `%s'", + name, group)); + if (getdef_bool ("SYSLOG_SG_ENAB")) { +- char *loginname = xstrdup (getlogin ()); ++ char *user = getlogin (); ++ if (user != NULL) ++ loginname = xstrdup (user); + char *tty = xstrdup (ttyname (0)); + + if (loginname == NULL) diff --git a/source/a/shadow/shadow.newgrp.nopam b/source/a/shadow/shadow.newgrp.nopam new file mode 100644 index 00000000..7920dde0 --- /dev/null +++ b/source/a/shadow/shadow.newgrp.nopam @@ -0,0 +1,18 @@ +--- src/newgrp.c.orig 2002-10-12 14:15:34.000000000 +0100 ++++ src/newgrp.c 2002-10-12 14:15:42.000000000 +0100 +@@ -398,6 +398,7 @@ + SYSLOG ((LOG_INFO, + "user `%s' (login `%s' on %s) switched to group `%s'", + name, loginname, tty, group)); ++#ifdef USE_PAM + if (getdef_bool ("CLOSE_SESSIONS")) { + /* + * We want to fork and exec the new shell in the child, leaving the +@@ -450,6 +451,7 @@ + signal (SIGTTIN, SIG_DFL); + signal (SIGTTOU, SIG_DFL); + } ++#endif // USE_PAM + } + #endif /* USE_SYSLOG */ + diff --git a/source/a/shadow/shadow.remove.obsolete.options.diff b/source/a/shadow/shadow.remove.obsolete.options.diff new file mode 100644 index 00000000..100fe2a8 --- /dev/null +++ b/source/a/shadow/shadow.remove.obsolete.options.diff @@ -0,0 +1,78 @@ +--- ./man/passwd.1.orig 2002-03-13 11:52:15.000000000 -0600 ++++ ./man/passwd.1 2006-08-20 18:29:58.000000000 -0500 +@@ -29,26 +29,17 @@ + .SH NAME + passwd \- change user password + .SH SYNOPSIS +-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIname\fR] +-.br +-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgroup\fR ++\fBpasswd\fR [\fIname\fR] + .br + \fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR] + [\fB-w \fIwarn\fR] [\fB-i \fIinact\fR] \fIlogin\fR + .br + \fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR + .SH DESCRIPTION +-\fBpasswd\fR changes passwords for user and group accounts. ++\fBpasswd\fR changes passwords for user accounts. + A normal user may only change the password for his/her own account, + the super user may change the password for any account. +-The administrator of a group may change the password for the group. +-\fBpasswd\fR also changes account information, such as the full name +-of the user, user's login shell, or password expiry date and interval. +-.PP +-The \fB-s\fR option makes passwd call chsh to change the user's shell. The +-\fB-f\fR option makes passwd call chfn to change the user's gecos +-information. These two options are only meant for compatiblity, since the +-other programs can be called directly. ++.PP + .SS Password Changes + The user is first prompted for his/her old password, if one is present. + This password is then encrypted and compared against the +@@ -86,17 +77,6 @@ + against the first. + Both entries are required to match in order for the password + to be changed. +-.SS Group passwords +-When the \fB-g\fR option is used, the password for the named +-group is changed. +-The user must either be the super user, or a group administrator +-for the named group. +-The current group password is not prompted for. +-The \fB-r\fR option is used with the \fB-g\fR option to remove +-the current password from the named group. +-This allows group access to all members. +-The \fB-R\fR option is used with the \fB-g\fR option to restrict +-the named group for all users. + .SS Password expiry information + The password aging information may be changed by the super + user with the \fB-x\fR, \fB-n\fR, \fB-w\fR, and \fB-i\fR options. +@@ -191,6 +171,9 @@ + .br + /etc/shadow \- encrypted user passwords + .SH "SEE ALSO" ++.BR chfn (1), ++.BR chsh (1), ++.BR gpasswd (1), + .BR group (5), + .BR passwd (5) + .SH AUTHOR +--- ./src/passwd.c.orig 2002-01-05 09:41:43.000000000 -0600 ++++ ./src/passwd.c 2006-08-20 18:31:50.000000000 -0500 +@@ -955,6 +955,7 @@ + * Please run these programs directly. --marekm + */ + ++#ifdef I_LIKE_OBSOLETE_OPTIONS + if (argc > 1 && argv[1][0] == '-' && strchr ("gfs", argv[1][1])) { + char buf[200]; + +@@ -980,6 +981,7 @@ + closelog (); + exit (E_FAILURE); + } ++#endif + + /* + * The remaining arguments will be processed one by one and executed diff --git a/source/a/shadow/shadow.shadowconfig.diff b/source/a/shadow/shadow.shadowconfig.diff new file mode 100644 index 00000000..7dc9286e --- /dev/null +++ b/source/a/shadow/shadow.shadowconfig.diff @@ -0,0 +1,49 @@ +--- ./debian/shadowconfig.sh.orig 2001-05-29 23:20:22.000000000 -0700 ++++ ./debian/shadowconfig.sh 2003-06-23 16:35:38.000000000 -0700 +@@ -1,23 +1,28 @@ + #!/bin/bash +-# turn shadow passwords on or off on a Debian system ++# ++# 'shadowconfig on' will turn shadow passwords on; ++# 'shadowconfig off' will turn shadow passwords off. ++# ++# shadowconfig will print an error message and exit with ++# a nonzero code if it finds anything awry. If that happens, ++# you should correct the error and run it again. ++# ++# Turning shadow passwords on when they are already on, or ++# off when they are already off, is harmless. ++# ++# Be aware that account expiration dates are only supported ++# by shadow passwords -- these dates will be lost when converting ++# from shadow to non-shadow passwords. If you need to save this ++# information, back up your /etc/shadow before turning off ++# shadow passwords. ++# + +-set -e + +-permfix () { +- [ -f $1 ] || return 0 +- chown root:shadow $1 +- chmod 2755 $1 +-} +-export -f permfix ++set -e + + shadowon () { + bash<<- EOF + set -e +- +- permfix /usr/X11R6/bin/xlock +- permfix /usr/X11R6/bin/xtrlock +- permfix /bin/vlock +- + pwck -q + grpck + pwconv +@@ -65,3 +70,4 @@ + echo Usage: $0 on \| off + ;; + esac ++ diff --git a/source/a/shadow/slack-desc b/source/a/shadow/slack-desc new file mode 100644 index 00000000..57749146 --- /dev/null +++ b/source/a/shadow/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------------------------------------------------------| +shadow: shadow (shadow password suite) +shadow: +shadow: This set of login related programs utilizes an alternate, non-readable +shadow: file to contain the actual encrypted passwords. This is presumed to +shadow: increase system security by increasing the difficulty with which +shadow: system crackers obtain encrypted passwords. It was written by +shadow: Julianne Frances Haugh and the Linux port is maintained by Tomasz +shadow: Kloczko. +shadow: +shadow: This package provides 'login', which is needed to log into the system. +shadow: diff --git a/source/a/sharutils/sharutils.SlackBuild b/source/a/sharutils/sharutils.SlackBuild new file mode 100755 index 00000000..0d8bd6f0 --- /dev/null +++ b/source/a/sharutils/sharutils.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=4.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sharutils + +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" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sharutils-$VERSION +tar xjvf $CWD/sharutils-$VERSION.tar.bz2 +cd sharutils-$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 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $ARCH-slackware-linux +make -j3 +make install DESTDIR=$PKG +make install-man DESTDIR=$PKG + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/*.? + +( 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/usr/doc/sharutils-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \ + $PKG/usr/doc/sharutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sharutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sharutils/slack-desc b/source/a/sharutils/slack-desc new file mode 100644 index 00000000..fbc490fa --- /dev/null +++ b/source/a/sharutils/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------------------------------------------------------| +sharutils: sharutils (GNU shell archive packing utilities) +sharutils: +sharutils: `shar' makes so-called shell archives out of many files, preparing +sharutils: them for transmission by electronic mail services. `unshar' helps +sharutils: unpacking shell archives after reception. `uuencode' prepares a file +sharutils: for transmission over an electronic channel which ignores or otherwise +sharutils: mangles the eight bit (high order bit) of bytes. `uudecode' does the +sharutils: converse transformation. `remsync' allows for remote synchronization +sharutils: of directory trees using electronic mail. +sharutils: +sharutils: diff --git a/source/a/slocate/slack-desc b/source/a/slocate/slack-desc new file mode 100644 index 00000000..22ec56cc --- /dev/null +++ b/source/a/slocate/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------------------------------------------------------| +slocate: slocate (Secure Locate) +slocate: +slocate: Slocate is an enhanced version of locate, a command to help you locate +slocate: files on the system. Like the original version of locate, Slocate +slocate: maintains a database of files on the system, updating it nightly. +slocate: Unlike the original, Slocate indexes every file on the machine rather +slocate: than only the ones that can be seen by everyone. The "secure" part of +slocate: slocate is that it will only return matches if the user is allowed to +slocate: see the files. +slocate: +slocate: diff --git a/source/a/slocate/slocate-3.1.tar.gz.sign b/source/a/slocate/slocate-3.1.tar.gz.sign new file mode 100644 index 00000000..91b98242 --- /dev/null +++ b/source/a/slocate/slocate-3.1.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2 (GNU/Linux) + +iD8DBQBEDmWkUZpV8HRsUfQRAnLeAJ0cBuIYvy+3GSTdm+sfQ7XYbNWuwgCgj+pZ +RKdGZfMmcuFGoBO39sCX/64= +=K/rW +-----END PGP SIGNATURE----- diff --git a/source/a/slocate/slocate.SlackBuild b/source/a/slocate/slocate.SlackBuild new file mode 100755 index 00000000..3fec40f2 --- /dev/null +++ b/source/a/slocate/slocate.SlackBuild @@ -0,0 +1,77 @@ +#!/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=3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slocate + +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 + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_slocate.tar.gz + +cd $TMP +rm -rf slocate-$VERSION +tar xzvf $CWD/slocate-$VERSION.tar.gz +cd slocate-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 2750 -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 src +make CFLAGS="$SLKCFLAGS" +cd .. +strip --strip-unneeded src/slocate +mkdir -p $PKG/usr/bin +cat src/slocate > $PKG/usr/bin/slocate +mkdir -p $PKG/usr/man/man1 +cat doc/slocate.1 | gzip -9c > $PKG/usr/man/man1/slocate.1.gz +cat doc/updatedb.1 | gzip -9c > $PKG/usr/man/man1/updatedb.1.gz +mkdir -p $PKG/usr/doc/slocate-$VERSION +cp -a \ + Changelog LICENSE README WISHLIST \ + $PKG/usr/doc/slocate-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/slocate-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/smartmontools/doinst.sh b/source/a/smartmontools/doinst.sh new file mode 100644 index 00000000..82f0ac13 --- /dev/null +++ b/source/a/smartmontools/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/smartd.conf.new diff --git a/source/a/smartmontools/slack-desc b/source/a/smartmontools/slack-desc new file mode 100644 index 00000000..ce462947 --- /dev/null +++ b/source/a/smartmontools/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------------------------------------------------------| +smartmontools: smartmontools (hard drive monitoring utilities) +smartmontools: +smartmontools: SMARTMONTOOLS contains utilities that control and monitor storage +smartmontools: devices using the Self-Monitoring, Analysis and Reporting Technology +smartmontools: (S.M.A.R.T.) system build into ATA and SCSI Hard Drives. This is used +smartmontools: to check the reliability of the hard drive and to predict drive +smartmontools: failures. SMARTMONTOOLS Version 5.x is designed to comply to the +smartmontools: ATA/ATAPI-5 specification (Revision 1). Future releases of +smartmontools: SMARTMONTOOLS (Versions 6.x and 7.x) will comply with the ATA/ATAPI-6 +smartmontools: and ATA/ATAPI-7 specifications. +smartmontools: diff --git a/source/a/smartmontools/smartmontools.SlackBuild b/source/a/smartmontools/smartmontools.SlackBuild new file mode 100755 index 00000000..fd4fcf35 --- /dev/null +++ b/source/a/smartmontools/smartmontools.SlackBuild @@ -0,0 +1,78 @@ +#!/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=5.38 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-smartmontools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf smartmontools-$VERSION +tar xvf $CWD/smartmontools-$VERSION.tar.* +cd smartmontools-$VERSION +chown -R root:root . +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +make +make install DESTDIR=$PKG +# Not used on Slackware: +rm -rf $PKG/etc/rc.d +mv $PKG/etc/smartd.conf $PKG/etc/smartd.conf.new +gzip -9 $PKG/usr/man/man?/*.? +mv $PKG/usr/share/doc $PKG/usr +rmdir $PKG/usr/share +rm -f $PKG/usr/doc/smartmontools-$VERSION/CHANGELOG \ + $PKG/usr/doc/smartmontools-$VERSION/smartd.conf +( 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/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/smartmontools-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/smartmontools-$VERSION + rm -rf $PKG +fi diff --git a/source/a/splitvt/slack-desc b/source/a/splitvt/slack-desc new file mode 100644 index 00000000..0aa6ab24 --- /dev/null +++ b/source/a/splitvt/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------------------------------------------------------| +splitvt: splitvt (run multiple shells in a single window) +splitvt: +splitvt: This program splits the screen into two windows, one above the other, +splitvt: and runs a shell in each one. +splitvt: +splitvt: Splitvt was written by Sam Lantinga. +splitvt: +splitvt: +splitvt: +splitvt: +splitvt: diff --git a/source/a/splitvt/splitvt.SlackBuild b/source/a/splitvt/splitvt.SlackBuild new file mode 100755 index 00000000..f643a825 --- /dev/null +++ b/source/a/splitvt/splitvt.SlackBuild @@ -0,0 +1,67 @@ +#!/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.6.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-splitvt + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf splitvt-1.6.5 +tar xzvf $CWD/splitvt-1.6.5.tar.gz +cd splitvt-1.6.5 +zcat $CWD/splitvt_1.6.5-9.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +./configure +make || exit 1 +mkdir -p $PKG/usr/bin +cat splitvt > $PKG/usr/bin/splitvt +chmod 755 $PKG/usr/bin/splitvt +mkdir -p $PKG/usr/man/man1 +cat splitvt.1 | gzip -9c > $PKG/usr/man/man1/splitvt.1.gz +mkdir -p $PKG/usr/doc/splitvt-1.6.5 +cp -a examples ANNOUNCE CHANGES NOTES README TODO \ + $PKG/usr/doc/splitvt-1.6.5 +( cd $PKG/usr/doc/splitvt-1.6.5 + find . -type d | xargs chmod 755 + find . -type f | xargs chmod 644 ) + +# Strip everything for good measure: +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/splitvt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/splitvt/splitvt_1.6.5-9.diff b/source/a/splitvt/splitvt_1.6.5-9.diff new file mode 100644 index 00000000..47d56037 --- /dev/null +++ b/source/a/splitvt/splitvt_1.6.5-9.diff @@ -0,0 +1,1073 @@ +--- splitvt-1.6.5.orig/debian/changelog ++++ splitvt-1.6.5/debian/changelog +@@ -0,0 +1,147 @@ ++splitvt (1.6.5-9) unstable; urgency=low ++ ++ * Ensure that -upper and -lower have arguemnts. Closes: #319091 ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2005 17:50:32 -0400 ++ ++splitvt (1.6.5-8) unstable; urgency=low ++ ++ * Patch from Andreas Jochens to fix building with gcc 4.0. Closes: #294620 ++ ++ -- Joey Hess <joeyh@debian.org> Fri, 15 Jul 2005 17:38:09 +0300 ++ ++splitvt (1.6.5-7) unstable; urgency=low ++ ++ * Many changes to make it build cleanly with -Wall. This included some ++ missing headers that probably caused it to crash on amd64. ++ * Disabled vttest, since its read from the console to try to detect a vt100 ++ terminal was responsible for startup hang on sparc. Closes: #273330 ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 26 Jan 2005 20:32:34 -0500 ++ ++splitvt (1.6.5-6) unstable; urgency=low ++ ++ * Rebuilt to update to current policy on /usr/doc links &etc. ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 8 Feb 2003 12:32:25 -0500 ++ ++splitvt (1.6.5-5) unstable; urgency=low ++ ++ * Updated to debhelper v4. ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 13 Jun 2002 16:30:04 -0400 ++ ++splitvt (1.6.5-4) unstable; urgency=low ++ ++ * Updated patch to not break resizing. ++ ++ -- Joey Hess <joeyh@debian.org> Fri, 5 Oct 2001 20:09:25 -0400 ++ ++splitvt (1.6.5-3) unstable; urgency=low ++ ++ * Patch from Robert de Bath <robert$@mayday.cix.co.uk> that has a doc fix ++ and also fixes a splitvt segfault when one uses the CSI ? 3 h to got o ++ 132 column mode. Closes: #113868 (also sent upstream) ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 29 Sep 2001 16:44:25 -0400 ++ ++splitvt (1.6.5-2) unstable; urgency=HIGH ++ ++ * New upstream version, with a format string hole fixed, and several ++ possible buffer overfllows fixed. ++ - Of those, only (I think) the format string attack and two of the ++ buffer overflows can affect the debian package. ++ - Luckily, my last release of the package back in June 2000 made ++ it only need to be sgid tty. ++ - Total possible impact: attacker could possibly crack the tty group. ++ * Goofed up version number because this source is already in the ++ archives. ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 17 Jan 2001 23:39:09 -0800 ++ ++splitvt (1.6.4-4) unstable; urgency=low ++ ++ * Drop setgid first. Very doubtful this effects anything, but it's the ++ right way to do things. ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 15 Jun 2000 11:37:48 -0700 ++ ++splitvt (1.6.4-3) unstable; urgency=low ++ ++ * Modified to use glibc's sys4-ish pty routines; devpts, grantpt, etc. ++ * Modified to drop sgid bit properly. ++ * Now I can make it just sgid utmp, rather than suid root, and it ++ continues to work just as before. Beaujolais! Closes: #65227 ++ * Removed no-longer-needed glibc stdion/stdout fix patch. ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 14 Jun 2000 14:13:30 -0700 ++ ++splitvt (1.6.4-2) unstable; urgency=low ++ ++ * Corrected build-depends, Closes: #65584 ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 13 Jun 2000 11:42:02 -0700 ++ ++splitvt (1.6.4-1) unstable; urgency=high ++ ++ * New upstream release with security fix (already applied in the previous ++ version, I'm just syncing up with upstream). ++ * Added homepage to copyright file. ++ * Added some more files to docs. ++ * Now under the GPL explicitly, some updates to the copyright file. ++ ++ -- Joey Hess <joeyh@debian.org> Sun, 11 Jun 2000 21:42:41 -0700 ++ ++splitvt (1.6.3-7.0slink1) stable; urgency=high ++ ++ * Security fix. ++ ++ -- Daniel Jacobowitz <dan@debian.org> Sat, 3 Jun 2000 17:56:33 -0400 ++ ++splitvt (1.6.3-7) unstable; urgency=low ++ ++ * Build dep. ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 4 Dec 1999 16:21:35 -0800 ++ ++splitvt (1.6.3-6) unstable; urgency=low ++ ++ * FHS ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 01:27:49 -0700 ++ ++splitvt (1.6.3-5) unstable; urgency=low ++ ++ * vtmouse.c: Don't use stdin/stdout as initializers. Instead, in ++ event_getc(), set xt_input and xt_output to stdin and stdout if ++ they are not yet set. This is for the ports to other architectures. ++ (#29597) ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 17 Nov 1998 15:50:53 -0800 ++ ++splitvt (1.6.3-4) unstable; urgency=low ++ ++ * Built with newest debhelper to change how the suid binary is registered. ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 27 Oct 1998 21:59:05 -0800 ++ ++splitvt (1.6.3-3) unstable; urgency=low ++ ++ * Hacked in a -f flag, that allows you to resize one of the splitvt ++ windows down to 1 line tall. This is particularly useful for ticker. ++ ++ -- Joey Hess <joeyh@debian.org> Mon, 7 Sep 1998 19:56:53 -0700 ++ ++splitvt (1.6.3-2) unstable; urgency=low ++ ++ * Fixed package description spelling (#18990). ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 5 Mar 1998 17:00:19 -0800 ++ ++splitvt (1.6.3-1) unstable; urgency=low ++ ++ * First release. ++ * Write to author and clarified copyright. ++ * Change /etc/utmp to /var/run/utmp ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 1 Oct 1997 16:19:01 -0400 +--- splitvt-1.6.5.orig/debian/control ++++ splitvt-1.6.5/debian/control +@@ -0,0 +1,14 @@ ++Source: splitvt ++Section: utils ++Priority: optional ++Build-Depends: debhelper (>= 4), libncurses5-dev, dpkg-dev (>= 1.9.0) ++Maintainer: Joey Hess <joeyh@debian.org> ++Standards-Version: 3.5.8.0 ++ ++Package: splitvt ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: run two programs in a split screen ++ A utility to split a vt100 compatible screen into two halves, ++ upper and lower, and run a different program simultaneously ++ in each half. +--- splitvt-1.6.5.orig/debian/compat ++++ splitvt-1.6.5/debian/compat +@@ -0,0 +1 @@ ++4 +--- splitvt-1.6.5.orig/debian/watch ++++ splitvt-1.6.5/debian/watch +@@ -0,0 +1,2 @@ ++version=2 ++http://www.devolution.com/~slouken/projects/splitvt/ splitvt-(.*).tar.gz +--- splitvt-1.6.5.orig/debian/copyright ++++ splitvt-1.6.5/debian/copyright +@@ -0,0 +1,45 @@ ++This is a Debian prepackaged version of the splitvt utility. ++ ++This package was put together by Joey Hess <joeyh@debian.org>, using ++sources from: ++ http://www.devolution.com/~slouken/projects/splitvt/ ++ ++The following copyright notices can still be found in the source code: ++ ++ /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */ ++ ++That is a historical relic, though. The current copyright of splitvt is the ++GPL; the text to which can be found in /usr/share/common-licenses/GPL on a ++Debian system. ++ ++Before the copyright was expressly changed to the GPL, I wrote and asked the ++author about copyright. He replied: ++ ++ Date: Wed, 1 Oct 1997 13:39:18 -0700 ++ From: Sam Lantinga <slouken@domo.ccnet.com> ++ To: Joey Hess <joey@kite.ml.org> ++ Cc: slouken@mongoloid.devolution.com ++ Subject: Re: splitvt copyright ++ X-Mailer: My Mailer 1.5 <slouken@devolution.com> ++ ++ > I've never heard of no fee shareware before. What restrictions does that ++ > place on the software? Can it be put on a cd with other software (such as a ++ > linux distribution) and sold for profit? Can it be used by anyone, for any ++ > purpose? If so, why don't you just place it under the GPL? ++ ++ Consider it GPL'd. I wrote it before I was aware of the GPL, and haven't ++ done much work on it in quite a while. ++ ++ > At this point, I'm not sure if splitvt's copyright will let it go in our ++ > main distribution, that is sold on cd, or not. Awaiting your clarification.. ++ ++ You are more than welcome to put splitvt in the Debian distribution. ++ It is already in Slackware and S.u.S.E. ++ ++ See ya! ++ -Sam Lantinga (slouken@devolution.com) ++ ++ -- ++ Author of Linux Maelstrom - ++ http://www.devolution.com/~slouken/Maelstrom/ ++ -- +--- splitvt-1.6.5.orig/debian/rules ++++ splitvt-1.6.5/debian/rules +@@ -0,0 +1,43 @@ ++#!/usr/bin/make -f ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ rm -f Makefile ++ ./configure ++ $(MAKE) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ dh_clean ++ if [ ! -f Makefile ]; then ./configure ; fi ++ -$(MAKE) distclean ++ ++binary-indep: build ++ ++binary-arch: build ++ dh_testdir ++ dh_testroot ++ dh_clean ++ dh_install splitvt usr/bin ++ dh_installdocs README TODO ANNOUNCE BLURB ++ dh_installexamples examples/* ++ dh_installmenu ++ dh_installcron ++ dh_installman splitvt.1 ++ dh_installchangelogs CHANGES ++ dh_strip ++ dh_compress ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_fixperms ++ chgrp utmp debian/splitvt/usr/bin/splitvt ++ chmod g+s debian/splitvt/usr/bin/splitvt ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary +--- splitvt-1.6.5.orig/splitvt.man ++++ splitvt-1.6.5/splitvt.man +@@ -176,7 +176,7 @@ + replace it with entries for the two windows. This allows + you to use programs such as 'talk' within the splitvt win- + dows. If you do not have write permission to the +- /etc/utmp file, you will not be able to modify the utmp ++ /etc/utmp file, you will not be able to modify the utmp + entries. + + splitvt can be made set-uid root. splitvt will reset its +--- splitvt-1.6.5.orig/parserc.c ++++ splitvt-1.6.5/parserc.c +@@ -1,6 +1,8 @@ + + /* Routines to parse the ~/.splitvtrc file and set default options */ + ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <string.h> +@@ -213,7 +215,7 @@ + char line[BUFSIZ], newline[BUFSIZ*2], *parsed[256]; + char *head, *tail, *ptr, *subptr; + char *envptr, envbuf[128]; +- int i, n, quoted=0; ++ int i, n; + int ignoring=0, ifs=0; + + /* Get our home directory */ +--- splitvt-1.6.5.orig/splitvt.c ++++ splitvt-1.6.5/splitvt.c +@@ -13,6 +13,9 @@ + static char *version= + "@(#)Splitvt 1.6.5 1/12/2001 -Sam Lantinga (slouken@devolution.com)\n"; + ++#include <string.h> ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/types.h> + #include <sys/time.h> + #include <sys/wait.h> +@@ -79,6 +82,8 @@ + char *upper_args[MAX_ARGS+1]={NULL}, *lower_args[MAX_ARGS+1]={NULL}; + int upper_empty=1, lower_empty=1; + ++int force_height=0; ++ + void print_usage(argv) + char *argv; + { +@@ -95,13 +100,14 @@ + fprintf(stderr, "\t-nologin\t\tOverrides \"set login on\" in startup file\n"); + fprintf(stderr, "\t-rcfile file\t\tLoads 'file' at startup instead of ~/.splitvtrc\n"); + fprintf(stderr, "\t-norc\t\t\tSuppresses loading your startup file\n"); ++ fprintf(stderr, "\t-f\t\t\tAllow setting screen size of less than 3 lines\n"); + fprintf(stderr, "\t-v\t\t\tPrint out the version number\n"); + fprintf(stderr, "\n"); + exit(1); + } + + +-main(argc, argv) ++int main(argc, argv) + int argc; + char *argv[]; + { +@@ -111,7 +117,10 @@ + int i, len, maxfds, numready; + char buffer[BUFSIZ], *ptr; + char *xterm_title=NULL; +- struct timeval tv, *tvptr; ++#ifdef NEED_INET_H ++ struct timeval tv; ++#endif ++ struct timeval *tvptr; + fd_set read_mask; + static struct passwd pwdata; /* Our passwd entry */ + +@@ -151,7 +160,7 @@ + splitvtrc(); + + /* Parse command line options */ +- while ( (i=getopt(argc, argv, "n:u:l:r:s:t:vh")) != EOF ) ++ while ( (i=getopt(argc, argv, "fn:u:l:r:s:t:vh")) != EOF ) + { + switch (i) + { +@@ -163,11 +172,19 @@ + break; + case 'u': if ( strcmp(optarg, "pper") != 0 ) + print_usage(argv[0]); ++ if (optind >= argc) { ++ fprintf(stderr, "-upper requires an argument\n"); ++ print_usage(argv[0]); ++ } + tokenize(upper_args, MAX_ARGS+1, + argv[optind++], " "); + upper_empty=0; + break; + case 'l': if ( strcmp(optarg, "ower") == 0 ) { ++ if (optind >= argc) { ++ fprintf(stderr, "-lower requires an argument\n"); ++ print_usage(argv[0]); ++ } + tokenize(lower_args, MAX_ARGS+1, + argv[optind++], " "); + lower_empty=0; +@@ -188,7 +205,9 @@ + case 'v': printf("%s", version+4); + exit(0); + break; +- case 'h': ++ case 'f': force_height=1; ++ break; ++ case 'h': + default: print_usage(argv[0]); + break; + } +@@ -212,7 +231,7 @@ + } + (void) tty_raw(0); /* Set the tty raw here to prevent lost input */ + +- if ( (ptr=init_vt100()) != NULL ) ++ if ( (ptr=init_vt100(1)) != NULL ) + { + if ( tty_reset(0) < 0 ) + (void) tty_sane(0); +@@ -473,6 +492,7 @@ + } + } + finish(0); ++ exit(0); + } + + void reset_bar(sleeptime) +@@ -496,6 +516,7 @@ + " 'x' Lock the screen", + " 'h' Show this help screen", + " 'q' Quickly quit splitvt", ++" '0-9' Line count for + or -", + NULL + }; + vt_showscreen("Splitvt HELP screen:", help); +@@ -700,7 +721,7 @@ + tmp_uulines=UU_lines; + UU_lines=WU_lines; + UU_lines += howfar; /* Positive to go down, negative to go up */ +- init_vt100(); /* Reset the windows to the new size */ ++ init_vt100(0); /* Reset the windows to the new size */ + + /* Tell the running processes about the size change */ + if ( topok ) +@@ -722,7 +743,7 @@ + + signal(sig, winch); + +- if ( (ptr=init_vt100()) != NULL ) { ++ if ( (ptr=init_vt100(1)) != NULL ) { + fprintf(stderr, "Can't resize window: %s. (exiting)\n", ptr); + finish(0); + } else +--- splitvt-1.6.5.orig/config.c ++++ splitvt-1.6.5/config.c +@@ -169,7 +169,7 @@ + strcat(ldflags, " -lsun"); + + /* Tell the user what kind of configuration to do */ +- if ( (access("/etc/utmp", (R_OK|W_OK)) == 0) && getuid() ) ++ if ( (access("/var/run/utmp", (R_OK|W_OK)) == 0) && getuid() ) + write_utmp=1; + else + write_utmp=0; +@@ -180,14 +180,14 @@ + VERBOSE_PRINT( + "This program doesn't need to be installed set-uid root.\n"); + VERBOSE_PRINT( +- "\nThis program will put entries for its windows in /etc/utmp.\n"); ++ "\nThis program will put entries for its windows in /var/run/utmp.\n"); + } else { + VERBOSE_PRINT( +- "If installed set-uid root, this program will put entries for its windows\nin /etc/utmp.\n"); ++ "If installed set-uid root, this program will put entries for its windows\nin /var/run/utmp.\n"); + } + } else if ( write_utmp ) { + VERBOSE_PRINT( +- "This program will put entries for its windows in /etc/utmp.\n"); ++ "This program will put entries for its windows in /var/run/utmp.\n"); + VERBOSE_PRINT( + "\nIf installed set-uid root, this program will change ownership of the\n"); + VERBOSE_PRINT( +@@ -196,7 +196,7 @@ + VERBOSE_PRINT( + "If installed set-uid root, this program will put entries for its windows\n"); + VERBOSE_PRINT( +- "in /etc/utmp, and will also change ownership of the ttys it acquires to the\n"); ++ "in /var/run/utmp, and will also change ownership of the ttys it acquires to the\n"); + VERBOSE_PRINT( + "user running this program.\n"); + } +@@ -225,7 +225,7 @@ + } + fprintf(makefile, + "PTYOPTS = -DPTYCHAR=$(PTYCHAR) -DHEXDIGIT=$(HEXDIGIT)\n"); +- sprintf(line, "\nCFLAGS = %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags); ++ sprintf(line, "\nCFLAGS = -Wall %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags); + fprintf(makefile, "%s", line); + fprintf(makefile, "OBJS = splitvt.o misc.o utmp.o vt100.o videomem.o terminal.o vttest.o vtmouse.o \\\n"); + fprintf(makefile, " parserc.o lock.o cut-paste.o\n\n"); +--- splitvt-1.6.5.orig/cut-paste.c ++++ splitvt-1.6.5/cut-paste.c +@@ -2,8 +2,12 @@ + /* The cut-paste module for splitvt */ + + #include <stdio.h> ++#include <string.h> ++#include <unistd.h> + #include "vt100.h" + #include "video.h" ++#include "splitvt.h" ++#include "terminal.h" + + #define RIGHT 0x01 + #define LEFT 0x02 +@@ -41,7 +45,7 @@ + } else + c ^= (SELECTED<<8); + +- (*oldattr)=check_attr(c, *oldattr, on); ++ (*oldattr)=check_attr(c, *oldattr, (int)on); + put_video(c, win, x, y); + + if ( c&0xFF ) +@@ -86,7 +90,6 @@ + int len; + position *mark1, *mark2; + { +- int selection=0; + position startsel, endsel; + + if ( mark1->x == mark2->x ) +@@ -200,9 +203,9 @@ + void vt_initsel() + { + extern char *pathsearch(); /* From misc.c */ +- char *display; + + #ifdef USE_XCB ++ char *display; + /* Use xcb if we have both an X display and the command. */ + /* xcb needs to support my hacked '-R' option. */ + if ( (display=(char *)getenv("DISPLAY")) && pathsearch("xcb", 1) ) +@@ -254,7 +257,7 @@ + char *buf; + int len; + { +- int c, state=NORMAL; ++ int c; + position here, cursor, mark1, mark2; + window *thiswin; + +@@ -311,7 +314,7 @@ + default: break; + } + } +- return; /* Hopefully, we never reach here */ ++ return NULL; /* Hopefully, we never reach here */ + } + + +--- splitvt-1.6.5.orig/vt100.c ++++ splitvt-1.6.5/vt100.c +@@ -8,6 +8,9 @@ + Many thanks to Matt Ostanik who wrote the ANSI Handbook. + */ + ++#include <unistd.h> ++#include <string.h> ++#include <stdlib.h> + #include <sys/types.h> + #ifdef HAVE_TERMIO_H + #include <termio.h> /* Used only for TIOCGWINSZ */ +@@ -20,6 +23,7 @@ + #include "vt100.h" + #include "video.h" + #include "terminal.h" ++#include "splitvt.h" + + #define SEP_CHAR ' ' /* Separator bar character */ + +@@ -135,7 +139,7 @@ + unsigned char on=NORMAL; + + vt_resetattr(); +- (void) check_attr(0, win->textattr, &on); ++ (void) check_attr(0, win->textattr, (int)&on); + } + + /* Process the ^[[X;Xm escape. Made into a separate routine to support +@@ -683,10 +687,9 @@ + break; + case 3: /* 132 char/row */ + if ( physical.cols != 132 ) { +- upper.cols=132; +- lower.cols=132; + physical.cols=132; + vt_widemode(1); ++ init_vt100(0); + } + break; + case 4: /* Set jump scroll */ +@@ -726,11 +729,9 @@ + break; + case 3: /* 80 char/row */ + if ( physical.cols == 132 ) { +- vt_rows_cols(terminal_type, +- NULL, &physical.cols); +- upper.cols=physical.cols; +- lower.cols=physical.cols; ++ physical.cols = 80; + vt_widemode(0); ++ init_vt100(0); + } + break; + case 4: /* Set smooth scroll */ +@@ -843,7 +844,8 @@ + + static int setup_vt100 = 0; /* Have we initialized the vt100 system? */ + +-char *init_vt100() ++char *init_vt100(reread_tsize) ++int reread_tsize; + { + #ifdef TIOCGWINSZ + struct /* winsize */ { +@@ -853,7 +855,7 @@ + unsigned short ws_ypixel; /* vertical size - not used */ + } mywinz; + #endif +- int i, **videomem, oldrows, newrows, newcols; ++ int i, **videomem, oldrows = 0, newrows, newcols; + position newpos; + char *ptr, *errmesg; + +@@ -869,18 +871,22 @@ + vt_initsel(); + } + ++ if (reread_tsize) ++ { + #ifdef TIOCGWINSZ +- if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) { +- if ( mywinz.ws_row ) +- physical.rows=mywinz.ws_row; +- if ( mywinz.ws_col ) +- physical.cols=mywinz.ws_col; +- } ++ if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) { ++ if ( mywinz.ws_row ) ++ physical.rows=mywinz.ws_row; ++ if ( mywinz.ws_col ) ++ physical.cols=mywinz.ws_col; ++ } + #endif +- if ( (ptr=(char *)getenv("LINES")) != NULL ) +- physical.rows=atoi(ptr); +- if ( (ptr=(char *)getenv("COLUMNS")) != NULL ) +- physical.cols=atoi(ptr); ++ ++ if ( (ptr=(char *)getenv("LINES")) != NULL ) ++ physical.rows=atoi(ptr); ++ if ( (ptr=(char *)getenv("COLUMNS")) != NULL ) ++ physical.cols=atoi(ptr); ++ } + + /* Now set defaults if we can't find the window size */ + if ( ! physical.rows ) physical.rows=24; +@@ -892,19 +898,21 @@ + if ( physical.rows < 7 ) + return("Screen is not tall enough to split."); + +- /* If physical.cols has been set to 132, assume we are on a +- vt100 wide terminal, and set 132 column mode. Note that +- setting COLUMNS in the environment will override termcap */ +- if ( physical.cols == 132 ) +- vt_widemode(1); ++ if ( ! setup_vt100 ) { ++ /* If physical.cols has been set to 132, assume we are on a ++ vt100 wide terminal, and set 132 column mode. Note that ++ setting COLUMNS in the environment will override termcap */ ++ if ( physical.cols == 132 ) ++ vt_widemode(1); ++ } + + /* Set the exportable variables */ + if ( UU_lines ) { + /* Check the user set # of lines */ +- if ( UU_lines > (physical.rows-1-3) ) +- LU_lines=(physical.rows-1-3); +- else if ( UU_lines < 3 ) +- LU_lines=3; ++ if ( UU_lines > (physical.rows-1-3+(2*force_height)) ) ++ LU_lines=(physical.rows-1-3+(2*force_height)); ++ else if ( UU_lines < 3 - (2*force_height)) ++ LU_lines=3 - (2*force_height); + else + LU_lines=UU_lines; + +--- splitvt-1.6.5.orig/splitvt.h ++++ splitvt-1.6.5/splitvt.h +@@ -34,3 +34,25 @@ + + /* Functions exported from splitvt.c */ + extern void reset_bar(); ++ ++/* If set, allow resizing to less than 3 lines */ ++extern int force_height; ++ ++void tokenize(char *array[], int size, char *line, char *tokens); ++void d_copy(register char *src, register char *dst, register int len); ++int tty_getmode(int fd); ++int tty_raw(int fd); ++int tty_reset(int fd); ++int tty_sane(int fd); ++int remove_me(void); ++int pty_open(char *argv[], int *childpid, int win); ++int addutmp(char *user, int uid, char *tty); ++char *vt_setsel(char *buf, int len, int startx, int endx, int starty, int endy); ++int delutmp(char *user, char *tty); ++int replace_me(void); ++void pty_setwin(int fd, int win); ++int check_attr(int pixel, int lastattr, int currattr); ++void d_zero(register char *dst, register int len); ++void vt_initsel(void); ++int vttest(void); ++int safe_pclose(FILE *pipefp); +--- splitvt-1.6.5.orig/splitvt.1 ++++ splitvt-1.6.5/splitvt.1 +@@ -47,6 +47,11 @@ + Suppresses loading your ~/.splitvtrc + .TP + .TB ++.I -f ++Allow setting the height of either the top or the bottom window to less than ++3 lines. ++.TP ++.TB + .I -v + Print out the version number of splitvt + .LP +@@ -173,7 +178,7 @@ + splitvt will attempt to erase the current utmp entry, and replace it + with entries for the two windows. This allows you to use programs + such as 'talk' within the splitvt windows. If you do not have write +-permission to the /etc/utmp file, you will not be able to modify the ++permission to the /var/run/utmp file, you will not be able to modify the + utmp entries. + + splitvt can be made set-uid root. splitvt will reset its user id to +--- splitvt-1.6.5.orig/splitvt-1.6.4.lsm ++++ splitvt-1.6.5/splitvt-1.6.4.lsm +@@ -0,0 +1,15 @@ ++Begin3 ++Title: Splitvt - a split windows utility ++Version: 1.6.4 ++Entered-date: 03JUN2000 ++Description: A utility to split a vt100 compatible screen into two halfs, ++ upper and lower, and run a different program simultaneously ++ in each half. ++Keywords: screen vt100 emulator ++Author: slouken@devolution.com (Sam Lantinga) ++Maintained-by: slouken@devolution.com (Sam Lantinga) ++Primary-site: http://www.devolution.com/~slouken/projects/splitvt/ ++Alternate-site: sunsite.unc.edu /pub/Linux/utils/terminal ++Platform: UNIX ++Copying-policy: GPL ++End +--- splitvt-1.6.5.orig/utmp.c ++++ splitvt-1.6.5/utmp.c +@@ -1,21 +1,27 @@ + + /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */ + ++#include <unistd.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> + #include <utmp.h> + #include <stdio.h> ++#include <string.h> ++#include <time.h> ++#include "splitvt.h" + + #ifdef DEBUG_UTMP + #undef UTMP_FILE + #define UTMP_FILE "/tmp/utmp" + #else + #ifndef UTMP_FILE +-#define UTMP_FILE "/etc/utmp" ++#define UTMP_FILE "/var/run/utmp" + #endif /* UTMP_FILE */ + #endif /* DEBUG_UTMP */ + ++int get_utmp(char *tty, struct utmp *save); ++int set_utmp(char *tty, struct utmp *save); + + /* Remove us from the utmp file, saving our entry to replace later */ + +@@ -94,7 +100,7 @@ + if (strncmp(ttyptr, ut.ut_line, sizeof(ut.ut_line)) == 0) { + /* Break out; we've found our entry! */ + if ( save ) +- d_copy((char *)&ut, save, sizeof(ut)); ++ d_copy((char *)&ut, (char *)&save, sizeof(ut)); + close(fd); + return(0); + } +@@ -158,7 +164,9 @@ + int uid; /* The uid corresponding to user */ + char *tty; /* /dev/ttyxx */ + { ++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__) + struct stat sb; ++#endif + struct utmp ut; + char *ttyptr; + +@@ -195,12 +203,13 @@ + #endif + (void) time(&ut.ut_time); + +-#if !defined(SOLARIS) && !defined(IRIX) +- /* Solaris and Irix machines do this automatically */ ++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__) ++ /* Solaris and Irix and GLIBC machines do this automatically */ + /* Change the ownership and mode of the tty */ + if ( stat(tty, &sb) == 0 ) { + (void) chmod(tty, 0620); /* crw--w---- */ + (void) chown(tty, uid, sb.st_gid); ++ + } + #endif + return(set_utmp(tty, &ut)); +--- splitvt-1.6.5.orig/lock.c ++++ splitvt-1.6.5/lock.c +@@ -1,9 +1,13 @@ + + /* The screen locking module for splitvt */ + ++#include <unistd.h> ++#include <sys/types.h> ++#include <string.h> + #include <stdio.h> + #include <pwd.h> + #include "vt100.h" ++#include "splitvt.h" + + #define UNLOCKED 0 + #define ENTERED1 1 +--- splitvt-1.6.5.orig/vttest.c ++++ splitvt-1.6.5/vttest.c +@@ -12,6 +12,7 @@ + -Sam Lantinga (slouken@toadflax.cs.ucdavis.edu) + */ + ++#include <unistd.h> + #include <sys/types.h> + #include <stdio.h> + #include <fcntl.h> +@@ -48,9 +49,12 @@ + int vttest() + { + char buff[512]; +- int x=0, w, rc=0, fd; ++ int x=0, rc=0, fd; + struct termio ttold, ttraw; + ++ /* Disabled since at least on sparc it causes a hang. */ ++ return 1; ++ + /* Set the terminal in a raw mode */ + if ( (fd=open("/dev/tty", O_RDWR, 0666)) < 0 ) + return(0); +--- splitvt-1.6.5.orig/vtmouse.c ++++ splitvt-1.6.5/vtmouse.c +@@ -7,8 +7,11 @@ + + #define SPLITVT_SOURCE + ++#include <string.h> ++#include <stdlib.h> + #include <stdio.h> + #include "vtmouse.h" ++#include "splitvt.h" + + extern FILE *safe_popen(); /* From misc.c */ + +--- splitvt-1.6.5.orig/videomem.c ++++ splitvt-1.6.5/videomem.c +@@ -1,6 +1,7 @@ + + /* This file holds the functions for manipulating video memory */ + ++#include <stdlib.h> + #include <stdio.h> + #include "video.h" + #include "terminal.h" +@@ -113,7 +114,7 @@ + int x1, x2; + int y1, y2; + { +- int l=0, i, j, eol, eos; ++ int l=0, i, j, eol, eos=0; + + --maxlen; /* Account for trailing null */ + for ( i=(x1-1); (i<x2 && l<maxlen); ++i ) { +@@ -319,7 +320,7 @@ + void paint_video(win) + window *win; + { +- unsigned char change, on=NORMAL; ++ unsigned char on=NORMAL; + int i, j, oldattr=0; + + vt_setscroll(0,0); +--- splitvt-1.6.5.orig/vtmouse.h ++++ splitvt-1.6.5/vtmouse.h +@@ -39,5 +39,7 @@ + extern int event_getc(); + extern void event_quit(); + ++#if 0 ++/* this is broken for gcc 4.0, so comment it out */ + extern FILE *xt_input, *xt_output; /* Usually untouched */ +- ++#endif +--- splitvt-1.6.5.orig/terminal.c ++++ splitvt-1.6.5/terminal.c +@@ -4,8 +4,11 @@ + actually write to the terminal. + */ + +- ++#include <curses.h> ++#include <term.h> + #include <stdio.h> ++#include <string.h> ++#include "splitvt.h" + #include "video.h" + #include "terminal.h" + +@@ -125,7 +128,7 @@ + } + return(NULL); + } +-void outc(c) int c; { putchar(c); } ++int outc(c) int c; { return putchar(c); } + + void vt_rows_cols(termtype, rows, cols) + char *termtype; +--- splitvt-1.6.5.orig/misc.c ++++ splitvt-1.6.5/misc.c +@@ -1,10 +1,17 @@ + /* Miscellaneous system dependent routines for splitsh */ + ++#define _GNU_SOURCE /* for getpt and other gnu extensions to libc */ ++ + #include <sys/types.h> ++#include <sys/wait.h> ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/stat.h> + #include <fcntl.h> + #include <stdio.h> + #include <signal.h> ++#include <utime.h> ++#include <string.h> + + + #ifdef HAVE_TERMIO_H +@@ -24,6 +31,8 @@ + /*#define STTY_HACK*/ + #endif + ++int tty_reset(int fd); ++ + /* + * Initialize a pty, fork a command running under it, and then + * return the master file descriptor +@@ -44,7 +53,10 @@ + int get_master_pty(), get_slave_pty(); + char *get_ttyname(), *myputenv(); + +- char LINES[12], COLUMNS[12], SPLITVT[24]; ++#ifndef TIOCGWINSZ ++ char LINES[12], COLUMNS[12]; ++#endif ++ char SPLITVT[24]; + int returnfd, slave_fd; + + /* Get the master pty file descriptor */ +@@ -106,6 +118,8 @@ + /* "touch" the tty so 'w' reports proper idle times */ + (void) utime(get_ttyname(), NULL); + ++ /* Set our gid to our real gid if necessary */ ++ (void) setgid(getgid()); + /* Set our uid to our real uid if necessary */ + (void) setuid(getuid()); + +@@ -182,12 +196,18 @@ + #else /* ! IRIX */ + + +-#ifdef SOLARIS /* System V.4 pty routines from W. Richard Stevens */ ++#if defined(SOLARIS) || defined(__GLIBC__) ++/* System V.4 pty routines from W. Richard Stevens */ ++/* GLIBC is very similar, so this will handle it too. */ ++ ++#ifdef SOLARIS + + #include <stropts.h> + + #define DEV_CLONE "/dev/ptmx" + ++#endif ++ + extern char *ptsname(); + + int get_master_pty() +@@ -195,9 +215,14 @@ + + char *ttyptr; + ++#ifdef SOLARIS + if ( (master_fd=open(DEV_CLONE, O_RDWR)) < 0 ) + return(-1); +- ++#else /* GLIBC */ ++ if ( (master_fd=getpt()) == -1 ) ++ return (-1); ++#endif ++ + if ( grantpt(master_fd) < 0 ) /* grant access to slave */ + { + close(master_fd); +@@ -242,6 +267,7 @@ + return(-1); + } + ++#ifdef SOLARIS + if ( ioctl(slave_fd, I_PUSH, "ptem") < 0 ) + { + close(master_fd); +@@ -262,7 +288,8 @@ + close(slave_fd); + return(-1); + } +- ++#endif ++ + return(slave_fd); + } + +@@ -393,8 +420,10 @@ + + void dropctty() + { ++#ifndef CIBAUD + int fd; +- ++#endif ++ + #if defined(_POSIX_SOURCE) || defined(SOLARIS) || \ + defined(__386BSD__) || defined(__FreeBSD__) + setsid(); /* The POSIX solution is simple. :) */ +@@ -708,7 +737,6 @@ + extern char **environ; /* The process environment strings */ + + char *newptr, **envptr; +- char *tmptr, temp[BUFSIZ]; + int distance, n=0; + + for ( distance=0; ((*(string+distance)) && +@@ -759,7 +787,7 @@ + char *line; + char *tokens; + { +- char *head, *ptr; ++ char *head; + int i=0; + + for ( head=line; *line && i < size-2; ) { +@@ -847,7 +875,7 @@ + { + char *argv[4]; + int pipe_fds[2]; +- int rw, child; ++ int rw; + + if ( strcmp(type, "r") == 0 ) + rw=0; /* READ access for parent */ diff --git a/source/a/sysfsutils/slack-desc b/source/a/sysfsutils/slack-desc new file mode 100644 index 00000000..b7b47092 --- /dev/null +++ b/source/a/sysfsutils/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------------------------------------------------------| +sysfsutils: sysfsutils (Utilities for the sysfs filesystem) +sysfsutils: +sysfsutils: The purpose of this package is to provide a set of utilities for +sysfsutils: interfacing with sysfs, a virtual filesystem in Linux kernel versions +sysfsutils: 2.6+ that provides a tree of system devices. While a filesystem is a +sysfsutils: very useful interface, a library (libsysfs) is also included that +sysfsutils: will hopefully make it easier for applications to query system +sysfsutils: devices and their attributes. +sysfsutils: +sysfsutils: +sysfsutils: diff --git a/source/a/sysfsutils/sysfsutils.SlackBuild b/source/a/sysfsutils/sysfsutils.SlackBuild new file mode 100755 index 00000000..0534b3e2 --- /dev/null +++ b/source/a/sysfsutils/sysfsutils.SlackBuild @@ -0,0 +1,104 @@ +#!/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.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysfsutils + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf sysfsutils-$VERSION +tar xjvf $CWD/sysfsutils-$VERSION.tar.bz2 +cd sysfsutils-$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 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + $ARCH-slackware-linux +make +make install DESTDIR=$PKG + +# Unless things start whining later that this libtool junk is +# required for some reason, out it goes. Especially in /lib, +# where probably nothing would find it anyway. +rm -f $PKG/lib${LIBDIRSUFFIX}/*.la + +# .so links should really go in /usr/lib: +rm $PKG/lib${LIBDIRSUFFIX}/*.so +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +# sanity check +if [ ! -L $PKG/lib${LIBDIRSUFFIX}/libsysfs.so.2 ]; then + exit 1 +fi +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf /lib${LIBDIRSUFFIX}/libsysfs.so.2 libsysfs.so ) + +( 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/usr/doc/sysfsutils-$VERSION +cp -a \ + AUTHORS COPYING CREDITS NEWS README TODO \ + docs/* \ + $PKG/usr/doc/sysfsutils-$VERSION + +# Compress and/or relink manpages: +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 $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sysfsutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysklogd/slack-desc b/source/a/sysklogd/slack-desc new file mode 100644 index 00000000..883782cc --- /dev/null +++ b/source/a/sysklogd/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------------------------------------------------------| +sysklogd: sysklogd (Linux system logging utilities) +sysklogd: +sysklogd: Dr. Greg Wettstein and Stephen Tweedie's syslogd/klogd. +sysklogd: +sysklogd: This package contains a modified version of syslogd for the Linux +sysklogd: environment. An additional utility, klogd, is included which allows +sysklogd: kernel logging to be directed through the syslogd facility. +sysklogd: Syslogd and klogd are started when your system boots. +sysklogd: +sysklogd: +sysklogd: diff --git a/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff new file mode 100644 index 00000000..26830929 --- /dev/null +++ b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff @@ -0,0 +1,90 @@ +--- ./syslogd.c.orig 2007-04-09 18:17:05.000000000 -0500 ++++ ./syslogd.c 2007-04-09 18:25:22.000000000 -0500 +@@ -1273,61 +1273,55 @@ + crunch_list(list) + char *list; + { +- int count, i; ++ int i, m, n; + char *p, *q; + char **result = NULL; + + p = list; + + /* strip off trailing delimiters */ +- while (p[strlen(p)-1] == LIST_DELIMITER) { +- count--; ++ while (*p && p[strlen(p)-1] == LIST_DELIMITER) + p[strlen(p)-1] = '\0'; +- } + /* cut off leading delimiters */ +- while (p[0] == LIST_DELIMITER) { +- count--; +- p++; +- } +- +- /* count delimiters to calculate elements */ +- for (count=i=0; p[i]; i++) +- if (p[i] == LIST_DELIMITER) count++; +- +- if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) { ++ while (p[0] == LIST_DELIMITER) ++ p++; ++ ++ /* count delimiters to calculate the number of elements */ ++ for (n = i = 0; p[i]; i++) ++ if (p[i] == LIST_DELIMITER) n++; ++ ++ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- ++ + /* + * We now can assume that the first and last + * characters are different from any delimiters, + * so we don't have to care about this. + */ +- count = 0; +- while ((q=strchr(p, LIST_DELIMITER))) { +- result[count] = (char *) malloc((q - p + 1) * sizeof(char)); +- if (result[count] == NULL) { ++ m = 0; ++ while ((q = strchr(p, LIST_DELIMITER)) && m < n) { ++ result[m] = (char *) malloc((q - p + 1) * sizeof(char)); ++ if (result[m] == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- strncpy(result[count], p, q - p); +- result[count][q - p] = '\0'; ++ memcpy(result[m], p, q - p); ++ result[m][q - p] = '\0'; + p = q; p++; +- count++; ++ m++; + } +- if ((result[count] = \ +- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) { ++ if ((result[m] = strdup(p)) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- strcpy(result[count],p); +- result[++count] = NULL; ++ result[++m] = NULL; + + #if 0 +- count=0; +- while (result[count]) +- dprintf ("#%d: %s\n", count, StripDomains[count++]); ++ m = 0; ++ while (result[m]) ++ dprintf ("#%d: %s\n", m, result[m++]); + #endif + return result; + } diff --git a/source/a/sysklogd/sysklogd-1.4.1.lsm b/source/a/sysklogd/sysklogd-1.4.1.lsm new file mode 100644 index 00000000..0c3b75f8 --- /dev/null +++ b/source/a/sysklogd/sysklogd-1.4.1.lsm @@ -0,0 +1,23 @@ +Begin3 +Title: sysklogd +Version: 1.4.1 +Entered-date: 2001-03-11 +Description: The sysklogd package implements two system log daemons. The + syslogd daemon is the general system logging daemon which + is responsible for handling requests for syslog services. + This version of syslogd is similar to the standard Berkeley + product but with a number of compatible extensions. The + klogd daemon runs either standalone or as a client of syslogd. + Klogd 'listens' to kernel log messages, prioritizes them and + routes them to either output files or to syslogd. This + version of klogd will optionally translate kernel addresses + to their symbolic equivalents if provided with a system map. +Keywords: logging, remote, kernel, syslogd, proc, daemon, klogd +Author: greg@wind.enjellic.com (Dr. G.W. Wettstein) +Maintained-by: joey@infodrom.ffis.de (Martin Schulze) +Primary-site: www.infodrom.ffis.de /projects/sysklogd + 82kB sysklogd-1.4.1.tar.gz + 1kB sysklogd-1.4.1.lsm +Alternate-site: metalab.unc.edu /pub/Linux/system/daemons +Copying-policy: syslogd is under Berkeley copyright, klogd is under GPL. +End diff --git a/source/a/sysklogd/sysklogd.SlackBuild b/source/a/sysklogd/sysklogd.SlackBuild new file mode 100755 index 00000000..110659e4 --- /dev/null +++ b/source/a/sysklogd/sysklogd.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2005-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.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-10} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysklogd + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sysklogd.tar.gz + +cd $TMP +rm -rf sysklogd-$VERSION +tar xzvf $CWD/sysklogd-$VERSION.tar.gz || exit 1 +cd sysklogd-$VERSION +zcat $CWD/sysklogd_1.4.1-20.diff.gz | patch -p1 --verbose || exit 1 +#zcat $CWD/sysklogd-1.4.1-owl-syslogd-crunch_list.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 -j4 || exit 1 +make syslog_tst || exit 1 +cat klogd > $PKG/usr/sbin/klogd +cat syslog_tst > $PKG/usr/sbin/syslog_tst +cat syslogd > $PKG/usr/sbin/syslogd +for page in klogd.8 sysklogd.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +cat syslog.conf.5 | gzip -9c > $PKG/usr/man/man5/syslog.conf.5.gz +mkdir -p $PKG/usr/doc/sysklogd-$VERSION +cp -a ANNOUNCE CHANGES COPYING INSTALL MANIFEST NEWS README.1st \ + README.linux $PKG/usr/doc/sysklogd-$VERSION +chmod 644 $PKG/usr/doc/sysklogd-$VERSION/* +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysklogd-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/sysklogd-$VERSION + rm -rf $PKG +fi diff --git a/source/a/sysklogd/sysklogd_1.4.1-20.diff b/source/a/sysklogd/sysklogd_1.4.1-20.diff new file mode 100644 index 00000000..9bb27bbb --- /dev/null +++ b/source/a/sysklogd/sysklogd_1.4.1-20.diff @@ -0,0 +1,2555 @@ +--- sysklogd-1.4.1.orig/CHANGES ++++ sysklogd-1.4.1/CHANGES +@@ -30,3 +30,4 @@ + . Olaf Kirch <okir@caldera.de> + - Remove Unix Domain Sockets and switch to Datagram Unix Sockets + . Several bugfixes and improvements, please refer to the .c files ++ +--- sysklogd-1.4.1.orig/README.linux ++++ sysklogd-1.4.1/README.linux +@@ -44,8 +44,8 @@ + mail to Majordomo@Infodrom.North.DE with a line "subscribe sysklogd" + in the message body. + +-New versions of this package will be available at Joey's ftp server. +-ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/ ++New versions of this package will be available at Joey's server. ++ http://www.infodrom.org/projects/sysklogd/ + + Best regards, + +@@ -67,6 +67,6 @@ + + Martin Schulze + Infodrom Oldenburg +-joey@linux.de ++joey@infodrom.org + + And a host of bug reporters whose contributions cannot be underestimated. +--- sysklogd-1.4.1.orig/klogd.8 ++++ sysklogd-1.4.1/klogd.8 +@@ -321,7 +321,7 @@ + .B klogd + to reload the module symbol information whenever a protection fault + is detected. Caution should be used before invoking the program in +-\'paranoid\' mode. The stability of the kernel and the operating ++\&'paranoid\&' mode. The stability of the kernel and the operating + environment is always under question when a protection fault occurs. + Since the klogd daemon must execute system calls in order to read the + module symbol information there is the possibility that the system may +--- sysklogd-1.4.1.orig/ksym_mod.c ++++ sysklogd-1.4.1/ksym_mod.c +@@ -78,6 +78,11 @@ + * + * Tue Sep 12 23:11:13 CEST 2000: Martin Schulze <joey@infodrom.ffis.de> + * Changed llseek() to lseek64() in order to skip a libc warning. ++ * ++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org> ++ * Removed references to <linux/module.h> since it doesn't work ++ * anymore with its recent content from Linux 2.4/2.6, created ++ * module.h locally instead. + */ + + +@@ -89,11 +94,12 @@ + #include <errno.h> + #include <sys/fcntl.h> + #include <sys/stat.h> ++#include "module.h" + #if !defined(__GLIBC__) + #include <linux/time.h> +-#include <linux/module.h> ++#include <linux/linkage.h> + #else /* __GLIBC__ */ +-#include <linux/module.h> ++#include <linux/linkage.h> + extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); + extern int get_kernel_syms __P ((struct kernel_sym *__table)); + #endif /* __GLIBC__ */ +--- sysklogd-1.4.1.orig/module.h ++++ sysklogd-1.4.1/module.h +@@ -0,0 +1,90 @@ ++/* ++ module.h - Miscellaneous module definitions ++ Copyright (c) 1996 Richard Henderson <rth@tamu.edu> ++ Copyright (c) 2004 Martin Schulze <joey@infodrom.org> ++ ++ This file is part of the sysklogd package. ++ ++ 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., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++/* ChangeLog: ++ * ++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org> ++ * Created local copy of module.h based on the content of Linux ++ * 2.2 since <linux/module.h> doesn't work anymore with its ++ * recent content from Linux 2.4/2.6. ++ * Thu May 25 09:14:33 CEST 2006: Martin Schulze <joey@infodrom.org> ++ * Removed asm/atomic.h since it is not needed anymore. ++ */ ++ ++#define MODULE_NAME_LEN 60 ++ ++struct kernel_sym ++{ ++ unsigned long value; ++ char name[MODULE_NAME_LEN]; ++}; ++ ++ ++struct list_head { ++ struct list_head *next, *prev; ++}; ++ ++ ++struct module_info ++{ ++ unsigned long addr; ++ unsigned long size; ++ unsigned long flags; ++ long usecount; ++}; ++ ++ ++struct module ++{ ++ unsigned long size_of_struct; /* == sizeof(module) */ ++ struct module *next; ++ const char *name; ++ unsigned long size; ++ ++ union ++ { ++ int usecount; ++ long pad; ++ } uc; /* Needs to keep its size - so says rth */ ++ ++ unsigned long flags; /* AUTOCLEAN et al */ ++ ++ unsigned nsyms; ++ unsigned ndeps; ++ ++ struct module_symbol *syms; ++ struct module_ref *deps; ++ struct module_ref *refs; ++ int (*init)(void); ++ void (*cleanup)(void); ++ const struct exception_table_entry *ex_table_start; ++ const struct exception_table_entry *ex_table_end; ++#ifdef __alpha__ ++ unsigned long gp; ++#endif ++ /* Members past this point are extensions to the basic ++ module support and are optional. Use mod_opt_member() ++ to examine them. */ ++ const struct module_persist *persist_start; ++ const struct module_persist *persist_end; ++ int (*can_unload)(void); ++}; +--- sysklogd-1.4.1.orig/pidfile.c ++++ sysklogd-1.4.1/pidfile.c +@@ -87,7 +87,7 @@ + int fd; + int pid; + +- if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1) ++ if ( ((fd = open(pidfile, O_RDWR|O_CREAT|O_TRUNC, 0644)) == -1) + || ((f = fdopen(fd, "r+")) == NULL) ) { + fprintf(stderr, "Can't open or create %s.\n", pidfile); + return 0; +--- sysklogd-1.4.1.orig/syslog.conf.5 ++++ sysklogd-1.4.1/syslog.conf.5 +@@ -64,7 +64,7 @@ + The + .I facility + is one of the following keywords: +-.BR auth ", " authpriv ", " cron ", " daemon ", " kern ", " lpr ", " ++.BR auth ", " authpriv ", " cron ", " daemon ", " ftp ", " kern ", " lpr ", " + .BR mail ", " mark ", " news ", " security " (same as " auth "), " + .BR syslog ", " user ", " uucp " and " local0 " through " local7 . + The keyword +@@ -122,7 +122,7 @@ + This + .BR syslogd (8) + has a syntax extension to the original BSD source, that makes its use +-more intuitively. You may precede every priority with an equation sign ++more intuitive. You may precede every priority with an equation sign + (``='') to specify only this single priority and not any of the + above. You may also (both is valid, too) precede the priority with an + exclamation mark (``!'') to ignore all that priorities, either exact +@@ -300,7 +300,7 @@ + .B syslogd + log all messages that come with either the + .BR info " or the " notice +-facility into the file ++priority into the file + .IR /var/log/messages , + except for all messages that use the + .B mail +--- sysklogd-1.4.1.orig/syslogd.c ++++ sysklogd-1.4.1/syslogd.c +@@ -890,11 +890,11 @@ + dprintf("Checking pidfile.\n"); + if (!check_pid(PidFile)) + { ++ signal (SIGTERM, doexit); + if (fork()) { + /* + * Parent process + */ +- signal (SIGTERM, doexit); + sleep(300); + /* + * Not reached unless something major went wrong. 5 +@@ -1074,9 +1074,9 @@ + (fd_set *) NULL, (struct timeval *) NULL); + if ( restart ) + { ++ restart = 0; + dprintf("\nReceived SIGHUP, reloading syslogd.\n"); + init(); +- restart = 0; + continue; + } + if (nfds == 0) { +@@ -1141,13 +1141,13 @@ + */ + printchopped(from, line, \ + i + 2, finet); +- } else if (i < 0 && errno != EINTR) { ++ } else if (i < 0 && errno != EINTR && errno != EAGAIN) { + dprintf("INET socket error: %d = %s.\n", \ + errno, strerror(errno)); + logerror("recvfrom inet"); + /* should be harmless now that we set + * BSDCOMPAT on the socket */ +- sleep(10); ++ sleep(1); + } + } + #endif +@@ -1216,6 +1216,7 @@ + { + int fd, on = 1; + struct sockaddr_in sin; ++ int sockflags; + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { +@@ -1241,6 +1242,24 @@ + close(fd); + return -1; + } ++ /* We must not block on the network socket, in case a packet ++ * gets lost between select and recv, otherise the process ++ * will stall until the timeout, and other processes trying to ++ * log will also stall. ++ */ ++ if ((sockflags = fcntl(fd, F_GETFL)) != -1) { ++ sockflags |= O_NONBLOCK; ++ /* ++ * SETFL could fail too, so get it caught by the subsequent ++ * error check. ++ */ ++ sockflags = fcntl(fd, F_SETFL, sockflags); ++ } ++ if (sockflags == -1) { ++ logerror("fcntl(O_NONBLOCK), suspending inet"); ++ close(fd); ++ return -1; ++ } + if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) { + logerror("bind, suspending inet"); + close(fd); +@@ -1275,7 +1294,7 @@ + for (count=i=0; p[i]; i++) + if (p[i] == LIST_DELIMITER) count++; + +- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) { ++ if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); + exit(0); + } +@@ -1539,20 +1558,37 @@ + int fac, prilev, lognum; + int msglen; + char *timestamp; ++#ifdef __gnu_linux__ ++ sigset_t mask; ++#else ++#ifndef SYSV ++ sigset_t omask; ++#endif ++#endif + + dprintf("logmsg: %s, flags %x, from %s, msg %s\n", textpri(pri), flags, from, msg); + ++#ifdef __gnu_linux__ ++ sigemptyset(&mask); ++ sigaddset(&mask, SIGHUP); ++ sigaddset(&mask, SIGALRM); ++ sigprocmask(SIG_BLOCK, &mask, NULL); ++#else + #ifndef SYSV + omask = sigblock(sigmask(SIGHUP)|sigmask(SIGALRM)); + #endif ++#endif + + /* + * Check to see if msg looks non-standard. + */ + msglen = strlen(msg); +- if (msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || +- msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') +- flags |= ADDDATE; ++ flags |= ADDDATE; ++ if ( !(msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || ++ msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')) { ++ msg += 16; ++ msglen -= 16; ++ } + + (void) time(&now); + if (flags & ADDDATE) +@@ -1581,9 +1617,13 @@ + (void) close(f->f_file); + f->f_file = -1; + } ++#ifdef __gnu_linux__ ++ sigprocmask(SIG_UNBLOCK, &mask, NULL); ++#else + #ifndef SYSV + (void) sigsetmask(omask); + #endif ++#endif + return; + } + #ifdef SYSV +@@ -1646,9 +1686,13 @@ + } + } + } ++#ifdef __gnu_linux__ ++ sigprocmask(SIG_UNBLOCK, &mask, NULL); ++#else + #ifndef SYSV + (void) sigsetmask(omask); + #endif ++#endif + } + #if FALSE + } /* balance parentheses for emacs */ +@@ -1839,7 +1883,7 @@ + #else + && e == EBADF) { + #endif +- f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY); ++ f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY|O_NONBLOCK); + if (f->f_file < 0) { + f->f_type = F_UNUSED; + logerror(f->f_un.f_fname); +@@ -2640,7 +2684,7 @@ + f->f_file = open(++p, O_RDWR|O_NONBLOCK); + f->f_type = F_PIPE; + } else { +- f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY, ++ f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_NONBLOCK, + 0644); + f->f_type = F_FILE; + } +--- sysklogd-1.4.1.orig/debian/NMU-Disclaimer ++++ sysklogd-1.4.1/debian/NMU-Disclaimer +@@ -0,0 +1,45 @@ ++Non Maintainer Upload of this Package ++------------------------------------- ++ ++If you plan to work on an NMU for this package, read the following ++closely. It can save you and me some grief. ++ ++ 1. At first, contact the maintainer (i.e. send a mail to ++ joey@debian.org, do not cc or bounce a mail, send a plain mail, ++ not copied to any mailing list or the BTS) and ask about the ++ status of the bug you are considering to work on. ++ ++ 2. In this mail include all information relevant for this problem, ++ i.e. include a description of the bug and not only its bug ++ number. ++ ++ 3. If the maintainer is not able or willing to fix the problem or ++ does not respond within four days, continue with step 4. ++ ++ 4. Work on the bug and prepare a patch. Do not upload into the ++ Debian archive. ++ ++ 5. Send the entire patch, together with enough explanations, to the ++ maintainer for reviewing and ask him for permission of an NMU ++ using this patch. ++ ++ 6. IF AND ONLY IF the maintainer approves the patch (or doesn't ++ respond within four days), upload the NMU to the incoming ++ directory and send the patch to the BTS. If the NMU is not ++ approved, go back to 4. or add the NMU to your homepage, but do ++ not upload it to the Debian archive. ++ ++ 7. Properly sized and well-written patches sent to the BTS are always ++ appreciated, even if they are rejected later. They demonstrate a ++ potential solution which could probably improved into a real ++ solution. ++ ++ 8. NEVER change the way a package is maintained in an NMU, i.e. don't ++ remove dh_* stuff or switch to dh_* respectively. This rule ++ applies to all NMU's, not only to an NMU for this package. ++ ++These rules always apply. They even apply if somebody declares NMUs ++as ok and reduces regular NMU rules to a delay of zero days. Unless ++I'm on vacation or on a show I am reachable via mail, so there is ++hardly a reason not to contact me. ++ +--- sysklogd-1.4.1.orig/debian/changelog ++++ sysklogd-1.4.1/debian/changelog +@@ -0,0 +1,694 @@ ++sysklogd (1.4.1-20) unstable; urgency=low ++ ++ * Added a missing whitespace to the rc file (Closes: Bug#388787, ++ Bug#388378, Bug#388260) ++ * Corrected typo in syslog.conf(5) (Closes: Bug#327200) ++ ++ -- Martin Schulze <joey@infodrom.org> Thu, 28 Sep 2006 20:46:41 +0200 ++ ++sysklogd (1.4.1-19) unstable; urgency=high ++ ++ * Converted init.d scripts to LSB style ++ - accidently closes: Bug#211858 ++ * Removed code that's not required anymore in cron.daily/sysklogd ++ * Fix initial permission (closes: Bug#285500) ++ * Added a special exception for when /var/log/news is a file (closes: ++ Bug#266555) ++ * Tidy up the postinst script ++ * Added devfs awarenes for /dev/xconsole creation (closes: Bug#206066) ++ * Move daemon stop logic into klogd's postinst ++ * Removed both preinst scripts from the distribution ++ ++ -- Martin Schulze <joey@infodrom.org> Mon, 18 Sep 2006 13:15:59 +0200 ++ ++sysklogd (1.4.1-18) unstable; urgency=medium ++ ++ * Removed asm/atomic.h since it is not needed anymore. (closes: ++ Bug#350764) ++ * Fixed typo in NMU-Disclaimer (closes: Bug#225895) ++ * Corrected getconf call in debian/rules to fix lagefile support ++ (closes: Bug#320119) ++ * Applied patch by Joey Hess to prevent klogd to be stopped/started too ++ fast (closes: Bug#284914) ++ * Finish /usr/share/doc transition with patch by Julien Cristau (closes: ++ Bug#337712, Bug#322769, Bug#255590) ++ * Reset the 'restart' flag immediately after entering the restart code. ++ Thanks to Dean Gaudet (closes: Bug#154805) ++ * Added support for /etc/default/{syslogd,klogd} files to contain ++ commandline arguments for syslogd and klogd (closes: Bug#98631, ++ Bug#127579, Bug#241350, Bug#266985) ++ * Added a description of system log level and link to sysctl(8) (closes: ++ Bug#164153) ++ * Acknowledging Joey's NMUs (closes: Bug#347333) ++ ++ -- Martin Schulze <joey@infodrom.org> Thu, 25 May 2006 11:07:52 +0200 ++ ++sysklogd (1.4.1-17) unstable; urgency=high ++ ++ * Use $(getconf LFS_CFLAGS) for large file support ++ * Applied adjusted patch by Miquel van Smoorenburg to fix spurious ++ hanging syslogd in connection with futex and NPTL introduced in recent ++ glibc versions and Linux 2.6 (closes: Bug#301511) ++ ++ -- Martin Schulze <joey@infodrom.org> Wed, 25 May 2005 20:10:31 +0200 ++ ++sysklogd (1.4.1-16) unstable; urgency=medium ++ ++ * applied patch by cph ++ * Applied patch by Colin Phipps so that syslogd doesn't block on the ++ network socket, in case a packet gets lost between select and ++ recv. (closes: Bug#275578) ++ * Applied patch by Anders Henke so that syslog calculates the time for ++ each message (closes: Bug#207619) ++ * Don't create /var/log/news if it's not needed (closes: Bug#266555) ++ ++ -- Martin Schulze <joey@infodrom.org> Sun, 7 Nov 2004 13:10:03 +0100 ++ ++sysklogd (1.4.1-15) unstable; urgency=low ++ ++ * Applied patch by Steve Grubb <linux_4ever@yahoo.com> to adjust memory ++ calculation in crunch_list(). ++ * Removed atomic_t in the usecount field of the module struct for ++ compatibility reasons (closes: Bug#245513) ++ ++ -- Martin Schulze <joey@infodrom.org> Tue, 27 Jul 2004 17:28:49 +0200 ++ ++sysklogd (1.4.1-14) unstable; urgency=medium ++ ++ * Added more trailing newlines to init.d programs (closes: Bug#216110) ++ * Adjusted the use of head to the new behaviour for GNU coreutils ++ (closes: Bug#205535, Bug#172655) ++ * Install /usr/share/sysklogd/dummy to replace /usr/share/doc/sysklogd, ++ since /usr/share/doc should be removable by an admin (Policy 12.3). ++ (closes: Bug#237724) ++ * Added a private module.h with extracted data from Linux 2.2 to replace ++ <linux/module.h> which creates a number parse errors. (closes: Bug#223210) ++ * Added support for invoke-rc.d as written in policy 9.3.3 (closes: ++ Bug#213211, Bug#213585, Bug#216858, Bug#214912) ++ ++ -- Martin Schulze <joey@debian.org> Wed, 31 Mar 2004 18:18:54 +0200 ++ ++sysklogd (1.4.1-13) unstable; urgency=medium ++ ++ * Updated some text in the cronjobs ++ * Direct output of reloading to /dev/null so that no cron log mails will ++ be created defaultly (closes: Bug#213717, Bug#213646) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 2 Oct 2003 19:51:34 +0200 ++ ++sysklogd (1.4.1-12) unstable; urgency=low ++ ++ * On heavily loaded system syslog will not spit out error messages ++ anymore when recvfrom() results in EAGAIN (closes: Bug#188194) ++ * Applied patch by Ryan Murray to make this package build on mipsel ++ again (closes: Bug#191969) ++ * Added O_NONBLOCK to two more locations, since Andreas Barth ++ <aba@not.so.argh.org> believes that it fixes this bug. However, ++ according to the note in open(2) this does not have to have any effect ++ on files other than pipes... (closes: Bug#45245) ++ * Permissions on empty files should also be corrected (closes: Bug#135485) ++ * Corrected the number of bytes denoting 1GB for large logfiles (closes: Bug#138234) ++ * Corrected the handling of the skip pattern (closes: Bug#152247) ++ * Don't cut non-newline trailing characters from the last line anymore ++ (closes: Bug#152248) ++ * Improved init.d scripts so non-existing pid directories are not ++ touched anymore (see Bug#165472) ++ * Whoops, looks like O_TRUNC was missing when opening the pidfile for writing, ++ increasing the chance of left-overs from older pid contents in the ++ file. (closes: Bug#165472) ++ * Don't send SIGHUP to klogd anymore. Only restart it in case the old ++ process got lost somehow. (closes: Bug#168851) ++ * Improved init.d script output (closes: Bug#190328) ++ * Adjusted the use of chown to the new behaviour for GNU coreutils ++ (closes: Bug#205364) ++ * Adjusted the use of head to the new behaviour for GNU coreutils ++ (closes: Bug#205535) ++ * Moved the installation of the signal handler up a little bit so it ++ guaranteed to be available when the child is forked, hence, fixing a ++ race condition. This used to create problems with UML and fast ++ machines. Thanks to Jon Burgess <Jon_Burgess@eur.3com.com> (closes: ++ Bug#211993) ++ ++ -- Martin Schulze <joey@kyllikki.infodrom.north.de> Sun, 28 Sep 2003 12:34:31 +0200 ++ ++sysklogd (1.4.1-11) unstable; urgency=low ++ ++ * Added a disclaimer for those people who plan to NMU this package ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 17 Oct 2002 08:26:04 +0200 ++ ++sysklogd (1.4.1-10) unstable; urgency=low ++ ++ * Removed bashism from rc files (closes: Bug#127406, Bug#127407, ++ Bug#127578, Bug#127372) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 3 Jan 2002 18:22:13 +0100 ++ ++sysklogd (1.4.1-9) unstable; urgency=low ++ ++ * Use a newer Standards-Version ++ * Corrected dependency of sysklogd (closes: Bug#123908) ++ * Transfer section/priority into .deb (closes: Bug#123908) ++ * Fix typo in syslog.conf(5) (closes: Bug#126899) ++ * Added ``-e'' to weekly and daily cron scripts. Beware, from now on ++ they will fail if an error occurs and leave /var/log in an undefined ++ state, not signalling syslogd to reopen files as well. (closes: Bug#123281) ++ * Added some intelligence into /etc/init.d/sysklogd and klogd so the ++ daemons will be restarted when they should only be reloaded but are ++ not running. This could be helpful if after an OOM situation syslogd ++ or klogd were killed by init but cron wasn't. (closes: Bug#126749, Bug#126750) ++ * Create /dev/xconsole in init.d script if it doesn't exist. Hence ++ removing this out of the postinst script. This should help situations ++ when devfs is installed and /dev/ get's removed on system boot, thus ++ /dev/xconsole gets removed as well. (closes: Bug#106535) ++ * Added ftp facility (closes: Bug#100437) ++ * Added missing documentation to syslogd-listfiles(8) (fixes: Bug#48326) ++ * Added a PATH= statement to all init.d files (closes: Bug#47901) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 1 Jan 2002 13:44:42 +0100 ++ ++sysklogd (1.4.1-8) unstable; urgency=low ++ ++ * Added special code to find out if a logfile was rotated within the ++ last 5 hours already, hence should not be rotated again. Hope this ++ satisfies Craig Sanders' request properly. (closes: Bug#39198) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 6 Dec 2001 11:06:53 +0100 ++ ++sysklogd (1.4.1-7) unstable; urgency=low ++ ++ * Fixed override disparity ++ * Added more defines so files larger than 2GB can be created, approved ++ by the glibc maintainer (closes: Bug#120574) ++ * Closing old bug reports (closes: Bug#95230, Bug#34391, Bug#72892) ++ * Added `--large nnn' as argument to syslogd-listfiles so people can ++ decide on their own what a large file is (closes: Bug#39198) ++ * Increased the default definition for large files ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 5 Dec 2001 22:01:23 +0100 ++ ++sysklogd (1.4.1-6) unstable; urgency=low ++ ++ * Corrected path for syslogd in cron scripts (closes: Bug#122261, ++ Bug#121680, Bug#120809) ++ * Already fixed bugs (closes: Bug#121784) ++ * Improved package description (closes: Bug#120755) ++ * Added an improved pattern for news.*, thanks Takuo (closes: Bug#103999) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 4 Dec 2001 09:46:46 +0100 ++ ++sysklogd (1.4.1-5) unstable; urgency=low ++ ++ * Fix the override disparity ++ * Removed superflous Priority ++ * Removed =VER= string from syslogd-listfiles (closes: Bug#102998) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 23:00:29 +0100 ++ ++sysklogd (1.4.1-4) unstable; urgency=low ++ ++ * Added convenience code to support $DEB_BUILD_OPTIONS ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 18:41:23 +0100 ++ ++sysklogd (1.4.1-3) unstable; urgency=medium ++ ++ * Be more anal about whether sysklogd is installed or not in our cron ++ scripts (closes: Bug#100319) ++ * Added missing newline in init.d script upon restart (closes: Bug#95554) ++ * Moved stop code to prerm (closes: Bug#120249, Bug#96355, Bug#105441, ++ Bug#105442, Bug#109470) ++ * Corrected broken character in klogd.8 (closes: Bug#75932) [repeat, due ++ to typo] ++ * Added dependency to klogd so people who upgrade their sysklogd package ++ won't lose it anymore (closes: Bug#93729) [repeat, another bug#] ++ * auth.* files are only rotated daily (closes: Bug#102138) ++ * Changed -p to -s in documentation (closes: Bug#108473) ++ * Updated documentation to reflect the current location of the mailing ++ list ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 20 Nov 2001 20:48:32 +0100 ++ ++sysklogd (1.4.1-2) unstable; urgency=low ++ ++ * Corrected location of GPL (closes: Bug#90582) ++ * Added section and priority for binary packages ++ * Added dependency to klogd so people who upgrade their sysklogd package ++ won't lose it anymore (closes: Bug#93922) ++ * Added code snipped to stop klogd/syslogd upon removal (closes: ++ Bug#90534, Bug#90970) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 21 Apr 2001 15:06:02 +0200 ++ ++sysklogd (1.4.1-1) unstable; urgency=low ++ ++ * New upstream source (closes: Bug#87819, Bug#70790, Bug#32580, ++ Bug#62358, Bug#71631) ++ * Upstream: Doesn't re-set log-level if not requested (closes: ++ Bug#76170, Bug#76170, Bug#85289) ++ * Upstream: Ignore zero bytes (closes: Bug#85478, Bug#85478, Bug#41068) ++ * Upstream: Corrected documentation for `-s' (closes: Bug#87020) ++ * Upstream: test for existence of syslogd-listfiles before calling ++ them. This got lost due to 1.4.0 brokennes which was packaged and ++ removed some hours later (closes: Bug#84872, Bug#66712) ++ * Applied patch by Tommi Virtanen <tv@debian.org> splitting the package ++ into `sysklogd' and `klogd' (closes:Bug#35586, Bug#72043, Bug#74864, ++ Bug#72122) ++ * Provide / depend on virtual packages system-log-daemon ++ and linux-kernel-log-daemon (closes: Bug#67604) ++ * Applied patch from Tim Janik <timj@gtk.org> to support `-s pattern' in ++ syslogd-listfiles ++ * Transition to FHS, i.e. /usr/share/doc instead of /usr/doc and ++ /usr/share/man instead of /usr/man (closes: Bug#79250, Bug#80771) ++ * Use --exec for stopping services (closes: Bug#76757) ++ * Corrected broken character in klogd.8 (cloes: Bug#75932) ++ * Only rotate logfiles with size greater than zero. This got lost due ++ to 1.4.0 brokennes which was packaged and removed some hours later ++ (closes: Bug#74993, Bug#49824) ++ * Added another note about modificability of cronjobs (closes: ++ Bug#88741) ++ * Since klogd replaces parts of sysklogd a proper Replaces line is there ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 11 Mar 2001 22:30:53 +0100 ++ ++sysklogd (1.4-1) stable unstable; urgency=medium, closes=70790 32580 49824 62358 66712 71631 ++ ++ * Added paragraph to binary target ++ * New upstream version (closes: Bug#70790, Bug#32580, Bug#62358, ++ Bug#71631) ++ * Only rotate logfiles that have a size greater than zero (closes: ++ Bug#49824) ++ * Test for existence of syslogd-listfiles before calling it (closes: ++ Bug#66712) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 18 Sep 2000 16:02:05 +0200 ++ ++sysklogd (1.3-33) unstable; urgency=medium, closes=38977 ++ ++ * chmod 0640 /dev/xconsole regardless of its existence (closes: Bug#38977) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 12 Sep 1999 20:47:53 +0200 ++ ++sysklogd (1.3-32) unstable; urgency=low, closes=35408 34733 36198 ++ ++ * Fixed typo in syslogd-listfiles (closes: Bug#35408) ++ * Removed superflous call to utmpname() (closes: Bug#34733) ++ * Added --ignore-size and limit for rotating log files at 2MB to ++ syslogd-listfiles (closes: Bug#36198) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 23 May 1999 10:40:33 +0200 ++ ++sysklogd (1.3-31) frozen unstable; urgency=low, closes=28629 30093 31494 30462 ++ ++ * ``-m 0'' turns off -- MARK -- now. (closes: Bug#28629, Bug#31494) ++ * Changed Greg's e-mail address to represent his current one. ++ * Shortened line length for kernel logging slightly. ++ * Corrected return value of AddModule (closes: Bug#30093) ++ * Finally fixed an error with `-a' processing, thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#30462) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 19 Jan 1999 23:56:07 +0100 ++ ++sysklogd (1.3-30) unstable; urgency=low, closes=28128 28122 24893 ++ ++ * Contains more patches from Topi Miettinen. ++ * Fixed two mistakes from the most recent version ++ * Fixed fd leak problem. Thanks to Topi for detecting it ++ * Ouch! Looks like the released package again is broken. It worked ++ locally. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 18 Oct 1998 20:38:22 +0200 ++ ++sysklogd (1.3-29) unstable; urgency=low, closes=24893 ++ ++ * Re-Applied patch provided vom Topi Miettinen with regard to the people ++ from OpenBSD. This provides the additional '-a' argument used for ++ specifying additional UNIX domain sockets to listen to. This is been ++ used with chroot()'ed named's for example. An example is described at ++ http://www.psionic.com/papers/dns.html. This time the patch doesn't ++ stall syslogd. Thanks to Topi Miettinen <tom@medialab.sonera.net> ++ (closes: Bug#24893) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 17 Oct 1998 20:23:00 +0200 ++ ++sysklogd (1.3-28) unstable; urgency=low ++ ++ * Added manpage for syslog-facility, also written by Raphal Hertzog ++ * Reverted support for multiple Unix domain sockets since it caused ++ syslogd to not accept more sockets after a certain (undefinitve) ++ time. (opens: Bug#24893) ++ * The complete code is still present, search for `Bug#24893' ++ * Commented out `-a' in the syslogd.8 manpage ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Oct 1998 19:35:26 +0200 ++ ++sysklogd (1.3-27) frozen unstable; urgency=low, closes=21212 11917 21606 24609 25835 26015 24648 20135 23502 24893 24894 ++ ++ * Postinst will create files with correct file modes (closes: Bug#21212) ++ * Made /dev/xconsole mode 0640 and root.adm (closes: Bug#11917) ++ * Changed priority of exit message from LOG_ERR to LOG_INFO (closes ++ Bug#21606) ++ * The code now is compilable without SYSLOG_INET again. Thanks to ++ Enrik Berkhan <enrik@rzstud1.akk.org>. ++ * Added support for TESTING define which will turn syslogd into ++ stdio-mode used for debugging. ++ * Reworked the initialization/fork code. Now the parent ++ process activates a signal handler which the daughter process will ++ raise if it is initialized. Only after that one the parent process ++ may exit. Otherwise klogd might try to flush its log cache while ++ syslogd can't receive the messages yet. (closes: Bug#24609) ++ * Fixed typo in /etc/syslog.conf (closes: Bug#25835) ++ * Modified pre- and postinst scripts to set +e before executing external ++ scripts. This is a workaround against a bug in bash (Bug#23857). ++ Bash exports the errexit (-e) flag if allexport (-a) has been set. The ++ bug occurs even if allexport is being _re_set. (closes: Bug#26015) ++ * Modified ksym::CheckVersion() ++ . Use shift to decode the kernel version ++ . Compare integers of kernel version ++ . extract major.minor.patch from utsname.release via sscanf() ++ The reason lays in possible use of kernel flavours which modify ++ utsname.release but no the Version_ symbol. (closes: Bug#20135) ++ * Corrected klogd.c in order to support the new address space for late ++ 2.1 kernels. Some support for unsigned long in contrary to int was ++ missing. (closes: Bug#23502) ++ * Applied patch provided vom Topi Miettinen with regard to the people ++ from OpenBSD. This provides the additional '-a' argument used for ++ specifying additional UNIX domain sockets to listen to. This is been ++ used with chroot()'ed named's for example. An example is described at ++ http://www.psionic.com/papers/dns.html. Thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#24893) ++ * Added support for `ftp' log facility which was introduced by glibc ++ version 2. Thanks to netgod and Flood from #Debian. ++ * Code cleanups with regard to bsd -> posix transition and stronger ++ security (buffer length checking). Thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#24894) ++ . index() --> strchr() ++ . sprintf() --> snprintf() ++ . bcopy() --> memcpy() ++ . bzero() --> memset() ++ . UNAMESZ --> UT_NAMESIZE ++ . sys_errlist --> strerror() ++ * Added support for setutent()/getutent()/endutend() instead of binary ++ reading the UTMP file. This is the the most portable way. Thanks to ++ Topi Miettinen <tom@medialab.sonera.net>. ++ * Avoid logging of SIGCHLD when syslogd is in the process of exiting and ++ closing its files. Again thanks to Topi. ++ * Added /usr/sbin/syslog-facility, written by Raphal Hertzog ++ <hertzog@debian.org>. It opens a way for other packages to add and ++ remove logfiles/facilities. ++ * Modified printline() to support 8bit characters - such as russion ++ letters. Thanks to Vladas Lapinskas <lapinskas@mail.iae.lt>. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 12 Oct 1998 22:24:04 +0200 ++ ++sysklogd (1.3-26) frozen unstable; urgency=low, closes=20903 20765 20556 20507 20647 20220 ++ ++ * Fixed typos in syslogd-listfiles(1), thanks to Francesco Potorti` ++ <F.Potorti@cnuce.cnr.it> (closes: Bug#20903) ++ * Corrected email address for Shane Alderton (closes: Bug#20765) ++ * Fixed manpage to not reflect reverse implementated SIGALRM signal ++ handler (closes: Bug#20647) ++ * Modified behaviour with including <sys/module.h> (closes: Bug#20556) ++ * Added correct prototype for llseek() (closes: Bug#20507, Bug#20220) ++ * Added more log information if problems occurr while reading a system ++ map file. ++ * Modified System.map read function to try all possible map files until ++ a file with matching version is found. ++ * Added Debian release to klogd ++ * Switched to fgets() as gets() is not buffer overrun secure. ++ * Modified loop for detecting the correct system map. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 16 Apr 1998 19:28:05 +0200 ++ ++sysklogd (1.3-25) unstable; urgency=low, closes=19454 19145 1914 ++ ++ * Corrected permissions on packaging control files (closes: Bug#19414) ++ * Removed kill statements from rc file (closes: Bug#19454, Bug#19145) ++ * Applied patch from Pedro Manuel Rodrigues <pmanuel@cindy.fe.up.pt> to ++ let klogd work togther with >2GB address space. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 19 Mar 1998 23:56:09 +0100 ++ ++sysklogd (1.3-24) unstable; urgency=low, closes=18124 ++ ++ * Fixed tiny mistake which refused the MARK facility to work properly ++ (closes: Bug#18124) ++ * Corrected Topi's patch as it prevented forwarding during startup due ++ to an unknown LogPort. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Feb 1998 13:19:27 +0100 ++ ++sysklogd (1.3-23) unstable; urgency=low ++ ++ * Corrected FSF's address (lintian) ++ * Implemented force-reload (lintian) ++ * Standards-Version: 2.4.0.0 ++ * Applied patch from Topi Miettinen <Topi.Miettinen@ml.tele.fi> to open ++ the UDP socket only if it is really needed. ++ * Updated sysklogd(8) manpage ++ * Added notes to mailing list ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 24 Feb 1998 00:39:10 +0100 ++ ++sysklogd (1.3-22) unstable; urgency=low, closes=17192 17385 17601 ++ ++ * Included a real fix to the %'s problem (fixes: Bug#17192) ++ * Another patch for Linux/alpha by Christopher C Chimelis ++ <chris@classnet.med.miami.edu> (fixes: Bug#17385) ++ * Removed killall-statement from postinst. Thanks to James Troup for ++ reporting it. ++ * Added chdir("/") to both daemons (fixes: Bug#17601) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 29 Jan 1998 21:56:40 +0100 ++ ++sysklogd (1.3-21) unstable; urgency=low, closes=17159 ++ ++ * Fixed small typo in syslogd-listfiles (Bug#17159) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Jan 1998 23:22:57 +0100 ++ ++sysklogd (1.3-20) unstable; urgency=low, closes=17000 ++ ++ * Corrected some code that caused klogd to dump core when receiving some ++ special messages from 2.1.78. Thanks to Chu-yeon Park ++ <kokids@doit.ajou.ac.kr> for informing me. ++ * Fixed bug that caused klogd to die if there is no System.map ++ available. ++ * Added -x switch to omit EIP translation and System.map evaluation. ++ Thanks to Florian La Roche <florian@knorke.saar.de> ++ * Fixed small bugs in F_FORW_UNKN meachanism. Thanks to Torsten Neumann ++ <torsten@londo.rhein-main.de> for pointing me to it. ++ * Fixed problem with klogd not being able to be built on a kernel newer ++ than 2.1.18. Worked in a patch from Alessandro Suardi <asuardi@uninetcom.it> ++ * Fixed small typo in syslogd-listfiles ++ * Corrected debug output concerning remote receiption ++ * Removed race condition in syslogd-listfiles ++ * Modified logfile detection routine to take care of double listed ++ logfiles. Thanks to Roman Hodek <roman@debian.org> for providing an ++ appropriate patch. (Bug#17000) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 13 Jan 1998 01:59:56 +0100 ++ ++sysklogd (1.3-19) unstable; urgency=low, closes=16643 16769 16796 16828 16148 14776 ++ ++ * Used better regexp for detecting sensitive data. Thanks a lot to ++ Susanne Schmidt <banshee@linux.de> for providing it. ++ * Fixed ownership of /usr/doc/sysklogd/copyright and readme (Bug#16643) ++ * Corrected Standards-Version to 2.3.0.1 (Bug#16769) ++ * Reworked one line of an older patch because it prevented syslogd from ++ binding the socket with the result that no messages were forwarded to ++ other hosts. ++ * Changed the behaviour of klogd when receiving a terminate signal. Now ++ the program terminates immediately instead of completing the receipt of ++ a kernel message. (Bug#16796, Bug#16828, Bug#16148) ++ * Noticed a bug which was closed by 1.3-18 (Bug#14776) ++ * Changed Maintainer address to joey@debian.org ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 00:58:36 +0100 ++ ++sysklogd (1.3-18) unstable; urgency=low, closes=11731 12009 13506 14329 14521 14610 15840 15336 ++ ++ * Added test in postinst if user and group exist. Christoph Lameter run ++ into trouble upgrading a RedHat system. ++ * Fixed little mistake which prevented klogd from accepting a console ++ log level of 8 to get <7> alias KERN_DEBUG displayed. ++ * Linked against libc6 (Bug#11731) ++ * Added SHELL=/bin/bash to rules as Herbert Xu suggested ++ * Corrected syslog.conf(5) manpage ++ * syslogd resets the ignore priority flag now. Thanks to Herbert ++ Thielen. (Bug#12009) ++ * Fixed bug that caused syslogd to write into wrong files under some ++ race conditions. Thanks to Herbet Xu. (Bug#13506) ++ * /var/log/auth.log will only be touch if needed (Bug#14329) ++ * debian/conffiles is treated like a document (Bug#14521) ++ * Added script for generic logfile detection and rotation and included ++ that in cron scripts, included also its manpage (Bug#14610) ++ * Modified restart messages in /etc/init.d/sysklogd (Bug#15840) ++ * klogd will first try to load /boot/System.map-$ver, then ++ /boot/System.map, then /System.map-$ver and after that /System.map ++ * Modified ExpandKadds() because there were some problems accessing ++ memory r/w. (Bug#15336) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 2 Jan 1998 03:31:09 +0100 ++ ++sysklogd (1.3-17) unstable; urgency=low ++ ++ * Fixed stupid bug which caused klogd to eat up 90% cpu time. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Jun 1997 15:22:29 +0200 ++ ++sysklogd (1.3-16) unstable; urgency=low ++ ++ * Included Miquel's patches which allows continuation line support ++ for syslogd. Corrected syslog.conf(5) manpage. Improved ++ syslog.conf file. Thanks to Miquel van Smoorenburg ++ <miquels@cistron.nl> for dropping in these patches. ++ * Added /var/log/syslog as a daily rotated logfile which contains ++ everything except auth.* ++ * ksym.c: Added #1 and #2 to some error messages in order to being able ++ to divide them (ulmo@Q.Net) ++ * Improved postinst script (Thanks to Miquel van Smorrenborg for ideas) ++ * klogd now also reads /System.map-<version> and ++ /boot/System.map-<version> (Bug#7210) ++ * syslogd,klogd: made DEBRELEASE optional to support a non-Debian ++ release as well. ++ * Corrected freeing of logfiles. ++ * Removed delay of 10 seconds. (Bug#8104, Bug#8400) ++ * Modified permissions of logfiles from 644 to 640 and 640 to 600 for ++ security aspects. ++ * Corrected syslog.conf(5) manpage (Bug#9779) ++ * Found upstream patches for 1.3.1 to 1.3.3 which are now included. ++ These also include some patches for glibc and Alpha. ++ * Included patch to modules package to support better debugging ++ * Added patch from Leland Olds which fixes a buffer overrun and improved ++ symbol lookup. (Bug#4875) ++ * Some more glibc patches made by Michael Alan Dorman ++ <mdorman@debian.org>. (Bug#8362, Bug#8763) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 15 Jun 1997 19:37:13 +0200 ++ ++sysklogd (1.3-15) unstable; urgency=low ++ ++ * Added /var/log/mail.log as a logfile ++ * Corrected Description field (Bug#7624) ++ * Added read statement in postinst script (Bug#8243) ++ ++ -- Martin Schulze <joey@infodrom.north.de> Wed, 26 Mar 1997 13:32:24 +0100 ++ ++sysklogd (1.3-14) unstable; urgency=low ++ ++ * Debugging syslogd now shows facility.priority ++ * Minor fixes ++ * Modified syslogd.c to not kill itself which confuses bash 2.0 ++ ++ -- Martin Schulze <joey@infodrom.north.de> Sun, 23 Feb 1997 12:23:55 +0100 ++ ++sysklogd (1.3-13) stable; urgency=low ++ ++ * Made /etc/init.d/sysklogd more verbose ++ * Minor fixes ++ * Uncompressed copyright, but compressed /usr/doc/sysklogd-1.3.16/readme ++ ++ -- Martin Schulze <joey@debian.org> Sat, 8 Feb 1997 14:12:29 +0100 ++ ++sysklogd (1.3-12) stable; urgency=HIGH ++ ++ * Converted to Standards-Version 2.1.1.2 ++ * init.d/sysklogd: added "sleep 1" ++ * syslogd won't hassle anymore if it can't access logfils. Patched by ++ me. This adresses Bug#5865. ++ * /etc/init.d/sysklogd: Modified so that one can use commandline ++ arguments for both syslogd and klogd. ++ * debian.rules: Installed ChangeLog ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 30 Jan 1997 22:48:59 +0100 ++ ++Mon Now 25 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * modified preinst to work if /etc/init.d/sysklogd doesn't exist ++ because of a failure ++ ++Mon Sep 10 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * ksyms.c: klogd will first look at /System.map (Bug#4403, #4459) ++ ++Fri Aug 16 21:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * debian.rules: Changed permissions for syslogd and klogd to 755 ++ (Bug#4049) ++ ++Mon Aug 12 10:40:05 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Corrected permissions of documentation. Thanks to Dan ++ Quinlan. (Bug#4090) ++ ++Mon Aug 5 22:47:40 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * syslogd.c: If you haven't set your domainname, syslogd will dump ++ core upon startup. Fixed. Thanks to Leeland Lucius ++ <llucius@millcomm.com> for reporting and patching it. (Bug#3526) ++ ++ * /etc/init.d/sysklogd, /etc/cron.weekly/sysklogd: slight ++ improvements. Thanks to Bernd Eckenfels <ecki@tapac.inka.de>. ++ ++Fri Aug 2 11:03:30 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * modified weekly cron script, thanks to Todd Tyrone Fries <todd@miango.com> ++ ++Fri Jun 14 10:42:26 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * ksyms.c: increased the size of vstring, because since Linux ++ major versions are decoded with n * 65536 and we now have 2.0, the ++ field was too short. ++ ++Tue May 28 01:02:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * syslogd.c: Corrected behaviour of blocking pipes - i.e. the ++ whole system hung. Michael Nonweiler <mrn20@hermes.cam.ac.uk> has ++ sent us a patch to correct this. A new logfile type F_PIPE has ++ been introduced. ++ ++Thu May 23 08:39:54 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * postinst: Corrected killall-statement, Thanks to Miquel van ++ Smoorenborg for the hint ++ ++Mon May 20 00:14:35 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * postinst: added a killall to remove an existing syslogd. It ++ could exist because of Bug#2836. ++ ++Sun May 12 13:36:55 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * removed auth.* from /dev/xconsole ++ ++ * klogd won't log old messages anymore (Bug#2337) ++ I have applied the patch from Chris Hanson. ++ ++ * I have put another start-stop-daemon call in the startup script ++ so the configs are reloaded on startup. This should ++ help. (Bug#2552) ++ ++ * Sysklogd takes care of this and createst /dev/xconsole if it ++ doesn't exist during installation. (Bug#2683) ++ ++ * I have corrected permissions of /dev/xconsole. (Bug#2837) ++ ++ * defined /etc/cron.weekly/sysklogd as a conffile (Bug#2950, Bug#2960) ++ ++ * introduced two binary packages: syslogd and sysklogd which ++ exclude each other ++ ++Sun Apr 21 17:56:03 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Corrected preinst (Bug#2722, Bug#2725, Bug#2726) ++ ++ * Linked against libc 5.2.18 (Bug#2723, Bug#2725) ++ ++ * Corrected control file to fit with newer dpkgs ++ ++Wed Apr 17 21:40:56 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Added Debian packaging information ++ ++ +--- sysklogd-1.4.1.orig/debian/conffiles ++++ sysklogd-1.4.1/debian/conffiles +@@ -0,0 +1,5 @@ ++/etc/default/syslogd ++/etc/syslog.conf ++/etc/init.d/sysklogd ++/etc/cron.daily/sysklogd ++/etc/cron.weekly/sysklogd +--- sysklogd-1.4.1.orig/debian/conffiles.klogd ++++ sysklogd-1.4.1/debian/conffiles.klogd +@@ -0,0 +1,2 @@ ++/etc/default/klogd ++/etc/init.d/klogd +--- sysklogd-1.4.1.orig/debian/control ++++ sysklogd-1.4.1/debian/control +@@ -0,0 +1,32 @@ ++Source: sysklogd ++Section: admin ++Priority: important ++Maintainer: Martin Schulze <joey@debian.org> ++Standards-Version: 3.5.6.0 ++ ++Package: sysklogd ++Architecture: any ++Section: admin ++Depends: ${shlibs:Depends}, klogd | linux-kernel-log-daemon ++Conflicts: syslogd ++Provides: syslogd, system-log-daemon ++Replaces: syslogd ++Description: System Logging Daemon ++ This package implements the system log daemon, which is an enhanced ++ version of the standard Berkeley utility program. It is responsible ++ for providing logging of messages received from programs and facilities ++ on the local host as well as from remote hosts. ++ ++Package: klogd ++Architecture: any ++Section: admin ++Depends: ${shlibs:Depends}, sysklogd | system-log-daemon ++Conflicts: sysklogd (<= 1.3-33) ++Provides: linux-kernel-log-daemon ++Replaces: sysklogd ++Description: Kernel Logging Daemon ++ The klogd daemon listens to kernel message sources and is responsible ++ for prioritizing and processing operating system messages. The klogd ++ daemon can run as a client of syslogd or optionally as a standalone ++ program. Klogd can now be used to decode EIP addresses if it can ++ determine a System.map file. +--- sysklogd-1.4.1.orig/debian/copyright ++++ sysklogd-1.4.1/debian/copyright +@@ -0,0 +1,50 @@ ++This is the Debian GNU/Linux prepackaged version of Linux' system and ++kernel logging daemons. ++ ++This package was put together by Martin Schulze <joey@debian.org>, ++from sources obtained from: ++ ++ http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.4.1.tar.gz ++ ++Recent versions are Debian versions that may be also be found at ++ ++ http://www.infodrom.org/projects/sysklogd/ ++ ++syslogd is under Berkeley copyright, klogd is under GPL. ++ ++ Copyright (C) 1994-96 Greg Wettstein <greg@wind.enjellic.com> ++ ++ 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; version 2 dated June, 1991. ++ ++ 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, USA. ++ ++On Debian GNU/Linux systems, the complete text of the GNU General ++Public License can be found in `/usr/share/common-licenses/GPL'. ++ ++There is a mailing list covering this package and syslog in general. ++The lists address is infodrom-sysklogd@lists.infodrom.org . ++ ++To subscribe to this list, ++ ++ . send a mail to infodrom-sysklogd-request@lists.infodrom.org with ++ the word "subscribe" as subject, or ++ ++ . send a mail to majordomo@lists.infodrom.org with the body of ++ "subscribe infodrom-sysklogd". ++ ++The list will be archived publically at ++<http://www.infodrom.org/Mail-Archive/infodrom-sysklogd>. ++ ++The source of the Debian package is managed through CVS. It is publically ++available at <http://cvs.infodrom.org/sysklogd/?cvsroot=debian> or as ++<:pserver:anonymous@cvs.infodrom.org/var/cvs/debian/sysklogd/>. ++ +--- sysklogd-1.4.1.orig/debian/cron.daily ++++ sysklogd-1.4.1/debian/cron.daily +@@ -0,0 +1,39 @@ ++#! /bin/sh ++ ++# sysklogd Cron script to rotate system log files daily. ++# ++# If you want to rotate other logfiles daily, edit ++# this script. An easy way is to add files manually, ++# to add -a (for all log files) to syslogd-listfiles and ++# add some grep stuff, or use the -s pattern argument to ++# specify files that must not be listed. ++# ++# This is a configration file. You are invited to edit ++# it and maintain it on your own. You'll have to do ++# that if you don't like the default policy ++# wrt. rotating logfiles (i.e. with large logfiles ++# weekly and daily rotation may interfere). If you edit ++# this file and don't let dpkg upgrade it, you have full ++# control over it. Please read the manpage to ++# syslogd-listfiles. ++# ++# Written by Martin Schulze <joey@debian.org>. ++# $Id: cron.daily,v 1.13 2006-09-18 09:42:30 joey Exp $ ++ ++test -x /usr/sbin/syslogd-listfiles || exit 0 ++test -x /sbin/syslogd || exit 0 ++test -f /usr/share/sysklogd/dummy || exit 0 ++ ++set -e ++ ++cd /var/log ++for LOG in `syslogd-listfiles` ++do ++ if [ -s $LOG ]; then ++ savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null ++ fi ++done ++ ++# Restart syslogd ++# ++/etc/init.d/sysklogd reload-or-restart > /dev/null +--- sysklogd-1.4.1.orig/debian/cron.daily.klogd ++++ sysklogd-1.4.1/debian/cron.daily.klogd +@@ -0,0 +1,47 @@ ++#! /bin/sh ++ ++binpath=/sbin/klogd ++pidfile=/var/run/klogd.pid ++ ++test -x $binpath || exit 0 ++ ++ ++running() ++{ ++ # No pidfile, probably no daemon present ++ # ++ if [ ! -f $pidfile ] ++ then ++ return 1 ++ fi ++ ++ pid=`cat $pidfile` ++ ++ # No pid, probably no daemon present ++ # ++ if [ -z "$pid" ] ++ then ++ return 1 ++ fi ++ ++ if [ ! -d /proc/$pid ] ++ then ++ return 1 ++ fi ++ ++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` ++ ++ # No syslogd? ++ # ++ if [ "$cmd" != "$binpath" ] ++ then ++ return 1 ++ fi ++ ++ return 0 ++} ++ ++if ! running ++then ++ sh /etc/init.d/klogd start > /dev/null ++fi +--- sysklogd-1.4.1.orig/debian/cron.weekly ++++ sysklogd-1.4.1/debian/cron.weekly +@@ -0,0 +1,38 @@ ++#! /bin/sh ++ ++# sysklogd Cron script to rotate system log files weekly. ++# ++# If you want to rotate logfiles daily, edit ++# this script and /etc/cron.daily/sysklogd to get ++# the logfiles in sync (they must not occur in both ++# files). ++# ++# This is a configration file. You are invited to edit ++# it and maintain it on your own. You'll have to do ++# that if you don't like the default policy ++# wrt. rotating logfiles (i.e. with large logfiles ++# weekly and daily rotation may interfere). If you edit ++# this file and don't let dpkg upgrade it, you have full ++# control over it. Please read the manpage to ++# syslogd-listfiles. ++# ++# Written by Ian A. Murdock <imurdock@debian.org>. ++# $Id: cron.weekly,v 1.10 2004-03-31 16:18:15 joey Exp $ ++ ++test -x /usr/sbin/syslogd-listfiles || exit 0 ++test -x /sbin/syslogd || exit 0 ++test -f /usr/share/sysklogd/dummy || exit 0 ++ ++set -e ++ ++cd /var/log ++for LOG in `syslogd-listfiles --weekly` ++do ++ if [ -s $LOG ]; then ++ savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null ++ fi ++done ++ ++# Restart syslogd ++# ++/etc/init.d/sysklogd reload-or-restart > /dev/null +--- sysklogd-1.4.1.orig/debian/default ++++ sysklogd-1.4.1/debian/default +@@ -0,0 +1,13 @@ ++# ++# Top configuration file for syslogd ++# ++ ++# ++# Full documentation of possible arguments are found in the manpage ++# syslogd(8). ++# ++ ++# ++# For remote UDP logging use SYSLOGD="-r" ++# ++SYSLOGD="" +--- sysklogd-1.4.1.orig/debian/default.klogd ++++ sysklogd-1.4.1/debian/default.klogd +@@ -0,0 +1,15 @@ ++# ++# top configuration file for klogd ++# ++ ++# ++# Full documentation of possible arguments are found in the manpage ++# klogd(8). ++# ++ ++# ++# Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map ++# -c 4 to alter the kernel console log level (deprecated) ++# use sysctl instead ++# ++KLOGD="-x" +--- sysklogd-1.4.1.orig/debian/dummy ++++ sysklogd-1.4.1/debian/dummy +@@ -0,0 +1,4 @@ ++Do not remove this file or your log files won't be rotated anymore. ++This is a control file to ensure that the sysklogd package is ++installed so that the cronjobs don't have to parse the dpkg database ++for each run. +--- sysklogd-1.4.1.orig/debian/postinst ++++ sysklogd-1.4.1/debian/postinst +@@ -0,0 +1,83 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "configure" ] ++then ++ case $2 in ++ 1.2-*) ++cat<<EOT ++The default behaviour of syslogd has altered from 1.2 to 1.3. By default ++*no* messages from the UDP port are accepted. ++ ++Read the documentation in /usr/doc/sysklogd carefully. Some important ++things have been changed! ++ ++Press [Enter] to continue ++EOT ++ read xyz ++ ;; ++ esac ++fi ++ ++if [ "$1" = "configure" ] ++then ++ ++ # Prepare for takeover of the host ++ if [ -z "$2" ] ++ then ++ if [ ! -e /var/log/news ] \ ++ && grep -q '^[^#].*/var/log/news/' /etc/syslog.conf \ ++ && grep -q ^news: /etc/passwd \ ++ && grep -q ^news: /etc/group ++ then ++ mkdir /var/log/news ++ chmod 2755 /var/log/news ++ chown news:news /var/log/news ++ fi ++ ++ # Create logfiles with correct file modes ++ if [ -z "$2" ] ++ then ++ for LOG in `syslogd-listfiles --all` ++ do ++ if [ ! -f $LOG ] ++ then ++ touch $LOG ++ fi ++ chown root:adm $LOG ++ chmod 640 $LOG ++ done ++ fi ++ fi ++ ++ if [ -f /etc/init.d/sysklogd -a -n "$2" ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++ set -e ++ fi ++ ++ update-rc.d sysklogd defaults 10 90 >/dev/null ++ ++ # restarting daemon ++ # ++ if [ -f /etc/init.d/sysklogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd start ++ else ++ sh /etc/init.d/sysklogd start ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/postinst.klogd ++++ sysklogd-1.4.1/debian/postinst.klogd +@@ -0,0 +1,36 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "configure" ] ++then ++ if [ -f /etc/init.d/klogd -a -n "$2" ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++ set -e ++ fi ++ ++ update-rc.d klogd defaults 11 89 >/dev/null ++ ++ # restarting daemon ++ # ++ if [ -f /etc/init.d/klogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd start ++ else ++ sh /etc/init.d/klogd start ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/postrm ++++ sysklogd-1.4.1/debian/postrm +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "purge" ] ++then ++ update-rc.d sysklogd remove >/dev/null ++fi +--- sysklogd-1.4.1.orig/debian/postrm.klogd ++++ sysklogd-1.4.1/debian/postrm.klogd +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "purge" ] ++then ++ update-rc.d klogd remove >/dev/null ++fi +--- sysklogd-1.4.1.orig/debian/preinst ++++ sysklogd-1.4.1/debian/preinst +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++set -e ++ ++dpkg --assert-support-predepends ++ ++if [ "$1" = "upgrade" -a -f /etc/init.d/sysklogd ]; then ++ if [ -f /etc/init.d/sysklogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/preinst.klogd ++++ sysklogd-1.4.1/debian/preinst.klogd +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++set -e ++ ++dpkg --assert-support-predepends ++ ++if [ "$1" = "upgrade" -a -f /etc/init.d/klogd ]; then ++ if [ -f /etc/init.d/klogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/prerm ++++ sysklogd-1.4.1/debian/prerm +@@ -0,0 +1,19 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/sysklogd ] ++then ++ rm -f /usr/doc/sysklogd ++fi ++ ++if [ "$1" = "purge" -o "$1" = "remove" ] ++then ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++fi ++ +--- sysklogd-1.4.1.orig/debian/prerm.klogd ++++ sysklogd-1.4.1/debian/prerm.klogd +@@ -0,0 +1,19 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/klogd ] ++then ++ rm -f /usr/doc/klogd ++fi ++ ++if [ "$1" = "purge" -o "$1" = "remove" ] ++then ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++fi ++ +--- sysklogd-1.4.1.orig/debian/rc ++++ sysklogd-1.4.1/debian/rc +@@ -0,0 +1,112 @@ ++#! /bin/sh ++# /etc/init.d/sysklogd: start the system log daemon. ++ ++### BEGIN INIT INFO ++# Provides: syslog ++# Required-Start: $local_fs $network $time ++# Required-Stop: $local_fs $network $time ++# Default-Start: 2 3 4 5 ++# Default-Stop: S 0 1 6 ++# Short-Description: System logger ++### END INIT INFO ++ ++PATH=/bin:/usr/bin:/sbin:/usr/sbin ++ ++pidfile=/var/run/syslogd.pid ++binpath=/sbin/syslogd ++ ++test -x $binpath || exit 0 ++ ++test ! -r /etc/default/syslogd || . /etc/default/syslogd ++ ++. /lib/lsb/init-functions ++ ++create_xconsole() ++{ ++ # Only proceed if not using devfsd ++ if [ -e /dev/.devfsd ] \ ++ || ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf ++ then ++ return ++ fi ++ ++ if [ ! -e /dev/xconsole ]; then ++ mknod -m 640 /dev/xconsole p ++ else ++ chmod 0640 /dev/xconsole ++ fi ++ chown root:adm /dev/xconsole ++} ++ ++running() ++{ ++ # No pidfile, probably no daemon present ++ # ++ if [ ! -f $pidfile ] ++ then ++ return 1 ++ fi ++ ++ pid=`cat $pidfile` ++ ++ # No pid, probably no daemon present ++ # ++ if [ -z "$pid" ] ++ then ++ return 1 ++ fi ++ ++ if [ ! -d /proc/$pid ] ++ then ++ return 1 ++ fi ++ ++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` ++ ++ # No syslogd? ++ # ++ if [ "$cmd" != "$binpath" ] ++ then ++ return 1 ++ fi ++ ++ return 0 ++} ++ ++case "$1" in ++ start) ++ log_begin_msg "Starting system log daemon..." ++ create_xconsole ++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD ++ log_end_msg $? ++ ;; ++ stop) ++ log_begin_msg "Stopping system log daemon..." ++ start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd ++ log_end_msg $? ++ ;; ++ reload|force-reload) ++ log_begin_msg "Reloading system log daemon..." ++ start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd ++ log_end_msg $? ++ ;; ++ restart) ++ log_begin_msg "Restarting system log daemon..." ++ start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd ++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD ++ log_end_msg $? ++ ;; ++ reload-or-restart) ++ if running ++ then ++ $0 reload ++ else ++ $0 start ++ fi ++ ;; ++ *) ++ echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}" ++ exit 1 ++esac ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/rc.klogd ++++ sysklogd-1.4.1/debian/rc.klogd +@@ -0,0 +1,46 @@ ++#! /bin/sh ++# /etc/init.d/klogd: start the kernel log daemon. ++ ++### BEGIN INIT INFO ++# Provides: klogd ++# Required-Start: $time syslog ++# Required-Stop: $time syslog ++# Default-Start: 2 3 4 5 ++# Default-Stop: S 0 1 6 ++# Short-Description: kernel logger ++### END INIT INFO ++ ++PATH=/bin:/usr/bin:/sbin:/usr/sbin ++ ++pidfile=/var/run/klogd.pid ++binpath=/sbin/klogd ++ ++test -f $binpath || exit 0 ++ ++test ! -r /etc/default/klogd || . /etc/default/klogd ++ ++. /lib/lsb/init-functions ++ ++case "$1" in ++ start) ++ log_begin_msg "Starting kernel log daemon..." ++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD ++ log_end_msg $? ++ ;; ++ stop) ++ log_begin_msg "Stopping kernel log daemon..." ++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd ++ log_end_msg $? ++ ;; ++ restart|force-reload) ++ log_begin_msg "Reloading kernel log daemon..." ++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd ++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD ++ log_end_msg $? ++ ;; ++ *) ++ echo "Usage: /etc/init.d/klogd {start|stop|restart|force-reload}" ++ exit 1 ++esac ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/readme ++++ sysklogd-1.4.1/debian/readme +@@ -0,0 +1,44 @@ ++ ++Additional information about system logging ++------------------------------------------- ++ ++ . When logging into a fifo syslogd will stop loggin into this ++ logfile if no process is reading it and thus the buffer is filled ++ up. Buffer size can be adjusted through the kernel. ++ ++ . When using the Perl5 Sys::Syslog module (use Sys::Syslog;) to ++ provide logging to your Perl programs, please notice that since it ++ will open a UDP connection to the local syslogd you'll need to have ++ remote receiption enabled. ++ ++ Joey Hess teaches us how to change this behaviour and switch to ++ using the Unix domain socket. After the opening with "use" you ++ have to add "Sys::Syslog::setlogsock('unix');". ++ ++ The default behaviour might change in future releases of Perl. ++ ++Modifying the kernel console log level ++-------------------------------------- ++ ++ There are two ways to alter the kernel console log level. This ++ setting controls whether log messages from the kernel should appear ++ on the system console or not. ++ ++ In the past, klogd had to do this with the -c parameter. Using '-c ++ 4' will set the log level of console messages to 4 and only display ++ warnings and errors but not regular debug or information messages. ++ ++ This behaviour is deprecated and hencely not enforced anymore via ++ the RC script of klogd. Instead sysctl(8) should be used as ++ interface to various kernel variables. These can be stored ++ non-volatile in /etc/sysctl.conf. ++ ++ The prevent the kernel to flood the system console and to achieve ++ the same behaviour of '-c 4' simply add the following to the ++ configuration file and let sysctl set this kernel parameter upon ++ system boot. ++ ++ kernel/printk = 4 4 1 7 ++ ++ More information can be found in Documentation/sysctl/kernel.txt in ++ the kernel source and proc(5). +--- sysklogd-1.4.1.orig/debian/rules ++++ sysklogd-1.4.1/debian/rules +@@ -0,0 +1,172 @@ ++#! /usr/bin/make -f ++ ++# Copyright 1994-98,2001 joey@infodrom.org (Martin Schulze) ++# ++# 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; version 2 dated June, 1991. ++# ++# 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 ++# ++SHELL=/bin/bash ++ ++# The name and version of the source ++# ++source = $(shell grep "^Source: " debian/control|head -n 1|sed 's/Source: \(.*\)/\1/g') ++package = $(shell grep "^Package: " debian/control|head -n 1|sed 's/Package: \(.*\)/\1/g') ++version = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*(\(.*\)\-[^\-]*).*/\1/g') ++revision = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*([^\-]*\-\(.*\)).*/\1/g') ++ ++installbin = install -g root -o root -m 755 ++installdoc = install -g root -o root -m 644 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++CFLAGS = -g -O2 -Wall $(shell getconf LFS_CFLAGS) ++else ++CFLAGS = -O2 -Wall $(shell getconf LFS_CFLAGS) ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++STRIP = -s ++endif ++ ++build: ++ $(MAKE) DEB="-DDEBRELEASE=\\\"$(revision)\\\"" \ ++ CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -fno-strength-reduce" \ ++ LDFLAGS="" ++ pod2man --section=8 --lax --center="Debian GNU/Linux" \ ++ --release="Debian Project" debian/syslog-facility.pod \ ++ > syslog-facility.8 ++ (cat README.linux; printf "\n\n"; cat README.1st; \ ++ printf "\n\nThe following important changes have been reported by the developers:\n\n"; \ ++ cat NEWS debian/readme) \ ++ > readme.txt ++ (cat debian/copyright; \ ++ printf "Syslogd stays under the following copyright:\n\n"; \ ++ sed -e '/^$$/,$$d' < syslogd.c; \ ++ printf "\nKlogd has the following copyright notice:\n\n"; \ ++ sed -e '/^$$/,$$d' < klogd.c ) \ ++ > copyright ++ touch stamp-build ++ ++clean: debclean ++ rm -f stamp-build ++ $(MAKE) clobber ++ rm -rf *~ debian/*~ syslog-facility.8 readme.txt copyright ++ ++debclean: ++# Cleans debian binary directories to allow binary creation ++ rm -rf debian/tmp.sysklogd debian/tmp.klogd ++ rm -f debian/{files,substvars} ++ ++binary-indep: ++# Nothing to be done here ++ ++binary-arch-sysklogd: debclean ++ test -f stamp-build || $(MAKE) -f debian/rules build ++ $(installbin) -d debian/tmp.sysklogd/DEBIAN ++ chown -R root:root debian/tmp.sysklogd ++ chmod -R g-ws debian/tmp.sysklogd ++ $(installbin) -d debian/tmp.sysklogd/usr/share/doc/$(package) ++ $(installbin) debian/{postinst,postrm,prerm} debian/tmp.sysklogd/DEBIAN/ ++ $(installdoc) debian/conffiles debian/tmp.sysklogd/DEBIAN/ ++ $(installdoc) debian/changelog debian/tmp.sysklogd/usr/share/doc/$(package)/changelog.Debian ++ # ++ $(installbin) -d debian/tmp.sysklogd/usr/share/$(package) ++ $(installdoc) debian/dummy debian/tmp.sysklogd/usr/share/$(package) ++ # ++ $(installdoc) copyright debian/tmp.sysklogd/usr/share/doc/$(package)/ ++ $(installdoc) readme.txt debian/tmp.sysklogd/usr/share/doc/$(package)/ ++ $(installdoc) CHANGES debian/tmp.sysklogd/usr/share/doc/$(package)/changelog ++ gzip -9f debian/tmp.sysklogd/usr/share/doc/$(package)/{changelog.Debian,changelog,readme.txt} ++ # ++ $(installbin) -d debian/tmp.sysklogd/{usr/,}sbin ++ $(installbin) $(STRIP) syslogd debian/tmp.sysklogd/sbin ++ $(installbin) debian/syslogd-listfiles debian/tmp.sysklogd/usr/sbin ++ $(installbin) debian/syslog-facility debian/tmp.sysklogd/usr/sbin ++ # ++ $(installbin) -d debian/tmp.sysklogd/etc/{init.d,cron.{daily,weekly},default} ++ $(installbin) debian/default debian/tmp.sysklogd/etc/default/syslogd ++ $(installbin) debian/rc debian/tmp.sysklogd/etc/init.d/sysklogd ++ $(installbin) debian/cron.weekly debian/tmp.sysklogd/etc/cron.weekly/sysklogd ++ $(installbin) debian/cron.daily debian/tmp.sysklogd/etc/cron.daily/sysklogd ++ $(installdoc) debian/syslog.conf debian/tmp.sysklogd/etc/syslog.conf ++ $(installbin) -d debian/tmp.sysklogd/var/log ++ # ++ $(installbin) -d debian/tmp.sysklogd/usr/share/man/man{5,8} ++ $(installdoc) syslog.conf.5 debian/tmp.sysklogd/usr/share/man/man5 ++ $(installdoc) {sysklogd,syslogd,debian/syslogd-listfiles}.8 debian/tmp.sysklogd/usr/share/man/man8 ++ $(installdoc) syslog-facility.8 debian/tmp.sysklogd/usr/share/man/man8 ++ gzip -9 debian/tmp.sysklogd/usr/share/man/man?/* ++ # ++ dpkg-shlibdeps debian/tmp.sysklogd/sbin/syslogd ++ dpkg-gencontrol -psysklogd -Pdebian/tmp.sysklogd -isp ++ dpkg --build debian/tmp.sysklogd .. ++ ++binary-arch-klogd: debclean ++ test -f stamp-build || $(MAKE) -f debian/rules build ++ $(installbin) -d debian/tmp.klogd/DEBIAN ++ chown -R root:root debian/tmp.klogd ++ chmod -R g-ws debian/tmp.klogd ++ $(installbin) -d debian/tmp.klogd/usr/share/doc/klogd ++ $(installbin) debian/postinst.klogd debian/tmp.klogd/DEBIAN/postinst ++ $(installbin) debian/postrm.klogd debian/tmp.klogd/DEBIAN/postrm ++ $(installbin) debian/prerm.klogd debian/tmp.klogd/DEBIAN/prerm ++ $(installdoc) debian/conffiles.klogd debian/tmp.klogd/DEBIAN/conffiles ++ $(installdoc) debian/changelog debian/tmp.klogd/usr/share/doc/klogd/changelog.Debian ++ # ++ $(installdoc) copyright debian/tmp.klogd/usr/share/doc/klogd/ ++ $(installdoc) readme.txt debian/tmp.klogd/usr/share/doc/klogd/ ++ $(installdoc) CHANGES debian/tmp.klogd/usr/share/doc/klogd/changelog ++ gzip -9f debian/tmp.klogd/usr/share/doc/klogd/{changelog.Debian,changelog,readme.txt} ++ $(installdoc) modutils.patch debian/tmp.klogd/usr/share/doc/klogd ++ # ++ $(installbin) -d debian/tmp.klogd/sbin ++ $(installbin) $(STRIP) klogd debian/tmp.klogd/sbin ++ # ++ $(installbin) -d debian/tmp.klogd/etc/{init.d,default} ++ $(installbin) debian/default.klogd debian/tmp.klogd/etc/default/klogd ++ $(installbin) debian/rc.klogd debian/tmp.klogd/etc/init.d/klogd ++ # ++ $(installbin) -d debian/tmp.klogd/usr/share/man/man8 ++ $(installdoc) klogd.8 debian/tmp.klogd/usr/share/man/man8 ++ gzip -9 debian/tmp.klogd/usr/share/man/man?/* ++ # ++ dpkg-shlibdeps debian/tmp.klogd/sbin/klogd ++ dpkg-gencontrol -pklogd -Pdebian/tmp.klogd -isp ++ dpkg --build debian/tmp.klogd .. ++ ++binary-arch: binary-arch-sysklogd binary-arch-klogd ++ ++binary: binary-indep binary-arch ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b' or dsc; false ++ ++dsc: ++ -test -d debian/tmp.sysklogd -o -d debian/tmp.klogd \ ++ && $(MAKE) -f debian/rules clean ++ if [ ! -f ../$(source)_$(version).orig.tar.gz -a -f ../orig/$(source)_$(version).orig.tar.gz ]; \ ++ then \ ++ ln -s orig/$(source)_$(version).orig.tar.gz ../$(source)_$(version).orig.tar.gz; \ ++ touch /tmp/stamp-$(source)-link; \ ++ fi; \ ++ cd .. && dpkg-source -b $(source)-$(version) ++ if [ -f /tmp/stamp-$(source)-link ]; then \ ++ rm ../$(source)_$(version).orig.tar.gz /tmp/stamp-$(source)-link; \ ++ fi ++ ++checkroot: ++ $(checkdir) ++ test root = "`whoami`" ++ ++dist: binary dsc ++ ++.PHONY: binary binary-arch binary-indep clean checkroot ++ +--- sysklogd-1.4.1.orig/debian/syslog-facility ++++ sysklogd-1.4.1/debian/syslog-facility +@@ -0,0 +1,140 @@ ++#! /usr/bin/perl -w ++ ++# Copyright 1998 Hertzog Raphal ++# You can use this script under the term of the GPL v2 or later. ++ ++# 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, USA. ++ ++my $conf_file = '/etc/syslog.conf'; ++ ++## BUGS : ++# . This script doesn't know about multi-lines configuration (ie with '\') ++# . With a line like that "mail,local0.* /anything" ++# "syslog-facility remove local0" would remove the entire line ++# => should not be a problem since lines installed by this script ++# cannot use such syntax ++## ++ ++## Nothing to modify after this line ## ++ ++my $command = lc(shift); ++ ++usage() if ($command !~ /^(?:set|remove)$/); ++usage() if (not scalar(@ARGV)); ++ ++if ($command eq "set") ++{ ++ usage() if (int(scalar(@ARGV) / 2) != scalar(@ARGV) / 2); ++ # find a free localx facility ++ my $facility = get_first_free_facility(); ++ # if none stop immediately ++ if ($facility eq "none") { ++ print "none\n"; ++ exit 1; ++ } ++ # ok append the lines asked ++ open (CONF, ">>$conf_file") || ++ die "Can't open $conf_file in write mode: $!\n"; ++ my ($pri,$file,$line); ++ while (defined($pri = shift)) { ++ $file = shift; ++ $line = ""; ++ foreach (split(/;/,$pri)) { ++ $_ =~ s/all/*/g; ++ $line .= ";" if ($line); ++ $line .= "$facility.$_"; ++ } ++ $line .= "\t\t$file\n"; ++ print CONF $line; ++ } ++ close CONF; ++ print "$facility\n"; ++ exit 0; ++ ++} elsif ($command eq "remove") { ++ ++ my $facility = lc(shift); ++ my ($left,$file,$line); ++ open (CONF, $conf_file) || die "Can't open $conf_file: $!\n"; ++ open (CONFNEW, ">$conf_file.new") || ++ die "Can't open $conf_file.new in write mode: $!\n"; ++ while (defined($_=<CONF>)) { ++ # Write all "simple" lines like empty lines and comments ++ if (/^\s*$/ or /^\s*#/ or /\\$/) { ++ print CONFNEW $_; ++ next; ++ } ++ # Otherwise look if the facility to remove appears in the line ++ if (/^\s*(\S+)\s+(\S+)\s*/) { ++ $left = $1; $file = $2; chomp $file; ++ # It doesn't appers => write ++ if ($left !~ /$facility/i) { ++ print CONFNEW $_; ++ next; ++ } ++ # It appears => write a new line without the localx facility ++ $line = ""; ++ foreach (split(/;/,$left)) { ++ if (not /$facility/i) { ++ $line .= ";" if ($line); ++ $line .= $_; ++ } ++ } ++ next if ($line eq ""); ++ $line .= "\t\t$file\n"; ++ print CONFNEW $line; ++ } ++ } ++ close CONFNEW; ++ close CONF; ++ rename ("$conf_file.new", "$conf_file"); ++} ++ ++sub get_first_free_facility { ++ ++ my @facility = (0) x 8; ++ my ($left,$fac); ++ open(CONF, $conf_file) || die "Can't open $conf_file: $!\n"; ++ while(defined($_=<CONF>)) ++ { ++ next if (/^\s*$/); ++ next if (/^\s*#/); ++ next if (/\\$/); ++ next if (not /^\s*(\S+)\s+(\S+)\s*$/); ++ $left = $1; ++ foreach $fac (split(/;/,$left)) { ++ $facility[$1]++ if ($fac =~ /local(\d)/i); ++ } ++ } ++ foreach $fac (0..7) { ++ return "local$fac" if ($facility[$fac] == 0); ++ } ++ return "none"; ++} ++ ++sub usage { ++ ++ die "syslog-facility - Copyright (c) 1998 Hertzog Raphal\n" ++ ."Usage : $0 set <set_of_priority> <logfile> ... \n" ++ ." it returns the 'LOCALx' string you have the right to use.\n" ++ ." $0 remove <facility>\n" ++ ."Example: $0 set all /var/log/all\n" ++ ." $0 set all\\;\\!=info /var/log/all-without-info\n" ++ ." $0 set =err /var/log/errors =warning /var/log/warn\n" ++ ." $0 remove LOCAL1\n"; ++} ++ ++ ++ +--- sysklogd-1.4.1.orig/debian/syslog-facility.pod ++++ sysklogd-1.4.1/debian/syslog-facility.pod +@@ -0,0 +1,58 @@ ++=head1 NAME ++ ++syslog-facility - Setup and remove LOCALx facility for sysklogd ++ ++=head1 SYNOPSIS ++ ++B<syslog-facility> B<set> I<set_of_priority> I<log_file> ... ++ ++B<syslog-facility> B<remove> I<facility> ++ ++=head1 DESCRIPTION ++ ++B<syslog-facility> can be used to setup a syslog facility and to remove ++it. The primary use of this perl script is to allow packages to ++automatically setup (and remove) a LOCALx facility. With the ++first argument beeing I<set>, it will output a string containing ++the first free LOCALx facility that has been assigned to your request : ++ ++ # syslog-facility set all /var/log/sympa ++ local0 ++ ++This does mean that a line "local0.* /var/log/sympa" has been ++added to the syslog.conf file. If no free LOCALx facility has been ++found, then it outputs "none" (with a end of line). ++ ++You can use different set of priorities (most of what syslogd supports) : ++ ++ # syslog-facility set 'all;!=debug;' /var/log/sympa '=debug' /var/log/sympa-d ++ local1 ++ ++Pay particular attention to shell escapes since ';','!' have special ++meanings for them. The syntax is similar to syslog.conf except that ++'*' must be replaced by 'all'. ++ ++In that case you will have two lines added two the syslog.conf file : ++ ++ local1.*;local1.!=debug /var/log/sympa ++ local1.=debug /var/log/sympa-d ++ ++If the first argument is I<remove>, then it will remove all references ++to a precise LOCALx facility. Example : ++ ++ # syslog-facility remove local1 ++ ++It will remove all references to the local1 facility. ++ ++=head1 BUGS ++ ++The script doesn't know about multi-lines configuration (ie with '\'). ++ ++With a line like that "mail,local0.* /anything", "syslog-facility remove ++local0" would remove the entire line. It should not be a problem since ++lines installed by this script cannot use this syntax. ++ ++=head1 SEE ALSO ++ ++B<syslog.conf>(5), B<sysklogd>(8). ++ +--- sysklogd-1.4.1.orig/debian/syslog.conf ++++ sysklogd-1.4.1/debian/syslog.conf +@@ -0,0 +1,71 @@ ++# /etc/syslog.conf Configuration file for syslogd. ++# ++# For more information see syslog.conf(5) ++# manpage. ++ ++# ++# First some standard logfiles. Log by facility. ++# ++ ++auth,authpriv.* /var/log/auth.log ++*.*;auth,authpriv.none -/var/log/syslog ++#cron.* /var/log/cron.log ++daemon.* -/var/log/daemon.log ++kern.* -/var/log/kern.log ++lpr.* -/var/log/lpr.log ++mail.* -/var/log/mail.log ++user.* -/var/log/user.log ++uucp.* /var/log/uucp.log ++ ++# ++# Logging for the mail system. Split it up so that ++# it is easy to write scripts to parse these files. ++# ++mail.info -/var/log/mail.info ++mail.warn -/var/log/mail.warn ++mail.err /var/log/mail.err ++ ++# Logging for INN news system ++# ++news.crit /var/log/news/news.crit ++news.err /var/log/news/news.err ++news.notice -/var/log/news/news.notice ++ ++# ++# Some `catch-all' logfiles. ++# ++*.=debug;\ ++ auth,authpriv.none;\ ++ news.none;mail.none -/var/log/debug ++*.=info;*.=notice;*.=warn;\ ++ auth,authpriv.none;\ ++ cron,daemon.none;\ ++ mail,news.none -/var/log/messages ++ ++# ++# Emergencies are sent to everybody logged in. ++# ++*.emerg * ++ ++# ++# I like to have messages displayed on the console, but only on a virtual ++# console I usually leave idle. ++# ++#daemon,mail.*;\ ++# news.=crit;news.=err;news.=notice;\ ++# *.=debug;*.=info;\ ++# *.=notice;*.=warn /dev/tty8 ++ ++# The named pipe /dev/xconsole is for the `xconsole' utility. To use it, ++# you must invoke `xconsole' with the `-file' option: ++# ++# $ xconsole -file /dev/xconsole [...] ++# ++# NOTE: adjust the list below, or you'll go crazy if you have a reasonably ++# busy site.. ++# ++daemon.*;mail.*;\ ++ news.crit;news.err;news.notice;\ ++ *.=debug;*.=info;\ ++ *.=notice;*.=warn |/dev/xconsole ++ +--- sysklogd-1.4.1.orig/debian/syslogd-listfiles ++++ sysklogd-1.4.1/debian/syslogd-listfiles +@@ -0,0 +1,146 @@ ++#! /usr/bin/perl ++ ++# Copyright (c) 1998,9,2001,3 by Martin Schulze <joey@infodrom.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., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ ++$conf = "/etc/syslog.conf"; ++$opt_daily = 1; ++$opt_all = 0; ++$opt_auth = 0; ++$opt_ign_size = 0; ++$opt_news = 0; ++$opt_skip = ''; ++$opt_large = 1024*1024; ++ ++sub usage ++{ ++ print STDERR ++" ++Debian GNU/Linux syslogd-listfiles. Copyright (c) 1997,2001 ++Martin Schulze. This is free software; see the GNU General Public Licence ++version 2 or later for copying conditions. There is NO warranty. ++ ++Usage: syslogd-listfiles <options> ++Options: -f file specifies another syslog.conf file ++ -a | --all list all files (including news) ++ --auth list all files containing auth.<some prio> ++ --ignore-size don't rotate files which got too large ++ --large nnn define what is large in bytes (default: 10MB) ++ --news include news logfiles, too ++ -w | --weekly use weekly pattern instead of daily ++ -s pattern skip files matching pattern ++"; ++} ++ ++# Test if the file was already rotated within the last n hours ++# with n=5 ++# ++sub rotated ++{ ++ my $file = shift; ++ my $nfile; ++ my $delta = 5 * 60 * 60; ++ my $now = time(); ++ ++ # /var/log/file -> /var/log/file.0 ++ $nfile = $file . ".0"; ++ if (-r $nfile) { ++ if (($now - (stat $nfile)[9]) > $delta) { ++ return 0; ++ } else { ++ return 1; ++ } ++ } ++ ++ # /var/log/file -> /var/log/OLD/file.0 ++ $nfile =~ s,(.*)/([^/]+),$1/OLD/$2,; ++ if (-r $nfile) { ++ if (($now - (stat $nfile)[9]) > $delta) { ++ return 0; ++ } else { ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++while (@ARGV) { ++ $_=shift(@ARGV); ++ if (m/^-f$/) { ++ $conf = shift(@ARGV); ++ } elsif (m/^-s$/) { ++ $opt_skip = shift(@ARGV); ++ } elsif (m/^--large$/) { ++ $opt_large = shift(@ARGV); ++ } elsif (m/^(--weekly|-w)$/) { ++ $opt_daily = 0; ++ } elsif (m/^(-a|--all)$/) { ++ $opt_all = 1; ++ } elsif (m/^--auth$/) { ++ $opt_auth = 1; ++ } elsif (m/^--ignore-size/) { ++ $opt_ign_size = 1; ++ } elsif (m/^--news$/) { ++ $opt_news = 1; ++ } else { ++ &usage();exit (0); ++ } ++} ++ ++open (C, $conf) || die "Can't open $conf, $!"; ++while (<C>) { ++ next if (/^(\#|$)/); ++ chomp; ++ ++ s/\s*(\S.*)$/$1/ if ($line); ++ ++ $line .= $_; ++ chop ($line) if (/\\$/); ++ if (!/\\$/) { ++ $line =~ s/\s+/\t/; ++ $line =~ s/\t-/\t/; ++ push (@lines, $line) if ($line =~ /\t\/(?!dev\/)/); ++ $line = ""; ++ } ++} ++close (C); ++ ++foreach $line (@lines) { ++ ($pat,$file) = split (/\t/,$line); ++ ++ # These files are handled by news.daily from INN, so we ignore them ++ next if (!$opt_news && ($pat =~ /news\.(\*|crit|err|info|notice)/)); ++ ++ if ($opt_all) { ++ $output{$file} = 1; ++ } elsif ($opt_auth) { ++ $output{$file} = 1 if ($pat =~ /auth[^\.]*\.(?!none).*/); ++ } else { ++ $everything = ($pat =~ /\*\.\*/); ++ $output{$file} = 1 if (($everything && $opt_daily) ++ || (!$everything && !$opt_daily && !rotated ($file)) ++ || (!$opt_ign_size && ((stat $file)[7] >= $opt_large) && $opt_daily) ++ ); ++ } ++} ++ ++foreach $file (keys (%output)) { ++ $skip = $file; ++ if (!length($opt_skip) || $skip !~ /$opt_skip/) { ++ printf "%s\n", $file; ++ } ++} +--- sysklogd-1.4.1.orig/debian/syslogd-listfiles.8 ++++ sysklogd-1.4.1/debian/syslogd-listfiles.8 +@@ -0,0 +1,95 @@ ++.\" syslogd-listfiles.8 - generic routine for /etc/syslog.conf ++.\" Copyright (c) 1997,8,2001 Martin Schulze <joey@debian.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., 675 Mass Ave, Cambridge, MA 02139, USA. ++.\" ++.TH SYSLOGD-LISTFILES 8 "December 5th, 2001" "Debian Project" "Debian GNU/Linux" ++.SH NAME ++syslogd-listfiles \- list system logfiles ++.SH SYNOPSIS ++.B syslogd-listfiles ++.RB [ " \-a " | " \-\-all " ] ++.RB [ " \-\-auth " ] ++.RB [ " \-f " ++.I config file ++] ++.RB [ " \-s " ++.I pattern ++] ++.RB [ " \-\-large " ++.I nnn ++] ++.RB [ " \-\-news " ] ++.RB [ " \-w " | " \-\-weekly " ] ++.SH DESCRIPTION ++.B Sysklogd ++provides a modern mechanism to log system messages. This mechanism is ++controlled by the file ++.IR /etc/syslog.conf . ++Messages are divided into logfiles which can grow quite big. ++Therefore the logfiles need to be rotated once per day, per week or ++per month. On a Debian GNU/Linux system most of the files are rotated ++once per week. ++ ++This program helps the rotation script to determine which logfiles ++need to be rotated and when. It takes care of news logfiles that are ++handled by the ++.B news.daily ++script from INN. In conjunction with the scripts in ++.IR /etc/cron.daily " and " /etc/cron.weekly ++it takes care of files with sensitive information. ++ ++By default a list of files for daily rotation is generated. At the ++moment this option only reflects entries that contain "*.*" as ++facility.priority. ++ ++.SH OPTIONS ++.TP ++.BR "\-a" ", " "\-\-all" ++List all logfiles and ignore all other rules. ++.TP ++.BI "\-f " "config file" ++Specify an alternative configuration file instead of ++.IR /etc/syslog.conf "," ++which is the default. ++.TP ++.BI "\-s " "pattern" ++Specify a regular expression for files that must not be listed. ++.TP ++.B "\-\-auth" ++Only list files containing sensitive information such as the one ++containing auth.*. ++.TP ++.BI "\-\-large " "nnn" ++Define the filesize for a large file. The size is provided in bytes. ++This value defaults to 1 megabyte. ++.TP ++.B \-\-ignore\-size ++Don't rotate files whose file size is larger than the regular limit ++(see above). This option is useful if you are postprocessing logfiles ++which would break if log files are rotated at a different date/time. ++.TP ++.B "\-\-news" ++Don't exclude news logfiles which are normally handled by the ++.B news.daily ++script from INN. ++.TP ++.BR "\-w" ", " "\-\-weekly" ++Generate the list for weekly rotation. ++.LP ++.SH SEE ALSO ++.BR syslog.conf (5), ++.BR syslogd (8), ++.BR savelog (8). +--- sysklogd-1.4.1.orig/debian/technical ++++ sysklogd-1.4.1/debian/technical +@@ -0,0 +1,10 @@ ++ Some technical information - unsorted ++ ------------------------------------- ++ ++ 1. Logfiles in syslogd ++ ++ As of version 1.3 syslogd doesn't come with a static array of ++ logfiles. Although the logfiles are still organized in an array. ++ This array is initialized when the configuration file (default is ++ /etc/syslog.conf) is read. Whenever a new line is read the ++ length of the array it prolongued. diff --git a/source/a/syslinux/slack-desc b/source/a/syslinux/slack-desc new file mode 100644 index 00000000..b7139920 --- /dev/null +++ b/source/a/syslinux/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------------------------------------------------------| +syslinux: syslinux (SYSLINUX/PXELINUX/ISOLINUX boot loaders) +syslinux: +syslinux: SYSLINUX is a boot loader for the Linux operating system which +syslinux: operates off an MS-DOS/Windows FAT filesystem. This is used by the +syslinux: Slackware makebootdisk script to create system boot floppies. +syslinux: +syslinux: Also included are PXELINUX and ISOLINUX, boot loaders for booting from +syslinux: a network server or CD-ROM. +syslinux: +syslinux: SYSLINUX, PXELINUX, and ISOLINUX were written by H. Peter Anvin. +syslinux: diff --git a/source/a/syslinux/syslinux-3.52.tar.bz2.sign b/source/a/syslinux/syslinux-3.52.tar.bz2.sign new file mode 100644 index 00000000..1d319cd3 --- /dev/null +++ b/source/a/syslinux/syslinux-3.52.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.7 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBG+aOayGugalF9Dw4RAtvoAJ93vpkYgJsPYBI95vXW1/qLIQC2lwCcCOPf +NhphOdhGCaUwMdqZH9tahC0= +=OS5y +-----END PGP SIGNATURE----- diff --git a/source/a/syslinux/syslinux.SlackBuild b/source/a/syslinux/syslinux.SlackBuild new file mode 100755 index 00000000..e084f96f --- /dev/null +++ b/source/a/syslinux/syslinux.SlackBuild @@ -0,0 +1,94 @@ +#!/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=syslinux +VERSION=${VERSION:-3.52} +ARCH=${ARCH:-x86_64} +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} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 2777 -o -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 {} \; + +# Build: +make -j4 || exit 1 + +make install-all INSTALLROOT=/tmp/package-syslinux +make mkdiskimage +make libsyslinux.a +cp -a unix/syslinux-nomtools mkdiskimage $PKG/usr/bin +chmod 755 $PKG/usr/bin/* + +mkdir -p $PKG/usr/lib +cp -a libsyslinux.a $PKG/usr/lib +mkdir -p $PKG/usr/include +cp -a syslinux.h $PKG/usr/include + +rm -rf $PKG/usr/lib/syslinux/com32 + +# 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 \ + BUGS COPYING NEWS README* TODO \ + distrib.doc isolinux.doc pxelinux.doc syslinux.doc \ + com32/LICENSE \ + memdisk/memdisk.doc \ + menu \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-functions/README.functions b/source/a/sysvinit-functions/README.functions new file mode 100644 index 00000000..005012f3 --- /dev/null +++ b/source/a/sysvinit-functions/README.functions @@ -0,0 +1,17 @@ + +If you're reading this in /etc/init.d/, Slackware's real init directory is +/etc/rc.d/. Maybe you already knew this, but it never hurts to say. :-) + +This script was taken from Fedora (and is presumably licensed under the GPL). +While I don't see Slackware init scripts making much use of it (but use it +if you wish), some third party init scripts (such as for commercial software +designed to run on Red Hat based systems) expect this script and use it in +their own init scripts, so it's a good idea to make it available here. + +These functions are provided solely for commercial (or other) software that +expects to find "Red Hat-isms". I wouldn't use them to write new init +scripts (personally), but if you've had experience with them in the past +and like them, by all means feel free. + +It's planned to continue support for them. + diff --git a/source/a/sysvinit-functions/doinst.sh b/source/a/sysvinit-functions/doinst.sh new file mode 100644 index 00000000..bbeb4a57 --- /dev/null +++ b/source/a/sysvinit-functions/doinst.sh @@ -0,0 +1,23 @@ +( cd etc + for dir in init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d ; do + if [ ! -L $dir -a -d $dir ]; then + mv ${dir} ${dir}.bak + fi + done +) +( cd etc ; rm -rf init.d ) +( cd etc ; ln -sf rc.d/init.d init.d ) +( cd etc ; rm -rf rc0.d ) +( cd etc ; ln -sf rc.d/rc0.d rc0.d ) +( cd etc ; rm -rf rc1.d ) +( cd etc ; ln -sf rc.d/rc1.d rc1.d ) +( cd etc ; rm -rf rc2.d ) +( cd etc ; ln -sf rc.d/rc2.d rc2.d ) +( cd etc ; rm -rf rc3.d ) +( cd etc ; ln -sf rc.d/rc3.d rc3.d ) +( cd etc ; rm -rf rc4.d ) +( cd etc ; ln -sf rc.d/rc4.d rc4.d ) +( cd etc ; rm -rf rc5.d ) +( cd etc ; ln -sf rc.d/rc5.d rc5.d ) +( cd etc ; rm -rf rc6.d ) +( cd etc ; ln -sf rc.d/rc6.d rc6.d ) diff --git a/source/a/sysvinit-functions/functions b/source/a/sysvinit-functions/functions new file mode 100644 index 00000000..580216d1 --- /dev/null +++ b/source/a/sysvinit-functions/functions @@ -0,0 +1,577 @@ +# -*-Shell-script-*- +# +# functions This file contains functions to be used by most or all +# shell scripts in the /etc/init.d directory. +# + +TEXTDOMAIN=initscripts + +# Make sure umask is sane +umask 022 + +# Set up a default search path. +PATH="/sbin:/usr/sbin:/bin:/usr/bin" +export PATH + +# Get a sane screen width +[ -z "${COLUMNS:-}" ] && COLUMNS=80 + +[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`" + +if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then + . /etc/profile.d/lang.sh +fi + +# Read in our configuration +if [ -z "${BOOTUP:-}" ]; then + if [ -f /etc/sysconfig/init ]; then + . /etc/sysconfig/init + else + # This all seem confusing? Look in /etc/sysconfig/init, + # or in /usr/doc/initscripts-*/sysconfig.txt + BOOTUP=color + RES_COL=60 + MOVE_TO_COL="echo -en \\033[${RES_COL}G" + SETCOLOR_SUCCESS="echo -en \\033[1;32m" + SETCOLOR_FAILURE="echo -en \\033[1;31m" + SETCOLOR_WARNING="echo -en \\033[1;33m" + SETCOLOR_NORMAL="echo -en \\033[0;39m" + LOGLEVEL=1 + fi + if [ "$CONSOLETYPE" = "serial" ]; then + BOOTUP=serial + MOVE_TO_COL= + SETCOLOR_SUCCESS= + SETCOLOR_FAILURE= + SETCOLOR_WARNING= + SETCOLOR_NORMAL= + fi +fi + +if [ "${BOOTUP:-}" != "verbose" ]; then + INITLOG_ARGS="-q" +else + INITLOG_ARGS= +fi + +# Interpret escape sequences in an fstab entry +fstab_decode_str() { + fstab-decode echo "$1" +} + +# Check if $pid (could be plural) are running +checkpid() { + local i + + for i in $* ; do + [ -d "/proc/$i" ] && return 0 + done + return 1 +} + +# __umount_loop awk_program fstab_file first_msg retry_msg umount_args +# awk_program should process fstab_file and return a list of fstab-encoded +# paths; it doesn't have to handle comments in fstab_file. +__umount_loop() { + local remaining sig= + local retry=3 + + remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r) + while [ -n "$remaining" -a "$retry" -gt 0 ]; do + if [ "$retry" -eq 3 ]; then + action "$3" fstab-decode umount $5 $remaining + else + action "$4" fstab-decode umount $5 $remaining + fi + sleep 2 + remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r) + [ -z "$remaining" ] && break + fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null + sleep 5 + retry=$(($retry -1)) + sig=-9 + done +} + +# Similar to __umount loop above, specialized for loopback devices +__umount_loopback_loop() { + local remaining devremaining sig= + local retry=3 + + remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts) + devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts) + while [ -n "$remaining" -a "$retry" -gt 0 ]; do + if [ "$retry" -eq 3 ]; then + action $"Unmounting loopback filesystems: " \ + fstab-decode umount $remaining + else + action $"Unmounting loopback filesystems (retry):" \ + fstab-decode umount $remaining + fi + for dev in $devremaining ; do + losetup $dev > /dev/null 2>&1 && \ + action $"Detaching loopback device $dev: " \ + losetup -d $dev + done + remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts) + devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts) + [ -z "$remaining" ] && break + fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null + sleep 5 + retry=$(($retry -1)) + sig=-9 + done +} + +# __proc_pids {program} [pidfile] +# Set $pid to pids from /var/run* for {program}. $pid should be declared +# local in the caller. +# Returns LSB exit code for the 'status' action. +__pids_var_run() { + local base=${1##*/} + local pid_file=${2:-/var/run/$base.pid} + + pid= + if [ -f "$pid_file" ] ; then + local line p + read line < "$pid_file" + for p in $line ; do + [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p" + done + if [ -n "$pid" ]; then + return 0 + fi + return 1 # "Program is dead and /var/run pid file exists" + fi + return 3 # "Program is not running" +} + +# Output PIDs of matching processes, found using pidof +__pids_pidof() { + pidof -c -o $$ -o $PPID -o %PPID -x "$1" || \ + pidof -c -o $$ -o $PPID -o %PPID -x "${1##*/}" +} + + +# A function to start a program. +daemon() { + # Test syntax. + local gotbase= force= nicelevel corelimit + local pid base= user= nice= bg= pid_file= + nicelevel=0 + while [ "$1" != "${1##[-+]}" ]; do + case $1 in + '') echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + --check) + base=$2 + gotbase="yes" + shift 2 + ;; + --check=?*) + base=${1#--check=} + gotbase="yes" + shift + ;; + --user) + user=$2 + shift 2 + ;; + --user=?*) + user=${1#--user=} + shift + ;; + --pidfile) + pid_file=$2 + shift 2 + ;; + --pidfile=?*) + pid_file=${1#--pidfile=} + shift + ;; + --force) + force="force" + shift + ;; + [-+][0-9]*) + nice="nice -n $1" + shift + ;; + *) echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + esac + done + + # Save basename. + [ -z "$gotbase" ] && base=${1##*/} + + # See if it's already running. Look *only* at the pid file. + __pids_var_run "$base" "$pid_file" + + [ -n "$pid" -a -z "$force" ] && return + + # make sure it doesn't core dump anywhere unless requested + corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}" + + # if they set NICELEVEL in /etc/sysconfig/foo, honor it + [ -n "${NICELEVEL:-}" ] && nice="nice -n $NICELEVEL" + + # Echo daemon + [ "${BOOTUP:-}" = "verbose" -a -z "${LSB:-}" ] && echo -n " $base" + + # And start it up. + if [ -z "$user" ]; then + $nice /bin/bash -c "$corelimit >/dev/null 2>&1 ; $*" + else + $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $*" + fi + [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup" +} + +# A function to stop a program. +killproc() { + local RC killlevel= base pid pid_file= delay + + RC=0; delay=3 + # Test syntax. + if [ "$#" -eq 0 ]; then + echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + if [ "$1" = "-d" ]; then + delay=$2 + shift 2 + fi + + + # check for second arg to be kill level + [ -n "${2:-}" ] && killlevel=$2 + + # Save basename. + base=${1##*/} + + # Find pid. + __pids_var_run "$1" "$pid_file" + if [ -z "$pid_file" -a -z "$pid" ]; then + pid="$(__pids_pidof "$1")" + fi + + # Kill it. + if [ -n "$pid" ] ; then + [ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base " + if [ -z "$killlevel" ] ; then + if checkpid $pid 2>&1; then + # TERM first, then KILL if not dead + kill -TERM $pid >/dev/null 2>&1 + usleep 100000 + if checkpid $pid && sleep 1 && + checkpid $pid && sleep $delay && + checkpid $pid ; then + kill -KILL $pid >/dev/null 2>&1 + usleep 100000 + fi + fi + checkpid $pid + RC=$? + [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown" + RC=$((! $RC)) + # use specified level only + else + if checkpid $pid; then + kill $killlevel $pid >/dev/null 2>&1 + RC=$? + [ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel" + elif [ -n "${LSB:-}" ]; then + RC=7 # Program is not running + fi + fi + else + if [ -n "${LSB:-}" -a -n "$killlevel" ]; then + RC=7 # Program is not running + else + failure $"$base shutdown" + RC=0 + fi + fi + + # Remove pid file if any. + if [ -z "$killlevel" ]; then + rm -f "${pid_file:-/var/run/$base.pid}" + fi + return $RC +} + +# A function to find the pid of a program. Looks *only* at the pidfile +pidfileofproc() { + local pid + + # Test syntax. + if [ "$#" = 0 ] ; then + echo $"Usage: pidfileofproc {program}" + return 1 + fi + + __pids_var_run "$1" + [ -n "$pid" ] && echo $pid + return 0 +} + +# A function to find the pid of a program. +pidofproc() { + local RC pid pid_file= + + # Test syntax. + if [ "$#" = 0 ]; then + echo $"Usage: pidofproc [-p pidfile] {program}" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + fail_code=3 # "Program is not running" + + # First try "/var/run/*.pid" files + __pids_var_run "$1" "$pid_file" + RC=$? + if [ -n "$pid" ]; then + echo $pid + return 0 + fi + + [ -n "$pid_file" ] && return $RC + __pids_pidof "$1" || return $RC +} + +status() { + local base pid pid_file= + + # Test syntax. + if [ "$#" = 0 ] ; then + echo $"Usage: status [-p pidfile] {program}" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + base=${1##*/} + + # First try "pidof" + pid="$(__pids_pidof "$1")" + if [ -n "$pid" ]; then + echo $"${base} (pid $pid) is running..." + return 0 + fi + + # Next try "/var/run/*.pid" files + __pids_var_run "$1" "$pid_file" + case "$?" in + 0) + echo $"${base} (pid $pid) is running..." + return 0 + ;; + 1) + echo $"${base} dead but pid file exists" + return 1 + ;; + esac + # See if /var/lock/subsys/${base} exists + if [ -f /var/lock/subsys/${base} ]; then + echo $"${base} dead but subsys locked" + return 2 + fi + echo $"${base} is stopped" + return 3 +} + +echo_success() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS + echo -n $" OK " + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 0 +} + +echo_failure() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE + echo -n $"FAILED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +echo_passed() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n $"PASSED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +echo_warning() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n $"WARNING" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +# Inform the graphical boot of our current state +update_boot_stage() { + if [ "$GRAPHICAL" = "yes" -a -x /usr/bin/rhgb-client ]; then + /usr/bin/rhgb-client --update="$1" + fi + return 0 +} + +# Log that something succeeded +success() { + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success + return 0 +} + +# Log that something failed +failure() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 2 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_failure + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + return $rc +} + +# Log that something passed, but may have had errors. Useful for fsck +passed() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_passed + return $rc +} + +# Log a warning +warning() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_warning + return $rc +} + +# Run some action. Log its output. +action() { + local STRING rc + + STRING=$1 + echo -n "$STRING " + if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then + echo -n "$STRING " > /etc/rhgb/temp/rhgb-console + fi + shift + "$@" && success $"$STRING" || failure $"$STRING" + rc=$? + echo + if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then + if [ "$rc" = "0" ]; then + echo_success > /etc/rhgb/temp/rhgb-console + else + echo_failure > /etc/rhgb/temp/rhgb-console + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + fi + echo > /etc/rhgb/temp/rhgb-console + fi + return $rc +} + +# returns OK if $1 contains $2 +strstr() { + [ "${1#*$2*}" = "$1" ] && return 1 + return 0 +} + +# Confirm whether we really want to run this service +confirm() { + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + while : ; do + echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] " + read answer + if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then + return 0 + elif strstr $"cC" "$answer" ; then + rm -f /var/run/confirm + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=no + return 2 + elif strstr $"nN" "$answer" ; then + return 1 + fi + done +} + +# resolve a device node to its major:minor numbers in decimal or hex +get_numeric_dev() { +( + fmt="%d:%d" + if [ "$1" == "hex" ]; then + fmt="%x:%x" + fi + ls -lH "$2" | awk '{ sub(/,/, "", $5); printf("'"$fmt"'", $5, $6); }' +) 2>/dev/null +} + +# find the working name for a running dm device with the same table as one +# that dmraid would create +resolve_dm_name() { +( + name="$1" + + line=$(/sbin/dmraid -ay -t --ignorelocking | \ + egrep -iv "no block devices found|No RAID disks" | \ + awk -F ':' "{ if (\$1 ~ /^$name$/) { print \$2; }}") + for x in $line ; do + if [[ "$x" =~ "^/dev/" ]] ; then + majmin=$(get_numeric_dev dec $x) + line=$(echo "$line" | sed -e "s,$x\( \|$\),$majmin\1,g") + fi + done + line=$(echo "$line" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' \ + -e 's/ core [12] [[:digit:]]\+ / core [12] [[:digit:]]\\+ /') + /sbin/dmsetup table | \ + sed -n -e "s/.*\(no block devices found\|No devices found\).*//" \ + -e "s/\(^[^:]\+\): $line\( \+$\|$\)/\1/p" +) 2>/dev/null +} + +# Check whether file $1 is a backup or rpm-generated file and should be ignored +is_ignored_file() { + case "$1" in + *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave) + return 0 + ;; + esac + return 1 +} +# A sed expression to filter out the files that is_ignored_file recognizes +__sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d' diff --git a/source/a/sysvinit-functions/slack-desc b/source/a/sysvinit-functions/slack-desc new file mode 100644 index 00000000..7d8e6182 --- /dev/null +++ b/source/a/sysvinit-functions/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------------------------------------------------------| +sysvinit-functions: sysvinit-functions (/etc/init.d/functions) +sysvinit-functions: +sysvinit-functions: This is the /etc/init.d/functions file, the typical sysvinit-style +sysvinit-functions: directories, and a few supporting binaries. Using this system, +sysvinit-functions: subdirectories of /etc/rc.d/ are searched for scripts (which are +sysvinit-functions: usually symlinks to the script in /etc/init.d/ or /etc/rc.d/init.d/). +sysvinit-functions: The links must start with S to start a script or K to stop (kill) it. +sysvinit-functions: +sysvinit-functions: For the most part, these are useful for running software developed +sysvinit-functions: for other versions of Linux. +sysvinit-functions: diff --git a/source/a/sysvinit-functions/sysvinit-functions.SlackBuild b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild new file mode 100755 index 00000000..9af7f9ec --- /dev/null +++ b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2005-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:-8.53} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-functions + +rm -rf $PKG +mkdir -p $TMP $PKG + +# The functions that ship in /etc/rc.d/init.d are used mainly +# by Red Hat (and derived) systems. Most users will not need +# them, but since some commerical software makes the assuption +# that /etc/rc.d/init.d/functions will exist (and uses it), +# shipping at least it and the sysvinit runlevel directories +# will probably make life easier for everybody. We'll maybe +# ever consider splitting a few of the functions of the old +# venerable BSD-style init scripts into runlevel scripts (if +# it looks like it will make system maintainance easier). + +# Build supporting binaries: +cd $TMP +rm -rf function-src-$VERSION +# A small patch was applied to initlog to shut it the %^@& up. +tar xjf $CWD/function-src-$VERSION.tar.bz2 || exit 1 +cd function-src-$VERSION +make +find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +mkdir -p $PKG/bin $PKG/sbin $PKG/usr/man/man{1,8} +make install DESTDIR=$PKG +gzip -9 $PKG/usr/man/man?/*.? + +# The FHS/LSB is a little bit unclear as to what to do here -- +# /etc/rc.d/init.d has been declared "deprecated" for no good +# reason at all (commercial vendors couldn't find /etc/rc.d?), +# so we'll make both /etc/init.d and /etc/rc.d/init.d with the +# same contents. Hopefully this will make all the programs +# happy. +mkdir -p $PKG/etc/rc.d/init.d +for file in $CWD/README.functions $CWD/functions ; do + cat $file > $PKG/etc/rc.d/init.d/$(basename $file) +done +chmod 755 $PKG/etc/rc.d/init.d/functions + +# Make empty runlevel directories: +mkdir -p $PKG/etc/rc.d/rc{0,1,2,3,4,5,6}.d + +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 +makepkg -l y -c n $TMP/sysvinit-functions-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-scripts/doinst.sh b/source/a/sysvinit-scripts/doinst.sh new file mode 100644 index 00000000..ff0ffc28 --- /dev/null +++ b/source/a/sysvinit-scripts/doinst.sh @@ -0,0 +1,25 @@ + +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... +} +# Slackware scripts +config etc/inittab.new +config etc/rc.d/rc.4.new +config etc/rc.d/rc.6.new +config etc/rc.d/rc.K.new +config etc/rc.d/rc.M.new +config etc/rc.d/rc.S.new +config etc/rc.d/rc.local.new +config etc/rc.d/rc.sysvinit.new + +( cd etc/rc.d ; rm -rf rc.0 ) +( cd etc/rc.d ; ln -sf rc.6 rc.0 ) + diff --git a/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh new file mode 100644 index 00000000..29dccf78 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh @@ -0,0 +1 @@ +lftpget http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh diff --git a/source/a/sysvinit-scripts/scripts/inittab b/source/a/sysvinit-scripts/scripts/inittab new file mode 100644 index 00000000..862f704c --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/inittab @@ -0,0 +1,74 @@ +# +# inittab This file describes how the INIT process should set up +# the system in a certain run-level. +# +# Version: @(#)inittab 2.04 17/05/93 MvS +# 2.10 02/10/95 PV +# 3.00 02/06/1999 PV +# 4.00 04/10/2002 PV +# +# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +# These are the default runlevels in Slackware: +# 0 = halt +# 1 = single user mode +# 2 = unused (but configured the same as runlevel 3) +# 3 = multiuser mode (default Slackware runlevel) +# 4 = X11 with KDM/GDM/XDM (session managers) +# 5 = unused (but configured the same as runlevel 3) +# 6 = reboot + +# Default runlevel. (Do not set to 0 or 6) +id:3:initdefault: + +# System initialization (runs when system boots). +si:S:sysinit:/etc/rc.d/rc.S + +# Script to run when going single user (runlevel 1). +su:1S:wait:/etc/rc.d/rc.K + +# Script to run when going multi user. +rc:2345:wait:/etc/rc.d/rc.M + +# What to do at the "Three Finger Salute". +ca::ctrlaltdel:/sbin/shutdown -t5 -r now + +# Runlevel 0 halts the system. +l0:0:wait:/etc/rc.d/rc.0 + +# Runlevel 6 reboots the system. +l6:6:wait:/etc/rc.d/rc.6 + +# What to do when power fails. +pf::powerfail:/sbin/genpowerfail start + +# If power is back, cancel the running shutdown. +pg::powerokwait:/sbin/genpowerfail stop + +# These are the standard console login getties in multiuser mode: +c1:1235:respawn:/sbin/agetty 38400 tty1 linux +c2:1235:respawn:/sbin/agetty 38400 tty2 linux +c3:1235:respawn:/sbin/agetty 38400 tty3 linux +c4:1235:respawn:/sbin/agetty 38400 tty4 linux +c5:1235:respawn:/sbin/agetty 38400 tty5 linux +c6:12345:respawn:/sbin/agetty 38400 tty6 linux + +# Local serial lines: +#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100 +#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100 + +# Dialup lines: +#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100 +#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100 + +# Runlevel 4 used to be for an X window only system, until we discovered +# that it throws init into a loop that keeps your load avg at least 1 all +# the time. Thus, there is now one getty opened on tty6. Hopefully no one +# will notice. ;^) +# It might not be bad to have one text console anyway, in case something +# happens to X. +x1:4:respawn:/etc/rc.d/rc.4 + +# End of /etc/inittab diff --git a/source/a/sysvinit-scripts/scripts/rc.4 b/source/a/sysvinit-scripts/scripts/rc.4 new file mode 100644 index 00000000..be8a9c74 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.4 @@ -0,0 +1,48 @@ +#! /bin/sh +# +# rc.4 This file is executed by init(8) when the system is being +# initialized for run level 4 (XDM) +# +# Version: @(#)/etc/rc.d/rc.4 2.00 02/17/93 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# At least 47% rewritten by: Patrick J. Volkerding <volkerdi@slackware.com> +# + +# Tell the viewers what's going to happen... +echo "Starting up X11 session manager..." + +# Try to use GNOME's gdm session manager. This comes first because if +# gdm is on the machine then the user probably installed it and wants +# to use it by default: +if [ -x /usr/bin/gdm ]; then + exec /usr/bin/gdm -nodaemon +fi + +# Someone thought that gdm looked prettier in /usr/sbin, +# so look there, too: +if [ -x /usr/sbin/gdm ]; then + exec /usr/sbin/gdm -nodaemon +fi + +# Not there? OK, try to use KDE's kdm session manager: +if [ -x /opt/kde/bin/kdm ]; then + exec /opt/kde/bin/kdm -nodaemon +elif [ -x /usr/bin/kdm ]; then + exec /usr/bin/kdm -nodaemon +fi + +# If all you have is XDM, I guess it will have to do: +if [ -x /usr/bin/xdm ]; then + exec /usr/bin/xdm -nodaemon +elif [ -x /usr/X11R6/bin/xdm ]; then + exec /usr/X11R6/bin/xdm -nodaemon +fi + +# error +echo +echo "Hey, you don't have KDM, GDM, or XDM. Can't use runlevel 4 without" +echo "one of those installed." +sleep 30 + +# All done. diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6 new file mode 100644 index 00000000..2d5028e3 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.6 @@ -0,0 +1,266 @@ +#! /bin/sh +# +# rc.6 This file is executed by init when it goes into runlevel +# 0 (halt) or runlevel 6 (reboot). It kills all processes, +# unmounts file systems and then either halts or reboots. +# +# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001 +# +# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +# Set the path. +PATH=/sbin:/etc:/bin:/usr/bin + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Set linefeed mode to avoid staircase effect. +/bin/stty onlcr + +echo "Running shutdown script $0:" + +# Find out how we were called. +case "$0" in + *0) + command="halt" + ;; + *6) + command=reboot + ;; + *) + echo "$0: call me as \"rc.0\" or \"rc.6\" please!" + exit 1 + ;; +esac + +# Save the system time to the hardware clock using hwclock --systohc. +if [ -x /sbin/hwclock ]; then + # Check for a broken motherboard RTC clock (where ioports for rtc are + # unknown) to prevent hwclock causing a hang: + if ! grep -q -w rtc /proc/ioports ; then + CLOCK_OPT="--directisa" + fi + if grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then + echo "Saving system time to the hardware clock (UTC)." + /sbin/hwclock $CLOCK_OPT --utc --systohc + else + echo "Saving system time to the hardware clock (localtime)." + /sbin/hwclock $CLOCK_OPT --localtime --systohc + fi +fi + +# Run any local shutdown scripts: +if [ -x /etc/rc.d/rc.local_shutdown ]; then + /etc/rc.d/rc.local_shutdown stop +fi + +# Stop the Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + /etc/rc.d/rc.httpd stop +fi + +# Stop the MySQL database: +if [ -r /var/run/mysql/mysql.pid ]; then + . /etc/rc.d/rc.mysqld stop +fi + +# Stop the Samba server: +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba stop +fi + +# Shut down the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd stop +fi + +# Shut down the SSH server: +if [ -x /etc/rc.d/rc.sshd ]; then + /etc/rc.d/rc.sshd stop +fi + +# Shut down the SASL authentication daemon: +if [ -x /etc/rc.d/rc.saslauthd ]; then + /etc/rc.d/rc.saslauthd stop +fi + +# Shut down OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + /etc/rc.d/rc.openldap stop +fi + +# Stop D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus stop +fi + +# Unmount any NFS, SMB, or CIFS filesystems: +echo "Unmounting remote filesystems." +/bin/umount -v -a -r -t nfs,smbfs,cifs + +# Try to shut down pppd: +PS="$(ps ax)" +if echo "$PS" | /bin/grep -q -w pppd ; then + if [ -x /usr/sbin/ppp-off ]; then + /usr/sbin/ppp-off + fi +fi + +# Bring down the networking system, but first make sure that this +# isn't a diskless client with the / partition mounted via NFS: +if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then + if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 stop + fi +fi + +# In case dhcpcd might have been manually started on the command line, +# look for the .pid file, and shut dhcpcd down if it's found: +if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then + /sbin/dhcpcd -k 1> /dev/null 2> /dev/null + # A little time for /etc/resolv.conf and/or other files to + # restore themselves. + sleep 2 +fi + +# Shut down PCMCIA devices: +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia stop + # The cards might need a little extra time here to deactivate: + /bin/sleep 5 +fi + +# Turn off process accounting: +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + /sbin/accton off +fi + +# Terminate acpid before syslog: +if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit + . /etc/rc.d/rc.acpid stop +fi + +# Kill all processes. +# INIT is supposed to handle this entirely now, but this didn't always +# work correctly without this second pass at killing off the processes. +# Since INIT already notified the user that processes were being killed, +# we'll avoid echoing this info this time around. +if [ ! "$1" = "fast" ]; then # shutdown did not already kill all processes + /sbin/killall5 -15 + /bin/sleep 5 + /sbin/killall5 -9 +fi + +# Try to turn off quota. +if /bin/grep -q quota /etc/fstab ; then + if [ -x /sbin/quotaoff ]; then + echo "Turning off filesystem quotas." + /sbin/quotaoff -a + fi +fi + +# Carry a random seed between reboots. +echo "Saving random seed from /dev/urandom in /etc/random-seed." +# Use the pool size from /proc, or 512 bytes: +if [ -r /proc/sys/kernel/random/poolsize ]; then + /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null +else + /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null +fi +/bin/chmod 600 /etc/random-seed + +# Before unmounting file systems write a reboot or halt record to wtmp. +$command -w + +# Clear /var/lock/subsys. +if [ -d /var/lock/subsys ]; then + rm -f /var/lock/subsys/* +fi + +# Turn off swap: +echo "Turning off swap." +/sbin/swapoff -a +/bin/sync + +# Umount any LVM volumes: +if /bin/mount | /bin/grep -q '^/dev/mapper/' ; then + echo "Unmounting LVM volumes." + /bin/umount -v $(/bin/mount | /bin/grep '^/dev/mapper/' | /bin/cut -d ' ' -f 3 | /bin/tac) +fi + +echo "Unmounting local file systems." +/bin/umount -v -a -t no,proc,sysfs + +echo "Remounting root filesystem read-only." +/bin/mount -v -n -o remount,ro / + +# This never hurts: +/bin/sync + +# Close any volumes opened by cryptsetup: +if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then + cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do + # NOTE: we only support LUKS formatted volumes (except for swap)! + LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ') + DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ') + OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ') + if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then + echo "Locking LUKS crypt volume '${LUKS}':" + /sbin/cryptsetup.static luksClose ${LUKS} + elif echo $OPTS | grep -wq swap ; then + # If any of the volumes was used as encrypted swap, + # then run mkswap on the underlying device - + # in case other Linux installations on this computer should use it: + echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:" + /sbin/cryptsetup.static remove ${LUKS} + mkswap $DEV + fi + done +fi + +# Deactivate LVM volume groups: +if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then + echo "Deactivating LVM volume groups:" + /sbin/vgchange -an --ignorelockingfailure +fi + +# This never hurts again (especially since root-on-LVM always fails +# to deactivate the / logical volume... but at least it was +# remounted as read-only first) +/bin/sync + +# sleep 3 fixes problems with some hard drives that don't +# otherwise finish syncing before reboot or poweroff +/bin/sleep 3 + +# This is to ensure all processes have completed on SMP machines: +wait + +if [ -x /sbin/genpowerd ]; then + # See if this is a powerfail situation: + if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then + # Signal UPS to shut off the inverter: + /sbin/genpowerd -k + if [ ! $? = 0 ]; then + echo + echo "There was an error signaling the UPS." + echo "Perhaps you need to edit /etc/genpowerd.conf to configure" + echo "the serial line and UPS type." + # Wasting 15 seconds of precious power: + /bin/sleep 15 + fi + fi +fi + +# Now halt (poweroff with APM or ACPI enabled kernels) or reboot. +if [ "$command" = "reboot" ]; then + echo "Rebooting." + /sbin/reboot +else + /sbin/poweroff +fi + diff --git a/source/a/sysvinit-scripts/scripts/rc.K b/source/a/sysvinit-scripts/scripts/rc.K new file mode 100644 index 00000000..68609753 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.K @@ -0,0 +1,106 @@ +#! /bin/sh +# +# rc.K This file is executed by init when it goes into runlevel +# 1, which is the administrative state. It kills all +# daemons and then puts the system into single user mode. +# Note that the file systems are kept mounted. +# +# Version: @(#)/etc/rc.d/rc.K 3.1415 Sat Jan 13 13:37:26 PST 2001 +# +# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding <volkerdi@slackware.com> +# + +# Set the path. +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +# Load any needed keyboard mappings: +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Try to turn off quota: +if grep -q quota /etc/fstab ; then + if [ -x /sbin/quotaoff ]; then + echo "Turning off filesystem quotas." + /sbin/quotaoff -a + fi +fi + +# Try to turn off accounting: +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + /sbin/accton off +fi + +# Run any local shutdown scripts: +if [ -x /etc/rc.d/rc.local_shutdown ]; then + /etc/rc.d/rc.local_shutdown stop +fi + +# Stop the Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + /etc/rc.d/rc.httpd stop +fi + +# Stop the Samba server: +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba stop +fi + +# Shut down the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd stop +fi + +# Unmount any NFS, SMB, or CIFS filesystems: +echo "Unmounting remote filesystems." +umount -a -r -t nfs,smbfs,cifs + +# Shut down PCMCIA devices: +if [ -x /etc/rc.d/rc.pcmcia ] ; then + . /etc/rc.d/rc.pcmcia stop + # The cards might need a little extra time here to deactivate: + sleep 5 +fi + +# Terminate acpid before syslog: +if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit + . /etc/rc.d/rc.acpid stop +fi + +# Kill all processes. +echo +echo "Sending all processes the SIGHUP signal." +killall5 -1 +echo -n "Waiting for processes to hang up" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo +echo "Sending all processes the SIGTERM signal." +killall5 -15 +echo -n "Waiting for processes to terminate" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo +echo "Sending all processes the SIGKILL signal." +killall5 -9 +echo -n "Waiting for processes to exit" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo + +# Now go to the single user level +echo "Going to single user mode..." +telinit -t 1 1 + diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M new file mode 100644 index 00000000..fe2c9b6f --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.M @@ -0,0 +1,355 @@ +#!/bin/sh +# +# rc.M This file is executed by init(8) when the system is being +# initialized for one of the "multi user" run levels (i.e. +# levels 1 through 6). It usually does mounting of file +# systems et al. +# +# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# Heavily modified by Patrick Volkerding <volkerdi@slackware.com> +# + +# Tell the viewers what's going to happen. +echo "Going multiuser..." + +# Update all the shared library links: +if [ -x /sbin/ldconfig ]; then + echo "Updating shared library links: /sbin/ldconfig &" + /sbin/ldconfig & +fi + +# Screen blanks after 15 minutes idle time, and powers down in one hour +# if the kernel supports APM or ACPI power management: +/bin/setterm -blank 15 -powersave powerdown -powerdown 60 + +# Set the hostname. +if [ -r /etc/HOSTNAME ]; then + /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .) +else + # fall back on this old default: + echo "darkstar.example.net" > /etc/HOSTNAME + /bin/hostname darkstar +fi + +# Save the contents of 'dmesg': +/bin/dmesg -s 65536 > /var/log/dmesg + +# Initialize PCMCIA devices: +# +# NOTE: This used to be started near the top of rc.S so that PCMCIA devices +# could be fsck'ed along with the other drives. This had some unfortunate +# side effects, however, since root isn't yet read-write, and /var might not +# even be mounted the .pid files can't be correctly written in /var/run and +# the pcmcia system can't be correctly shut down. If you want some PCMCIA +# partition to be mounted at boot (or when the card is inserted) then add +# the appropriate lines to /etc/pcmcia/scsi.opts. +# +# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using +# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a +# wireless card you might need to set options in /etc/pcmcia OR in +# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with +# extra options if needed for the encryption key, ESSID, etc.) +# +# Hopefully this situation will be unified in the future, but for now +# that's how it is... +# +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia start + # The cards might need a little extra time here to initialize. + sleep 5 +fi + +# Start the system logger. +if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then + . /etc/rc.d/rc.syslog start +fi + +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + echo "Updating X font indexes: /usr/bin/fc-cache -f &" + /usr/bin/fc-cache -f & +fi + +# If we are returning from single-user mode we will need to restart +# udevd on systems that use udev: +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the networking hardware. +if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 +fi + +# Look for additional USB/SCSI/IEEE1394/etc devices on multiple LUNs: +if [ -x /etc/rc.d/rc.scanluns ]; then + . /etc/rc.d/rc.scanluns +fi + +# Start networking daemons: +if [ -x /etc/rc.d/rc.inet2 ]; then + . /etc/rc.d/rc.inet2 +fi + +# Mount any additional filesystem types that haven't already been mounted: +mount -a -v 2> /dev/null | grep -v "already mounted" + +# Start the Network Time Protocol daemon: +if [ -x /etc/rc.d/rc.ntpd ]; then + sh /etc/rc.d/rc.ntpd start +fi + +# Remove stale locks and junk files (must be done after mount -a!) +/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/core /core 2> /dev/null + +# Remove stale hunt sockets so the game can start. +if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then + echo "Removing your stale hunt sockets from /tmp." + /bin/rm -f /tmp/hunt* +fi + +# Ensure basic filesystem permissions sanity. +chmod 755 / 2> /dev/null +chmod 1777 /tmp /var/tmp + +# Start APM or ACPI daemon. +# If APM is enabled in the kernel, start apmd: +if [ -e /proc/apm ]; then + if [ -x /usr/sbin/apmd ]; then + echo "Starting APM daemon: /usr/sbin/apmd" + /usr/sbin/apmd + fi +elif [ -x /etc/rc.d/rc.acpid ]; then # otherwise, start acpid: + . /etc/rc.d/rc.acpid start +fi + +# Update any existing icon cache files: +if find /usr/share/icons 2> /dev/null | grep -q icon-theme.cache ; then + for theme_dir in /usr/share/icons/* ; do + if [ -r ${theme_dir}/icon-theme.cache ]; then + echo "Updating icon-theme.cache in ${theme_dir}..." + /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null & + fi + done + # This would be a large file and probably shouldn't be there. + if [ -r /usr/share/icons/icon-theme.cache ]; then + echo "Deleting icon-theme.cache in /usr/share/icons..." + #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null & + rm -f /usr/share/icons/icon-theme.cache + fi +fi + +# Update mime database: +if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then + echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &" + /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null & +fi + +# Start D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus start +fi + +# Start HAL: +if [ -x /etc/rc.d/rc.hald ]; then + sh /etc/rc.d/rc.hald start +fi + +# Start Bluetooth: +if [ -x /etc/rc.d/rc.bluetooth ]; then + sh /etc/rc.d/rc.bluetooth start +fi + +# Start wicd: +if [ -x /etc/rc.d/rc.wicd ]; then + sh /etc/rc.d/rc.wicd start +fi + +# These GTK+/pango files need to be kept up to date for +# proper input method, pixbuf loaders, and font support. +if [ -x /usr/bin/update-gtk-immodules ]; then + /usr/bin/update-gtk-immodules --verbose +fi +if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then + /usr/bin/update-gdk-pixbuf-loaders --verbose +fi +if [ -x /usr/bin/update-pango-querymodules ]; then + /usr/bin/update-pango-querymodules --verbose +fi + +# Start dnsmasq, a simple DHCP/DNS server: +if [ -x /etc/rc.d/rc.dnsmasq ]; then + /etc/rc.d/rc.dnsmasq start +fi + +# Start snmpd: +if [ -x /etc/rc.d/rc.snmpd ]; then + /etc/rc.d/rc.snmpd start +fi + +# Start the print spooling system. This will usually be LPRng (lpd) or CUPS. +if [ -x /etc/rc.d/rc.cups ]; then + # Start CUPS: + /etc/rc.d/rc.cups start +elif [ -x /etc/rc.d/rc.lprng ]; then + # Start LPRng (lpd): + . /etc/rc.d/rc.lprng start +fi + +# Start netatalk. (a file/print server for Macs using Appletalk) +if [ -x /etc/rc.d/rc.atalk ]; then + /etc/rc.d/rc.atalk +fi + +# Start smartd, which monitors the status of S.M.A.R.T. compatible +# hard drives and reports any problems. Note some devices (which aren't +# smart, I guess ;) will hang if probed by smartd, so it's commented out +# by default. +#if [ -x /usr/sbin/smartd ]; then +# /usr/sbin/smartd +#fi + +# If we're using udev, make /dev/cdrom and any other optical drive symlinks +# if some udev rule hasn't made them already: +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /lib/udev/rc.optical-symlinks -a -x /etc/rc.d/rc.udev ]; then + /bin/sh /lib/udev/rc.optical-symlinks + fi + fi +fi + +# Monitor the UPS with genpowerd. +# To use this, uncomment this section and edit your settings in +# /etc/genpowerd.conf (serial device, UPS type, etc). For more information, +# see "man genpowerd" or the extensive documentation in the +# /usr/doc/genpower-*/ directory. +# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want +# support for stopping the UPS's inverter after the machine halts. +#if [ -x /sbin/genpowerd ]; then +# echo "Starting genpowerd daemon..." +# /sbin/genpowerd +#fi + +# Turn on process accounting. To enable process accounting, make sure the +# option for BSD process accounting is enabled in your kernel, and then +# create the file /var/log/pacct (touch /var/log/pacct). By default, process +# accounting is not enabled (since /var/log/pacct does not exist). This is +# because the log file can get VERY large. +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + chmod 640 /var/log/pacct + /sbin/accton /var/log/pacct +fi + +# Start crond (Dillon's crond): +# If you want cron to actually log activity to /var/log/cron, then change +# -l10 to -l8 to increase the logging level. +if [ -x /usr/sbin/crond ]; then + /usr/sbin/crond -l10 >>/var/log/cron 2>&1 +fi + +# Start atd (manages jobs scheduled with 'at'): +if [ -x /usr/sbin/atd ]; then + /usr/sbin/atd -b 15 -l 1 +fi + +# Slackware-Mini-Quota-HOWTO: +# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to +# the appropriate partitions as listed in /etc/fstab. Here's an example: +# +# /dev/hda2 /home ext3 defaults,usrquota 1 1 +# +# You'll then need to setup initial quota files at the top of the partitions +# to support quota, like this: +# touch /home/aquota.user /home/aquota.group +# chmod 600 /home/aquota.user /home/aquota.group +# +# Then, reboot to activate the system. +# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the +# official Quota Mini-HOWTO has lots of useful information. That can be found +# here: /usr/doc/Linux-HOWTOs/Quota + +# Check quotas and then turn quota system on: +if grep -q quota /etc/fstab ; then + for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do + /bin/rm -f $quotafs/{a,}quota.{group,user}.new + done + if [ -x /sbin/quotacheck ]; then + echo "Checking filesystem quotas: /sbin/quotacheck -avugm" + /sbin/quotacheck -avugm + fi + if [ -x /sbin/quotaon ]; then + echo "Activating filesystem quotas: /sbin/quotaon -avug" + /sbin/quotaon -avug + fi +fi + +# Start the SASL authentication server. This provides SASL +# authentication services for sendmail: +if [ -x /etc/rc.d/rc.saslauthd ]; then + . /etc/rc.d/rc.saslauthd start +fi + +# Start the sendmail daemon: +if [ -x /etc/rc.d/rc.sendmail ]; then + . /etc/rc.d/rc.sendmail start +fi + +# Load ALSA (sound) defaults: +if [ -x /etc/rc.d/rc.alsa ]; then + . /etc/rc.d/rc.alsa +fi + +# Load a custom screen font if the user has an rc.font script. +if [ -x /etc/rc.d/rc.font ]; then + . /etc/rc.d/rc.font +fi + +# Load a custom keymap if the user has an rc.keymap script. +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# Start the MySQL database: +if [ -x /etc/rc.d/rc.mysqld ]; then + . /etc/rc.d/rc.mysqld start +fi + +# Start Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + . /etc/rc.d/rc.httpd start +fi + +# Start OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + . /etc/rc.d/rc.openldap start +fi + +# Start Samba (a file/print server for Win95/NT machines). +# Samba can be started in /etc/inetd.conf instead. +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba start +fi + +# Start the GPM mouse server: +if [ -x /etc/rc.d/rc.gpm ]; then + . /etc/rc.d/rc.gpm start +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Start the local setup procedure. +if [ -x /etc/rc.d/rc.local ]; then + . /etc/rc.d/rc.local +fi + +# All done. diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S new file mode 100644 index 00000000..a0072d28 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.S @@ -0,0 +1,382 @@ +#!/bin/sh +# +# /etc/rc.d/rc.S: System initialization script. +# +# Mostly written by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +# Mount /proc right away: +/sbin/mount -v proc /proc -n -t proc + +# Mount sysfs next, if the kernel supports it: +if [ -d /sys ]; then + if grep -wq sysfs /proc/filesystems ; then + if ! grep -wq sysfs /proc/mounts ; then + /sbin/mount -v sysfs /sys -n -t sysfs + fi + fi +fi + +# Initialize udev to manage /dev entries and hotplugging for 2.6.x kernels. +# You may turn off udev by making the /etc/rc.d/rc.udev file non-executable +# or giving the "nohotplug" option at boot, but in the 2.6.x+ kernels udev +# has taken over the job of hotplug (finding hardware and loading the kernel +# modules for it, as well as creating device nodes in /dev). Realize that +# if you turn off udev that you will have to load all the kernel modules +# that you need yourself (possibly in /etc/rc.d/rc.modules, which does not +# promise to list all of them), and make any additional device nodes that you +# need in the /dev directory. Even USB and IEEE1394 devices will need to have +# the modules loaded by hand if udev is not used with a 2.6 kernel. So use it. :-) +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the Logical Volume Manager. +# This won't start unless we find /etc/lvmtab (LVM1) or +# /etc/lvm/backup/ (LVM2). This is created by /sbin/vgscan, so to +# use LVM you must run /sbin/vgscan yourself the first time (and +# create some VGs and LVs). +if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then + echo "Initializing LVM (Logical Volume Manager):" + # Check for device-mapper support. + if ! grep -wq device-mapper /proc/devices ; then + # Try to load a device-mapper kernel module: + /sbin/modprobe -q dm-mod + fi + # Scan for new volume groups: + /sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null + if [ $? = 0 ]; then + # Make volume groups available to the kernel. + # This should also make logical volumes available. + /sbin/vgchange -ay --ignorelockingfailure + fi +fi + +# Open any volumes created by cryptsetup: +if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then + # First, check for device-mapper support. + if ! grep -wq device-mapper /proc/devices ; then + # If device-mapper exists as a module, try to load it. + # Try to load a device-mapper kernel module: + /sbin/modprobe -q dm-mod + fi + # NOTE: we only support LUKS formatted volumes (except for swap)! + cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do + eval LUKSARRAY=( $line ) + LUKS="${LUKSARRAY[0]}" + DEV="${LUKSARRAY[1]}" + PASS="${LUKSARRAY[2]}" + OPTS="${LUKSARRAY[3]}" + LUKSOPTS="" + if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi + + # Skip LUKS volumes that were already unlocked (in the initrd): + /sbin/cryptsetup.static status $LUKS 1>/dev/null 2>/dev/null && continue + if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then + echo "Unlocking LUKS crypt volume '${LUKS}' on device '$DEV':" + if [ -n "${PASS}" ]; then + if [ -f ${PASS} ]; then + /sbin/cryptsetup.static ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS + elif [ "${PASS}" != "none" ]; then + # A password field of 'none' indicates a line for swap: + echo "${PASS}" | /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS + fi + else + for i in seq 1 3 ; do + /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1 + [ $? -eq 0 ] && break + done + fi + elif echo $OPTS | grep -wq swap ; then + # If any of the volumes is to be used as encrypted swap, + # then encrypt it using a random key and run mkswap: + echo "Creating encrypted swap on device '$DEV' mapped to '${LUKS}':" + /sbin/cryptsetup.static --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV + mkswap /dev/mapper/$LUKS + fi + done +fi + +# Enable swapping: +/sbin/swapon -a + +# Start FUSE, if requested: +if [ -x /etc/rc.d/rc.fuse ]; then + sh /etc/rc.d/rc.fuse start +fi + +# Set the system time from the hardware clock using hwclock --hctosys. +if [ -x /sbin/hwclock ]; then + # Check for a broken motherboard RTC clock (where ioports for rtc are + # unknown) to prevent hwclock causing a hang: + if ! grep -q -w rtc /proc/ioports ; then + CLOCK_OPT="--directisa" + fi + if grep -wq "^UTC" /etc/hardwareclock ; then + echo "Setting system time from the hardware clock (UTC)." + /sbin/hwclock $CLOCK_OPT --utc --hctosys + else + echo "Setting system time from the hardware clock (localtime)." + /sbin/hwclock $CLOCK_OPT --localtime --hctosys + fi +fi + +# Test to see if the root partition is read-only, like it ought to be. +READWRITE=no +if touch /fsrwtestfile 2>/dev/null; then + rm -f /fsrwtestfile + READWRITE=yes +else + echo "Testing root filesystem status: read-only filesystem" +fi + +# See if a forced filesystem check was requested at shutdown: +if [ -r /etc/forcefsck ]; then + FORCEFSCK="-f" +fi + +# Check the root filesystem: +if [ ! $READWRITE = yes ]; then + RETVAL=0 + if [ ! -r /etc/fastboot ]; then + echo "Checking root filesystem:" + /sbin/fsck $FORCEFSCK -C -a / + RETVAL=$? + fi + # An error code of 2 or higher will require a reboot. + if [ $RETVAL -ge 2 ]; then + # An error code equal to or greater than 4 means that some errors + # could not be corrected. This requires manual attention, so we + # offer a chance to try to fix the problem in single-user mode: + if [ $RETVAL -ge 4 ]; then + echo + echo "***********************************************************" + echo "*** An error occurred during the root filesystem check. ***" + echo "*** You will now be given a chance to log into the ***" + echo "*** system in single-user mode to fix the problem. ***" + echo "*** ***" + echo "*** If you are using the ext2 filesystem, running ***" + echo "*** 'e2fsck -v -y <partition>' might help. ***" + echo "***********************************************************" + echo + echo "Once you exit the single-user shell, the system will reboot." + echo + PS1="(Repair filesystem) \#"; export PS1 + sulogin + else # With an error code of 2 or 3, reboot the machine automatically: + echo + echo "***********************************" + echo "*** The filesystem was changed. ***" + echo "*** The system will now reboot. ***" + echo "***********************************" + echo + fi + echo "Unmounting file systems." + /sbin/umount -a -r + /sbin/mount -n -o remount,ro / + echo "Rebooting system." + sleep 2 + reboot -f + fi + # Remount the root filesystem in read-write mode + echo "Remounting root device with read-write enabled." + /sbin/mount -w -v -n -o remount / + if [ $? -gt 0 ] ; then + echo + echo "Attempt to remount root device as read-write failed! This is going to" + echo "cause serious problems." + echo + echo "If you're using the UMSDOS filesystem, you **MUST** mount the root partition" + echo "read-write! You can make sure the root filesystem is getting mounted " + echo "read-write with the 'rw' flag to Loadlin:" + echo + echo "loadlin vmlinuz root=/dev/hda1 rw (replace /dev/hda1 with your root device)" + echo + echo "Normal bootdisks can be made to mount a system read-write with the rdev command:" + echo + echo "rdev -R /dev/fd0 0" + echo + echo "You can also get into your system by using a boot disk with a command like this" + echo "on the LILO prompt line: (change the root partition name as needed)" + echo + echo "LILO: mount root=/dev/hda1 rw" + echo + echo "Please press ENTER to continue, then reboot and use one of the above methods to" + echo -n "get into your machine and start looking for the problem. " + read junk; + fi +else + echo "Testing root filesystem status: read-write filesystem" + echo + echo "*** ERROR: Root partition has already been mounted read-write. Cannot check!" + echo + echo "For filesystem checking to work properly, your system must initially mount" + echo "the root partition as read only. Please modify your kernel with 'rdev' so that" + echo "it does this. If you're booting with LILO, add a line:" + echo + echo " read-only" + echo + echo "to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it." + echo + echo "If you boot from a kernel on a floppy disk, put it in the drive and type:" + echo " rdev -R /dev/fd0 1" + echo + echo "If you boot from a bootdisk, or with Loadlin, you can add the 'ro' flag." + echo + echo "This will fix the problem *AND* eliminate this annoying message. :^)" + echo + echo -n "Press ENTER to continue. " + read junk; +fi # Done checking root filesystem + +# Any /etc/mtab that exists here is old, so we delete it to start over: +/bin/rm -f /etc/mtab* +# Remounting the / partition will initialize the new /etc/mtab: +/sbin/mount -w -o remount / + +# Read in the correct / filesystem complete with arguments so mount will +# show them correctly. This does not stop those arguments from functioning +# but does prevent a small bug with /etc/mtab. +/bin/grep ' / ' /proc/mounts | grep -v "^rootfs" > /etc/mtab + +# Fix /etc/mtab to list sys and proc if they were not yet entered in +# /etc/mtab because / was still mounted read-only: +if [ -d /proc/sys ]; then + /sbin/mount -f proc /proc -t proc +fi +if [ -d /sys/bus ]; then + /sbin/mount -f sysfs /sys -t sysfs +fi + +# Configure ISA Plug-and-Play devices: +if [ -r /etc/isapnp.conf ]; then + if [ -x /sbin/isapnp ]; then + /sbin/isapnp /etc/isapnp.conf + fi +fi + +# This loads any kernel modules that are needed. These might be required to +# use your ethernet card, sound card, or other optional hardware. +# Priority is given first to a script named "rc.modules.local", then +# to "rc.modules-$FULL_KERNEL_VERSION", and finally to the plain "rc.modules". +# Note that if /etc/rc.d/rc.modules.local is found, then that will be the ONLY +# rc.modules script the machine will run, so make sure it has everything in +# it that you need. +if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules.local:" + /bin/sh /etc/rc.d/rc.modules.local +elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules-$(uname -r):" + . /etc/rc.d/rc.modules-$(uname -r) +elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]; then + echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):" + . /etc/rc.d/rc.modules +elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules:" + . /etc/rc.d/rc.modules +fi + +# Configure runtime kernel parameters: +if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then + /sbin/sysctl -e -p /etc/sysctl.conf +fi + +# Check all the non-root filesystems: +if [ ! -r /etc/fastboot ]; then + echo "Checking non-root filesystems:" + /sbin/fsck $FORCEFSCK -C -R -A -a +fi + +# Mount usbfs: +if grep -wq usbfs /proc/filesystems; then + if ! grep -wq usbfs /proc/mounts ; then + if ! grep -wq usbfs /etc/fstab; then + /sbin/mount -v usbfs /proc/bus/usb -t usbfs + else + /sbin/mount -v /proc/bus/usb + fi + fi +fi + +# Mount non-root file systems in fstab, but not NFS or SMB +# because TCP/IP is not yet configured, and not proc or sysfs +# because those have already been mounted. Also check that +# devpts is not already mounted before attempting to mount +# it. With a 2.6.x or newer kernel udev mounts devpts. +# We also need to wait a little bit to let USB and other +# hotplugged devices settle (sorry to slow down the boot): +echo "Mounting non-root local filesystems:" +sleep 3 +if /bin/grep -wq devpts /proc/mounts ; then + /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts +else + /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs +fi + +# Enable swapping again. This is needed in case a swapfile is used, +# as it can't be enabled until the filesystem it resides on has been +# mounted read-write. +/sbin/swapon -a + +# Clean up some temporary files: +rm -f /var/run/* /var/run/*/* /var/run/*/*/* /etc/nologin \ + /etc/dhcpc/*.pid /etc/forcefsck /etc/fastboot \ + /var/state/saslauthd/saslauthd.pid \ + /tmp/.Xauth* 1> /dev/null 2> /dev/null + ( cd /var/log/setup/tmp && rm -rf * ) + ( cd /tmp && rm -rf kde-[a-zA-Z]* ksocket-[a-zA-Z]* hsperfdata_[a-zA-Z]* plugtmp* ) + +# Create /tmp/{.ICE-unix,.X11-unix} if they are not present: +if [ ! -e /tmp/.ICE-unix ]; then + mkdir -p /tmp/.ICE-unix + chmod 1777 /tmp/.ICE-unix +fi +if [ ! -e /tmp/.X11-unix ]; then + mkdir -p /tmp/.X11-unix + chmod 1777 /tmp/.X11-unix +fi + +# Create a fresh utmp file: +touch /var/run/utmp +chown root:utmp /var/run/utmp +chmod 664 /var/run/utmp + +# Update the current kernel level in the /etc/motd (Message Of The Day) file, +# if the first line of that file begins with the word 'Linux'. +# You are free to modify the rest of the file as you see fit. +if [ -x /bin/sed ]; then + /bin/sed -i "{1s/^Linux.*/$(/bin/uname -sr)\./}" /etc/motd +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Run serial port setup script: +# CAREFUL! This can make some systems hang if the rc.serial script isn't +# set up correctly. If this happens, you may have to edit the file from a +# boot disk, and/or set it as non-executable: +if [ -x /etc/rc.d/rc.serial ]; then + sh /etc/rc.d/rc.serial start +fi + +# Carry an entropy pool between reboots to improve randomness. +if [ -f /etc/random-seed ]; then + echo "Using /etc/random-seed to initialize /dev/urandom." + cat /etc/random-seed > /dev/urandom +fi +# Use the pool size from /proc, or 512 bytes: +if [ -r /proc/sys/kernel/random/poolsize ]; then + dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null +else + dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null +fi +chmod 600 /etc/random-seed + diff --git a/source/a/sysvinit-scripts/scripts/rc.local b/source/a/sysvinit-scripts/scripts/rc.local new file mode 100644 index 00000000..65b358bb --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.local @@ -0,0 +1,9 @@ +#!/bin/sh +# +# /etc/rc.d/rc.local: Local system initialization script. +# +# Put any local startup commands in here. Also, if you have +# anything that needs to be run at shutdown time you can +# make an /etc/rc.d/rc.local_shutdown script and put those +# commands in there. + diff --git a/source/a/sysvinit-scripts/scripts/rc.sysvinit b/source/a/sysvinit-scripts/scripts/rc.sysvinit new file mode 100644 index 00000000..916e59ee --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.sysvinit @@ -0,0 +1,58 @@ +#!/bin/sh +# +# rc.sysvinit This file provides basic compatibility with SystemV style +# startup scripts. The SystemV style init system places +# start/stop scripts for each runlevel into directories such as +# /etc/rc.d/rc3.d/ (for runlevel 3) instead of starting them +# from /etc/rc.d/rc.M. This makes for a lot more init scripts, +# and a more complicated execution path to follow through if +# something goes wrong. For this reason, Slackware has always +# used the traditional BSD style init script layout. +# +# However, many binary packages exist that install SystemV +# init scripts. With rc.sysvinit in place, most well-written +# startup scripts will work. This is primarily intended to +# support commercial software, though, and probably shouldn't +# be considered bug free. +# +# Written by Patrick Volkerding <volkerdi@slackware.com>, 1999 +# from an example by Miquel van Smoorenburg <miquels@cistron.nl>. + +# Run an init script: +startup() { + case "$1" in + *.sh) + sh "$@" + ;; + *) + "$@" + ;; + esac +} + +# Set onlcr to avoid staircase effect. +stty onlcr 0>&1 + +if [ "$runlevel" = "" ]; then + runlevel=$RUNLEVEL + export runlevel + prevlevel=$PREVLEVEL + export prevlevel +fi + +# Run kill scripts in the previous runlevel if not "none" +if [ ! "$prevlevel" = "N" ]; then + for script in /etc/rc.d/rc$prevlevel.d/K* ; do + if [ -x $script ]; then + startup $script stop + fi + done +fi + +# Now do the startup scripts: +for script in /etc/rc.d/rc$runlevel.d/S* ; do + if [ -x $script ]; then + startup $script start + fi +done + diff --git a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh new file mode 100644 index 00000000..4378e208 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh @@ -0,0 +1,558 @@ +#!/bin/bash +# Skript to rescan SCSI bus, using the +# scsi add-single-device mechanism +# (c) 1998--2008 Kurt Garloff <kurt@garloff.de>, GNU GPL v2 or later +# (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later +# $Id: rescan-scsi-bus.sh,v 1.29 2008/10/29 10:03:04 garloff Exp $ + +setcolor () +{ + red="\e[0;31m" + green="\e[0;32m" + yellow="\e[0;33m" + bold="\e[0;1m" + norm="\e[0;0m" +} + +unsetcolor () +{ + red=""; green="" + yellow=""; norm="" +} + +# Return hosts. sysfs must be mounted +findhosts_26 () +{ + hosts= + if ! ls /sys/class/scsi_host/host* >/dev/null 2>&1; then + echo "No SCSI host adapters found in sysfs" + exit 1; + fi + for hostdir in /sys/class/scsi_host/host*; do + hostno=${hostdir#/sys/class/scsi_host/host} + if [ -f $hostdir/isp_name ] ; then + hostname="qla2xxx" + elif [ -f $hostdir/lpfc_drvr_version ] ; then + hostname="lpfc" + else + hostname=`cat $hostdir/proc_name` + fi + hosts="$hosts $hostno" + echo "Host adapter $hostno ($hostname) found." + done + hosts=`echo $hosts | sed 's/ /\n/g' | sort -n` +} + +# Return hosts. /proc/scsi/HOSTADAPTER/? must exist +findhosts () +{ + hosts= + for driverdir in /proc/scsi/*; do + driver=${driverdir#/proc/scsi/} + if test $driver = scsi -o $driver = sg -o $driver = dummy -o $driver = device_info; then continue; fi + for hostdir in $driverdir/*; do + name=${hostdir#/proc/scsi/*/} + if test $name = add_map -o $name = map -o $name = mod_parm; then continue; fi + num=$name + driverinfo=$driver + if test -r $hostdir/status; then + num=$(printf '%d\n' `sed -n 's/SCSI host number://p' $hostdir/status`) + driverinfo="$driver:$name" + fi + hosts="$hosts $num" + echo "Host adapter $num ($driverinfo) found." + done + done +} + +# Get /proc/scsi/scsi info for device $host:$channel:$id:$lun +# Optional parameter: Number of lines after first (default = 2), +# result in SCSISTR, return code 1 means empty. +procscsiscsi () +{ + if test -z "$1"; then LN=2; else LN=$1; fi + CHANNEL=`printf "%02i" $channel` + ID=`printf "%02i" $id` + LUN=`printf "%02i" $lun` + if [ -d /sys/class/scsi_device ]; then + SCSIPATH="/sys/class/scsi_device/${host}:${channel}:${id}:${lun}" + if [ -d "$SCSIPATH" ] ; then + SCSISTR="Host: scsi${host} Channel: $CHANNEL Id: $ID Lun: $LUN" + if [ "$LN" -gt 0 ] ; then + IVEND=$(cat ${SCSIPATH}/device/vendor) + IPROD=$(cat ${SCSIPATH}/device/model) + IPREV=$(cat ${SCSIPATH}/device/rev) + SCSIDEV=$(printf ' Vendor: %-08s Model: %-16s Rev: %-4s' "$IVEND" "$IPROD" "$IPREV") + SCSISTR="$SCSISTR +$SCSIDEV" + fi + if [ "$LN" -gt 1 ] ; then + ILVL=$(cat ${SCSIPATH}/device/scsi_level) + type=$(cat ${SCSIPATH}/device/type) + case "$type" in + 0) ITYPE="Direct-Access " ;; + 1) ITYPE="Sequential-Access" ;; + 2) ITYPE="Printer " ;; + 3) ITYPE="Processor " ;; + 4) ITYPE="WORM " ;; + 5) ITYPE="CD-ROM " ;; + 6) ITYPE="Scanner " ;; + 7) ITYPE="Optical Device " ;; + 8) ITYPE="Medium Changer " ;; + 9) ITYPE="Communications " ;; + 10) ITYPE="Unknown " ;; + 11) ITYPE="Unknown " ;; + 12) ITYPE="RAID " ;; + 13) ITYPE="Enclosure " ;; + 14) ITYPE="Direct-Access-RBC" ;; + *) ITYPE="Unknown " ;; + esac + SCSITMP=$(printf ' Type: %-16s ANSI SCSI revision: %02d' "$ITYPE" "$((ILVL - 1))") + SCSISTR="$SCSISTR +$SCSITMP" + fi + + else + return 1 + fi + else + grepstr="scsi$host Channel: $CHANNEL Id: $ID Lun: $LUN" + SCSISTR=`cat /proc/scsi/scsi | grep -A$LN -e"$grepstr"` + fi + if test -z "$SCSISTR"; then return 1; else return 0; fi +} + +# Find sg device with 2.6 sysfs support +sgdevice26 () +{ + if test -e /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic; then + SGDEV=`readlink /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic` + SGDEV=`basename $SGDEV` + else + for SGDEV in /sys/class/scsi_generic/sg*; do + DEV=`readlink $SGDEV/device` + if test "${DEV##*/}" = "$host:$channel:$id:$lun"; then + SGDEV=`basename $SGDEV`; return + fi + done + SGDEV="" + fi +} + +# Find sg device with 2.4 report-devs extensions +sgdevice24 () +{ + if procscsiscsi 3; then + SGDEV=`echo "$SCSISTR" | grep 'Attached drivers:' | sed 's/^ *Attached drivers: \(sg[0-9]*\).*/\1/'` + fi +} + +# Find sg device that belongs to SCSI device $host $channel $id $lun +sgdevice () +{ + SGDEV= + if test -d /sys/class/scsi_device; then + sgdevice26 + else + DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null` + repdevstat=$((1-$?)) + if [ $repdevstat = 0 ]; then + echo "scsi report-devs 1" >/proc/scsi/scsi + DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null` + if [ $? = 1 ]; then return; fi + fi + if ! `echo $DRV | grep 'drivers: sg' >/dev/null`; then + modprobe sg + fi + sgdevice24 + if [ $repdevstat = 0 ]; then + echo "scsi report-devs 0" >/proc/scsi/scsi + fi + fi +} + +# Test if SCSI device is still responding to commands +testonline () +{ + : testonline + if test ! -x /usr/bin/sg_turs; then return 0; fi + sgdevice + if test -z "$SGDEV"; then return 0; fi + sg_turs /dev/$SGDEV >/dev/null 2>&1 + RC=$? + # echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n" + if test $RC = 1; then return $RC; fi + # OK, device online, compare INQUIRY string + INQ=`sg_inq $sg_len_arg /dev/$SGDEV` + IVEND=`echo "$INQ" | grep 'Vendor identification:' | sed 's/^[^:]*: \(.*\)$/\1/'` + IPROD=`echo "$INQ" | grep 'Product identification:' | sed 's/^[^:]*: \(.*\)$/\1/'` + IPREV=`echo "$INQ" | grep 'Product revision level:' | sed 's/^[^:]*: \(.*\)$/\1/'` + STR=`printf " Vendor: %-08s Model: %-16s Rev: %-4s" "$IVEND" "$IPROD" "$IPREV"` + IPTYPE=`echo "$INQ" | sed -n 's/.* Device_type=\([0-9]*\) .*/\1/p'` + IPQUAL=`echo "$INQ" | sed -n 's/ *PQual=\([0-9]*\) Device.*/\1/p'` + if [ "$IPQUAL" != 0 ] ; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nLU not available (PQual $IPQUAL)${norm}\n\n\n" + return 1 + fi + + procscsiscsi + TMPSTR=`echo "$SCSISTR" | grep 'Vendor:'` + if [ "$TMPSTR" != "$STR" ]; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR#* } \nto: $STR ${norm}\n\n\n" + return 1 + fi + TMPSTR=`echo "$SCSISTR" | sed -n 's/.*Type: *\(.*\) *ANSI.*/\1/p'` + if [ $TMPSTR != $TYPE ] ; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR} \nto: $TYPE ${norm}\n\n\n" + return 1 + fi + return $RC +} + +# Test if SCSI device $host $channen $id $lun exists +# Outputs description from /proc/scsi/scsi, returns SCSISTR +testexist () +{ + : testexist + SCSISTR= + if procscsiscsi; then + echo "$SCSISTR" | head -n1 + echo "$SCSISTR" | tail -n2 | pr -o4 -l1 + fi +} + +# Returns the list of existing channels per host +chanlist () +{ + local hcil + local cil + local chan + local tmpchan + + for dev in /sys/class/scsi_device/${host}:* ; do + hcil=${dev##*/} + cil=${hcil#*:} + chan=${cil%%:*} + for tmpchan in $channelsearch ; do + if test "$chan" -eq $tmpchan ; then + chan= + fi + done + if test -n "$chan" ; then + channelsearch="$channelsearch $chan" + fi + done +} + +# Returns the list of existing targets per host +idlist () +{ + local hcil + local cil + local il + local target + local tmpid + + for dev in /sys/class/scsi_device/${host}:${channel}:* ; do + hcil=${dev##*/} + cil=${hcil#*:} + il=${cil#*:} + target=${il%%:*} + for tmpid in $idsearch ; do + if test "$target" -eq $tmpid ; then + target= + fi + done + if test -n "$target" ; then + idsearch="$idsearch $target" + fi + done +} + +# Returns the list of existing LUNs +getluns () +{ + if test ! -x /usr/bin/sg_luns; then return; fi + sgdevice + if test -z "$SGDEV"; then return; fi + sg_luns -d /dev/$SGDEV | sed -n 's/.*lun=\(.*\)/\1/p' +} + +# Perform scan on a single lun +dolunscan() +{ + SCSISTR= + devnr="$host $channel $id $lun" + echo "Scanning for device $devnr ..." + printf "${yellow}OLD: $norm" + testexist + : f $remove s $SCSISTR + if test "$remove" -a "$SCSISTR"; then + # Device exists: Test whether it's still online + # (testonline returns 1 if it's gone or has changed) + testonline + if test $? = 1 -o ! -z "$forceremove"; then + echo -en "\r\e[A\e[A\e[A${red}REM: " + echo "$SCSISTR" | head -n1 + echo -e "${norm}\e[B\e[B" + if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then + echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/delete + # Try reading, should fail if device is gone + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan + else + echo "scsi remove-single-device $devnr" > /proc/scsi/scsi + # Try reading, should fail if device is gone + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + fi + if test $RC = 0 ; then + if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then + echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/rescan + fi + fi + + printf "\r\x1b[A\x1b[A\x1b[A${yellow}OLD: $norm" + testexist + if test -z "$SCSISTR"; then + printf "\r${red}DEL: $norm\r\n\n" + let rmvd+=1; + fi + fi + if test -z "$SCSISTR"; then + # Device does not exist, try to add + printf "\r${green}NEW: $norm" + if test -e /sys/class/scsi_host/host${host}/scan; then + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null + else + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + testexist + if test -z "$SCSISTR"; then + # Device not present + printf "\r\x1b[A"; + # Optimization: if lun==0, stop here (only if in non-remove mode) + if test $lun = 0 -a -z "$remove" -a $optscan = 1; then + break; + fi + else + let found+=1; + fi + fi +} + +# Perform report lun scan +doreportlun() +{ + lun=0 + SCSISTR= + devnr="$host $channel $id $lun" + echo "Scanning for device $devnr ..." + printf "${yellow}OLD: $norm" + testexist + if test -z "$SCSISTR"; then + # Device does not exist, try to add + printf "\r${green}NEW: $norm" + if test -e /sys/class/scsi_host/host${host}/scan; then + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null + else + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + testexist + if test -z "$SCSISTR"; then + # Device not present + printf "\r\x1b[A"; + lunsearch= + return + fi + fi + lunsearch=`getluns` + lunremove= + # Check existing luns + for dev in /sys/class/scsi_device/$host\:$channel\:$id\:*; do + lun=${dev##*:} + newsearch= + oldsearch="$lunsearch" + for tmplun in $lunsearch; do + if test $tmplun -eq $lun ; then + # Optimization: don't scan lun 0 again + if [ $lun -ne 0 ]; then + dolunscan + fi + else + newsearch="$newsearch $tmplun" + fi + done + if [ "${#oldsearch}" = "${#newsearch}" ] ; then + # Stale lun + lunremove="$lunremove $lun" + fi + lunsearch="$newsearch" + done + # Add new ones and check stale ones + for lun in $lunsearch $lunremove; do + dolunscan + done +} + +# Perform search (scan $host) +dosearch () +{ + if test -z "$channelsearch" ; then + chanlist + fi + for channel in $channelsearch; do + if test -z "$idsearch" ; then + idlist + fi + for id in $idsearch; do + if test -z "$lunsearch"; then + doreportlun + else + for lun in $lunsearch; do + dolunscan + done + fi + done + done +} + +# main +if test @$1 = @--help -o @$1 = @-h -o @$1 = @-?; then + echo "Usage: rescan-scsi-bus.sh [options] [host [host ...]]" + echo "Options:" + echo " -l activates scanning for LUNs 0-7 [default: 0]" + echo " -L NUM activates scanning for LUNs 0--NUM [default: 0]" + echo " -w scan for target device IDs 0 .. 15 [default: 0-7]" + echo " -c enables scanning of channels 0 1 [default: 0]" + echo " -r enables removing of devices [default: disabled]" + echo " -i issue a FibreChannel LIP reset [default: disabled]" + echo "--remove: same as -r" + echo "--issue-lip: same as -i" + echo "--forceremove: Remove and readd every device (DANGEROUS)" + echo "--nooptscan: don't stop looking for LUNs is 0 is not found" + echo "--color: use coloured prefixes OLD/NEW/DEL" + echo "--hosts=LIST: Scan only host(s) in LIST" + echo "--channels=LIST: Scan only channel(s) in LIST" + echo "--ids=LIST: Scan only target ID(s) in LIST" + echo "--luns=LIST: Scan only lun(s) in LIST" + echo " Host numbers may thus be specified either directly on cmd line (deprecated) or" + echo " or with the --hosts=LIST parameter (recommended)." + echo "LIST: A[-B][,C[-D]]... is a comma separated list of single values and ranges" + echo " (No spaces allowed.)" + exit 0 +fi + +expandlist () +{ + list=$1 + result="" + first=${list%%,*} + rest=${list#*,} + while test ! -z "$first"; do + beg=${first%%-*}; + if test "$beg" = "$first"; then + result="$result $beg"; + else + end=${first#*-} + result="$result `seq $beg $end`" + fi + test "$rest" = "$first" && rest="" + first=${rest%%,*} + rest=${rest#*,} + done + echo $result +} + +if test ! -d /sys/class/scsi_host/ -a ! -d /proc/scsi/; then + echo "Error: SCSI subsystem not active" + exit 1 +fi + +# Make sure sg is there +modprobe sg >/dev/null 2>&1 + +sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3) +sg_version=${sg_version##0.} +if [ "$sg_version" -lt 70 ] ; then + sg_len_arg="-36" +else + sg_len_arg="--len=36" +fi + +# defaults +unsetcolor +lunsearch="" +idsearch=`seq 0 7` +channelsearch="0" +remove= +forceremove= +optscan=1 +if test -d /sys/class/scsi_host; then + findhosts_26 +else + findhosts +fi + +# Scan options +opt="$1" +while test ! -z "$opt" -a -z "${opt##-*}"; do + opt=${opt#-} + case "$opt" in + l) lunsearch=`seq 0 7` ;; + L) lunsearch=`seq 0 $2`; shift ;; + w) idsearch=`seq 0 15` ;; + c) channelsearch="0 1" ;; + r) remove=1 ;; + i) lipreset=1 ;; + -remove) remove=1 ;; + -forceremove) remove=1; forceremove=1 ;; + -hosts=*) arg=${opt#-hosts=}; hosts=`expandlist $arg` ;; + -channels=*) arg=${opt#-channels=};channelsearch=`expandlist $arg` ;; + -ids=*) arg=${opt#-ids=}; idsearch=`expandlist $arg` ;; + -luns=*) arg=${opt#-luns=}; lunsearch=`expandlist $arg` ;; + -color) setcolor ;; + -nooptscan) optscan=0 ;; + -issue-lip) lipreset=1 ;; + *) echo "Unknown option -$opt !" ;; + esac + shift + opt="$1" +done + +# Hosts given ? +if test "@$1" != "@"; then + hosts=$*; +fi + +echo "Scanning SCSI subsystem for new devices" +test -z "$remove" || echo " and remove devices that have disappeared" +declare -i found=0 +declare -i rmvd=0 +for host in $hosts; do + echo -n "Scanning host $host " + if test -e /sys/class/fc_host/host$host ; then + # It's pointless to do a target scan on FC + if test -n "$lipreset" ; then + echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null; + echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null; + fi + channelsearch="" + idsearch="" + fi + [ -n "$channelsearch" ] && echo -n "channels $channelsearch " + echo -n "for " + if [ -n "$idsearch" ] ; then + echo -n " SCSI target IDs " $idsearch + else + echo -n " all SCSI target IDs" + fi + if [ -n "$lunsearch" ] ; then + echo ", LUNs " $lunsearch + else + echo ", all LUNs" + fi + dosearch; +done +echo "$found new device(s) found. " +echo "$rmvd device(s) removed. " + diff --git a/source/a/sysvinit-scripts/slack-desc b/source/a/sysvinit-scripts/slack-desc new file mode 100644 index 00000000..95fff611 --- /dev/null +++ b/source/a/sysvinit-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------------------------------------------------------| +sysvinit-scripts: sysvinit-scripts (the basic scripts used to boot your machine) +sysvinit-scripts: +sysvinit-scripts: These are the Slackware boot scripts, which are needed to start the +sysvinit-scripts: machine. Sysvinit looks for these in /etc/rc.d/. +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild new file mode 100755 index 00000000..4b9eba04 --- /dev/null +++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild @@ -0,0 +1,60 @@ +#!/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. + + +VERSION=${VERSION:-1.2} +ARCH=noarch +BUILD=${BUILD:-30} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-scripts + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Install Slackware scripts and config files from $CWD/scripts/: +mkdir -p $PKG/etc/rc.d +for file in rc.{4,6,K,M,S} rc.local rc.sysvinit ; do + cp -a $CWD/scripts/$file $PKG/etc/rc.d/${file}.new + chmod 755 $PKG/etc/rc.d/${file}.new + chown root:root $PKG/etc/rc.d/${file}.new +done +cat $CWD/scripts/inittab > $PKG/etc/inittab.new +chmod 644 $PKG/etc/inittab.new +chown root:root $PKG/etc/inittab.new + +# Add a very handy tool for scanning new SCSI devices. Most useful for +# finding new USB and Firewire storage devices which show up as SCSI. +mkdir -p $PKG/sbin +cat $CWD/scripts/rescan-scsi-bus.sh > $PKG/sbin/rescan-scsi-bus +chmod 755 $PKG/sbin/rescan-scsi-bus +chown root:root $PKG/sbin/rescan-scsi-bus + +mkdir -p $PKG/install +zcat $CWD/doinst.sh > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sysvinit-scripts-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit/doinst.sh b/source/a/sysvinit/doinst.sh new file mode 100644 index 00000000..0e476e11 --- /dev/null +++ b/source/a/sysvinit/doinst.sh @@ -0,0 +1,48 @@ + +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... +} +# RH functions: +#config etc/rc.d/init.d/halt.new +#config etc/rc.d/init.d/killall.new +#config etc/rc.d/init.d/netfs.new +#config etc/rc.d/init.d/network.new +#config etc/rc.d/init.d/single.new + +if [ -r sbin/init ]; then + mv sbin/init sbin/init.old +fi + +mv sbin/init.new sbin/init + +# 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 + +# Notice we use an absolute path below, rather than usr/bin/last. This is because +# we're testing to see if we are on the bootdisk, which will not have /usr/bin/last. +# If we aren't, we will signal init to restart using the new binary. +# The presence of "/etc/slack-installer" is under consideration as a better test. +if [ -x /usr/bin/last -a ! -r /etc/slack-installer ]; then + /sbin/init u +fi + +( cd sbin ; rm -rf telinit ) +( cd sbin ; ln -sf init telinit ) +( cd sbin ; rm -rf reboot ) +( cd sbin ; ln -sf halt reboot ) +( cd sbin ; rm -rf pidof ) +( cd sbin ; ln -sf killall5 pidof ) +( cd sbin ; rm -rf poweroff ) +( cd sbin ; ln -sf halt poweroff ) + +rm -f sbin/init.old diff --git a/source/a/sysvinit/slack-desc b/source/a/sysvinit/slack-desc new file mode 100644 index 00000000..5fc2652c --- /dev/null +++ b/source/a/sysvinit/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------------------------------------------------------| +sysvinit: sysvinit (init, the parent of all processes) +sysvinit: +sysvinit: System V style init programs by Miquel van Smoorenburg that control +sysvinit: the booting and shutdown of your system. These support a number of +sysvinit: system runlevels, each with a specific set of utilities spawned. +sysvinit: For example, the normal system runlevel is 3, which starts agetty +sysvinit: on virtual consoles tty1 - tty6. Runlevel 4 starts xdm. +sysvinit: Runlevel 0 shuts the system down. +sysvinit: +sysvinit: +sysvinit: diff --git a/source/a/sysvinit/sysvinit-2.86-timeval.patch b/source/a/sysvinit/sysvinit-2.86-timeval.patch new file mode 100644 index 00000000..acb0d5b6 --- /dev/null +++ b/source/a/sysvinit/sysvinit-2.86-timeval.patch @@ -0,0 +1,42 @@ +--- sysvinit-2.86/src/utmp.c.timeval 1999-06-09 07:11:33.000000000 -0400 ++++ sysvinit-2.86/src/utmp.c 2006-08-09 19:46:26.000000000 -0400 +@@ -47,7 +47,8 @@ + int fd; + struct utmp utmp; + struct utsname uname_buf; +- ++ struct timeval tv; ++ + /* + * Try to open the wtmp file. Note that we even try + * this if we have updwtmp() so we can see if the +@@ -76,7 +77,9 @@ + */ + memset(&utmp, 0, sizeof(utmp)); + #if defined(__GLIBC__) +- gettimeofday(&utmp.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ utmp.ut_tv.tv_sec = tv.tv_sec; ++ utmp.ut_tv.tv_usec = tv.tv_usec; + #else + time(&utmp.ut_time); + #endif +@@ -113,6 +116,7 @@ + struct utmp utmp; + struct utmp tmp; + struct utmp *utmptr; ++ struct timeval tv; + + /* + * Can't do much if UTMP_FILE is not present. +@@ -144,7 +148,9 @@ + utmp.ut_pid = pid; + strncpy(utmp.ut_id, id, sizeof(utmp.ut_id)); + #if defined(__GLIBC__) +- gettimeofday(&utmp.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ utmp.ut_tv.tv_sec = tv.tv_sec; ++ utmp.ut_tv.tv_usec = tv.tv_usec; + #else + time(&utmp.ut_time); + #endif diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild new file mode 100755 index 00000000..4916e695 --- /dev/null +++ b/source/a/sysvinit/sysvinit.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2005-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:-2.86} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sysvinit-$VERSION +tar xzvf $CWD/sysvinit-$VERSION.tar.gz || exit 1 +cd sysvinit-$VERSION +chown -R root:root . +zcat $CWD/sysvinit.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/sysvinit.pidof.rhforkseverything.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + # Don't overwrite ut_addr_v6 in utmp records on 64-bit platforms + zcat $CWD/sysvinit-2.86-timeval.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +fi + +cd doc +mkdir -p $PKG/usr/doc/sysvinit-$VERSION +cp -a Install Propaganda sysvinit-$VERSION.lsm \ + $PKG/usr/doc/sysvinit-$VERSION +chmod -R 644 $PKG/usr/doc/sysvinit-$VERSION/* +chmod 755 $PKG/usr/doc/sysvinit-$VERSION + +cd ../src +if [ "$ARCH" = "x86_64" ]; then + # static 'init' segfaults, so your computer never reaches command prompt: + sed -i -e "s/-static//" Makefile +fi +make clobber +make || exit 1 + +mkdir -p $PKG/sbin +for program in bootlogd halt init killall5 shutdown runlevel ; do + strip --strip-unneeded $program + cat $program > $PKG/sbin/$program + chmod 755 $PKG/sbin/$program + chown root:root $PKG/sbin/$program +done +mkdir -p $PKG/usr/bin +for program in last mountpoint ; do + strip --strip-unneeded $program + cat $program > $PKG/usr/bin/$program + chmod 755 $PKG/usr/bin/$program + chown root:root $PKG/usr/bin/$program +done +( cd $PKG/usr/bin ; ln -sf last lastb ) +mv $PKG/sbin/init $PKG/sbin/init.new +chmod 755 $PKG/sbin/init.new +chown root:root $PKG/sbin/init.new + +# This version is old. We use genpower now. +#cat wall > $PKG/usr/bin/wall +#strip --strip-unneeded powerd +#cat powerd > $PKG/sbin/powerd +#chmod 755 $PKG/usr/bin/wall $PKG/sbin/powerd +#chown root:root $PKG/usr/bin/wall $PKG/sbin/powerd +cp initscript.sample $PKG/sbin/initscript.sample + +cd ../man +mkdir -p $PKG/usr/man/man{1,5,8} +for page in last.1 mountpoint.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +for page in inittab.5 initscript.5 ; do + cat $page | gzip -9c > $PKG/usr/man/man5/$page.gz +done +for page in halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8 \ + shutdown.8 telinit.8 bootlogd.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +( cd $PKG/usr/man/man1 ; ln -sf last.1.gz lastb.1.gz ) + +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 +makepkg -l y -c n $TMP/sysvinit-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/sysvinit-$VERSION + rm -rf $PKG +fi diff --git a/source/a/sysvinit/sysvinit.diff b/source/a/sysvinit/sysvinit.diff new file mode 100644 index 00000000..11477be7 --- /dev/null +++ b/source/a/sysvinit/sysvinit.diff @@ -0,0 +1,125 @@ +diff -Naur sysvinit-2.86.orig/man/init.8 sysvinit-2.86/man/init.8 +--- sysvinit-2.86.orig/man/init.8 2004-07-29 13:21:31.000000000 +0200 ++++ sysvinit-2.86/man/init.8 2007-12-23 12:22:51.000000000 +0100 +@@ -76,7 +76,7 @@ + are processed. + .PP + When starting a new process, \fBinit\fP first checks whether the file +-\fI/etc/initscript\fP exists. If it does, it uses this script to ++\fI/sbin/initscript\fP exists. If it does, it uses this script to + start the process. + .PP + Each time a child terminates, \fBinit\fP records the fact and the reason +@@ -240,7 +240,7 @@ + .SH FILES + .nf + /etc/inittab +-/etc/initscript ++/sbin/initscript + /dev/console + /var/run/utmp + /var/log/wtmp +diff -Naur sysvinit-2.86.orig/man/initscript.5 sysvinit-2.86/man/initscript.5 +--- sysvinit-2.86.orig/man/initscript.5 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/man/initscript.5 2007-12-23 12:22:51.000000000 +0100 +@@ -2,15 +2,15 @@ + .SH NAME + initscript \- script that executes inittab commands. + .SH SYNOPSIS +-/bin/sh /etc/initscript id runlevels action process ++/bin/sh /sbin/initscript id runlevels action process + .SH DESCRIPTION +-When the shell script \fI/etc/initscript\fP is present, \fBinit\fP ++When the shell script \fI/sbin/initscript\fP is present, \fBinit\fP + will use it to execute the commands from \fIinittab\fP. + This script can be used to set things like \fBulimit\fP and + \fBumask\fP default values for every process. + .SH EXAMPLES + This is a sample initscript, which might be installed on your +-system as \fI/etc/initscript.sample\fP. ++system as \fI/sbin/initscript.sample\fP. + .RS + .sp + .nf +@@ -20,7 +20,7 @@ + # initscript Executed by init(8) for every program it + # wants to spawn like this: + # +-# /bin/sh /etc/initscript <id> <level> <action> <process> ++# /bin/sh /sbin/initscript <id> <level> <action> <process> + # + + # Set umask to safe level, and enable core dumps. +@@ -48,7 +48,7 @@ + .RE + .SH FILES + /etc/inittab, +-/etc/initscript. ++/sbin/initscript. + .SH AUTHOR + Miquel van Smoorenburg ,<miquels@cistron.nl> + .SH "SEE ALSO" +diff -Naur sysvinit-2.86.orig/src/Makefile sysvinit-2.86/src/Makefile +--- sysvinit-2.86.orig/src/Makefile 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/src/Makefile 2007-12-23 12:22:51.000000000 +0100 +@@ -11,7 +11,7 @@ + CC = gcc + CFLAGS = -Wall -O2 -fomit-frame-pointer -D_GNU_SOURCE + LDFLAGS = -s +-STATIC = ++STATIC = -static + + # For some known distributions we do not build all programs, otherwise we do. + BIN = +diff -Naur sysvinit-2.86.orig/src/initscript.sample sysvinit-2.86/src/initscript.sample +--- sysvinit-2.86.orig/src/initscript.sample 1997-11-26 14:06:33.000000000 +0100 ++++ sysvinit-2.86/src/initscript.sample 2007-12-23 12:22:51.000000000 +0100 +@@ -1,14 +1,14 @@ + # +-# initscript If this script is intalled as /etc/initscript, ++# initscript If this script is intalled as /sbin/initscript, + # it is executed by init(8) for every program it + # wants to spawn like this: + # +-# /bin/sh /etc/initscript <id> <level> <action> <process> ++# /bin/sh /sbin/initscript <id> <level> <action> <process> + # + # It can be used to set the default umask and ulimit + # of all processes. By default this script is installed +-# as /etc/initscript.sample, so to enable it you must +-# rename this script first to /etc/initscript. ++# as /sbin/initscript.sample, so to enable it you must ++# rename this script first to /sbin/initscript. + # + # Version: @(#)initscript 1.10 10-Dec-1995 MvS. + # +diff -Naur sysvinit-2.86.orig/src/paths.h sysvinit-2.86/src/paths.h +--- sysvinit-2.86.orig/src/paths.h 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/src/paths.h 2007-12-23 12:23:50.000000000 +0100 +@@ -20,21 +20,21 @@ + #define INITTAB "/etc/inittab" /* Location of inittab */ + #define INIT "/sbin/init" /* Location of init itself. */ + #define NOLOGIN "/etc/nologin" /* Stop user logging in. */ +-#define FASTBOOT "/fastboot" /* Enable fast boot. */ +-#define FORCEFSCK "/forcefsck" /* Force fsck on boot */ ++#define FASTBOOT "/etc/fastboot" /* Enable fast boot. */ ++#define FORCEFSCK "/etc/forcefsck" /* Force fsck on boot */ + #define SDPID "/var/run/shutdown.pid" /* PID of shutdown program */ + #define SHELL "/bin/sh" /* Default shell */ + #define SULOGIN "/sbin/sulogin" /* Sulogin */ +-#define INITSCRIPT "/etc/initscript" /* Initscript. */ ++#define INITSCRIPT "/sbin/initscript" /* Initscript. */ + #define PWRSTAT "/etc/powerstatus" /* COMPAT: SIGPWR reason (OK/BAD) */ + + #if 0 + #define INITLVL "/etc/initrunlvl" /* COMPAT: New runlevel */ + #define INITLVL2 "/var/log/initrunlvl" /* COMPAT: New runlevel */ + /* Note: INITLVL2 definition needs INITLVL */ +-#define HALTSCRIPT1 "/etc/init.d/halt" /* Called by "fast" shutdown */ ++#define HALTSCRIPT1 "/etc/init.d/rc.halt" /* Called by "fast" shutdown */ + #define HALTSCRIPT2 "/etc/rc.d/rc.0" /* Called by "fast" shutdown */ +-#define REBOOTSCRIPT1 "/etc/init.d/reboot" /* Ditto. */ ++#define REBOOTSCRIPT1 "/etc/init.d/rc.reboot" /* Ditto. */ + #define REBOOTSCRIPT2 "/etc/rc.d/rc.6" /* Ditto. */ + #endif + diff --git a/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff new file mode 100644 index 00000000..db94dcf1 --- /dev/null +++ b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff @@ -0,0 +1,81 @@ +--- sysvinit-2.86/man/pidof.8.chroot 1998-09-02 08:49:33.000000000 -0400 ++++ sysvinit-2.86/man/pidof.8 2005-12-19 15:37:40.000000000 -0500 +@@ -4,6 +4,7 @@ + .SH SYNOPSIS + .B pidof + .RB [ \-s ] ++.RB [ \-c ] + .RB [ \-x ] + .RB [ \-o + .IR omitpid ] +@@ -24,6 +25,10 @@ + .SH OPTIONS + .IP -s + Single shot - this instructs the program to only return one \fIpid\fP. ++.IP -c ++Only return process ids that are running with the same root directory. ++This option does not make sense for non-root users, as they will be ++unable to check the current root directory of processes they do not own. + .IP -x + Scripts too - this causes the program to also return process id's of + shells running the named scripts. +--- sysvinit-2.86/src/killall5.c.chroot 2004-07-30 08:16:23.000000000 -0400 ++++ sysvinit-2.86/src/killall5.c 2005-12-19 15:38:47.000000000 -0500 +@@ -476,16 +476,22 @@ + int f; + int first = 1; + int i, oind, opt, flags = 0; ++ int chroot_check = 0; ++ struct stat st; ++ char tmp[512]; + + for (oind = PIDOF_OMITSZ-1; oind > 0; oind--) + opid[oind] = 0; + opterr = 0; + +- while ((opt = getopt(argc,argv,"ho:sx")) != EOF) switch (opt) { ++ while ((opt = getopt(argc,argv,"hco:sx")) != EOF) switch (opt) { + case '?': + nsyslog(LOG_ERR,"invalid options on command line!\n"); + closelog(); + exit(1); ++ case 'c': ++ chroot_check = 1; ++ break; + case 'o': + if (oind >= PIDOF_OMITSZ -1) { + nsyslog(LOG_ERR,"omit pid buffer size %d " +@@ -518,6 +524,16 @@ + argc -= optind; + argv += optind; + ++ /* Check if we are in a chroot */ ++ if (chroot_check) { ++ snprintf(tmp, 512, "/proc/%d/root", getpid()); ++ if (stat(tmp, &st) < 0) { ++ nsyslog(LOG_ERR, "stat failed for %s!\n", tmp); ++ closelog(); ++ exit(1); ++ } ++ } ++ + /* Print out process-ID's one by one. */ + readproc(); + for(f = 0; f < argc; f++) { +@@ -541,6 +557,16 @@ + else + spid = 1; + } ++ if (chroot_check) { ++ struct stat st2; ++ snprintf(tmp, 512, "/proc/%d/root", ++ p->pid); ++ if (stat(tmp, &st2) < 0 || ++ st.st_dev != st2.st_dev || ++ st.st_ino != st2.st_ino) { ++ continue; ++ } ++ } + if (!first) + printf(" "); + printf("%d", p->pid); diff --git a/source/a/tar/rmt.8 b/source/a/tar/rmt.8 new file mode 100644 index 00000000..86d2cf92 --- /dev/null +++ b/source/a/tar/rmt.8 @@ -0,0 +1,217 @@ +.\" Copyright (c) 1983, 1991 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. +.\" +.\" @(#)rmt.8 6.5 (Berkeley) 3/16/91 +.\" +.Dd March 16, 1991 +.Dt RMT 8 +.Os BSD 4.2 +.Sh NAME +.Nm rmt +.Nd remote magtape protocol module +.Sh SYNOPSIS +.Nm rmt +.Sh DESCRIPTION +.Nm Rmt +is a program used by the remote dump and restore programs +in manipulating a magnetic tape drive through an interprocess +communication connection. +.Nm Rmt +is normally started up with an +.Xr rexec 3 +or +.Xr rcmd 3 +call. +.Pp +The +.Nm rmt +program accepts requests specific to the manipulation of +magnetic tapes, performs the commands, then responds with +a status indication. All responses are in +.Tn ASCII +and in +one of two forms. +Successful commands have responses of: +.Bd -filled -offset indent +.Sm off +.Sy A Ar number No \en +.Sm on +.Ed +.Pp +.Ar Number +is an +.Tn ASCII +representation of a decimal number. +Unsuccessful commands are responded to with: +.Bd -filled -offset indent +.Sm off +.Xo Sy E Ar error-number +.No \en Ar error-message +.No \en +.Xc +.Sm on +.Ed +.Pp +.Ar Error-number +is one of the possible error +numbers described in +.Xr intro 2 +and +.Ar error-message +is the corresponding error string as printed +from a call to +.Xr perror 3 . +The protocol is comprised of the +following commands, which are sent as indicated - no spaces are supplied +between the command and its arguments, or between its arguments, and +.Ql \en +indicates that a newline should be supplied: +.Bl -tag -width Ds +.Sm off +.It Xo Sy \&O Ar device +.No \en Ar mode No \en +.Xc +Open the specified +.Ar device +using the indicated +.Ar mode . +.Ar Device +is a full pathname and +.Ar mode +is an +.Tn ASCII +representation of a decimal +number suitable for passing to +.Xr open 2 . +If a device had already been opened, it is +closed before a new open is performed. +.It Xo Sy C Ar device No \en +.Xc +Close the currently open device. The +.Ar device +specified is ignored. +.It Xo Sy L +.Ar whence No \en +.Ar offset No \en +.Xc +.Sm on +Perform an +.Xr lseek 2 +operation using the specified parameters. +The response value is that returned from the +.Xr lseek +call. +.Sm off +.It Sy W Ar count No \en +.Sm on +Write data onto the open device. +.Nm Rmt +reads +.Ar count +bytes from the connection, aborting if +a premature end-of-file is encountered. +The response value is that returned from +the +.Xr write 2 +call. +.Sm off +.It Sy R Ar count No \en +.Sm on +Read +.Ar count +bytes of data from the open device. +If +.Ar count +exceeds the size of the data buffer (10 kilobytes), it is +truncated to the data buffer size. +.Nm rmt +then performs the requested +.Xr read 2 +and responds with +.Sm off +.Sy A Ar count-read No \en +.Sm on +if the read was +successful; otherwise an error in the +standard format is returned. If the read +was successful, the data read is then sent. +.Sm off +.It Xo Sy I Ar operation +.No \en Ar count No \en +.Xc +.Sm on +Perform a +.Dv MTIOCOP +.Xr ioctl 2 +command using the specified parameters. +The parameters are interpreted as the +.Tn ASCII +representations of the decimal values +to place in the +.Ar mt_op +and +.Ar mt_count +fields of the structure used in the +.Xr ioctl +call. The return value is the +.Ar count +parameter when the operation is successful. +.It Sy S +Return the status of the open device, as +obtained with a +.Dv MTIOCGET +.Xr ioctl +call. If the operation was successful, +an ``ack'' is sent with the size of the +status buffer, then the status buffer is +sent (in binary). +.El +.Sm on +.Pp +Any other command causes +.Nm rmt +to exit. +.Sh DIAGNOSTICS +All responses are of the form described above. +.Sh SEE ALSO +.Xr rcmd 3 , +.Xr rexec 3 , +.Xr mtio 4 , +.Xr rdump 8 , +.Xr rrestore 8 +.Sh BUGS +People tempted to use this for a remote file access protocol +are discouraged. +.Sh HISTORY +The +.Nm +command appeared in +.Bx 4.2 . diff --git a/source/a/tar/slack-desc b/source/a/tar/slack-desc new file mode 100644 index 00000000..573b8901 --- /dev/null +++ b/source/a/tar/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------------------------------------------------------| +tar: tar (archiving utility) +tar: +tar: This is the GNU version of tar, an archiving program designed to store +tar: and extract files from an archive file known as a tarfile. A tarfile +tar: may be made on a tape drive, however, it is also common to write a +tar: tarfile to a normal file. +tar: +tar: Slackware's package system uses tarfiles compressed with GNU gzip. +tar: +tar: +tar: diff --git a/source/a/tar/tar-1.13.bzip2.diff b/source/a/tar/tar-1.13.bzip2.diff new file mode 100644 index 00000000..85c03368 --- /dev/null +++ b/source/a/tar/tar-1.13.bzip2.diff @@ -0,0 +1,48 @@ +--- ./src/tar.c.orig Wed Jul 7 00:49:50 1999 ++++ ./src/tar.c Fri Jul 30 23:00:13 1999 +@@ -16,6 +16,8 @@ + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + ++/* Patched to integrate bzip2 as compression filter (option -j) */ ++ + #include "system.h" + + #include <getopt.h> +@@ -164,6 +166,8 @@ + {"block-number", no_argument, NULL, 'R'}, + {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR}, + {"blocking-factor", required_argument, NULL, 'b'}, ++ {"bzip2", required_argument, NULL, 'j'}, ++ {"bunzip2", required_argument, NULL, 'j'}, + {"catenate", no_argument, NULL, 'A'}, + {"checkpoint", no_argument, &checkpoint_option, 1}, + {"compare", no_argument, NULL, 'd'}, +@@ -340,6 +344,7 @@ + PATTERN at list/extract time, a globbing PATTERN\n\ + -o, --old-archive, --portability write a V7 format archive\n\ + --posix write a POSIX conformant archive\n\ ++ -j, --bzip2, --bunzip2 filter the archive through bzip2\n\ + -z, --gzip, --ungzip filter the archive through gzip\n\ + -Z, --compress, --uncompress filter the archive through compress\n\ + --use-compress-program=PROG filter through PROG (must accept -d)\n"), +@@ -416,7 +421,7 @@ + Y per-block gzip compression */ + + #define OPTION_STRING \ +- "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz" ++ "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hijklmoprstuvwxz" + + static void + set_subcommand_option (enum subcommand subcommand) +@@ -787,6 +792,10 @@ + if (add_exclude_file (excluded, optarg, '\n') != 0) + FATAL_ERROR ((0, errno, "%s", optarg)); + break; ++ ++ case 'j': ++ set_use_compress_program_option ("bzip2"); ++ break; + + case 'z': + set_use_compress_program_option ("gzip"); diff --git a/source/a/tar/tar-1.22-support_txz.diff b/source/a/tar/tar-1.22-support_txz.diff new file mode 100644 index 00000000..5104f563 --- /dev/null +++ b/source/a/tar/tar-1.22-support_txz.diff @@ -0,0 +1,11 @@ +diff -Nur tar-1.22.orig/src/suffix.c tar-1.22/src/suffix.c +--- tar-1.22.orig/src/suffix.c 2009-03-05 01:04:13.000000000 -0600 ++++ tar-1.22/src/suffix.c 2009-05-06 15:59:10.695985191 -0500 +@@ -41,6 +41,7 @@ + { S(tlz, lzma) }, + { S(lzo, lzop) }, + { S(xz, xz) }, ++ { S(txz, xz) }, + #undef S + }; + diff --git a/source/a/tar/tar.1 b/source/a/tar/tar.1 new file mode 100644 index 00000000..1d7e02fa --- /dev/null +++ b/source/a/tar/tar.1 @@ -0,0 +1,368 @@ +.\" @(#)tar.1 1.11.1 93/19/22 PJV; +.TH TAR 1 "22 September 1993" +.SH NAME +tar \- The GNU version of the tar archiving utility +.SH SYNOPSIS +.B tar +[ +.B \- +] +.B A --catenate --concatenate \||\| c --create \||\| d --diff --compare \||\| r --append \||\| t --list \||\| u --update \||\| x -extract --get +[ +.B --atime-preserve +] +[ +.B -b, --block-size N +] +[ +.B -B, --read-full-blocks +] +[ +.B -C, --directory DIR +] +[ +.B --checkpoint +] +[ +.B -f, --file [HOSTNAME:]F +] +[ +.B --force-local +] +[ +.B -F, --info-script F --new-volume-script F +] +[ +.B -G, --incremental +] +[ +.B -g, --listed-incremental F +] +[ +.B -h, --dereference +] +[ +.B -i, --ignore-zeros +] +[ +.B -j, --bzip2 +] +[ +.B --ignore-failed-read +] +[ +.B -k, --keep-old-files +] +[ +.B -K, --starting-file F +] +[ +.B -l, --one-file-system +] +[ +.B -L, --tape-length N +] +[ +.B -m, --modification-time +] +[ +.B -M, --multi-volume +] +[ +.B -N, --after-date DATE, --newer DATE +] +[ +.B -o, --old-archive, --portability +] +[ +.B -O, --to-stdout +] +[ +.B -p, --same-permissions, --preserve-permissions +] +[ +.B -P, --absolute-names +] +[ +.B --preserve +] +[ +.B -R, --record-number +] +[ +.B --remove-files +] +[ +.B -s, --same-order, --preserve-order +] +[ +.B --same-owner +] +[ +.B --numeric-owner +] +[ +.B -S, --sparse +] +[ +.B -T, --files-from F +] +[ +.B --null +] +[ +.B --totals +] +[ +.B -v, --verbose +] +[ +.B -V, --label NAME +] +[ +.B --version +] +[ +.B -w, --interactive, --confirmation +] +[ +.B -W, --verify +] +[ +.B --exclude FILE +] +[ +.B -X, --exclude-from FILE +] +[ +.B -Z, --compress, --uncompress +] +[ +.B -z, --gzip, --ungzip +] +[ +.B --use-compress-program PROG +] +[ +.B --block-compress +] +[ +.B -[0-7][lmh] +] +.TP +.I filename1 [ filename2, ... filenameN ] +.TP +.I directory1 [ directory2, ...directoryN ] +.SH DESCRIPTION +.LP +This manual page documents the GNU version of +.B tar +, an archiving program designed to store and extract files from +an archive file known as a +.IR tarfile. +A +.IR tarfile +may be made on a tape drive, however, it is also common +to write a +.IR tarfile +to a normal file. +The first argument to +.B tar +must be one of the options: +.BR Acdrtux , +followed by any optional functions. +The final arguments to +.B tar +are the names of the files or directories which should be archived. The use +of a directory name always implies that the subdirectories below should be +included in the archive. +.SH EXAMPLES +.TP +.B tar -xvvf foo.tar +extract foo.tar +.TP +.B tar -xvvzf foo.tar.gz +extract gzipped foo.tar.gz +.TP +.B tar -cvvf foo.tar foo/ +tar contents of folder foo in foo.tar +.SH "FUNCTION LETTERS" +.TP +.B One of the following options must be used: +.TP +.B -A, --catenate, --concatenate +append tar files to an archive +.TP +.B -c, --create +create a new archive +.TP +.B -d, --diff, --compare +find differences between archive and file system +.TP +.B --delete +delete from the archive (not for use on mag tapes!) +.TP +.B -r, --append +append files to the end of an archive +.TP +.B -t, --list +list the contents of an archive +.TP +.B -u, --update +only append files that are newer than copy in archive +.TP +.B -x, --extract, --get +extract files from an archive +.SH "OTHER OPTIONS" +.TP +.B --atime-preserve +don't change access times on dumped files +.TP +.B -b, --block-size N +block size of Nx512 bytes (default N=20) +.TP +.B -B, --read-full-blocks +reblock as we read (for reading 4.2BSD pipes) +.TP +.B -C, --directory DIR +change to directory DIR +.TP +.B --checkpoint +print directory names while reading the archive +.TP +.B -f, --file [HOSTNAME:]F +use archive file or device F (default "-", meaning stdin/stdout) +.TP +.B --force-local +archive file is local even if has a colon +.TP +.B -F, --info-script F --new-volume-script F +run script at end of each tape (implies -M) +.TP +.B -G, --incremental +create/list/extract old GNU-format incremental backup +.TP +.B -g, --listed-incremental F +create/list/extract new GNU-format incremental backup +.TP +.B -h, --dereference +don't dump symlinks; dump the files they point to +.TP +.B -i, --ignore-zeros +ignore blocks of zeros in archive (normally mean EOF) +.TP +.B -j, --bzip2 +filter archive through bzip2, use to decompress .bz2 files +.TP +.B --ignore-failed-read +don't exit with non-zero status on unreadable files +.TP +.B -k, --keep-old-files +keep existing files; don't overwrite them from archive +.TP +.B -K, --starting-file F +begin at file F in the archive +.TP +.B -l, --one-file-system +stay in local file system when creating an archive +.TP +.B -L, --tape-length N +change tapes after writing N*1024 bytes +.TP +.B -m, --modification-time +don't extract file modified time +.TP +.B -M, --multi-volume +create/list/extract multi-volume archive +.TP +.B -N, --after-date DATE, --newer DATE +only store files newer than DATE +.TP +.B -o, --old-archive, --portability +write a V7 format archive, rather than ANSI format +.TP +.B -O, --to-stdout +extract files to standard output +.TP +.B -p, --same-permissions, --preserve-permissions +extract all protection information +.TP +.B -P, --absolute-paths +don't strip leading `/'s from file names +.TP +.B --preserve +like -p -s +.TP +.B -R, --record-number +show record number within archive with each message +.TP +.B --remove-files +remove files after adding them to the archive +.TP +.B -s, --same-order, --preserve-order +list of names to extract is sorted to match archive +.TP +.B --same-owner +create extracted files with the same ownership +.TP +.B --numeric-owner +always use numbers for user/group names +.TP +.B -S, --sparse +handle sparse files efficiently +.TP +.B -T, --files-from F +get names to extract or create from file F +.TP +.B --null +-T reads null-terminated names, disable -C +.TP +.B --totals +print total bytes written with --create +.TP +.B -v, --verbose +verbosely list files processed +.TP +.B -V, --label NAME +create archive with volume name NAME +.TP +.B --version +print tar program version number +.TP +.B -w, --interactive, --confirmation +ask for confirmation for every action +.TP +.B -W, --verify +attempt to verify the archive after writing it +.TP +.B --exclude FILE +exclude file FILE +.TP +.B -X, --exclude-from FILE +exclude files listed in FILE +.TP +.B -Z, --compress, --uncompress +filter the archive through compress +.TP +.B -z, --gzip, --ungzip +filter the archive through gzip +.TP +.B --use-compress-program PROG +filter the archive through PROG (which must accept -d) +.TP +.B --block-compress +block the output of compression program for tapes +.TP +.B -[0-7][lmh] +specify drive and density +.SH BUGS +.LP +The GNU folks, in general, abhor man pages, and create info documents instead. +The maintainer of tar falls into this category. This man page is neither +complete, nor current, and was included in the Debian Linux packaging of tar +entirely to reduce the frequency with which the lack of a man page gets +reported as a bug in our defect tracking system. + +If you really want to understand tar, then you should run info and read the +tar info pages, or use the info mode in emacs. + diff --git a/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild new file mode 100755 index 00000000..43181ccb --- /dev/null +++ b/source/a/tar/tar.SlackBuild @@ -0,0 +1,145 @@ +#!/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. + +# Slackware build script for tar + +VERSION=1.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tar + +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 + +# This old version is the only one that won't clobber symlinks, e.g.: +# someone moves /opt to /usr/opt and makes a symlink. With newer +# versions of tar, installing any new package will remove the /opt +# symlink and plop down a new directory there. +# Well, there's a lot of other bugs (the remote stuff particularly I'm +# told is flaky) in tar-1.13, so it'll only be here now for use by the +# Slackware package utils. And, we'll even let people remove it and +# the pkgutils will still try to work (but eventually they'll pay the +# price :) +cd $TMP +rm -rf tar-1.13 +tar xvf $CWD/tar-1.13.tar.gz || exit 1 +cd tar-1.13 || exit 1 +zcat $CWD/tar-1.13.bzip2.diff.gz | patch -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-nls \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/bin +cat src/tar > $PKG/bin/tar-1.13 +chmod 0755 $PKG/bin/tar-1.13 +# End building of tar-1.13 + +cd $TMP +rm -rf tar-$VERSION +tar xvf $CWD/tar-$VERSION.tar.bz2 || exit 1 +cd tar-$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 {} \; + +# Don't spew "Record size = foo blocks" messages: +zcat $CWD/tar.norecordsizespam.diff.gz | patch -p1 --verbose || exit 1 + +# The "A lone zero block at %s" messages also cause problems: +zcat $CWD/tar.nolonezero.diff.gz | patch -p1 --verbose || exit 1 + +# Add support for *.txz files (our packages) +zcat $CWD/tar-1.22-support_txz.diff.gz | patch -p1 --verbose || exit1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --docdir=/usr/doc/tar-$VERSION \ + --enable-backup-scripts \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( 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 +) + +mv $PKG/usr/bin/tar $PKG/bin +( cd $PKG/usr/bin ; ln -sf /bin/tar . ) +( cd $PKG/bin ; ln -sf tar tar-$VERSION ) + +# Support "historic" rmt locations: +mkdir -p $PKG/{etc,sbin} +( cd $PKG/etc + ln -sf /usr/libexec/rmt . + cd $PKG/sbin + ln -sf /usr/libexec/rmt . +) + +mkdir -p $PKG/usr/man/man{1,8} +cat $CWD/tar.1.gz > $PKG/usr/man/man1/tar.1.gz +cat $CWD/rmt.8.gz > $PKG/usr/man/man8/rmt.8.gz + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/tar-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS PORTS README THANKS TODO \ + $PKG/usr/doc/tar-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tar-$VERSION-$ARCH-$BUILD.tgz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/tar-$VERSION + rm -rf $PKG +fi + diff --git a/source/a/tar/tar.nolonezero.diff b/source/a/tar/tar.nolonezero.diff new file mode 100644 index 00000000..3c6f6f97 --- /dev/null +++ b/source/a/tar/tar.nolonezero.diff @@ -0,0 +1,25 @@ +--- ./src/list.c.orig 2004-05-10 04:49:09.000000000 -0700 ++++ ./src/list.c 2004-06-06 13:13:23.000000000 -0700 +@@ -138,6 +138,14 @@ + + if (!ignore_zeros_option) + { ++ ++ /* ++ * According to POSIX tar specs, this is wrong, but on the web ++ * there are some tar specs that can trigger this, and some tar ++ * implementations create tars according to that spec. For now, ++ * let's not be pedantic about issuing the warning. ++ */ ++#if 0 + char buf[UINTMAX_STRSIZE_BOUND]; + + status = read_header (false); +@@ -145,6 +153,7 @@ + break; + WARN ((0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); ++#endif + break; + } + status = prev_status; diff --git a/source/a/tar/tar.norecordsizespam.diff b/source/a/tar/tar.norecordsizespam.diff new file mode 100644 index 00000000..b7d1b7a9 --- /dev/null +++ b/source/a/tar/tar.norecordsizespam.diff @@ -0,0 +1,20 @@ +--- ./src/buffer.c.orig 2009-03-05 01:04:13.000000000 -0600 ++++ ./src/buffer.c 2009-03-09 20:17:50.000000000 -0500 +@@ -688,7 +688,7 @@ + more = record_start->buffer + status; + left = record_size - status; + +- if (left && left % BLOCKSIZE == 0 ++ /* if (left && left % BLOCKSIZE == 0 + && verbose_option + && record_start_block == 0 && status != 0) + { +@@ -698,7 +698,7 @@ + "Record size = %lu blocks", + rsize), + rsize)); +- } ++ } */ + + while (left % BLOCKSIZE != 0 + || (left && status && read_full_records)) diff --git a/source/a/tcsh/doinst.sh b/source/a/tcsh/doinst.sh new file mode 100644 index 00000000..d351e505 --- /dev/null +++ b/source/a/tcsh/doinst.sh @@ -0,0 +1,8 @@ +if fgrep tcsh etc/shells 1> /dev/null 2> /dev/null ; then + GOOD=y +else + echo "/bin/tcsh" >> etc/shells + echo "/bin/csh" >> etc/shells +fi +( cd bin ; rm -rf csh ) +( cd bin ; ln -sf tcsh csh ) diff --git a/source/a/tcsh/slack-desc b/source/a/tcsh/slack-desc new file mode 100644 index 00000000..623ad458 --- /dev/null +++ b/source/a/tcsh/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------------------------------------------------------| +tcsh: tcsh (C shell) +tcsh: +tcsh: tcsh is an enhanced but completely compatible version of the Berkeley +tcsh: UNIX C shell, csh(1). It is a command language interpreter usable both +tcsh: as an interactive login shell and a shell script command processor. It +tcsh: includes a command-line editor, programmable word completion, spelling +tcsh: correction, a history mechanism, job control, and a C-like syntax. +tcsh: +tcsh: +tcsh: +tcsh: diff --git a/source/a/tcsh/tcsh.SlackBuild b/source/a/tcsh/tcsh.SlackBuild new file mode 100755 index 00000000..65396478 --- /dev/null +++ b/source/a/tcsh/tcsh.SlackBuild @@ -0,0 +1,91 @@ +#!/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=6.15.00 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcsh + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf tcsh-$VERSION +tar xjvf $CWD/tcsh-$VERSION.tar.bz2 || exit 1 +cd tcsh-$VERSION + +# The LS_COLORS variable shared by tcsh has new options in recent +# versions of coreutils that cause tcsh to exit, so disable the +# built-in color ls: +zcat $CWD/tcsh.nobuiltincolorls.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= \ + $ARCH-slackware-linux +make -j4 || exit 1 +mkdir -p $PKG/etc +mkdir -p $PKG/bin +cat tcsh > $PKG/bin/tcsh +chmod 755 $PKG/bin/tcsh +mkdir -p $PKG/usr/man/man1 +cat tcsh.man | gzip -9c > $PKG/usr/man/man1/tcsh.1.gz +echo '.so man1/tcsh.1' | gzip -9c > $PKG/usr/man/man1/csh.1.gz +( 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/usr/doc/tcsh-$VERSION +cp -a \ + BUGS FAQ Fixes NewThings Ported README README.imake WishList Y2K \ + $PKG/usr/doc/tcsh-$VERSION +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 +makepkg -l y -c n $TMP/tcsh-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/tcsh-${VERSION} + rm -rf $PKG +fi diff --git a/source/a/tcsh/tcsh.nobuiltincolorls.diff b/source/a/tcsh/tcsh.nobuiltincolorls.diff new file mode 100644 index 00000000..2fd1c289 --- /dev/null +++ b/source/a/tcsh/tcsh.nobuiltincolorls.diff @@ -0,0 +1,11 @@ +--- ./config_f.h.orig 2005-03-04 07:46:04.000000000 -0600 ++++ ./config_f.h 2006-02-09 14:30:59.000000000 -0600 +@@ -174,7 +174,7 @@ + * COLOR_LS_F Do you want to use builtin color ls-F ? + * + */ +-#define COLOR_LS_F ++#undef COLOR_LS_F + + /* + * COLORCAT Do you want to colorful message ? diff --git a/source/a/time/slack-desc b/source/a/time/slack-desc new file mode 100644 index 00000000..633c5816 --- /dev/null +++ b/source/a/time/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------------------------------------------------------| +time: time (the GNU time command for measuring program resource use) +time: +time: The `time' command runs another program, then displays information +time: about the resources used by that program, collected by the system +time: while the program was running. +time: +time: GNU time was originally written by David Keppel, with later versions +time: worked on by David MacKenzie, Arne Henrik Juul, and Francois Pinard. +time: +time: +time: diff --git a/source/a/time/time.SlackBuild b/source/a/time/time.SlackBuild new file mode 100755 index 00000000..108e7a8b --- /dev/null +++ b/source/a/time/time.SlackBuild @@ -0,0 +1,69 @@ +#!/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.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-time + +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 time-${VERSION} +tar xvzf $CWD/time-${VERSION}.tar.gz +cd time-${VERSION} +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make || exit 1 +mkdir -p $PKG/usr/bin +cat time > $PKG/usr/bin/time +chmod 755 $PKG/usr/bin/time +mkdir -p $PKG/usr/info +cat time.info | gzip -9c > $PKG/usr/info/time.info.gz +mkdir -p $PKG/usr/doc/time-${VERSION} +cp -a \ + AUTHORS COPYING NEWS README \ + $PKG/usr/doc/time-${VERSION} +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/time-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/tree/slack-desc b/source/a/tree/slack-desc new file mode 100644 index 00000000..4140d110 --- /dev/null +++ b/source/a/tree/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------------------------------------------------------| +tree: tree (a program to display a directory tree) +tree: +tree: Tree is a recursive directory listing program that produces a depth +tree: indented listing of files, which is colorized ala dircolors if the +tree: LS_COLORS environment variable is set and output is to tty. With no +tree: arguments, tree lists the files in the current directory. +tree: +tree: The tree utility was written by Steve Baker. +tree: +tree: +tree: diff --git a/source/a/tree/tree.SlackBuild b/source/a/tree/tree.SlackBuild new file mode 100755 index 00000000..d20c3c1e --- /dev/null +++ b/source/a/tree/tree.SlackBuild @@ -0,0 +1,65 @@ +#!/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=1.5.2.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tree + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tree-$VERSION +tar xvf $CWD/tree-$VERSION.tar.?z* || exit 1 +cd tree-$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 -j2 || exit 1 +mkdir -p $PKG/usr/bin +cat tree > $PKG/usr/bin/tree +chmod 755 $PKG/usr/bin/tree +mkdir -p $PKG/usr/man/man1 +cat man/tree.1 | gzip -9c > $PKG/usr/man/man1/tree.1.gz +mkdir -p $PKG/usr/doc/tree-$VERSION +cp -a \ + CHANGES LICENSE README \ + $PKG/usr/doc/tree-$VERSION +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/tree-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new new file mode 100644 index 00000000..25811703 --- /dev/null +++ b/source/a/udev/config/modprobe.d/blacklist.conf.new @@ -0,0 +1,270 @@ +# +# Listing a module here prevents the hotplug scripts from loading it. +# Usually that'd be so that some other driver will bind it instead, +# no matter which driver happens to get probed first. Sometimes user +# mode tools can also control driver binding. + +# PC Speaker support: +# This one is loaded by /etc/rc.d/rc.modules. If you don't like +# the beeps and buzz from speaker, edit /etc/rc.d/rc.modules. +blacklist pcspkr + +# tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices +blacklist de4x5 + +# At least 2.4.3 and later xircom_tulip doesn't have that conflict +# xircom_tulip_cb +blacklist dmfe + +#evbug is a debug tool and should be loaded explicitly +blacklist evbug + +# Alternate Intel EtherExpress Pro/100 support driver. List it +# here so it won't conflict with an already-loaded e100 module. +blacklist eepro100 + +# Alternate 8139 driver. Some 8139 cards need this specific driver, +# though... +blacklist 8139cp + +# Deprecated BCM4318 driver. +blacklist bcm43xx + +# Modules used to run a wireless adaptor as an access point. These +# conflict with the normal driver for the device, and so should be +# loaded manually. +blacklist hostap_cs +blacklist hostap_pci +blacklist hostap_plx +blacklist hostap + +# Ethernet over IEEE1394 module. In too many cases this will load +# when there's no eth1394 device present (just an IEEE1394 port) +blacklist eth1394 + +# This module has also been known to cause crashes with some hardware. +blacklist hw_random + +# The kernel lists this as "experimental", but for now it's "broken" +blacklist via-ircc + +# ALSA modules to support sound modems. These should be loaded manually +# if needed. For most people they just break sound support... +blacklist snd-atiixp-modem +blacklist snd-intel8x0m +blacklist snd-via82xx-modem + +# OSS (Open Sound System) modules. This is the old and deprecated Linux +# sound system. If you want to use OSS, remove the alsa-driver package +# and cut out (or comment out) this list. With these modules +# blacklisted ALSA will load by default. +blacklist ac97 +blacklist ac97_codec +blacklist aci +blacklist ad1816 +blacklist ad1848 +blacklist ad1889 +blacklist adlib_card +blacklist aedsp16 +blacklist ali5455 +blacklist awe_wave +blacklist btaudio +blacklist cmpci +blacklist cs4232 +blacklist cs4281 +blacklist cs46xx +blacklist emu10k1 +blacklist es1370 +blacklist es1371 +blacklist esssolo1 +blacklist forte +blacklist gus +blacklist i810_audio +blacklist kahlua +blacklist mad16 +blacklist maestro +blacklist maestro3 +blacklist maui +blacklist mpu401 +blacklist msnd +blacklist msnd_classic +blacklist msnd_pinnacle +blacklist nm256_audio +blacklist opl3 +blacklist opl3sa +blacklist opl3sa2 +blacklist pas2 +blacklist pss +blacklist rme96xx +blacklist sb +blacklist sb_lib +blacklist sgalaxy +blacklist sonicvibes +blacklist sound +blacklist sscape +blacklist trident +blacklist trix +blacklist uart401 +blacklist uart6850 +blacklist v_midi +blacklist via82cxxx_audio +blacklist wavefront +blacklist ymfpci + +# Hardware specific video framebuffer modules. If the user wants +# these, they can load them manually or de-blacklist them. Having +# them load automatically may lead to funny side effects with +# certain revisions of video hardware. +blacklist arcfb +blacklist aty128fb +blacklist atyfb +blacklist cirrusfb +blacklist clgenfb +blacklist cyber2000fb +blacklist fbcon-cfb2 +blacklist fbcon-cfb4 +blacklist fbcon-hga +blacklist fbcon-mfb +blacklist fbcon-vga-planes +blacklist fbgen +blacklist hgafb +blacklist i2c-matroxfb +blacklist i810fb +blacklist intelfb +blacklist kyrofb +blacklist matroxfb_DAC1064 +blacklist matroxfb_Ti3026 +blacklist matroxfb_accel +blacklist matroxfb_base +blacklist matroxfb_crtc2 +blacklist matroxfb_g450 +blacklist matroxfb_maven +blacklist matroxfb_misc +blacklist neofb +blacklist nvidiafb +blacklist pm2fb +blacklist pm3fb +blacklist radeonfb +blacklist rivafb +blacklist savagefb +blacklist sisfb +blacklist sstfb +blacklist tdfxfb +blacklist tridentfb +blacklist vga16fb + +# SCSI and SATA controller modules. Typically these are either +# built into the kernel or loaded with an initrd already. +blacklist 3w-xxxx +blacklist 53c7,8xx +blacklist AM53C974 +blacklist BusLogic +blacklist NCR53c406a +blacklist a100u2w +blacklist advansys +blacklist aha152x +blacklist aha1542 +blacklist aha1740 +blacklist aic79xx +blacklist aic7xxx +blacklist aic7xxx_old +blacklist aic94xx +blacklist ata_piix +blacklist atp870u +blacklist cpqfc +blacklist dc395x +blacklist dmx3191d +blacklist dpt_i2o +blacklist dtc +blacklist eata +blacklist eata_dma +blacklist eata_pio +blacklist fdomain +blacklist g_NCR5380 +blacklist g_NCR5380_mmio +blacklist gdth +blacklist ide-scsi +blacklist imm +blacklist in2000 +blacklist initio +blacklist ipr +blacklist ips +blacklist libata +blacklist megaraid +blacklist ncr53c8xx +blacklist nsp32 +blacklist osst +blacklist pas16 +blacklist pci2000 +blacklist pci2220i +blacklist ppa +blacklist psi240i +blacklist qla1280 +blacklist qla2100 +blacklist qla2200 +blacklist qla2300 +blacklist qla2322 +blacklist qla2xxx +blacklist qla6312 +blacklist qla6322 +blacklist qlogicfas +blacklist qlogicfas408 +blacklist qlogicfc +blacklist qlogicisp +blacklist seagate +blacklist sim710 +blacklist sata_promise +blacklist sata_sil +blacklist sata_sis +blacklist sata_svw +blacklist sata_sx4 +blacklist sata_via +blacklist sata_vsc +blacklist scsi_debug +blacklist scsi_transport_fc +blacklist scsi_transport_spi +blacklist sym53c416 +blacklist sym53c8xx +blacklist sym53c8xx +blacklist t128 +blacklist tmscsim +blacklist u14-34f + +# Blacklist all watchdog modules. Many motherboards hangs with them and, +# if you really need an watchdog you probably know how to load the module +blacklist acquirewdt +blacklist advantechwdt +blacklist alim1535_wdt +blacklist alim7101_wdt +blacklist cpu5wdt +blacklist eurotechwdt +blacklist hpwdt +blacklist i6300esb +blacklist iTCO_vendor_support +blacklist iTCO_wdt +blacklist ib700wdt +blacklist ibmasr +blacklist it8712f_wdt +blacklist machzwd +blacklist mixcomwd +blacklist pc87413_wdt +blacklist pcwd +blacklist pcwd_pci +blacklist pcwd_usb +blacklist sbc60xxwdt +blacklist sbc7240_wdt +blacklist sbc8360 +blacklist sbc_epx_c3 +blacklist sc1200wdt +blacklist sc520_wdt +blacklist scx200_wdt +blacklist smsc37b787_wdt +blacklist softdog +blacklist w83627hf_wdt +blacklist w83697hf_wdt +blacklist w83877f_wdt +blacklist w83977f_wdt +blacklist wafer5823wdt +blacklist wdt +blacklist wdt_pci + diff --git a/source/a/udev/config/modprobe.d/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new new file mode 100644 index 00000000..2ed9305e --- /dev/null +++ b/source/a/udev/config/modprobe.d/isapnp.conf.new @@ -0,0 +1,15 @@ +# These aliases are here because many PnP modules do not +# provide aliases for them. +alias pnp:dPNP0400 parport_pc +alias pnp:dPNP0401 parport_pc +alias pnp:dPNP0510 irtty-sir +alias pnp:dPNP0511 irtty-sir +alias pnp:dPNP0700 floppy +alias pnp:dPNP0B00 rtc +alias acpi:PNP0B00: rtc-cmos +alias acpi:PNP0B01: rtc-cmos +alias acpi:PNP0B02: rtc-cmos +alias pnp:dPNPB02F analog +alias pnp:dPNP0F13 psmouse +alias pnp:dPNP0800 pcspkr +alias pnp:dPNP0303 atkbd diff --git a/source/a/udev/config/modprobe.d/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf.new new file mode 100644 index 00000000..70c0d819 --- /dev/null +++ b/source/a/udev/config/modprobe.d/psmouse.conf.new @@ -0,0 +1,6 @@ +# PS/2 mouse support: +# The default options when the psmouse module can cause problems with KVM +# switches. If you experience this, you may want to uncomment the line +# below to use a more basic mouse protocol with the psmouse module: +#options psmouse proto=imps + diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new new file mode 100644 index 00000000..4b77fd82 --- /dev/null +++ b/source/a/udev/config/modprobe.d/usb-controller.conf.new @@ -0,0 +1,4 @@ +# Make sure that ehci-hcd is always loaded before uhci-hci +# # or ohci-hcd to prevent a kernel warning: +install uhci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i uhci-hcd +install ohci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i ohci-hcd diff --git a/source/a/udev/config/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new new file mode 100644 index 00000000..8c238b0d --- /dev/null +++ b/source/a/udev/config/rc.d/rc.udev.new @@ -0,0 +1,133 @@ +#!/bin/sh +# This is a script to initialize udev, which populates the /dev +# directory with device nodes, scans for devices, loads the +# appropriate kernel modules, and configures the devices. + +PATH="/sbin:/bin" +OPT="" + +. /etc/udev/udev.conf + +# remove trailing slash from udev_root +UDEV_ROOT=$(echo "${udev_root}" |sed 's/\/*$//') + +case "$1" in + start) + # Sanity check #1, udev requires that the kernel support tmpfs: + if ! grep -wq tmpfs /proc/filesystems ; then + echo "Sorry, but you need tmpfs support in the kernel to use udev." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Sanity check #2, make sure that a 2.6.x kernel is new enough: + if [ "$(uname -r | cut -f 1,2 -d .)" = "2.6" ]; then + if [ "$(uname -r | cut -f 3 -d . | sed 's/[^[:digit:]].*//')" -lt "15" ]; then + echo "Sorry, but you need a 2.6.15+ kernel to use udev." + echo "Your kernel version is only $(uname -r)." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + fi + + # Sanity check #3, make sure the udev package was not removed. If udevd + # is not there, this will also shut off this script to prevent further + # problems: + if [ ! -x /sbin/udevd ]; then + chmod 644 /etc/rc.d/rc.udev + echo "No udevd daemon found." + echo "Turning off udev: chmod 644 /etc/rc.d/rc.udev" + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Disable hotplug helper since udevd listens to netlink: + if [ -e /proc/sys/kernel/hotplug ]; then + echo "" > /proc/sys/kernel/hotplug + fi + + # if udevd is already running, rc.udev start will try to re-run + # failed events. Else, it will start udevd. + if ps axc | grep -q udevd ; then + OPT="--type=failed $OPT" + ( cd ${UDEV_ROOT}/.udev + for TMPFILE in tmp-rules-*.rules ; do + mv $TMPFILE /etc/udev/rules.d/${TMPFILE/tmp-rules--/} 2>/dev/null + done + ) + else + # Mount tmpfs on $UDEV_ROOT: + if ! grep -E -q "^[^[:space:]]+ $UDEV_ROOT tmpfs" /proc/mounts; then + # umount shm if needed + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/shm tmpfs" /proc/mounts; then + umount -l $UDEV_ROOT/shm + fi + + # Umount pts if needed, we will remount it later: + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/pts devpts" /proc/mounts; then + umount -l $UDEV_ROOT/pts + fi + + # Mount tmpfs on $UDEV_ROOT: + # the -n is because we don't want $UDEV_ROOT umounted when + # someone (rc.[06]) calls umount -a + mount -n -o mode=0755 -t tmpfs tmpfs $UDEV_ROOT + + # Remount pts: + mkdir $UDEV_ROOT/pts 2> /dev/null + mount -n -o mode=0620,gid=5 -t devpts devpts $UDEV_ROOT/pts + fi + + # Add the static nodes to $UDEV_ROOT: + cp --preserve=all --recursive --remove-destination /lib/udev/devices/* $UDEV_ROOT + + # Start udevd: + echo "Starting udevd: /sbin/udevd --daemon" + /sbin/udevd --daemon + + # Create rootdev rules + DEVICENUMBER=$( /bin/stat -c %d / ) + MAJORNUMBER=$(($DEVICENUMBER / 256)) + MINORNUMBER=$(($DEVICENUMBER % 256)) + + echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules + + fi + + echo "Triggering udev events: /sbin/udevadm trigger $OPT" + # Call udevtrigger and udevsettle to do the device configuration: + /sbin/udevadm trigger $OPT && /sbin/udevadm settle --timeout=120 + + ;; + stop) + echo "Stopping udevd" + if [ -e /proc/sys/kernel/hotplug ]; then + echo /sbin/hotplug > /proc/sys/kernel/hotplug + fi + killall udevd + ;; + restart) + echo "Restarting udevd" + killall udevd + sleep 5 + udevd --daemon + ;; + reload) + echo "Reloading udev rules" + udevadm control --reload-rules + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + force-reload) + echo "Updating all available device nodes in $UDEV_ROOT" + udevadm control --reload-rules + rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" + exit 1 + ;; +esac diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules new file mode 100644 index 00000000..29b6071e --- /dev/null +++ b/source/a/udev/config/rules.d/40-slackware.rules @@ -0,0 +1,16 @@ +# /lib/udev/rules.d/40-slackware.rules +# +# Slackware custom udev rules +# Also see the following Slackware-provided custom rules files: +# 65-permissions.rules and 90-network.rules +# +# Any change in this file will be overwritten in upgrades. Put your +# custom rules somewhere else (90-local.rules is a good idea). +# +# See the udev man page to know the parameters you can use in udev +# rules. +# + +# input devices +KERNEL=="mice", SYMLINK+="mouse" + diff --git a/source/a/udev/config/rules.d/65-permissions.rules b/source/a/udev/config/rules.d/65-permissions.rules new file mode 100644 index 00000000..b0cfb259 --- /dev/null +++ b/source/a/udev/config/rules.d/65-permissions.rules @@ -0,0 +1,52 @@ +# Slackware permission rules +# +# These rules are here instead of 40-slackware.rules because +# many of them need to run after the block section in +# 50-udev.default.rules +# +# Remember, in any upgrade, this file will be overwritten. +# Put your custom rules somewhere else (90-local.rules is +# a good idea). +# + +# all disks with group disk +KERNEL!="fd*", SUBSYSTEM=="block", GROUP="disk" + +# permissions for IDE floppy devices +KERNEL=="hd*[!0-9]", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", \ + SYMLINK+="floppy floppy-%k", OPTIONS+="ignore_remove" +KERNEL=="hd*[0-9]", ATTRS{media}=="floppy", ATTRS{removable}=="1", \ + SYMLINK+="floppy-%k", OPTIONS+="ignore_remove" + +# put all removable devices in group "plugdev" +KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" + +# Many hot-pluggable devices (ZIP, Jazz, LS-120, etc...) +# need to be in plugdev, too. +KERNEL=="diskonkey*", GROUP="plugdev" +KERNEL=="jaz*", GROUP="plugdev" +KERNEL=="pocketzip*", GROUP="plugdev" +KERNEL=="zip*", GROUP="plugdev" +KERNEL=="ls120", GROUP="plugdev" +KERNEL=="microdrive*", GROUP="plugdev" + +# CD group and permissions +ENV{ID_CDROM}=="?*", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom", MODE="0660" +# permissions for SCSI sg devices +SUBSYSTEMS=="scsi", KERNEL=="s[gt][0-9]*", ATTRS{type}=="5", \ + GROUP="cdrom", MODE="0660" + +# Make DRI video devices usable by anyone in group "video": +KERNEL=="card[0-9]*",GROUP:="video" + +# alsa devices +SUBSYSTEM=="sound", GROUP="audio" + +# Make the real time clock readable by all, and writable by root: +KERNEL=="rtc|rtc0", MODE="0644" + diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules new file mode 100644 index 00000000..03f2ddc7 --- /dev/null +++ b/source/a/udev/config/rules.d/90-network.rules @@ -0,0 +1,5 @@ +# This file will be overwritten in next upgrade. Please put your +# custom rules somewhere else (90-local.rules is a good idea) + +SUBSYSTEM=="net", NAME=="?*", ACTION=="add", RUN+="nethelper.sh $env{INTERFACE} start" +SUBSYSTEM=="net", NAME=="?*", ACTION=="remove", RUN+="nethelper.sh $env{INTERFACE} stop" diff --git a/source/a/udev/config/scripts/nethelper.sh b/source/a/udev/config/scripts/nethelper.sh new file mode 100755 index 00000000..9e172027 --- /dev/null +++ b/source/a/udev/config/scripts/nethelper.sh @@ -0,0 +1,62 @@ +#!/bin/sh +DEVNAME="$1" +COMMAND="$2" + +testwrite() { + if touch /var/run/checkrw 2>/dev/null ; then + rm -rf /var/run/checkrw + RW=1 + fi +} + +case $DEVNAME in + eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*) + case $COMMAND in + 'start') + testwrite + + if [ $RW ]; then + if [ -x /etc/rc.d/rc.inet1 ]; then + if ! /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_start + fi + fi + exit 0 + else + exit 1 + fi + ;; + 'stop') + if [ -x /etc/rc.d/rc.inet1 ]; then + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_stop + fi + fi + # Does dhcpcd appear to still be running on the + # interface? If so, try to stop it. + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid -o -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /sbin/dhcpcd -k -d $DEVNAME + # Force garbage removal, if needed: + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /etc/dhcpc/dhcpcd-$DEVNAME.pid + elif [ -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /var/run/dhcpcd-$DEVNAME.pid + fi + fi + # If the interface is now down, exit with a status of 0: + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} " ; then + exit 0 + fi + ;; + *) + echo "usage $0 interface start|stop" + exit 1 + ;; + esac + ;; + *) + echo "Interface $DEVNAME not supported." + exit 1 + ;; +esac +exit 0 diff --git a/source/a/udev/config/udev.conf b/source/a/udev/config/udev.conf new file mode 100644 index 00000000..b0421a08 --- /dev/null +++ b/source/a/udev/config/udev.conf @@ -0,0 +1,14 @@ +# udev.conf +# The main config file for udev +# +# This file can be used to override some of udev's default values for where it +# looks for files, and where it places device nodes. + +# udev_root - where in the filesystem to place the device nodes +udev_root="/dev/" + +# udev_log - The initial syslog(3) priority: "err", "info", "debug" or +# its numerical equivalent. For runtime debugging, the daemons +# internal state can be changed with: udevcontrol log_priority=<value> +udev_log="err" + diff --git a/source/a/udev/doinst.sh b/source/a/udev/doinst.sh new file mode 100644 index 00000000..5e737ca0 --- /dev/null +++ b/source/a/udev/doinst.sh @@ -0,0 +1,39 @@ +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.udev.new: +if [ -e etc/rc.d/rc.udev ]; then + cp -a etc/rc.d/rc.udev etc/rc.d/rc.udev.new.incoming + cat etc/rc.d/rc.udev.new > etc/rc.d/rc.udev.new.incoming + mv etc/rc.d/rc.udev.new.incoming etc/rc.d/rc.udev.new +fi + +# There's no reason for a user to edit rc.udev, so overwrite it: +if [ -r etc/rc.d/rc.udev.new ]; then + mv etc/rc.d/rc.udev.new etc/rc.d/rc.udev +fi + +# This should catch *all* files in /etc/modprobe.d/ and move them over to +# have .conf extensions +for modfile in $(ls etc/modprobe.d/ | grep -v "\.\(conf\|bak\|orig\|new\)"); do + if [ -e etc/modprobe.d/$modfile -a ! -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.conf + elif [ -e etc/modprobe.d/$modfile -a -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.bak + fi +done + +config etc/modprobe.d/blacklist.conf.new +config etc/modprobe.d/isapnp.conf.new +config etc/modprobe.d/psmouse.conf.new +config etc/modprobe.d/usb-controller.conf.new + diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff new file mode 100644 index 00000000..0ff218a6 --- /dev/null +++ b/source/a/udev/rule_generator.diff @@ -0,0 +1,80 @@ +diff -Naur udev-114/extras/rule_generator/write_cd_rules udev-114slk/extras/rule_generator/write_cd_rules +--- udev-114/extras/rule_generator/write_cd_rules 2007-08-05 09:08:47.000000000 -0300 ++++ udev-114slk/extras/rule_generator/write_cd_rules 2007-08-22 20:17:24.000000000 -0300 +@@ -3,7 +3,8 @@ + # This script is run if an optical drive lacks a rule for persistent naming. + # + # It adds symlinks for optical drives based on the device class determined +-# by cdrom_id and used ID_PATH to identify the device. ++# by cdrom_id and used ID_PATH or ID_SERIAL or ID_MODEL and ID_REVISION ++# to identify the device. + # + # (C) 2006 Marco d'Itri <md@Linux.IT> + # +@@ -97,18 +98,59 @@ + choose_rules_file + + link_num=$(find_next_available 'cdrom[0-9]*') ++[ "$link_num" = "" ] && link_num=0 + + match="ENV{ID_CDROM}==\"?*\", $RULE" + + comment="$ID_MODEL ($ID_PATH)" +- + write_rule "$match" "cdrom$link_num" "$comment" +-[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ +- write_rule "$match" "cdrw$link_num" +-[ "$ID_CDROM_DVD" ] && \ +- write_rule "$match" "dvd$link_num" +-[ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \ +- write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrom)" = "" ]; then ++ write_rule "$match" "cdrom" ++ fi ++ ++ if [ "$ID_CDROM_CD_R" ]; then ++ write_rule "$match" "cdr$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdr)" = "" ]; then ++ write_rule "$match" "cdr" ++ fi ++ ++ write_rule "$match" "cdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdwriter)" = "" ]; then ++ write_rule "$match" "cdwriter" ++ fi ++ ++ if [ "$ID_CDROM_CD_RW" ]; then ++ write_rule "$match" "cdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrw)" = "" ]; then ++ write_rule "$match" "cdrw" ++ fi ++ fi ++ ++ if [ "$(find_all_rules 'SYMLINK+=' writer)" = "" ]; then ++ write_rule "$match" "writer" ++ fi ++ fi ++ ++ if [ "$ID_CDROM_DVD" ]; then ++ write_rule "$match" "dvd$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvd)" = "" ]; then ++ write_rule "$match" "dvd" ++ fi ++ ++ if [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ]; then ++ write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdrw)" = "" ]; then ++ write_rule "$match" "dvdrw" ++ fi ++ ++ write_rule "$match" "dvdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then ++ write_rule "$match" "dvdwriter" ++ fi ++ fi ++ fi ++ ++ + + unlock_rules_file + diff --git a/source/a/udev/slack-desc b/source/a/udev/slack-desc new file mode 100644 index 00000000..c411756c --- /dev/null +++ b/source/a/udev/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-------------------------------------------------------| +udev: udev (dynamic device directory system) +udev: +udev: udev provides a dynamic device directory containing only the files +udev: for the devices which are actually present. It creates or removes +udev: device node files usually located in the /dev directory. +udev: +udev: udev requires a 2.6 or newer kernel. +udev: +udev: Kay Sievers is the udev maintainer. +udev: +udev: diff --git a/source/a/udev/udev-141.tar.bz2.sign b/source/a/udev/udev-141.tar.bz2.sign new file mode 100644 index 00000000..a3082691 --- /dev/null +++ b/source/a/udev/udev-141.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 + +iD8DBQBJ3TgkyGugalF9Dw4RAtJCAJ4+ns9bz4ZIu+3ecfra/BWrn3euqwCeOFQZ +6A7UqbHlTlD48sOk249ZATA= +=AY1A +-----END PGP SIGNATURE----- diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild new file mode 100755 index 00000000..0c632748 --- /dev/null +++ b/source/a/udev/udev.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2006, 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:-141} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-udev + +rm -rf $PKG +mkdir -p $TMP $PKG/lib/udev +cd $TMP +rm -rf udev-$VERSION +tar xvf $CWD/udev-$VERSION.tar.bz2 || exit 1 +cd udev-$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/rule_generator.diff.gz | patch -p1 --verbose || exit 1 + +./configure \ + --prefix=/usr \ + --exec-prefix=/ \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-libdir-name=lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( 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 +) + +# scsi_id and vol_id are needed by multipath +( cd $PKG/sbin + ln -s ../lib/udev/scsi_id scsi_id + ln -s ../lib/udev/vol_id vol_id +) + +mkdir -p \ + $PKG/etc/modprobe.d \ + $PKG/etc/rc.d \ + $PKG/etc/udev/rules.d \ + $PKG/lib/firmware + +# Yes, these will clobber existing config files. +cp -a $CWD/config/udev.conf $PKG/etc/udev/udev.conf +# Copy Slackware custom rules +cp -a $CWD/config/rules.d/* $PKG/lib/udev/rules.d/ +# Copy some files from upstream +cp -a rules/packages/40-alsa.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-isdn.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-zaptel.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-infiniband.rules $PKG/lib/udev/rules.d/ +#cp -a rules/packages/40-pilot-links.rules $PKG/etc/udev/rules.d/ +#cp -a rules/packages/64-md-raid.rules $PKG/etc/udev/rules.d/ +# Now the init script and module-init-tools stuff +cp -a $CWD/config/rc.d/rc.udev.new $PKG/etc/rc.d/rc.udev.new +cp -a $CWD/config/modprobe.d/* $PKG/etc/modprobe.d + +chown -R root:root $PKG/etc +find $PKG/etc -type f -exec chmod 644 {} \; +find $PKG/etc -type d -exec chmod 755 {} \; +chmod 755 $PKG/etc/rc.d/rc.udev.new + +# Add extra device nodes to the package that udev doesn't make: +tar xvf $CWD/udev-fixed-devices.tar.gz -C $PKG + +# Add various helper scripts: +for file in $CWD/config/scripts/* ; do + cp -a $file $PKG/lib/udev/ +done +chown -R root:root $PKG/lib/udev +chmod 755 $PKG/lib/udev/* + +mkdir -p $PKG/usr/doc/udev-$VERSION +cp -a \ + COPYING* FAQ README* TODO RELEASE-NOTES docs \ + $PKG/usr/doc/udev-$VERSION + +# Compress and fix manpage symlinks: +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 +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c y $TMP/udev-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/unarj/Makefile b/source/a/unarj/Makefile new file mode 100644 index 00000000..95483e75 --- /dev/null +++ b/source/a/unarj/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for unarj under Linux +# by Arrigo Triulzi ({a.triulzi,agbt}@{imperial,ic}.ac.uk) +# + +CC = gcc +CFLAGS = -O2 -DUNIX +INSTALLDIR=/usr/bin + +unarj: unarj.o decode.o environ.o + gcc $(CFLAGS) -o unarj unarj.o decode.o environ.o + +clean: + rm -f core unarj *.o *.out + +install: + cp unarj $(INSTALLDIR) + +unarj.o: unarj.c unarj.h Makefile +environ.o: environ.c unarj.h Makefile +decode.o: decode.c unarj.h Makefile diff --git a/source/a/unarj/slack-desc b/source/a/unarj/slack-desc new file mode 100644 index 00000000..14b08009 --- /dev/null +++ b/source/a/unarj/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------------------------------------------------------| +unarj: unarj (a command-line utility for decompressing .arj archives) +unarj: +unarj: This is a simple command-line tool for decompressing .arj files. +unarj: Thanks to Haruhiko Okumura and ARJ Software, Inc. for providing this +unarj: source code free of charge. +unarj: +unarj: UNARJ software and manual copyright (c) 1990-2002 ARJ Software, Inc. +unarj: All rights reserved. +unarj: +unarj: +unarj: diff --git a/source/a/unarj/unarj.SlackBuild b/source/a/unarj/unarj.SlackBuild new file mode 100755 index 00000000..56097eb2 --- /dev/null +++ b/source/a/unarj/unarj.SlackBuild @@ -0,0 +1,61 @@ +#!/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=265 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-unarj + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf unarj${VERSION} +tar xzvf $CWD/unarj${VERSION}.tar.gz +cd unarj${VERSION} +chown -R root:root . +cp -a $CWD/Makefile.gz . +gzip --force -d Makefile.gz +make || exit 1 +mkdir -p $PKG/usr/bin +cat unarj > $PKG/usr/bin/unarj +chmod 755 $PKG/usr/bin/unarj +mkdir -p $PKG/usr/doc/unarj${VERSION} +cp -a \ + *.txt \ + $PKG/usr/doc/unarj${VERSION} +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/unarj-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/usbutils/slack-desc b/source/a/usbutils/slack-desc new file mode 100644 index 00000000..ffca25c2 --- /dev/null +++ b/source/a/usbutils/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------------------------------------------------------| +usbutils: usbutils (USB utilities) +usbutils: +usbutils: lsusb displays detailed information about all USB buses and devices +usbutils: in the system. +usbutils: +usbutils: usbmodules lists the kernel modules for a plugged in USB device. +usbutils: +usbutils: See the manual pages for more details. +usbutils: +usbutils: +usbutils: diff --git a/source/a/usbutils/usbutils.SlackBuild b/source/a/usbutils/usbutils.SlackBuild new file mode 100755 index 00000000..dcb14b46 --- /dev/null +++ b/source/a/usbutils/usbutils.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=${VERSION:-0.82} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-usbutils + +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 usbutils-$VERSION +tar xvf $CWD/usbutils-$VERSION.tar.?z* || exit 1 +cd usbutils-$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 {} \; + +# Fetch the latest usb.ids: +rm -f usb.ids* +wget $(grep 'SRC=' update-usbids.sh.in | cut -d= -f2- | tr -d \") + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sbindir=/sbin \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Get rid of this redundant file: +rm -f $PKG/usr/share/usb.ids.gz + +# The usbids are kept under /usr, so it makes no sense at all to have +# this util in /sbin rather than /usr/sbin: +mkdir -p $PKG/usr/sbin +mv $PKG/sbin/update-usbids.sh $PKG/usr/sbin/update-usbids.sh + +# Now that they install the util as "update-usbids.sh" instead of +# "update-usbids", we have to make a compatibility symlink in case +# anyone is updating this with a cron job or some such: +( cd $PKG/usr/sbin ; ln -sf update-usbids.sh update-usbids ) + +# And, since they put the util in /sbin, we'd better at least make the +# upstream name available there too... +( cd $PKG/sbin ; ln -sf /usr/sbin/update-usbids.sh . ) + +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/usbutils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/usbutils-$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/usbutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/usbutils/usbutils.ids.dest b/source/a/usbutils/usbutils.ids.dest new file mode 100644 index 00000000..67111881 --- /dev/null +++ b/source/a/usbutils/usbutils.ids.dest @@ -0,0 +1,11 @@ +--- ./update-usbids.sh.orig 2005-01-22 17:03:47.000000000 -0600 ++++ ./update-usbids.sh 2007-01-04 17:14:28.000000000 -0600 +@@ -4,7 +4,7 @@ + + set -e + SRC="http://www.linux-usb.org/usb.ids" +-DEST=usb.ids ++DEST=/usr/share/usb.ids + + if which wget >/dev/null ; then + DL="wget -O $DEST.new $SRC" diff --git a/source/a/utempter/doinst.sh b/source/a/utempter/doinst.sh new file mode 100644 index 00000000..94c6231d --- /dev/null +++ b/source/a/utempter/doinst.sh @@ -0,0 +1,10 @@ +if ! grep "^utmp:" etc/group 1> /dev/null 2> /dev/null ; then + if ! grep ":22:" etc/group 1> /dev/null 2> /dev/null ; then + # we'll be adding this in the etc package anyway. + echo "utmp::22:" >> etc/group + # This should be able to handle itself... + #chown root:utmp usr/sbin/utempter + fi +fi +chown root:utmp var/run/utmp var/log/wtmp +chmod 664 var/run/utmp var/log/wtmp diff --git a/source/a/utempter/slack-desc b/source/a/utempter/slack-desc new file mode 100644 index 00000000..ff00f66e --- /dev/null +++ b/source/a/utempter/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------------------------------------------------------| +utempter: utempter (utmp updating library and utility) +utempter: +utempter: The utempter package provides a utility and shared library that +utempter: allows terminal applications such as xterm and screen to update +utempter: /var/run/utmp and /var/log/wtmp without requiring root privileges. +utempter: +utempter: +utempter: +utempter: +utempter: +utempter: diff --git a/source/a/utempter/utempter.SlackBuild b/source/a/utempter/utempter.SlackBuild new file mode 100755 index 00000000..7d0d24b7 --- /dev/null +++ b/source/a/utempter/utempter.SlackBuild @@ -0,0 +1,77 @@ +#!/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.1.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-utempter +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +# The original package name was "utempter", but this new version +# calls itself "libutempter". We'll keep the same old package name +# to avoid confusing upgrades. +rm -rf libutempter-$VERSION +tar xjvf $CWD/libutempter-$VERSION.tar.bz2 +cd libutempter-$VERSION +chown -R root:root . +## I see no reason to use different paths than in utempter-0.5.2: +#zcat $CWD/libutempter.slack.diff.gz | patch -p1 --verbose || exit 1 +find . -perm 664 -exec chmod 644 {} \; +find . -perm 775 -exec chmod 755 {} \; +sed -i -e "s#/usr/lib#/usr/lib${LIBDIRSUFFIX}#g" Makefile +make +make install DESTDIR=$PKG +# A static libutempter seems like a bad idea, since it wouldn't work +# without the making utempter binary. That and the shared lib are a +# closely matched set. +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libutempter.a +# Set proper permissions: +chown root:utmp $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter +chmod 2755 $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter +chmod 644 $PKG/usr/include/utempter.h +mkdir -p $PKG/usr/doc/utempter-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/utempter-$VERSION +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/utempter-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/util-linux-ng/adjtimex_1.23-1.diff b/source/a/util-linux-ng/adjtimex_1.23-1.diff new file mode 100644 index 00000000..8c250157 --- /dev/null +++ b/source/a/util-linux-ng/adjtimex_1.23-1.diff @@ -0,0 +1,5456 @@ +--- adjtimex-1.23.orig/config.sub ++++ adjtimex-1.23/config.sub +@@ -0,0 +1,1622 @@ ++#! /bin/sh ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, ++# Inc. ++ ++timestamp='2007-01-18' ++ ++# 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 ++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 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 ++ ;; ++ 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 ++ ;; ++ cr16c) ++ basic_machine=cr16c-unknown ++ os=-elf ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; ++ da30 | da30-*) ++ basic_machine=m68k-da30 ++ ;; ++ 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 ++ ;; ++ 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 ++ ;; ++ 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 ++ ;; ++ 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 ++ ;; ++ 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: +--- adjtimex-1.23.orig/config.guess ++++ adjtimex-1.23/config.guess +@@ -0,0 +1,1516 @@ ++#! /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 Free Software Foundation, ++# Inc. ++ ++timestamp='2007-03-06' ++ ++# 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 ++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.*:*) ++ 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:*:[45]) ++ 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 ;; ++ 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:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ 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 xtensa-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: +--- adjtimex-1.23.orig/debian/control ++++ adjtimex-1.23/debian/control +@@ -0,0 +1,20 @@ ++Source: adjtimex ++Section: admin ++Priority: optional ++Maintainer: James R. Van Zandt <jrv@debian.org> ++Build-Depends: debhelper (>= 5), po-debconf ++Standards-Version: 3.7.2 ++ ++Package: adjtimex ++Architecture: any ++Depends: ${shlibs:Depends}, debconf | debconf-2.0 ++Suggests: ntpdate ++Description: Utility to display or set the kernel time variables ++ This program gives you raw access to the kernel time variables. For ++ a machine connected to the Internet, or equipped with a precision ++ oscillator or radio clock, the best way to keep the system clock ++ correct is with ntpd. However, for a standalone or intermittently ++ connected machine, you may use adjtimex instead to at least correct ++ for systematic drift. adjtimex can optionally adjust the system ++ clock using the CMOS clock as a reference, and can log times for ++ long-term estimation of drift rates. +--- adjtimex-1.23.orig/debian/po/POTFILES.in ++++ adjtimex-1.23/debian/po/POTFILES.in +@@ -0,0 +1 @@ ++[type: gettext/rfc822deb] templates +--- adjtimex-1.23.orig/debian/po/templates.pot ++++ adjtimex-1.23/debian/po/templates.pot +@@ -0,0 +1,59 @@ ++# SOME DESCRIPTIVE TITLE. ++# 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" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\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: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" +--- adjtimex-1.23.orig/debian/po/fr.po ++++ adjtimex-1.23/debian/po/fr.po +@@ -0,0 +1,87 @@ ++# translation of fr.po to French ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++# Christian Perrier <bubulle@debian.org>, 2006. ++msgid "" ++msgstr "" ++"Project-Id-Version: fr\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2006-12-17 14:01+0100\n" ++"Last-Translator: Christian Perrier <bubulle@debian.org>\n" ++"Language-Team: French <debian-l10n-french@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.11.4\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Faut-il lancer adjtimex lors de l'installation et à chaque démarrage du " ++"système ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex peut être lancé au démarrage du système afin de régler les " ++"paramètres d'horloge du noyau en fonction des valeurs contenues dans /etc/" ++"default/adjtimex. Ne choisissez pas cette option si vous souhaitez " ++"simplement vous servir d'adjtimex pour consulter les paramètres actuels." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Faut-il lancer adjtimexconfig lors de l'installation ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Le script adjtimexconfig utilise adjtimex afin de trouver les valeurs " ++"appropriées pour les variables du noyau concernant le battement (« tick ») " ++"et la fréquence d'horloge. Cela permettra à l'horloge du système d'être à " ++"peu près en accord avec l'horloge matérielle (parfois appelée « horloge " ++"CMOS »). Ces valeurs seront alors conservées dans le fichier de " ++"configuration /etc/default/adjtimex ce qui permettra de les restaurer à " ++"chaque démarrage quand /etc/init.d/adjtimex s'exécutera. " ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"La durée d'exécution du script est de 70 secondes. Vous pouvez également " ++"utiliser adjtimexconfig vous-même plus tard ou déterminer les valeurs des " ++"variables du noyau d'une autre manière (il en existe plusieurs : voir la " ++"page de manuel d'adjtimex). Ces valeurs devront ensuite être placées dans /" ++"etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/es.po ++++ adjtimex-1.23/debian/po/es.po +@@ -0,0 +1,81 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: Vicente H. <vherrerv@supercable.es>\n" ++"Language-Team: LANGUAGE <LL@li.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-15\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Debe ejecutarse adjtimex ahora y en cada arranque?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++#, fuzzy ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex puede ser ejecutado en el arranque del sistema para poner los " ++"parmetros de tiempo del ncleo en /etc/default/adjtimex. Si usted solamente " ++"quiere usar adjtimex para inspeccionar los parmetros actuales, conteste \"No" ++"\"." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Debe ejecutarse adjtimexconfig ahora?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"El guin adjtimexconfig usar adjtimex para encontrar los valores para el " ++"ncleo de la seal y frecuencia que ser tomada por el reloj del sistema " ++"para estar de acuerdo con el reloj del hardware (tambin conocido como el " ++"reloj CMOS). Este guin guardar los valores en el archivo de configuracin /" ++"etc/default/adjtimex para que los ajustes sean restaurados en cada arranque " ++"del sistema, cuando /etc/init.d/adjtimex sea ejecutado." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"El guin toma 70 seg. para ser ejecutado. O bien, usted mismo puede ejecutar " ++"adjtimexconfig ms tarde, o determinar las variables del ncleo de varias " ++"formas (mire la pgina man de adjtimex) y antelos en /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/pl.po ++++ adjtimex-1.23/debian/po/pl.po +@@ -0,0 +1,83 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: Bartosz Zapaowski <zapal@debian.linux.org.pl>\n" ++"Language-Team: Polish Debian Documentation Project <pddp@debian.linux.org." ++"pl>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-2\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Czy adjtimex ma by uruchomiany podczas instalacji i kadego startu systemu?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex moe by uruchamiany podczas kadego uruchomienia systemu,by " ++"ustawi parametry czasu w jdrze na wartoci znajdujce si w pliku/etc/" ++"default/adjtimex. Nie wyraaj zgody, jeli chcesz uywa adjtimextylko do " ++"sprawdzania aktualnych wartoci." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Czy adjtimexconfig ma by uruchomiony podczas instalacji?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skrypt adjtimexconfig skorzysta z programu adjtimex do znalezienia " ++"takichwartoci parametrw jdra tick i frequency, eby zegar systemowy by " ++"zblionydo zegara sprztowego (zegara CMOS). Nastpnie zapisze ustawienia w " ++"plikukonfiguracyjnym /etc/default/adjtimex, dziki czemu wartoci te " ++"bdprzywrcane przy kadym starcie systemu w momencie wykonywania skryptu/" ++"etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Skrypt bdzie dziaa przez 70 sekund. Moesz te uruchomi " ++"wasnorcznieadjtimexconfig w dowolnym czasie lub dobra paramterty jdra w " ++"innysposb (zapoznaj si ze stron manuala adjtimex) i zapisa je w pliku/" ++"etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/nl.po ++++ adjtimex-1.23/debian/po/nl.po +@@ -0,0 +1,82 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2003-10-04 16:05+0100\n" ++"Last-Translator: Michiel Sikkes <michiel@sikkes.xs4all.nl>\n" ++"Language-Team: Dutch <debian-l10n-dutch@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Wilt u dat adjtimex bij elke installatie en bij elke opstartprocedure " ++"gedraaid wordt?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan gedraaid worden bij het opstarten van het systeem om de " ++"kerneltijd parameters in te stellen zoals gedefinieerd in /etc/default/" ++"adjtimex. Accepteer deze optie niet als u adjtimex wilt gebruiken om de " ++"huidige parameters te bekijken." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Wilt u dat adjtimexconfig bij het installeren wordt gedraaid?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Het adjtimexconfig script zal adjtimex gebruiken om de eigenschappen voor de " ++"kernelvariablen tick en frequency te vinden. Dit zal zorgen dat de " ++"systeemklok gelijk loopt met de hardware klok (ook bekend onder de naam CMOS " ++"klok). Het slaat deze eigenschappen op in het configuratiebestand /etc/" ++"default/adjtimex, dus de instellingen worden bij elke " ++"systeemopstartprocedure hersteld als /etc/init.d/adjtimex draait." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Het script doet er 70 seconden over om te draaien. Als alternatief kunt u " ++"adjtimexconfig later handmatig draaien, of de kerneleigenschappen op een " ++"andere manier bepalen (zie de adjtimex man-pagina) en deze zelf in /etc/" ++"default/adjtimex zetten." +--- adjtimex-1.23.orig/debian/po/da.po ++++ adjtimex-1.23/debian/po/da.po +@@ -0,0 +1,79 @@ ++# translation of adjtimex_1.16-1-da.po to Danish ++# translation of adjtimex_1.16-1_templates.po to Danish ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# Claus Hindsgaul <claus_h@image.dk>, 2004. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.16-1-da\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2004-03-24 17:57+0100\n" ++"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n" ++"Language-Team: Danish <dansk@klid.dk>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.3.1\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Skal adjtimex køres under installation og ved hver opstart?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan køres under opstart af systemet for at sætte kernens " ++"tidsparametre til værdierne i /etC/default/adjtimex. Acceptér ikke dette, " ++"hvis du kun vil bruge adjtimex til at gennemse de aktuelle parametre." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Skal adjtimexconfig køres under installationen?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skriftet adjtimexconfig vil bruge adjtimex til at finde de værdier til " ++"kernevariablene tick og frequency, der vil få systemuret til at passe med " ++"computerens indbyggede ur (CMOS-uret). Den gemmer derefter værdierne i " ++"opsætningsfilen /etc/default/edjtimex, så indstillingerne bliver sat under " ++"hver opstart, når skriptet /etC/init.d/adjtimex køres." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Det tager 70 sekunder at køre skriptet. Alternativt kan du selv køre " ++"adjtimexconfig senere, eller finde kernevariablene på en anden måde (se " ++"manualsiden adjtimex) og installere dem i /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/ja.po ++++ adjtimex-1.23/debian/po/ja.po +@@ -0,0 +1,78 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2003-11-21 00:02+0900\n" ++"Last-Translator: Hideki Yamane <henrich@samba.gr.jp>\n" ++"Language-Team: Japanese <debian-japanese@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=EUC-JP\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "adjtimex ȡεưưޤ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex ƥεưưƥͥλ֥ѥ /etc/" ++"default/adjtimex ͤꤹ뤳ȤǽǤ adjtimex ߤΥѥ" ++"Ĵˤ˻ȤȤưʤǤ" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "adjtimexconfig ȡưޤ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"adjtimexconfig ץȤ adjtimex Ѥơƥ९åϡɥ" ++"å (CMOS åȤƤΤƤޤ) Ȥ褽Ʊ褦˥" ++"ͥѿ tick frequency ͿͤĤޤơͤե" ++" /etc/default/adjtimex ¸뤳Ȥư /etc/init.d/adjtimex " ++"ưݤ꤬ޤ" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"ץȤư 70 äޤ̲ȤƤ adjtimexconfig ۤɼ¹" ++"롢ޤ¾ˡǥͥѿ (adjtimex man ڡ) /" ++"etc/default/adjtimex ؤԤʤɤǽǤ" +--- adjtimex-1.23.orig/debian/po/pt_BR.po ++++ adjtimex-1.23/debian/po/pt_BR.po +@@ -0,0 +1,82 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.16-1\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2004-01-17 20:55-0300\n" ++"Last-Translator: Andr Lus Lopes <andrelop@debian.org>\n" ++"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-1\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Executar o adjtimex durante a instalao e a cada reinicializao ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"O adjtimex pode ser executado na inicializao do sistema para definir " ++"parmetros de tempo de kernel para os valores em /etc/default/adjtimex. No " ++"aceite caso voc somente queira usar o adjtimex para inspecionar os " ++"parmetros atuais." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Executar o adjtimexconfig durante a instalao ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"O script adjtimex ir utilizar o adjtimex para encontrar valores para " ++"variveis de kernel tick e frequency que faro com que o relgio do sistema " ++"concorde aproimadamente com o relgio de hardware (tambm conhecido como " ++"relgio CMOS). Ele ir ento gravar esses valores no arquivo de " ++"configurao /etc/default/adjtimex de modo que as configuraes sejam " ++"restauradas a cada renicializao, quando o /etc/init.d/adjtimex executado." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"O script leva cerca de 70 segundos para ser executado. Alternativamente, " ++"voc pode executar o adjtimexconfig voc mesmo posteriormente, ou ainda " ++"determinar as variveis de kernel usando uma das diversas maneiras possveis " ++"(consulte a pgina de manul adjtimex) e instalar as mesmas em /etc/default/" ++"adjtimex." +--- adjtimex-1.23.orig/debian/po/de.po ++++ adjtimex-1.23/debian/po/de.po +@@ -0,0 +1,83 @@ ++# translation of adjtimex_1.21.1-2_de.po to German ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# ++# Erik Schanze <eriks@debian.org>, 2004-2007. ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.21.1-2_de\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2007-08-06 20:50+0200\n" ++"Last-Translator: Erik Schanze <eriks@debian.org>\n" ++"Language-Team: German <debian-l10n-german@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.11.4\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Soll Adjtimex nach der Installation und bei jedem Hochfahren gestartet " ++"werden?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex kann beim Hochfahren des Systems ablaufen, um die Zeitparameter im " ++"Kernel auf die Werte in /etc/defaults/adjtimex zu setzen. Stimmen Sie dem " ++"nicht zu, wenn Sie mit Adjtimex nur die aktuellen Parameter ermitteln wollen." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Soll »adjtimexconfig« zur Installation aufgerufen werden?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Das Skript »adjtimexconfig« nutzt Adjtimex, um die Werte der Kernelvariablen " ++"»tick« und »frequency« zu finden, damit die Systemuhr ungefähr mit der " ++"Rechneruhr (auch bekannt als CMOS-Uhr) übereinstimmt. Das Skript speichert " ++"diese Werte in der Konfigurationsdatei /etc/default/adjtimex, sodass die " ++"Einstellung bei jedem Systemstart wiederhergestellt wird, wenn /etc/init.d/" ++"adjtimex startet." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Das Skript benötigt 70 Sekunden, um durchzulaufen. Andererseits können Sie " ++"»adjtimexconfig« später selbst starten oder finden die Kernelvariablen auf " ++"einem anderen Weg (siehe Handbuchseite von Adjtimex) und speichern die Werte " ++"in der Datei /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/vi.po ++++ adjtimex-1.23/debian/po/vi.po +@@ -0,0 +1,75 @@ ++# Vietnamese Translation for adjtimex. ++# Copyright © 2005 Free Software Foundation, Inc. ++# Clytie Siddall <clytie@riverland.net.au>, 2005. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-4\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-05-04 15:44+0930\n" ++"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" ++"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=utf-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=1; plural=0\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Bạn có muốn chạy trình adjtimex khi cài đặt và mọi khi khởi động không?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Trình adjtimex (adjust time: điều chỉnh thời gian) thì có thể chạy khi khởi " ++"động hệ thống, để lập những tham số thời gian của hạt nhân thành những giá " ++"trị trong /etc/default/adjtimex. Đừng hiệu lực tùy chọn này nếu bạn chỉ muốn " ++"sử dụng trình adjtimex để kiểm tra những tham số hiện thời." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Bạn có muốn chạy tập lệnh adjtimexconfig khi cài đặt không?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Tập lệnh adjtimexconfig (adjust time configuration: điều chỉnh cấu hình thời " ++"gian) thì sẽ dùng trinh adjtimex để tìm giá trị cho biến hạt nhân «tick» và " ++"«frequency» để khớp đồng hồ hệ thống xấp xi với đồng hồ phần cứng (cũng được " ++"biết như là đồng hồ CMOS). Như thế thì nó lưu nhưng giá trị này trong tập " ++"tin cấu hình /etc/default/adjtimex vì vậy sẽ phục hồi cách thiết lập ấy mọi " ++"khi khởi động, khi chạy /etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Tập lệnh này chạy được 70 giây. Hoặc bạn có thể tự chạy tập lệnh " ++"adjtimexconfig vào lúc sau, hoặc quyết định những biến hạt nhân một của vài " ++"cách khác (hãy xem trang hướng dẫn: lệnh\n" ++"man adjtimex\n" ++"mà «man» là trình hiển thị trang hướng dẫn), và cài đặt chúng vào /etc/" ++"default/adjtimex." +--- adjtimex-1.23.orig/debian/po/cs.po ++++ adjtimex-1.23/debian/po/cs.po +@@ -0,0 +1,67 @@ ++# Czech translation of adjtimex templates ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-3\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-4-10 22:13+0200\n" ++"Last-Translator: Martin Sin <martin.sin@seznam.cz>\n" ++"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-2\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "M bt adjtimex sputn pi instalaci a pi kadm sputn?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex me bet pi kadm startu systmu a nastavit parametry jdra na " ++"hodnoty z /etc/default/adjtimex. Pi nesouhlasu bude adjtimex nastaven na " ++"zjitn aktulnch parametr." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "M bt adjtimexconfig sputn pi instalaci?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skript adjtimexconfig pouije adjtimex k nalezen hodnot pro promnn " ++"asovae a frekvence jdra tak, e nastav systmov hodiny piblin na " ++"hodnotu hardwarovch hodin (tak znmch jako CMOS hodiny). Pak ulo tyto " ++"hodnoty do konfiguranho souboru /etc/default/adjtimex aby mohlo bt " ++"nastaven obnoveno pi kadm startu, vdy pi sputn /etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Sputn skriptu zabere 70 sekund. Nebo mete spustit adjtimexconfig " ++"samostatn pozdji, ppadn urit promnn jdra jednm z nkolika rznch " ++"zpsob (podvejte se na manulovou strnku adjtimex) a umstte je do /etc/" ++"default/adjtimex." +--- adjtimex-1.23.orig/debian/po/pt.po ++++ adjtimex-1.23/debian/po/pt.po +@@ -0,0 +1,71 @@ ++# 2005-10-27 - Marco Ferra <mferra@sdf.lonestar.org> (initial translation) ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-10-27 01:11+0100\n" ++"Last-Translator: Marco Ferra <mferra@sdf.lonestar.org>\n" ++"Language-Team: Portuguese <traduz@debianpt.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Deve o adjtimex correr enquanto o instala e depois sempre que o sistema " ++"inicia?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"O adjtimex pode correr quando o sistema inicia para ajustar os paramêtros " ++"temporais do kernel para os valores especificados em /etc/default/adjtimex. " ++"Por favor recuse se apenas deseja usar o adjtimex para inspecionar os " ++"paramêtros actuais." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Deve o adjtimexconfig correr enquanto o instala?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"O script adjtimexconfig irá usar o comando adjtimex para encontrar os " ++"valores para variáveis do kernel que o farão aproximar e estar de acordo com " ++"o relógio por hardware (tambem conhecido pelo CMOS clock). Este então " ++"guarda esses valores no ficheiro /etc/default/adjtimex para que estes " ++"paramêtros sejam reavidos sempre que o sistema inicia, nomeadamente quando " ++"o /etc/init.d/adjtimex corre." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Este script demora 70 segundos a correr. De forma alternativa pode correr o " ++"adjtimexconfig por si próprio numa altura mais tarde ou determinar as " ++"variáveis do kernel de outras formas (leia a página do manual do adjtimex) e " ++"instale-os em /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/sv.po ++++ adjtimex-1.23/debian/po/sv.po +@@ -0,0 +1,77 @@ ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# Developers do not need to manually edit POT or PO files. ++# , fuzzy ++# ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-10-11 16:31+0200\n" ++"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" ++"Language-Team: Swedish <sv@li.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-1\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Ska adjtimex kras vid installation och vid varje uppstart?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan kra vid systemets uppstart fr att stta krntidsparametrar " ++"till vrdena i /etc/default/adjtimex. Acceptera inte om du bara vill anvnda " ++"adjtimex fr att inspektera de nuvarande parametrarna." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Ska adjtimexconfig kras vid installationstid?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skriptet adjtimexconfig kommer att anvnda adjtimex fr att hitta vrden fr " ++"krnvariablerna tick och frequency som gr att systemklockan kommer verens " ++"med hrdvaruklockan (ocks kallad CMOS-klockan). Den sparar sedan dessa " ++"vrden i konfigurationsfilen /etc/default/adjtimex s att instllningarna " ++"kommer att anvndas vid varje uppstart, nr /etc/init.d/adjtimex krs." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Skriptet tar 70 sekunder att kras. Alternativt kan du kra adjtimexconfig " ++"sjlv vid en senare tid eller bestmma variabler fr krnan p ett eller " ++"flera stt (se adjtimes manualsida) och installera dom i /etc/default/" ++"adjtimex)." +--- adjtimex-1.23.orig/debian/po/ru.po ++++ adjtimex-1.23/debian/po/ru.po +@@ -0,0 +1,80 @@ ++# translation of adjtimex_1.20-5_templates_ru.po to Russian ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# Yuri Kozlov <kozlov.y@gmail.com>, 2005. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: template_adjtimex_1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-11-07 19:24+0300\n" ++"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n" ++"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.9.1\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Должен adjtimex быть запущен сейчас и каждый раз при старте системы?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex можно запускать при старте системы для установки значений " ++"параметров времени ядра из файла /etc/default/adjtimex. Не соглашайтесь, " ++"если просто хотите использовать adjtimex для проверки текущих параметров." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Должен adjtimexconfig быть запущен сейчас?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Сценарий adjtimexconfig использует adjtimex для поиска значений переменных " ++"ядра импульса сигнала и частоты, которые помогают согласовывать системные " ++"часы с аппаратными часами (так называемые часы CMOS). Затем он сохраняет эти " ++"значения в конфигурационный файл /etc/default/adjtimex, для того чтобы " ++"восстанавливать их при каждой загрузке с помощью сценария /etc/init.d/" ++"adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Длительность работы сценария -- 70 секунд. В качестве альтернативы вы можете " ++"запустить adjtimexconfig вручную позже, или определить переменные ядра одним " ++"из нескольких других способов (смотрите страницу руководства по adjtimex) и " ++"сохранить их в файл /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/README.Debian ++++ adjtimex-1.23/debian/README.Debian +@@ -0,0 +1,21 @@ ++adjtimex for DEBIAN ++---------------------- ++ ++This is the Debian Linux prepackaged version of adjtimex. ++ ++This package was put together by Jim Van Zandt <jrv@debian.org>, ++who also maintains the program and therefore used the master sources. ++ ++further Information: ++ ++* adjtimex manpage ++* copying policy ++ /usr/share/doc/adjtimex/copyright ++ (or debian/copyright in the source package) ++* changelog for debian package ++ /usr/share/doc/adjtimex/changelog.Debian ++* adjtimex's README: ++ /usr/share/doc/adjtimex/README ++ ++ ++James R. Van Zandt <jrv@debian.org>, Sun, 7 Mar 1999 21:58:51 -0500 +--- adjtimex-1.23.orig/debian/templates ++++ adjtimex-1.23/debian/templates +@@ -0,0 +1,22 @@ ++Template: adjtimex/run_daemon ++Type: boolean ++Default: true ++_Description: Should adjtimex be run at installation and at every startup? ++ adjtimex can run at system startup to set the kernel time parameters to ++ the values in /etc/default/adjtimex. Don't accept if you just want to ++ use adjtimex to inspect the current parameters. ++ ++Template: adjtimex/compare_rtc ++Type: boolean ++Default: true ++_Description: Should adjtimexconfig be run at installation time? ++ The adjtimexconfig script will use adjtimex to find values for the kernel ++ variables tick and frequency that will make the system clock approximately ++ agree with the hardware clock (also known as the CMOS clock). It then ++ saves these values in the configuration file /etc/default/adjtimex so the ++ settings will be restored on every boot, when /etc/init.d/adjtimex runs. ++ . ++ The script takes 70 sec to run. Alternatively, you can run adjtimexconfig ++ yourself at a later time, or determine the kernel variables one of several ++ other ways (see the adjtimex man page) and install them in ++ /etc/default/adjtimex. +--- adjtimex-1.23.orig/debian/changelog ++++ adjtimex-1.23/debian/changelog +@@ -0,0 +1,530 @@ ++adjtimex (1.23-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): In case of absence of /etc/adjtime, do not fail, ++ and do not force users to manually create it with 0.0 ++ content. Instead, proceed assuming zero values (meaning RTC does not ++ drift). Also replace redundant code by a call to ++ get_cmos_adjustment(). README: Rewrite USAGE paragraph. Remove point ++ about creating zero adjfile. Document new behaviour without ++ adjfile. Remove reference to the long outdated clock(8). Update URL ++ for hwclock(8). (Thanks to Alain Guibert <alguibert@free.fr>, ++ closes:bug#445448) ++ ++ * adjtimex.c (busy_wait): timestamp more closely the RTC clock beat ++ (thanks to Alain Guibert <alguibert at free.fr>, see Debian ++ bug#443814). (usage): --directisa switch forces adjtimex to poll the ++ update-in-process (UIP) flag of the CMOS clock (thanks to Alain ++ Guibert <alguibert at free.fr>, closes:bug#443773). ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 06 Oct 2007 21:57:04 -0400 ++ ++adjtimex (1.22-1) unstable; urgency=low ++ ++ * New upstream release: fix these bugs in ntpdate output ++ interpretation (closes:bug#438718): ++ adjtimex has a bug in evaluating the output of ntpdate, because ++ 1. it assumes ntpdate outputs "adjust time server", but ntpdate ++ may output "step time server" also ++ 2. it doesnt stop at last line but as soon as it has found "filter ++ offset:" lines, and because of this it will not find the "offset ..." ++ information in the last line. ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 23 Sep 2007 12:51:52 -0400 ++ ++adjtimex (1.21.1-3) unstable; urgency=low ++ ++ * update German translation of debconf templates, thanks to Erik Schanze ++ <eriks@debian.org> and Helge Kreutzmann ++ <debian@helgefjell.de>(closes:#436080) ++ ++ * debian/rules don't ignore failure of "make distclean" ++ ++ * debian/adjtimex.init: make LSB compliant ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 06 Aug 2007 21:39:47 -0400 ++ ++adjtimex (1.21.1-2) unstable; urgency=low ++ ++ * Update French translation of debconf templates, thanks to Christian ++ Perrier <bubulle@debian.org> (closes:Bug#403472) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Jan 2007 18:10:32 -0500 ++ ++adjtimex (1.21.1-1) unstable; urgency=low ++ ++ * New upstream release. ++ ++ * adjtimex.c: don't declare adjtimex syscall (should already be getting ++ the declaration from sys/timex.h) Thanks to Andreas Jochens ++ <aj@andaco.de> (closes:#390989) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 Oct 2006 08:04:52 -0400 ++ ++adjtimex (1.21-2) unstable; urgency=low ++ ++ * Makefile: correct version number to 1.21 (error in importing upstream ++ sources) ++ ++ * debian/control: depend on po-debconf ++ ++ -- James R. Van Zandt <jrv@debian.org> Fri, 6 Oct 2006 20:41:00 -0400 ++ ++adjtimex (1.21-1) unstable; urgency=low ++ ++ * New upstream release. use /dev/rtc if available (closes:#196692). Use ++ heuristic to correct for DST changes or lacking --utc flag ++ (closes:#308396). check return code in probe_time() so if root ++ privileges are needed (e.g. "adjtimex -r") and lacking, command will ++ fail rather than printing bogus results. (closes:#364060) ++ ++ * debian/postinst: start with invoke-rc.d if available (closes:#367746) ++ ++ * debian/control: update to policy 3.7.2 ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 20 May 2006 08:33:05 -0400 ++ ++adjtimex (1.20-7) unstable; urgency=low ++ ++ * debian/README.Debian: correct references to files, which are no longer ++ in /usr/doc/adjtimex (closes:#365761) ++ * debian/rules: declare debhelper compat level 5 ++ * debian/control: build-depends on debhelper ver 5 ++ ++ -- James R. Van Zandt <jrv@debian.org> Thu, 4 May 2006 21:54:33 -0400 ++ ++adjtimex (1.20-6) unstable; urgency=low ++ ++ * control: depend on debconf | debconf-2.0 (closes: #331733), update to ++ policy 3.6.2 ++ * debian/po/de.po: fix spelling error in German translation, thanks to ++ Philipp Meier <meier@meisterbohne.de> (closes: #279254) ++ * debian/po/sv.po: Swedish translation for debconf template, courtesy ++ of Daniel Nylander <yeager@lidkoping.net> (closes: #333124) ++ * debian/po: Add Portugese translation for debconf template, courtesy of ++ Miguel Figueiredo <elmig@debianpt.org> (closes: #336333) ++ * debian/po: Add Russian translation for debconf template, courtesy of ++ Yuri Kozlov <kozlov.y@gmail.com> (closes: #337967) ++ * debian/copyright: update FSF address. ++ ++ -- James R. Van Zandt <jrv@debian.org> Fri, 25 Nov 2005 21:04:08 -0500 ++ ++adjtimex (1.20-5) unstable; urgency=low ++ ++ * debian/po/vi.po: Vietnamese translation for debconf template, courtesy ++ of Clytie Siddall <clytie@riverland.net.au> (closes:Bug#307600) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 May 2005 11:58:47 -0400 ++ ++adjtimex (1.20-4) unstable; urgency=low ++ ++ * debian/po/cs.po: Czech translation for debconf template, courtesy of ++ Martin Šín <martin.sin@seznam.cz> (closes:Bug#304377) ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 25 Apr 2005 20:14:42 -0400 ++ ++adjtimex (1.20-3) unstable; urgency=low ++ ++ * debian/adjtimex.init: adjust printout to conform to Debian standard, ++ output error to stderr (Thanks to Thomas Hood, closes:bug#294824) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 13 Mar 2005 17:20:28 -0500 ++ ++adjtimex (1.20-2) unstable; urgency=low ++ ++ * debian/po/de.po: replace corrupted file (closes: #250250) ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 20 Sep 2004 20:08:47 -0400 ++ ++adjtimex (1.20-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): in "compare" or "adjust", return immediately ++ after printing last result, instead of sleeping an extra $interval ++ seconds. (Thanks to Alain Guibert <derogaton at oreka.com>, ++ closes:Bug#243652) ++ ++ * postinst: remove /etc/rcS.d/S20adjtimex link if configured not to run ++ at startup (thanks to Mario 'BitKoenig' Holbe, closes:Bug#267229) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 19 Sep 2004 12:41:37 -0400 ++ ++adjtimex (1.19-1) unstable; urgency=high ++ ++ * copyright: report upstream source address (closes:Bug#269691) ++ ++ * control: don't depend on either mawk or awk, since either works and ++ awk is required (closes:Bug#267228) ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): Account for the current frequency value ++ when calculating the recommended frequency value. Simplify ++ calculation of recommended tick. (compare): print estimated system ++ error in ppm instead of obscure "second diff". ++ ++ * adjtimex.8: use 2^16 instead of the more obscure 1<<16. ++ ++ * adjtimex.c: revert to poll-wait instead of using /dev/rtc, because the ++ latter only provides time with one second precision and so gives ++ wildly inaccurate adjustments. (closes:Bug#269498,Bug#265839) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 11 Sep 2004 16:01:52 -0400 ++ ++adjtimex (1.18-1.1) unstable; urgency=medium ++ ++ * Non-maintainer upload prepared by Joshua Kwan and Ken Bloom. ++ * Applied patch from Jurij Smakov <jurij@wooyd.org> to #263401: ++ - Fixes the regular expression used to extract the baseline value ++ from the adjtimex output. Closes: #263401 ++ - Replaces non-POSIX compliant calls to ('tail -1') by the ++ POSIX-compliant ones ('tail -n 1') ++ - Cosmetic changes to the adjtimexconfig output, making it ++ consistent with the general Debian style. ++ * Add German debconf template translations (closes: #250250) ++ ++ -- Ken Bloom <kabloom@ucdavis.edu> Thu, 12 Aug 2004 23:34:33 -0700 ++ ++adjtimex (1.18-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * call reset_time_status() only when explicitly told to (thanks to Alain ++ Guibert <derogaton at oreka.com>, closes:bug#243031) ++ ++ * Add debconf translations for Japanese (closes:bug#223462), Danish ++ (closes:bug#239865), and Brazilian Portuguese (closes:bug#228281). ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 11 Apr 2004 18:32:33 -0400 ++ ++adjtimex (1.17-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * control: compliant with Debian policy version 3.6.1 ++ ++ * es.po: decode "quoted-printable" encoding. ++ ++ * adjtimex.c: update email ++ (main): If adjtimex() returns an error, print HZ and legal ranges ++ for tick and freq. (thanks to Sami Farin <safari at iki.fi>) ++ (review): calculate reasonable tick and frequency when HZ != 100. ++ (cmos_init): use /dev/rtc when available (thanks to Richard ++ Henderson <rth at twiddle.net>). ++ ++ * adjtimex.c: --status switch sets clock status (courtesy of Alain ++ Guibert <derogaton at oreka.com>) (closes:bug#242732) ++ ++ * adjtimexconfig: set reasonable tick and frequency when HZ != ++ 100. (closes:Bug#241726) ++ ++ * adjtimex.c (longopt): fix spelling to match documentation: --esterror ++ and --maxerror (thanks to Alain Guibert) (fixes:Bug#241863) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 3 Apr 2004 21:13:09 -0500 ++ ++adjtimex (1.16-3) unstable; urgency=low ++ ++ * Dutch translation of gettext debconf templates (courtesy of Michiel Sikkes, closes:bug#215162) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 12 Oct 2003 17:33:55 -0400 ++ ++adjtimex (1.16-2) unstable; urgency=low ++ ++ * Polish translation of gettext debconf templates (courtesy of Bartosz ++ Zapalowski, closes:bug#208955) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Sep 2003 16:26:30 -0400 ++ ++adjtimex (1.16-1) unstable; urgency=low ++ ++ * New upstream release (closes:Bug#204382)(closes:Bug#204377) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Aug 2003 20:52:32 -0400 ++ ++adjtimex (1.15.1-2) unstable; urgency=low ++ ++ * gettext-based debconf templates (closes:bug#205788) ++ * French translation of gettext debconf templates (closes:Bug#206430) ++ * Spanish translation of gettext debconf templates (closes:Bug#197485) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 24 Aug 2003 18:01:56 -0400 ++ ++adjtimex (1.15.1-1) unstable; urgency=low ++ ++ * New upstream release. Add explicit newlines in multi-line help text ++ (closes:bug#194858) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 31 May 2003 20:53:14 -0400 ++ ++adjtimex (1.15-1) unstable; urgency=low ++ ++ * New upstream release. Now compiles on ia64 (closes:bug#141655). ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 30 Apr 2003 19:38:11 -0400 ++ ++adjtimex (1.14-1) unstable; urgency=low ++ ++ * New Upstream Release. Expanded documentation (closes:bug#142967) ++ * convert to debhelper ++ * debian/control: depend on debconf ++ * debian/postinst: configure adjtimex to run on startup, and run ++ adjtimexconfig on installation, only if asked by sysadmin (via ++ debconf) (closes:bug#158047) ++ * debian/postrm: purge debconf db entry ++ * debian/adjtimexconfig: config file is now /etc/default/adjtimex ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 27 Apr 2003 21:28:40 -0400 ++ ++adjtimex (1.13-1) unstable; urgency=low ++ ++ * New upstream release (closes:Bug#127483) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 6 Jan 2002 21:06:23 -0500 ++ ++adjtimex (1.12-3) unstable; urgency=low ++ ++ * New maintainer email (fix remaining references) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 15:25:06 -0500 ++ ++adjtimex (1.12-2) unstable; urgency=low ++ ++ * New maintainer email ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 13:24:59 -0500 ++ ++adjtimex (1.12-1) unstable; urgency=low ++ ++ * New upstream release ++ * debian/control: move Build-Depends entry to source section ++ (closes:bug#91928). Policy version 3.5.2 ++ * debian/rules: by default, compile without -g option. Honor ++ DEB_BUILD_OPTIONS. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 22 Nov 2000 01:37:58 -0500 ++ ++adjtimex (1.11-3) unstable; urgency=low ++ ++ * adjtimexconfig: install new values in /etc/adjtimex.conf rather than ++ the startup script /etc/init.d/adjtimex (thanks to Zsolt Szabo ++ <szazs@mm.bme.hu>). ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Sep 2000 09:34:58 -0400 ++ ++adjtimex (1.11-2) unstable; urgency=low ++ ++ * build-depends on debmake ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Sep 2000 13:50:02 -0400 ++ ++adjtimex (1.11-1) unstable; urgency=low ++ ++ * /etc/init.d/adjtimex: restart|force-reload also run adjtimex ++ (closes:bug#69514), add comment explaining precedence of ++ /etc/adjtimex.conf ++ ++ * New upstream release ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 28 Aug 2000 21:19:48 -0400 ++ ++adjtimex (1.10-1) frozen unstable; urgency=high ++ ++ * New upstream release - security fix: use popen() to recover output from ++ ntpdate, instead of an unsafe temporary file (thanks to Colin Phipps ++ <crp22@cam.ac.uk>) (closes:bug#56752) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 1 Feb 2000 21:29:03 -0500 ++ ++adjtimex (1.9-2) unstable; urgency=low ++ ++ * Suggest ntpdate (closes:bug#56751) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 31 Jan 2000 19:26:16 -0500 ++ ++adjtimex (1.9-1) unstable; urgency=low ++ ++ * New upstream release ++ * Removed pointer to /usr/doc/copyright/GPL ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 3 Jan 2000 21:34:59 -0500 ++ ++adjtimex (1.8.1-1) unstable; urgency=low ++ ++ * New upstream release (closes:bug#52637) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 16 Dec 1999 20:13:43 -0500 ++ ++adjtimex (1.8-4) unstable; urgency=low ++ ++ * Change references from /usr/sbin/adjtimex to /sbin/adjtimex in ++ adjtimexconfig ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 2 Nov 1999 20:21:48 -0500 ++ ++adjtimex (1.8-3) unstable; urgency=low ++ ++ * *Really* install binary into /sbin, so it is available ++ even if /usr is not mounted (closes:Bug#44399) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Oct 1999 17:57:57 -0400 ++ ++adjtimex (1.8-2) unstable; urgency=low ++ ++ * Install compatibility symlink /usr/doc/adjtimex. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Oct 1999 10:54:01 -0400 ++ ++adjtimex (1.8-1) unstable; urgency=low ++ ++ * New upstream release: Install binary into /sbin, so it is available ++ even if /usr is not mounted (closes:Bug#44399) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 6 Sep 1999 13:08:15 -0400 ++ ++adjtimex (1.7-2) unstable; urgency=low ++ ++ * Link against glibc2.1 ++ * Upgrade to FHS ++ * Include full license statement in copyright file ++ * Revise GPL reference in copyright file ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 4 Sep 1999 12:04:34 -0400 ++ ++adjtimex (1.7-1) unstable; urgency=low ++ ++ * install configuration file in /etc/init.d rather than /etc/rc.boot ++ closes: #30120, #32436. ++ * New upstream release (incorporates Paul Slootman's alpha patch) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 28 Nov 1998 20:33:38 -0500 ++ ++adjtimex (1.6-2) unstable; urgency=low ++ ++ * corrected reference in man page: clock -> hwclock (Bug#27854) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 24 Oct 1998 14:40:45 -0400 ++ ++adjtimex (1.6-1.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * changed architecture back to 'any'. Why should it be i386 only? ++ * don't use syscall1() to declare adjtimex() for Alpha ++ ++ -- Paul Slootman <paul@debian.org> Tue, 8 Sep 1998 20:42:52 +0200 ++ ++adjtimex (1.6-1) unstable; urgency=low ++ ++ * New upstream release: Default log file is "/var/log/clocks.log". ++ Create log file if it does not exist. (Bug#25834) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 22 Aug 1998 20:33:22 -0400 ++ ++adjtimex (1.5-3) unstable; urgency=low ++ ++ * architecture is i386 only ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 29 Jun 1998 19:35:22 -0400 ++ ++adjtimex (1.5-2) unstable; urgency=low ++ ++ * eliminate question in postinst, by eliminating postinst entirely ++ (Bug#22288) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 7 Jun 1998 20:51:42 -0400 ++ ++adjtimex (1.5-1) frozen unstable; urgency=low ++ ++ * New upstream release. No functional changes, but adjtimex is now ++ covered by the GNU GPL. (Bug#21358) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 20 Apr 1998 21:38:53 -0400 ++ ++adjtimex (1.4-2) unstable; urgency=low ++ ++ * Ensure that changelog is compressed *before* calculating md5sum ++ (Bug#19266) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 14 Mar 1998 20:47:52 -0500 ++ ++adjtimex (1.4-1) unstable; urgency=low ++ ++ * New upstream release. Log times for long-term estimation of drifts. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 11 Dec 1997 21:48:01 -0500 ++ ++adjtimex (1.3-3) stable; urgency=medium ++ ++ * Moved temporary files from /tmp to /etc, to eliminate security ++ hole (bug #11610). ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Aug 1997 11:34:48 -0400 ++ ++adjtimex (1.3-2) stable; urgency=medium ++ ++ * Removed conflict with xntp, since ntpdate from the xntp package ++ is still compatible with adjtimex. ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Wed, 12 Mar 1997 21:01:05 -0500 ++ ++adjtimex (1.3-1) unstable; urgency=HIGH ++ ++ * New upstream version: Previous version allows 2.0 kernel to reset ++ the CMOS clock periodically. Now using different method of ++ preventing this. ++ * New --compare switch to compare system and CMOS clocks (replacing ++ the separate program clockdiff) and suggest better values of time ++ parameters. New --adjust switch to actually install the suggested ++ values. GNU format long switches, including --help and --version. ++ * Revised conftimex to use --adjust switch instead of clockdiff. ++ * Renamed conftimex to adjtimexconfig per Debian recommendation. ++ * Added conftimex man page. ++ * Revised messages in postinst to better explain what is going on. ++ * Conflicts with xntp ++ * New maintainer ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sat, 1 Mar 1997 18:03:35 -0500 ++ ++adjtimex (1.2-5) unstable; urgency=LOW ++ ++ * New packaging format ++ * Corrected comment in /etc/rc.boot/adjtimex ++ * Corrected the installation of doc files ++ ++ -- Michael Meskes <meskes@debian.org> Wed, 18 Sep 1996 09:22:51 +0200 ++ ++Fri May 17 12:48:07 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-1): ++ ++ * Added Debian Linux package maintenance system files. ++ ++Fri May 17 20:39:30 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-2): ++ ++ * Corrected mode for /etc/rc.boot/adjtimex ++ ++ * Added conftimex script ++ ++ * Automatically configure system ++ ++Sun Jun 30 13:17:53 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-3): ++ ++ * Corrected rules file for new naming scheme ++ ++ * Gzip manpage ++ ++ * Strip binaries ++ ++Tue Jul 2 10:01:35 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-4): ++ ++ * Really say what we're doing in postinst (Bug#3474) ++ ++ +--- adjtimex-1.23.orig/debian/dirs ++++ adjtimex-1.23/debian/dirs +@@ -0,0 +1,4 @@ ++usr/bin ++usr/sbin ++sbin ++usr/share/man/man8 +--- adjtimex-1.23.orig/debian/postrm ++++ adjtimex-1.23/debian/postrm +@@ -0,0 +1,25 @@ ++#! /bin/sh -e ++ ++case "$1" in ++ purge) ++ rm -f /etc/adjtimex.conf /etc/default/adjtimex ++ update-rc.d adjtimex remove >/dev/null ++ if [ -e /usr/share/debconf/confmodule ]; then ++ # Source debconf library. ++ . /usr/share/debconf/confmodule ++ # Remove my changes to the db. ++echo "removing debconf db entries" ++ db_purge ++echo "removed debconf db entries" ++ fi ++ ;; ++ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ++ exit 0 ++ ;; ++ *) ++ echo "postrm called with unknown argument \`$1'" >&2 ++ exit 0 ++ ;; ++esac ++ ++#DEBHELPER# +--- adjtimex-1.23.orig/debian/copyright ++++ adjtimex-1.23/debian/copyright +@@ -0,0 +1,28 @@ ++This package was debianized by James R. Van Zandt jrv@debian.org on ++Thu, 11 Dec 1997 21:48:01 -0500. ++ ++This package was put together by Jim Van Zandt <jrv@debian.org>, ++who also maintains the program and therefore used the master sources. ++ ++Copyright: ++ ++adjtimex is Copyright (C) 1997 Steven S. Dick and James R. Van Zandt ++ ++ 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; version 2 dated June, ++ 1991, or 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 Public ++License can be found in `/usr/share/common-licenses/' ++ +--- adjtimex-1.23.orig/debian/rules ++++ adjtimex-1.23/debian/rules +@@ -0,0 +1,113 @@ ++#!/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 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++ ++package=adjtimex ++ ++CFLAGS = -Wall -g ++INSTALL = install ++INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 ++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 ++INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755 ++INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755 ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++CFLAGS += -O0 ++else ++CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++INSTALL_PROGRAM += -s ++endif ++ ++ ++config.status: configure ++ dh_testdir ++ # configure the package. ++ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info ++ ++ ++build: build-stamp ++ ++build-stamp: config.status ++ dh_testdir ++ ++ # compile the package. ++ $(MAKE) CFLAGS="$(CFLAGS)" ++ #/usr/bin/docbook-to-man debian/adjtimex.sgml > adjtimex.1 ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # clean up after the build process. ++ debconf-updatepo ++ [ ! -f Makefile ] || $(MAKE) veryclean ++ rm -rf adjtimex *.o config.* ++ -test -r /usr/share/misc/config.sub && \ ++ cp -f /usr/share/misc/config.sub config.sub ++ -test -r /usr/share/misc/config.guess && \ ++ cp -f /usr/share/misc/config.guess config.guess ++ ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # install the package into debian/$(package). ++ $(INSTALL_PROGRAM) adjtimex $(CURDIR)/debian/$(package)/sbin ++ $(INSTALL_SCRIPT) debian/adjtimexconfig \ ++ $(CURDIR)/debian/$(package)/usr/sbin/adjtimexconfig ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installlogrotate ++# dh_installemacsen ++# dh_installpam ++# dh_installmime ++ dh_installinit -n ++ dh_installcron ++ dh_installman adjtimex.8 debian/adjtimexconfig.8 ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs ChangeLog ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# 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 +--- adjtimex-1.23.orig/debian/docs ++++ adjtimex-1.23/debian/docs +@@ -0,0 +1,2 @@ ++README ++README.ru +--- adjtimex-1.23.orig/debian/adjtimexconfig ++++ adjtimex-1.23/debian/adjtimexconfig +@@ -0,0 +1,67 @@ ++#!/bin/sh ++ ++conffile=/etc/default/adjtimex ++startfile=/etc/init.d/adjtimex ++ ++echo -n "Comparing clocks (this will take 70 sec)..." ++ ++# Get the parameters ++ ++/sbin/adjtimex --print --tick 0 >/etc/adj.adjust 2>/dev/null ++baseline=`awk '/<= tick/{print ($1+$NF)/2}' /etc/adj.adjust` ++hz=`awk '/USER_HZ/{print $3}' /etc/adj.adjust` ++/sbin/adjtimex --tick $baseline --frequency 0 ++/sbin/adjtimex --adjust >/etc/adj.adjust ++echo "done." ++ticks=`tail -n 1 /etc/adj.adjust|awk '{print $6}'` ++freq=`tail -n 1 /etc/adj.adjust|awk '{print $7}'` ++# cat /etc/adj.adjust ++# echo hz=$hz baseline=$baseline ticks=$ticks freq=$freq ++rm /etc/adj.adjust ++adjt=`awk "BEGIN{print (($ticks-$baseline)*$hz + $freq/65536.)*.0864}"` ++echo -n "Adjusting system time by ${adjt} sec/day to agree with CMOS clock..." ++ ++# Recreate /etc/adjtimex.conf if necessary ++ ++if [ -f $conffile ]; then ++# echo "using existing $conffile"; ++ true; ++else ++cat >$conffile <<EOF ++# $conffile - configuration file for adjtimex(8) ++# ++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig ++# ++# This file is sourced by $startfile ++# ++TICK=$TICK ++FREQ=$FREQ ++ ++EOF ++fi ++ ++# Reset values in $conffile ++ ++sed -e "s/^TICK=.*/TICK=$ticks/" \ ++ -e "s/^FREQ=.*/FREQ=$freq/" \ ++ $conffile >$conffile.TMP && \ ++ mv $conffile.TMP $conffile ++ ++# grep "TICK=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.tick ++# grep "FREQ=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.freq ++# ++# TICKLINE="`echo -n "TICK="$ticks" # old: "; cat /etc/adj.tick`" ++# FREQLINE="`echo -n "FREQ="$freq" # old: "; cat /etc/adj.freq`" ++# ++# cp /etc/init.d/adjtimex /etc/init.d/adjtimex.TMP ++# sed -e "s/^TICK=.*/$TICKLINE/" -e "s/^FREQ=.*/$FREQLINE/" \ ++# < /etc/init.d/adjtimex.TMP > /etc/init.d/adjtimex ++# ++# if [ -s /etc/init.d/adjtimex ] ++# then ++# rm -f /etc/init.d/adjtimex.TMP ++# fi ++# rm -f /etc/adj.tick /etc/adj.freq /etc/adj.adjust ++rm -f /etc/adj.adjust ++echo "done." ++ +--- adjtimex-1.23.orig/debian/adjtimexconfig.8 ++++ adjtimex-1.23/debian/adjtimexconfig.8 +@@ -0,0 +1,41 @@ ++.\"{{{ Title Emacs major mode should be: -*- nroff -*- ++.TH ADJTIMEXCONFIG 8 "April 27, 2003" ++.\"}}} ++.\"{{{ Name ++.SH NAME ++adjtimexconfig \- find kernel clock variables and save for reboots ++.\"}}} ++.\"{{{ Synopsis ++.SH SYNOPSIS ++.ad l ++.\" commands only ++.B /sbin/adjtimexconfig ++.\"}}} ++.\"{{{ Config ++.SH DESCRIPTION ++This script uses \fBadjtimex\fP(8) to find values for the kernel ++variables \fBtick\fP and \fBfrequency\fP that will make the system ++clock approximately agree with the CMOS clock. It then saves these ++values in the configuration file \fI/etc/default/adjtimex\fP so the ++settings will be restored on every boot, when ++\fI/etc/init.d/adjtimex\fP runs. ++.P ++\fPadjtimexconfig\fP uses the drift rate recorded in ++\fI/etc/adjtime\fP to adjust the times it reads from the CMOS clock. ++If you find the CMOS clock has a systematic drift, read the ++\fBclock\fP(8) or \fBhwclock\fP(8) manual page, modify ++\fI/etc/adjtime\fP as required, and run \fBadjtimexconfig\fP again. ++.SH AUTHOR ++Michael Meskes <meskes@debian.org>. ++.\"}}} ++.\"{{{ ++.SH FILES ++.nf ++\fI/etc/default/adjtimex\fP ++\fI/etc/init.d/adjtimex\fP ++.fi ++.\"}}} ++.\"{{{ See also ++.SH "SEE ALSO" ++.BR adjtimex "(8), "clock "(8), "hwclock "(8), "ntpd (8) ++.\"}}} +--- adjtimex-1.23.orig/debian/config ++++ adjtimex-1.23/debian/config +@@ -0,0 +1,8 @@ ++#! /bin/sh -e ++ ++# Source debconf library. ++. /usr/share/debconf/confmodule ++ ++db_input medium adjtimex/run_daemon || true ++db_input medium adjtimex/compare_rtc || true ++db_go +--- adjtimex-1.23.orig/debian/postinst ++++ adjtimex-1.23/debian/postinst +@@ -0,0 +1,119 @@ ++#! /bin/sh ++ ++set -e ++ ++# Source debconf library. ++. /usr/share/debconf/confmodule ++ ++# old scripts ++oldfile=/etc/adjtimex.conf ++olderfile=/etc/rc.boot/adjtimex ++# new starting script ++startfile=/etc/init.d/adjtimex ++# new configuration file ++conffile=/etc/default/adjtimex ++ ++create_adjtimex_conf() ++{ ++ ++ TICK=10000 ++ FREQ=0 ++ ++ if [ -f $oldfile ]; then ++ TICK=`awk ' ++ BEGIN{tick=10000;} ++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,""); ++ tick=$0+0; ++ } ++ END {print tick;} ++ ' $oldfile` ++ ++ FREQ=`awk ' ++ BEGIN{freq=0;} ++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,""); ++ freq=$0+0; ++ } ++ END {print freq;} ++ ' $oldfile` ++ ++# echo "parameters from $oldfile: TICK=$TICK FREQ=$FREQ"; ++ else ++ if [ -f $olderfile ]; then ++ TICK=`awk ' ++ BEGIN{tick=10000;} ++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,""); ++ tick=$0+0; ++ } ++ END {print tick;} ++ ' $olderfile` ++ ++ FREQ=`awk ' ++ BEGIN{freq=0;} ++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,""); ++ freq=$0+0; ++ } ++ END {print freq;} ++ ' $olderfile` ++ ++# echo "parameters from $olderfile: TICK=$TICK FREQ=$FREQ"; ++ fi ++ fi ++ ++ if [ -f $conffile ]; then ++# echo "using existing $conffile"; ++ true; ++ else ++ if [ -d /etc/default ]; then true; else mkdir /etc/default; fi ++ cat >$conffile <<EOF ++# $conffile - configuration file for adjtimex(8) ++# ++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig ++# ++# This file is sourced by $startfile ++# ++TICK=$TICK ++FREQ=$FREQ ++ ++EOF ++ fi ++ ++ rm -f $oldfile $olderfile ++} ++ ++ ++case "$1" in ++ configure) ++ ++ create_adjtimex_conf ++ ++ db_get adjtimex/run_daemon ++ if [ "$RET" = "true" ]; then ++ update-rc.d adjtimex start 20 S . >/dev/null ++ ++ if which invoke-rc.d >/dev/null 2>&1; then ++ invoke-rc.d adjtimex start ++ else ++ /etc/init.d/adjtimex start ++ fi ++ fi ++ ++ db_get adjtimex/compare_rtc ++ if [ "$RET" = "true" ]; then ++ /usr/sbin/adjtimexconfig ++ fi ++ ++ ;; ++ abort-upgrade|abort-remove|abort-deconfigure) ++ exit 0 ++ ;; ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 0 ++ ;; ++esac ++ ++#DEBHELPER# +--- adjtimex-1.23.orig/debian/adjtimex.init ++++ adjtimex-1.23/debian/adjtimex.init +@@ -0,0 +1,45 @@ ++#!/bin/sh ++# ++# Run ADJTIMEX at startup. ++ ++### BEGIN INIT INFO ++# Provides: adjtimex ++# Required-Start: ++# Required-Stop: ++# Should-Start: ++# Should-Stop: ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: set the kernel time variables ++# Description: set the kernel time variables ++### END INIT INFO ++ ++test -x /sbin/adjtimex || exit 0 ++ ++# default values ++TICK=10000 ++FREQ=0 ++ ++# values in $cfg take precedence over the values here ++cfg=/etc/default/adjtimex ++ ++if [ -f $cfg ]; then ++ . $cfg ++fi ++ ++case "$1" in ++ start|restart|force-reload) ++ echo -n "Regulating system clock..." ++ /sbin/adjtimex -tick "$TICK" -frequency "$FREQ" ++ echo "done." ++ ;; ++ stop|status) ++ ;; ++ *) ++ echo "/etc/init.d/adjtimex: unknown command $1" >&2 ++ echo "Usage: /etc/init.d/adjtimex {start|stop|restart|force-reload}" >&2 ++ exit 3 ++ ;; ++esac ++ ++exit 0 +--- adjtimex-1.23.orig/debian/adjust ++++ adjtimex-1.23/debian/adjust +@@ -0,0 +1,15 @@ ++ mode: 16384 ++ offset: 0 ++ frequency: 0 ++ maxerror: 0 ++ esterror: 0 ++ status: 0 ++time_constant: 0 ++ precision: 0 ++ tolerance: 0 ++ tick: 0 ++ raw time: 0s 0us = 0.000000 ++for this kernel: ++ USER_HZ = 100 (nominally 100 ticks per second) ++ 9000 <= tick <= 11000 ++ -33554432 <= frequency <= 33554432 +--- adjtimex-1.23.orig/debian/compat ++++ adjtimex-1.23/debian/compat +@@ -0,0 +1 @@ ++5 +--- adjtimex-1.23.orig/Makefile ++++ adjtimex-1.23/Makefile +@@ -0,0 +1,70 @@ ++# Generated automatically from Makefile.in by configure. ++#### Start of system configuration section. -*-makefile-*- #### ++ srcdir = . ++ ++VERSION=1.22 ++ ++CFLAGS = -g -O2 -Wall ++prefix = /usr ++man1dir=${prefix}/share/man/man1 ++exec_prefix = ${prefix} ++bindir=/sbin ++ ++INSTALL=/usr/bin/install -c ++ ++# Extension (not including `.') for the manual page filenames. ++manext = 8 ++# Where to put the manual pages. ++mandir = $(prefix)/share/man/man$(manext) ++ ++#### End of system configuration section. #### ++ ++SHELL = /bin/sh ++ ++SRC = adjtimex.c adjtimex.8 mat.c mat.h install-sh configure.in \ ++ configure Makefile.in README README.ru adjtimex.lsm adjtimex.lsm.in \ ++ COPYING COPYRIGHT ChangeLog ++ ++all: adjtimex adjtimex.lsm ++ ++adjtimex: adjtimex.c mat.o ++ $(CC) $(CFLAGS) -I. -DVERSION=\"$(VERSION)\" -o adjtimex adjtimex.c \ ++ mat.o -lm ++ ++adjtimex.lsm: adjtimex.lsm.in Makefile.in ++ sed -e 's/@VERSION@/$(VERSION)/' \ ++ -e "s/@DATE@/`date +%d%b%y|tr [a-z] [A-Z]`/" \ ++ adjtimex.lsm.in >adjtimex.lsm ++ ++mat.o: mat.c ++ $(CC) $(CFLAGS) -c mat.c ++ ++install: all ++ $(INSTALL) -g bin -m 755 -o root adjtimex $(bindir)/adjtimex ++ $(INSTALL) -d -g root -m 755 -o root $(mandir) ++ -$(INSTALL) -g root -m 644 -o root $(srcdir)/adjtimex.8 \ ++ $(mandir)/adjtimex.$(manext) ++ ++uninstall: ++ rm -f $(bindir)/adjtimex $(mandir)/adjtimex.$(manext) ++ ++clean: ++ rm -f core *.o ++veryclean: clean ++ rm -f adjtimex ++ ++shar: $(SRC) ++ distname=adjtimex-$(VERSION); \ ++ shar $(SRC) >$$distname.shar ++ ++dist: $(SRC) ++ distname=adjtimex-$(VERSION); \ ++ rm -fr $$distname; \ ++ mkdir $$distname; \ ++ for file in $(SRC); do \ ++ ln $$file $$distname/$$file \ ++ || { echo copying $$file instead; cp -p $$file $$distname/$$file;}; \ ++ done; \ ++ chmod -R a+rX $$distname; \ ++ tar -chz -f $$distname.tar.gz $$distname; \ ++ rm -fr $$distname diff --git a/source/a/util-linux-ng/doinst.sh b/source/a/util-linux-ng/doinst.sh new file mode 100644 index 00000000..678c228f --- /dev/null +++ b/source/a/util-linux-ng/doinst.sh @@ -0,0 +1,23 @@ +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.serial.new: +if [ -e etc/rc.d/rc.serial ]; then + cp -a etc/rc.d/rc.serial etc/rc.d/rc.serial.new.incoming + cat etc/rc.d/rc.serial.new > etc/rc.d/rc.serial.new.incoming + mv etc/rc.d/rc.serial.new.incoming etc/rc.d/rc.serial.new +fi + +config etc/rc.d/rc.serial.new +config etc/serial.conf.new + diff --git a/source/a/util-linux-ng/net-tools.diff b/source/a/util-linux-ng/net-tools.diff new file mode 100644 index 00000000..a19af202 --- /dev/null +++ b/source/a/util-linux-ng/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/a/util-linux-ng/net-tools_1.60-19.diff b/source/a/util-linux-ng/net-tools_1.60-19.diff new file mode 100644 index 00000000..f754f02d --- /dev/null +++ b/source/a/util-linux-ng/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 entres ARP configurer sont ++.BR nom_de_fichier . ++Ceci peut tre utilis si les entres ARP configurer sont + nombreuses. Le nom du fichier de donnes est trs souvent nomm + .B /etc/ethers + , mais ce n'est pas officiel. +@@ -160,8 +160,8 @@ + .LP + Chaque entre complte se trouvant dans le cache ARP est marque de + l'indicateur +-.B C +-. Les entres permanentes sont marques de l'indicateur ++.BR C . ++Les entres permanentes sont marques de l'indicateur + .B M + et les entres '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 systme tel qu'il est retourn par la fonction +-.BR getdomainname (2) +-. Ceci est connu comme nom de domaine YP/NIS du systme. ++.BR getdomainname (2). ++Ceci est connu comme nom de domaine YP/NIS du systme. + + + .LP +@@ -145,8 +145,8 @@ + .LP + La faon dont vous pouvez le changer dpend 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 rseau + .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 rseau ++.BR promiscuous . ++S'il est valid, tous les paquets circulant sur le rseau + seront reus 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 rseau ++.BR all-multicast . ++S'il est valid, tous les paquets multicast circulant sur le rseau + seront reus sur cette interface. + .TP + .B "metric N" +@@ -196,7 +196,7 @@ + Mme si les adresses appletalk DDP et IPX peuvent tre affiches, + elles ne peuvent tre modifies 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 Fv 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 rseau, les tables de routage, les +@@ -106,7 +106,7 @@ + .BR route (8) + pour plus de dtails. + +-.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 entre d'interface comme la commande +-.B ifconfig +-. Avec le paramtre ++.BR ifconfig . ++Avec le paramtre + .B -a + , vous pouvez inclure les interfaces qui ne sont pas configures (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 utilise. + .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 dfinir des rgles spcifiques 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 @@ + Cre manuellement une correspondance d'adresses RARP pour l'hte + .B nom_d_hte + avec l'adresse matrielle +-.B adr_materielle +-. Le format de l'adresse matrielle est dpendant du matriel, ++.BR adr_materielle . ++Le format de l'adresse matrielle est dpendant du matriel, + mais pour la plupart on peut considrer que la prsentation classique + peut tre utilise. Pour la classe Ethernet, c'est 6 octets en hexadcimal, + spars 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 Aot 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 fentres et MSS pour Linux 1.1.22. Le support de irtt + et la fusion avec netstat ont t raliss 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 endereos appletalk DDP e IPX sero mostrados, mas no podem ser alterados + com este comando. + .SH VEJA TAMBM +-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 portugus 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 conexes de rede, tabelas de roteamento, estatsticas de interface e conexes +@@ -97,7 +97,7 @@ + .BR route (8) + para maiores detalhes. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Se voc usar a opo + .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 endereos RARP para a mquina + .B mquina + com endereo de hardware configurado para +-.B endereo_hardware +-. O formato do endereo de hardware depende da classe do hardware, mas ++.B endereo_hardware. ++O formato do endereo de hardware depende da classe do hardware, mas + para a maioria das classes voc pode assumir que a apresentao usual pode + ser usada. Para a classe Ethernet, so 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 verso pl15. Alan Cox adicionou as opes 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 TRADUO + 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 mquina\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: no foi possvel obter o endereo 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 endereo de hardware %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: preciso do endereo de hardware\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: endereo invlido de hardware\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: no foi possvel 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: no foi possvel 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 "Endereo\t\tTipoHW\tEndereoHW\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 no 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] [<mquina>] <-Mostra cache " +-"ARP\n" ++" arp [-vn] [<HW>] [-i <if>] [-a] [<mquina>] <-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 <mquina> [pub][nopub] <-Remove entrada " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <mquina> [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 <mquina> <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 <mquina> <end_hw> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -s <mquina> <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 <mquina> <if> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -Ds <mquina> <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) mquinas no estilo alternativo " +-"(BSD)\n" ++msgstr " -a mostra (todas as) mquinas 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 no 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 famlia 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 endereo de hw. Default: %s\n" ++msgstr " <HW>=Use '-H <hw>' para especificar o tipo de endereo 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 possveis (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 no suportado!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: famlia de endereos no suportada!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N ainda no suportada.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: famlia de endereos 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 mquina 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 mquina\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Configurando nome do domnio 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 domnio\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: no foi possvel 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] {mquina|-F arquivo} configura nome da mquina (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {mquina|-F arquivo} configura nome da mquina (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] {domnio_nis|-F file} configura nome do domnio 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] {mquina|-F arquivo} configura o nome do n DECnet (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {mquina|-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 mquina\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 informaes 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=mquina -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 mquina\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias aliases para a mquina\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address endereos da mquina\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 mquina (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nome do domnio DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nome do domnio 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 mquina ou domnio 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 no pode mudar o nome do domnio 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 resoluo de nomes voc pode " +-"mudar\n" ++"A menos que esteja usando bind ou NIS para resoluo 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 domnio 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 Opes\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Endereo 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 informaes 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 "Mdia:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Este sistema no 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 informaes 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>] <endereo>]\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 <endereo>[/<tam_prefixo>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <endereo>[/<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 [<endereo>]] [[-]pointopoint [<endereo>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " endereo 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 <endereo>] [dstaddr <endereo>] [tunnel <endereo>]\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 "Mquina" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Desconhecido" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " Endereo IPX/Ethernet II:%s\n" ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <endereo>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " Endereo 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 " Endereo 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 " Endereo 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 " Endereo 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 " Endereo 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 possveis 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>=Famlia de endereos. 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 famlias de endereos possveis:\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 Mtrica:%d" ++msgid "Unknown media type.\n" ++msgstr "Tipo desconhecido de mdia.\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 sobreposies:%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 sobreposies:%lu portadora:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:523 + #, c-format +-msgid " collisions:%lu " +-msgstr " colises:%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 "Endereo 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 "Memria:%lx-%lx " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: endereo %s invlido.\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 no 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>] <endereo>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <endereo>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <endereo>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<endereo>]] [[-]pointopoint [<endereo>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <endereo>] [dstaddr <endereo>] [tunnel <endereo>]\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> <endereo>] [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 possveis de hardware:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=Famlia de endereos. Default: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Lista de famlias de endereos possveis:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Tipo desconhecido de mdia.\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: endereo %s invlido.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Este sistema no tem suporte a INET6.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Remoo de endereo no suportada neste sistema.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Este sistema no tem suporte a INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "No sei como configurar endereos para a famlia %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Este sistema no 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 "No sei como configurar endereos para a famlia %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 "" +-"(No foi possvel ler informaes para \"-p\": geteuid()=%d mas voc deve " +-"ser root.)\n" ++msgstr "(No foi possvel ler informaes 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, informaes sobre " +-"processos\n" ++"(Nem todos os processos puderam ser identificados, informaes sobre processos\n" + " de outrem no sero 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 "" +-"Usurio Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Usurio 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 "OUA" + +-#: ../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 "ateno, recebi linha igmp6 invlida %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: famlia de protocolos %d no 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 "ateno, recebi linha igmp invlida %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 "ateno, recebi linha tcp invlida.\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 "ateno, recebi linha udp invlida.\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 "ateno, recebi linha raw invlida.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "ateno, recebi linha unix invlida.\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 "RECUPERAO" + +-#: ../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 Endereo Local Endereo Remoto " +-"Estado" ++"Proto Recv-Q Send-Q Endereo Local Endereo Remoto Estado" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Usurio" + +-#: ../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 " - estatsticas no disponveis -" +- +-#: ../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 " +-"Opes\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opes\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "falta informao 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 conexes 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 no resolve nomes\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric no resolve nomes\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric no resolve nomes\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -n, --numeric no 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 informaes\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 contnua\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 Informaes de Repasse " +-"(default)\n" ++msgstr " -F, --fib mostra a Base de Informaes 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 famlias de endereos possveis (que suportam roteamento):\n" ++msgstr " Lista das famlias de endereos possveis (que suportam roteamento):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Conexes 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 Endereo Local Endereo Remoto Estado " +-" " ++"Proto Recv-Q Send-Q Endereo Local Endereo Remoto Estado " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Usurio " + +-#: ../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 no 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: endereo de hardware invlido\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: no foi possvel 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: mquina desconhecida\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: no possvel 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 mquina remove entrada do cache\n" ++msgstr " rarp -d mquina 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 mquina endereo-hw adiciona entrada ao cache\n" ++msgstr " rarp [-t tipo-hw] -s mquina endereo-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 verso do programa\n" ++msgstr " rarp -V mostra verso do programa\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: mistura ilegal de opes.\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] [famlias_de_endereos] Lista as tabelas de " +-"rotea-\n" ++"Uso: route [-nNvee] [-FC] [famlias_de_endereos] 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 famlia.\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} [famlia_de_endereos] Sintaxe para a AF " +-"(Famlia\n" +-" de endereos) " +-"espeficicada.\n" ++" route {-h|--help} [famlia_de_endereos] Sintaxe para a AF (Famlia\n" ++" de endereos) 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 verso do " +-"comando\n" ++" route {-V|--version} Mostra a verso 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 " [[famlia] endereo]\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_FSICO ]\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 := { ENDEREO_IP | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NMERO | 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_NMEROS_SEPARADOS_POR_PONTOS | NMERO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Chaves no so permitidas com ipip e sit.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Um tnel de broadcast precisa de um endereo de origem.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 e noptmudisc so incompatveis\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "no foi possvel determinar o modo do tnel (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 seqncia.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " necessrio checksum nos pacotes recebidos.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Seqencie pacotes na sada.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Calcule o checksum para pacotes de sada.\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 "No foi possvel 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 sada 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 cabealhos invlidos" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d com endereos invlidos" + +-#: ../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 requisies 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 aps 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 no alcanvel: %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 trnsito: %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 "parmetros 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 "redirees: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requisies 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 "requisies 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 "requisies de mascara de endereo: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "resposta a mascara de endereo" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "respostas a mscara de endereo: %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 "redirees: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requisies de eco: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requisies 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 "requisies de mscara de endereo: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "respostas a mscara de endereo: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "Algortmo 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 conexo 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 conexo 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 conexo recebidas" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d conexes 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 recepo 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 embrinicos 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 recepo devido a sobreposio 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 sobreposio 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 embrinicos 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 recepo devido a sobreposio 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 sobreposio 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 recepo devido a sobreposio 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 conexo recebidas" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d resets de conexo recebidas" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d resets de conexo 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 conexo 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 "ttulo %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 "no foi possvel abrir /proc/net/snmp" + +@@ -1819,89 +2074,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "No foi possvel 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 "No 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 no especifique mais que uma famlia de endereos.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Excesso no nmero de famlias de endereos.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Famlia de endereos `%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): endereo arcnet invlido!\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 "Endereo 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 invlido" +@@ -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 no 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 no 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): endereo fddi invlido!\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 "Famlia de endereos `%s' no 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 famlia `%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): endereo fddi invlido!\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 "Tnel 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: famlia de endereos %d no 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 no 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 Prximo \"Hop\" " +-" Opes Mtrica Ref Uso Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Destino Prximo \"Hop\" Opes Mtrica 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 Endereo HW Iface Opes " +-"Estado Ref\n" ++msgstr "Vizinho Endereo HW Iface Opes 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 Endereo HW Iface Opes " +-"Estado Ref\n" ++"Vizinho Endereo HW Iface Opes 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 NO 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' no 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 no 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 MscaraGen. Opes Mtrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MscaraGen. Opes MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MscaraGen. Opes 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 MscaraGen Opes Mtrica Ref Uso " +-"Iface MSS Janela irtt\n" ++msgstr "Destino Roteador MscaraGen Opes Mtrica 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 MscaraGen. Opes Mtrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MscaraGen. Opes MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MscaraGen. Opes 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 Opes Mtrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opes Mtrica 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 Opes Mtrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opes Mtrica 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 NO suportado\n" + +@@ -2230,14 +2510,17 @@ + msgstr "route: %s: no possvel usar uma REDE como roteador!\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS invlido.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: janela invlida.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt inicial invlido.\n" + +@@ -2252,75 +2535,92 @@ + msgstr "route: netmask %s invlida\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: a netmask no casa com o endereo de rede\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "No suportado limpar a tabela de roteamento `inet'\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "No 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 no 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 no 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 Mnemnico 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 no 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 "Endereo do n deve ter dez dgitos" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE no 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): endereo token ring invlido!\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 "ateno: nenhum socket inet disponvel: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Ateno: no foi possvel abrir %s (%s). Sada limitada.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "%s: dispositivo no encontrado" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: erro obtendo informaes da interface: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - estatsticas no disponveis -" ++ ++#: ../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 "Endereo de HW %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Mdia:%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 " endereo 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 "Mquina" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Desconhecido" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " Endereo IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " Endereo IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " Endereo IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " Endereo IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " Endereo EtherTalk fase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " Endereo 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 Mtrica:%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 sobreposies:%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 sobreposies:%lu portadora:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " colises:%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 informaes 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 "Endereo de E/S:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Memria:%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 famlia de endereos 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 "famlia %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " usurios %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "No foi possvel 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: no foi possvel 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: no foi possvel 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: no foi possvel obter a disciplina de linha corrente!\n" ++msgstr "slattach: tty_open: no foi possvel 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: no foi possvel 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: no foi possvel 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: no foi possvel 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 <mquina> <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 endereo" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "ttulo %s desconhecido\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Tabela de roteamento para `ddp' ainda no 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 tp\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 HWtp 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 "(mittetielik)" + +-#: ../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 "<mittetielik>" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "vrgumask %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 nita kiki 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 mratud 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 vljund\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 vrguliidese tpsustamine (niteks 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 mramine\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 vi " +-"/etc/ethers'st\n" ++" -f, --file lugeda kirjed antud failist vi /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 mramiseks.\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 " Vimalike ARP-i toetavate riistvara tpide 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 tpi %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 tp %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 tbil %s pole ARP toetust\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Sean slme 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 slme 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 vrguslme 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 nitamine antud formaadis\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr " hostname [-v] hosti nime nitamine\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 lhike 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 - tielik ssteeminimi)\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 vrguslme 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 vi 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 ksuga 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 tieliku 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 ksimisel: %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 ssteem 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 ksimisel: %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 <tp>]\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 tp\n" + +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr " Vimalike riistvara tpide 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 " Vimalike 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 tp\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 tbil `%s' pole ksitlejat aadressi seadmiseks - ebann\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 ssteem 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 ssteem 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 ssteem 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 @@ + "(Mnesid 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 Lhtepunkt 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 Lhtepunkt 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 "eiki ((0.00/%ld/%d)" + +-#: ../netstat.c:792 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "kib (%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 "kib-%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 "LAHTIHENDUMAS" + +-#: ../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 Tp 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 Lhtepunkt 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 Vline 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 nitamine\n" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces liideste tabeli nitamine\n" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr " -g, --groups multiedastuse gruppide nitamine\n" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics vrgu statistika nitamine (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 nitamine\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 nitamine\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 nitamine\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 nitamine\n" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening kigi soklite nitamine (vaikimisi " + "hendatud)\n" + +-#: ../netstat.c:1496 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers taimerite nitamine\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 nitamine " + "(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 @@ + "nitamine\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>' vi '--<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 " Vimalike ruutingu toetavate aadressiperekondade nimekiri:\n" + +-#: ../netstat.c:1726 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktiivsed internetihendused " + +-#: ../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 Vline aadress Olek " +-" " ++"Proto VvJrk SaatJrk Kohalik aadress Vline 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 nitamine\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: lubamatu vtmete kombinatsioon\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: tundmatu riistvara tp %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 nitamine\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 sntaks 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 nitamine\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=kasutage '-A <af>' vi '--<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 := FSILISE_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 vtmed lubatud\n" + +-#: ../iptunnel.c:351 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Leviedastusega tunnel vajab lhteaadressi\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 mrata tunneli moodi (ipip, gre vi 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 " Jrjekorravlised paketid visatakse minema\n" + +-#: ../iptunnel.c:454 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Vastuvetavates pakettides on kontrollsumma kohustuslik\n" + +-#: ../iptunnel.c:456 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Vljuvad paketid varustatakse jrjekorranumbritega\n" + +-#: ../iptunnel.c:458 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Vljuvad 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 tpi\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 MluOtsas\n" + +@@ -1658,13 +1861,13 @@ + msgstr "%u paketti pandi otse recvmsg eeljrjekorda" + + #: ../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 veti 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 veti vastu otse eeljrjekorrast" + + #: ../statistics.c:182 +@@ -1673,8 +1876,8 @@ + msgstr "%u paketti kustutati eeljrjekorrast" + + #: ../statistics.c:183 +-#, c-format +-msgid "%u packets header predicted" ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%u paketti pise 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 ssteemne mlu 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 veti 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 ebannestus" ++ ++#: ../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 vastuvtu jrjekorrast sokli puhvri letitumise tttu" ++ ++#: ../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 veti vastu" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "kokku veti 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 tttu" ++ ++#: ../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 analsimisel" + +-#: ../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 lpus\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 ssteemis 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 lpus\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 ssteemis 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 Jrgmine samm " +-" Lipud Meetr Mitu Kasut Liides\n" ++"Sihtpunkt Jrgmine " ++"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 thjendamist 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 ssteemis 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 @@ + "Lhtepunkt 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: vrku 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 vrgumask %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: vrgumask ei sobi ruutingu aadressiga\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "`inet' ruutingutabeli thjendamist 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 ssteemis 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 vrk 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 Lhtepunkt 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 Lhtepunkt Sihtpunkt " +-" Pordid\n" ++"Proto Aegub Initseq Delta Prevd Lhtepunkt " ++"Sihtpunkt Pordid\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pole antud ssteemis 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 kivitada\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Palun kasutage pppd'd\n" + +@@ -2234,287 +2680,314 @@ + msgstr "Slme aadress peab olema kmnekohaline" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pole antud ssteemis 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 lpetavat koolonit\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): sodi lpus\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). Vljund 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 ksimisel: %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 letit:%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 letit:%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 "mlu:%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 ksimine ebannestus\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 Bchle <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 Bchle <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 fr %s\n" ++msgstr "Kein ARP-Eintrag fr %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: Gert ,,%s'' hat HW-Adresse %s ,,%s''.\n" ++msgstr "arp: Gert %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: ungltige 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 "(unvollsndig)" ++msgstr "(unvollstndig)" + +-#: ../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 "<unvollstndig> " + +-#: ../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 "Eintrge: %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 Eintrgen wurde kein Zutreffender gefunden.\n" ++msgstr "arp: In %d Eintrgen 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 hinzufgen\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 lschen\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 Ausfhrliche 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 auflsen\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr " -i, --device Netzwerksgert (z.B. eth0) angeben\n" ++msgstr " -i, --device Netzwerkgert (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 Gert 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 Eintrge 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 mglicher Hardwaretypen, die ARP untersttzen:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: Hardwaretyp nicht untersttzt!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: Adressfamilie nicht untersttzt!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N noch nicht untersttzt.\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 untersttzt nur ,,inet''.\n" ++msgstr "arp: %s: Kernel untersttzt nur inet.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: Hardware untersttzt 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 "Lse ,,%s'' auf ...\n" ++msgstr "Lse %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 fr 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 mglich die DNS Domain oder den FQDN (langen Hostnamen)\n" ++" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n" ++" Es ist ebenfalls mglich die DNS-Domain oder den FQDN (langen Hostnamen)\n" + " ausgeben zu lassen. Auer wenn DNS oder NIS als Namensdienst verwendet\n" +-" wird, knnen FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n" ++" wird, knnen FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n" + " Teil des FQDNs ist) in /etc/hosts gendert 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 gendert werden\n" ++msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht gendert 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 Hostnamensauflsung benutzt werden, kann der " +-"DNS\n" ++"Wenn Bind oder NIS nicht zur Hostnamensauflsung 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 gendert " +-"werden.\n" ++msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts gendert 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 verfgbar.\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>[/<Prfixlnge>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <Adresse>[/<Prfixlnge>]]\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 " Gltigkeitsbereich:" +- +-#: ../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 "Kompatibilitt" +- +-#: ../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 <Lnge>]\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 mglicher 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 mglichen 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 Trger:%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 "Sendewarteschlangenlnge:%d " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ungltige %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 verfgbar.\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>[/<Prefixlnge>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <Adresse>[/<Prefixlnge>]]\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 <Lnge>]\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 mglicher 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 mglichen 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: ungltige %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 verfgbar.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" +-msgstr "Das Lschen von Adressen ist auf diesem System nicht untersttzt.\n" ++msgstr "Das Lschen von Adressen wird auf diesem System nicht untersttzt.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "INET ist auf diesem System nicht verfgbar.\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 untersttzt.\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 "" +-"(Fr \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie " +-"sollten Root sein.)\n" ++msgstr "(Fr \"-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 "HRT" + +-#: ../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 Gert Zustand Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Benutzer Ziel Quelle Gert 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 untersttzte 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 Gert 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 Domne " ++msgstr "Aktive Sockets in der UNIX-Domne " + +-#: ../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 RefZh 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 Gert 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 verfgbar -" +- +-#: ../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 auflsen\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic Hardwarenamen auflsen\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 / zustzliche Informationen " +-"anzeigen\n" ++msgstr " -e, --extend Weitere / zustzliche 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 fr Sockets anzeigen\n" ++msgstr " -p, --programs PID/Programmnamen fr 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 mglicher Adressfamilien, die Routen untersttzen:\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 RefZh Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Dieser Kernel untersttzt kein RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" +-msgstr "Kein RARP Eintrag fr %s.\n" ++msgstr "Kein RARP-Eintrag fr %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 Eintrge im Cache listen.\n" ++msgstr "Benutzung: rarp -a Eintrge 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 lschen.\n" ++msgstr " rarp -d <hostname> Eintrag aus dem Cache lschen.\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 zufgen.\n" ++msgstr " rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufgen.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f Eintrge aus /etc/ethers " +-"zufgen.\n" ++msgstr " rarp -f Eintrge aus /etc/ethers zufgen.\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 fr 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 fr AF anzeigen.\n" ++msgstr " route {-h|--help} [<AF>] Genaue Syntax fr 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 SCHLSSEL ] [ [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_GERt ]\n" +-"\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERt ]\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 "Schlssel 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 mglich\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 auer der Reihenfolge fallenlassen.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Prfsumme im empfangenen Paket wird bentigt.\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 " Prfsumme fr 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 ungltigen Headern" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" ++msgstr "%d mit ungltigen 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 ungltigen 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 ntig" + + #. ? +-#: ../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 "Zeitberschreitung: %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 geffnet" ++ ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" ++msgstr "%d Verbindungen passiv geffnet" ++ ++#: ../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 Verbindungsrcksetzungen 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 Rcksetzungen 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 fr 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 ungltige SYN-Cookies empfangen" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d Rcksetzungen fr 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 Socketpufferberlauf 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 Pufferberlauf weggeworfen" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP-Pakete weggeworfen die auerhalb 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 geffnet" ++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 geffnet" ++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 Verbindungsrcksetzungen 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 Rcksetzungen 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 fr 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 ungltige 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 Rcksetzungen 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 Socketpufferberlauf 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 Pufferberlauf 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 Rcksetzungen 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 Socketpufferberlauf 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 Verbindungsrcksetzungen empfangen" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d Verbindungsrcksetzungen empfangen" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d Verbindungsrcksetzungen 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 Verbindungsrcksetzungen 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 untersttzt.\n" ++msgstr "Hardwaretyp %s nicht untersttzt.\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): Ungltige ARCnet-Adresse!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): angehngt : ignoriert!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): Nachfolgender Mll!\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 untersttzt.\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 Mll!\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): Ungltige 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 Mll!\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 untersttzt.\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 fr 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): Ungltige 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 Mll!\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 untersttzte 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 Nchster Hop " +-" Flags Metric Ref Benutzer Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Ziel Nchster 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) Lschen(sec)\n" ++msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Lschen(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 untersttzt\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" +-msgstr ",,Flush'' fr IPv6 Routentabelle nicht untersttzt\n" ++msgstr "Flush fr IPv6-Routentabelle nicht untersttzt\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[/Prfix] [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[/Prfix] [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[/Prfix] [metric M] reject\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Prfix] [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 untersttzt\n" + +@@ -2215,15 +2514,17 @@ + msgstr "route: %s: Netzadresse als Gateway ungltig!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Ungltige MSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Ungltige Fenstergre.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Ungltige 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 untersttzt\n" ++msgstr "Flush der Inet-Routentabelle nicht untersttzt\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" +-msgstr "nderung des ,,Inet'' Routencaches nicht untersttzt\n" ++msgstr "nderung des Inet Routencaches nicht untersttzt\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-Maskierungseintrge\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 verfgbar.\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 Qualitt 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 verfgbar.\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): ungltige 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 Mll!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" +-msgstr "Warnung: Keine INET Sockets verfgbar: %s\n" ++msgstr "Warnung: Keine INET-Sockets verfgbar: %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 "Gert 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 verfgbar -" ++ ++#: ../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 " Gltigkeitsbereich:" ++ ++#: ../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 "Kompatibilitt" ++ ++#: ../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 Trger:%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 "Sendewarteschlangenlnge:%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 ungltiges INET-Prefix\n" ++msgstr "ip: %s ist ein ungltiges INET-Prfix\n" + + #: ../lib/util-ank.c:248 + #, c-format + msgid "ip: %s is invalid IPv4 address\n" +-msgstr "ip: %s ist eine ungltige IPv4 Adresse\n" ++msgstr "ip: %s ist eine ungltige 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 untersttzt.\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: ncessite un nom d'hte\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'entre 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 dfinir l'entre 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: ncessite une adresse matriel\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: adresse matriel 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 dfinir l'entre 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 "Entres: %d\tIgnores: %d\tTrouves: %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 trouve dans %d entres\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] [<hte>] <-Affiche cache " +-"ARP\n" ++" arp [-vn] [<MAT>] [-i <if>] [-a] [<hte>] <-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 <hte> [pub][nopub] <-Supprime entre " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <hte> [pub][nopub] <-Supprime entre 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 entre " +-"depuis fichier\n" ++msgstr " arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entre 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 <hte> <adrmat> [temp][nopub] <-Ajout " +-"entre\n" ++msgstr " arp [-v] [<MAT>] [-i <if>] -s <hte> <adrmat> [temp][nopub] <-Ajout entre\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -s <hte> <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 <hte> <if> [netmask <nm>] pub " +-"<-''-\n" ++" arp [-v] [<MAT>] [-i <if>] -Ds <hte> <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 htes en style BSD\n" ++msgstr " -a affiche (tous) les htes en style BSD\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set dfinit une nouvelle entre ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete supprime une entre\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 rsout 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 spcifie l'interface rseau (p.ex. eth0)\n" ++msgstr " -i, --device spcifie l'interface rseau (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 priphrique\n" ++msgstr " -D, --use-device lit l'<adrmat> depuis le priphrique\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 entres 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 spcifier le type d'adresse matriel. Dfaut: " +-"%s\n" ++msgstr " <HW>=Utilisez '-H <hw>' pour spcifier le type d'adresse matriel. Dfaut: %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 matriels 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 mattiel non support !\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: famille d'adresses non supporte !\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 matriel 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 matriel sans support ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Dfinit 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 "Dfinit le nom d'hte `%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'hte\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Dfinit 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 "Rsultat : 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] {hte|-F fichier} dfinit le nom d'hte (depuis " +-"le fichier)\n" ++msgstr "Syntaxe : hostname [-v] {hte|-F fichier} dfinit le nom d'hte (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} dfinit le domaine NIS " +-"(depuis le fichier)\n" ++msgstr " domainname [-v] {domaine_nis|-F fichier} dfinit 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} Dfinit le nom de noeud " +-"DECnet (depuis le fichier)\n" ++msgstr " nodename [-v] {nom_noeud|-F fichier} Dfinit 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'hte\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'hte 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'hte\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nom d'hte 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'hte ou le nom de domaine NIS depuis " +-"le fichier\n" ++" -F, --file lit le nom d'hte 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'htes, vous pouvez " +-"changer le\n" ++"Sauf si vous utilisez bind ou NIS pour les recherches d'htes, 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 systme.\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 "Hte" ++#: ../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 matriel.\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 matriels 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. Dfaut: %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 mdia 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 Reus:%lu erreurs:%lu jets:%lu dbordements:%lu trames:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " compresss:%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 jets:%lu dbordements:%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 "compresss:%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 "Mmoire:%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 systme.\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 matriel.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste des types de matriels possibles:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=famille d'Adresses. Dfaut: %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 mdia 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 systme.\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 systme.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Pas de support de INET sur ce systme.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ne sait pas comment dfinir 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 systme.\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 dfinir 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 identifis, les infos sur les processus\n" +-"non possds ne seront pas affiches, vous devez tre root pour les voir " +-"toutes.)\n" ++"non possds ne seront pas affiches, 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 supporte %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 rseau (comme " +-"SNMP)\n" ++msgstr " -s, --statistics affiche les statistiques rseau (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 masques\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 rsout pas les noms\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric ne rsout pas les noms\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric ne rsout pas les noms\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic rsoud les noms matriels\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 (dfaut: " +-"connects)\n" ++msgstr " -a, --all, --listening affiche toutes les prises (dfaut: connects)\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 " +-"(dfaut)\n" ++msgstr " -F, --fib affiche la Forwarding Infomation Base (dfaut)\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>' Dfaut: %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'entre RARP pour %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: mauvaise adresse matriel\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: hte inconnu\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ne peut dfinir l'entre 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 entres en cache.\n" ++msgstr "Usage: rarp -a liste les entres 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'entre du cache.\n" ++msgstr " rarp -d <hostname> supprime l'entre 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'entre au cache.\n" ++msgstr " rarp [<HW>] -s <hostname> <adrmat> ajoute l'entre 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 entres depuis " +-"/etc/ethers.\n" ++msgstr " rarp -f ajoute les entres 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 illgales.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: type de matriel 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 dtaille pour l'AF " +-"spcifi.\n" ++msgstr " route {-h|--help} [<AF>] Utilisation dtaille pour l'AF spcifi.\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>' Dfaut: %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'entre 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 "Racheminement 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 dfaut 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 reus" + +-#: ../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-tte 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 rachemines" + +-#: ../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 jets" + +-#: ../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 dlivrs" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requtes envoyes" + + #. ? +-#: ../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 jets" + +-#: ../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 jets 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 jets aprs timeout" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d ncessitant un rassemblage" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d paquets rassembls 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 rassembls" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragments reus 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 crs" + +-#: ../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 reus" + +-#: ../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'entre 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 paramtre: %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 "requtes 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 "rponses echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requtes dates: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "rponses dates: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requtes de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "rponses de masque d'adresses" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "rponses 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 envoys" + +-#: ../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 dpass: %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 "requte echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requtes dates: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "rponses dates: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requtes de masque d'adresse: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "rponses 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 choues" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d rinitialisations de connexions reues" + +-#: ../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 reus" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segments envoys" + +-#: ../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 reus." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d rinitialisations envoyes" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d paquets reus" + +-#: ../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 reus 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 rception de paquets" + +-#: ../statistics.c:137 ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d paquets envoys" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies reus" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies reus" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d SYN-Cookies reus incorrects" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d rinitialisations reues 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 supprims de la file de rception 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 supprims 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 jets 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 jets car hors de la fentre" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d paquets ICMP jets car la socket a t vrouille" ++ ++#: ../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 envoys" + +-#: ../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 reus" ++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 reus 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 rinitialisations reues 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 supprims de la file de rception 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 supprims de la file hors service" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d paquets reus" ++ ++#: ../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 jets 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 jets car hors de la fentre" ++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 reus pour un port inconnu" ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d paquets ICMP jets car la socket a t vrouille" ++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 reus." ++ ++#: ../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 rinitialisations envoyes" ++ ++#: ../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 rassembls" ++ ++#: ../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 supprims de la file de rception 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 reus" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d paquets totaux reus" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d rinitialisations de connexions reues" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d rinitialisations de connexions reues" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d rinitialisations de connexions reues" ++ ++#: ../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 rinitialisations de connexions reues" + + #: ../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 "active" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "dsactive" + +-#: ../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 malforme" + ++#: ../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 systme.\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 supporte.\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 srie" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "IP ligne srie - VJ " + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "IP ligne srie - 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "IP ligne srie - 6 bits VJ" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "IP ligne srie 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 "Priphriue d'accs 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 suporte %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 systme.\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) Dtuit(sec)\n" ++msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqu(sec) Dtuit(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 systme.\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 Fentre irtt " +-"Iface\n" ++msgstr "Destination Passerelle Genmask Indic MSS Fentre 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 Fentre irtt\n" ++msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fentre 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 Fentre irtt " +-"Iface\n" ++msgstr "Source Destination Passerelle Indic MSS Fentre 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 Fentre irtt HH Arp\n" ++msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fentre 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 Fentre irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fentre 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: fentre 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 systme.\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 Rseau 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 "Entres 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 systme.\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 dmarrer PPP avec ce programme.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Dsol, 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 systme.\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 "Priphrique 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 "Hte" ++ ++#: ../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 Reus:%lu erreurs:%lu jets:%lu dbordements:%lu trames:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compresss:%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 jets:%lu dbordements:%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 "compresss:%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 "Mmoire:%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 trouve.\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 crer 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 dfinir le nom d'hte 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 <hte> <adrmat> [netmask <nm>] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface inconnue: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "rponses 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 dfinir le nom d'hte 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'htes, vous " +-#~ "pouvez changer le\n" ++#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'htes, 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 teba jmno potae\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 poloka\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: zazen `%s' m Hw adresu %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: je teba hardwarov adresa\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: nesprvn hardwarov adresa\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: databzi ethernetovch adres %s nelze otevt!\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 databze ethernetovch 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: poloku na dku %u databze ethernetovch 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 Pz 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 "sov 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 "Poloky: %d\tVynechno: %d\tNalezeno: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- dn poloka\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: dn z poloek (%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] [<pota>] <-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 <pota> [pub][nopub] <-Smae poloku " + "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> <-Pid poloku " + "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 <pota> <hwadr> [temp][nopub] <-Pid " + "poloku\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> [smask <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 <pota> <if> [smask <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 vech pota alternativnm\n" + " (BSD) zpsobem\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set nastav novou ARP poloku\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete smae zadanou ARP poloku\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 zprvy\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 pevdt seln adresy\n" + " na kanonick jmna\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr " -i, --device zadv sov 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 zadanho zazen\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route vype smrovac 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 poloky 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>=Pouijte '-H <hw> pro zadn hardwarovho 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 monch hardwarovch typ (podporujcch 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 podporovn!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "tda adres %s nen podporovna!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: pepna -N nen zatm podporovn\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: neznm tda adres %s.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: neznm hardwarov typ %s.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: jdro 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 jmno 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: jmno uzlu me zmnit pouze superuivatel\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 "jmno %s je pli dlouh\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Nastavuji jmno potae 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: jmno potae me zmnit pouze superuivatel\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Nastavuji jmno domny 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: jmno domny me zmnit pouze superuivatel\n" +@@ -306,26 +326,29 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Vsledek: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: `%s' nelze otevt\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Pouit:\n" + " hostname [-v] {jmno|-F soubor} nastav jmno potae (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] {jmno|-F soubor} nastav jmno NIS domny (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] {jmno|-F soubor} nastav jmno 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] vype formtovan jmno\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -345,7 +370,8 @@ + " hostname [-v] vype jmno potae\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 vype 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 krtk jmno potae\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias pezdvky\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresy odpovdajc jmnu potae\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long dlouh jmno potae (kanonick)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain jmno DNS domny\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis jmno NIS/YP domny\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node jmno 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 jmno potae i nis domny 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: Tmto pkazem nelze DNS jmno domny zmnit\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 @@ + "zmnit\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "DNS jmno domny (je soust kanonickho jmna potae) 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 Zapouzden:%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-PT OD-OK OD-CHYB OD-ZAH OD-PT " ++"PZ\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 pi zskvn 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 "Mdium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Tento systm 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 pi zskvn 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 "" ++"Pouit:\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>[/<dlka prefixu>]]\n" + +-# V ostatnch katalozch se pekld Broadcast -> vesmrov vysln. +-# Tudi bcast -> Vesmr :) +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Vesmr:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <adresa>[/<dlka 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 "Globl" ++#: ../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 "Stanovit" ++#: ../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 "Pota" ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen dlka]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Neznm." ++#: ../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 monch hardwarovch 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>=tda 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 monch td 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 PZNAKY]" ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "AKTIVOVNO " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Neznm typ mdia.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "VESMROV_VYSLN " ++#: ../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 "SMYKA " ++#: ../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 nesprvn.\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 systm 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 nesprvn.\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 "pijmutch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu rmc:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimovno:%lu\n" +- +-# carrier? +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "odeslanch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu penos:%lu\n" +- +-#: ../ifconfig.c:333 +-#, c-format +-msgid " collisions:%lu " +-msgstr " koliz:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "komprimovno:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "dlka odchoz fronty:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Peruen:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Vstupn/Vstupn 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 "Kanl DMA:%x " +- +-#: ../ifconfig.c:384 ../ifconfig.c:405 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: rozhran %s nen znmo\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Pouit:\n" +-" ifconfig [-a] [-i] [-v] <rozhran> [[<AF>] <adresa>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <adresa>[/<dlka prefixu>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <adresa>[/<dlka 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 dlka]\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 monch hardwarovch typ:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=tda adres. Implicitn: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Seznam monch td adres:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Neznm typ mdia.\n" +- +-#: ../ifconfig.c:881 ++#: ../ifconfig.c:885 + #, c-format +-msgid "%s: invalid %s address.\n" +-msgstr "%s: adresa %s je nesprvn.\n" +- +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Tento systm nepodporuje INET6.\n" +- +-#: ../ifconfig.c:983 + msgid "Address deletion not supported on this system.\n" + msgstr "Tento systm nepodporuje mazn adres.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Tento systm nepodporuje INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Nevm, jak nastavit adresu tdy %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Tento systm nepodporuje ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Nevm, jak nastavit adresu tdy %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 superuivatelem)\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 vlastnkem. Aby jste mohl vidt ve, musel\n" + "byste bt superuivatelem.)\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 ODESLN" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ODESLN" + +-#: ../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 "" +-"Uivatel Cl Zdroj Zazen Stav Vr/Vs Odch-F " +-"Pch-F\n" ++"Uivatel Cl Zdroj Zazen Stav Vr/Vs Odch-F Pch-" ++"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 pi ten dat z %s\n" + + # nsledujc radji ponechat v originle ?! +-#: ../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 "ZAVEN" + +-#: ../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 "ZAVR" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "varovn, 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: tda adres %d nen podporovna !\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 "varovn, 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 "Cl Zdroj Zaz Stav Vr/Vs Odhod-F Pch-F\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "varovn, 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 "varovn, 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 "NEZNM" + +-#: ../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 "varovn, nesmysln 'raw' dek.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "varovn, 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 "NEALOKOVN" + +-#: ../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 domny UNIX " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servery a navzan 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 Pznaky 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 ODESLN" + +-#: ../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 "Cl Zdroj Zaz Stav Vr/Vs Odhod-F Pch-F\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "chyba pi 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 Pch-F Odch-F Lokl adresa Vzdlen adresa " +-" Stav" ++"Proto Pch-F Odch-F Lokl adresa Vzdlen " ++"adresa Stav" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Uivatel" + +-#: ../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 PZNAKY]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabulka rozhran v jdru\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-PT OD-OK OD-CHYB OD-ZAH OD-PT " + "PZ\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 "" +-"Pouit: netstat [--veenNcCF] [<TA>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"Pouit: 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 vype smrovac tabulku\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces vype tabulku rozhran\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups vype lenstv v multicast skupinch\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics vype statistiku sov 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 vype 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 pevdt seln adresy\n" ++" na kanonick jmna\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr "" ++" -n, --numeric nebude pevdt seln adresy\n" ++" na kanonick jmna\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr "" ++" -n, --numeric nebude pevdt seln adresy\n" ++" na kanonick jmna\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic pevede hw jmna\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 vype podrobnj informace\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs vype PID/jmno 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 neperuovan vpis\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening vype sokety, na nich je naslouchno\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening vype vechny sokety (implicitn: " + "spojen)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers zobraz asovae\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 msto FIB zobraz smrovac 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>=Pouijte '-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 monch td adres (podporujcch smrovn):\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 Pch-F Odch-F Mstn Adresa Vzdlen Adresa Stav " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Uivatel 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 skupinch\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 jdro nepodporuje RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pro %s neexistuje RARP poloka.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "hardwarov adresa %s je nesprvn\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: soubor %s:%s nelze otevt.\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: pota %s nen znm\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: nelze nastavit poloku 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 "Pouit: rarp -a vype poloky z cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr " rarp -d <jmno> smae poloku 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 <jmno> <hwadr> pid poloku do cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f pid poloky 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 pepna %s je nesprvn.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: hardwarov typ %s nen znm.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Pouit: route [-nNvee] [-FC] [<AF>] Zobraz smrovac tabulky v " + "jdru\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>] Npovda pro pouit 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} Vype oznaen verze a autora\n" + " programu.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Pouijte '-A <af>' or '--<af>' Implicitn: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Pouit: 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 "Pouit: iptunnel { add | change | del | show } [ JMNO ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ vzdlen ADR ] [ mstn 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 ZAZEN ]\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: JMNO := ETZEC\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 kle povoleny.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Tunel se vesmrovm vyslnm vyaduje 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 navzjem vyluuj\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "reim 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 vzdlen %s mstn %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Neznm." + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Zahazuje pakety mimo poad.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Pijman pakety mus mt kontroln souet.\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 mt kontroln souet.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Lituji, formt /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 nepodailo 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 vstupu:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Pedvn 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 pijmutch 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 nesprvnmi hlavikami: %d" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "s nesprvnmi adresami: %d" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "pedno: %d" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "s neznmm protokolem: %d" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "poet zahozench pchozch paket: %d" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "poet doruench pchozch paket: %d" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "poet odeslanch poadavk: %d" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "poet zahozench odchozch 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 kvli chybjc 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 "poet fragment zahozench po vypren asu: %d" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "poet nutnch znovusestaven: %d" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "poet v podku znovu sestavench paket: %d" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "poet paket, je se nepodailo 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 "poet v podku pijmutch fragment: %d" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "poet chybnch fragment: %d" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "poet vytvoench fragment: %d" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "poet pijmutch ICMP zprv: %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 "poet chybnch pchozch ICMP zprv: %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 "adrest nedostupn: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "vyprel as pi penosu: %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 "zmna 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 podst: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "odpovdi na dost o masku podst" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "odpov na dost o masku podst: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "poet odeslanch ICMP zprv: %d" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "poet chybnch ICMP zprv: %d" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "vypren 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 "zmna 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 podst: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "odpov na dost o masku podst: %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 "poet aktivn navzanch spojen: %d" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "poet pasivn navzanch spojen: %d" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "poet nespnch 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 "poet pijmutch reset: %d" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "poet navzanch spojen: %d" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "poet pijmutch segment: %d" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "poet odeslanch segment: %d" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "poet penesench segment: %d" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "poet chybnch pchozch segment: %d." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "poet odeslanch reset: %d" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "poet pijmutch 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 "poet paket pijmutch pro neznm port: %d." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "poet chyb pi pjmu paket: %d" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "poet odeslanch paket: %d" + +-#: ../statistics.c:142 +-#, c-format +-msgid "%d SYN cookies sent" ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" + msgstr "poet odeslanch 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 "poet pijmutch 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 "poet chybnch pchozch 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 "poet reset pijmutch pro sokety ve stavu SYN_PCH: %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 "poet paket odstrannch z fronty kvli peteen 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 "poet paket odstrannch z fronty mimo-poad: %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 "" + "poet paket zahozench z fronty mimo-poad kvli peteen 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 "poet ICMP paket zahozench, protoe 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 "poet ICMP paket zahozench kvli zamenmu 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 "poet odeslanch 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 "poet paket odstrannch z fronty mimo-poad: %d" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "poet pijmutch 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 "poet paket pijmutch pro neznm 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 "poet chybnch pchozch 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 "poet odeslanch 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 "poet penesench 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 "poet penesench segment: %d" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "poet paket, je se nepodailo 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 "poet paket odstrannch z fronty kvli peteen 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 "poet pijmutch paket: %d" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "celkem pijmutch paket: %d" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "poet pijmutch reset: %d" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "poet pijmutch reset: %d" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "poet pijmutch 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 "poet pijmutch 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 neznm\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "chyba pi zpracovn /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "/proc/net/snmp nelze otevt" + +@@ -1821,89 +2112,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Linkovou disciplnu nelze na `%s' zmnit.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "NEZNM" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Domna 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 "Nezadvejte vce ne jednu tdu adres.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Bylo zadno pli mnoho td adres.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Tda adres `%s' nen znma.\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): nadbyten : ignorovno!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): nadbyten 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 "Nesprvn volac znak" +@@ -1913,22 +2210,21 @@ + msgstr "Volac znak je pli dlouh." + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 nen na tomto systmu nakonfigurovno.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Smrovac tabulka v jdru pro AX.25\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Adrest Rozhran Uit\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Smrovac tabulka pro `ddp' nen zatm podporovna.\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): nadbyten 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): nadbyten : ignorovno!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): nadbyten 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 "Tda adres `%s' nen podporovna.\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 tdu adres `%s' nen dn smrovn.\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): nadbyten : ignorovno!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): nadbyten znaky!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Mstn smyka" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP po sriov lince" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Vj IP po sriov lince" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6bitov IP po sriov lince" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "6bitov VJ IP po sriov lince" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptivn IP po sriov 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 "Pstupov zazen 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: tda adres %d nen podporovna!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "NEZNM" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) nen na tomto systmu nakonfigurovno.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Smrovac tabulka v jdru 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 "" +-"Adrest Dal Smrova " +-" Pzn Metrika Odkaz Uit Rozhran\n" ++"Adrest Dal " ++"Smrova Pzn Metrika Odkaz Uit Rozhran\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache soused v jdru 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 Pzn " + "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 @@ + "Pznaky Odkazy Stav Prol(sec) Smazat(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Pouit: inet6_route [-vF] del Cl\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 Cl [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 podporovno\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Smrovac tabulku `inet6' nelze vyprazdovat\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 systmu nakonfigurovno.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Smrovac tabulka v jdru 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 "Smrovac cache v jdru 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 @@ + "Odeslatel Adrest Maska Pzn Metrik Odkazy Ut " + "Rozhran MSS Okno irtt TOS HHOdk HHAktul ZvltCl\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 @@ + "Pouit: inet_route [-vF] del {-host|-net} Cl[/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} Cl[/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} Cl/[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 podporovno\n" + +@@ -2230,15 +2565,17 @@ + msgstr "route: %s: s nelze pout jako brnu!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Nesprvn NSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Nesprvn okno.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Nesprvn zahajovac rtt.\n" + +@@ -2253,75 +2590,92 @@ + msgstr "route: sov maska %s je nesprvn\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: sov maska nevyhovuje adrese cesty\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Smrovac cache `inet' nelze vyprazdovat\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Smrovac cache `inet' nelze mnit\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX nen na tomto systmu nakonfigurovno.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Smrovac tabulka v jdru pro IPX\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Cl Smrova S Smrova Uzel\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: toto je teba uloit\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskovac poloky\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot ivot zdroj cl 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 pedchd zdroj cl " +-" porty\n" ++"prot ivot zahajsek delta pedchd zdroj " ++"cl porty\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM nen na tomto systmu nakonfigurovno.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Smrovac tabulka v jdru pro NET/ROM\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Cl Mnemonika Kvalita Soused Rozhran\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "pouit netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: toto je poteba uloit\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Tmto programem nelze PPP spustit.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Lituji, pouijte pppd!\n" + +@@ -2330,49 +2684,319 @@ + msgstr "Adresa uzlu mus mt 10 slic" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE nen na tomto systmu nakonfigurovno.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Smrovac tabulka v jdru 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): nesprvn 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): nadbyten: ignorovno!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nadbyten znaky!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "varovn: 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 "Zazen nebylo nalezeno" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: chyba pi zskvn 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 PZNAKY]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Zapouzden:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWadr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Mdium:%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 ostatnch katalozch se pekld Broadcast -> vesmrov vysln. ++# Tudi bcast -> Vesmr :) ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Vesmr:%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 "Globl" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Linka" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Stanovit" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilita" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Pota" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Neznm." ++ ++#: ../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 PZNAKY]" ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "AKTIVOVNO " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "VESMROV_VYSLN " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "SMYKA " ++ ++#: ../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 "pijmutch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu rmc:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimovno:%lu\n" ++ ++# carrier? ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "odeslanch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu penos:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " koliz:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "komprimovno:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "dlka 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 "Peruen:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Vstupn/Vstupn 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 "Kanl DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nebyla nalezena dn pouiteln tda adres.\n" + +@@ -2396,29 +3020,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument %s je nesprvn\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 ETZEC\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev ETZEC ] [ 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 "tda %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " uivatel %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Soket nelze vytvoit" + +@@ -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 "jmno %s je pli dlouh\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: aktuln 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: aktuln linkovou disciplnu nelze zjistit!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: reim 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: reim 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 sputn" + +-#: ../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> [smask <s>] <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: rozhran %s nen znmo\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "odpovdi na dost o masku podst" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titulek %s je neznm\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Smrovac tabulka pro `ddp' nen zatm podporovna.\n" ++ ++#~ msgid "" ++#~ " This comand can read or set the hostname or the NIS domainname. You " ++#~ "can\n" + #~ msgstr "" + #~ " Tento program zjiuje a nastavuje jmno potae i NIS domny. Me " + #~ "tak\n" +@@ -2500,7 +3161,8 @@ + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" + #~ msgstr "" +-#~ " Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak mete\n" ++#~ " Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak " ++#~ "mete\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/a/util-linux-ng/scsi_ioctl.h b/source/a/util-linux-ng/scsi_ioctl.h new file mode 100644 index 00000000..edb95253 --- /dev/null +++ b/source/a/util-linux-ng/scsi_ioctl.h @@ -0,0 +1,48 @@ +#ifndef _SCSI_IOCTL_H +#define _SCSI_IOCTL_H + +#define SCSI_IOCTL_SEND_COMMAND 1 +#define SCSI_IOCTL_TEST_UNIT_READY 2 +#define SCSI_IOCTL_BENCHMARK_COMMAND 3 +#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */ +#define SCSI_IOCTL_START_UNIT 5 +#define SCSI_IOCTL_STOP_UNIT 6 +/* The door lock/unlock constants are compatible with Sun constants for + the cdrom */ +#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */ +#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */ + +#define SCSI_REMOVAL_PREVENT 1 +#define SCSI_REMOVAL_ALLOW 0 + +#ifdef __KERNEL__ + +struct scsi_device; + +/* + * Structures used for scsi_ioctl et al. + */ + +typedef struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +} Scsi_Ioctl_Command; + +typedef struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +} Scsi_Idlun; + +/* Fibre Channel WWN, port_id struct */ +typedef struct scsi_fctargaddress { + __u32 host_port_id; + unsigned char host_wwn[8]; // include NULL term. +} Scsi_FCTargAddress; + +extern int scsi_ioctl(struct scsi_device *, int, void __user *); +extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, + void __user *arg, struct file *filp); + +#endif /* __KERNEL__ */ +#endif /* _SCSI_IOCTL_H */ diff --git a/source/a/util-linux-ng/setserial-rc.serial.diff b/source/a/util-linux-ng/setserial-rc.serial.diff new file mode 100644 index 00000000..248d253b --- /dev/null +++ b/source/a/util-linux-ng/setserial-rc.serial.diff @@ -0,0 +1,49 @@ +--- ./rc.serial.orig Thu Jan 27 07:47:30 2000 ++++ ./rc.serial Sun May 13 13:27:57 2001 +@@ -14,8 +14,6 @@ + # XXXX For now, the autosave feature doesn't work if you are + # using the multiport feature; it doesn't save the multiport configuration + # (for now). Autosave also doesn't work for the hayes devices. +-# Will fix later... +-# + # + + RCLOCKFILE=/var/lock/subsys/serial +@@ -87,7 +85,7 @@ + mv /etc/.serial.conf.new /etc/serial.conf + echo "done." + fi +- if test -n $MODULE ; then ++ if test -n "$MODULE" ; then + module=`grep $MODULE_REGEXP /proc/modules | awk '{print $1}'` + if test -z "$module" ; then + echo "The $DRIVER_NAME driver is not loaded." +@@ -108,22 +106,22 @@ + # If not stop, it must be a start.... + # + +-if test -n $MODULE -a "$LOADED" != "yes" ; then +- if insmod -fm $MODULE $DRIVER_ARG \ +- > /tmp/$DRIVER.map 2> /tmp/$DRIVER.$$; then :; ++if test -n "$MODULE" -a "$LOADED" != "yes" ; then ++ if insmod -f $MODULE $DRIVER_ARG ; then ++ true + else + echo "Couldn't load $DRIVER_NAME driver." +- echo "See error logs in /tmp/$DRIVER.$$" + exit 1 + fi +- /bin/rm -f /tmp/$DRIVER.$$ + fi + + if test -f /etc/serial.conf ; then + if test -n ${SETSERIAL} ; then + grep -v ^# < /etc/serial.conf | while read device args + do +- ${SETSERIAL} -z $device $args ++ if [ ! "$device" = "" -a ! "$args" = "" ]; then ++ ${SETSERIAL} -z $device $args ++ fi + done + fi + else diff --git a/source/a/util-linux-ng/slack-desc b/source/a/util-linux-ng/slack-desc new file mode 100644 index 00000000..e149d7b8 --- /dev/null +++ b/source/a/util-linux-ng/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------------------------------------------------| +util-linux-ng: util-linux-ng (a huge collection of essential utilities) +util-linux-ng: +util-linux-ng: The util-linux package is a huge collection of random utilities +util-linux-ng: that are essential to run a Linux system. This is a fork of +util-linux-ng: the original util-linux, based on version 2.13-pre7. +util-linux-ng: +util-linux-ng: http://kernel.org/~kzak/util-linux-ng/ +util-linux-ng: +util-linux-ng: +util-linux-ng: +util-linux-ng: diff --git a/source/a/util-linux-ng/util-linux-ng.SlackBuild b/source/a/util-linux-ng/util-linux-ng.SlackBuild new file mode 100755 index 00000000..2c2ea55e --- /dev/null +++ b/source/a/util-linux-ng/util-linux-ng.SlackBuild @@ -0,0 +1,284 @@ +#!/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. + +# Slackware build script for util-linux-ng + +VERSION=${VERSION:-2.14.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +ADJTIMEXVERS=1.23 +SETSERIALVERS=2.17 +ZIPTOOLVERS=1.4.0 + +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-util-linux-ng +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf util-linux-ng-$VERSION +tar xvf $CWD/util-linux-ng-$VERSION.tar.bz2 || exit 1 +cd util-linux-ng-$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 {} \; + +# Disabled login and init stuff from being built, as this is provided by +# shadow and sysvinit +# +# /sbin/elvtune is not built, as configure says it only works with 2.2 and +# 2.4 kernels + +# This block is handled near the bottom of the script in symlink creation +# /bin/setterm -- now located in /usr/bin/setterm +# /bin/getopt -- same as setterm +# /usr/bin/readprofile -- now in /usr/sbin +# /usr/bin/tunelp -- same as readprofile + +# Changing the fdisk -l output (this was done prior to util-linux-ng) broke +# our installation scripts, so we have changed the name of partition type +# 83 back to "Linux swap": +zcat $CWD/util-linux-ng.fdisk-no-solaris.diff.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/util-linux-ng-$VERSION \ + --enable-arch \ + --enable-agetty \ + --disable-init \ + --enable-kill \ + --enable-rdev \ + --disable-last \ + --enable-mesg \ + --enable-raw \ + --enable-rename \ + --enable-reset \ + --disable-login-utils \ + --enable-schedutils \ + --enable-wall \ + --enable-write \ + --enable-use-tty-group \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + || exit 1 + +make || exit 1 +make install DESTDIR=$PKG + +# Moving things around that have been in the same place +# for 15 years is, IMHO, not a wise idea AT ALL. +# If this had to be moved, some place out of /usr might +# have shown a grain of insight... +if [ -r $PKG/usr/sbin/fdformat ]; then + mkdir -p $PKG/usr/bin + mv $PKG/usr/sbin/fdformat $PKG/usr/bin/fdformat + # Now since stuff will start looking in this new place, + # we have no choice but to link these: + ( cd $PKG/usr/sbin + ln -sf ../bin/fdformat . + ) +fi + +# Install (probably obsolete) rdev manually: +cat ./sys-utils/rdev > $PKG/sbin/rdev +chown root:root $PKG/sbin/rdev +chmod 755 $PKG/sbin/rdev +#cat ./sys-utils/rdev.8 | gzip -9c > $PKG/usr/man/man8/rdev.8.gz + +# Build ziptool +cd $TMP || exit 1 +rm -rf ziptool-$ZIPTOOLVERS +tar xvf $CWD/ziptool-$ZIPTOOLVERS.tar.bz2 || exit 1 +cd ziptool-$ZIPTOOLVERS || exit 1 +zcat $CWD/ziptool-fix_build.patch.gz | patch -p1 || exit 1 +mkdir scsi +cat $CWD/scsi_ioctl.h > scsi/scsi_ioctl.h +chown -R root:root . +make || exit 1 +strip ziptool +cat ziptool > $PKG/sbin/ziptool +chmod 0755 $PKG/sbin/ziptool +mkdir -p $PKG/usr/doc/ziptool-$ZIPTOOLVERS +cp -a README $PKG/usr/doc/ziptool-$ZIPTOOLVERS +chmod 644 $PKG/usr/doc/ziptool-$ZIPTOOLVERS/* +cat ziptool.1.gz > $PKG/usr/man/man1/ziptool.1.gz + +# Build bsdstrings +cd $TMP || exit 1 +rm -rf bsdstrings +tar xvf $CWD/bsdstrings.tar.gz || exit 1 +cd bsdstrings || exit 1 +make || exit 1 +strip strings +cat strings > $PKG/usr/bin/strings +chmod 0755 $PKG/usr/bin/strings +cat strings.1 | gzip -9c > $PKG/usr/man/man1/strings.1.gz + +# Add just the hostname utilities from net-tools, so that anyone +# installing just the A series will not have a hostname (null): +cd $TMP || exit 1 +rm -rf net-tools-1.60 +tar xvf $CWD/net-tools-1.60.tar.bz2 +cd net-tools-1.60 +zcat $CWD/net-tools_1.60-19.diff.gz | patch -p1 || exit +zcat $CWD/net-tools.diff.gz | patch -p1 || exit +make +make hostname +strip hostname +cat hostname > $PKG/bin/hostname +chmod 755 $PKG/bin/hostname +chown root:root $PKG/bin/hostname +( cd $PKG/bin + ln -sf hostname dnsdomainname + ln -sf hostname nisdomainname + ln -sf hostname ypdomainname + ln -sf hostname domainname +) +cd man/en_US +for page in hostname.1 dnsdomainname.1 nisdomainname.1 ypdomainname.1 \ +domainname.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done + +# Build adjtimex +cd $TMP || exit 1 +rm -rf adjtimex-$ADJTIMEXVERS +tar xvf $CWD/adjtimex_${ADJTIMEXVERS}.orig.tar.gz || exit 1 +cd adjtimex-$ADJTIMEXVERS || exit 1 +chown -R root:root . +zcat $CWD/adjtimex_1.23-1.diff.gz | patch -p1 || exit 1 +CFLAGS=-O2 ./configure --prefix=/usr || exit 1 +make || exit 1 +strip adjtimex +cat adjtimex > $PKG/sbin/adjtimex +chmod 0755 $PKG/sbin/adjtimex +cat adjtimex.8 | gzip -9c > $PKG/usr/man/man8/adjtimex.8.gz +mkdir -p $PKG/usr/doc/adjtimex-$ADJTIMEXVERS +cp -a COPYING COPYRIGHT README README.ru adjtimex.lsm \ + $PKG/usr/doc/adjtimex-$ADJTIMEXVERS + +# Build setserial +cd $TMP || exit 1 +rm -rf setserial-$SETSERIALVERS +tar xvf $CWD/setserial-$SETSERIALVERS.tar.gz || exit 1 +cd setserial-$SETSERIALVERS || exit 1 +chown -R root:root . +zcat $CWD/setserial-rc.serial.diff.gz | patch -E -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . +./configure --prefix=/usr || exit 1 +make || exit 1 +strip setserial +cat setserial > $PKG/sbin/setserial +chmod 0755 $PKG/sbin/setserial +mkdir -p $PKG/etc/rc.d +cat rc.serial > $PKG/etc/rc.d/rc.serial.new +cat serial.conf > $PKG/etc/serial.conf.new +cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz + +# These have always traditionally been available before /usr +# might be mounted: +( cd $PKG/usr/bin + mv getopt setterm $PKG/bin + cd $PKG/usr/bin + ln -s ../../bin/getopt . + ln -s ../../bin/setterm . +) + +cd $TMP/util-linux-ng-$VERSION # Go back home :) + +# Now let's add some important symlinks :) +( cd $PKG/sbin + ln -s ../bin/mount . + ln -s ../bin/umount . + ln -s ziptool jaztool + ln -s hwclock clock + cd $PKG/usr/sbin + ln -s ../../sbin/cfdisk . + ln -s ../../sbin/ctrlaltdel . + ln -s ../../sbin/sfdisk . + cd $PKG/usr/bin + ln -s ../sbin/readprofile . + ln -s ../sbin/tunelp . + ln -s ../../bin/more . + ln -s ../../sbin/raw . + cd $PKG/usr/man/man1 + ln -s ziptool.1 jaztool.1 + cd $PKG/usr/man/man8 + ln -s hwclock.8 clock.8 +) + +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 + +# Compress info page and remove dir file +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/util-linux-ng-$VERSION +cp ABOUT-NLS AUTHORS COPYING DEPRECATED NEWS README* TODO docs/* \ + $PKG/usr/doc/util-linux-ng-$VERSION + +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/util-linux-ng-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff new file mode 100644 index 00000000..a3aa100e --- /dev/null +++ b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff @@ -0,0 +1,11 @@ +--- ./fdisk/i386_sys_types.c.orig 2007-04-25 07:43:38.000000000 -0500 ++++ ./fdisk/i386_sys_types.c 2008-03-31 14:53:52.000000000 -0500 +@@ -53,7 +53,7 @@ + {0x75, N_("PC/IX")}, + {0x80, N_("Old Minix")}, /* Minix 1.4a and earlier */ + {0x81, N_("Minix / old Linux")},/* Minix 1.4b and later */ +- {0x82, N_("Linux swap / Solaris")}, ++ {0x82, N_("Linux swap")}, + {0x83, N_("Linux")}, + {0x84, N_("OS/2 hidden C: drive")}, + {0x85, N_("Linux extended")}, diff --git a/source/a/util-linux-ng/ziptool-fix_build.patch b/source/a/util-linux-ng/ziptool-fix_build.patch new file mode 100644 index 00000000..a2d3d515 --- /dev/null +++ b/source/a/util-linux-ng/ziptool-fix_build.patch @@ -0,0 +1,24 @@ +diff -Nur ziptool-1.4.0.orig/Makefile ziptool-1.4.0/Makefile +--- ziptool-1.4.0.orig/Makefile 2002-08-23 17:13:48.000000000 -0500 ++++ ziptool-1.4.0/Makefile 2009-02-09 16:33:12.913637302 -0600 +@@ -5,10 +5,6 @@ + # + CFLAGS = -O2 -g -Wall + +-# Path to linux kernel sources. +-# +-LINUX_SRC_DIR = /usr/src/linux +- + # Installation directories + # + INSTALL_BIN_DIR = /usr/bin +@@ -30,7 +26,7 @@ + cd $(INSTALL_MAN_DIR)/man1; ln -sf ziptool.1.gz jaztool.1.gz + + ziptool: ziptool.c +- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o ziptool ziptool.c ++ cc $(CFLAGS) -I. -o ziptool ziptool.c + + jaztool: ziptool.c +- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o jaztool ziptool.c ++ cc $(CFLAGS) -I. -o jaztool ziptool.c diff --git a/source/a/which/slack-desc b/source/a/which/slack-desc new file mode 100644 index 00000000..75085fe1 --- /dev/null +++ b/source/a/which/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------------------------------------------------------| +which: which (shows the full path to shell commands) +which: +which: GNU 'which' takes one or more arguments. For each of its arguments it +which: prints to stdout the full path of the executables that would have been +which: executed when this argument had been entered at the shell prompt. It +which: does this by searching for an executable or script in the directories +which: listed in the environment variable PATH using the same algorithm as +which: bash(1). 'Which' is a built-in function in many shells. +which: +which: The GNU version of which was written by Carlo Wood. +which: diff --git a/source/a/which/which.SlackBuild b/source/a/which/which.SlackBuild new file mode 100755 index 00000000..f86fd1da --- /dev/null +++ b/source/a/which/which.SlackBuild @@ -0,0 +1,99 @@ +#!/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.20 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-which + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf which-$VERSION +tar xvf $CWD/which-$VERSION.tar.gz || exit 1 +cd which-$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=-O2 \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir $PKG/bin +mv $PKG/usr/bin/which $PKG/bin +( cd $PKG/usr/bin ; ln -sf ../../bin/which which ) + +# 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/usr/doc/which-$VERSION +cp -a \ + AUTHORS COPYING EXAMPLES NEWS README README.alias \ + $PKG/usr/doc/which-$VERSION + +# Strip everything for good measure: +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/which-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/xfsprogs/slack-desc b/source/a/xfsprogs/slack-desc new file mode 100644 index 00000000..25f37656 --- /dev/null +++ b/source/a/xfsprogs/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------------------------------------------------------| +xfsprogs: xfsprogs (tools to use the XFS filesystem) +xfsprogs: +xfsprogs: XFS is a high performance journaling filesystem which originated +xfsprogs: on the SGI IRIX platform. It is completely multi-threaded, can +xfsprogs: support large files and large filesystems, extended attributes, +xfsprogs: variable block sizes, is extent based, and makes extensive use of +xfsprogs: Btrees (directories, extents, free space) to aid both performance +xfsprogs: and scalability. +xfsprogs: +xfsprogs: +xfsprogs: diff --git a/source/a/xfsprogs/xfsprogs.SlackBuild b/source/a/xfsprogs/xfsprogs.SlackBuild new file mode 100755 index 00000000..7ef1c07c --- /dev/null +++ b/source/a/xfsprogs/xfsprogs.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=3.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xfsprogs + +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 xfsprogs-$VERSION +tar xvf $CWD/xfsprogs-$VERSION.tar.?z* || exit 1 +cd xfsprogs-$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 sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --sbindir=/sbin \ + --bindir=/usr/sbin \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --docdir=/usr/doc/xfsprogs-$VERSION \ + --enable-shared=yes \ + --enable-gettext=yes \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DIST_ROOT=$PKG +make install-dev DIST_ROOT=$PKG + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/xfsprogs $PKG/usr/doc/xfsprogs-$VERSION +#It would be nice to keep the same timestamps that the files have in the source: +cp -a README doc/COPYING doc/CREDITS doc/PORTING \ + $PKG/usr/doc/xfsprogs-$VERSION + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/*.so \ + $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib/libhandle.so a symlink to /lib/libhandle.so.1: +if [ -f $PKG/lib${LIBDIRSUFFIX}/libhandle.so.1 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libhandle.so + ln -sf /lib${LIBDIRSUFFIX}/libhandle.so.1 libhandle.so + ) +else + exit 1 + # and fix your script! ;-) +fi +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Strip libraries: +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}/*.a + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xfsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/xz/slack-desc b/source/a/xz/slack-desc new file mode 100644 index 00000000..af549b35 --- /dev/null +++ b/source/a/xz/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------------------------------------------------------| +xz: xz (compression utility based on the LZMA algorithm) +xz: +xz: LZMA is a general purporse compression algorithm designed by Igor +xz: Pavlov as part of 7-Zip. It provides high compression ratio while +xz: keeping the decompression speed fast. XZ Utils are an attempt to make +xz: LZMA compression easy to use on free (as in freedom) operating +xz: systems. +xz: +xz: The people most responsible for xz are Igor Pavlov, Ville Koskinen, +xz: and Lasse Collin. For more info: http://tukaani.org/xz/ +xz: diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild new file mode 100755 index 00000000..24033417 --- /dev/null +++ b/source/a/xz/xz.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# 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=xz +VERSION=${VERSION:-4.999.8beta} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + LIBDIRSUFFIX="" + ;; + arm) SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" + ;; + armel) SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ;; + +esac + +CWD=$(pwd) +# Temporary build location. This should *NOT* be a directory +# path a non-root user could create later... +TMP=${TMP:-/xz-tmp-$(mcookie)} +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 +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 \ + --enable-shared \ + --disable-static \ + --disable-rpath \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make || exit 1 +make DESTDIR=$PKG install + +# It might be advisable to have the libraries in /lib${LIBDIRSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/liblzma.so.* $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f liblzma.so + ln -sf ../../lib${LIBDIRSUFFIX}/liblzma.so.? liblzma.so +) + +# At least the xz binary should also be in /bin: +mkdir -p $PKG/bin +mv $PKG/usr/bin/xz $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/xz . +) + +# 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/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README* THANKS doc/* \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +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}.tgz + diff --git a/source/a/zoo/slack-desc b/source/a/zoo/slack-desc new file mode 100644 index 00000000..f517e17a --- /dev/null +++ b/source/a/zoo/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------------------------------------------------------| +zoo: zoo (archiving and compressing utility) +zoo: +zoo: Zoo is used to create and maintain collections of files in compressed +zoo: form. It uses a Lempel-Ziv compression algorithm that gives space +zoo: savings in the range of 20% to 80% depending on the type of file data. +zoo: Zoo can store and selectively extract multiple generations of the same +zoo: file. Data can be recovered from damaged archives by skipping the +zoo: damaged portion and locating undamaged data with the help of fiz(1). +zoo: +zoo: Zoo was written by Rahul Dhesi. +zoo: diff --git a/source/a/zoo/zoo.SlackBuild b/source/a/zoo/zoo.SlackBuild new file mode 100755 index 00000000..c667b076 --- /dev/null +++ b/source/a/zoo/zoo.SlackBuild @@ -0,0 +1,78 @@ +#!/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.10 +DEBPATCH=18 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-zoo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zoo-$VERSION +tar xzvf $CWD/zoo-$VERSION.tar.gz +cd zoo-$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/zoo_${VERSION}-${DEBPATCH}.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +for diff in debian/patches/*.dpatch ; do + cat $diff | patch -p1 --verbose --backup --suffix=.orig || exit 1 +done +make linux || exit 1 +mkdir -p $PKG/usr/bin +cat fiz > $PKG/usr/bin/fiz +cat zoo > $PKG/usr/bin/zoo +chmod 755 $PKG/usr/bin/* +mkdir -p $PKG/usr/man/man1 +for page in fiz.1 zoo.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +mkdir -p $PKG/usr/doc/zoo-${VERSION} +cp -a \ + Copyright Install \ + $PKG/usr/doc/zoo-${VERSION} + +# Strip everything for good measure: +( 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/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/zoo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/zoo/zoo_2.10-18.diff b/source/a/zoo/zoo_2.10-18.diff new file mode 100644 index 00000000..b0c74134 --- /dev/null +++ b/source/a/zoo/zoo_2.10-18.diff @@ -0,0 +1,1285 @@ +--- zoo-2.10.orig/debian/patches/01_old_fixes.dpatch ++++ zoo-2.10/debian/patches/01_old_fixes.dpatch +@@ -0,0 +1,597 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 01_old_fixes.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Old fixes, that were made before this package has changed to use dpatch. ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/ar.h zoo-2.10/ar.h ++--- zoo-2.10~/ar.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/ar.h 2005-11-16 17:28:23.308950960 -0200 ++@@ -7,6 +7,7 @@ ++ ***********************************************************/ ++ ++ #include <stdio.h> +++#include <sys/types.h> ++ ++ #ifdef ANSI_HDRS ++ # include <limits.h> ++@@ -15,9 +16,11 @@ ++ /* uchar should be 8 bits or more */ ++ /* typedef unsigned char uchar; -- already in zoo.h */ ++ +++#ifndef _SYS_TYPES_H ++ typedef unsigned int uint; /* 16 bits or more */ ++ typedef unsigned short ushort; /* 16 bits or more */ ++ typedef unsigned long ulong; /* 32 bits or more */ +++#endif ++ ++ /* T_UINT16 must be #defined in options.h to be ++ a 16-bit unsigned integer type */ ++diff -urNad zoo-2.10~/basename.c zoo-2.10/basename.c ++--- zoo-2.10~/basename.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/basename.c 2005-11-16 17:28:23.308950960 -0200 ++@@ -18,7 +18,7 @@ ++ ++ /* This function strips device/directory information from ++ a pathname and returns just the plain filename */ ++-void basename (pathname, fname) +++void zoo_basename (pathname, fname) ++ char *pathname; ++ char fname[]; ++ { ++diff -urNad zoo-2.10~/fiz.1 zoo-2.10/fiz.1 ++--- zoo-2.10~/fiz.1 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/fiz.1 2005-11-16 17:28:23.309950808 -0200 ++@@ -5,7 +5,7 @@ ++ .\" ++ .TH FIZ 1 "Jan 31, 1988" ++ .SH NAME ++-fiz \- analyze damaged zoo archive for data revovery +++fiz \- analyze damaged zoo archive for data recovery ++ .SH SYNOPSIS ++ .I fiz ++ .RB archive[ .zoo ] ++diff -urNad zoo-2.10~/linux.c zoo-2.10/linux.c ++--- zoo-2.10~/linux.c 1969-12-31 21:00:00.000000000 -0300 +++++ zoo-2.10/linux.c 2005-11-16 17:28:23.310950656 -0200 ++@@ -0,0 +1,73 @@ +++/* machine.c for Linux. */ +++ +++/* Basically code stolen from bsd.c, and adjusted for Linux. */ +++ +++#include <sys/stat.h> +++#include <sys/time.h> +++#include <unistd.h> +++ +++/* Function isadir() returns 1 if the supplied handle is a directory, +++ * else it returns 0. */ +++ +++int isadir (ZOOFILE f) +++{ +++ struct stat buffer; /* buffer to hold file information */ +++ +++ if (fstat (fileno (f), &buffer) == -1) +++ return (0); /* inaccessible -- assume not dir */ +++ else +++ { +++ if (buffer.st_mode & S_IFDIR) +++ return (1); +++ else +++ return (0); +++ } +++} +++ +++ +++/* Standard UNIX-compatible time routines */ +++#include "nixtime.i" +++ +++/* Standard UNIX-specific file attribute routines */ +++#include "nixmode.i" +++ +++/* Function gettz() returns the offset from GMT in seconds */ +++long gettz() +++{ +++#define SEC_IN_DAY (24L * 60L * 60L) +++#define INV_VALUE (SEC_IN_DAY + 1L) +++ +++ static long retval = INV_VALUE; /* cache, init to impossible value */ +++ struct timeval tp; +++ struct timezone tzp; +++ +++ if (retval != INV_VALUE) /* if have cached value, return it */ +++ return retval; +++ +++ gettimeofday (&tp, &tzp); +++ +++ retval = tzp.tz_minuteswest * 60 - tzp.tz_dsttime * 3600L; +++ return retval; +++} +++ +++/* Function fixfname() converts the supplied filename to a syntax +++ * legal for the host system. It is used during extraction. +++ * Undocumented */ +++ +++char *fixfname(char *fname) +++{ +++ return fname; /* default is no-op */ +++} +++ +++/* Function zootrunc() truncates the file passed to it. +++ * Undocumented. */ +++ +++int zootrunc(FILE *f) +++{ +++ long seekpos; +++ int fd = fileno(f); +++ +++ seekpos = lseek(fd, 0L, SEEK_CUR); +++ if (seekpos >= 0) +++ return ftruncate(fd, seekpos); +++} ++diff -urNad zoo-2.10~/machine.c zoo-2.10/machine.c ++--- zoo-2.10~/machine.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/machine.c 2005-11-16 17:28:23.310950656 -0200 ++@@ -48,6 +48,10 @@ ++ /* PART 2. FOR EACH SPECIFIC SYSTEM, INCLUDE A C FILE HERE. */ ++ /***********************************************************************/ ++ +++#ifdef LINUX +++#include "linux.c" +++#endif +++ ++ #ifdef SYS_V ++ #include "sysv.c" ++ #endif ++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile ++--- zoo-2.10~/makefile 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/makefile 2005-11-16 17:28:23.311950504 -0200 ++@@ -23,7 +23,7 @@ ++ MODEL = ++ EXTRA = -DBIG_MEM -DNDEBUG ++ LINTFLAGS = -DLINT ++-OPTIM = -O +++OPTIM = -O -Wall ++ DESTDIR = /usr/local/bin ++ ++ #List of all object files created for Zoo ++@@ -53,6 +53,7 @@ ++ @echo "ultrix: ULTRIX 4.1" ++ @echo "convex: Convex C200 series" ++ @echo "sysv: System V Release 2 or 3; or SCO Xenix" +++ @echo "linux: Linux" ++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS" ++ @echo "xenix286: Older Xenix/286 (not tested)" ++ @echo "xenix68k: Xenix/68000 (not tested)" ++@@ -94,6 +95,10 @@ ++ bsd: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DBSD4_3" $(TARGETS) ++ +++# Linux +++linux: +++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS) +++ ++ # ULTRIX 4.1 ++ ultrix: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS) ++@@ -235,7 +240,11 @@ ++ parse.o: zoofns.h zooio.h ++ portable.o: /usr/include/stdio.h assert.h debug.h machine.h options.h ++ portable.o: portable.h various.h zoo.h zoofns.h zooio.h ++-prterror.o: /usr/include/stdio.h /usr/include/varargs.h options.h various.h +++ +++# I deleted varags.h dependancy from prterror.o since that is a +++# dependancy covered by a #ifdef, and in Debian's case #undef'ed +++ +++prterror.o: /usr/include/stdio.h options.h various.h ++ prterror.o: zoofns.h zooio.h ++ sysv.o: /usr/include/sys/stat.h /usr/include/sys/types.h /usr/include/time.h ++ sysv.o: nixmode.i nixtime.i ++diff -urNad zoo-2.10~/makelist.c zoo-2.10/makelist.c ++--- zoo-2.10~/makelist.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/makelist.c 2005-11-16 17:28:23.311950504 -0200 ++@@ -21,6 +21,8 @@ ++ ++ char *nameptr PARMS((char *)); ++ void modpath PARMS((char *)); +++int isadir PARMS((ZOOFILE)); +++int isfdir PARMS((char *)); ++ ++ /*******************/ ++ /* ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/misc.c 2005-11-16 17:28:23.313950200 -0200 ++@@ -8,6 +8,7 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <signal.h> ++ #include "options.h" ++ /* Miscellaneous functions needed by Zoo but not by Ooz */ ++ ++@@ -201,7 +202,7 @@ ++ ZOOFILE zoo_file; ++ { ++ #ifndef NOSIGNAL ++- T_SIGNAL (*oldsignal)(); +++ T_SIGNAL (*oldsignal)(int); ++ oldsignal = signal (SIGINT, SIG_IGN); ++ #endif ++ if (fwr_dir (direntry, zoo_file) == -1) ++diff -urNad zoo-2.10~/misc2.c zoo-2.10/misc2.c ++--- zoo-2.10~/misc2.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/misc2.c 2005-11-16 17:28:23.312950352 -0200 ++@@ -7,6 +7,10 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <sys/stat.h> +++#include <sys/types.h> +++#include <fcntl.h> +++#include <unistd.h> ++ #include "options.h" ++ /* Miscellaneous routines */ ++ #include "portable.h" ++diff -urNad zoo-2.10~/nixtime.i zoo-2.10/nixtime.i ++--- zoo-2.10~/nixtime.i 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/nixtime.i 2005-11-16 17:28:23.313950200 -0200 ++@@ -10,6 +10,9 @@ ++ ++ -- Rahul Dhesi 1986/12/31 ++ */ +++#include <sys/types.h> +++#include <time.h> +++#include <utime.h> ++ ++ struct tm *localtime(); ++ ++@@ -51,9 +54,10 @@ ++ { ++ long mstonix(); ++ long gettz(); ++- long utimbuf[2]; ++- utimbuf[0] = utimbuf[1] = gettz() + mstonix (date, time); ++- return (utime (path, utimbuf)); +++ struct utimbuf utbf; +++ +++ utbf.actime = utbf.modtime = gettz() + mstonix (date, time); +++ return (utime (path, &utbf)); ++ } ++ ++ /**************** ++diff -urNad zoo-2.10~/options.h zoo-2.10/options.h ++--- zoo-2.10~/options.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/options.h 2005-11-16 17:28:23.314950048 -0200 ++@@ -13,6 +13,32 @@ ++ ++ ++ /***********************************************************************/ +++/* Linux */ +++/***********************************************************************/ +++ +++#ifdef LINUX +++#define FILTER +++#define IO_MACROS +++#define EXISTS(f) (access(f, 00) == 0) +++#define FNLIMIT 1023 +++#define CHEKDIR +++#define NIXTIME +++#define NIXFNAME +++#define NEEDCTYP +++#define NOENUM +++#define REN_STDC +++#define SETBUF +++#define GETTZ +++#define FATTR +++#define T_SIGNAL void +++#define STDARG +++#define HAVE_ISATTY /* undocumented #define option */ +++#define ANSI_PROTO +++#define VOIDPTR void * +++#define NO_STDIO_FN /* Do we need this? RUARI QUINN */ +++#endif /* Linux */ +++ +++/***********************************************************************/ ++ /* SYSTEM V (should be compatible with most releases) */ ++ /***********************************************************************/ ++ ++diff -urNad zoo-2.10~/portable.h zoo-2.10/portable.h ++--- zoo-2.10~/portable.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/portable.h 2005-11-16 17:28:23.314950048 -0200 ++@@ -90,6 +90,12 @@ ++ #define MKDIR(x) mkdir(x, 0777) ++ #endif ++ +++/* Linux */ +++#ifdef LINUX +++#define NIX_IO /* standard **IX I/O */ +++#define MKDIR(x) mkdir(x, 0777) +++#endif +++ ++ /* Amiga */ ++ #ifdef MCH_AMIGA ++ # include "MCH_AMIGA NEEDS REVISION" ++diff -urNad zoo-2.10~/zoo.1 zoo-2.10/zoo.1 ++--- zoo-2.10~/zoo.1 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.1 2005-11-16 17:33:56.112357152 -0200 ++@@ -955,7 +955,7 @@ ++ 2526: DIR [changes] ==> 95 ++ 2587: DATA ++ **************** ++- 3909: DIR [copyrite] ==> 1478 +++ 3909: DIR [copyright] ==> 1478 ++ 3970: DATA ++ 4769: DATA ++ **************** ++@@ -1041,7 +1041,7 @@ ++ Matches any sequence of zero or more characters. ++ .PP ++ .TP ++-.B \? +++.B ? ++ Matches any single character. ++ .sp 1 ++ Arbitrary combinations of ++@@ -1466,23 +1466,12 @@ ++ .I zoo ++ on all systems. So far as I can tell, this ++ upward compatibility (all manipulations) and downward ++-compatiblity (ability to extract and list) +++compatibility (ability to extract and list) ++ is maintained by ++ .I zoo ++ versions up to 2.01. Version 2.1 adds the incompatibility ++ that if high-performance compression is used, earlier ++ versions cannot extract files compressed with version 2.1. ++-This is the only incompatibility that is permissible. ++-You are forbidden, with the force of ++-copyright law, to create from the ++-.I zoo ++-source code any derivative work ++-that violates this compatibility goal, ++-whether knowingly or through negligence. ++-If any violation of this ++-compatibility goal is observed, ++-this should be ++-considered a serious problem and reported to me. ++ .SH CHANGES ++ Here is a list of changes occurring from version 1.50 to ++ version 2.01. In parentheses is given the version in which each ++@@ -1581,7 +1570,7 @@ ++ .TP ++ \- ++ (2.01) Blanks around equal signs in commands given to "make" ++-were removed from the mk* scripts for better compatiblity +++were removed from the mk* scripts for better compatibility ++ with more **IX implementations including Sun's. ++ .TP ++ \- ++diff -urNad zoo-2.10~/zoo.c zoo-2.10/zoo.c ++--- zoo-2.10~/zoo.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.c 2005-11-16 17:28:23.319949288 -0200 ++@@ -15,6 +15,7 @@ ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ #include "zooio.h" ++ #include "various.h" ++diff -urNad zoo-2.10~/zoo.h zoo-2.10/zoo.h ++--- zoo-2.10~/zoo.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.h 2005-11-16 17:28:23.321948984 -0200 ++@@ -1,5 +1,6 @@ ++ /* derived from: zoo.h 2.16 88/01/27 23:21:36 */ ++- +++#ifndef ZOO_H +++#define ZOO_H ++ /* ++ The contents of this file are hereby released to the public domain. ++ ++@@ -240,3 +241,4 @@ ++ #define MAXGEN 0x0f ++ /* version mask to prune down to correct size on large-word machines */ ++ #define VER_MASK 0xffff +++#endif ++diff -urNad zoo-2.10~/zooadd.c zoo-2.10/zooadd.c ++--- zoo-2.10~/zooadd.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooadd.c 2005-11-16 17:28:23.318949440 -0200 ++@@ -9,11 +9,13 @@ ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ /* Adds files specified in parameter-list to archive zoo_path. */ ++ ++ #define LONGEST 20 /* assumed length of longest filename */ ++ #include "zoomem.h" /* to define MAXADD */ +++#undef PORTABLE ++ #include "zoo.h" ++ #include "zooio.h" ++ #include "various.h" ++@@ -37,6 +39,7 @@ ++ void copyfields PARMS ((struct direntry *, struct tiny_header *)); ++ void storefname PARMS ((struct direntry *, char *, int)); ++ char *choosefname PARMS ((struct direntry *)); +++int isadir PARMS((ZOOFILE)); ++ ++ extern struct zoo_header zoo_header; ++ ++@@ -132,7 +135,7 @@ ++ ++ if (zoo_file == NOFILE) ++ prterror ('f', could_not_open, zoo_path); ++-basename(zoo_path, zoo_fname); /* get basename of archive */ +++zoo_basename(zoo_path, zoo_fname); /* get basename of archive */ ++ rootname (zoo_path, zoo_bak); /* name without extension */ ++ strcat (zoo_bak, BACKUP_EXT); /* name of backup of this archive */ ++ ++@@ -222,7 +225,7 @@ ++ break; ++ } ++ ++- basename (this_path, this_fname); /* get just filename for later */ +++ zoo_basename (this_path, this_fname); /* get just filename for later */ ++ ++ this_file = zooopen(this_path, Z_READ); ++ if (this_file == NOFILE) { ++diff -urNad zoo-2.10~/zooadd2.c zoo-2.10/zooadd2.c ++--- zoo-2.10~/zooadd2.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooadd2.c 2005-11-16 17:28:23.317949592 -0200 ++@@ -7,7 +7,9 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" +++#undef PORTABLE ++ #include "zoo.h" ++ #ifndef OK_STDIO ++ #include <stdio.h> ++@@ -20,7 +22,7 @@ ++ #include "assert.h" ++ #include "debug.h" ++ #include "parse.h" ++- +++int isfdir PARMS((char *)); ++ /* ++ Miscellaneous routines to support zooadd(). ++ */ ++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c ++--- zoo-2.10~/zooext.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooext.c 2005-11-16 17:28:23.320949136 -0200 ++@@ -14,7 +14,8 @@ ++ /* Extract file from archive. Extracts files specified in parameter-list ++ from archive zoo_path. If none specified, extracts all files from ++ archive. */ ++- +++#include <unistd.h> +++#include <signal.h> ++ #include "options.h" ++ #include "zoo.h" ++ #include "parse.h" /* defines struct for parse() */ ++@@ -62,7 +63,7 @@ ++ char *whichname; /* which name to extract */ ++ char matchname[PATHSIZE]; /* for pattern matching only */ ++ #ifndef NOSIGNAL ++-T_SIGNAL (*oldsignal)(); /* to save previous SIGINT handler */ +++T_SIGNAL (*oldsignal)(int); /* to save previous SIGINT handler */ ++ #endif ++ ZOOFILE zoo_file; /* open archive */ ++ long next_ptr; /* pointer to within archive */ ++@@ -626,7 +627,7 @@ ++ ++ /* Ctrl_c() is called if ^C is hit while a file is being extracted. ++ It closes the files, deletes it, and exits. */ ++-T_SIGNAL ctrl_c() +++T_SIGNAL ctrl_c(int dummy) ++ { ++ #ifndef NOSIGNAL ++ signal (SIGINT, SIG_IGN); /* ignore any more */ ++diff -urNad zoo-2.10~/zoofns.h zoo-2.10/zoofns.h ++--- zoo-2.10~/zoofns.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoofns.h 2005-11-16 17:28:23.320949136 -0200 ++@@ -42,12 +42,12 @@ ++ int cfactor PARMS ((long, long)); ++ int chname PARMS ((char *, char *)); ++ int cmpnum PARMS ((unsigned int, unsigned int, unsigned int, unsigned int)); ++-T_SIGNAL ctrl_c PARMS ((void)); +++T_SIGNAL ctrl_c PARMS ((int)); ++ int exists PARMS ((char *)); ++ int getfile PARMS ((ZOOFILE, ZOOFILE, long, int)); ++ int getutime PARMS ((char *, unsigned *, unsigned *)); ++ int gettime PARMS ((ZOOFILE, unsigned *, unsigned *)); ++-T_SIGNAL handle_break PARMS ((void)); +++T_SIGNAL handle_break PARMS ((int)); ++ ++ #ifdef USE_ASCII ++ int isupper PARMS ((int)); ++@@ -85,7 +85,7 @@ ++ void addfname PARMS ((char *, long, unsigned int, unsigned int, ++ unsigned, unsigned)); ++ void add_version PARMS ((char *, struct direntry *)); ++-void basename PARMS ((char *, char [])); +++void zoo_basename PARMS ((char *, char [])); ++ void break_off PARMS ((void)); ++ void close_file PARMS ((ZOOFILE)); ++ void comment PARMS ((char *, char *)); ++diff -urNad zoo-2.10~/zooio.h zoo-2.10/zooio.h ++--- zoo-2.10~/zooio.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooio.h 2005-11-16 17:28:23.321948984 -0200 ++@@ -7,6 +7,7 @@ ++ ++ -- Rahul Dhesi 1988/01/24 ++ */ +++#include "zoo.h" ++ #ifndef OK_STDIO ++ #include <stdio.h> ++ #define OK_STDIO ++diff -urNad zoo-2.10~/zoolist.c zoo-2.10/zoolist.c ++--- zoo-2.10~/zoolist.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoolist.c 2005-11-16 17:28:23.322948832 -0200 ++@@ -47,6 +47,7 @@ ++ int ver_too_high PARMS((struct zoo_header *)); ++ int needed PARMS((char *, struct direntry *, struct zoo_header *)); ++ void printtz PARMS((int)); +++int fputchar PARMS ((int)); ++ ++ void zoolist (argv, option, argc) ++ char **argv, *option; ++@@ -414,7 +415,7 @@ ++ if (direntry.fattr == 0) ++ printf ("--- "); ++ else if ((direntry.fattr >> 22) == 1) ++- printf ("%03o ", direntry.fattr & 0x1ff); +++ printf ("%03lo ", direntry.fattr & 0x1ff); ++ else ++ printf ("??? "); ++ } ++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c ++--- zoo-2.10~/zoopack.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoopack.c 2005-11-16 17:28:23.323948680 -0200 ++@@ -10,6 +10,7 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ /* Packs an archive. The sequence is: ++ 1. Copy all files from current archive to new one. ++@@ -171,7 +172,7 @@ ++ } else { ++ strcpy (temp_file, xes); ++ } ++-mktemp (temp_file); /* ... and make unique */ +++mkstemp (temp_file); /* ... and make unique */ ++ new_file = zoocreate (temp_file); ++ if (new_file == NOFILE) ++ prterror ('f', "Could not create temporary file %s.\n", temp_file); ++@@ -388,7 +389,7 @@ ++ ++ /* handle_break() */ ++ /* Sets break_hit to 1 when called */ ++-T_SIGNAL handle_break() +++T_SIGNAL handle_break(int dummy) ++ { ++ #ifndef NOSIGNAL ++ signal (SIGINT, SIG_IGN); /* ignore future control ^Cs for now */ +--- zoo-2.10.orig/debian/patches/00options ++++ zoo-2.10/debian/patches/00options +@@ -0,0 +1 @@ ++DPEP_OPTION_EXEC_TEMPLATE=1 +--- zoo-2.10.orig/debian/patches/00list ++++ zoo-2.10/debian/patches/00list +@@ -0,0 +1,5 @@ ++01_old_fixes ++02_traversal_directory ++03_fix_manage_archive_under_AMD64 ++04_fix_fullpath_buffer_overflow ++05_CVE-2006-1269.dpatch +--- zoo-2.10.orig/debian/patches/00template ++++ zoo-2.10/debian/patches/00template +@@ -0,0 +1,43 @@ ++#!/bin/sh ++# Sample debian/patches/00template script ++# era Thu May 15 23:24:07 2003 ++ ++# This simply creates the equivalent of the hard-coded template. ++# Adapt and hack to suit your needs. ++ ++file="$1" ++shift ++description="$@" ++ ++fullnameguess="$(getent passwd $(id -un) | cut -f5 -d: | cut -f1 -d,)" ++domainguess=$([ -f /etc/mailname ] && cat /etc/mailname || hostname -f) ++emailguess="${DEBEMAIL:-${EMAIL:-$(logname)@${domainguess}}}" ++ ++cat <<EOF ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## ${file} by ${DEBFULLNAME:-$fullnameguess} <$emailguess> ++## ++## All lines beginning with \`## DP:' are a description of the patch. ++## DP: ${description:-No description} ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="\${patch_opts:--f --no-backup-if-mismatch \${2:+-d \$2}}" ++ ++if [ \$# -lt 1 ]; then ++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "\$1" in ++ -patch) patch \$patch_opts -p1 < \$0;; ++ -unpatch) patch \$patch_opts -p1 -R < \$0;; ++ *) ++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++EOF ++ +--- zoo-2.10.orig/debian/patches/02_traversal_directory.dpatch ++++ zoo-2.10/debian/patches/02_traversal_directory.dpatch +@@ -0,0 +1,70 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 02_traversal_directory.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: patch to solve problem with "directory traversal bug" CVE id CAN-2005-2349 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10/portable.c /tmp/dpep.W7Aoaj/zoo-2.10/portable.c ++--- zoo-2.10/portable.c 2005-07-22 15:34:22.000000000 -0300 +++++ /tmp/dpep.W7Aoaj/zoo-2.10/portable.c 2005-07-25 14:43:57.757855384 -0300 ++@@ -364,6 +364,41 @@ ++ show_dir(direntry); ++ } ++ #endif +++ /* ######################################################################### +++ * +++ * THIS CODE WAS WRITTEN TO SOLVE PROBLEM WITH DIRECTORY TRAVERSAL SECURITY +++ * BUG (CVE id CAN-2005-2349). +++ * +++ * ######################################################################## +++ */ +++ char *p; +++ /* take off '../' */ +++ while ((p = strstr( direntry->dirname, "../" )) != NULL) { +++ while (*(p+3) != '\0') { +++ *p = *(p + 3); +++ p++; +++ } +++ *p = *(p+3); /* move last null */ +++ //printf("zoo: skipped \"../\" path component in '%s'\n", direntry->dirname); +++ } +++ /* take off '/' */ +++ if ( direntry->dirname[0] == '/' ) { +++ p = direntry->dirname; +++ while (*p != '\0') { +++ *p = *(p + 1); +++ p++; +++ } +++ *p = *(p+1); /* move last null */ +++ //printf("zoo: skipped \"/\" path component in '%s'\n", direntry->dirname); +++ } +++ /* direntry->dirlen = strlen(direntry->dirname); */ +++ +++ /* ################################################################## +++ * +++ * END +++ * +++ * ################################################################### +++ */ ++ return (0); ++ } ++ +--- zoo-2.10.orig/debian/patches/03_fix_manage_archive_under_AMD64.dpatch ++++ zoo-2.10/debian/patches/03_fix_manage_archive_under_AMD64.dpatch +@@ -0,0 +1,107 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 03_fix_manage_archive_under_AMD64.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: patch to solve problems managing files under AMD64 and maybe under others 64 archs. ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile ++--- zoo-2.10~/makefile 2005-11-16 12:10:06.773065688 -0200 +++++ zoo-2.10/makefile 2005-11-16 12:12:50.816127352 -0200 ++@@ -54,6 +54,7 @@ ++ @echo "convex: Convex C200 series" ++ @echo "sysv: System V Release 2 or 3; or SCO Xenix" ++ @echo "linux: Linux" +++ @echo "linux64: Linux with 64 bit long" ++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS" ++ @echo "xenix286: Older Xenix/286 (not tested)" ++ @echo "xenix68k: Xenix/68000 (not tested)" ++@@ -99,6 +100,10 @@ ++ linux: ++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS) ++ +++# Linux64 +++linux64: +++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DLONG64 -DANSI_HDRS" $(TARGETS) +++ ++ # ULTRIX 4.1 ++ ultrix: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS) ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2005-11-16 12:10:06.775065384 -0200 +++++ zoo-2.10/misc.c 2005-11-16 12:20:48.366528656 -0200 ++@@ -173,7 +173,11 @@ ++ ++ frd_zooh (header, zoo_file); ++ +++#ifdef LONG64 +++ if ((int)(header->zoo_start = header->zoo_minus) != 0) +++#else ++ if ((header->zoo_start + header->zoo_minus) != 0L) +++#endif ++ prterror ('f', failed_consistency); ++ if (ver_too_high (header)) ++ prterror ('f', wrong_version, header->major_ver, header->minor_ver); ++diff -urNad zoo-2.10~/zoodel.c zoo-2.10/zoodel.c ++--- zoo-2.10~/zoodel.c 1991-07-05 13:00:00.000000000 -0300 +++++ zoo-2.10/zoodel.c 2005-11-16 12:20:19.776874944 -0200 ++@@ -138,7 +138,11 @@ ++ ++ /* read archive header */ ++ frd_zooh (&zoo_header, zoo_file); +++#ifdef LONG64 +++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) +++#else ++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) +++#endif ++ prterror ('f', failed_consistency); ++ if (ver_too_high (&zoo_header)) ++ prterror ('f', wrong_version, zoo_header.major_ver, zoo_header.minor_ver); ++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c ++--- zoo-2.10~/zooext.c 2005-11-16 12:10:06.783064168 -0200 +++++ zoo-2.10/zooext.c 2005-11-16 12:22:08.373365768 -0200 ++@@ -164,7 +164,11 @@ ++ } else { ++ /* read header */ ++ frd_zooh (&zoo_header, zoo_file); +++#ifdef LONG64 +++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) { +++#else ++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) { +++#endif ++ prterror ('w', failed_consistency); ++ bad_header++; ++ exit_status = 1; ++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c ++--- zoo-2.10~/zoopack.c 2005-11-16 12:10:06.786063712 -0200 +++++ zoo-2.10/zoopack.c 2005-11-16 12:23:01.145343208 -0200 ++@@ -140,7 +140,11 @@ ++ /* Read the header of the old archive. */ ++ frd_zooh(&old_zoo_header, zoo_file); ++ +++#ifdef LONG64 +++if ((int)(old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0) { +++#else ++ if ((old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0L) { +++#endif ++ prterror ('w', failed_consistency); ++ ++bad_header; /* remember for future error message */ ++ } +--- zoo-2.10.orig/debian/patches/04_fix_fullpath_buffer_overflow.dpatch ++++ zoo-2.10/debian/patches/04_fix_fullpath_buffer_overflow.dpatch +@@ -0,0 +1,44 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 04_fix_fullpath_buffer_overflow.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Fix "fullpath()" File Name Handling Buffer Overflow, CAN-2006-0855 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2006-03-03 18:51:31.000000000 -0300 +++++ zoo-2.10/misc.c 2006-03-03 18:54:29.000000000 -0300 ++@@ -136,11 +136,14 @@ ++ char *fullpath (direntry) ++ struct direntry *direntry; ++ { ++- static char result[PATHSIZE]; +++ static char result[PATHSIZE+PATHSIZE+12]; // Room for enough space ++ combine (result, ++ direntry->dirlen != 0 ? direntry->dirname : "", ++ (direntry->namlen != 0) ? direntry->lfname : direntry->fname ++ ); +++ if (strlen (result) >= PATHSIZE) { +++ prterror ('f', "Combined dirname and filename too long\n"); +++ } ++ return (result); ++ } ++ +--- zoo-2.10.orig/debian/patches/05_CVE-2006-1269.dpatch ++++ zoo-2.10/debian/patches/05_CVE-2006-1269.dpatch +@@ -0,0 +1,37 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 05_CVE-2006-1269.dpatch by Alec Berryman <alec@thened.net> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=183426 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/parse.c zoo-2.10/parse.c ++--- zoo-2.10~/parse.c 1991-07-05 17:00:00.000000000 +0100 +++++ zoo-2.10/parse.c 2006-05-18 14:16:32.000000000 +0100 ++@@ -39,7 +39,7 @@ ++ char *namep; /* points to relevant part of tempname */ ++ ++ char *p; ++- strcpy (tempname, fname); +++ strncpy (tempname, fname, LFNAMESIZE); ++ ++ #ifdef DEBUG ++ printf ("parse: supplied name is [%s].\n", tempname); +--- zoo-2.10.orig/debian/compat ++++ zoo-2.10/debian/compat +@@ -0,0 +1 @@ ++5 +--- zoo-2.10.orig/debian/changelog ++++ zoo-2.10/debian/changelog +@@ -0,0 +1,139 @@ ++zoo (2.10-18) unstable; urgency=low ++ ++ * Added patch to solve "CVE-2006-1269: local arbitrary code execution", ++ thanks to Alec Berryman <alec@thened.net> (closes: #367858) ++ * Updated to DH_COMPAT 5 ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 19 May 2006 19:23:24 -0300 ++ ++zoo (2.10-17) unstable; urgency=low ++ ++ * Added 04_fix_fullpath_buffer_overflow patch to fix a Buffer Overflow, ++ CAN-2006-0855. Thanks to Jean-SébastienGuay-Leroux ++ <jean-sebastien_at_guay-leroux.com>, (closes: #354461) ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 3 Mar 2006 18:56:02 -0300 ++ ++zoo (2.10-16) unstable; urgency=low ++ ++ * Added 03_fix_manage_archive_under_AMD64 patch, thanks to carlj ++ <Carl.Johnson.carlj@peak.org>. (closes: #335114) ++ * Updated debian/rules to test and compile to AMD64. ++ * Updated to Standards-Version 3.6.2. ++ * Changed 01_old_fixes dpatch to solve problem "missing \?" in zoo.1. ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Wed, 16 Nov 2005 16:48:24 -0200 ++ ++zoo (2.10-15) unstable; urgency=low ++ ++ * Added dpatch as Build-Depends in debian/control. ++ * Added debian/watch file. (closes: #322246) ++ * Updated linux.c in 01_old_fixes. (closes: #322194) ++ Thanks to Robert Millan <rmh@aybabtu.com> ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 9 Aug 2005 15:07:48 -0300 ++ ++zoo (2.10-14) unstable; urgency=low ++ ++ * Changed call from "mktemp" to "mkstemp" in zoopack.c file. ++ * Added debian/patches/00options, debian/patches/00list and ++ debian/patches/00template files. ++ * Updated rules and control to use dpatch. ++ * Added 01_old_fixes.dpatch file with old changes. ++ * Added 02_traversal_directory.dpatch to solve problem with "directory ++ traversal security bug - CVE id CAN-2005-2349". Thanks to ++ Jorge Ventura <jorge.ventura@fusemail.com> (closes: #309594) ++ * Changed upstream source link in copyright file. ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 22 Jul 2005 12:59:07 -0300 ++ ++zoo (2.10-13) unstable; urgency=low ++ ++ * Updated zoo.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #302817) ++ * Changed email of Mantainer in control file. ++ * Updated fiz.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #309874) ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 7 Jun 2005 20:47:51 -0300 ++ ++zoo (2.10-12) unstable; urgency=low ++ ++ * New maintainer (closes: #302895) ++ * Created compat file. ++ * Deleted debian/docs unused file. ++ * Changed rules to complain debhelper > 4.0. ++ * Changed README.compilers to README.debian. ++ ++ -- Jose Carlos Medeiros <jose@psabs.com.br> Wed, 13 Apr 2005 18:39:14 -0300 ++ ++zoo (2.10-11) unstable; urgency=low ++ ++ * New maintainer (closes: #258470) ++ * Move to main from non-free (zoo is now in public domain). ++ * Updated copyright file ++ * Updated zoo.1 file ++ * Removed unnecessary, compile related files from the binary package. ++ * Standards-Version: 3.6.1.0 ++ ++ -- Niklas Vainio <nvainio+deb@iki.fi> Sat, 10 Jul 2004 21:29:26 +0300 ++ ++zoo (2.10-10) unstable; urgency=low ++ ++ * Recompile to allow prelinking (closes: #231547). ++ ++ -- Petr Cech <cech@debian.org> Mon, 9 Feb 2004 12:02:32 +0100 ++ ++zoo (2.10-9) unstable; urgency=low ++ ++ * Fix build with new glibc-2.2 (closes: #94865) ++ ++ -- Petr Cech <cech@debian.org> Sun, 22 Apr 2001 22:17:14 +0200 ++ ++zoo (2.10-8) unstable; urgency=low ++ ++ * Added README.compilers. ++ * Standards-version: 3.2.1. ++ * Glibc-2.2 build. ++ * Fix long utibuf[2] to struct utimbuf. ++ ++ -- Petr Cech <cech@debian.org> Tue, 17 Oct 2000 15:07:50 +0200 ++ ++zoo (2.10-7) unstable; urgency=low ++ ++ * Don't know how, but the copyright was gone ++ * Added documentation from source package ++ ++ -- Petr Cech <cech@debian.org> Sat, 16 May 1998 11:32:30 +0200 ++ ++zoo (2.10-6) frozen unstable; urgency=low ++ ++ * Use debhelper. ++ * Added some includes and prototypes to have less warnings ++ * New maintainer. ++ * updated to 2.4.1 ++ ++ -- Petr CECH <Petr.Cech@st.mff.cuni.cz> Fri, 8 May 1998 01:06:39 +0200 ++ ++zoo (2.10-5) unstable; urgency=low ++ ++ * Orphaned the package. ++ * debian/control (Standards-Version): updated to 2.4.0.0 [#16772]. ++ * debian/control (Section): changed to non-free/utils [fails #3 of DFSG]. ++ * debian/control (Maintainer): set to debian-qa list. ++ * debian/rules: rewritten. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 4 Mar 1998 02:17:57 +0000 ++ ++zoo (2.10-4) unstable; urgency=low ++ ++ * Rebuilt for libc6. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 25 Jun 1997 17:04:23 +0000 ++ ++zoo (2.10-3) unstable; urgency=low ++ ++ * New maintainer. ++ * Updated package to standards version 2.1.1.2. ++ * Removed executables from source package. ++ * Added better linux support, fixes bug #3961 and #4904. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 22 Jan 1997 02:18:51 +0000 +--- zoo-2.10.orig/debian/watch ++++ zoo-2.10/debian/watch +@@ -0,0 +1,3 @@ ++version=3 ++opts=dversionmangle=s/\.// \ ++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo(.*)\.tar\.gz +--- zoo-2.10.orig/debian/control ++++ zoo-2.10/debian/control +@@ -0,0 +1,20 @@ ++Source: zoo ++Section: utils ++Priority: optional ++Build-Depends: debhelper (>= 5.0.0), dpatch (>= 2.0.10) ++Maintainer: Jose Carlos Medeiros <debian@psabs.com.br> ++Uploaders: Ola Lundqvist <opal@debian.org> ++Standards-Version: 3.6.2 ++ ++Package: zoo ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: manipulate zoo archives ++ Zoo is used to create and maintain collections of files in compressed ++ form. It uses a Lempel-Ziv compression algorithm that gives space ++ savings in the range of 20% to 80% depending on the type of file data. ++ Zoo can store and selectively extract multiple generations of the same ++ file. ++ . ++ This package exists for its historical value. If you are looking for ++ a compression tool for serious use, check tar and gzip. +--- zoo-2.10.orig/debian/rules ++++ zoo-2.10/debian/rules +@@ -0,0 +1,94 @@ ++#!/usr/bin/make -f ++# debian/rules file - for zoo (2.1). ++# Based on sample debian.rules file - for GNU Hello (1.3). ++# Copyright 1994,1995 by Ian Jackson. ++# Copyright 1997,1998 by James Troup. ++# Copyright 1998,1999,2000 by Petr ech. ++# Copyright 2005 by Jose Carlos N. Medeiros. ++# I hereby give you perpetual unlimited permission to copy, ++# modify and relicense this file, provided that you do not remove ++# my name from the file itself. (I assert my moral right of ++# paternity under the Copyright, Designs and Patents Act 1988.) ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This has to be exported to make some magic below work. ++#export DH_OPTIONS ++ ++CFLAGS = -Wall ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -g ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL += -s ++endif ++ ++DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) ++PACKAGE = zoo ++ ++# Include dpatch stuff. ++include /usr/share/dpatch/dpatch.make ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ touch configure-stamp ++ ++build: build-stamp ++ ++build-stamp: configure-stamp patch ++ dh_testdir ++ ++ echo $(DEB_HOST_ARCH) ++ifeq ($(DEB_HOST_ARCH),amd64) ++ $(MAKE) OPTIM="$(CFLAGS)" linux64 ++else ++ $(MAKE) OPTIM="$(CFLAGS)" linux ++endif ++ touch build-stamp ++ ++clean: unpatch ++ dh_testdir ++ dh_testroot ++ -$(MAKE) -i clean ++ dh_clean build-stamp configure-stamp zoo fiz ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/zoo. ++ install -m 755 -s zoo fiz debian/zoo/usr/bin ++ ++# 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_installchangelogs ++ dh_installdocs ++ dh_installman fiz.1 zoo.1 ++ dh_link ++ dh_strip ++ dh_compress ++ 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 configure ++ +--- zoo-2.10.orig/debian/copyright ++++ zoo-2.10/debian/copyright +@@ -0,0 +1,64 @@ ++This is Debian GNU/Linux's prepackaged version of the zoo archiver. ++ ++This package was put together by James Troup from the original ++source obtained from: ++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo210.tar.gz ++ ++From May 1998 to July 2004 it was maintained by Petr ech and ++currently it is maintained by Niklas Vainio <nvainio+deb@iki.fi> ++ ++Copyright and license: ++ ++Zoo was written by Rahul Dhesi. He has now released it into the public ++domain: ++ ++ ++Return-Path: <dhesi@rahul.net> ++Date: Sat, 19 Jun 2004 13:50:26 -0700 (PDT) ++From: dhesi@rahul.net ++To: Niklas Vainio <nvainio@iki.fi> ++Subject: Re: License of Zoo ++ ++Hi, the last release of the zoo archive program was marked entirely ++public domain, with no restrictions. I'm sure this statement will be ++found somewhere in the files in the sources. If not, I hope this email ++will suffice: everything in the zoo package is entirely public domain, ++with no restrictions whatsoever. ++ ++Rahul ++ ++ ++On Sat, 19 Jun 2004, Niklas Vainio wrote: ++ ++> Dear Rahul Dhesi, ++> ++> The Zoo archiving program you wrote,is part of the Debian GNU/Linux system, ++> in its unofficial section called "non-free". I'm asking you to relax licence ++> conditions of Zoo a bit to make it free software and allow it to move into ++> the official Debian distribution. ++> ++> Zoo licensing conditions have two clauses that make it non-free software. ++> Those clauses are the following: ++> ++> "(b) do not create, whether deliberately or through negligence, any ++> derivative work that violates the compatibility goals describe in the ++> reference manual for zoo 2.1," ++> ++> "(d) make the fully commented source code of the derivative work available ++> to me at no cost if I so request, and make no attempt to restrict the ++> distribution or use of this source code." ++> ++> Of course this is more of historical interest than any actual need, but ++> would you please consider licensing Zoo under a free license? ++> ++> Best regards, ++> - Nikke, a Debian volunteer ++> ++> -- ++> Niklas Vainio <niklas.vainio@iki.fi> ++> ++ ++ ++ ++ ++ +--- zoo-2.10.orig/debian/dirs ++++ zoo-2.10/debian/dirs +@@ -0,0 +1 @@ ++usr/bin +--- zoo-2.10.orig/debian/README.debian ++++ zoo-2.10/debian/README.debian +@@ -0,0 +1,11 @@ ++The linux target I created was based on the bsd 4.3 target, with the ++following differences :- ++ ++ Linux has strchr(). ++ Linux signal handler returns void data type. ++ (Debian GNU/)Linux uses stdarg.h in preference to varags.h. ++ Linux has memmove(). ++ (Debian GNU/)Linux uses ansi C compilers (required for stdarg.h). ++ Linux malloc() returns a void pointer. ++ Linux has vprintf(). ++ |