Bug 233492 - textproc/castxml - patch to declare libxml2 dependency, support multiple LLVM versions (no flavors yet), and support manual-page generation during build
Summary: textproc/castxml - patch to declare libxml2 dependency, support multiple LLVM...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-11-25 08:09 UTC by Sean Champ
Modified: 2018-11-25 08:56 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (yuri)


Attachments
Unified diff - textproc/castxml Makefile, pkg-plist (1.66 KB, patch)
2018-11-25 08:09 UTC, Sean Champ
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sean Champ 2018-11-25 08:09:41 UTC
Created attachment 199534 [details]
Unified diff - textproc/castxml Makefile, pkg-plist

CastXML provides a method for representation of functional declarations and type declarations for C and C++ software -- possibly also Objective-C -- in an XML model. Although the XML model used in CastXML does not provide any formal schema, but it may -- in effect -- serve as a normal grammar, albeit expressed in XML syntax.

CastXML uses LLVM and libxml2. CastXML may also use the sphinx-build tool from the textproc/py-sphinx port for generating the castxml manual page. The manual page would be generated from a source document in Restructured Text format, at build time.

This patch provides an update for the textproc/castxml port such that allows for selecting exactly one LLVM distribution to use, in a range from LLVM 4 up to llvm-devel. LLVM 3.5 and LLVM 3.8 have not been supported in this patch.

This patch does not provide any integration with the newer flavors system in FreeBSD ports. I hope that I may be able to provide a patch shortly, such that would use the flavors system and would allow for multiple concurrent CastXML installations, each using a distinct LLVM distribution.

This patch also updates the port, such as to allow for using py-sphinx to generate the castxml(1) manual page, during build time.

Lastly, this patch updates the port such as to explicitly declare the dependency on libxml2. Noting that the dependency is managed via CMake in the CastXML build, the declaration for the build dependency onto libxml2 -- in the patched Makefile -- makes reference to the file, libxml2-config.cmake. For the runtime dependency, it makes reference to libxml2.so

Things that this patch does not address, with regards to CastXML distribution in the ports system:

* Flavors. If I may understand the flavor system correctly, it should be possible to build and install multiple CastXML packages, such that each installed CastXML package would depend on a specific LLVM version, of those supported. Perhaps this may be somehow analogous to how so many Python ports may simultaneously support building and packaging for e.g Python 2.7 and Python 3 distributions, each from a single source port. 

* There have been a couple of changesets at the CastXML source repository - https://github.com/castxml/castxml - such that this port may be updated in the port's GH_TAGNAME and distinfo fields. This patch does not provide such updates.

* There's a test subdirectory provided in the distsrc filesystem for the CastXML port. As yet, this port does not provide any integration with any manner of a testing framework in the ports system. Pursuant to supporting CastXML development, perhaps it may be helpful to support any unit testing system used in CastXML, during the port build. Also, it might be nice to be able to include some example code with the port. Perhaps the testing code might also serve to represent such example code.

* Doxygen. It should be possible to produce an optional DoxyGen representation of the CastXML source code, during the port build. Theoretically, the Doxygen representation may be provided optionally in HTML and PDF editions, for purpose of reference.

* Integration with editor tools - e.g Eclipse IDE or anyone's favorite console-mode text editor. Perhaps this may be more to the matter of CastXML development, though.

HTH

- Sean
Comment 1 commit-hook freebsd_committer freebsd_triage 2018-11-25 08:55:59 UTC
A commit references this bug:

Author: yuri
Date: Sun Nov 25 08:55:31 UTC 2018
New revision: 485848
URL: https://svnweb.freebsd.org/changeset/ports/485848

Log:
  textproc/castxml: Update g20180728 -> g20181115; Add options to use various LLVM versions; add the 'test' target

  PR:		233492
  Submitted by:	Sean Champ <sean.p.champ@gmail.com> (LLVM options)

Changes:
  head/textproc/castxml/Makefile
  head/textproc/castxml/distinfo
  head/textproc/castxml/pkg-plist
Comment 2 Yuri Victorovich freebsd_committer freebsd_triage 2018-11-25 08:56:05 UTC
Committed with changes and additions.
Thanks for submitting the patch!