Opened 11 years ago

Last modified 10 years ago

#37604 reopened defect

doxygen and xorg-libxcb circular dependency

Reported by: jmercie1@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: michaelld (Michael Dickens), ryandesign (Ryan Carsten Schmidt), azz_chattock@…, jeremyhu (Jeremy Huddleston Sequoia), cssdev, cooljeanius (Eric Gallager), mkae (Marko Käning), mojca (Mojca Miklavec), petrrr
Port: doxygen xorg-libxcb

Description (last modified by ryandesign (Ryan Carsten Schmidt))

seems to be a problem I am not sure how to fix....

here is the terminal window:

--->  Computing dependencies for octave-devel
--->  Dependencies to be installed: ghostscript xorg-libXext xorg-libX11 xorg-libxcb doxygen graphviz gd2 xpm xorg-libXt libLASi pango Xft2 xrender cairo xorg-xcb-util gobject-introspection xorg-libXaw groff xorg-libXmu texlive texlive-basic texlive-bin poppler xorg-libXp texlive-documentation-base texlive-bin-extra dvipng latexmk texlive-latex pdfjam texlive-latex-recommended pgf texlive-context texlive-fonts-recommended texlive-math-extra texlive-metapost texlive-xetex texlive-generic-recommended texlive-documentation-english texlive-fontutils lcdf-typetools ps2eps texlive-lang-czechslovak texlive-lang-dutch texlive-lang-english texlive-lang-french texlive-lang-german texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex texlive-latex-extra texlive-pictures gnuplot
Error: The following dependencies were not installed: ghostscript xorg-libXext xorg-libX11 xorg-libxcb doxygen graphviz gd2 xpm xorg-libXt libLASi pango Xft2 xrender cairo xorg-xcb-util gobject-introspection xorg-libXaw groff xorg-libXmu texlive texlive-basic texlive-bin poppler xorg-libXp texlive-documentation-base texlive-bin-extra dvipng latexmk texlive-latex pdfjam texlive-latex-recommended pgf texlive-context texlive-fonts-recommended texlive-math-extra texlive-metapost texlive-xetex texlive-generic-recommended texlive-documentation-english texlive-fontutils lcdf-typetools ps2eps texlive-lang-czechslovak texlive-lang-dutch texlive-lang-english texlive-lang-french texlive-lang-german texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex texlive-latex-extra texlive-pictures gnuplot
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port octave-devel failed

I have uploaded the log

Attachments (1)

main.log (131.9 KB) - added by jmercie1@… 11 years ago.
main.log

Download all attachments as: .zip

Change History (28)

Changed 11 years ago by jmercie1@…

Attachment: main.log added

main.log

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

Description: modified (diff)

One of octave-devel's dependencies failed to install. We need to see the main.log from that failure to know what went wrong.

comment:2 in reply to:  1 Changed 11 years ago by jmercie1@…

Replying to ryandesign@…:

One of octave-devel's dependencies failed to install. We need to see the main.log from that failure to know what went wrong.

--- The log was uploaded at the time the ticket was placed, but it seems to have taken some time to upload. The file/link seems to be working now, having checked it myself....

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

I have seen the log attached to this ticket, but it is a log of octave-devel, which is not the port that failed to build. The only thing this log tells us is that one of the following ports failed to build:

:error:main The following dependencies were not installed: ghostscript xorg-libXext xorg-libX11 xorg-libxcb doxygen graphviz gd2 xpm xorg-libXt libLASi pango Xft2 xrender cairo xorg-xcb-util gobject-introspection xorg-libXaw groff xorg-libXmu texlive texlive-basic texlive-bin poppler xorg-libXp texlive-documentation-base texlive-bin-extra dvipng latexmk texlive-latex pdfjam texlive-latex-recommended pgf texlive-context texlive-fonts-recommended texlive-math-extra texlive-metapost texlive-xetex texlive-generic-recommended texlive-documentation-english texlive-fontutils lcdf-typetools ps2eps texlive-lang-czechslovak texlive-lang-dutch texlive-lang-english texlive-lang-french texlive-lang-german texlive-lang-italian texlive-lang-polish texlive-lang-portuguese texlive-lang-spanish texlive-luatex texlive-latex-extra texlive-pictures gnuplot

Please attach the main.log of that port, whichever one it is that failed.

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

If you're not sure which port it was, you can just try it again, but clean before doing so:

sudo port clean octave-devel rdepof:octave-devel
sudo port install octave-devel

If it fails again on any of the ports, one of the last lines printed should be the location of the relevant logfile.

comment:5 in reply to:  4 Changed 11 years ago by jmercie1@…

Replying to ryandesign@…:

If you're not sure which port it was, you can just try it again, but clean before doing so:

sudo port clean octave-devel rdepof:octave-devel
sudo port install octave-devel

If it fails again on any of the ports, one of the last lines printed should be the location of the relevant logfile.

-- perfect, works like a charm now... thanks.

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

Resolution: worksforme
Status: newclosed

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

Cc: michaelld@… ryandesign@… azz_chattock@… added
Port: octave-devel added
Resolution: worksforme
Status: closedreopened
Summary: Error: Processing of port octave-devel failedoctave-devel circular dependency

Has duplicates #37933 and #38225.

comment:8 Changed 11 years ago by jmroot (Joshua Root)

Try not using +docs until you have doxygen installed.

comment:9 Changed 11 years ago by michaelld (Michael Dickens)

Cc: jeremyhu@… css@… added
Port: doxygen xorg-libxcb added; octave-devel removed
Summary: octave-devel circular dependencydoxygen and xorg-libxcb circular dependency

I think this problem is really doxygen and xorg-libxcb. Do the following to test:

