New Ticket     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #18748 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

doxygen build phase conflicts with libwww

Reported by: brett@… Owned by: css@…
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: Cc: mcalhoun@…
Port: doxygen

Description (last modified by css@…) (diff)

udo port install doxygen
--->  Fetching doxygen
--->  Attempting to fetch doxygen-1.5.8.src.tar.gz from http://distfiles.macports.org/doxygen
--->  Verifying checksum(s) for doxygen
--->  Extracting doxygen
--->  Configuring doxygen
--->  Building doxygen
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.5.8" && make all " returned error 2
Command output: ar cq ../lib/libdoxygen.a ../objects/ce_lex.o ../objects/ce_parse.o ../objects/classdef.o ../objects/classlist.o ../objects/cmdmapper.o ../objects/code.o ../objects/commentcnv.o ../objects/commentscan.o ../objects/cppvalue.o ../objects/debug.o ../objects/defgen.o ../objects/declinfo.o ../objects/defargs.o ../objects/define.o ../objects/definition.o ../objects/diagram.o ../objects/dirdef.o ../objects/docparser.o ../objects/docsets.o ../objects/doctokenizer.o ../objects/dot.o ../objects/doxygen.o ../objects/entry.o ../objects/filedef.o ../objects/filename.o ../objects/formula.o ../objects/ftvhelp.o ../objects/fortrancode.o ../objects/fortranscanner.o ../objects/groupdef.o ../objects/htags.o ../objects/htmldocvisitor.o ../objects/htmlgen.o ../objects/htmlhelp.o ../objects/indexlog.o ../objects/image.o ../objects/index.o ../objects/instdox.o ../objects/language.o ../objects/latexdocvisitor.o ../objects/latexgen.o ../objects/layout.o ../objects/logos.o ../objects/mandocvisitor.o ../objects/mangen.o ../objects/marshal.o ../objects/memberdef.o ../objects/membergroup.o ../objects/memberlist.o ../objects/membername.o ../objects/message.o ../objects/msc.o ../objects/namespacedef.o ../objects/objcache.o ../objects/outputgen.o ../objects/outputlist.o ../objects/pagedef.o ../objects/perlmodgen.o ../objects/pngenc.o ../objects/pre.o ../objects/pycode.o ../objects/pyscanner.o ../objects/qhp.o ../objects/qhpxmlwriter.o ../objects/reflist.o ../objects/rtfdocvisitor.o ../objects/rtfgen.o ../objects/rtfstyle.o ../objects/scanner.o ../objects/searchindex.o ../objects/store.o ../objects/tagreader.o ../objects/textdocvisitor.o ../objects/translator.o ../objects/util.o ../objects/version.o ../objects/vhdlcode.o ../objects/vhdldocgen.o ../objects/vhdlscanner.o ../objects/xmldocvisitor.o ../objects/xmlgen.o 
ranlib ../lib/libdoxygen.a
gmake[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.5.8/src'
/opt/local/bin/gmake -f Makefile.doxygen    PERL=/opt/local/bin/perl all
gmake[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.5.8/src'
/usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libpng -I../libmd5 -I. -o ../objects/main.o main.cpp
/usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o  -L../lib -ldoxygen -ldoxycfg -lqtools -lpng -lmd5 -liconv
Undefined symbols:
  "_MD5SigToString", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
  "_MD5Buffer", referenced from:
      MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      convertNameToFile(char const*, bool)in libdoxygen.a(util.o)
      Definition::_docsAlreadyAdded(QString const&)  in libdoxygen.a(definition.o)
      DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o)
      computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o)
      DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
gmake[2]: *** [../bin/doxygen] Error 1
gmake[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.5.8/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_doxygen/work/doxygen-1.5.8/src'
make: *** [all] Error 2

Error: Status 1 encountered during processing.

The above error results from the presence of libwww. A pre-build hook should present an error indicating the user should deactivate the libwww port prior to building and installing doxygen. It's fine to activate libwww after building and installing the doxygen port.

Attachments

doxygen_build.txt Download (4.6 KB) - added by brett@… 3 years ago.

Change History

  Changed 3 years ago by mcalhoun@…

  • cc mcalhoun@… added

Cc Me!

  Changed 3 years ago by css@…

  • status changed from new to assigned

Which platform and MacOS X version are you using? Is your entire port tree up to date?

  Changed 3 years ago by brett@…

10.5.6/intel, all ports current.

The problem seems limited to the MD5 bits.

  Changed 3 years ago by css@…

Hrm ... it builds and links fine for me on 10.5.6/Intel with all ports current. Could you please:

port clean doxygen
port build -v doxygen > doxygen_build.txt

Please attach that file to the ticket. I'm curious if something else is getting picked up from your environment that makes doxygen build differently on your system. Maybe there was an earlier build error within libmd5?

Changed 3 years ago by brett@…

  Changed 3 years ago by brett@…

I tested on another 10.5.6/intel box (with no other ports installed) and had no issues; from the error above, I'd guess it's picking up libmd5 from libwww's md5 library as opposed to the one embedded within doxygen which has a different API, and that a link reordering should fix things.

  Changed 3 years ago by brett@…

And confirmed: deactivating libwww lets doxygen install cleanly.

  Changed 3 years ago by css@…

Thanks for the confirmation ... I'm not sure where the best place would be to note the incompatibility. Maybe a preconfigure hook could check whether libwww is installed, and it could present the user with a message that it should be deactivated before building and installing doxygen.

  Changed 3 years ago by css@…

  • description modified (diff)
  • summary changed from new doxygen port fails to link to doxygen build phase conflicts with libwww

  Changed 3 years ago by anonymous

  • milestone Port Bugs deleted

Milestone Port Bugs deleted

follow-up: ↓ 11   Changed 2 years ago by ryandesign@…

The easiest way to handle this for now would be to add the line

conflicts libwww

to the doxygen port.

in reply to: ↑ 10   Changed 2 years ago by css@…

Replying to ryandesign@…:

{{{ conflicts libwww }}}

That seems like it would be prohibitive, as it would prevent having the two ports coexist at all, right?

Is there an easy way from a Portfile to check that a particular port is already installed? (Or would I need to check whether a file from libwww exists in the prefix?)

follow-up: ↓ 13   Changed 2 years ago by takeshi@…

A patch at #22426 will solve the problem without deactivating libwww or making libwww and doxygen conflicting ports.

in reply to: ↑ 12   Changed 2 years ago by css@…

  • status changed from assigned to closed
  • resolution set to fixed

Replying to takeshi@…:

A patch at #22426 will solve the problem without deactivating libwww or making libwww and doxygen conflicting ports.

Applied to r62746, which also updates to 1.6.2!

Note: See TracTickets for help on using tickets.