Core decision on moving "libexpat" from xsrc to src

This announcement was recently posted to tech-userlevel. I am
re-posting it to tech-x11.
----
The NetBSD core group has considered a request to add the
"libexpat" XML library to the base "src" tree. Our decision is
that the libexpat library should be moved from "xsrc" to "src".
More detailed reasoning follows.
1. The original motivation for adding libexpat to the src
tree was to deal with a problem with pkgsrc binary
packages. The problem is this:
If a package requires expat, then pkgsrc decides
whether to use a "builtin" version of expat provided
by the operating system, or to use a version of expat
provided by pkgsrc, according to the presence or
absence of certain files at the time the package is
built. If a binary package is built in an environment
where pkgsrc decides to use the the "builtin" expat,
and if that binary package is later installed
in an environment where the operating system does not
provide expat, then it will not work. This sort of
incompatibility can easily arise when users download
and install binary packages that were built by third
parties.
In NetBSD's case, whether or not the "xbase" and
"xcomp" sets are installed at the time a package is
built will determine whether the package uses the
"builtin" version of expat (which ultimately comes
from sources in the NetBSD "xsrc" tree), or uses the
pkgsrc version of expat. Binary packages distributed
on ftp.NetBSD.org expect to use the builtin version of
expat, and they do not work for users who do not use
X11 at all, or who use X11_TYPE=modular.
2. The suggested solution to problem 1 was to move libexpat
from the "xsrc" tree to the "src" tree, so that binary
packages built for NetBSD would always use the "native"
expat, regardless of whether or not the xbase and xcomp
sets were installed.
3. The core group believes that problem 1 could be solved
in other ways, without using suggested solution 2. For
example it could be solved by distributing multiple
versions of the affected binary packages, or by adding
a package that provides symbolic links to the correct
library. Other solutions might not be convenient for
pkgsrc, but they are possible.
4. In the light of point 3, the core group believes that
problem 1 is not a sufficient reason to move libexpat from
the xsrc tree to the src tree.
5. Having an XML library in the base system is potentially
useful, and libexpat is a leading contender for the
position.
6. Having XML command line utilities in the base system is
potentially useful. It seems likely that we will want to
import the xmltools that were written by Nhat Minh Lê for
the 2009 Google Summer of Code. These XML tools use the
libexpat library.
7. Taken together, points 2, 5, and 6 (in favour of moving
libexpat from xsrc to src) outweigh points 3 and 4 (in
favour of finding a different solution to problem 1).
Accordingly, the core group has decided that libexpat
should be moved from the xsrc tree to the src tree.
--
Alan Barrett, on behalf of the NetBSD core group
----- End forwarded message -----