Files
2024-11-30 12:24:44 +03:00

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")