Opened 9 years ago
Closed 9 years ago
#704 closed defect (fixed)
Support flex 2.6.X
Reported by: | ususdei | Owned by: | Olly Betts |
---|---|---|---|
Priority: | normal | Milestone: | 1.3.5 |
Component: | Build system | Version: | git master |
Severity: | normal | Keywords: | bootstrap doxygen build |
Cc: | Blocked By: | ||
Blocking: | Operating System: | All |
Description
Due to incomplete version checking in doxygen 1.8.8, it fails to build during bootstrap if flex >= 2.6.0 is installed. This has been fixed in doxygen 1.8.11. Therefore I updated the hardcoded version with its corresponding hash in bootstrap.
Unfortunately the doxygen project migrated from autotools to cmake with 1.8.10. So I had to add support for cmake-projects in lazy_build().
This seems to work now but it introduces cmake as a new build dependency which might not be suitable for all users. How should we deal with this?
You find my preliminary patch to this in the attachment. Feel free to adapt it.
Attachments (1)
Change History (4)
by , 9 years ago
Attachment: | doxygen.patch added |
---|
comment:1 by , 9 years ago
Status: | new → assigned |
---|
comment:2 by , 9 years ago
I backported the patch fix to the 1.2 branch in [7749e5201e169ef406d2f4699c58c9418a3442bb], since we're likely to just stick with the same doxygen version there until we stop making 1.2 releases.
comment:3 by , 9 years ago
Milestone: | 1.3.x → 1.3.5 |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
I removed the downloading of doxygen from git master in [9fd62725125743a9d9641efe2ebaab3d69ce03d7].
(Contrary to what I said in comment:1, bison is still needed - for SWIG).
Thanks for the report and for the patch.
I think it was actually a hand-written
configure
shell script before, but the end result is the same.Requiring
cmake
to be installed is annoying, and in the short term would stop the snapshots from building (as it isn't installed on the machine that does those currently, though I can request it be installed). It also isn't installed on either of the two machines I do Xapian development on, which may be a skewed sample, but clearlycmake
isn't a tool you can just assume people already have installed.It might also be prudent to check the output from the newer
doxygen
, as we've had to adjust things to suit newer versions before.So for now I've just added a patch to apply to 1.8.8 which should fix the bad version checks to work for flex 2.6 (in [82e25f97e5da59d3ad7fa8c05b5788debccc1d4e]). This version isn't packaged for debian yet, so I can't easily test - please report back if it works or not.
That's clearly just a short term fix though - we can't stick with an old
doxygen
indefinitely, and we'll need to address this when we switch to a version which usescmake
.Thoughts on what to do:
cmake
to be installed.cmake
if needed - fortunately that doesn't seem to requirecmake
to be installed, but it is more bootstrap stuff to maintain, and it doesn't fit in the category of the other tools we do this for - those all affect the built tarball, so using specified versions gives better reproducibility.doxygen
, but just require it to be installed - that's one extra prerequisite, but then you don't needbison
,flex
orcmake
, so it's really a win in that regard. It would also reduce the time taken to get Xapian built from a git checkout. And it's one less thing to have to look after in bootstrap. This does mean that a newer version of doxygen could break output formatting, but we don't install particular versions of the other tools for building the docs, such assphinx
,docutils
,help2man
,graphviz
,pngcrush
(though we've not suffered from any of those producing broken output).I think I'm leaning towards the last of these options.