port rdeps doxygen +docs | grep doxygen
port rdeps xorg-libxcb +docs | grep xorg-libxcb

Which results in:

The following ports are dependencies of doxygen @1.8.3_3+docs+latex:
                    doxygen
The following ports are dependencies of xorg-libxcb @1.9_0+docs+python27:
                    xorg-libxcb

The dependency comes via:

% port rdeps doxygen +docs
The following ports are dependencies of doxygen @1.8.3_3+docs+latex:
  texlive
    texlive-basic
      texlive-documentation-base
        texlive-bin
          poppler
            cairo
              xrender
                xorg-libX11
                  xorg-libxcb
                    doxygen

xorg-libxcb contains, in the variant docs:

depends_build-append port:doxygen

So, maybe a temporary way around this issue is to install doxygen without +docs first, then install "xorg-libxcb +docs", then install "doxygen +docs"?

Anyway, this issue is not due to octave-devel; it's an SEP from my perspective :)

comment:10 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

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

Has duplicate #38849.

comment:12 Changed 11 years ago by mf2k (Frank Schima)

Port: doxygen, xorg-libxcbdoxygen xorg-libxcb

comment:13 Changed 11 years ago by cooljeanius (Eric Gallager)

#38664 is a similar set of circular dependencies that also includes doxygen and xorg-libxcb.

comment:14 Changed 11 years ago by bpabbott@…

I've run into the dependency look with port mpkg octave-devel +atlas+docs..., and am unable to work around the problem, so I'm editing the Portfiles and commenting out the docs variant. That gave me an idea to resolve the circular dependency. Rather than a docs variant, could ports for the documentation be introduced, say xorg-libxcb-docs?

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

Separate ports for documentation generally seems like a good idea, and easier to do now that we have subports. But it's still a bit of work for ports that build documentation as part of their regular build process, like xorg-libxcb and octave-devel.

comment:16 Changed 11 years ago by cooljeanius (Eric Gallager)

ok, how about a doxygen-docs subport for doxygen then? That seems like its +docs variant should be easier to split off, and also Fink does something similar...

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

Has duplicate #39465.

comment:18 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #41700.

comment:19 Changed 10 years ago by mkae (Marko Käning)

Cc: mk@… added

Cc Me!

comment:20 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Did r120417 fix this?

comment:21 Changed 10 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

comment:22 Changed 10 years ago by mojca (Mojca Miklavec)

I don't think it did, even though it was a nice move to remove dependency on the whole texlive monster ;). Probably the best idea would indeed be to split the documentation into a separate subport.

comment:23 Changed 10 years ago by mojca (Mojca Miklavec)

I see one more "problem" with the following:

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

This doesn't make any sense. The whole point of bin:pdflatex is to allow using external TeX Live. However port:texlive-latex-extra depends on texlive-latex, so one ends up installing texlive-latex no matter what. Plus, if external TeX distribution doesn't provide packages required for doxygen, texlive-latex-extra is of no help anyway. External pdflatex won't see the files from texlive-latex-extra unless configured to search there.

Either change that to

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

and assume that external latex works sufficiently well, or require the one from MP from the start:

depends_build-append    port:texlive-latex-extra \
                        bin:gs:ghostscript
Version 0, edited 10 years ago by mojca (Mojca Miklavec) (next)

comment:24 Changed 10 years ago by petrrr

Cc: Peter.Danecek@… added

Cc Me!

comment:25 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Well, port:texlive-latex-extra was added by Chris in r69976 to fix #25774 (failed to build with docs variant without this dependency). I do not know if MacTeX provides the same files as the texlive-latex-extra port. #26002 may be relevant. (It talks about differences between TeX Live and pTeX, but there may be similar differences between TeX Live and MacTeX.) Someone who uses MacTeX should let us know.

comment:26 in reply to:  23 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to mojca@…:

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

This does not make sense, because again, the texlive-latex-extra port does not provide a pdflatex binary; the texlive-latex port does, so to that extent, the dependency is now correct as set in r120417. Consider the scenario where the texlive-latex port is installed and the texlive-latex-extra port is not installed. The proposed dependency "bin:pdflatex:texlive-latex-extra" would cause MacPorts to not install the port texlive-latex-extra, since the pdflatex binary was found. This would cause the build to fail because the required components from the texlive-latex-extra port were not there.

comment:27 Changed 10 years ago by mojca (Mojca Miklavec)

Problems with pTeX should be "ignored". pTeX has to be removed, sooner or later.

MacTeX usually provides all the necessary files (by default it installs the whole TeX Live), but there is no guarantee that the user will have a full/latest/working TeX distribution installed. User might just as well create

ln -s /usr/bin/true path-to-bin/pdflatex

or use a broken TeX distribution and nothing will work. I'm exaggerating a bit, but if user deliberately uses external tools (possibly broken ones), there's nothing you can do to fix issues other than insisting on using the tools from MP.

I'm sorry. Indeed my suggestion had a flaw you pointed out correctly. But the current solution is still "wrong". If user has external pdflatex, working or not, then port:texlive-latex-extra is 100% useless for two reasons already mentioned:

  • it will install texlive-latex anyway (so bin:pdflatex:texlive-latex could just as well have been port:texlive-latex in the first place)
  • assuming that the user has a working TeX distribution, but a minimal one which lacks packages from texlive-latex-extra: packages installed by texlive-latex-extra are useless because external pdflatex binary won't find those files

(In this particular case Fink has/had a point by providing "meta" ports for external TeX distribution.)

The only proper solution would be to check whether bin:pdflatex comes from external bin or from port:texlive-latex and only install texlive-latex-extras when using pdflatex from MP.

Note: See TracTickets for help on using tickets.