From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3C352158064 for ; Wed, 1 May 2024 08:44:35 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 135F1E29CD; Wed, 1 May 2024 08:44:30 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id AE183E29BA for ; Wed, 1 May 2024 08:44:29 +0000 (UTC) From: Florian Schmaus To: gentoo-dev@lists.gentoo.org Cc: tex@gentoo.org, Florian Schmaus Subject: [gentoo-dev] [PATCH v2] texlive-module.eclass: install man pages in right location Date: Wed, 1 May 2024 10:44:11 +0200 Message-ID: <20240501084411.46961-1-flow@gentoo.org> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240430085303.197375-1-flow@gentoo.org> References: <20240430085303.197375-1-flow@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Archives-Salt: 7338061c-8b8a-49ac-98e1-3f4a23bf57c7 X-Archives-Hash: efe1171e9bb5d513c4e13129914304aa The TeX Live packages under dev-texlive/* currently do not install the man pages in the right location. They are under /usr/share/texmf-dist/doc/man. Install them at the right location using doman. Having dev-texlive/* packages installing man pages requires that we filter man pages already installed by app-text/texlive-core to avoid file collisions. As a consequence, unfortunately, we have to hard code the list of man pages installed by texlive-core. Or, at least, folks from #-tex and myself could not come up with a solution that does not require hard coding that list. Signed-off-by: Florian Schmaus --- eclass/texlive-module.eclass | 186 +++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/eclass/texlive-module.eclass b/eclass/texlive-module.eclass index 401b75bc4d11..293b6591a6b1 100644 --- a/eclass/texlive-module.eclass +++ b/eclass/texlive-module.eclass @@ -359,6 +359,192 @@ texlive-module_src_install() { if [[ -d texmf-doc ]]; then cp -pR texmf-doc "${ED}/usr/share/" || die fi + + if ver_test -ge 2023 && [[ ${CATEGORY} == dev-texlive ]]; then + local texlive_core_man_pages=( + afm2pl.1 + aleph.1 + allcm.1 + allec.1 + allneeded.1 + amstex.1 + autosp.1 + axohelp.1 + bibtex.1 + chkdvifont.1 + chktex.1 + chkweb.1 + ctangle.1 + ctie.1 + ctwill.1 + ctwill-refsort.1 + ctwill-twinx.1 + cweave.1 + cweb.1 + detex.1 + devnag.1 + deweb.1 + disdvi.1 + dt2dv.1 + dv2dt.1 + dvi2fax.1 + dvi2tty.1 + dvibook.1 + dviconcat.1 + dvicopy.1 + dvidvi.1 + dvihp.1 + dvilj.1 + dvilj2p.1 + dvilj4.1 + dvilj4l.1 + dvilj6.1 + dvilualatex-dev.1 + dviluatex.1 + dvipdfm.1 + dvipdfmx.1 + dvipdft.1 + dvipos.1 + dvired.1 + dviselect.1 + dvispc.1 + dvitodvi.1 + dvitomp.1 + dvitype.1 + e2pall.1 + ebb.1 + eptex.1 + euptex.1 + extractbb.1 + fmtutil.1 + fmtutil.cnf.5 + fmtutil-sys.1 + fontinst.1 + gftodvi.1 + gftopk.1 + gftype.1 + gsftopk.1 + hishrink.1 + histretch.1 + hitex.1 + inimf.1 + initex.1 + kpsepath.1 + kpsetool.1 + kpsewhere.1 + kpsexpand.1 + lacheck.1 + latex.1 + latex-dev.1 + luahbtex.1 + luajittex.1 + lualatex-dev.1 + luatex.1 + makeindex.1 + makejvf.1 + mendex.1 + mf.1 + mf-nowin.1 + mft.1 + mkindex.1 + mkocp.1 + mkofm.1 + mktexfmt.1 + mktexlsr.1 + mktexmf.1 + mktexpk.1 + mktextfm.1 + mpost.1 + msxlint.1 + odvicopy.1 + odvitype.1 + ofm2opl.1 + opl2ofm.1 + otangle.1 + otp2ocp.1 + outocp.1 + ovf2ovp.1 + ovp2ovf.1 + patgen.1 + pbibtex.1 + pdfclose.1 + pdfetex.1 + pdflatex.1 + pdflatex-dev.1 + pdfopen.1 + pdftex.1 + pdftosrc.1 + pktogf.1 + pktype.1 + platex-dev.1 + pltotf.1 + pmxab.1 + pooltype.1 + ppltotf.1 + prepmx.1 + ps2frag.1 + pslatex.1 + ptex.1 + ptftopl.1 + rubibtex.1 + rumakeindex.1 + scor2prt.1 + synctex.1 + synctex.5 + tangle.1 + tex.1 + tex2aspc.1 + texconfig.1 + texconfig-sys.1 + texhash.1 + texlinks.1 + texlua.1 + texluac.1 + tftopl.1 + tie.1 + tpic2pdftex.1 + ttf2afm.1 + ttfdump.1 + twill.1 + upbibtex.1 + updmap.1 + updmap.cfg.5 + updmap-sys.1 + uplatex-dev.1 + uppltotf.1 + uptex.1 + uptftopl.1 + vftovp.1 + vlna.1 + vptovf.1 + weave.1 + xdvipdfmx.1 + xelatex-dev.1 + xetex.1 + xml2pmx.1 + ) + local grep_expressions=() + # Transform texlive_core_man_pages into grep expressions + # that will be used to filter out any man page that is + # already installed by app-text/texlive-core. + for f in "${texlive_core_man_pages[@]}"; do + # Ensure that all dots are escaped so that they are + # matched lilterarily. Also wrap the file in '/' and '$' + # within the expression. + grep_expressions+=(-e "/${f//./\\.}$") + done + + ebegin "Installing man pages" + find texmf-dist/doc/man -type f -name '*.[0-9n]' -print | + grep -v "${grep_expressions[@]}" | + xargs -d '\n' --no-run-if-empty doman + nonfatal assert -n + eend $? || die "error installing man pages" + + # Delete all man pages under texmf-dist/doc/man + find texmf-dist/doc/man -type f -name '*.[0-9n]' -delete || + die "error deleting man pages under texmf-dist" + fi else if [[ -d texmf-dist/doc ]]; then rm -rf texmf-dist/doc || die -- 2.43.2