Opened 7 years ago

Last modified 15 months ago

#43894 assigned defect

doxygen: fix tex dependencies

Reported by: mojca (Mojca Miklavec) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: whcordis@…, davidfavor (David Favor), mojca (Mojca Miklavec), cooljeanius (Eric Gallager), g5pw (Aljaž Srebrnič), ryandesign (Ryan Schmidt), dbevans (David B. Evans), petrrr
Port: doxygen

Description

After r120417 doxygen lacks dependency on texlive-fonts-recommended as well as texlive-fontutils (see #43860 and #43669).

These TeX Live dependencies are wrong:

    depends_build-append    bin:pdflatex:texlive-latex \
                            bin:gs:ghostscript \
                            port:texlive-latex-extra

User can have:

  • no external TeX: then it's ok (but bin:pdflatex:texlive-latex could just as well be port:texlive-latex)
  • pdflatex without sufficient packages installed: then the package texlive-latex-extra is useless, external pdflatex cannot see the files installed by texlive-latex-extra anyway (but there's a chance that texlive-latex-extra installs pdflatex and maybe that binary is used as a consequence)
  • fully functional external TeX distribution: it works, but port:texlive-latex-extra installs everything including texlive-latex, something that bin:pdflatex:texlive-latex tried to avoid in the first place

This should be fixed in such a way that either bin:pdftex is removed and everyone building the docs needs to install TeX Live from MacPorts. But the better solution would be to add texlive-latex, texlive-latex-recommended, texlive-fontutils, texlive-fonts-recommended if and only if there is no pdflatex present.

Change History (14)

comment:1 Changed 7 years ago by g5pw (Aljaž Srebrnič)

Doesn't texlive-latex-extra (recursively) depend on texlive-latex, thus rendering the whole bin: dependency "useless", as it will always depend on the texlive-latex port?

comment:2 Changed 7 years ago by mojca (Mojca Miklavec)

Yes, that's one of the points I was trying to make.

The request to support an external TeX distribution is a valid one though, but needs a more complex setup.

comment:3 Changed 7 years ago by petrrr

I now admit that I have not followed all the discussion on the tex dependencies in the other tickets.

But as far as I understand we would like to have the following behaviour:

  1. If we find a pdftex binary and it is external to MacPorts, then nothing should be installed (and hoping the external distribution is sufficiently complete);
  2. If we find a pdftex and it is provided by MacPorts, we would like to ensure that a minimal set of ports (see above) is also installed;
  3. If we do not find pdftex we would install the following minimal set of ports.

For the first and last case I see the following possibility:

  • create a small doxygen specific meta-port as subport, for example doxygen-texlive-deps (find a better name);
  • doxygen-texlive-deps would depend on the above mentioned minimal set of texlive ports;
  • doxygen would use the following dependency only:
        depends_build-append    bin:pdflatex:doxygen-texlive-deps \
                                bin:gs:ghostscript
    

Have I missed something? Of cause, this would not account for the case 2, and I have no idea how this could be implemented.

comment:4 Changed 7 years ago by mojca (Mojca Miklavec)

Yes, you properly understood the problem.

I wouldn't care about case 2. There are simply way too many things that can go wrong. It's user's responsibility if he tries to use a "broken" tool.

Your idea about an additional meta port is interesting and would work, but I would prefer to see a solution without introducing additional ports unless that's too difficult to do. (My Tcl knowledge isn't sufficient anyway.)

Also keep in mind that we need to address ticket #37604. texlive-bin depends on xorg-libxcb which depends on doxygen. And doxygen +latex depends on texlive-bin. So we might end up with some additional "documentation-only" ports anyway.

comment:5 Changed 7 years ago by neverpanic (Clemens Lang)

You could just list multiple bin-style dependencies but with different ports in the 3rd part:

depends_build-append bin:pdflatex:texlive-latex \
                     bin:pdflatex:texlive-latex-extra

If a user uses a TeX installation without the required packages, I'd just let the user figure the problem out.

comment:6 in reply to:  4 Changed 7 years ago by petrrr

Replying to mojca@…:

Yes, you properly understood the problem.

I wouldn't care about case 2. There are simply way too many things that can go wrong. It's user's responsibility if he tries to use a "broken" tool.

I am not so convinced that case 2 is not an issue. Just thing of as relatively simple scenario:

  • User P installs texlive meta-port with its default variants. He will get texlive-latex, but not texlive-latex-extra;
  • At some point of his innocent live he wants to install some other software, which however depends on lets say doxygen +docs;

dependency bin:pdflatex is already satisfied, so texlive-latex-extra will not become available. I do not think this situation is so remote.

Last edited 7 years ago by petrrr (previous) (diff)

comment:7 Changed 7 years ago by mojca (Mojca Miklavec)

Clemens, I had exactly the same brilliant idea until someone reminded me that once you install texlive-latex, bin:pdflatex:texlive-latex-extra will be automatically satisfied with texlive-latex, so no texlive-latex-extra would be pulled in.

Peter, I'm sorry, I was referring to a different "case 2". I thought we were talking about the following (which is "case 1" in your list):

  • external pdflatex without sufficient packages installed: then the package texlive-latex-extra is useless, external pdflatex cannot see the files installed by texlive-latex-extra anyway

But I see now that you were referring to:

  1. If we find a pdftex and it is provided by MacPorts, we would like to ensure that a minimal set of ports (see above) is also installed;

Yes, that is exactly the "problematic" case that we need to solve properly.

comment:8 Changed 7 years ago by dbevans (David B. Evans)

Just reinforcing the mention above that texlive-font-utils needs to be installed for doxygen +docs to build properly. This is due to its use of epstopdf contained in that port.

comment:9 Changed 7 years ago by mojca (Mojca Miklavec)

One idea for a hack from IRC:

bin:pdflatex:texlive-latex
bin:thumbpdf:texlive-latex-recommended
bin:epstopdf:texlive-fontutils

Sadly it doesn't cover texlive-fonts-recommended.

comment:10 Changed 7 years ago by dbevans (David B. Evans)

Cc: devans@… added

Cc Me!

comment:11 Changed 7 years ago by mojca (Mojca Miklavec)

Here's another idea how to approach the problem: r121098. Add a variant like +mactex to switch to external TeX distribution.

It is less than ideal, but ...

comment:12 Changed 6 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:13 Changed 6 years ago by petrrr

Cc: Peter.Danecek@… removed

comment:14 Changed 15 months ago by mf2k (Frank Schima)

Owner: cssdev deleted
Status: newassigned

See #50332

Note: See TracTickets for help on using tickets.