Opened 11 years ago

Closed 10 years ago

#26235 closed enhancement (fixed)

libzzip depends on xmlto depends on texlive depends on everything

Reported by: moala@… Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: Cc: drkp (Dan Ports), ryandesign (Ryan Schmidt)
Port: libzzip xmlto

Description

libzzip depends on many other ports, for instance gtk2, cairo, pango, leading to a long, long build duration. These dependencies are only needed to build the documentation.

Could the documentation only be build in a +doc variant, and the dependencies only in this variant?

Change History (6)

comment:1 Changed 11 years ago by ryandesign (Ryan Schmidt)

Cc: dports@… ryandesign@… added
Port: xmlto added
Summary: libzzip aberrant dependencies on graphic portslibzzip depends on xmlto depends on texlive depends on everything

To be more precise, the only implicated dependency in libzzip is xmlto, which unfortunately depends on texlive, which has a very large dependency chain, as you've noticed. So the question is whether xmlto can be made to depend instead on a more targeted subset of texlive ports that wouldn't have such a large dependency chain. If not, moving libzzip's documentation building into a doc variant could be ok, but we would like to avoid it since we prefer to have fewer variants and more featureful ports. Since libzzip and xmlto have no maintainers, I'll Cc the maintainer of texlive to get his opinion.

comment:2 Changed 11 years ago by drkp (Dan Ports)

I don't know anything about xmlto, unfortunately, but...

I see it depends on texlive (the metaport) and texlive-htmlxml. I know it needs the latter (not surprising!) so the only question is whether we can replace the texlive dependency with something more specific. Probably, but I don't know what. I've been trying to move towards more focused texlive dependencies in general.

But even if we do that, we're still going to wind up with a dependency on texlive-bin, which builds all the binaries for texlive, and has all the library dependencies. (It would be great to break that up, but would take a lot of work. And no guarantees that most of the resulting ports won't still depend on everything.)

IMO, doc variants are a good idea for exactly this reason.

comment:3 in reply to:  2 ; Changed 11 years ago by ryandesign (Ryan Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

Replying to dports@…:

IMO, doc variants are a good idea for exactly this reason.

Well, you can't generalize it that way. Not all doc variants are covered by this recommendation (some, like fontconfig's, removed in #20233, do not pull in additional dependencies, and are thus not an inconvenience to the user), and non-documentation variants are involved too. Basically, we like ports to have as many features as possible, while not burdening the user with heavy dependencies for features they may not need; for optional parts with heavy dependencies, we create variants.

In libzzip's case, let's move documentation to a doc variant, since texlive is a rather heavy dependency. If we discover later in only needs a smaller subset of texlive that isn't so heavy we can reconsider this.

comment:4 in reply to:  3 Changed 11 years ago by drkp (Dan Ports)

Replying to ryandesign@…:

Replying to dports@…:

IMO, doc variants are a good idea for exactly this reason.

Well, you can't generalize it that way. Not all doc variants are covered by this recommendation (some, like fontconfig's, removed in #20233, do not pull in additional dependencies, and are thus not an inconvenience to the user), and non-documentation variants are involved too. Basically, we like ports to have as many features as possible, while not burdening the user with heavy dependencies for features they may not need; for optional parts with heavy dependencies, we create variants.

Agreed -- I was really only referring to doc variants that required heavyweight dependencies the port doesn't otherwise need.

comment:5 Changed 10 years ago by drkp (Dan Ports)

texlive 2010 itself requires libzzip, which makes fixing this even more important!

I took a look at the libzzip makefiles today. They might have to be patched to not build docs, but that's not so bad. But they use xmlto to build manpages from docbook, and I don't really like the idea of leaving those out by default.

I'm wondering if we can somehow make xmlto's dependency on texlive optional (note that it's not using texlive to generate manpages). I don't know anything about xmlto, so I'll email -dev@.

comment:6 Changed 10 years ago by drkp (Dan Ports)

Resolution: fixed
Status: assignedclosed

I removed xmlto's dependency on texlive in r73294.

Note: See TracTickets for help on using tickets.