Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Replacing portage texlive with "live" texlive
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1476
Location: Berlin, Germany

PostPosted: Fri Mar 07, 2025 10:10 am    Post subject: Replacing portage texlive with "live" texlive Reply with quote

So, I've gotten into the habit of using the live texlive package directly from CTAN, installing the entire tree to a local subdirectory and running tlmgr from there to update. I do this because the portage packages are sometimes quite out of date, and I don't like waiting. So this has led me to two problems:

1) I'd prefer to get rid of my system texlive entirely, but some of the dependencies appear to be unavoidable. TeXStudio, which I use with my local texlive, nevertheless requires that latex be installed on the system. /etc/portage/package.provided doesn't seem to work to eliminate packages from the dependency tree (and since it's version-specific, it'll be ignored when a new version comes out). How can I force portage not to install any of the texlive tree to the system?

2) or, failing that: is there any way to install the "live" texlive tree, in its entirety, to the system? Portage seems to split texlive up into dozens of packages, and I'd rather not have to deal with that. Is there any overlay that just has a "texlive-9999" ebuild that would install the complete tree and update it whenever I remerge it?

Thanks for the help,

EE
Back to top
View user's profile Send private message
plasmonics
n00b
n00b


Joined: 16 Mar 2011
Posts: 13

PostPosted: Sat Mar 08, 2025 4:45 pm    Post subject: Reply with quote

As far as the first question, you could try deleting all of the system texlive and prevent it from future install by putting a minus sign in the USE flag in make.conf, e.g. "-texlive-core". Not sure if this will work. However, this will also mask Texstudio and prevent it from installing.

As far as a single large texlive package with everything in it, the only distros I am aware of that offer it are slackware and LFS. Fedora, which is my main distro, splits it up in over a hundred packages.

I use texlive in gentoo with no problem. But I also don't use the latest packages from CTAN.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2816

PostPosted: Sat Mar 08, 2025 5:56 pm    Post subject: Re: Replacing portage texlive with "live" texlive Reply with quote

ExecutorElassus wrote:
2) or, failing that: is there any way to install the "live" texlive tree, in its entirety, to the system? Portage seems to split texlive up into dozens of packages, and I'd rather not have to deal with that.


Are you aware you can use wildcards?

