hv15 / tllocalmgr

TexLive package manager for ArchLinux (or any distro using pacman)
GNU General Public License v2.0
17 stars 1 forks source link

pagkages with additional symlinks #7

Closed atticus-sullivan closed 5 months ago

atticus-sullivan commented 1 year ago

I've used tllocalmgr to install the glossaries tex package but I'm missing the symlink to some location in the PATH for makeglossaries some other packages (if installing glossaries via e.g texlive-latexextra) contain. I can imagine there are some other tex packages which contain executables and/or scripts for which symlinks to some folder in the PATH would be nice.

To be honest I'm not sure how to implement this, this is just an obversation/whish. Maybe we can search if the tex package adds files to /usr/share/texmf-dist/scripts/ and symlink these (most probable to something like /usr/local/bin), but I'm not sure if this will work (don't know the internals of tllocalmgr).

hv15 commented 1 year ago

Hi @atticus-sullivan, sorry for the delayed response. Yes this is doable but its not generic...

We can scan the /usr/share/texmf/scripts/<pkgname> directory for scripts and symlink these but sometimes those scripts are meant to be used by internal scripts/tools only, not the end user. With glossaries in addition to the makeglossaries and makeglossaries-lite.lua there is also a glossaries.l2h which is meant to be called by latex2html not a user. Notice how it is done in texlive-latexextra: https://github.com/archlinux/svntogit-packages/blob/packages/texlive-latexextra/trunk/PKGBUILD.

I too am not sure what would be a good solution, I suspect the only option is add some internal configuration of tllocalmgr that maps a package name to a list of files or extra operations that are needed to properly package it.

atticus-sullivan commented 1 year ago

Oh no worries, it's open source and we all want to have fun in our free time. So there is nothing in putting any stress to yourself.

The advantage, fixed packages like texlive-latexextra or texlive-core have, is that the selection of provided packages is fixed. In our case, the available packages might increase (maybe/most probable even unnoticed) so it would be much nicer to have a solution which works without hard-coding the desired links (and not needing to adjust (add/remove) links).

Maybe we can develop various heuristics when to link scripts like that the makeglossaries package provides man-pages for the scripts which we'd want to link in that case.

But maybe this thought is to optimistic as there are (and there will be more) packages like cluttex which provides no man-pages and I see no other detail which indicates this is a script which should be linked. An alternative would be developing heuristics when NOT to link, but I think this way is not really easier.


So in the end I've got no real/working idea either how to do this without hard-coding what to link (though writing some sort of config with what to link, we might use the official arch packages as a starting point).

Sadly, I have no clue about perl, so I'm afraid I can't really help you in implementing (at most discussing design decisions :shrug:)