office/texlive: Updated SlackBuild for -current compatibility.

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
This commit is contained in:
Johannes Schoepfer 2017-10-06 16:47:51 +01:00 committed by David Spencer
parent ba7879d9ba
commit f5f5d046db
8 changed files with 1294 additions and 210 deletions

View File

@ -15,4 +15,3 @@ make it:
then we would love to hear from you. :-)
--rworkman :-)

View File

@ -1,4 +1,3 @@
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
chroot . /usr/bin/fmtutil-sys --all 1>/dev/null 2>/dev/null

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
#!/bin/sh
# Repacks the texlive tarball to remove unused sources.
VERSION=${VERSION:-$(echo texlive-*source.tar.?z* | rev | cut -f 2 -d - | cut -f 1 -d - | rev)}
tar xf texlive-${VERSION}-source.tar.xz || exit 1
mv texlive-${VERSION}-source.tar.xz texlive-${VERSION}-source.tar.xz.orig
( cd texlive-${VERSION}-source/libs && rm -rf cairo freetype2 gd gmp mpfr icu libpng pixman zlib )
( cd texlive-${VERSION}-source/utils && rm -rf asymptote )
tar cf texlive-${VERSION}-source.tar texlive-${VERSION}-source
rm -r texlive-${VERSION}-source
#xz -9 texlive-${VERSION}-source.tar
xz texlive-${VERSION}-source.tar
touch -r texlive-${VERSION}-source.tar.xz.orig texlive-${VERSION}-source.tar.xz
rm texlive-${VERSION}-source.tar.xz.orig

View File

@ -1,6 +1,6 @@
#!/bin/bash
# texmf_get.sh (c) 2016-2017 Johannes Schoepfer, slackbuilds[at]schoepfer[dot]info
# texmf_get.sh (c) 2016-2017 Johannes Schoepfer, Germany, slackbuilds[at]schoepfer[dot]info
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -20,7 +20,7 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# V 0.7
# V 0.9
#
# Prepare xz-compressed tarballs of texlive-texmf-trees based on texlive.tlpdb
# This script takes care of dependencies(as far as these are present in texlive.tlpdb) of collections and packages,
@ -53,7 +53,6 @@ packages () {
cm-super
cbfonts
sanskrit-t1
cmcyr
uhc
fonts-tlwg
ethiop-t1
@ -61,14 +60,30 @@ packages () {
wadalab
fandol
arphic
nanumtype1" \
texmfget fonts
mxedruli
skaknew
padauk
japanese-otf
musixtex-fonts
unfonts-extra
baekmuk
arphic-ttf
unfonts-core
nanumtype1
" texmfget fonts
# put some stuff in "extra" to before it makes its way into base
PACKAGES="
arara
latex2nemeth
montex
" \
texmfget extra
# The base. some notes:
# cs needed by fmtutil-sys --all, 2017-06-24
# hyphen-belarusian needed by fmtutil-sys --all, 2017-06-24
# hyphen-ethiopic
PACKAGES="
$(cat $TMP/corepackages)
collection-basic
collection-latex
collection-latexrecommended
@ -81,7 +96,7 @@ packages () {
collection-context
collection-mathscience
collection-plaingeneric
lh
collection-binextra
yfonts
doublestroke
was
@ -102,7 +117,6 @@ packages () {
titlesec
siunitx
combelow
csplain
csquotes
etoolbox
etextools
@ -111,46 +125,27 @@ packages () {
idxlayout
bidi
filecontents
cs
eplain
texsis
mltex
lollipop
moreverb
collection-langcyrillic
collection-langeuropean
collection-langenglish
collection-langfrench
collection-langgerman
collection-langgreek
collection-langitalian
collection-langpolish
collection-langportuguese
collection-langspanish
collection-langgreek
hyphen-belarusian
hyphen-ethiopic
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" \
texmfget base
" texmfget base
# Call "fonts"-tarball again to add remaining fonts
PACKAGES="collection-fontsextra" texmfget fonts
PACKAGES="
collection-fontsextra
" texmfget fonts
# Put all remaining stuff in the "extra" tarball
PACKAGES="
@ -162,18 +157,18 @@ PACKAGES="collection-fontsextra" texmfget fonts
collection-games
collection-publishers
collection-bibtexextra
collection-binextra
collection-music
collection-langother
collection-pstricks
collection-langcyrillic
collection-texworks
collection-wintools
collection-langczechslovak
collection-langjapanese
collection-langkorean
collection-langarabic
collection-langchinese
collection-langcjk" \
texmfget extra
collection-langcjk
collection-langother
" texmfget extra
# The docs-tarball - very big (about 1300 MB)
texmfget docs
@ -188,36 +183,6 @@ PACKAGES="collection-fontsextra" texmfget fonts
done < $TMP/allcollections
fi
# Following collections are windows only related
#NAME=texworks PACKAGES="collection-texworks" ./texmf_get.sh
#NAME=wintools PACKAGES="collection-wintools" ./texmf_get.sh
# For the records:
#
# base-tarball:
# 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, or or small to just have it for wider support of the base-package
# csplain
# yfonts
# to make biber functional
# biblatex
}
# ==== Nothing to edit beyond this line (hopefully) ====
@ -228,7 +193,6 @@ usage () {
exit
}
package_meta () {
echo "collection/package $collection"
# collection start linenumer
@ -249,6 +213,10 @@ package_meta () {
}
package_list () {
# Remove outputfile if already present
[ -s "$output" ] && rm $output
# Only do something if $collection wasn't already done before
while [ -s $collections_tobedone ]
do
@ -271,7 +239,7 @@ do
package_meta
fi
# ignore dependend collections generally, as this adds far too much and therefore reduces controll over what packages to be added
# Don't handle collections as dependency of other collections, 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" )" ]
@ -294,8 +262,8 @@ done
}
untar () {
# download packages, if not already available. Not for all packages a corresponding .doc package exists
rm $1.meta
# Download packages, if not already available. Not every packages has a corresponding .doc package.
[ -f $output.meta ] && rm $output.meta
while read package
do
# untar all packages, check for relocation, "relocate 1" -> untar in texmf-dist
@ -331,7 +299,7 @@ untar () {
exit 1
fi
# exclude the tlpkg-stuff, TLUtils.pm(needed tu run texlive) comes from source installation
# Exclude the tlpkg-stuff, TLUtils.pm(needed tu run texlive) is provided by texlive-source
grep -w ^"relocated 1" $texmf/$package.meta &>/dev/null
if [ $? = 0 ]
then
@ -339,7 +307,7 @@ untar () {
else
tar vxf ${package}${flavour}.tar.xz --exclude tlpkg || exit 1
fi
# in case a binary package was decompressed, put it in texmf-dist
# In case a binary package was decompressed, put it in texmf-dist
[ -d bin ] && cp -a bin texmf-dist && rm -rf bin
if [ "$flavour" = ".doc" ]
then
@ -348,17 +316,17 @@ untar () {
size=$(( $(grep ^containersize $texmf/$package.meta | cut -d' ' -f2 ) / 1024 ))
fi
shortdesc="$(grep ^shortdesc $texmf/$package.meta | cut -d' ' -f2- )"
echo "$size Kb, $package: $shortdesc" >> $1.meta
echo "$size Kb, $package: $shortdesc" >> $output.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/
# Copy packages-list to texmf-dist, so included packages are known in later installation
sort -n $output.meta > $output.meta.$TARBALL
cp $output.meta.$TARBALL texmf-dist/
rm $output.meta
}
remove_cruft () {
# Remove m$-stuff, ConTeXt single-user-system stuff, KOMA-Script sources and pdf-manpages
# Remove m$-stuff, ConTeXt single-user-system stuff, source leftovers and pdf-versions of manpages
rm -rf texmf-dist/source
rm -rf texmf-dist/scripts/context/stubs/source/
find texmf-dist/ -type d -name 'win32' -exec rm -rf {} +
@ -371,82 +339,49 @@ remove_cruft () {
find texmf-dist/ -type f -name '*win32*' -delete
find texmf-dist/ -type f -name 'winansi*' -delete
find texmf-dist/ -type f -name '*-man.pdf' -delete
# remove zero-length files, as these appear e.g. in hyph-utf8 tex-package.
# Remove zero-length files, as these appear e.g. in hyph-utf8 tex-package.
find . -type f -size 0c -delete
}
texmfget () {
NAME="$1"
# remove outputfile if already present
[ -s "$output" ] && rm $output
# check all content to make sure no package is added more than once. Docs contain every docfile
# Check all content to make sure no package is added more than once. Docs contain every docfile
if [ $TARBALL != docs ]
then
echo "Preparing list of packages to be added the $NAME-tarball ..."
echo "Preparing list of packages to be added to ${1}-tarball ..."
echo "$PACKAGES" | sed "s/[[:space:]]//g;/^$/d" >> $collections_tobedone
package_list
fi
if [ $NAME = $TARBALL ]
# Process only the one named($1) tarball
if [ "$1" = $TARBALL ]
then
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
# cleanup tar-directory, just in case
# Cleanup tar-directory, just in case
[ -d texmf-dist ] && rm -rf texmf-dist
#unset flavour ; export flavour
mkdir texmf-dist &> /dev/null
# Make tarball/checksum reproducible by setting mtime(clamp-mtime), owner, group and sort content
# Doesn't work with tar 1.13, when makepkg creates the tarball:
# tar-1.13: time_t value 9223372036854775808 too large (max=68719476735)
VERSION=$(cat $TMP/VERSION)
case $TARBALL in
docs)
export flavour=".doc"
untar $output_doc
remove_cruft
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar texmf-dist || exit 1
#tar vrf $TMP/texlive-$TARBALL-$VERSION.tar --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar --owner=0 --group=0 --sort=name texmf-dist || exit 1
echo "Packages-list: $output_doc"
rm -rf texmf-dist
;;
base|extra|fonts)
untar $output
remove_cruft
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar texmf-dist || exit 1
cat $output.meta >> $output.meta.$TARBALL
rm $output.meta
rm $output
#tar vrf $TMP/texlive-$TARBALL-$VERSION.tar --clamp-mtime --mtime --owner=0 --group=0 --sort=name texmf-dist || exit 1
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar --owner=0 --group=0 --sort=name texmf-dist || exit 1
rm -rf texmf-dist
;;
esac
@ -465,15 +400,15 @@ esac
mkdir -p $texmf
cd $TMP
# create run.tlpkg and doc.tlpkg only if $db.orig isn't there yet/was deleted
# Create run.tlpkg and doc.tlpkg only if $db.orig isn't there yet/was deleted
if [ ! -s $TMP/${db}.orig -o ! -s $TMP/${db} ]
then
echo $MAJORVERSION.$(date +%y%m%d) > VERSION
wget -c -O $TMP/${db}.orig -c ${mirror}tlpkg/$db
# shrink db to be faster on later processing
sed "/^ \+./d;/^longdesc \+./d;/^cat\+./d;/^rev\+./d;/^exe\+./d;/^bin\+./d;/^src\+./d" $TMP/${db}.orig > $TMP/$db
sed "/^ \+./d;/^longdesc \+./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
# As $db (might be)is new, remove the meta-files, might created again with (pontentionally) new content
rm -rf $texmf/*.meta
rm $TMP/run.tlpkg
[ -f "$output_doc" ] && rm "$output_doc"
@ -484,8 +419,11 @@ then
# Make a list of all collections
grep ^"name collection-" $TMP/$db | cut -d' ' -f2 > $TMP/allcollections
# Provide TLCore packages for the base-tarball, as these packages(and their dependencies) should be present in any case.
grep -B1 ^'category TLCore' $TMP/$db | grep -v ^'category TLCore' | grep -v ^-- | grep -v '\.' | cut -d' ' -f2 > $TMP/corepackages
# add biber (perl)binaries as special exception.
# add biber (perl)binaries as special exception as it is not fun to build
cat <<- EOF >> $TMP/allpackages
biber.x86_64-linux
biber.i386-linux
@ -496,57 +434,26 @@ fi
# globaly excluded packages, which does not make sense without tlpkg-installer, or are non-linux specific, or are already covered by the sourcebuild,
# or are covered by an external package(asymptote), or obsolete packages(datetime replaced by datetime2, anysize replaced by geometry)
global_exclude="
"
# currently unused variable, to be considered if these are already included by the source-tarball, or strip these of the source-tarball and add them as texlive-package?
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
cat << EOF > $TMP/global_exclude
tlcockpit
tlshell
texosquery
asymptote
asymptote-by-example-zh-cn
asymptote-faq-zh-cn
asymptote-manual-zh-cn
EOF
l3kernel
l3packages
l3experimental
fontspec
ocgx
luatex
"
for i in $global_exclude
while read exlude
do
if [ -z "$(grep -w ^"$i"$ $TMP/allpackages)" ]
then
echo "\"$i\" seems not to be a tex-package listet in $db, edit 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
sed -i "/^${i}$/d" $TMP/allpackages
[ -s $TMP/run.tlpkg ] && sed -i "/^${exclude}$/d" $TMP/run.tlpkg
[ -s $output_doc ] && sed -i "/^${exclude}$/d" $output_doc
done < $TMP/global_exclude
# get linenumbers of empty lines
# Get linenumbers of empty lines
[ -z "$emptylines" ] && emptylines="$(grep -n ^$ $TMP/$db | cut -d':' -f1)"
# sort doc- and run- packages out to avoid binfiles and sourcfile in the texmf-tree
# Sort doc- and run- packages out to avoid binfiles and sourcfile in the texmf-tree
while read collection
do
if [ ! -s $texmf/$collection.meta ]
@ -562,7 +469,7 @@ do
fi
done < $TMP/allpackages
# handle biber binaries to be add-able
# Handle biber binaries to be add-able
cat << EOF >> $TMP/run.tlpkg
biber.x86_64-linux
biber.i386-linux
@ -573,12 +480,13 @@ EOF
packages
# As the demanded packages are in the tarball, compress it.
# Now the demanded packages are in the tarball, compress it.
echo "Compressing $TMP/texlive-$TARBALL-$VERSION.tar ..."
if [ -s $TMP/texlive-$TARBALL-$VERSION.tar ]
then
[ -f $TMP/texlive-$TARBALL-$VERSION.tar.xz ] && rm $TMP/texlive-$TARBALL-$VERSION.tar.xz
xz -9 -T0 $TMP/texlive-$TARBALL-$VERSION.tar || exit 1
md5sum $TMP/texlive-$TARBALL-$VERSION.tar.xz
ls -lah $TMP/texlive-$TARBALL-$VERSION.tar.xz
fi

View File

@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
texlive: texlive (TeXLive binaries, support files, TeX formats)
texlive: texlive (TeX binaries, support files, and formats)
texlive:
texlive: This package contains binaries (including xindy 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: This package contains 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:
texlive: SlackBuilds.org has more texmf files and documentation in the
texlive: texlive-extra, texlive-fonts, and texlive-docs packages.
texlive:
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

@ -59,12 +59,23 @@ else
LIBDIRSUFFIX=""
fi
# NOTE: Using the system version of poppler will require texlive to be
# recompiled with pretty much every poppler update, as they almost always
# bump the shared library version. But sometimes you do what you have
# to do...
SYSTEMPOPPLER=${SYSTEMPOPPLER:-YES}
if [ "$SYSTEMPOPPLER" = "NO" ]; then
POPPLER="--without-system-poppler --without-system-xpdf"
else
POPPLER="--with-system-poppler --with-system-xpdf"
fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf texlive-$SOURCEVERSION-source
tar xvf $CWD/texlive-${SOURCEVERSION}-source.tar.xz
cd texlive-$SOURCEVERSION-source
tar xvf $CWD/texlive-${SOURCEVERSION}-source.tar.xz || exit 1
cd texlive-$SOURCEVERSION-source || exit 1
chown -R root:root .
chmod -R u+w,go-w,a+rX-st .
@ -79,12 +90,18 @@ sed -i \
texk/kpathsea/texmf.cnf
# Thanks to the lfs-folks ...
patch -Np1 -i $CWD/patches/texlive-20170524-source-gcc7-1.patch
patch -Np1 -i $CWD/patches/texlive-20170524-source-upstream_fixes-2.patch
patch -Np1 -i $CWD/patches/texlive-20170524-source-gcc7-1.patch || exit 1
patch -Np1 -i $CWD/patches/texlive-20170524-source-upstream_fixes-2.patch || exit 1
## Needed on -current, 2017-10-06
## Thanks to archlinux for the poppler-0.59 API fixup patch:
#if [ ! "$SYSTEMPOPPLER" = "NO" ]; then
# patch -Np1 -i $CWD/patches/texlive-poppler-0.59.patch || exit 1
#fi
# --with-system-harfbuzz requires graphite2 (and harfbuzz linked to it)
mkdir build
pushd build
cd build
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
../configure \
@ -106,8 +123,6 @@ pushd build
--disable-xindy-rules \
--with-clisp-runtime=system \
--enable-gc=system \
--with-system-poppler \
--with-system-xpdf \
--with-system-zlib \
--with-system-libpng \
--with-system-t1lib \
@ -121,18 +136,24 @@ pushd build
--with-system-mpfr \
--with-system-fontconfig \
--with-system-ncurses \
--build=$ARCH-slackware-linux
make
# make check
make install-strip DESTDIR=$PKG
--without-system-harfbuzz \
$POPPLER \
--build=$ARCH-slackware-linux || exit 1
make || exit 1
# make check || exit 1
make install-strip DESTDIR=$PKG || exit 1
# Create symlinks
make texlinks DESTDIR=$PKG
popd
make texlinks DESTDIR=$PKG || exit 1
cd ..
# Don't ship .la files:
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
# 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-$VERSION.tar.xz -C $PKG/usr/share
tar xvf $CWD/texlive-base-$VERSION.tar.xz -C $PKG/usr/share || exit 1
chown -R root:root $PKG
chmod -R u+w,go-w,a+rX-st $PKG

View File

@ -4,7 +4,7 @@ HOMEPAGE="http://tug.org/texlive/"
DOWNLOAD="http://mirrors.ctan.org/systems/texlive/Source/texlive-20170520-source.tar.xz \
http://slackware.schoepfer.info/slackbuilds/texlive/2017/texlive/texlive-base-2017.170622.tar.xz"
MD5SUM="5456dfd7858fe53cdd0fda5f0eb4fd35 \
29bee4e0671431334fc1dcae3e0087c0"
29bee4e0671431334fc1dcae3e0087c0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""