We previously created the texlive.tlpdb by concatenating all tlpobj files. This means that the entries will be right after another.
As it turns out, some TeX Live tools require a newline (e.g., tlmgr) between the entries, while others do not (e.g., texdoc). And the "official" tlpdb also has the entries separated by newlines. Therefore this changes texlive-common_update_tlpdb() to also add them. Signed-off-by: Florian Schmaus <f...@gentoo.org> --- eclass/texlive-common.eclass | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/eclass/texlive-common.eclass b/eclass/texlive-common.eclass index b32ea2af1121..929062c0444a 100644 --- a/eclass/texlive-common.eclass +++ b/eclass/texlive-common.eclass @@ -270,10 +270,18 @@ texlive-common_update_tlpdb() { touch "${new_tlpdb}" || die if [[ -d "${tlpobj}" ]]; then - find "${tlpobj}" -maxdepth 1 -type f -name "*.tlpobj" -print0 | - sort -z | - xargs -0 --no-run-if-empty cat >> "${new_tlpdb}" - assert "generating tlpdb failed" + all_tlpobjs() { + find "${tlpobj}" -maxdepth 1 -type f -name "*.tlpobj" -print0 | + sort -z + assert "Error enumerating all tlpobj files" + } + ( + while IFS="" read -d $'\0' -r f; do + cat "${f}" || die "Failed to read ${f}" + # Ensure there is an empty line between every tlpobj entry. + echo + done < <(all_tlpobjs) + ) >> "${new_tlpdb}" fi if [[ -f ${tlpdb} ]]; then -- 2.43.2