Skip to content

doxygen: Make build work in Python3 environment#10589

Merged
alalazo merged 2 commits intospack:developfrom
citibeth:efischer/190213-doxygen
Nov 21, 2019
Merged

doxygen: Make build work in Python3 environment#10589
alalazo merged 2 commits intospack:developfrom
citibeth:efischer/190213-doxygen

Conversation

@citibeth
Copy link
Copy Markdown
Member

No description provided.

Copy link
Copy Markdown
Contributor

@healther healther left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw should we add python@2:2.8 as a build dependency in a commented fashion, like in node-js? A future concretiser should be able to deal with that and system python's will start becoming python3s in the future?

A look at the Python code in Doxygen reveals it should work just fine in Python2 or Python3; comments in the Python code even say so.  The problem before worked as follows...

Python was not declared as a Spack dependency.  When Doxygen's CMake ran find(PythonInterp), it found the system's Python.  But for whatever reason, the user had `PYTHONPATH` set (maybe because they needed to build `--dirty`).  This cause an untenable situation, in which Python2 was run with Python3 libraries.

The solution to this problem is to include Python as a dependency.  It should work find with Python2 or Python3.
@citibeth
Copy link
Copy Markdown
Member Author

@healther Your question prompted a re-examination of the issue, and ultimately a better/simpler solution.


depends_on("[email protected]:", type='build')
depends_on("python", type='build') # 2 or 3 OK; used in CMake build
depends_on("libiconv")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alalazo alalazo merged commit 9a6a19d into spack:develop Nov 21, 2019
michaelkuhn added a commit to michaelkuhn/spack that referenced this pull request Dec 11, 2019
PR spack#10589 introduced a libiconv dependency to doxygen. This causes
problems on Linux systems, since the iconv symbols are included in libc,
which causes CMake to use the external header but not the external
library. Work around this by always using the external libiconv.
adamjstewart pushed a commit that referenced this pull request Dec 11, 2019
PR #10589 introduced a libiconv dependency to doxygen. This causes
problems on Linux systems, since the iconv symbols are included in libc,
which causes CMake to use the external header but not the external
library. Work around this by always using the external libiconv.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants