summaryrefslogtreecommitdiffstats
path: root/office/texlive/prep/texmf_get.sh
diff options
context:
space:
mode:
author Johannes Schoepfer2017-10-06 17:47:51 +0200
committer David Spencer2017-10-06 17:48:31 +0200
commitf5f5d046db444f85493872f06b3d49c9e646dea0 (patch)
treeec75448d5a54c99c9720b86f9fb13588d935ef33 /office/texlive/prep/texmf_get.sh
parentba7879d9ba0a6b8664337d690d80c55212e0ef9f (diff)
downloadslackbuilds-f5f5d046db444f85493872f06b3d49c9e646dea0.tar.gz
office/texlive: Updated SlackBuild for -current compatibility.
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
Diffstat (limited to 'office/texlive/prep/texmf_get.sh')
-rw-r--r--office/texlive/prep/texmf_get.sh280
1 files changed, 94 insertions, 186 deletions
diff --git a/office/texlive/prep/texmf_get.sh b/office/texlive/prep/texmf_get.sh
index 34122ab5f2..045b570224 100644
--- a/office/texlive/prep/texmf_get.sh
+++ b/office/texlive/prep/texmf_get.sh
@@ -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
-
-l3kernel
-l3packages
-l3experimental
-fontspec
-ocgx
-luatex
-"
-
-for i in $global_exclude
+cat << EOF > $TMP/global_exclude
+tlcockpit
+tlshell
+texosquery
+asymptote
+asymptote-by-example-zh-cn
+asymptote-faq-zh-cn
+asymptote-manual-zh-cn
+EOF
+
+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