office/texlive: fixed segfault in upmendex ; tweaked prep stuff

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Johannes Schoepfer 2016-07-25 07:56:03 -05:00 committed by Willy Sudiarto Raharjo
parent f8e4d24eb4
commit b5a897b038
No known key found for this signature in database
GPG key ID: 887B8374D7333381
4 changed files with 413 additions and 402 deletions

View file

@ -0,0 +1,143 @@
Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
Date: 2016-06-25
Initial Package Version: 20160523
Upstream Status: Applied
Origin: Upstream, svn revisions 41497, 41498
Description: Fixes segfault in upmendex.
diff -Naur texlive-20160523-source/texk/README texlive-20160523-source-b/texk/README
--- texlive-20160523-source/texk/README 2016-04-20 00:51:42.000000000 +0100
+++ texlive-20160523-source-b/texk/README 2016-06-24 05:02:26.519423562 +0100
@@ -98,7 +98,7 @@
ttfdump - ?
-upmendex 0.50 -
+upmendex 0.51 - by Takuji Tanaka
http://www.ctan.org/pkg/upmendex
http://www.t-lab.opal.ne.jp/tex/uptex_en.html
diff -Naur texlive-20160523-source/texk/upmendex/ChangeLog texlive-20160523-source-b/texk/upmendex/ChangeLog
--- texlive-20160523-source/texk/upmendex/ChangeLog 2016-02-12 16:05:18.000000000 +0000
+++ texlive-20160523-source-b/texk/upmendex/ChangeLog 2016-06-24 05:02:26.519423562 +0100
@@ -1,3 +1,9 @@
+2016-06-19 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 0.51 Beta version.
+ * fwrite.c: Fix bug of option "hanzi_head" in style file.
+ Thanks to Dr. Werner Fink.
+
2016-02-12 Karl Berry <karl@tug.org>
* configure.ac (KPSE_CXX_HACK): add to avoid usual libstdc++.so
diff -Naur texlive-20160523-source/texk/upmendex/fwrite.c texlive-20160523-source-b/texk/upmendex/fwrite.c
--- texlive-20160523-source/texk/upmendex/fwrite.c 2016-02-09 11:02:48.000000000 +0000
+++ texlive-20160523-source-b/texk/upmendex/fwrite.c 2016-06-24 05:02:26.519423562 +0100
@@ -67,33 +67,38 @@
static void fprint_uchar(FILE *fp, const UChar *a, const int mode, const int len)
{
- int k;
- char str[15], *ret;
- UChar istr[5];
+ char str[3*INITIALLENGTH+1];
+ UChar istr[INITIALLENGTH];
int olen, wclen;
UErrorCode perr;
if (len<0) {
- for (k=0; a[k] || k<4; k++) istr[k]=a[k];
- wclen=k;
+ u_strcpy(istr,a);
+ wclen=u_strlen(istr);
} else {
- wclen = is_surrogate_pair(a) ? 2 : 1;
+ wclen=is_surrogate_pair(a) ? 2 : 1;
istr[0]=a[0];
if (wclen==2) istr[1]=a[1];
+ istr[wclen]=L'\0';
}
- istr[wclen]=L'\0';
if (mode==M_TO_UPPER) {
- perr = U_ZERO_ERROR;
- u_strToUpper(istr,5,istr,wclen,"",&perr);
+ perr=U_ZERO_ERROR;
+ olen=u_strToUpper(istr,INITIALLENGTH,istr,wclen,"",&perr);
} else if (mode==M_TO_LOWER) {
- perr = U_ZERO_ERROR;
- u_strToLower(istr,5,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
+ perr=U_ZERO_ERROR;
+ olen=u_strToLower(istr,INITIALLENGTH,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
} else if (mode==M_TO_TITLE) {
- perr = U_ZERO_ERROR;
- u_strToTitle(istr,5,istr,wclen,NULL,"",&perr);
- }
- perr = U_ZERO_ERROR;
- ret = u_strToUTF8(str, 15, &olen, istr, wclen, &perr);
+ perr=U_ZERO_ERROR;
+ olen=u_strToTitle(istr,INITIALLENGTH,istr,wclen,NULL,"",&perr);
+ } else
+ olen=wclen;
+ if (olen>INITIALLENGTH) {
+ warn_printf(efp, "\nWarning, Too long (%d) header.\n", olen);
+ wclen=INITIALLENGTH;
+ } else
+ wclen=olen;
+ perr=U_ZERO_ERROR;
+ u_strToUTF8(str, 3*INITIALLENGTH+1, &olen, istr, wclen, &perr);
fprintf(fp,"%s",str);
}
@@ -844,7 +849,7 @@
static int init_hanzi_header(void)
{
UChar strX[2],*pch0,*pch1;
- int k, hzmode;
+ int k, hzmode, len;
struct hanzi_index *hz_idx_init;
strX[0]=0x5B57; strX[1]=L'\0';
@@ -878,21 +883,18 @@
for (k=0;k<hz_index_len;k++) {
if (u_strlen(pch0)==0) break;
if ((pch1=u_strchr(pch0,L';'))>0) {
- if (pch1-pch0>=INITIALLENGTH) {
- warn_printf(efp, "\nWarning, Too long hanzi header.\n");
- break;
- }
- u_strncpy(hz_index[k].idx,pch0,pch1-pch0);
- hz_index[k].idx[pch1-pch0]=L'\0';
- pch0=pch1+1;
+ len=pch1-pch0;
} else {
- if (u_strlen(pch0)>=INITIALLENGTH) {
- warn_printf(efp, "\nWarning, Too long hanzi header.\n");
- break;
- }
- u_strcpy(hz_index[k].idx,pch0);
- break;
+ len=u_strlen(pch0);
}
+ if (len>=INITIALLENGTH) {
+ warn_printf(efp, "\nWarning, Too long (%d) hanzi header.\n", len);
+ len=INITIALLENGTH-1;
+ }
+ u_strncpy(hz_index[k].idx,pch0,len);
+ hz_index[k].idx[len]=L'\0';
+ if (pch1>0) pch0=pch1+1;
+ else break;
}
return hzmode;
diff -Naur texlive-20160523-source/texk/upmendex/main.c texlive-20160523-source-b/texk/upmendex/main.c
--- texlive-20160523-source/texk/upmendex/main.c 2016-02-09 23:44:45.000000000 +0000
+++ texlive-20160523-source-b/texk/upmendex/main.c 2016-06-24 05:02:26.519423562 +0100
@@ -19,7 +19,7 @@
#endif
KpathseaSupportInfo kp_ist,kp_dict;
-#define VERSION "version 0.50"
+#define VERSION "version 0.51"
int main(int argc, char **argv)
{

View file

@ -1,173 +0,0 @@
#!/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

@ -20,12 +20,11 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# V 0.3
# V 0.4
#
# get texlive-packages/texmf-tree based on texlive.tlpdb, create a tar.xz tarball out of it.
#
# usage:
# ./texmf_get.sh [extra|docs]
# 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,
# and that every texlive-package is included only once.
# available packages http://mirror.ctan.org/systems/texlive/tlnet/archive/
@ -37,134 +36,178 @@ mirror="http://mirror.ctan.org/systems/texlive/tlnet/"
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
tmpfile=$(mktemp)
collections_done=$TMP/done
collections_tobedone=$TMP/tobedone
#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
packages () {
# fonts-package first to make sure that big fonts like cm-super are not included elsewhere as dependency
PACKAGES="
cm-super
cbfonts
sanskrit-t1
cmcyr
cs
uhc
fonts-tlwg
ethiop-t1
ipaex
wadalab
fandol
arphic
nanumtype1" \
texmfget fonts
# The 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" \
texmfget base
# Call "fonts"-tarball again to add remaining fonts
PACKAGES="collection-fontsextra" texmfget fonts
# Put all remaining stuff in the "extra" tarball
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" \
texmfget extra
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
# The docs-tarball - very big (about 1300 MB)
texmfget docs
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
# 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
#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
# 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
#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)
# 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) ====
usage () {
echo "Prepare texmf trees based on collections and packages and their dependencies."
echo "./texmf_get.sh [base|docs|extra|fonts]"
exit
}
package_meta () {
echo "collection/package $collection"
# collection start linenumer
@ -203,7 +246,7 @@ do
fi
fi
if [ -s $texmf/$collection.meta ]
if [ -s "$texmf/$collection.meta" ]
then
cp $texmf/$collection.meta $tmpfile
else
@ -230,7 +273,8 @@ do
continue
fi
# filter for max containersize to be added.
[ $(grep ^containersize $tmpfile | cut -d' ' -f2 ) -lt $(($kb * 1024)) ] && echo "$collection" >> $output
#[ $(grep ^containersize $tmpfile | cut -d' ' -f2 ) -lt $(($kb * 1024)) ] && echo "$collection" >> $output
echo "$collection" >> $output
fi
# add dependend packages
grep ^"depend " $tmpfile | grep -v "ARCH$" | cut -d' ' -f2- >> $collections_tobedone
@ -254,7 +298,7 @@ untar () {
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
[ ! -s ${package}${flavour}.tar.xz ] && echo "Downloading ${package}${flavour}.tar.xz did not work, writing 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
@ -315,11 +359,97 @@ untar () {
find . -type f -size 0c -delete
}
tmpfile=$(mktemp)
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
if [ $TARBALL != docs ]
then
echo "Preparing list of packages to be added the $NAME-tarball ..."
echo "$PACKAGES" | sed "s/[[:space:]]//g;/^$/d" >> $collections_tobedone
package_list
fi
if [ $NAME = $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
[ -d texmf-dist ] && rm -rf texmf-dist
#unset flavour ; export flavour
mkdir texmf-dist &> /dev/null
VERSION=$(cat $TMP/VERSION)
case $TARBALL in
docs)
export flavour=".doc"
untar $output_doc
#tar Jvcf $TMP/texlive-texmf-docs-$VERSION.tar.xz texmf-dist || exit 1
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar texmf-dist || exit 1
echo "Packages-list: $output_doc"
rm -rf texmf-dist
;;
base|extra|fonts)
untar $output
tar vrf $TMP/texlive-$TARBALL-$VERSION.tar texmf-dist || exit 1
cat $output.meta >> $output.meta.$TARBALL
rm $output.meta
echo "Packages-list: $output.meta.$TARBALL"
rm $output
rm -rf texmf-dist
;;
esac
fi
}
# Main
case "$1" in
base|docs|extra|fonts) TARBALL=$1; echo "Building $TARBALL tarball ..." ;;
*) usage ;;
esac
mkdir -p $texmf
cd $TMP
# create run.tlpkg and doc.tlpkg only if $db.orig isn't there yet/was deletet
# create run.tlpkg and doc.tlpkg only if $db.orig isn't there yet/was deleted
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
@ -331,16 +461,14 @@ then
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
[ -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.
@ -351,6 +479,7 @@ grep ^name $TMP/$db | grep -v ^"name collection-" | grep -v ^"name scheme-" | gr
global_exclude="
texworks
"
# 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
@ -414,109 +543,19 @@ do
fi
done < $TMP/allpackages
VERSION=$(cat VERSION)
# remove outputfile if already present
[ -s "$output" ] && rm $output
[ -f "$collections_done" ] && rm "$collections_done"
[ -f "$collections_tobedone" ] && rm "$collections_tobedone"
collections_done=$TMP/done
collections_tobedone=$TMP/tobedone
packages
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
# As 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
ls -lah $TMP/texlive-$TARBALL-$VERSION.tar.xz
fi
# cleanup
rm $tmpfile

View file

@ -4,7 +4,7 @@
# 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>
# Copyright 2016 Johannes Schoepfer, Herrenberg, BW, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -30,7 +30,7 @@
PRGNAM=texlive
VERSION=20160523
TEXMF_VERS=20160622
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
CWD=$(pwd)
@ -75,6 +75,9 @@ export LD_LIBRARY_PATH="$PKG/usr/lib${LIBDIRSUFFIX}:$LD_LIBRARY_PATH"
# set TEXMFROOT and TEXMFLOCAL
sed -i "s|^TEXMFROOT.*|TEXMFROOT = \$SELFAUTODIR/share|;s|^TEXMFLOCAL.*|TEXMFLOCAL = \$TEXMFROOT/texmf-local|" texk/kpathsea/texmf.cnf
# Fix a segfault in upmendex, thanks to the lfs-folks.
patch -Np1 -i $CWD/patches/texlive-20160523b-source-upstream_fixes-1.patch
# --with-system-harfbuzz requires graphite2 (and harfbuzz linked to it)
mkdir build ; cd build
CFLAGS="$SLKCFLAGS" \
@ -93,7 +96,6 @@ mkdir build ; cd build
--disable-multiplatform \
--disable-debug \
--with-x \
--enable-texdoctk \
--enable-xindy \
--disable-xindy-docs \
--disable-xindy-rules \