tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Core decision on moving "libexpat" from xsrc to src

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

         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 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

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

Home | Main Index | Thread Index | Old Index