From b5a897b038243772403dbcecd93a022181b64b29 Mon Sep 17 00:00:00 2001 From: Johannes Schoepfer Date: Mon, 25 Jul 2016 07:56:03 -0500 Subject: office/texlive: fixed segfault in upmendex ; tweaked prep stuff Signed-off-by: Robby Workman --- ...texlive-20160523b-source-upstream_fixes-1.patch | 143 ++++++ office/texlive/prep/prepare_collections_texmf.sh | 173 ------- office/texlive/prep/texmf_get.sh | 505 +++++++++++---------- office/texlive/texlive.SlackBuild | 8 +- 4 files changed, 420 insertions(+), 409 deletions(-) create mode 100644 office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch delete mode 100644 office/texlive/prep/prepare_collections_texmf.sh diff --git a/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch b/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch new file mode 100644 index 0000000000..2dc07f4078 --- /dev/null +++ b/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch @@ -0,0 +1,143 @@ +Submitted By: Ken Moffat +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 ++ ++ * 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 + + * 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;k0) { +- 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) + { diff --git a/office/texlive/prep/prepare_collections_texmf.sh b/office/texlive/prep/prepare_collections_texmf.sh deleted file mode 100644 index d36b5f06c7..0000000000 --- a/office/texlive/prep/prepare_collections_texmf.sh +++ /dev/null @@ -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 - diff --git a/office/texlive/prep/texmf_get.sh b/office/texlive/prep/texmf_get.sh index 6fdfe899f3..3d9d2fdd01 100644 --- a/office/texlive/prep/texmf_get.sh +++ b/office/texlive/prep/texmf_get.sh @@ -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 - - - - -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) +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 + +# The docs-tarball - very big (about 1300 MB) + texmfget docs + +# 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 + +# 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) ==== +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 - -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 +[ -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 +packages -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 diff --git a/office/texlive/texlive.SlackBuild b/office/texlive/texlive.SlackBuild index b327faeaae..40b5e7c68f 100644 --- a/office/texlive/texlive.SlackBuild +++ b/office/texlive/texlive.SlackBuild @@ -4,7 +4,7 @@ # Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA # Copyright 2009-2014 Robby Workman, Northport, AL, USA -# Copyright 2016 Johannes Schoepfer, +# 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 \ -- cgit v1.2.3