diff --git a/Manual.md b/Manual.md index 7c79d04d3ae..26b7fb8bbe9 100644 --- a/Manual.md +++ b/Manual.md @@ -931,6 +931,9 @@ Environment variables for a specific `build_style` can be declared in a filename matching the `build_style` name, Example: `common/environment/build-style/gnu-configure.sh` + +- `texmf` For texmf zip/tarballs that need to go into /usr/share/texmf-dist. Includes +duplicates handling. ### build helper scripts diff --git a/common/build-style/texmf.sh b/common/build-style/texmf.sh new file mode 100644 index 00000000000..798d44e14d2 --- /dev/null +++ b/common/build-style/texmf.sh @@ -0,0 +1,44 @@ +do_build() { + local f p + mkdir -p "build/usr/share/texmf-dist" + find . -maxdepth 1 -print -name "*.tar.xz" \ + -exec bsdtar -C "build/usr/share/texmf-dist" -xf {} \; + cd "build/usr/share/texmf-dist/" + if [ -d "texmf-dist" ] ; then + rsync -ar texmf-dist/ ./ + rm -rf texmf-dist/ + fi + rm -f LICENSE* + while IFS=' ' read -r f p ; do + if [ "$p" = "$pkgname" ] && ! [ -e "$f" ]; then + msg_error "$pkgver: missing file $f\n" + elif [ "$p" != "$pkgname" ] && [ -e "$f" ]; then + echo "removed $f" + mkdir -p ../texlive/removed + echo "$f" >> ../texlive/removed/$pkgname.txt + rm -f "$f" + fi + done < "${XBPS_COMMONDIR}/environment/build-style/texmf/ownership.txt" +} + +do_check() { + local f p exitcode=0 + cd build + while read p; do + if [[ ${p%-*} =~ .*-bin$ ]] || [ "${p%-*}" = "$pkgname" ]; then + continue + fi + echo checking conflicts with ${p}... + while IFS= read -r f; do + if [ -e ".$f" ]; then + msg_red "both contain file $f\n" + exitcode=1 + fi + done < <(xbps-query -Rf $p | sed 's/ -> .*//') + done < <(xbps-query -Rs texlive -p pkgver | cut -d : -f 1) + return $exitcode +} + +do_install() { + vcopy build/usr . +} diff --git a/common/environment/build-style/texmf.sh b/common/environment/build-style/texmf.sh new file mode 100644 index 00000000000..098b1b61c19 --- /dev/null +++ b/common/environment/build-style/texmf.sh @@ -0,0 +1,5 @@ +# rsync isn't needed for everything but it's far easier to just put it here +hostmakedepends+=" rsync" +# python_version isn't needed for everything either +python_version=3 +create_wrksrc=yes diff --git a/common/environment/build-style/texmf/ownership.txt b/common/environment/build-style/texmf/ownership.txt new file mode 100644 index 00000000000..8feffa24b63 --- /dev/null +++ b/common/environment/build-style/texmf/ownership.txt @@ -0,0 +1,229 @@ +dvipdfmx/dvipdfmx.cfg texlive +dvips/base/color.pro texlive +dvips/base/crop.pro texlive +dvips/base/finclude.pro texlive +dvips/base/hps.pro texlive +dvips/base/special.pro texlive +dvips/base/tex.pro texlive +dvips/base/texc.pro texlive +dvips/base/texps.pro texlive +dvips/gsftopk/render.ps texlive +dvips/xdvi/config.xdvi texlive +fonts/cmap/dvipdfmx/EUC-UCS2 texlive +fonts/enc/dvips/base/dvips-all.enc texlive +fonts/map/dvipdfmx/cid-x.map texlive +fonts/map/glyphlist/glyphlist.txt texlive +fonts/map/glyphlist/pdfglyphlist.txt texlive +psutils/paper.cfg texlive +scripts/a2ping/a2ping.pl texlive +scripts/accfonts/mkt1font texlive +scripts/accfonts/vpl2ovp texlive +scripts/accfonts/vpl2vpl texlive +scripts/adhocfilelist/adhocfilelist.sh texlive +scripts/arara/arara.sh texlive +scripts/attachfile2/pdfatfi.pl texlive +scripts/authorindex/authorindex texlive +scripts/authorindex/authorindex texlive +scripts/bib2gls/bib2gls.sh texlive +scripts/bib2gls/convertgls2bib.sh texlive +scripts/bibexport/bibexport.sh texlive +scripts/bundledoc/arlatex texlive +scripts/bundledoc/bundledoc texlive +scripts/cachepic/cachepic.tlu texlive-pictures +scripts/checkcites/checkcites.lua texlive +scripts/checklistings/checklistings.sh texlive +scripts/chklref/chklref.pl texlive +scripts/cjk-gs-integrate/cjk-gs-integrate.pl texlive +scripts/clojure-pamphlet/pamphletangler texlive +scripts/cluttex/cluttex.lua texlive +scripts/context/perl/mptopdf.pl texlive +scripts/context/stubs/unix/context texlive +scripts/context/stubs/unix/contextjit texlive +scripts/context/stubs/unix/luatools texlive +scripts/context/stubs/unix/mtxrun texlive +scripts/context/stubs/unix/mtxrunjit texlive +scripts/context/stubs/unix/texexec texlive +scripts/context/stubs/unix/texmfstart texlive +scripts/convbkmk/convbkmk.rb texlive-langjapanese +scripts/crossrefware/bbl2bib.pl texlive +scripts/crossrefware/bibdoiadd.pl texlive +scripts/crossrefware/bibmradd.pl texlive +scripts/crossrefware/biburl2doi.pl texlive +scripts/crossrefware/bibzbladd.pl texlive +scripts/crossrefware/ltx2crossrefxml.pl texlive +scripts/ctan-o-mat/ctan-o-mat.pl texlive +scripts/ctanbib/ctanbib texlive +scripts/ctanify/ctanify texlive +scripts/ctanupload/ctanupload.pl texlive +scripts/de-macro/de-macro texlive +scripts/diadia/diadia.lua texlive-humanities +scripts/dosepsbin/dosepsbin.pl texlive +scripts/dtxgen/dtxgen texlive +scripts/dviasm/dviasm.py texlive +scripts/dviinfox/dviinfox.pl texlive +scripts/epspdf/epspdf.tlu texlive +scripts/epspdf/epspdftk.tcl texlive +scripts/epstopdf/epstopdf.pl texlive +scripts/exceltex/exceltex texlive +scripts/exceltex/exceltex texlive +scripts/fig4latex/fig4latex texlive-pictures +scripts/findhyph/findhyph texlive +scripts/fontools/afm2afm texlive +scripts/fontools/autoinst texlive +scripts/fontools/ot2kpx texlive +scripts/fragmaster/fragmaster.pl texlive +scripts/getmap/getmapdl.lua texlive +scripts/glossaries/makeglossaries texlive +scripts/glossaries/makeglossaries texlive +scripts/glossaries/makeglossaries-lite.lua texlive +scripts/glossaries/makeglossaries-lite.lua texlive +scripts/installfont/installfont-tl texlive +scripts/jfmutil/jfmutil.pl texlive +scripts/ketcindy/ketcindy.pl texlive +scripts/kotex-utils/jamo-normalize.pl texlive-langkorean +scripts/kotex-utils/komkindex.pl texlive-langkorean +scripts/kotex-utils/ttf2kotexfont.pl texlive-langkorean +scripts/l3build/l3build.lua texlive-latexextra +scripts/latex-git-log/latex-git-log texlive +scripts/latex-papersize/latex-papersize.py texlive +scripts/latex2man/latex2man texlive +scripts/latex2nemeth/latex2nemeth texlive +scripts/latexdiff/latexdiff-vc.pl texlive +scripts/latexdiff/latexdiff.pl texlive +scripts/latexdiff/latexrevise.pl texlive +scripts/latexfileversion/latexfileversion texlive +scripts/latexindent/latexindent.pl texlive +scripts/latexmk/latexmk.pl texlive +scripts/latexpand/latexpand texlive +scripts/lilyglyphs/lily-glyph-commands.py texlive-music +scripts/lilyglyphs/lily-image-commands.py texlive-music +scripts/lilyglyphs/lily-rebuild-pdfs.py texlive-music +scripts/listbib/listbib texlive +scripts/listings-ext/listings-ext.sh texlive +scripts/ltxfileinfo/ltxfileinfo texlive +scripts/ltximg/ltximg.pl texlive +scripts/luaotfload/luaotfload-tool.lua texlive +scripts/lwarp/lwarpmk.lua texlive +scripts/m-tx/m-tx.lua texlive-music +scripts/make4ht/make4ht texlive +scripts/makedtx/makedtx.pl texlive +scripts/makedtx/makedtx.pl texlive +scripts/match_parens/match_parens texlive +scripts/mathspic/mathspic.pl texlive-pictures +scripts/mf2pt1/mf2pt1.pl texlive +scripts/mkgrkindex/mkgrkindex texlive-langgreek +scripts/mkjobtexmf/mkjobtexmf.pl texlive +scripts/mkpic/mkpic texlive-pictures +scripts/multibibliography/multibibliography.pl texlive +scripts/musixtex/musixflx.lua texlive-music +scripts/musixtex/musixtex.lua texlive-music +scripts/mf2pt1/mf2pt1.pl texlive +scripts/mkjobtexmf/mkjobtexmf.pl texlive +scripts/multibibliography/multibibliography.pl texlive +scripts/pax/pdfannotextractor.pl texlive +scripts/pax/pdfannotextractor.pl texlive +scripts/pdfbook2/pdfbook2 texlive +scripts/pdfcrop/pdfcrop.pl texlive +scripts/pdfjam/pdfjam texlive +scripts/pdflatexpicscale/pdflatexpicscale.pl texlive +scripts/pdftex-quiet/pdftex-quiet texlive +scripts/pdfxup/pdfxup texlive +scripts/pedigree-perl/pedigree.pl texlive-pstricks +scripts/perltex/perltex.pl texlive +scripts/perltex/perltex.pl texlive +scripts/petri-nets/pn2pdf texlive +scripts/pfarrei/a5toa4.tlu texlive +scripts/pfarrei/pfarrei.tlu texlive +scripts/pkfix-helper/pkfix-helper texlive +scripts/pkfix/pkfix.pl texlive +scripts/pmxchords/pmxchords.lua texlive-music +scripts/ps2eps/ps2eps.pl texlive +scripts/pst-pdf/ps4pdf texlive-pstricks +scripts/pst2pdf/pst2pdf.pl texlive-pstricks +scripts/psutils/extractres.pl texlive +scripts/psutils/includeres.pl texlive +scripts/psutils/psjoin.pl texlive +scripts/ptex-fontmaps/kanji-config-updmap-sys.sh texlive-langjapanese +scripts/ptex-fontmaps/kanji-config-updmap-user.sh texlive-langjapanese +scripts/ptex-fontmaps/kanji-config-updmap.pl texlive-langjapanese +scripts/ptex-fontmaps/kanji-fontmap-creator.pl texlive-langjapanese +scripts/ptex2pdf/ptex2pdf.lua texlive +scripts/ps2eps/ps2eps.pl texlive +scripts/psutils/extractres.pl texlive +scripts/psutils/includeres.pl texlive +scripts/psutils/psjoin.pl texlive +scripts/purifyeps/purifyeps texlive +scripts/pygmentex/pygmentex.py texlive-latexextra +scripts/pythontex/depythontex.py texlive +scripts/pythontex/pythontex.py texlive +scripts/rubik/rubikrotation.pl texlive-games +scripts/simpdftex/simpdftex texlive +scripts/splitindex/splitindex.pl texlive +scripts/splitindex/splitindex.pl texlive +scripts/srcredact/srcredact.pl texlive +scripts/sty2dtx/sty2dtx.pl texlive +scripts/svn-multi/svn-multi.pl texlive +scripts/svn-multi/svn-multi.pl texlive +scripts/tex4ebook/tex4ebook texlive +scripts/texcount/texcount.pl texlive +scripts/texdef/texdef.pl texlive +scripts/texdiff/texdiff texlive +scripts/texdirflatten/texdirflatten texlive +scripts/texdoc/texdoc.tlu texlive +scripts/texdoctk/texdoctk.pl texlive +scripts/texfot/texfot.pl texlive +scripts/texlive/tlmgr.pl texlive +scripts/texlive-extra/allcm.sh texlive +scripts/texlive-extra/allneeded.sh texlive +scripts/texlive-extra/dvi2fax.sh texlive +scripts/texlive-extra/dvired.sh texlive +scripts/texlive-extra/e2pall.pl texlive +scripts/texlive-extra/fontinst.sh texlive +scripts/texlive-extra/kpsetool.sh texlive +scripts/texlive-extra/kpsewhere.sh texlive +scripts/texlive-extra/ps2frag.sh texlive +scripts/texlive-extra/pslatex.sh texlive +scripts/texlive-extra/rubibtex.sh texlive-langcyrillic +scripts/texlive-extra/rumakeindex.sh texlive-langcyrillic +scripts/texlive-extra/texconfig-dialog.sh texlive +scripts/texlive-extra/texconfig-sys.sh texlive +scripts/texlive-extra/texconfig.sh texlive +scripts/texlive-extra/texlinks.sh texlive +scripts/texlive/fmtutil-sys.sh texlive +scripts/texlive/fmtutil-user.sh texlive +scripts/texlive/fmtutil.pl texlive +scripts/texlive/mktexlsr texlive +scripts/texlive/mktexmf texlive +scripts/texlive/mktexpk texlive +scripts/texlive/mktextfm texlive +scripts/texlive/rungs.tlu texlive +scripts/texlive/updmap-sys.sh texlive +scripts/texlive/updmap-user.sh texlive +scripts/texlive/updmap.pl texlive +scripts/texliveonfly/texliveonfly.py texlive +scripts/texloganalyser/texloganalyser texlive +scripts/texosquery/texosquery-jre5.sh texlive +scripts/texosquery/texosquery-jre8.sh texlive +scripts/texosquery/texosquery.sh texlive +scripts/texplate/texplate.sh texlive +scripts/thumbpdf/thumbpdf.pl texlive +scripts/tlshell/tlshell.tcl texlive +scripts/typeoutfileinfo/typeoutfileinfo.sh texlive +scripts/ulqda/ulqda.pl texlive-science +scripts/urlbst/urlbst texlive +scripts/vpe/vpe.pl texlive +scripts/vpe/vpe.pl texlive +scripts/webquiz/webquiz.py texlive +scripts/webquiz/webquiz.py texlive +scripts/wordcount/wordcount.sh texlive +scripts/wordcount/wordcount.sh texlive +scripts/xindex/xindex.lua texlive +scripts/yplan/yplan texlive +scripts/yplan/yplan texlive +texconfig/tcfmgr texlive +texconfig/tcfmgr.map texlive +web2c/fmtutil.cnf texlive +web2c/texmf.cnf texlive +xdvi/XDvi texlive +xdvi/pixmap/toolbar.xpm texlive +xdvi/pixmap/toolbar2.xpm texlive