diff --git a/development/ex-vi/README b/development/ex-vi/README new file mode 100644 index 0000000000..6c3db2e52e --- /dev/null +++ b/development/ex-vi/README @@ -0,0 +1,14 @@ +ex-vi (traditional vi) + +Bill Joy's original vi for UNIX. + +This port of vi has generally preserved the original style, terminal +control, and feature set. It adds support for international character +sets, including multibyte encodings such as UTF-8, and some minor +enhancements that were not present in BSD vi 3.7, but had been included +in later vi versions for System V or in POSIX.2. + +The "Introduction to Display Editing with Vi" mentioned in the man page +can be found at: http://ex-vi.sourceforge.net/viin/paper.html + +See README_Slackware.txt for Slack-specific details about this build. diff --git a/development/ex-vi/README_Slackware.txt b/development/ex-vi/README_Slackware.txt new file mode 100644 index 0000000000..034205d91d --- /dev/null +++ b/development/ex-vi/README_Slackware.txt @@ -0,0 +1,11 @@ + +To avoid conflicting with Slackware's elvis and vim packages, this build +installs binaries to /opt/ex-vi/bin and man pages to /opt/ex-vi/man, +along with a script in /etc/profile.d to prepend these paths to PATH and +MANPATH. If you *really* want, you can replace the /usr/bin/vi symlink +(that normally points to elvis or vim), but it shouldn't be necessary. + +After installing, either log out & back in, or "source +/etc/profile.d/ex-vi.sh". To temporarily disable the scripts, remove +their execute bits. Users can always set PATH and MANPATH in their own +dotfiles, of course. diff --git a/development/ex-vi/doinst.sh b/development/ex-vi/doinst.sh new file mode 100644 index 0000000000..9bdec875cf --- /dev/null +++ b/development/ex-vi/doinst.sh @@ -0,0 +1,26 @@ +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... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +preserve_perms etc/profile.d/ex-vi.sh.new +preserve_perms etc/profile.d/ex-vi.csh.new diff --git a/development/ex-vi/ex-vi.SlackBuild b/development/ex-vi/ex-vi.SlackBuild new file mode 100644 index 0000000000..9d7d5324fe --- /dev/null +++ b/development/ex-vi/ex-vi.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Slackware build script for ex-vi + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +PRGNAM=ex-vi +VERSION=${VERSION:-050325} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +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" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +TARNAME=ex + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $TARNAME-$VERSION +tar xvf $CWD/$TARNAME-$VERSION.tar.bz2 +cd $TARNAME-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# don't install the binary with the sticky bit set. It doesn't do anything +# on Linux, and might set off alarm bells. +sed -i 's,-m 1755,-m 755,' Makefile + +# To avoid conflicts with Slackware's elvis and/or vim, we install to /opt and +# include a login script to set PATH and MANPATH. +make all install \ + CC="gcc $SLKCFLAGS" \ + MANDIR=/opt/$PRGNAM/man \ + PREFIX=/opt/$PRGNAM \ + INSTALL=install \ + DESTDIR=$PKG + +# binary already stripped, yay + +find $PKG/opt/$PRGNAM/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/opt/$PRGNAM/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/etc/profile.d +install -m0755 -oroot -groot $CWD/$PRGNAM.sh.new $PKG/etc/profile.d +install -m0755 -oroot -groot $CWD/$PRGNAM.csh.new $PKG/etc/profile.d + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a Changes LICENSE README TODO $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/README_Slackware.txt > $PKG/usr/doc/$PRGNAM-$VERSION/README_Slackware.txt +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/development/ex-vi/ex-vi.csh.new b/development/ex-vi/ex-vi.csh.new new file mode 100644 index 0000000000..c119a0c3bf --- /dev/null +++ b/development/ex-vi/ex-vi.csh.new @@ -0,0 +1,7 @@ +#!/bin/csh + +# Login script for SlackBuilds.org ex-vi, csh-flavoured edition. +# The /opt stuff is prepended, so it takes precedence over /usr. + +set path = ( /opt/ex-vi/bin $path ) +setenv MANPATH /opt/ex-vi/man:$MANPATH diff --git a/development/ex-vi/ex-vi.info b/development/ex-vi/ex-vi.info new file mode 100644 index 0000000000..54f763a0e8 --- /dev/null +++ b/development/ex-vi/ex-vi.info @@ -0,0 +1,10 @@ +PRGNAM="ex-vi" +VERSION="050325" +HOMEPAGE="http://ex-vi.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/project/ex-vi/ex-vi/050325/ex-050325.tar.bz2" +MD5SUM="e668595254233e4d96811083a3e4e2f3" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/development/ex-vi/ex-vi.sh.new b/development/ex-vi/ex-vi.sh.new new file mode 100644 index 0000000000..b579bf948e --- /dev/null +++ b/development/ex-vi/ex-vi.sh.new @@ -0,0 +1,10 @@ +#!/bin/sh + +# Login script for SlackBuilds.org ex-vi, Bourne-flavoured edition. +# The /opt stuff is prepended, so it takes precedence over /usr. + +PATH=/opt/ex-vi/bin:$PATH +MANPATH=/opt/ex-vi/man:$MANPATH + +export PATH +export MANPATH diff --git a/development/ex-vi/slack-desc b/development/ex-vi/slack-desc new file mode 100644 index 0000000000..4ccffef411 --- /dev/null +++ b/development/ex-vi/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 ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +ex-vi: ex-vi (traditional vi) +ex-vi: +ex-vi: Bill Joy's original vi for UNIX. +ex-vi: +ex-vi: This port of vi has generally preserved the original style, terminal +ex-vi: control, and feature set. It adds support for international character +ex-vi: sets, including multibyte encodings such as UTF-8, and some minor +ex-vi: enhancements that were not present in BSD vi 3.7, but had been +ex-vi: included in later vi versions for System V or in POSIX.2. +ex-vi: +ex-vi: