Summary:        XML-SAX Perl module
Name:           perl-XML-SAX
Version:        0.99
Release:        2%{?_dist_release}

Group:          Development/Libraries
License:        GPL+ or Artistic
URL:            http://search.cpan.org/dist/XML-SAX/
Source0:        http://www.cpan.org/authors/id/G/GR/GRANTM/XML-SAX-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      noarch
BuildRequires:  perl(ExtUtils::MakeMaker)
BuildRequires:  perl(XML::NamespaceSupport) >= 0.03
# The following creates circular dependency, but they are not needed for build.
#BuildRequires:  perl(XML::LibXML) perl(XML::LibXML::Common)
# XML::SAX::Base became independent package, BR just for test
BuildRequires:  perl(XML::SAX::Base)

Requires:       perl(:MODULE_COMPAT_%(perl -MConfig -e 'print $Config{version}'))
Requires:       perl(XML::LibXML) perl(XML::LibXML::Common)

%description
XML::SAX consists of several framework classes for using and building
Perl SAX2 XML parsers, filters, and drivers. It is designed around the
need to be able to "plug in" different SAX parsers to an application
without requiring programmer intervention. Those of you familiar with
the DBI will be right at home. Some of the designs come from the Java
JAXP specification (SAX part), only without the javaness.


%prep
%setup -q -n XML-SAX-%{version}

%if %{_dist_release} > "vl6"
%{?perl_default_filter:
%filter_from_provides /^perl(XML::SAX::PurePerl)$/d
%filter_from_requires /^perl(XML::SAX::PurePerl::\(DTDDecls\|DocType\|EncodingDetect\|XMLDecl\|NoUnicodeExt\|UnicodeExt\|Reader::NoUnicodeExt\))/d
%perl_default_filter}
%global __provides_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(XML::SAX::PurePerl\\)
%global __requires_exclude %{?__provides_exclude:%__provides_exclude|}perl\\(XML::SAX::PurePerl::(DTDDecls|DocType|EncodingDetect|XMLDecl|NoUnicodeExt|UnicodeExt|Reader::NoUnicodeExt)\\)

%{?perl_default_subpackage_tests}

%else
cat << \EOF > %{name}-prov
#!/bin/sh
%{__perl_provides} $* |\
sed -e '/perl(XML::SAX::PurePerl)/d'
EOF

%global __perl_provides %{_builddir}/XML-SAX-%{version}/%{name}-prov
chmod +x %{__perl_provides}

cat << \EOF > %{name}-req
#!/bin/sh
%{__perl_requires} $* |\
sed -e '/perl(XML::SAX::PurePerl::\(DTDDecls\|DocType\|EncodingDetect\|XMLDecl\|NoUnicodeExt\|UnicodeExt\|Reader::NoUnicodeExt\))/d'
EOF

%global __perl_requires %{_builddir}/XML-SAX-%{version}/%{name}-req
chmod +x %{__perl_requires}
%endif