package.accept_keywords:
dev-texlive/* **


ExecutorElassus wrote:
/etc/portage/package.provided doesn't seem to work to eliminate packages from the dependency tree


That doesn't seem right, just for the record, could you show us your package.provided?

plasmonics wrote:
As far as the first question, you could try deleting all of the system texlive and prevent it from future install by putting a minus sign in the USE flag in make.conf, e.g. "-texlive-core". Not sure if this will work. However, this will also mask Texstudio and prevent it from installing.


You've answered your own question - it won't work. Or rather it won't work the desired way.

Best Regards,
Georgi
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1476
Location: Berlin, Germany

PostPosted: Sat Mar 08, 2025 6:25 pm    Post subject: Reply with quote

My /etc/portage/package.provided includes the following entries:
Code:
dev-texlive/texlive-latex-2024_p71912
dev-texlive/texlive-latexextra-2024_p72895


As per the wiki, entries must include a version number.

Nevertheless, despite these entries in package.provided, portage still attempts to install them. If I mask them, it throws an error because they are dependencies of other texlive packages, which go up a chain of dependencies that eventually reaches TexStudio, plus a bunch of system packages. The only way to block them completely seems to be with USE="-latex" in make.conf, which would also block TexStudio.

logrusx: what I mean by the "live" texlive tree is the one provided by CTAN. I unpack the entire texlive tree into a local subdirectory, and then from within it I run tlmgr and update all the packages from there (which pulls directly from the CTAN archive and uses the latest versions). This provides much more recent versions than a lot of the ones in portage, as some of those packages are still on the 2023 versions (or even older).

What I would want would be something like "texlive-9999" that effectively did that step from portage. But that doesn't seem to be possible, and there doesn't seem to be any way to get rid of the portage texlive while keeping TexStudio, so I guess I'm stuck with duplicate texlive trees.

Thanks, though.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23171

PostPosted: Sat Mar 08, 2025 6:35 pm    Post subject: Reply with quote

If you can do it by hand, and it isn't wildly contrary to good security policy, then you can do it in an ebuild.

You say that Portage wants to install all these packages despite them being provided. Please show the output where it tries to do that, and use --tree so we can see the dependency tree via nesting.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2816

PostPosted: Sat Mar 08, 2025 6:58 pm    Post subject: Reply with quote

ExecutorElassus wrote:

logrusx: what I mean by the "live" texlive tree is the one provided by CTAN. I unpack the entire texlive tree into a local subdirectory, and then from within it I run tlmgr and update all the packages from there (which pulls directly from the CTAN archive and uses the latest versions). This provides much more recent versions than a lot of the ones in portage, as some of those packages are still on the 2023 versions (or even older).

What I would want would be something like "texlive-9999" that effectively did that step from portage. But that doesn't seem to be possible, and there doesn't seem to be any way to get rid of the portage texlive while keeping TexStudio, so I guess I'm stuck with duplicate texlive trees.

Thanks, though.


Either I misunderstand what you're talking about or you say that 9999 of all the texlive packages wouldn't work for you?

Oh, I see texlive packages don't have 9999...

You're stuck with package.provided or double texlive trees then. I think we should focus on helping you make that work. Texlive packages don't get updated that often so you should have no problem updating the versions in package.provided.

Best Regards,
Georgi
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1476
Location: Berlin, Germany

PostPosted: Sat Mar 08, 2025 8:10 pm    Post subject: Reply with quote

logrusx: Actually what I have in mind is a bit more ambitious, which is probably why it hasn't been implemented. What I mean is one package, call it something like "dev-texlive/texlive-complete-9999," that installs the entire texlive tree onto the system directories. This would mean it would need to fulfill package.provided entries for all of the individual packages, and also block them. And that emerging that package if it's already installed would just run 'tlmgr --update' to update them all from CTAN. It would be its own rolling release, that in this case would be ahead of the portage tree.

Hu: as you see, I have texlive-latexextra listed in package.provided. This means I should be able to 'emerge -c' it to remove it, yes? When I do, I get this:
Code:
 # emerge -pvc texlive-latexextra

Calculating dependencies... done!
  dev-texlive/texlive-latexextra-2024_p72895 pulled in by:
    dev-python/sphinx-4.3.0 requires dev-texlive/texlive-latexextra
    dev-tex/biblatex-3.20-r1 requires dev-texlive/texlive-latexextra
    dev-tex/glossaries-4.55 requires >=dev-texlive/texlive-latexextra-2012
    dev-tex/latex2pydata-0.4.1 requires >=dev-texlive/texlive-latexextra-2024
    dev-tex/minted-3.4.0 requires dev-texlive/texlive-latexextra

>>> No packages selected for removal by depclean
sphinx pulls it due to USE="latex". All the rest are tex packages. Several iterations later (turns out I can also remove sphinx and all its related packages):
Code:
dev-texlive/texlive-plaingeneric-2024_p72878 pulled in by:
    dev-texlive/texlive-formatsextra-2024_p72250 requires >=dev-texlive/texlive-plaingeneric-2024
    virtual/texi2dvi-0-r2 requires dev-texlive/texlive-plaingeneric

  virtual/tex-base-0 pulled in by:
    app-text/lcdf-typetools-2.108-r1 requires =virtual/tex-base-0, virtual/tex-base
    app-text/noweb-2.11b-r4 requires =virtual/tex-base-0, virtual/tex-base

which are also going to be packages pulling in tex because of the USE="latex" flag. But I'm going to spend some time with --depclean and see how much of this I can remove. I'll try adding things back in to package.provided and see if maybe I was just doing something wrong.

I'd still rather just have one texlive package to rule them all, though.
EDIT: would it be worth it to post a request for such an ebuild to the bugtracker? Just about everybody I chat with on the texlive mailing list (or stackoverflow, etc) all say they just install the full tree locally from CTAN, so it seems like that's something people would want. Not sure how feasible it would be, though.

Cheers,

EE
Back to top
View user's profile Send private message
plasmonics
n00b
n00b


Joined: 16 Mar 2011
Posts: 13

PostPosted: Sat Mar 08, 2025 10:14 pm    Post subject: Reply with quote

I am not sure where your dependence on texlive is coming from. equery depgraph texstudio shows no dependence on texlive. If you have "latex" as a global use flag, it will pull in sphinx. AFAIK, you can use texlive (or not) without any global tex-related use flags.

As far as the total package, you could download the source from tug and write your ebuild script to compile it.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23171

PostPosted: Sat Mar 08, 2025 11:07 pm    Post subject: Reply with quote

I see that your sphinx is so old that Gentoo no longer offers it, but that should not affect this question.

What is the output of namei -l /etc/portage/profile/package.provided? You mentioned /etc/portage/package.provided earlier, but as I understand the documentation, that is not the right path. Is that the path you used, or was that a transcription error when composing the post? My namei command uses the path that I think you should be using.
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 2198

PostPosted: Sun Mar 09, 2025 12:33 am    Post subject: Reply with quote

For package.provided, you can give a fake version of 9999 for each package concerned.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2816

PostPosted: Sun Mar 09, 2025 4:11 am    Post subject: Reply with quote

ExecutorElassus wrote:

EDIT: would it be worth it to post a request for such an ebuild to the bugtracker?


No. Then somebody would have to go and change every single ebuild that depends on something. Then overlay maintainers need to go and do the same.

ExecutorElassus wrote:
Just about everybody I chat with on the texlive mailing list (or stackoverflow, etc) all say they just install the full tree locally from CTAN, so it seems like that's something people would want.


Definitely not. I sure don't want all 80 packages from dev-tex and dev-texlive installed. Maybe *everybody you chat with on the texlive mailing list* want it but I'm pretty sure that would not be *everyone* and definitely not all Gentoo users.

ExecutorElassus wrote:
logrusx: Actually what I have in mind is a bit more ambitious, which is probably why it hasn't been implemented.


That's because it's impractical as explained above, not because it's ambitious. Ambitious it was to split it in all those packages so that people don't need to get the whole package just for a single piece of it.

ExecutorElassus wrote:
What I mean is one package, call it something like "dev-texlive/texlive-complete-9999," that installs the entire texlive tree onto the system directories. This would mean it would need to fulfill package.provided entries for all of the individual packages, and also block them. And that emerging that package if it's already installed would just run 'tlmgr --update' to update them all from CTAN. It would be its own rolling release, that in this case would be ahead of the portage tree.


And it would be a complete mess. What you need may be a different distribution. But I'd rather stick with what Sam sad about the fake version as well as what Hu said about the path. Then if you insist, you can write your own ebuild for all the texlive stuff on one place. But please don't make it its own rolling release.

Best Regards,
Georgi
Back to top
View user's profile Send private message
ExecutorElassus
Veteran
Veteran


Joined: 11 Mar 2004
Posts: 1476
Location: Berlin, Germany

PostPosted: Sun Mar 09, 2025 9:28 am    Post subject: Reply with quote

logrusx wrote:


And it would be a complete mess.


Yeah, fair enough. You're right, I hadn't really thought this through. Sorry for the trouble. I'll go back to plugging my way through the ebuilds, removing the as best I can. My package.provided was apparently in the wrong location, so I've updated etc/portage/profile/package.provided to contain the entries I wanted. It seems I have some housekeeping to sort out.

Sorry for taking up your time.

EE
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2816

PostPosted: Sun Mar 09, 2025 1:10 pm    Post subject: Reply with quote

ExecutorElassus wrote:
Sorry for the trouble.


Not at all. Sorry if it sounded like that. I wrote it first thing in the morning, a bit before 6 o'clock :)

ExecutorElassus wrote:
Sorry for taking up your time.


You didn't take it, I volunteered it. And I did it because I found your issue something I could do something about. I enjoy doing something about issues here.

Best Regards,
Georgi
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum