Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#78814 - [texlive-bin]: Dangling links and missing (opt)depends

Attached to Project: Community Packages
Opened by Christian Cornelssen (ccorn) - Saturday, 17 June 2023, 17:24 GMT
Last edited by Antonio Rojas (arojas) - Sunday, 18 June 2023, 22:55 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Actually, I wanted to check whether executables in texlive-bin rely on dvisvgm.

Answer: /usr/bin/cluttex can use dvisvgm.

Therefore, texlive-bin should optdepend on dvisvgm.

Anyway, while grep-ing the executables for mentions of dvisvgm, I found that
texlive-bin 2023.66984-7 comes with lots of dangling symlinks:

```
$ pacman -Qlq texlive-bin | grep /bin/. | LANG=C xargs ls -H >/dev/null
ls: cannot access '/usr/bin/cjk-gs-integrate': No such file or directory
ls: cannot access '/usr/bin/convbkmk': No such file or directory
ls: cannot access '/usr/bin/ebong': No such file or directory
ls: cannot access '/usr/bin/jamo-normalize': No such file or directory
ls: cannot access '/usr/bin/jfmutil': No such file or directory
ls: cannot access '/usr/bin/kanji-config-updmap': No such file or directory
ls: cannot access '/usr/bin/kanji-config-updmap-sys': No such file or directory
ls: cannot access '/usr/bin/kanji-config-updmap-user': No such file or directory
ls: cannot access '/usr/bin/kanji-fontmap-creator': No such file or directory
ls: cannot access '/usr/bin/komkindex': No such file or directory
ls: cannot access '/usr/bin/mkgrkindex': No such file or directory
ls: cannot access '/usr/bin/ptex2pdf': No such file or directory
ls: cannot access '/usr/bin/rubibtex': No such file or directory
ls: cannot access '/usr/bin/rumakeindex': No such file or directory
ls: cannot access '/usr/bin/ttf2kotexfont': No such file or directory
```

This is not a case of simple misdirection.
Nothing with the same basename exists anywhere in texlive-bin.
To see this, run:

```
dangling=$(pacman -Qlq texlive-bin | grep /bin/. | while read exe; do [ -e "$exe" ] || echo "${exe##*/}"; done)
pacman -Qlq texlive-bin | grep -F "$dangling"
```

Those links should be removed, or the intended targets should be found and included in the package.
This task depends upon

Closed by  Antonio Rojas (arojas)
Sunday, 18 June 2023, 22:55 GMT
Reason for closing:  Fixed
Additional comments about closing:  texlive-texmf 2023.66594-12
Comment by Christian Cornelssen (ccorn) - Saturday, 17 June 2023, 17:36 GMT
There are hits in texlive.tlpdb:

```
grep -F "$dangling" /usr/share/tlpkg/texlive.tlpdb
```

So there are corresponding texlive packages.
Not sure whether to include them.
In case of scripts, I'd say yes. In case of precompiled binaries, I'd say no.
Comment by Christian Cornelssen (ccorn) - Saturday, 17 June 2023, 18:30 GMT
I have tried to make package_texlive-bin() remove *all* dangling relative symlinks in "$pkgdir".

That removes way too much. Turns out that lots of links refer to stuff in texlive-binextra.
Perhaps those symlinks should be moved there as well?
Comment by Christian Cornelssen (ccorn) - Saturday, 17 June 2023, 18:50 GMT
To clarify: I have texlive-meta installed with all its dependencies, so the above-mentioned `dangling` set contains only stuff that is not found in any non-language texlive-package.

`pacman -F $dangling` reveals that `texlive-langgreek` provides the target for `mkgrkindex`.

This issue seems to be mostly cosmetic, as I have not identified any bad consequences so far.
Comment by Christian Cornelssen (ccorn) - Saturday, 17 June 2023, 19:51 GMT
Problem: texlive-bin and texlive-texmf have different sources, but they cross-reference each other.

Possible solution:

Make a subpackage texlive-binlinks of pkgbase texlive-bin.
Put all symlinks there that reference texmf-dist/scripts/ stuff.

Have package texlive-binextra (but not texlive-bin) depend on texlive-binlinks.
Comment by Antonio Rojas (arojas) - Saturday, 17 June 2023, 23:39 GMT
Those symlinks, and their corresponding target scripts, are installed by texlive-bin's texlinks make target. But most of them are non-functional, since the required auxiliary files are not installed. In order to simplify packaging, the symlinks are left in texlive-bin and the scripts themselves (in the texmf tree) are shipped in the corresponding packages.

Unless I find some way to automatically install these links in the texmf packages by querying the tlpdb database (without having to maintain a hardcoded scripts list), I don't plan to change this.

Loading...