233 lines
9.8 KiB
Python
233 lines
9.8 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# Licensed under the GNU General Public License, version 3.
|
|
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
|
|
|
|
from pisi.actionsapi import get
|
|
from pisi.actionsapi import pisitools
|
|
from pisi.actionsapi import shelltools
|
|
|
|
WorkDir = "."
|
|
revnr = get.srcVERSION().split(".")[1]
|
|
|
|
def setup():
|
|
# Unpack and prepare files
|
|
for tar_file in shelltools.ls(get.workDIR()):
|
|
if tar_file.endswith("xz"):
|
|
shelltools.system("tar Jxfv %s" % tar_file)
|
|
|
|
def build():
|
|
for folder in ["doc", "source"]:
|
|
shelltools.unlinkDir(folder)
|
|
|
|
def install():
|
|
# prepare and install installed packs list
|
|
pisitools.dodir("/var/lib/texmf/pisilinux/installedpacks")
|
|
pisitools.dosed("CONTENTS", "^#", deleteLine=True)
|
|
pisitools.insinto("/var/lib/texmf/pisilinux/installedpacks", "CONTENTS", "%s_%s.list" % (get.srcNAME(), revnr))
|
|
|
|
for i in shelltools.ls("texmf-dist"):
|
|
shelltools.copytree("texmf-dist/%s/" % i, "%s/usr/share/texmf-dist/" % get.installDIR())
|
|
shelltools.system("find texmf-dist -type f -executable -exec chmod 755 %s/usr/share/{} \;" % get.installDIR())
|
|
|
|
# for i in shelltools.ls("."):
|
|
# if shelltools.isDirectory(i) and not i.startswith("texmf"):
|
|
# shelltools.copytree(i, "%s/usr/share/texmf-dist/" % get.installDIR())
|
|
|
|
for i in ["tlpkg"]:
|
|
shelltools.copytree("%s/" % i, "%s/usr/share/" % get.installDIR())
|
|
|
|
for i in ["bibtex", "dvips", "fonts", "makeindex", "metafont", "metapost", "mft", "scripts", "tex"]:
|
|
shelltools.system("find %s -type d -exec install -d -m755 %s/usr/share/texmf-dist/'{}' \;" % (i, get.installDIR()))
|
|
shelltools.system("find %s -type f -exec install -m644 '{}' %s/usr/share/texmf-dist/'{}' \;" % (i, get.installDIR()))
|
|
|
|
# clean config files
|
|
pisitools.dosed("tex/generic/config", "DO NOT EDIT", deleteLine=True, filePattern="language\.d..$")
|
|
pisitools.dosed("texmf-dist/web2c/updmap.cfg", "^(#!\s*)?(Map|MixedMap)", deleteLine=True)
|
|
# pisitools.dosed("%s/usr/share/texmf-dist/fmtutil.cnf" % get.installDIR(), "aleph", deleteLine=True)
|
|
|
|
# install config files
|
|
cfs = ["chktex/chktexrc",
|
|
"web2c/mktex.cnf",
|
|
"web2c/updmap.cfg",
|
|
"web2c/fmtutil.cnf",
|
|
"dvips/config/config.ps",
|
|
"dvipdfmx/dvipdfmx.cfg",
|
|
"tex/generic/config/language.dat",
|
|
"tex/generic/config/language.def",
|
|
"tex/generic/tex-ini-files/pdftexconfig.tex",
|
|
"ttf2pk/ttf2pk.cfg",
|
|
"xdvi/XDvi"]
|
|
for cf in cfs:
|
|
d = "/".join(cf.split("/")[:-1])
|
|
p = cf if shelltools.isFile(cf) else "texmf-dist/%s" % cf
|
|
pisitools.insinto("/etc/texmf/%s" % d, p)
|
|
#pisitools.dosym("/etc/texmf/web2c/texmf.cnf", "/usr/share/texmf-dist/web2c/texmf.cnf")
|
|
|
|
# fix sandbox violations
|
|
#pisitools.dosed("texmf-dist/scripts/texlive/texlinks.sh", '"\$symlinkdir', r'"%s/$symlinkdir' % get.installDIR())
|
|
|
|
# create symlinks
|
|
pisitools.dodir("/usr/bin")
|
|
#shelltools.system("texmf-dist/scripts/texlive/texlinks.sh -f %s/usr/share/texmf-dist/web2c/fmtutil.cnf %s/usr/bin" % ((get.installDIR(), ) * 2))
|
|
|
|
# remove upstream updmap.cfg: it contains too many maps
|
|
# pisitools.remove("/usr/share/texmf-dist/updmap.cfg")
|
|
|
|
# remove unneeded dir
|
|
# pisitools.removeDir("/usr/share/texmf-dist/scripts/context/stubs/mswin")
|
|
# pisitools.removeDir("/usr/share/texmf-dist/scripts/context/stubs/win64")
|
|
|
|
# link programs from /usr/share/texmf-dist/scripts
|
|
linked_scripts ="""
|
|
a2ping/a2ping.pl
|
|
accfonts/mkt1font
|
|
accfonts/vpl2ovp
|
|
accfonts/vpl2vpl
|
|
adhocfilelist/adhocfilelist.sh
|
|
arara/arara.sh
|
|
attachfile2/pdfatfi.pl
|
|
bundledoc/arlatex
|
|
bundledoc/bundledoc
|
|
checkcites/checkcites.lua
|
|
checklistings/checklistings.sh
|
|
chklref/chklref.pl
|
|
chktex/chkweb.sh
|
|
chktex/deweb.pl
|
|
cjk-gs-integrate/cjk-gs-integrate.pl
|
|
clojure-pamphlet/pamphletangler
|
|
cluttex/cluttex.lua
|
|
context/perl/mptopdf.pl
|
|
context/stubs/unix/context
|
|
context/stubs/unix/contextjit
|
|
context/stubs/unix/luatools
|
|
context/stubs/unix/mtxrun
|
|
context/stubs/unix/mtxrunjit
|
|
context/stubs/unix/texexec
|
|
context/stubs/unix/texmfstart
|
|
ctan-o-mat/ctan-o-mat.pl
|
|
ctanbib/ctanbib
|
|
ctanify/ctanify
|
|
ctanupload/ctanupload.pl
|
|
de-macro/de-macro
|
|
dosepsbin/dosepsbin.pl
|
|
dtxgen/dtxgen
|
|
dviasm/dviasm.py
|
|
dviinfox/dviinfox.pl
|
|
epstopdf/epstopdf.pl
|
|
findhyph/findhyph
|
|
fontools/afm2afm
|
|
fontools/autoinst
|
|
fontools/ot2kpx
|
|
fragmaster/fragmaster.pl
|
|
installfont/installfont-tl
|
|
jfmutil/jfmutil.pl
|
|
ketcindy/ketcindy.sh
|
|
latex-git-log/latex-git-log
|
|
latex-papersize/latex-papersize.py
|
|
latex2man/latex2man
|
|
latex2nemeth/latex2nemeth
|
|
latexdiff/latexdiff-vc.pl
|
|
latexdiff/latexdiff.pl
|
|
latexdiff/latexrevise.pl
|
|
latexfileversion/latexfileversion
|
|
latexindent/latexindent.pl
|
|
latexmk/latexmk.pl
|
|
latexpand/latexpand
|
|
ltxfileinfo/ltxfileinfo
|
|
ltximg/ltximg.pl
|
|
luaotfload/luaotfload-tool.lua
|
|
lwarp/lwarpmk.lua
|
|
make4ht/make4ht
|
|
match_parens/match_parens
|
|
mf2pt1/mf2pt1.pl
|
|
mkjobtexmf/mkjobtexmf.pl
|
|
pdfbook2/pdfbook2
|
|
pdfcrop/pdfcrop.pl
|
|
pdfjam/pdfjam
|
|
pdflatexpicscale/pdflatexpicscale.pl
|
|
pdftex-quiet/pdftex-quiet
|
|
pdfxup/pdfxup
|
|
pfarrei/a5toa4.tlu
|
|
pfarrei/pfarrei.tlu
|
|
pkfix-helper/pkfix-helper
|
|
pkfix/pkfix.pl
|
|
ps2eps/ps2eps.pl
|
|
purifyeps/purifyeps
|
|
pythontex/depythontex.py
|
|
pythontex/pythontex.py
|
|
simpdftex/simpdftex
|
|
srcredact/srcredact.pl
|
|
sty2dtx/sty2dtx.pl
|
|
tex4ebook/tex4ebook
|
|
tex4ht/ht.sh
|
|
tex4ht/htcontext.sh
|
|
tex4ht/htlatex.sh
|
|
tex4ht/htmex.sh
|
|
tex4ht/httex.sh
|
|
tex4ht/httexi.sh
|
|
tex4ht/htxelatex.sh
|
|
tex4ht/htxetex.sh
|
|
tex4ht/mk4ht.pl
|
|
tex4ht/xhlatex.sh
|
|
texcount/texcount.pl
|
|
texdef/texdef.pl
|
|
texdiff/texdiff
|
|
texdirflatten/texdirflatten
|
|
texdoc/texdoc.tlu
|
|
texdoctk/texdoctk.pl
|
|
texfot/texfot.pl
|
|
texlive-extra/allcm.sh
|
|
texlive-extra/allneeded.sh
|
|
texlive-extra/dvi2fax.sh
|
|
texlive-extra/dvired.sh
|
|
texlive-extra/e2pall.pl
|
|
texlive-extra/fontinst.sh
|
|
texlive-extra/kpsetool.sh
|
|
texlive-extra/kpsewhere.sh
|
|
texlive-extra/ps2frag.sh
|
|
texlive-extra/pslatex.sh
|
|
texlive-extra/texconfig-dialog.sh
|
|
texlive-extra/texconfig-sys.sh
|
|
texlive-extra/texconfig.sh
|
|
texlive-extra/texlinks.sh
|
|
texlive/fmtutil-sys.sh
|
|
texlive/fmtutil-user.sh
|
|
texlive/fmtutil.pl
|
|
texlive/mktexlsr
|
|
texlive/mktexmf
|
|
texlive/mktexpk
|
|
texlive/mktextfm
|
|
texlive/rungs.tlu
|
|
texlive/updmap-sys.sh
|
|
texlive/updmap-user.sh
|
|
texlive/updmap.pl
|
|
texliveonfly/texliveonfly.py
|
|
texloganalyser/texloganalyser
|
|
texplate/texplate.sh
|
|
thumbpdf/thumbpdf.pl
|
|
typeoutfileinfo/typeoutfileinfo.sh
|
|
xindex/xindex.lua
|
|
xindy/texindy.pl
|
|
xindy/xindy.pl
|
|
"""
|
|
for p in linked_scripts.split():
|
|
bn = shelltools.baseName(p).split(".")[0]
|
|
if shelltools.isFile("%s/usr/share/texmf-dist/scripts/%s" % (get.installDIR(), p)):
|
|
pisitools.dosym("/usr/share/texmf-dist/scripts/%s" % p, "/usr/bin/%s" % bn)
|
|
pisitools.dosym("/usr/share/texmf-dist/scripts/listings-ext/listings-ext.sh", "/usr/bin/listings-ext.sh")
|
|
|
|
# additional symlinks
|
|
pisitools.dosym("allcm", "/usr/bin/allec")
|
|
pisitools.dosym("cluttex", "/usr/bin/cllualatex")
|
|
pisitools.dosym("cluttex", "/usr/bin/clxelatex")
|
|
pisitools.dosym("epstopdf", "/usr/bin/repstopdf")
|
|
pisitools.dosym("fmtutil", "/usr/bin/mktexfmt")
|
|
pisitools.dosym("kpsetool", "/usr/bin/kpsepath")
|
|
pisitools.dosym("kpsetool", "/usr/bin/kpsexpand")
|
|
pisitools.dosym("luaotfload-tool", "/usr/bin/mkluatexfontdb")
|
|
pisitools.dosym("mktexlsr", "/usr/bin/texhash")
|
|
pisitools.dosym("pdfcrop", "/usr/bin/rpdfcrop")
|
|
pisitools.dosym("texdef", "/usr/bin/latexdef")
|