Summary: Library providing XML and HTML support
Name: libxml2
Version: 2.6.16
Release: 1
License: MIT
Group: Development/Libraries
Source: ftp://xmlsoft.org/libxml2-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: python python-devel zlib-devel
URL: http://xmlsoft.org/
Prefix: %{_prefix}
Docdir: %{_docdir}

%description
This library allows to manipulate XML files. It includes support 
to read, modify and write XML and HTML files. There is DTDs support
this includes parsing and validation even with complex DtDs, either
at parse time or later once the document has been modified. The output
can be a simple SAX stream or and in-memory DOM like representations.
In this case one can use the built-in XPath and XPointer implementation
to select subnodes or ranges. A flexible Input/Output mechanism is
available, with existing HTTP and FTP modules and combined to an
URI library.

%package devel
Summary: Libraries, includes, etc. to develop XML and HTML applications
Group: Development/Libraries
Requires: libxml2 = %{version}
Requires: zlib-devel

%description devel
Libraries, include files, etc you can use to develop XML applications.
This library allows to manipulate XML files. It includes support 
to read, modify and write XML and HTML files. There is DTDs support
this includes parsing and validation even with complex DtDs, either
at parse time or later once the document has been modified. The output
can be a simple SAX stream or and in-memory DOM like representations.
In this case one can use the built-in XPath and XPointer implementation
to select subnodes or ranges. A flexible Input/Output mechanism is
available, with existing HTTP and FTP modules and combined to an
URI library.

%package python
Summary: Python bindings for the libxml2 library
Group: Development/Libraries
Requires: libxml2 = %{version}
Requires: %{_libdir}/python%(echo `python -c "import sys; print sys.version[0:3]"`)

%description python
The libxml2-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by the libxml2 library to manipulate XML files.

This library allows to manipulate XML files. It includes support 
to read, modify and write XML and HTML files. There is DTDs support
this includes parsing and validation even with complex DTDs, either
at parse time or later once the document has been modified.

%prep
%setup -q

%build
#
# try to use compiler profiling, based on Arjan van de Ven <arjanv@redhat.com>
# initial test spec. This really doesn't work okay for most tests done.
#
GCC_VERSION=`gcc --version | grep "^gcc" | awk '{ print $3 }' | sed 's+\([0-9]\)\.\([0-9]\)\..*+\1\2+'`
#if [ $GCC_VERSION -eq 32 ]
#then
#    PROF_GEN='-fprofile-arcs'
#    PROF_USE='-fbranch-probabilities'
#else if [ $GCC_VERSION -eq 33 ]
#then
#    PROF_GEN='-fprofile-arcs'
#    PROF_USE='-fbranch-probabilities -ftracer'
#else
if [ $GCC_VERSION -ge 34 ]
then
    PROF_GEN='-fprofile-generate'
    PROF_USE='-fprofile-use'
fi
#fi
#fi

if [ "$PROF_GEN" != "" ]
then
    # First generate a profiling version
    CFLAGS="${RPM_OPT_FLAGS} ${PROF_GEN}"  %configure
    make
    # Run a few sampling
    make dba100000.xml
    ./xmllint --noout  dba100000.xml
    ./xmllint --stream  dba100000.xml
    ./xmllint --noout --valid test/valid/REC-xml-19980210.xml
    ./xmllint --stream --valid test/valid/REC-xml-19980210.xml
    # Then generate code based on profile
    CFLAGS="${RPM_OPT_FLAGS} ${PROF_USE}"  %configure
    make
else
    %configure
    make
fi
(cd doc/examples ; make clean)
gzip -9 ChangeLog

%install
rm -fr %{buildroot}

%makeinstall

%clean
rm -fr %{buildroot}

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%files
%defattr(-, root, root)

%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO
%doc %{_mandir}/man1/xmllint.1*
%doc %{_mandir}/man1/xmlcatalog.1*
%doc %{_mandir}/man3/libxml.3*

%{_libdir}/lib*.so.*
%{prefix}/bin/xmllint
%{prefix}/bin/xmlcatalog

%files devel
%defattr(-, root, root)

%doc %{_mandir}/man1/xml2-config.1*
%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO
%doc doc/*.html doc/html doc/*.gif doc/*.png
%doc doc/tutorial doc/libxml2-api.xml
%doc doc/examples

%{_libdir}/lib*.so
%{_libdir}/*a
%{_libdir}/*.sh
%{prefix}/include/*
%{prefix}/bin/xml2-config
%{prefix}/share/aclocal/libxml.m4
%{_libdir}/pkgconfig/libxml-2.0.pc
%files python
%defattr(-, root, root)

%doc AUTHORS ChangeLog.gz NEWS README Copyright
%{_libdir}/python*/site-packages/libxml2.py
%{_libdir}/python*/site-packages/drv_libxml2.py
%{_libdir}/python*/site-packages/libxml2mod*
%doc python/TODO
%doc python/libxml2class.txt
%doc python/tests/*.py
%doc doc/*.py
%doc doc/python.html

%changelog
* Wed Nov 10 2004 Daniel Veillard <veillard@redhat.com>
- upstream release 2.6.16 see http://xmlsoft.org/news.html

* Thu Jan  2 2003 Daniel Veillard <veillard@redhat.com>
- integrated drv_libxml2 xml.sax driver from Stéphane Bidoul
- provides the new XmlTextReader interfaces based on C# XML APIs

* Wed Oct 23 2002 Daniel Veillard <veillard@redhat.com>
- revamped the spec file, cleaned up some rpm building problems

* Fri Oct  4 2002 Jeremy Katz <katzj@redhat.com>
- build with 'make LIBTOOL=/usr/bin/libtool' to use system libtool

* Wed Sep  4 2002 Daniel Veillard <veillard@redhat.com>

- library paths fixed for x86-64

* Fri Feb  1 2002 Daniel Veillard <veillard@redhat.com>

- Added the python package

* Sun Nov  4 2001 Daniel Veillard <veillard@redhat.com>

- cleaned up the specfile
- 2.4.7 broke SGML catalogs badly. this fixes it.

* Thu Apr 26 2001 Toshio Kuratomi <badger@prtr-13.ucsc.edu>

[2.3.7]
- Added libxml.m4 to the distribution file list
- Moved the man pages from /usr/man to /usr/share/man to conform to FHS2.0
- Moved programmer documentation into the devel package

* Thu Sep 23 1999 Daniel Veillard <daniel@veillard.com>

- corrected the spec file alpha stuff
- switched to version 1.7.1
- Added validation, XPath, nanohttp, removed memory leaks
- Renamed CHAR to xmlChar

* Wed Jun  2 1999 Daniel Veillard <daniel@veillard.com>

- Switched to version 1.1: SAX extensions, better entities support, lots of
  bug fixes.

* Sun Oct  4 1998 Daniel Veillard <daniel@veillard.com>

- Added xml-config to the package

* Thu Sep 24 1998 Michael Fulbright <msf@redhat.com>

- Built release 0.30

