Opened 8 years ago

Last modified 7 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 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 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@… 8 years ago.
main.log

Download all attachments as: .zip

Change History (28)

Changed 8 years ago by jmercie1@…

Attachment: main.log added

main.log

comment:1 Changed 8 years ago by ryandesign (Ryan 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 8 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 8 years ago by ryandesign (Ryan 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 8 years ago by ryandesign (Ryan 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 8 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 8 years ago by ryandesign (Ryan Schmidt)

Resolution: worksforme
Status: newclosed

comment:7 Changed 8 years ago by ryandesign (Ryan 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 8 years ago by jmroot (Joshua Root)

Try not using +docs until you have doxygen installed.

comment:9 Changed 8 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 8 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

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

Has duplicate #38849.

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

Port: doxygen, xorg-libxcbdoxygen xorg-libxcb

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

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

comment:14 Changed 8 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 8 years ago by ryandesign (Ryan 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 8 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 8 years ago by ryandesign (Ryan Schmidt)

Has duplicate #39465.

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

Has duplicate #41700.

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

Cc: mk@… added

Cc Me!

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

Did r120417 fix this?

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

Cc: mojca@… added

Cc Me!

comment:22 Changed 7 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 7 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 package from MP from the start:

depends_build-append    port:texlive-latex-extra \
                        bin:gs:ghostscript
Last edited 7 years ago by mojca (Mojca Miklavec) (previous) (diff)

comment:24 Changed 7 years ago by petrrr

Cc: Peter.Danecek@… added

Cc Me!

comment:25 Changed 7 years ago by ryandesign (Ryan 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 7 years ago by ryandesign (Ryan 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 7 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.