office/catdvi: Added (dvi fallback for recoll)

Signed-off-by: bedlam <dave@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Lockywolf 2023-05-19 01:25:16 +01:00 committed by Willy Sudiarto Raharjo
parent 137a78f200
commit 3a5a8eb6ce
No known key found for this signature in database
GPG key ID: 3F617144D7238786
4 changed files with 195 additions and 0 deletions

43
office/catdvi/README Normal file
View file

@ -0,0 +1,43 @@
catdvi can be used to transform TeX DVI files into text, losing
formatting its main aim on SBo is to be used by recoll, when it cannot
extract text from pdf files by other means.
catdvi is a program that translates TeX Device Independent (DVI) files
into readable plain text. The program is under development. It
produces satisfactory results in many cases, but still has some issues
with complicated input.
Goals Actually, "translate to plain text" can mean several different
things, depending on the intended use:
Output formatted text that resembles the layout of the DVI file as
closely as possible, suitable for e.g. preview on a character cell
terminal or printing on a teletype style printer. Output unformatted
text in "read order". (Rather than "print order", which makes quite a
difference with e.g. multi-column page layouts). Useful for searching,
indexing and other kinds of postprocessing, and maybe also for export
to different text processors. Output (not completely plain) text in
read order with the formatting distilled into some kind of markup so
that paragraph breaks, subscripts, superscripts, etc. can still be
recognized. This functionality is essentially a (La-)TeX decompiler,
useful for recovery of lost or otherwise unavailable .tex files.
catdvi's principal target is to create human-readable text files from
DVI input, and hence the first kind of translation.
The second kind is supported as well because one of the developers
needed it and it could be obtained as an easy by-product (based on the
mostly true assumption that read order = order in the source file =
order in the DVI file).
The third kind of translation is the most difficult one to achieve
since a DVI file does not contain logical markup information. The
structure of the text has to be guessed from heuristic principles and
an analysis of certain characteristics of TeX's output. No attempt in
this direction has been made so far. But knowledge of some aspects of
text structure would also help to improve the quality of layout in
case 1. If it turns out these can reliably be guessed, an option to
show them as markup will probably follow. This feature has low
priority at the moment, especially since nobody has expressed a need
for it.

View file

@ -0,0 +1,123 @@
#!/bin/bash
# Slackware build script for catdvi
# Copyright 2023 Lockywolf
# 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.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=catdvi
VERSION=${VERSION:-0.14}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "aarch64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$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 {} \;
sed -i 39d kpathsea.c
CFLAGS="$SLKCFLAGS -std=c89 " \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--disable-static \
--build=$ARCH-slackware-linux
make
mkdir -p "$PKG/usr/bin"
cp catdvi "$PKG/usr/bin/"
mkdir -p "$PKG/usr/man/man1"
cp catdvi.1 "$PKG/usr/man/man1"
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
AUTHORS \
COPYING \
ChangeLog \
NEWS \
README \
TODO \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

10
office/catdvi/catdvi.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="catdvi"
VERSION="0.14"
HOMEPAGE="https://catdvi.sf.net"
DOWNLOAD="https://excellmedia.dl.sourceforge.net/project/catdvi/catdvi/0.14/catdvi-0.14.tar.gz"
MD5SUM="41b04de48c1ca9abf8d3f9ecedc2b376"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Lockywolf"
EMAIL="for_sbo.catdvi_2023-05-17@lockywolf.net"

19
office/catdvi/slack-desc Normal file
View file

@ -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------------------------------------------------------|
catdvi: catdvi (dvi fallback for recoll)
catdvi:
catdvi: catdvi can be used to transform DVI files into text, losing
catdvi: formatting its main aim on SBo is to be used by recoll, when it
catdvi: cannot extract text from DVI files by other means.
catdvi:
catdvi:
catdvi:
catdvi:
catdvi:
catdvi: