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 <
[email protected]>
---
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