You are not logged in.

#1 2022-01-29 08:58:26

xerus
Member
From: Germany
Registered: 2021-05-11
Posts: 41
Website

How to avoid unnecessary conflicts

I maintain the https://aur.archlinux.org/packages/context package.

So far I have set it to conflict with `texlive`, because both contain binaries such as `luatex` and `context`.
However, whereever there is a conflict, the version from `context` is the newer one.

Now I would like to install the packages alongside each other.
Can I somehow configure my AUR package to override the other binaries?
I am close to abusing `/usr/local/bin` for that...

I guess alternatively, the `texlive` package would have to be split?

Offline

#2 2022-01-29 10:27:24

mpan
Member
Registered: 2012-08-01
Posts: 1,583
Website

Re: How to avoid unnecessary conflicts

xerus wrote:

Can I somehow configure my AUR package to override the other binaries?

Without causing trouble? No, you can not. Each entry in the file system, other than directories, is owned by at most one installed package. The user may abuse `--override` to silence pacman, but that’s not solving the problem — it only creates a new one.

If context is not a drop-in replacement for texlive, it should also not do that even if pacman allowed it: that would cause incompatibility with programs that expect those binaries to be textlive’s one. If context is a drop-in replacement, then it may be installed instead of texlive-bin, with the provides array indicating that to satisfy dependencies. pacman will nicely ask the user if they want to replace texlive-bin with context upon an installation attempt.

An alternative solution may be renaming the binaries — e.g appending “-context” to the name — or putting them into e.g. “/usr/bin/context”. If the user wishes to have them available under the original names, they may use aliases or the PATH environment variable. If you rename them from the original location, add a post-installation warning to the user through a post-install script.

Last edited by mpan (2022-01-29 10:28:49)


Paperclips in avatars? | Sometimes I seem a bit harsh — don’t get offended too easily!

Offline

#3 2022-01-29 10:35:12

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,840

Re: How to avoid unnecessary conflicts

I am close to abusing `/usr/local/bin` for that.

Looks like you already decided to do that, https://aur.archlinux.org/cgit/aur.git/ … ef6b949928

packages are not supposed to install anything in /usr/local , your package could be removed very soon .

Is context avaialble through CTAN ?
if yes you could try https://wiki.archlinux.org/title/TeX_Live#tllocalmgr

Disclaimer : I know next to nothing about texlive .


Edit : corrected CPAN to CTAN

Last edited by Lone_Wolf (2022-01-31 10:25:25)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#4 2022-01-29 13:02:22

Stefan Husmann
Member
From: Germany
Registered: 2007-08-07
Posts: 1,391

Re: How to avoid unnecessary conflicts

Install the stuff to anything but /usr/local and let users adjust their PATH variables. You could put instructions on how to do this into an install file.

Is context avaialble through CPAN ?

No, CPAN is about Perl. You most probably mean CTAN. And yes, context is on CTAN, therefore it is in TeXlive.

Last edited by Stefan Husmann (2022-01-29 13:07:43)

Offline

#5 2022-01-30 09:28:44

xerus
Member
From: Germany
Registered: 2021-05-11
Posts: 41
Website

Re: How to avoid unnecessary conflicts

Yep, it is in texlive - but in an old version. Context LMTX is currently heavily in development. So it is not a drop-in replacement for texlive - it is a partial one. That is why I was daunted by the conflict.
Thank you for the hints, I will consider which approach makes sense here smile

Offline

Board footer

Powered by FluxBB