diff --git a/README.en.md b/README.en.md deleted file mode 100644 index d920b6e..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# perl-XML-SAX - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 6e0950a..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# perl-XML-SAX - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/XML-SAX-1.00-nopatents.tar.gz b/XML-SAX-1.00-nopatents.tar.gz new file mode 100644 index 0000000..b7ec7ec Binary files /dev/null and b/XML-SAX-1.00-nopatents.tar.gz differ diff --git a/generate-tarball.sh b/generate-tarball.sh new file mode 100644 index 0000000..15e644d --- /dev/null +++ b/generate-tarball.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +VERSION=$1 + +tar -xzvf XML-SAX-$VERSION.tar.gz + +# xmltest.xml could not be distributed due to copyright +rm XML-SAX-$VERSION/testfiles/xmltest.xml +rm XML-SAX-$VERSION/t/16large.t +sed -i -e '/testfiles\/xmltest.xml/ d' XML-SAX-$VERSION/MANIFEST +sed -i -e '/t\/16large.t/ d' XML-SAX-$VERSION/MANIFEST + +tar -czvf XML-SAX-$VERSION-nopatents.tar.gz XML-SAX-$VERSION + diff --git a/perl-XML-SAX-0.99-rt20126.patch b/perl-XML-SAX-0.99-rt20126.patch new file mode 100644 index 0000000..5f0d100 --- /dev/null +++ b/perl-XML-SAX-0.99-rt20126.patch @@ -0,0 +1,42 @@ +diff --git a/SAX/PurePerl.pm b/SAX/PurePerl.pm +--- a/SAX/PurePerl.pm 2006-04-24 01:20:09.000000000 +0200 ++++ b/SAX/PurePerl.pm 2012-08-09 12:47:48.736728516 +0200 +@@ -595,22 +595,23 @@ sub Comment { + + my $data = $reader->data(4); + if ($data =~ /^!) { ++ my $n = $reader->read_more; ++ $self->parser_error("End of data seen while looking for close comment marker", $reader) ++ unless $n; ++ $data = $reader->data; ++ } ++ + my $comment_str = ''; +- while (1) { +- my $data = $reader->data; +- $self->parser_error("End of data seen while looking for close comment marker", $reader) +- unless length($data); +- if ($data =~ /^(.*?)-->/s) { +- $comment_str .= $1; +- $self->parser_error("Invalid comment (dash)", $reader) if $comment_str =~ /-$/; +- $reader->move_along(length($1) + 3); +- last; +- } +- else { +- $comment_str .= $data; +- $reader->move_along(length($data)); +- } ++ if ($data =~ /^(.*?)-->/s) { ++ $comment_str = $1; ++ $self->parser_error("Invalid comment (dash)", $reader) if $comment_str =~ /-$/; ++ $reader->move_along(length($1) + 3); ++ } ++ else { ++ return 0; + } + + $self->comment({ Data => $comment_str }); diff --git a/perl-XML-SAX.spec b/perl-XML-SAX.spec new file mode 100644 index 0000000..ea01949 --- /dev/null +++ b/perl-XML-SAX.spec @@ -0,0 +1,95 @@ +%global pdini_name %{perl_vendorlib}/XML/SAX/ParserDetails.ini + +Summary: SAX parser access API for Perl +Name: perl-XML-SAX +Version: 1.00 +Release: 5 +License: GPL+ or Artistic +URL: https://metacpan.org/release/XML-SAX + +Source0: XML-SAX-%{version}-nopatents.tar.gz +Source1: generate-tarball.sh + +Patch0: perl-XML-SAX-0.99-rt20126.patch + +BuildArch: noarch +BuildRequires: coreutils make perl-generators perl-interpreter +BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76 perl(File::Basename) perl(File::Spec) +# Run-time +BuildRequires: perl(Carp) perl(constant) perl(Encode) perl(Exporter) perl(File::Temp) +BuildRequires: perl(IO::File) perl(overload) perl(strict) perl(Symbol) perl(vars) +BuildRequires: perl(warnings) perl(XML::NamespaceSupport) >= 0.03 +BuildRequires: perl(XML::SAX::Base) perl(XML::SAX::Exception) +# Test +BuildRequires: perl(base) perl(Fatal) perl(File::Path) perl(Test) + +Requires: perl(:MODULE_COMPAT_%(perl -MConfig -e 'print $Config{version}')) +Recommends: perl(LWP::UserAgent) + +# Remove bogus XML::SAX::PurePerl* dependencies and unversioned provides +%global __requires_exclude ^perl\\(XML::SAX::PurePerl +%global __provides_exclude ^perl\\(XML::SAX::PurePerl\\)$ + +%description +XML::SAX is a SAX parser access API for Perl. It includes classes and +APIs required for implementing SAX drivers, along with a factory class +for returning any SAX parser installed on the user's system. + + +%package_help + + +%prep +%autosetup -p1 -n XML-SAX-%{version} + +%build +echo N | %{__perl} Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 +%make_build + +%install +make pure_install DESTDIR=%{buildroot} +%{_fixperms} %{buildroot}/* + +touch %{buildroot}%{pdini_name} + +%check +make test + +%post +if [ ! -f "%{pdini_name}" ] ; then + perl -MXML::SAX -e \ + 'XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()' 2>/dev/null || : +else + cp -p "%{pdini_name}" "%{pdini_name}.backup" +fi + +%triggerun -- perl-XML-LibXML < 1.58-8 +if [ -f "%{pdini_name}.backup" ] ; then + mv "%{pdini_name}.backup" "%{pdini_name}" +fi + +%preun +if [ $1 -eq 0 ] ; then + perl -MXML::SAX -e \ + 'XML::SAX->remove_parser(q(XML::SAX::PurePerl))->save_parsers()' || : +fi +[ -f "%{pdini_name}.backup" ] && \ +rm -rf "%{pdini_name}.backup" || : + +%files +%license LICENSE +%dir %{perl_vendorlib}/XML/ +%{perl_vendorlib}/XML/SAX.pm +%dir %{perl_vendorlib}/XML/SAX/ +%{perl_vendorlib}/XML/SAX/*.pm +%doc %{perl_vendorlib}/XML/SAX/*.pod +%{perl_vendorlib}/XML/SAX/PurePerl/ +%ghost %{perl_vendorlib}/XML/SAX/ParserDetails.ini + +%files help +%doc Changes README +%{_mandir}/man3/XML::*.3pm* + +%changelog +* Tue Nov 19 2019 mengxian - 1.00-5 +- Package init