Splitting up lib{xslt,xml2} packages
Charles Wilson
cygwin@cwilson.fastmail.fm
Sat Jun 28 01:34:00 GMT 2003
Elfyn McBratney wrote:
>>>My inted layout is
>>>
>>> libxml2 the runtime library
>>> libxml2-doc manuals, docs, etc
>>> libxml2-devel headers and static libs
>>> libxml2-python python bindings
>>> libxml2-perl perl modules (XML::)
>>>
>>> libxslt ...
>>> libxslt-doc ...
>>> libxslt-devel ...
>>> libxslt-python ...
>>
>
> I've done that. I'm going to do this tomorrow if no one disagrees, as all it
> takes is uploading new packages.
I don't agree. (in mean, in principle, yes, but I don't think your
proposed package naming/splitting is the right way to do it).
#1. **Usually** it's nice if libxxxx are the actual DLL- and linklib-
containing package, and everything else goes into xxxx- packages. Like
libncursesX vs. ncurses:
libncursesX : DLLs
libncurses-devel : static libs, headers, import libs
ncurses : the rest
ncurses-demo : extra apps
The exception is if the upstream package itself is called "libsomething"
-- for instance, libiconv or libtool.
Now. I'm not familiar with xml/xslt -- are they distributed as "libxslt"
upstream, or as "xslt"?
#2. the two runtime library packages should be versioned. e.g.
libxml2_N where N corresponds to the -N.dll version number (eg.
cygbz2-1.dll is distributed in libbz2_1 package.)
Now, libxslt contains three DLLs with different DLL numbers. There are
two (three?) ways to handle this:
a) bundle all of the DLLs into one "DLL" package, using the version
number that is the maximum of all of the DLLs within. Eg.
cygexslt-0.dll
cygxslt-1.dll
cygxsltbreakpoint-1.dll
MAX(0,1,1) == 1, so these should be in 'libxslt1' package (that is,
libxslt1-1.0.30-2.tar.bz2) You need an '_', though, when the "real"
package name ends in a numeral (xml2, bzip2).
This is what I did with ncurses, etc (sans underscore, of course)
b) bundle and use the SUM of all of the version numbers. I don't know
of any existing package that does this -- and it could lead to setup
ordering errors if you ever move to (c), below.
c) separate tarball for each DLL - this is what I did for libintl2 and
libcharset1 (both from the same gettext source bundle). Even if you
split up the DLL packages, all of the -devel stuff can stay in a single
-devel package.
#3) **Ordinarily**, -devel packages should NOT be versioned. So, your
suggestion of 'libxslt-devel' (as opposed to 'libxslt1-devel') is a good
one. There are exceptions to this rule; see libpng, libdb)
--------------
So, I suggest
libxml2_2 the runtime library
libxml2-doc manuals, docs, etc
libxml2-devel headers and static libs (incl. xml2-config)
libxml2-python python bindings
libxml2-perl perl modules (XML::)
libxslt1 all three runtime libraries
libxslt-doc ...
libxslt-devel ...
libxslt-python ...
Now, this requires updating requires: lines on some setup.hints in other
packages -- but TRUST ME, it's better to face the pain now than later.
--Chuck
More information about the Cygwin-apps
mailing list