termux-packages/packages/texlive/build.sh

125 lines
5.1 KiB
Bash
Raw Normal View History

TERMUX_PKG_HOMEPAGE=https://www.tug.org/texlive/
TERMUX_PKG_DESCRIPTION="TeX Live is a distribution of the TeX typesetting system."
TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91"
_MAJOR_VERSION=20180414
TERMUX_PKG_VERSION=${_MAJOR_VERSION}
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL="ftp://ftp.tug.org/texlive/historic/${TERMUX_PKG_VERSION:0:4}/texlive-$_MAJOR_VERSION-texmf.tar.xz"
TERMUX_PKG_SHA256="bae2fa05ea1858b489f8138bea855c6d65829cf595c1fb219c5d65f4fe8b1fad"
TERMUX_PKG_DEPENDS="perl, texlive-bin (>= 20180414)"
TERMUX_PKG_CONFLICTS="texlive (<< 20170524-5), texlive-bin (<< 20180414)"
TERMUX_PKG_RECOMMENDS="texlive-tlmgr"
TERMUX_PKG_FOLDERNAME="texlive-$_MAJOR_VERSION-texmf"
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
TERMUX_PKG_PLATFORM_INDEPENDENT=yes
Add fixes for debug builds (#2296) * build-package.sh: add possibility for debug patches and TERMUX_PKG_HAS_DEBUG Setting TERMUX_PKG_HAS_DEBUG=no disables attempt to build debug build of package. Useful for example if a debug build doesn't make sense, as for python-packages and texlive. * aapt: skip D_FORTIFY_SOURCE=2 for libandroid-cutils when doing debug build * lftp: skip D_FORTIFY_SOURCE=2 for debug build * libflac: don't use -g3 for debug build Configure script removes it otherwise. * nano: skip -D_FORTIFY_SOURCE=2 for debug build * vifm: skip -D_FORTIFY_SOURCE=2 for debug build * mc: skip -D_FORTIFY_SOURCE=2 for debug build * dropbear: add __attribute__((overloadable)) to XMEMSET and XMEMCPY if debug * gdb: add __attribute__((overloadable)) to strchr if debug * gnuit: add __attribute__((overloadable)) to strchr and strcpy if debug * gperf: add __attribute__((overloadable)) to strlen if debug * inetutils: add __attribute__((overloadable)) to strrchr and strchr if debug * readline: add __attribute__((overloadable)) to strchr if debug * tsocks: add __attribute__((overloadable)) to poll if debug * units: add __attribute__((overloadable)) to strchr if debug * liblua: fix bug in loslib.c that emerged in debug build Use strncpy instead of strcpy. Original error message: loslib.c:169:3: error: 'strcpy' called with string bigger than buffer lua_tmpnam(buff, err); ^ loslib.c:122:37: note: expanded from macro 'lua_tmpnam' strcpy(b, LUA_TMPNAMTEMPLATE); \ ^ * alpine: include our getpass.h in imap's mtest.c to declare getpass Debug build complained about the previous implicit declaration. * nginx: use --with-debug instead of --debug * cboard: skip -D_FORTIFY_SOURCE=2 for debug build * gettext: add __attribute__((overloadable)) to getcwd if debug * oathtool: skip -D_FORTIFY_SOURCE=2 for debug build * php: add __attribute__((overloadable)) to strlcpy and strlcat if debug * expect: add __attribute__((overloadable)) to strchr if debug * texlive: set TERMUX_PKG_HAS_DEBUG=no * asciinema: set TERMUX_PKG_HAS_DEBUG=no * libllvm: set TERMUX_PKG_HAS_DEBUG=no Debug build fails with: home/builder/.termux-build/libllvm/src/lib/Support/Unix/Path.inc:740:19: error: no matching function for call to 'RetryAfterSignal' if ((ResultFD = sys::RetryAfterSignal(-1, open, P.begin(), OpenFlags)) < 0) * build-package.sh: set TERMUX_PKG_REPLACES=package if debug build Hopefully allows us to install debug packages without breaking dependecies. Should be looked over and be made more similar to how debian does this in any case * Update build.sh
2018-06-13 02:12:36 +02:00
TERMUX_PKG_HAS_DEBUG=no
2017-03-08 17:41:26 +01:00
TL_FILE_LISTS="texlive-texmf.list"
TL_ROOT=$TERMUX_PREFIX/share/texlive
TL_BINDIR=$TERMUX_PREFIX/bin
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
termux_step_extract_package() {
mkdir -p "$TERMUX_PKG_SRCDIR"
cd "$TERMUX_PKG_TMPDIR"
local filename
filename=$(basename "${TERMUX_PKG_SRCURL}")
local file="$TERMUX_PKG_CACHEDIR/$filename"
termux_download "${TERMUX_PKG_SRCURL}" "$file" "${TERMUX_PKG_SHA256}"
folder=${TERMUX_PKG_FOLDERNAME}
rm -Rf $folder
echo "Extracting files listed in ${TL_FILE_LISTS} from $folder"
tar xf "$file" $(paste -d'\0' <(for i in $(seq 1 $( wc -l < $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS} )); do echo ${TERMUX_PKG_FOLDERNAME}/; done ) $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS} )
cp -r ${TERMUX_PKG_FOLDERNAME}/* "$TERMUX_PKG_SRCDIR"
}
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
termux_step_make() {
cp -r $TERMUX_PKG_SRCDIR/* $TL_ROOT/
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
perl -I$TL_ROOT/tlpkg/ $TL_ROOT/texmf-dist/scripts/texlive/mktexlsr.pl $TL_ROOT/texmf-dist
}
termux_step_create_debscripts () {
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
# Clean texlive's folder if needed (run on upgrade)
echo "#!$TERMUX_PREFIX/bin/bash" > preinst
2018-01-26 09:43:18 +01:00
echo "if [ -d $TERMUX_PREFIX/opt/texlive ]; then echo 'Removing residual files from old version of TeX Live for Termux'; rm -rf $PREFIX/opt/texlive; fi" >> preinst
echo "exit 0" >> preinst
chmod 0755 preinst
2017-08-15 07:09:08 +02:00
echo "#!$TERMUX_PREFIX/bin/bash" > postinst
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
echo "mktexlsr $TL_ROOT/texmf-var" >> postinst
echo "texlinks" >> postinst
echo "echo ''" >> postinst
echo "echo Welcome to TeX Live!" >> postinst
echo "echo ''" >> postinst
echo "echo 'TeX Live is a joint project of the TeX user groups around the world;'" >> postinst
echo "echo 'please consider supporting it by joining the group best for you.'" >> postinst
echo "echo 'The list of groups is available on the web at http://tug.org/usergroups.html.'" >> postinst
echo "exit 0" >> postinst
chmod 0755 postinst
# Remove all files installed through tlmgr on removal
echo "#!$TERMUX_PREFIX/bin/bash" > prerm
2017-08-15 07:09:08 +02:00
echo 'if [ $1 != "remove" ]; then exit 0; fi' >> prerm
echo "echo Running texlinks --unlink" >> prerm
echo "texlinks --unlink" >> prerm
Properly package texlive and split package into texlive & texlive-bin (#1203) * texlive: enable makeindex and put man files and headers in proper location. * texlive: upgrade to 2017 * texlive: split into texlive-bin and arch independent texlive-base. Download texmf-dist and other tarballs and package necessary files instead of using tlnet installer on device. * texlive-base: extract only a minimal set of files from texmf-dist, do complete uninstall on removal. Patch some files. The texmf-dist tar is quite large so use --checkpoint to indicate progress. * texlive: use gnupg2 instead of gnupg * texlive: fix texlive profile * texlive: added TL_BINDIR variable to simplify build scripts * texlive: replace tlmgr symlink with small wrapper. After `tlmgr update --self` has been run, the shebang of tlmgr.pl is none-working and there is a reference to /bin/sh in TLUtils.pm. This wrapper fixes this (if needed) before tlmgr is run. * texlive: update command-not-found with a few common texlive commands. * remove un-needed minimal.list * Format generation working. xelatex activated. Remove all texmf-dist files created by texlive-bin package. * texlive: fix installation and removal of texlive-{bin,base}. All essential fixes done. Only thing remaining to fix is figuring out how to deal with the transition texlive -> texlive-{bin,base}. * texlive: use Breaks instead of Conflicts * texlive: properly fix split into two packages [WIP] * delete old termux-install-tl.sh * texlive: Fix so that the upgrade from texlive 20170524-2 goes smoothly and works as it should (with Breaks and Replaces). Also major clean up of texlive/build.sh. * texlive: minor clean up of texlive/build.sh. Update patches to avoid (silent) complaints from patching. Add previously forgotten install-tl.list with list of files to take from install-tl-unx.tar.gz. * texlive: make texlive-bin-dev properly replace texlive-dev. Everything is done now, just need to wait for breaks and subpkg_replaces before opening a pull request. * texlive: skip format generation on install, rm old files in texlive-bin as well. Also decrease verbosity of installation * texlive: when deleting old files, leave texmf-dist alone * texlive: fix typo, correctly remove files from old texlive version
2017-08-09 23:09:01 +02:00
echo "echo Removing texmf-dist" >> prerm
echo "rm -rf $TL_ROOT/texmf-dist" >> prerm
echo "echo Removing texmf-var and tlpkg" >> prerm
echo "rm -rf $TL_ROOT/{texmf-var,tlpkg/{texlive.tlpdb.*,tlpobj,backups}}" >> prerm
echo "exit 0" >> prerm
chmod 0755 prerm
}
TERMUX_PKG_RM_AFTER_INSTALL="
share/texlive/README
share/texlive/README.usergroups
share/texlive/autorun.inf
share/texlive/doc.html
share/texlive/index.html
share/texlive/install-tl
share/texlive/install-tl-advanced.bat
share/texlive/install-tl-windows.bat
share/texlive/readme-html.dir/readme.ja.html
share/texlive/readme-html.dir/readme.ru.html
share/texlive/readme-html.dir/readme.zh-cn.html
share/texlive/readme-html.dir/readme.it.html
share/texlive/readme-html.dir/readme.es.html
share/texlive/readme-html.dir/readme.pl.html
share/texlive/readme-html.dir/readme.de.html
share/texlive/readme-html.dir/readme.fr.html
share/texlive/readme-html.dir/readme.sr.html
share/texlive/readme-html.dir/readme.pt-br.html
share/texlive/readme-html.dir/readme.en.html
share/texlive/readme-html.dir/readme.cs.html
share/texlive/readme-txt.dir/README.RU-koi8
share/texlive/readme-txt.dir/README.EN
share/texlive/readme-txt.dir/README.FR
share/texlive/readme-txt.dir/README.SK-il2
share/texlive/readme-txt.dir/README.SK-ascii
share/texlive/readme-txt.dir/README.RU
share/texlive/readme-txt.dir/README.IT
share/texlive/readme-txt.dir/README.CS
share/texlive/readme-txt.dir/README.JA
share/texlive/readme-txt.dir/README.ES
share/texlive/readme-txt.dir/README.ZH-CN
share/texlive/readme-txt.dir/README.DE
share/texlive/readme-txt.dir/README.PL
share/texlive/readme-txt.dir/README.SK-cp1250
share/texlive/readme-txt.dir/README.SR
share/texlive/readme-txt.dir/README.PT-BR
share/texlive/readme-txt.dir/README.RU-cp1251
share/texlive/tl-tray-menu.exe
share/texlive/tlpkg/tlpostcode/xetex.pl
share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.conf
share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.dtd
share/texlive/tlpkg/tlpostcode/xetex/conf/conf.d/51-local.conf
share/texlive/tlpkg/tlpostcode/xetex/cache/readme.txt
share/texlive/tlpkg/tlpostcode/ptex2pdf-tlpost.pl
share/texlive/texmf-dist/web2c/texmf.cnf
share/texlive/texmf-dist/scripts/texlive/fmtutil-user.sh
share/texlive/texmf-dist/scripts/texlive/rungs.tlu
share/texlive/texmf-dist/scripts/texlive/updmap-user.sh
share/texlive/texmf-dist/scripts/texlive/tlmgr.pl
share/texlive/texmf-dist/scripts/texlive/tlmgrgui.pl"