aboutsummaryrefslogtreecommitdiff
path: root/office/texlive
diff options
context:
space:
mode:
authorJohannes Schoepfer <slackbuilds[at]schoepfer[dot]info>2016-07-25 07:56:03 -0500
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2016-07-30 08:28:43 +0700
commitb5a897b038243772403dbcecd93a022181b64b29 (patch)
tree4af82264c216062952fed01ec78a3225adbbcf8e /office/texlive
parentf8e4d24eb4b74ad6125b0f292385e574ff9d9558 (diff)
office/texlive: fixed segfault in upmendex ; tweaked prep stuff
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'office/texlive')
-rw-r--r--office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch143
-rw-r--r--office/texlive/prep/prepare_collections_texmf.sh173
-rw-r--r--office/texlive/prep/texmf_get.sh505
-rw-r--r--office/texlive/texlive.SlackBuild8
4 files changed, 420 insertions, 409 deletions
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 000000000000..2dc07f4078bc
--- /dev/null
+++ b/office/texlive/patches/texlive-20160523b-source-upstream_fixes-1.patch
@@ -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)
+ {
diff --git a/office/texlive/prep/prepare_collections_texmf.sh b/office/texlive/prep/prepare_collections_texmf.sh
deleted file mode 100644
index d36b5f06c764..000000000000
--- 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 6fdfe899f366..3d9d2fdd01c8 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 b327faeaae01..40b5e7c68fbd 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, <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 \