chiark / gitweb /
texlive: Reshaping termux_step_extract_package to enable moving files to standard...
[termux-packages] / packages / texlive / build.sh
1 TERMUX_PKG_HOMEPAGE=https://www.tug.org/texlive/
2 TERMUX_PKG_DESCRIPTION="TeX Live is a distribution of the TeX typesetting system."
3 TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91"
4 _MAJOR_VERSION=20170524
5 TERMUX_PKG_VERSION=${_MAJOR_VERSION}
6 TERMUX_PKG_REVISION=5
7 TERMUX_PKG_SRCURL=("ftp://ftp.tug.org/texlive/historic/${TERMUX_PKG_VERSION:0:4}/"\
8 {"texlive-$_MAJOR_VERSION-texmf.tar.xz",\
9 "texlive-$_MAJOR_VERSION-extra.tar.xz",\
10 "install-tl-unx.tar.gz"})
11 TERMUX_PKG_SHA256=("3f63708b77f8615ec6f2f7c93259c5f584d1b89dd335a28f2362aef9e6f0c9ec"
12 "afe49758c26fb51c2fae2e958d3f0c447b5cc22342ba4a4278119d39f5176d7f"
13 "d4e07ed15dace1ea7fabe6d225ca45ba51f1cb7783e17850bc9fe3b890239d6d")
14 TERMUX_PKG_DEPENDS="wget, perl, xz-utils, gnupg2, texlive-bin (>= 20170524)"
15 TERMUX_PKG_FOLDERNAME=("texlive-$_MAJOR_VERSION-texmf"
16 "texlive-$_MAJOR_VERSION-extra"
17 "install-tl-$_MAJOR_VERSION")
18 TL_FILE_LISTS=("texlive-texmf.list"
19 "texlive-extra.list"
20 "install-tl.list")
21 TERMUX_PKG_PLATFORM_INDEPENDENT=yes
22
23 TL_ROOT=$TERMUX_PREFIX/share/texlive
24 TL_BINDIR=$TERMUX_PREFIX/bin
25
26 termux_step_extract_package() {
27         mkdir -p "$TERMUX_PKG_SRCDIR"
28         
29         cd "$TERMUX_PKG_TMPDIR"
30         for index in $(seq 0 2); do
31                 local filename
32                 filename=$(basename "${TERMUX_PKG_SRCURL[$index]}")
33                 local file="$TERMUX_PKG_CACHEDIR/$filename"
34                 termux_download "${TERMUX_PKG_SRCURL[$index]}" "$file" "${TERMUX_PKG_SHA256[$index]}"
35                 
36                 folder=${TERMUX_PKG_FOLDERNAME[$index]}
37                 
38                 rm -Rf $folder
39                 echo "Extracting files listed in ${TL_FILE_LISTS[$index]} from $folder"
40                 tar xf "$file" $(paste -d'\0' <(for i in $(seq 1 $( wc -l < $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS[$index]} )); do echo ${TERMUX_PKG_FOLDERNAME[$index]}/; done ) $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS[$index]} )
41         done
42         cp -r ${TERMUX_PKG_FOLDERNAME[@]} "$TERMUX_PKG_SRCDIR"
43 }
44
45 termux_step_make() {
46         for index in $( seq 0 2 ); do
47                 cp -r $TERMUX_PKG_SRCDIR/${TERMUX_PKG_FOLDERNAME[$index]}/* $TL_ROOT/
48         done
49         
50         mkdir -p $TL_ROOT/{tlpkg/{backups,tlpobj},texmf-var/web2c}
51         cp $TERMUX_PKG_BUILDER_DIR/texlive.tlpdb $TL_ROOT/tlpkg/
52         
53         perl -I$TL_ROOT/tlpkg/ $TL_ROOT/texmf-dist/scripts/texlive/mktexlsr.pl $TL_ROOT/texmf-dist
54 }
55
56 termux_step_create_debscripts () {
57         # Clean texlive's folder if needed (run on upgrade)
58         echo "#!$TERMUX_PREFIX/bin/bash" > preinst
59         echo "if [ ! -f $TERMUX_PREFIX/opt/texlive/2016/install-tl -a ! -f $TERMUX_PREFIX/opt/texlive/2017/install-tl ]; then exit 0; else echo 'Removing residual files from old version of TeX Live for Termux'; fi" >> preinst
60         echo "rm -rf $TERMUX_PREFIX/etc/profile.d/texlive.sh" >> preinst
61         echo "rm -rf $TERMUX_PREFIX/opt/texlive/2016" >> preinst
62         # Let's not delete the previous texmf-dist so that people who have installed a full distribution won't need to download everything again
63         echo "shopt -s extglob" >> preinst # !(texmf-dist) is an extended glob which is turned off in scripts
64         echo "rm -rf $TERMUX_PREFIX/opt/texlive/2017/!(texmf-dist)" >> preinst
65         echo "shopt -u extglob" >> preinst # disable extglob again just in case
66         echo "exit 0" >> preinst
67         chmod 0755 preinst
68         
69         echo "#!$TERMUX_PREFIX/bin/bash" > postinst
70         echo "mkdir -p $TL_ROOT/{tlpkg/{backups,tlpobj},texmf-var/{web2c,tex/generic/config}}" >> postinst
71         echo "export TMPDIR=$TERMUX_PREFIX/tmp" >> postinst
72         echo "echo Updating tlmgr" >> postinst
73         echo "tlmgr update --self" >> postinst
74         echo "echo Generating language files and setting up symlinks" >> postinst
75         echo "tlmgr -q generate language" >> postinst
76         echo "mktexlsr $TL_ROOT/texmf-var" >> postinst
77         echo "texlinks" >> postinst
78         echo "echo ''" >> postinst
79         echo "echo Welcome to TeX Live!" >> postinst
80         echo "echo ''" >> postinst
81         echo "echo 'TeX Live is a joint project of the TeX user groups around the world;'" >> postinst
82         echo "echo 'please consider supporting it by joining the group best for you.'" >> postinst
83         echo "echo 'The list of groups is available on the web at http://tug.org/usergroups.html.'" >> postinst
84         echo "exit 0" >> postinst
85         chmod 0755 postinst
86
87         # Remove all files installed through tlmgr on removal
88         echo "#!$TERMUX_PREFIX/bin/bash" > prerm
89         echo 'if [ $1 != "remove" ]; then exit 0; fi' >> prerm
90         echo "echo Running texlinks --unlink" >> prerm
91         echo "texlinks --unlink" >> prerm
92         echo "echo Removing texmf-dist" >> prerm
93         echo "rm -rf $TL_ROOT/texmf-dist" >> prerm
94         echo "echo Removing texmf-var and tlpkg" >> prerm
95         echo "rm -rf $TL_ROOT/{texmf-var,tlpkg/{texlive.tlpdb.*,tlpobj,backups}}" >> prerm
96         echo "exit 0" >> prerm
97         chmod 0755 prerm
98 }
99
100 # Files to rm, first from texlive-$_MAJOR_VERSION-extra and then from install-tl-unx
101 TERMUX_PKG_RM_AFTER_INSTALL="
102 share/texlive/README
103 share/texlive/README.usergroups
104 share/texlive/autorun.inf
105 share/texlive/doc.html
106 share/texlive/index.html
107 share/texlive/install-tl
108 share/texlive/install-tl-advanced.bat
109 share/texlive/install-tl-windows.bat
110 share/texlive/readme-html.dir/readme.ja.html
111 share/texlive/readme-html.dir/readme.ru.html
112 share/texlive/readme-html.dir/readme.zh-cn.html
113 share/texlive/readme-html.dir/readme.it.html
114 share/texlive/readme-html.dir/readme.es.html
115 share/texlive/readme-html.dir/readme.pl.html
116 share/texlive/readme-html.dir/readme.de.html
117 share/texlive/readme-html.dir/readme.fr.html
118 share/texlive/readme-html.dir/readme.sr.html
119 share/texlive/readme-html.dir/readme.pt-br.html
120 share/texlive/readme-html.dir/readme.en.html
121 share/texlive/readme-html.dir/readme.cs.html
122 share/texlive/readme-txt.dir/README.RU-koi8
123 share/texlive/readme-txt.dir/README.EN
124 share/texlive/readme-txt.dir/README.FR
125 share/texlive/readme-txt.dir/README.SK-il2
126 share/texlive/readme-txt.dir/README.SK-ascii
127 share/texlive/readme-txt.dir/README.RU
128 share/texlive/readme-txt.dir/README.IT
129 share/texlive/readme-txt.dir/README.CS
130 share/texlive/readme-txt.dir/README.JA
131 share/texlive/readme-txt.dir/README.ES
132 share/texlive/readme-txt.dir/README.ZH-CN
133 share/texlive/readme-txt.dir/README.DE
134 share/texlive/readme-txt.dir/README.PL
135 share/texlive/readme-txt.dir/README.SK-cp1250
136 share/texlive/readme-txt.dir/README.SR
137 share/texlive/readme-txt.dir/README.PT-BR
138 share/texlive/readme-txt.dir/README.RU-cp1251
139 share/texlive/tl-tray-menu.exe
140 share/texlive/tlpkg/tlpostcode/xetex.pl
141 share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.conf
142 share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.dtd
143 share/texlive/tlpkg/tlpostcode/xetex/conf/conf.d/51-local.conf
144 share/texlive/tlpkg/tlpostcode/xetex/cache/readme.txt
145 share/texlive/tlpkg/tlpostcode/ptex2pdf-tlpost.pl"