-%include /usr/lib/rpm/macros.perl
-
-%define pdir XML
-%define pnam LibXML
-
-Summary: XML-LibXML perl module
-Summary(pl): Modu³ perla XML-LibXML
-Name: perl-%{pdir}-%{pnam}
-Version: 1.40
-Release: 1
-License: GPL
+#
+# Conditional build:
+%bcond_without tests # do not perform "make test"
+#
+
+# see Makefile.PL /blacklist, choose first OK version to ensure skipping all broken releases
+%define libxml2_ver 1:2.9.6
+
+%define pdir XML
+%define pnam LibXML
+Summary: XML::LibXML - interface to the GNOME libxml2 library
+Summary(pl.UTF-8): XML::LibXML - interfejs do biblioteki libxml2 z GNOME
+Name: perl-XML-LibXML
+Version: 2.0207
+Release: 4
+# same as perl
+License: GPL v1+ or Artistic
Group: Development/Languages/Perl
-Source0: ftp://ftp.perl.org/pub/CPAN/modules/by-module/%{pdir}/%{pdir}-%{pnam}-%{version}.tar.gz
-Patch0: %{name}-Makefile.patch
-BuildRequires: rpm-perlprov >= 4.0.2-56
-BuildRequires: perl-devel >= 5.6.1
-BuildRequires: perl-XML-SAX
-BuildRequires: libxml2-devel >= 2.4.8
+Source0: http://www.cpan.org/modules/by-module/XML/%{pdir}-%{pnam}-%{version}.tar.gz
+# Source0-md5: d943c3ff20e19c376f08adcbc4158019
+URL: https://metacpan.org/release/XML-LibXML
+BuildRequires: libxml2-devel >= %{libxml2_ver}
+BuildRequires: perl-Alien-Libxml2 >= 0.14
+# Alien::Base::Wrapper
+BuildRequires: perl-Alien-Base >= 0.64_01
+BuildRequires: perl-ExtUtils-MakeMaker >= 6.56
+BuildRequires: perl-devel >= 1:5.8.1
+BuildRequires: rpm-perlprov >= 4.1-13
+BuildRequires: rpmbuild(macros) >= 1.745
+%if %{with tests}
+BuildRequires: iconv
+BuildRequires: perl(Exporter) >= 5.57
+BuildRequires: perl-Encode
+BuildRequires: perl-Scalar-List-Utils
+BuildRequires: perl-Test-Simple
+BuildRequires: perl-XML-NamespaceSupport >= 1.07
+BuildRequires: perl-XML-SAX >= 0.11
+%endif
+Requires: libxml2 >= %{libxml2_ver}
+Requires: perl-XML-NamespaceSupport >= 1.07
+Requires: perl-XML-SAX >= 0.11
+Provides: perl-XML-LibXML-XPathContext = %{version}
+Obsoletes: perl-XML-LibXML-Common < 0.14
+Obsoletes: perl-XML-LibXML-XPathContext <= 0:0.07
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-Requires: libxml2 >= 2.4.8
%description
-This module implements much of the DOM Level 2 API as an
-interface to the Gnome libxml2 library. This makes it a fast
-and highly capable validating XML parser library, as well as
-a high performance DOM.
+This module implements much of the DOM Level 2 API as an interface to
+the GNOME libxml2 library. This makes it a fast and highly capable
+validating XML parser library, as well as a high performance DOM.
+
+%description -l pl.UTF-8
+Ten moduł to implementacja większości API DOM Level 2 jako interfejsu
+do biblioteki GNOME libxml2. Daje to szybki i mający duże możliwości
+analizator sprawdzający poprawność XML-a, a także wysoko wydajny DOM.
%package SAX
-Summary: XML-LibXML-SAX perl module
-Summary(pl): Modu³ perla XML-LibXML-SAX
+Summary: XML::LibXML::SAX Perl module - XML::LibXML direct SAX parser
+Summary(pl.UTF-8): Moduł Perla XML::LibXML::SAX - bezpośredni analizator SAX z XML::LibXML
Group: Development/Languages/Perl
+Requires: %{name} = %{version}-%{release}
%description SAX
-This class allows you to generate SAX2 events using
-LibXML. Note that this is not a stream based parser,
-instead it parses documents into a DOM and traverses the
-DOM tree. The reason being that libxml2's stream based
-parsing is extremely primitive, and would require an
-extreme amount of work to allow SAX2 parsing in a stream
-manner.
+This class allows you to generate SAX2 events using LibXML. Note that
+this is not a stream based parser, instead it parses documents into a
+DOM and traverses the DOM tree. The reason being that libxml2's stream
+based parsing is extremely primitive, and would require an extreme
+amount of work to allow SAX2 parsing in a stream manner.
+
+%description SAX -l pl.UTF-8
+Ta klasa pozwala generować zdarzenia SAX2 przy użyciu LibXML2. To nie
+jest analizator oparty na strumieniach - przetwarza dokumenty na DOM i
+następnie wędruje po drzewie DOM. Wynika to z faktu, że w libxml2
+analiza oparta na strumieniach jest bardzo prymitywna i wymagałaby
+wiele pracy, aby umożliwić strumieniową analizę SAX2.
%prep
%setup -q -n %{pdir}-%{pnam}-%{version}
-%patch0 -p1
%build
-perl Makefile.PL
-%{__make} OPTIMIZE="%{rpmcflags}"
+SKIP_SAX_INSTALL=true;
+export SKIP_SAX_INSTALL
+
+%{__perl} Makefile.PL \
+ INSTALLDIRS=vendor
+%{__make} \
+ CC="%{__cc}" \
+ OPTIMIZE="%{rpmcflags}"
+
+%{?with_tests:%{__make} test}
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
install example/{*.pl,*.xml,*.dtd,*.xhtml} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/complex
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/complex/dtd
install example/complex/dtd/*.dtd $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}/complex/dtd
-gzip -9nf Changes README PHISHS.CHANGES
+# mans are provided
+%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/XML/{LibXML.pod,LibXML/*.pod,LibXML/SAX/*.pod}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
%post SAX
-perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
+umask 022
+%{__perl} -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
%preun SAX
-perl -MXML::SAX -e "XML::SAX->remove_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+if [ "$1" = "0" ]; then
+ umask 022
+ %{__perl} -MXML::SAX -e "XML::SAX->remove_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
+fi
%files
%defattr(644,root,root,755)
-%doc *.gz
-%{perl_sitearch}/XML/LibXML.pm
-%dir %{perl_sitearch}/XML/LibXML
-%{perl_sitearch}/XML/LibXML/*.pm
-%{perl_sitearch}/XML/LibXML/*.pod
-%dir %{perl_sitearch}/auto/XML/LibXML
-%{perl_sitearch}/auto/XML/LibXML/LibXML.bs
-%attr(755,root,root) %{perl_sitearch}/auto/XML/LibXML/LibXML.so
-%{_mandir}/man3/XML::LibXML.3pm.gz
-%{_mandir}/man3/XML::LibXML::[^S][^A][^X]*
-%{_examplesdir}/%{name}-%{version}
+%doc Changes LICENSE README TODO
+%{perl_vendorarch}/XML/LibXML.pm
+%dir %{perl_vendorarch}/XML/LibXML
+%{perl_vendorarch}/XML/LibXML/[!S]*.pm
+%dir %{perl_vendorarch}/auto/XML/LibXML
+%attr(755,root,root) %{perl_vendorarch}/auto/XML/LibXML/LibXML.so
+%{_mandir}/man3/XML::LibXML.3pm*
+%{_mandir}/man3/XML::LibXML::[!S]*
+%{_mandir}/man3/XML::LibXML::S[!A]*
+%dir %{_examplesdir}/%{name}-%{version}
+%attr(755,root,root) %{_examplesdir}/%{name}-%{version}/x*.pl
+%{_examplesdir}/%{name}-%{version}/[!x]*
%files SAX
%defattr(644,root,root,755)
-%dir %{perl_sitearch}/XML/LibXML/SAX
-%{perl_sitearch}/XML/LibXML/SAX/*.pm
+%dir %{perl_vendorarch}/XML/LibXML/SAX
+%{perl_vendorarch}/XML/LibXML/SAX.pm
+%{perl_vendorarch}/XML/LibXML/SAX/*.pm
+%{_mandir}/man3/XML::LibXML::SAX.3pm*
%{_mandir}/man3/XML::LibXML::SAX::*