%build
echo N | %{__perl} Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make pure_install PERL_INSTALL_ROOT=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null ';'
chmod -R u+w %{buildroot}/*

touch %{buildroot}%{perl_vendorlib}/XML/SAX/ParserDetails.ini

%check
make test

%clean
rm -rf %{buildroot}


%post
if [ ! -f "%{perl_vendorlib}/XML/SAX/ParserDetails.ini" ] ; then
  perl -MXML::SAX -e \
    'XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()' 2>/dev/null || :
else
  cp -p "%{perl_vendorlib}/XML/SAX/ParserDetails.ini" "%{perl_vendorlib}/XML/SAX/ParserDetails.ini.backup"
fi

%triggerun -- perl-XML-LibXML < 1.58-8
if [ -f "%{perl_vendorlib}/XML/SAX/ParserDetails.ini.backup" ] ; then
  mv "%{perl_vendorlib}/XML/SAX/ParserDetails.ini.backup" "%{perl_vendorlib}/XML/SAX/ParserDetails.ini"
fi

%preun
# create backup of ParserDetails.ini, therefore user's configuration is used
if [ $1 -eq 0 ] ; then
  perl -MXML::SAX -e \
    'XML::SAX->remove_parser(q(XML::SAX::PurePerl))->save_parsers()' || :
fi
[ -f "%{perl_vendorlib}/XML/SAX/ParserDetails.ini.backup" ] && \
rm -rf "%{perl_vendorlib}/XML/SAX/ParserDetails.ini.backup" || :

%files
%doc Changes LICENSE README
%dir %{perl_vendorlib}/XML
%{perl_vendorlib}/XML/SAX.pm
%dir %{perl_vendorlib}/XML/SAX
%{perl_vendorlib}/XML/SAX/*.pm
%{perl_vendorlib}/XML/SAX/*.pod
%{perl_vendorlib}/XML/SAX/PurePerl
%{_mandir}/man3/XML::*.3pm*
%ghost %{perl_vendorlib}/XML/SAX/ParserDetails.ini


%changelog
* Thu Mar 01 2012 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 0.99-2
- rebuild

* Thu Mar 01 2012 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 0.99-1
- updated to 0.99
- revamped spec in accordance with Fedora's 0.99-2
- previous Vine changelogs as follows:

  - Sun Mar 27 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 0.16-3
  - drebuild with perl-5.12.3
  - using __perl_requires macro for VineSeed (vl6)
  
  - Sun Jun  1 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.16-2
  - added Requires(post,preun): perl-XML-LibXML
  
  - Sat May 31 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.16-1
  - new upstream release
  - built with perl-5.10.0-2
  - added SOURCE1, 2 for avoiding unwanted dependancies
  
  - Sun Jan  2 2005 IWAI, Masaharu <iwai@alib.jp> 0.12-0vl2
  - build on perl-5.8.6-0vl1
  
  - Sun Oct 17 2004 Satoshi MACHINO <machino@vinelinux.org> 0.12-0vl1
  - new upstream version
  - updated patch0 to perl-XML-SAX-0.12-makefile.patch
  
  - Mon Apr 15 2002 IWAI Masaharu <iwaim@cc.mbn.or.jp> 0.10-0vl1
  - first build for Vine Linux

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.99-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Fri Oct 07 2011 Marcela Mašláňová <mmaslano@redhat.com> 0.99-1
- update to 0.99

* Wed Jul 20 2011 Petr Sabata <contyk@redhat.com> - 0.96-15
- Perl mass rebuild

* Fri Jun 24 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-14
- fix macros to work with new macros
- clean spec

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.96-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Jan 24 2011 Adrian Reber <adrian@lisas.de> - 0.96-12
- rebuild for ppc

* Thu Dec 23 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.96-11
- 661697 rebuild for fixing problems with vendorach/lib

* Fri May 07 2010 Marcela Maslanova <mmaslano@redhat.com> - 0.96-10
- Mass rebuild with perl-5.12.0

* Fri Feb  5 2010 Stepan Kasal <skasal@redhat.com> - 0.96-9
- anchor the filtering regexps

* Fri Feb  5 2010 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-8
- XML-LibXML use triggers for XML::SAX update. Deleting of settings in
 ParserDetails.ini is solved by post and preun part, which create backup.

* Thu Nov 12 2009 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-7
- instead of path into post used perl_vendorlib macro
- rebuilt will be needed for perl-5.10.1

* Thu Nov 12 2009 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-6
- post scriptlet needs to check whether the file is installed. When it isn't,
 then it's needed call for adding PurePerl parser
 http://perl-xml.sourceforge.net/faq/#parserdetails.ini

* Mon Oct 19 2009 Stepan Kasal <skasal@redhat.com> - 0.96-5
- use the filtering macros

* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.96-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Apr 28 2009 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-3
- 478905 fix scriptlets

* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.96-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Thu Dec 11 2008 Marcela Mašláňová <mmaslano@redhat.com> - 0.96-1
- update to 0.96, big leap in versioning

* Sun Mar  2 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.16-5
- Re-enable XML::LibXML BuildRequires

* Wed Feb 27 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.16-4
- Rebuild for perl 5.10 (again)

* Mon Jan 28 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.16-3.1
- temporarily disable BR against perl-XML-LibXML

* Thu Jan 24 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.16-3
- rebuild for new perl

* Sat Jul 07 2007 Robin Norwood <rnorwood@redhat.com> - 0.16-2
- Resolves: rhbz#247213
- Fix provides and requires scripts.

* Mon Jul 02 2007 Jose Pedro Oliveira <jpo at di.uminho.pt> - 0.16-1
- Update to 0.16.
- Brings specfile closer to Fedora Perl template.
- Corrects Source0 URL (upstream maintainer has changed).
- Move Requires filter into spec, and add Provides filter.

* Tue Feb 13 2007 Robin Norwood <rnorwood@redhat.com> - 0.15-1
- New version: 0.15

* Fri Jun 09 2006 Jason Vas Dias <jvdias@redhat.com> - 0.14-2
- fix bug 194706: fails to build under (new!) mock

* Mon Jun 05 2006 Jason Vas Dias <jvdias@redhat.com> - 0.14-1
- upgrade to 0.14

* Fri Feb 03 2006 Jason Vas Dias <jvdias@redhat.com> - 0.13-1.1
- rebuild for new perl-5.8.8

* Mon Dec 19 2005 Jason Vas Dias <jvdias@redhat.com> - 0.13-1
- upgrade to 0.13

* Fri Dec 16 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt for new gcc

* Fri Dec 16 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt for new gcj

* Sun Apr 18 2004 Ville Skyttä <ville.skytta at iki.fi> - 0.12-7
- #121167
- Handle ParserDetails.ini parser registration.
- Require perl(:MODULE_COMPAT_*).
- Own installed directories.

* Wed Oct 22 2003 Chip Turner <cturner@redhat.com> - 0.12-1
- Specfile autogenerated.

