New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #14421 (closed enhancement: fixed)

Opened 5 years ago

Last modified 4 years ago

doxygen-1.5.7: consider no_tex (or lite?) variant

Reported by: css@… Owned by: css@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: tsunanet@…, raimue@…
Port: doxygen

Description

Consider a lightweight doxygen build process with a no_tex variant. Removing the tex dependency would reduce the feature set, but it would allow for a much faster build process for users who do not need such an extensive dependency list.

Or should this be extended to a lite variant? What about graphviz and all it pulls in? Which features, if withheld, would allow the port to retain broad usability?

Prompted by discussions on #14328.

Attachments

Portfile-nopdf.diff (1.2 KB) - added by css@… 5 years ago.
Make sure to reset the build.target and destroot.target to not include the docs

Change History

comment:1 follow-up: ↓ 2 Changed 5 years ago by css@…

  • Status changed from new to assigned

The ability to generate TeX documentation is a feature of doxygen ... it's used beyond just the manual.

MacPorts has a general policy to install everything by default, and the TeX dependencies are in place so that doxygen users can generate other forms of documentation. The idea is that the default install can do everything supported by the upstream package.

I don't like the idea of subtraction by variant, but that's something to accept given the policy as well as the problems handling default variants.

Although I have to admit I configured doxygen without TeX all the time before the ports system arrived. :)

comment:2 in reply to: ↑ 1 Changed 5 years ago by raimue@…

Replying to css@macports.org:

The ability to generate TeX documentation is a feature of doxygen ... it's used beyond just the manual.

True. I forgot about this completely in my earlier comment. Although the doxygen project itself releases an .app package with dot, but without tex. And tex pulls in a lot of dependencies. I still vote for making tex optional.

comment:3 Changed 5 years ago by css@…

There are existing variants for graphviz that can simplify its features, so once I figure out the best way to remove doxygen's documentation (and it currently looks like I'll need to manually patch its Makefile.in to remove the doc directory), it should be possible to conduct a streamlined build without the heavyweight dependencies.

comment:4 Changed 5 years ago by css@…

  • Port set to doxygen

It seems like changing the build.target to all might be all that's needed to avoid building the documentation. If you pass on the PDF, then you can pass on installing texlive just to install doxygen.

comment:5 Changed 5 years ago by css@…

  • Summary changed from doxygen-1.5.4: consider no_tex (or lite?) variant to doxygen-1.5.7: consider no_tex (or lite?) variant

The attached patch creates a docs variant that builds and installs the doxygen PDF. This variants adds dependencies on ghostscript and texlive... both of which are indeed somewhat heavyweight dependencies. Skipping the doc s allows a much faster doxygen build.

Changed 5 years ago by css@…

Make sure to reset the build.target and destroot.target to not include the docs

comment:6 Changed 5 years ago by css@…

I went ahead and committed this to r40482, as it really does make doxygen a faster install.

comment:7 Changed 5 years ago by css@…

r40525 fixes a typo in the docs variant.

comment:8 Changed 5 years ago by css@…

r41077 fixes another typo...

comment:9 Changed 5 years ago by raimue@…

Thanks for your changes. Can we consider this ticket as closed now?

comment:10 Changed 5 years ago by css@…

  • Status changed from assigned to closed
  • Resolution set to fixed

There are still a few minor bumps (such as #16938), but in general I think we could consider this closed now.

comment:11 Changed 4 years ago by anonymous

  • Milestone Port Enhancements deleted

Milestone Port Enhancements deleted

Note: See TracTickets for help on using tickets.