office/texlive: Updated for version 20160523.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Johannes Schoepfer 2016-07-20 04:57:06 -05:00 committed by Robby Workman
parent 2426bbd7d6
commit d87975d35f
11 changed files with 850 additions and 226 deletions

View File

@ -1,21 +1,17 @@
TeXLive (TeXLive binaries, support files, TeX formats)
This package contains most binaries, support files, TeX formats and
packages, and other files included in the TeXLive TeX distribution.
Included are input files for TeX, runtime configuration files,
hyphenation tables, manpages, and the computer modern fonts.
This package contains all binaries (including xindy, asymptote, and biber)
and many support files, TeX formats and packages, and other files included
in the TeXLive TeX distribution. This should be adequate for the needs of
most TeX users.
Some extra texmf can be found in the "texlive-texmf-extra" package
and all of the docs can be found in the "texlive-texmf-docs" package,
both of which are available at SlackBuilds.org.
The remaining stuff can be found in texlive-extra, texlive-fonts, and
texlive-docs, all of which are also available at SlackBuilds.org.
Have a look at the texscythe package to see how the texmf archives were
created from the original download from upstream.
ConTeXt is currently not supported.
The resulting packages are large, and a lot of space is required during
the build processes, so you might want to consider defining an alternate
location for TMP and OUTPUT if you have small /tmp partition.
Have a look at the scripts in the prep/ directory to see how the texmf
archives were created from the original Texlive netarchives.
Note that this package is intended to completely replace (and then some) the
tetex packages in Slackware, so you'll need to remove tetex and tetex-doc
before installing TeXLive.
Note that this package conflicts with the tetex packages in Slackware,
so you'll need to remove tetex and tetex-doc before installing TeXLive.

View File

@ -1,12 +0,0 @@
This directory should contain only patches from the stable branch of
TeXLive 2014 <http://tug.org/svn/texlive/branches/branch2014>
Thanks to Karl Berry and the other TeXLive contributors for agreeing
to maintain this and for linking it at http://tug.org/texlive/distro.html
This will fetch a local svn checkout:
svn co svn://tug.org/texlive/branches/branch2014
From an svn checkout, something like this will generate patches:
svn diff -r from#####:to##### > patchname

View File

@ -1,4 +1,7 @@
rm -f usr/share/texmf-config/web2c/updmap.cfg
chroot . /usr/bin/mktexlsr 1>/dev/null 2>/dev/null
#printf "y\n" | chroot . /usr/bin/updmap-sys --nohash --syncwithtrees 1>/dev/null 2>/dev/null
printf "y\n" | chroot . /usr/bin/updmap-sys --nohash --syncwithtrees 1>/dev/null 2>/dev/null
chroot . /usr/bin/updmap-sys 1>/dev/null 2>/dev/null
chroot . /usr/bin/fmtutil-sys --all 1>/dev/null 2>/dev/null
#chroot . /usr/bin/mtxrun --generate 1>/dev/null 2>/dev/null

View File

@ -1,21 +0,0 @@
diff -Nur texlive-20140525-source.orig/texk/xdvik/events.c texlive-20140525-source/texk/xdvik/events.c
--- texlive-20140525-source.orig/texk/xdvik/events.c 2014-04-14 03:35:50.000000000 -0500
+++ texlive-20140525-source/texk/xdvik/events.c 2014-06-15 13:18:40.762860567 -0500
@@ -5306,7 +5306,7 @@
}
if (actp->proc == Act_wheel) {
-# if XAW
+# if !MOTIF
if (globals.widgets.y_bar != NULL)
XtCallCallbacks(globals.widgets.y_bar, XtNscrollProc,
cast_int_to_XtPointer(dist));
@@ -5317,7 +5317,7 @@
# endif /* MOTIF */
}
else { /* Act_hwheel */
-# if XAW
+# if !MOTIF
if (globals.widgets.x_bar != NULL)
XtCallCallbacks(globals.widgets.x_bar, XtNscrollProc,
cast_int_to_XtPointer(dist));

View File

@ -1,21 +0,0 @@
diff -Nur texlive-20140525-source.orig/texk/kpathsea/texmf.cnf texlive-20140525-source/texk/kpathsea/texmf.cnf
--- texlive-20140525-source.orig/texk/kpathsea/texmf.cnf 2014-04-22 16:07:54.000000000 -0500
+++ texlive-20140525-source/texk/kpathsea/texmf.cnf 2014-06-15 11:42:32.949359812 -0500
@@ -51,7 +51,7 @@
% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
% Kpathsea sets SELFAUTOLOC (the directory with the binary),
% SELFAUTODIR (its parent), and SELFAUTOPARENT (its grandparent).
-TEXMFROOT = $SELFAUTOPARENT
+TEXMFROOT = $SELFAUTODIR/share
% The main tree of distributed packages and programs:
TEXMFDIST = $TEXMFROOT/texmf-dist
@@ -61,7 +61,7 @@
TEXMFMAIN = $TEXMFDIST
% Local additions to the distribution trees.
-TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local
+TEXMFLOCAL = $TEXMFROOT/texmf-local
% TEXMFSYSVAR, where *-sys store cached runtime data.
TEXMFSYSVAR = $TEXMFROOT/texmf-var

View File

@ -1,21 +0,0 @@
diff -Nur texlive-20140525-texmf.orig/texmf-dist/web2c/texmf.cnf texlive-20140525-texmf/texmf-dist/web2c/texmf.cnf
--- texlive-20140525-texmf.orig/texmf-dist/web2c/texmf.cnf 2014-04-22 16:07:54.000000000 -0500
+++ texlive-20140525-texmf/texmf-dist/web2c/texmf.cnf 2014-06-15 11:42:32.949359812 -0500
@@ -51,7 +51,7 @@
% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
% Kpathsea sets SELFAUTOLOC (the directory with the binary),
% SELFAUTODIR (its parent), and SELFAUTOPARENT (its grandparent).
-TEXMFROOT = $SELFAUTOPARENT
+TEXMFROOT = $SELFAUTODIR/share
% The main tree of distributed packages and programs:
TEXMFDIST = $TEXMFROOT/texmf-dist
@@ -61,7 +61,7 @@
TEXMFMAIN = $TEXMFDIST
% Local additions to the distribution trees.
-TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local
+TEXMFLOCAL = $TEXMFROOT/texmf-local
% TEXMFSYSVAR, where *-sys store cached runtime data.
TEXMFSYSVAR = $TEXMFROOT/texmf-var

View File

@ -0,0 +1,173 @@
#!/bin/bash
TMP=$PWD/tmp
collections_done=$TMP/done
collections_tobedone=$TMP/tobedone
[ -f $collections_done ] && rm $collections_done
[ -f $collections_tobedone ] && rm $collections_tobedone
# fonts-package first to make sure that cm-super is not included elsewhere
NAME=fonts \
PACKAGES="
cm-super
cbfonts
sanskrit-t1
cmcyr
cs
uhc
fonts-tlwg
ethiop-t1
ipaex
wadalab
fandol
arphic
nanumtype1" \
./texmf_get.sh
# collection-langgreek is added as single packages, as the cbfonts should go
# to the lang-texmftree because of its size
NAME=base \
PACKAGES="
collection-basic
collection-latex
collection-genericrecommended
collection-latexrecommended
collection-xetex
collection-metapost
collection-plainextra
collection-fontutils
collection-genericextra
collection-formatsextra
collection-htmlxml
collection-luatex
collection-fontsrecommended
collection-mathextra
collection-humanities
lh
yfonts
doublestroke
was
xypic
xindy
asymptote
barcodes
qrcode
lastpage
datetime2
texdoc
appendix
changebar
footmisc
multirow
overpic
stmaryrd
subfigure
titlesec
csplain
biblatex
collection-langeuropean
collection-langenglish
collection-langfrench
collection-langgerman
collection-langitalian
collection-langpolish
collection-langportuguese
collection-langspanish
collection-langgreek
collection-langafrican
hyphen-czech
hyphen-slovak
hyphen-indic
hyphen-sanskrit
hyphen-armenian
hyphen-afrikaans
hyphen-esperanto
hyphen-bulgarian
hyphen-churchslavonic
hyphen-mongolian
hyphen-russian
hyphen-serbian
hyphen-ukrainian
hyphen-catalan
hyphen-galician
hyphen-chinese
hyphen-coptic
hyphen-georgian
hyphen-indonesian
hyphen-interlingua
hyphen-thai
hyphen-turkmen
hyphen-arabic
hyphen-farsi" \
./texmf_get.sh
# Call "fonts"-tarball again to add remaining fonts
NAME=fonts PACKAGES="collection-fontsextra" ./texmf_get.sh
# Put all remaining stuff in the "extra" tarball
NAME=extra \
PACKAGES="
collection-latexextra
collection-pictures
collection-games
collection-publishers
collection-bibtexextra
collection-binextra
collection-science
collection-omega
collection-music
collection-langother
collection-pstricks
collection-langcyrillic
collection-langczechslovak
collection-langindic
collection-langjapanese
collection-langkorean
collection-langarabic
collection-langchinese
collection-langcjk" \
./texmf_get.sh
# Finally, the docs-tarball - very big (about 1300 MB)
#./texmf_get.sh docs
# Now that everything is added and appended, compress it.
VERSION=$(cat tmp/VERSION)
for NAME in base extra fonts docs; do
echo $TMP/texlive-$NAME-$VERSION.tar
if [ -s $TMP/texlive-$NAME-$VERSION.tar ]; then
[ -f $TMP/texlive-$NAME-$VERSION.tar.xz ] && rm $TMP/texlive-$NAME-$VERSION.tar.xz
xz -9 $TMP/texlive-$NAME-$VERSION.tar || exit 1
ls -lah $TMP/texlive-$NAME-$VERSION.tar.xz
fi
done
# Following aren't supported
#NAME=context PACKAGES="collection-context" ./texmf_get.sh
#NAME=texworks PACKAGES="collection-texworks" ./texmf_get.sh
#NAME=wintools PACKAGES="collection-wintools" ./texmf_get.sh
# Documentation on some decisions made for texlive-base:
#
# hyphen-packages are for "fmtutil-sys -all" to proceed without errors
#
# for building dblatex:
# appendix
# changebar
# footmisc
# multirow
# overpic
# stmaryrd
# subfigure
# titlesec
# for math masters thesis
# doublestroke
# was
# decided these are commonly useful and not too big
# csplain
# to make biber functional
# biblatex

View File

@ -0,0 +1,522 @@
#!/bin/bash
# texmf_get.sh (c) 2016 Johannes Schoepfer, slackbuilds@schoepfer.info
# 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.
#
# V 0.3
#
# get texlive-packages/texmf-tree based on texlive.tlpdb, create a tar.xz tarball out of it.
#
# usage:
# ./texmf_get.sh [extra|docs]
# available packages http://mirror.ctan.org/systems/texlive/tlnet/archive/
#set -e
# release mirror
mirror="http://mirror.ctan.org/systems/texlive/tlnet/"
# pre-test mirror 2016
# mirror="http://ftp.cstug.cz/pub/tex/local/tlpretest/"
LANG=C
TMP=$PWD/tmp
output=$TMP/texlive.packages
output_remainder=$TMP/texlive.remainder.packages
output_doc=$TMP/texlive.doc.packages
errorlog=$TMP/error.log
texmf=$TMP/texmf
db=texlive.tlpdb
mkdir -p $texmf
#mkjobtexmf
#texinfo
#echo $PACKAGES
#read
maxsize[100000]="$PACKAGES"
[ -z "$PACKAGES" ] && \
maxsize[100000]="
collection-metapost
collection-xetex
ec
eurosym
lualibs
luaotfload
luatexbase
revtex
synctex
times
tipa
ulem
upquote
zapfding
collection-basic
collection-latex
collection-genericrecommended
collection-latexrecommended
collection-langeuropean
lm
beamer
hyphen-ancientgreek
hyphen-greek
hyphen-indic
hyphen-sanskrit
hyphen-czech
hyphen-slovak
hyphen-armenian
hyphen-bulgarian
hyphen-churchslavonic
hyphen-mongolian
hyphen-russian
hyphen-serbian
hyphen-ukrainian
hyphen-catalan
hyphen-galician
hyphen-spanish
hyphen-chinese
hyphen-afrikaans
hyphen-coptic
hyphen-esperanto
hyphen-georgian
hyphen-indonesian
hyphen-interlingua
hyphen-thai
hyphen-turkmen
hyphen-ethiopic
hyphen-arabic
hyphen-farsi
babel-basque
hyphen-basque
babel-czech
hyphen-czech
babel-danish
hyphen-danish
babel-dutch
hyphen-dutch
babel-english
hyphen-english
babel-finnish
hyphen-finnish
babel-french
hyphen-french
babel-german
hyphen-german
dehyph-exptl
babel-hungarian
hyphen-hungarian
babel-italian
hyphen-italian
babel-norsk
hyphen-norwegian
babel-polish
hyphen-polish
babel-portuges
hyphen-portuguese
babel-spanish
hyphen-spanish
babel-swedish
hyphen-swedish
"
#maxsize[530]="collection-fontsrecommended" # max package helvetic 530kb
#maxsize[110]="collection-fontsextra" # max packafe cmbright(scheme-tetex) 109kb
#maxsize[99]="collection-plainextra" # max package texinfo 98kb
#maxsize[5]="collection-latexextra"
#collection-langenglish
#collection-langeuropean
#collection-langfrench
#collection-langgerman
#collection-langitalian
#collection-langpolish
#collection-langspanish
#collection-genericextra
#collection-formatsextra
#maxsize[1700]="collection-langgreek" # max package kerkis(1700kb), cbfonts are very(too) big(65mb), todo: split-packge pfb-fonts, provding also "./texmf-get.sh" extra"
#maxsize[500]="collection-langcyrillic" # prevent montex(1600kb) as it depends on cbfonts(65mb), see package split
#maxsize[100]="collection-binextra" # max package asymptote 277kb, xindy 183kb
#maxsize[180]="collection-bibtexextra" # max package jurabib, biblatex 180kb
#maxsize[kb]="collection-name package ..."
# These are arrays, every index(kb) can only appear once, otherwise it will be overwritten.
# Add packages of collections only if under max $kb per package size, to ease maintenance by reducing singel-picking packages.
# There are many small packages which give better overall support at low price in size, it's kind of random whats added though. Maybe maintain a reference list what has to be in the texmf-tree?
# Into maxsize[100000] (100mb, there is no bigger package) come collections to be completely added, or single packages(not schemes, as depend collections are not added automatically)
# ==== Nothing to edit beyond this line (hopefully) ====
package_meta () {
echo "collection/package $collection"
# collection start linenumer
start_n="$(grep -n ^"name ${collection}$" $TMP/$db | cut -d':' -f1)"
[ -z "$start_n" ] && echo "$collection was not found in $TMP/$db, bye." && exit 1
# find end of package/collection
for emptyline in $emptylines
do
if [ "$emptyline" -gt "$start_n" ]
then
end_n=$emptyline
break
fi
done
sed "${start_n},${end_n}!d" $TMP/$db > $tmpfile
}
package_list () {
# Only do something if $collection wasn't already done before
while [ -s $collections_tobedone ]
do
collection=$(tail -n1 $collections_tobedone)
# continue with next collection if collection was already done
if [ -s "$collections_done" ]
then
grep -w "^${collection}$" $collections_done &> /dev/null
if [ $? = 0 ]
then
sed -i "/^$collection$/d" $collections_tobedone
continue
fi
fi
if [ -s $texmf/$collection.meta ]
then
cp $texmf/$collection.meta $tmpfile
else
package_meta
fi
# ignore dependend collections generally, as this adds far too much and therefore reduces controll over what packages to be added
sed -i "/^depend collection/d" $tmpfile
# If $collection is a singel package, add it here
if [ -n "$(head -n1 $tmpfile | fgrep -v "name collection" )" ]
then
# Add only run packages (collection = package)
#if [ -z "$(grep -w "^${collection}$" $TMP/run.tlpkg)" ]
#if [ "$1" = docs ]
#then
# packagelist="$output_doc"
#else
packagelist="$TMP/run.tlpkg"
#fi
if [ -z "$(grep -w "^${collection}$" $packagelist)" ]
then
sed -i "/^$collection$/d" $collections_tobedone
echo "$collection" >> $collections_done
continue
fi
# filter for max containersize to be added.
[ $(grep ^containersize $tmpfile | cut -d' ' -f2 ) -lt $(($kb * 1024)) ] && echo "$collection" >> $output
fi
# add dependend packages
grep ^"depend " $tmpfile | grep -v "ARCH$" | cut -d' ' -f2- >> $collections_tobedone
echo "$collection" >> $collections_done
sed -i "/^${collection}$/d" $collections_tobedone
done
}
untar () {
# download packages, if not already available. Not for all packages a corresponding .doc package exists
rm $1.meta
while read package
do
# untar all packages, check for relocation, "relocate 1" -> untar in texmf-dist
if [ "$flavour" = ".doc" ]
then
sha512="$(grep ^doccontainerchecksum $texmf/$package.meta | cut -d' ' -f2 )"
else
sha512="$(grep ^containerchecksum $texmf/$package.meta | cut -d' ' -f2 )"
fi
[ ! -s ${package}${flavour}.tar.xz ] && wget ${mirror}archive/${package}${flavour}.tar.xz
[ ! -s ${package}${flavour}.tar.xz ] && echo "Downloading ${package}${flavour}.tar.xz did not work, writting to $errorlog" && echo "Error downloading ${package}${flavour}.tar.xz" >> $errorlog && exit 1
# check sha512, give three tries for downloading aggain(diffrent mirrors are used automatically)
for tillthree in 1 2 3
do
if [ "$(sha512sum ${package}${flavour}.tar.xz | cut -d' ' -f1 )" != "$sha512" ]
then
# Download (hopefully) newer file
rm ${package}${flavour}.tar.xz
wget ${mirror}archive/${package}${flavour}.tar.xz
else
break
fi
done
# check sha512 again, exit if it fails
if [ "$(sha512sum ${package}${flavour}.tar.xz | cut -d' ' -f1 )" != "$sha512" ]
then
echo "sha512sum $(sha512sum ${package}${flavour}.tar.xz | cut -d' ' -f1 ) of"
echo "${package}${flavour}.tar.xz doesn't match with $TMP/$db"
echo "sha512sum $sha512"
echo "Delete $TMP/${db}* and try again."
exit 1
fi
# exclude the tlpkg-stuff, TLUtils.pm(needed tu run texlive) comes from source installation
grep -w ^"relocated 1" $texmf/$package.meta &>/dev/null
if [ $? = 0 ]
then
tar vxf ${package}${flavour}.tar.xz --exclude tlpkg -C texmf-dist || exit 1
else
tar vxf ${package}${flavour}.tar.xz --exclude tlpkg || exit 1
fi
if [ "$flavour" = ".doc" ]
then
size=$(( $(grep ^doccontainersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
else
size=$(( $(grep ^containersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
fi
shortdesc="$(grep ^shortdesc $texmf/$package.meta | cut -d' ' -f2- )"
#echo "$package: $shortdesc, Kb $size" >> $1.meta
echo "$size Kb, $package: $shortdesc" >> $1.meta
done < $1
# copy packages-list to texmf-dist, so included packages are known in later installation
sort -n $1.meta > TMPFILE
mv TMPFILE $1.meta
cp $1.meta texmf-dist/
# remove uneeded sources
rm -rf texmf-dist/scripts/context/stubs/source/
rm -rf texmf-dist/source
# Remove m$-stuff
find . -type d -name 'win32' -exec rm -rf {} +
find . -type d -name 'win64' -exec rm -rf {} +
find . -type d -name 'mswin' -exec rm -rf {} +
find . -type d -name 'win' -exec rm -rf {} +
find . -type f -name '*.bat' -delete
find . -type f -name '*win32*' -delete
find . -type f -name 'winansi*' -delete
# remove zero-length files, as these appear e.g. in hyph-utf8 tex-package.
find . -type f -size 0c -delete
}
tmpfile=$(mktemp)
cd $TMP
# create run.tlpkg and doc.tlpkg only if $db.orig isn't there yet/was deletet
if [ ! -s $TMP/${db}.orig ]
then
# Set date manually upload date from $mirror/tlpkg/texlive.tlpdb. Looking a better way for auto-detect date/get reviosn in some way
#echo 20160405 > VERSION
date +%Y%m%d > VERSION
# get VERSION from texlive.tlpdb upload date. Not the best approach ...
# date -d $(curl -L -s ${mirror}/tlpkg/ | grep -w texlive.tlpdb | head -n1 | rev | cut -d':' -f2 | cut -d' ' -f2 | cut -d'>' -f1 | rev ) | date -f - +%Y%m%d > VERSION
wget -O $TMP/${db}.orig -c ${mirror}tlpkg/$db
# shrink db to be faster on later processing
#sed "/^ \+./d;/^longdesc \+./d" $TMP/${db}.orig > $TMP/$db
#sed "/^ \+./d;/^longdesc \+./d;/^doc\+./d;/^cat\+./d;/^rev\+./d;/^short\+./d;/^rel\+./d" $TMP/${db}.orig > $TMP/$db
sed "/^ \+./d;/^longdesc \+./d;/^cat\+./d;/^rev\+./d;/^exe\+./d;/^bin\+./d;/^src\+./d" $TMP/${db}.orig > $TMP/$db
# as $db(might be) is new, remove the meta-files, be created again with pontentionally new content
rm -rf $texmf/*.meta
rm $TMP/run.tlpkg
[ -f $output_doc ] && rm $output_doc
fi
# Make a list of all packages available, but exclude binary and installer/configuration packages.
# It turns out that packagenames without '.' are what we want. Packages with '.' are all binarie-packages, which we biuld from source.
grep ^name $TMP/$db | grep -v ^"name collection-" | grep -v ^"name scheme-" | grep -v '\.' | cut -d' ' -f2 > $TMP/allpackages
# further globaly excluded packages, which does not make sense without tlpkg-installer, or are non-linux specific, or are already covered by the sourcebuild.
global_exclude="
texworks
"
zglobal_exclude="
bibtex8
bibtexu
chktex
cjkutils
detex
dtl
dvi2tty
dvidvi
dviljk
dvipdfmx
dvipng
dvipos
dvisvgm
gsftopk
pdftools
synctex
texconfig
texlive-docindex
texlive-msg-translations
texlive-scripts
texworks
l3kernel
l3packages
l3experimental
fontspec
ocgx
luatex
"
for i in $global_exclude
do
if [ -z "$(grep -w ^"$i"$ $TMP/allpackages)" ]
then
echo "\"$i\" seems not to be a tex-package listet in $db, correct the"
echo "global_exclude variable in this script, bye."
exit 1
else
sed -i "/^${i}$/d" $TMP/allpackages
[ -s $TMP/run.tlpkg ] && sed -i "/^${i}$/d" $TMP/run.tlpkg
[ -s $output_doc ] && sed -i "/^${i}$/d" $output_doc
fi
done
# get linenumbers of empty lines
[ -z "$emptylines" ] && emptylines="$(grep -n ^$ $TMP/$db | cut -d':' -f1)"
# sort doc- and run- packages out to avaoid binfiles and sourcfile in the texmf-tree
while read collection
do
if [ ! -s $texmf/$collection.meta ]
then
package_meta
grep ^runfiles $tmpfile &>/dev/null
if [ $? = 0 ]
then
echo $collection >> $TMP/run.tlpkg
fi
grep ^docfiles $tmpfile &>/dev/null && echo $collection >> $output_doc
mv $tmpfile $texmf/$collection.meta
fi
done < $TMP/allpackages
VERSION=$(cat VERSION)
# remove outputfile if already present
[ -s "$output" ] && rm $output
collections_done=$TMP/done
collections_tobedone=$TMP/tobedone
echo "Preparing list of packages to be added ..."
# Start with the biggest maxsize. This way adding full collections can be handeld, rather than the packages are not added(added to $collection_done without processing) by the $kb limit.
# todo: extra tobedone-queue for dependend packages, to be sure to get these and not discard by $kb limit.
for kb in $(printf '%s\n' "${!maxsize[@]}"|tac)
do
for maxsizecollection in ${maxsize[$kb]}
do
echo "$maxsizecollection" >> $collections_tobedone
package_list #$1 # use diffrent package list if $1=docs
done
done
#[ -f $collections_done ] && rm $collections_done
#[ -f $collections_tobedone ] && rm $collections_tobedone
#echo "Generate the remainder package-list ..."
#cp $TMP/run.tlpkg $output_remainder
## remove packages from remainder packages list
#while read remove
#do
# sed -i "/^${remove}$/d" $output_remainder
#done < $output
cd $texmf
# split packge
#echo "Finding fonts which are present as metafont-source(.mf), move corresponding pfb to remainder-package. Be patient ..."
##find . -type f -name '*.mf' | tee -a fontfiles
#find texmf-dist -type f -name '*.mf' > fontfiles
##sed -i -n "/amsfonts/!p" fontfiles
#rev fontfiles | cut -d'.' -f2 | cut -d'/' -f1 | rev > fontnames
#find texmf-dist -type f -name "*.pfb" > fonts.type1
#find texmf-dist -type f -name "*.pfm" >> fonts.type1
#find texmf-dist -type f -name "*.afm" >> fonts.type1
#[ -f fonts.pfb ] && rm fonts.pfb
#while read a
#do
# grep -w "$a.pfb" fonts.type1 >> fonts.pfb
# grep -w "$a.pfm" fonts.type1 >> fonts.pfb
# grep -w "$a.afm" fonts.type1 >> fonts.pfb
# #find . -type f -name "$a.pfb" >> fonts.pfb
# #find . -type f -name "$a.pfm" >> fonts.pfb
# #find . -type f -name "$a.afm" >> fonts.pfb
#done < fontnames
#sort -u < fonts.pfb > $tmpfile
#mv $tmpfile fonts.pfb
##sed -i "/.*amsfonts.*/d" fonts.pfb
## Only move cbfonts for now ...
#sed -i -n "/cbfonts/p" fonts.pfb
#rev fonts.pfb | cut -d'/' -f2- | rev > fontpathes
##sort -u < fontpathes > $tmpfile
##mv $tmpfile fontpathes
#while read a; do mkdir -p remainder/$a; done < fontpathes
#while read a; do mv $a remainder/$a; done < fonts.pfb
#rm fontfiles fontnames fontpathes fonts.type1 fonts.pfb
#if [ -d remainder ]
#then
# cd remainder
# tar Jvcf $TMP/add-to-remainder.tar.xz texmf-dist || exit 1
# cd -
# rm -rf remainder
#fi
# cleanup tar-directorie, in case
[ -d texmf-dist ] && rm -rf texmf-dist
#unset flavour ; export flavour
mkdir texmf-dist &> /dev/null
case $1 in
docs)
export flavour=".doc"
untar $output_doc
#untar $output
tar Jvcf $TMP/texlive-texmf-docs-$VERSION.tar.xz texmf-dist || exit 1
ls -lah $TMP/texlive-texmf-docs-$VERSION.tar.xz || exit 1
rm -rf texmf-dist
echo "Packages-list: $output_doc"
;;
*)
#XZ_OPT=-4e tar Jvcf $TMP/texlive-${scheme}${flavour}.tar.xz texmf-dist
untar $output
#tar vcf $TMP/texlive-$NAME-$VERSION.tar texmf-dist || exit 1
tar vrf $TMP/texlive-$NAME-$VERSION.tar texmf-dist || exit 1
mv $output.meta $output.meta.$NAME
echo "Packages-list: $output.meta.$NAME"
rm $output
rm -rf texmf-dist
#[ -f $TMP/texlive-$NAME-$VERSION.tar.xz ] && rm $TMP/texlive-$NAME-$VERSION.tar.xz
#xz -9 $TMP/texlive-$NAME-$VERSION.tar || exit 1
#ls -lah $TMP/texlive-$NAME-$VERSION.tar.xz
;;
esac
# cleanup
rm $tmpfile

View File

@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
texlive: TeXLive (TeXLive binaries, support files, TeX formats)
texlive:
texlive: This package contains most binaries, support files, TeX formats and
texlive: packages, and other files included in the TeXLive TeX distribution.
texlive: Included are input files for TeX, runtime configuration files,
texlive: hyphenation tables, manpages, and the computer modern fonts.
texlive: This package contains all binaries (including xindy, asymptote, and
texlive: biber), support files, TeX formats and packages, and other files
texlive: included in the TeXLive TeX distribution. Included are input files
texlive: for TeX, runtime configuration files, hyphenation tables, manpages,
texlive: and the computer modern fonts.
texlive:
texlive: Some extra texmf can be found in the "texlive-texmf-extra" package
texlive: and all of the docs can be found in the "texlive-texmf-docs" package,
texlive: both of which are available at SlackBuilds.org.
texlive: More texmf files can be found in the texlive-extra and texlive-fonts
texlive: packages; all of the docs can be found in the texlive-docs package.
texlive:

View File

@ -2,8 +2,9 @@
# TeXLive build script for Slackware
# Copyright 2009-2014 Robby Workman, Northport, AL, USA
# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
# Copyright 2009-2014 Robby Workman, Northport, AL, USA
# Copyright 2016 Johannes Schoepfer, <slackbuilds[AT]schoepferi[DOT]info>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -23,34 +24,32 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# URL: ftp://tug.org/historic/systems/texlive/2014/
# URL: ftp://tug.org/historic/systems/texlive/2016/
# Testrelease 2016 ftp://tug.org/texlive/Images/test/
PRGNAM=texlive
VERSION=20140525
VERSION=20160523
TEXMF_VERS=20160622
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
SOURCE_VERS=$VERSION
TEXMF_VERS=$VERSION
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-texlive
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
set -e
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
@ -60,34 +59,21 @@ else
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf texlive-$SOURCE_VERS-source
tar xvf $CWD/texlive-$SOURCE_VERS-source.tar.xz
cd texlive-$SOURCE_VERS-source
rm -rf texlive-$VERSION-source
tar xvf $CWD/texlive-${VERSION}b-source.tar.xz
cd texlive-$VERSION-source
chown -R root:root .
chmod -R a-s .
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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
chmod -R u+w,go-w,a+rX-st .
# Apply patches from branch2014
#for file in $CWD/branch2014/*.diff ; do patch -p2 < $file ; done
export LANG=C
export PATH="$PKG/usr/bin:$PATH"
export LD_LIBRARY_PATH="$PKG/usr/lib${LIBDIRSUFFIX}:$LD_LIBRARY_PATH"
# Fix up some paths
patch -p1 < $CWD/patches/source-fixup_texmf-local_tree_in_texmf_cnf.diff
# http://sourceforge.net/p/xdvi/bugs/391/
patch -p1 < $CWD/patches/fix-xaw3d-linkage-in-xdvik.diff
unset TEXMFCNF ; export TEXMFCNF
LANG=C ; export LANG
KPATHSEA_WARNING=0 ; export KPATHSEA_WARNING
# set TEXMFROOT and TEXMFLOCAL
sed -i "s|^TEXMFROOT.*|TEXMFROOT = \$SELFAUTODIR/share|;s|^TEXMFLOCAL.*|TEXMFLOCAL = \$TEXMFROOT/texmf-local|" texk/kpathsea/texmf.cnf
# --with-system-harfbuzz requires graphite2 (and harfbuzz linked to it)
mkdir build ; cd build
@ -101,13 +87,16 @@ mkdir build ; cd build
--with-banner-add=' on Slackware (SlackBuilds.org)' \
--disable-native-texlive-build \
--enable-largefile \
--with-xdvi-x-toolkit=xaw3d \
--enable-shared \
--disable-static \
--disable-missing \
--disable-multiplatform \
--disable-debug \
--with-x \
--without-etex \
--disable-xindy \
--enable-texdoctk \
--enable-xindy \
--disable-xindy-docs \
--disable-xindy-rules \
--with-clisp-runtime=system \
--with-system-poppler \
--with-system-xpdf \
@ -120,15 +109,63 @@ mkdir build ; cd build
--with-system-icu \
--with-system-pixman \
--with-system-cairo \
--without-system-harfbuzz \
--with-system-gmp \
--with-system-mpfr \
--with-system-fontconfig \
--with-system-ncurses \
--enable-gc=system \
--build=$ARCH-slackware-linux
make
make install DESTDIR=$PKG
# make check
make install-strip DESTDIR=$PKG
# Create symlinks
make texlinks DESTDIR=$PKG
cd ..
# Create symlinks
PATH="$PATH:$PKG/usr/bin" LD_LIBRARY_PATH=$PKG/usr/lib${LIBDIRSUFFIX}:$LD_LIBRARY_PATH \
texlinks -f $PKG/usr/share/texmf-dist/web2c/fmtutil.cnf $PKG/usr/bin
# install the texmf stuff, overwrite partly stuff coming from the source build;
# don't remove/separate koma-script docs as this is the wish of the author
mkdir -p $PKG/usr/share
tar vxf $CWD/texlive-base-$TEXMF_VERS.tar.xz -C $PKG/usr/share
chown -R root:root $PKG
chmod -R u+w,go-w,a+rX-st $PKG
# set TEXMFROOT and TEXMFLOCAL
sed -i \
"s|^TEXMFROOT.*|TEXMFROOT = \$SELFAUTODIR/share|;s|^TEXMFLOCAL.*|TEXMFLOCAL = \$TEXMFROOT/texmf-local|" \
$PKG/usr/share/texmf-dist/web2c/texmf.cnf
# Build asymptote; take support-files from the net-archives
cd utils/asymptote
CFLAGS="$SLKCFLAGS" \
./configure \
--datarootdir=/usr/share/texmf-dist \
--infodir=/usr/info \
--mandir=/usr/man \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--enable-gc=system \
--with-latex=/usr/share/texmf-dist/tex/latex \
--with-context=/usr/share/texmf-dist/tex/context/third \
--build=$ARCH-slackware-linux
make
#make check
strip --strip-unneeded asy
install -m 755 asy $PKG/usr/bin/
cd ../..
# Remove context-stuff
rm -rf $PKG/usr/share/texmf-dist/scripts/context
## Move context script(mtxrun) to the correct place.
## Handle the short context-helper scripts, by putting stub-scripts
## in the texlive-extra package and delete them here, as the needed
## context-packages are included in the texlive-extra package.
#(
#cd $PKG/usr/share/texmf-dist/scripts/context/stubs/unix/
#mv mtxrun $PKG/usr/bin/
#rm context contextjit luatools mtxrunjit texexec texmfstart
#cd ../../
#rmdir -p stubs/unix
#)
# Install the docs while we're still here
mkdir -p $PKG/usr/doc/texlive-$VERSION
@ -137,77 +174,26 @@ cp -a ChangeLog README* $PKG/usr/doc/texlive-$VERSION
# Put a symlink to /usr/share/texmf-dist/doc in our Slackware docdir
ln -s ../../share/texmf-dist/doc $PKG/usr/doc/$PRGNAM-$VERSION/doc
# Install biber
if [ "$ARCH" = "x86_64" ]; then
tar vxf $CWD/biber.x86_64-linux.tar.xz bin/x86_64-linux/biber
mv bin/x86_64-linux/biber $PKG/usr/bin
elif [ "$ARCH" = "i586" ]; then
tar vxf $CWD/biber.i386-linux.tar.xz bin/i386-linux/biber
mv bin/i386-linux/biber $PKG/usr/bin
fi
# We won't make tlmgr easily available; it's still there, but
# we'll make it harder to void the warranty :-)
rm -f $PKG/usr/bin/tlmgr
cat $CWD/README.tlpkg > $PKG/usr/doc/$PRGNAM-$VERSION/README.tlpkg
# Install biber
if [ "$ARCH" = "x86_64" ]; then
tar xf $CWD/biber-linux_x86_64.tar.gz -C $PKG/usr/bin
elif [ "$ARCH" = "i486" ]; then
tar xf $CWD/biber-linux_x86_32.tar.gz -C $PKG/usr/bin
fi
# Create some directories to make it clear that they're owned by this package
mkdir -p $PKG/usr/share/texmf-config $PKG/usr/share/texmf-var
# and now we'll install the texmf stuff
cd $TMP
rm -rf texlive-texmf-tetexish-$TEXMF_VERS
tar xvf $CWD/texlive-texmf-tetexish-$TEXMF_VERS.tar.xz -C $PKG/usr/share
cd $PKG/usr/share
chown -R root:root .
chmod -R a-s .
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 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# Fix up some paths
patch -p1 < $CWD/patches/texmf-fixup_texmf-local_tree_in_texmf_cnf.diff
# Move manual pages to the correct place
# There's some duplicates of stuff that's already present in /usr/man
# from the texlive source we just compiled above, but I'm going to
# work from the assumption that they're identical - here's why:
# http://rlworkman.net/images/barren-field.jpg
mv $PKG/usr/share/texmf-dist/doc/man/man1/*.1 $PKG/usr/man/man1
# No, we don't care about the pdf versions of the manual pages
rm -rf $PKG/usr/share/texmf-dist/doc/man
mkdir -p $PKG/usr/share/{texmf-config,texmf-var,texmf-local}
# Add some perl modules, at least one of which is required by updmap
mkdir -p $PKG/usr/share/perl5
mv $PKG/usr/share/tlpkg/TeXLive $PKG/usr/share/perl5
rmdir $PKG/usr/share/tlpkg
# Now that we have everything in place, build xindy
cd $TMP/texlive-$SOURCE_VERS-source/utils/xindy
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LATEX="$PKG/usr/bin/latex" \
PDFLATEX="$PKG/usr/bin/pdflatex" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--infodir=/usr/info \
--with-clisp-runtime=system \
--with-banner-add=' on Slackware (SlackBuilds.org)' \
--build=$ARCH-slackware-linux
export PATH="$PATH:$PKG/usr/bin"
export LD_LIBRARY_PATH="$PKG/usr/lib$LIBDIRSUFFIX"
$PKG/usr/bin/texhash
make
make install DESTDIR=$PKG
# Not really sure if this is necessary, but we changed the contents of
# /usr/share/texmf-dist so let's just do it for good measure.
$PKG/usr/bin/texhash
mv texk/tests/TeXLive $PKG/usr/share/perl5/
# Handle the man pages
find $PKG/usr/man -type f -exec gzip -9 {} \;
@ -221,5 +207,24 @@ mkdir -p $PKG/install
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
###### Maybe context is better supportet by a standalone installation,
## have a look at http://wiki.contextgarden.net/
#
## create profile, to make ConTEXt working
#mkdir -p $PKG/etc/profile.d
#cat << EOF > $PKG/etc/profile.d/texlive.sh
##!/bin/sh
## Add TEXMF and OSFONTDIR for ConTEXt:
#TEXMF=/usr/share/texmf-dist
#OSFONTDIR=~/.fonts:/usr/share/fonts
#EOF
#cat << EOF > $PKG/etc/profile.d/texlive.csh
##!/bin/csh
## Add TEXMF and OSFONTDIR for ConTEXt:
#setenv TEXMF /usr/share/texmf-dist
#setenv OSFONTDIR ~/.fonts:/usr/share/fonts
#EOF
#chmod 755 $PKG/etc/profile.d/texlive.*
cd $PKG
/sbin/makepkg -p -l y -c n $OUTPUT/texlive-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
/sbin/makepkg -p -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -1,18 +1,18 @@
PRGNAM="texlive"
VERSION="20140525"
VERSION="20160523"
HOMEPAGE="http://tug.org/texlive/"
DOWNLOAD="ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-source.tar.xz \
http://harrier.slackbuilds.org/texlive-2014/texlive/texlive-texmf-tetexish-20140525.tar.xz \
http://downloads.sourceforge.net/project/biblatex-biber/biblatex-biber/1.8/binaries/Linux/biber-linux_x86_32.tar.gz"
MD5SUM="09ee265ff51637827559affc7304078c \
a8498dbad49e093a9608fe57b015bf3a \
1011bee56611d55a1818a8698afdc6ed"
DOWNLOAD_x86_64="ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-source.tar.xz \
http://harrier.slackbuilds.org/texlive-2014/texlive/texlive-texmf-tetexish-20140525.tar.xz \
http://downloads.sourceforge.net/project/biblatex-biber/biblatex-biber/1.8/binaries/Linux/biber-linux_x86_64.tar.gz"
MD5SUM_x86_64="09ee265ff51637827559affc7304078c \
a8498dbad49e093a9608fe57b015bf3a \
64715ade77a7d659fd43be8773ebfdb9"
REQUIRES="%README% texi2html"
MAINTAINER="Robby Workman"
EMAIL="rworkman@slackbuilds.org"
DOWNLOAD="ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-source.tar.xz \
http:/slackware.schoepfer.info/slackbuilds/texlive/2016/texlive/texlive-base-20160609.tar.xz \
http://mirror.ctan.org/systems/texlive/tlnet/archive/biber.i386-linux.tar.xz"
MD5SUM="cee56cc024e77174eee20e5171de2f87 \
aa831cd588793f8ddb40372e8791a3bb \
6c5a7a007c2c39e47bfac8f867d2dffe"
DOWNLOAD_x86_64="ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-source.tar.xz \
http:/slackware.schoepfer.info/slackbuilds/texlive/2016/texlive/texlive-base-20160609.tar.xz \
http://mirror.ctan.org/systems/texlive/tlnet/archive/biber.x86_64-linux.tar.xz"
MD5SUM_x86_64="cee56cc024e77174eee20e5171de2f87 \
aa831cd588793f8ddb40372e8791a3bb \
d20085dda2c940aec5d242f3faa03ad4"
REQUIRES=""
MAINTAINER="Johannes Schoepfer"
EMAIL="slackbuilds[at]schoepfer[dot]info"