rubygem-nokogiri/rubygem-nokogiri.spec

183 lines
5.1 KiB
RPMSpec
Raw Normal View History

2022-03-29 15:41:15 +08:00
%global mainver 1.13.1
2020-08-28 12:06:27 +08:00
%global mainrel 1
2020-08-29 16:56:45 +08:00
%global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g')
2020-08-28 12:06:27 +08:00
%global gem_name nokogiri
2020-08-29 16:56:45 +08:00
%undefine __brp_mangle_shebangs
2020-08-28 12:06:27 +08:00
%undefine _changelog_trimtime
Summary: An HTML, XML, SAX, and Reader parser
Name: rubygem-%{gem_name}
Version: %{mainver}
2022-04-24 11:02:02 +08:00
Release: 2
2022-03-29 15:41:15 +08:00
License: MIT and ASL 2.0
2020-08-28 12:06:27 +08:00
URL: https://nokogiri.org
Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem
2022-03-29 15:41:15 +08:00
Source1: rubygem-%{gem_name}-%{version}%{?prever}-full.tar.gz
Source2: rubygem-%{gem_name}-%{version}%{?prever}-full.tar.gz
2020-08-28 12:06:27 +08:00
# Shut down libxml2 version unmatching warning
2022-03-29 15:41:15 +08:00
Patch0: %{name}-1.11.0.rc4-shutdown-libxml2-warning.patch
2022-04-24 11:02:02 +08:00
# https://github.com/sparklemotion/nokogiri/commit/e444525
Patch1: CVE-2022-24836.patch
2020-08-29 16:56:45 +08:00
BuildRequires: ruby(release) ruby(rubygems) rubygem(minitest) rubygems-devel
Obsoletes: ruby-%{gem_name} <= 1.5.2-2
2022-03-29 15:41:15 +08:00
BuildRequires: gcc libxml2-devel libxslt-devel ruby-devel glibc-all-langpacks rubygem(racc)
Requires: rubygem(racc)
2020-08-28 12:06:27 +08:00
%description
Nokogiri parses and searches XML/HTML very quickly, and also has
correctly implemented CSS3 selector support as well as XPath support.
Nokogiri also features an Hpricot compatibility layer to help ease the change
to using correct CSS and XPath.
%if 0
%package jruby
Summary: JRuby support for %{name}
2020-08-29 16:56:45 +08:00
Requires: %{name} = %{version}-%{release}
2020-08-28 12:06:27 +08:00
%description jruby
This package contains JRuby support for %{name}.
%endif
%package doc
Summary: Documentation for %{name}
2020-08-29 16:56:45 +08:00
Requires: %{name} = %{version}-%{release}
2020-08-28 12:06:27 +08:00
%description doc
This package contains documentation for %{name}.
%package -n ruby-%{gem_name}
Summary: Non-Gem support package for %{gem_name}
2020-08-29 16:56:45 +08:00
Requires: %{name} = %{version}-%{release}
2020-08-28 12:06:27 +08:00
Provides: ruby(%{gem_name}) = %{version}-%{release}
%description -n ruby-%{gem_name}
This package provides non-Gem support for %{gem_name}.
%global version %{mainver}%{?prever}
%prep
2022-03-29 15:41:15 +08:00
%setup -q -n %{gem_name}-%{version} -a 1
mv ../%{gem_name}-%{version}.gemspec .
2020-08-28 12:06:27 +08:00
%patch0 -p1
2022-04-24 11:02:02 +08:00
%patch1 -p1
2020-08-28 12:06:27 +08:00
sed -i \
-e 's|, "ports/archives/[^"][^"]*"||g' \
-e 's|, "ports/patches/[^"][^"]*"||g' \
2022-03-29 15:41:15 +08:00
%{gem_name}-%{version}.gemspec
sed -i -e '\@mini_portile@d' %{gem_name}-%{version}.gemspec
sed -i \
ext/nokogiri/extconf.rb \
-e "s@^\(def process_recipe.*\)\$@\1 ; return true@" \
-e "s@^\(append_cppflags\).*gumbo.*\$@\1(\"-I$(pwd)/gumbo-parser/src\")@" \
-e "\@libs.*gumbo@s@File\.join.*@\"$(pwd)/gumbo-parser/src/libgumbo.a\"@" \
-e "\@LIBPATH.*gumbo@s|^\(.*\)\$|# \1|" \
%{nil}
sed -i \
gumbo-parser/src/char_ref.c \
-e '\@^#line [0-9]@s|^\(.*\)$|// \1|'
sed -i \
gumbo-parser/src/Makefile \
-e 's|^\(CFLAGS.*=.*\)$|\1 -fPIC|'
env LANG=C.UTF-8 gem build %{gem_name}-%{version}.gemspec
2020-08-28 12:06:27 +08:00
%build
export NOKOGIRI_USE_SYSTEM_LIBRARIES=yes
2022-03-29 15:41:15 +08:00
%set_build_flags
pushd gumbo-parser/src/
make libgumbo.a
popd
2020-08-28 12:06:27 +08:00
%gem_install
chmod 0644 .%{gem_dir}/cache/%{gem_name}-%{mainver}%{?prever}.gem
rm -f .%{gem_instdir}/lib/*.jar
rm -rf .%{gem_instdir}/ext/java
%install
mkdir -p %{buildroot}%{gem_dir}
cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}
2022-03-29 15:41:15 +08:00
cp -a ./gumbo-parser %{buildroot}%{gem_instdir}/
2020-08-28 12:06:27 +08:00
find %{buildroot} -name \*.orig_\* | xargs rm -vf
mkdir -p %{buildroot}%{gem_extdir_mri}
cp -a ./%{gem_extdir_mri}/* %{buildroot}%{gem_extdir_mri}/
pushd %{buildroot}
rm -f .%{gem_extdir_mri}/{gem_make.out,mkmf.log}
popd
mkdir -p %{buildroot}%{_bindir}
cp -pa .%{_bindir}/* \
%{buildroot}%{_bindir}/
for f in $(find %{buildroot}%{gem_instdir} -name \*.rb)
do
sed -i -e '/^#!/d' $f
chmod 0644 $f
done
cp -p %{gem_name}-%{version}/[A-Z]* %{buildroot}%{gem_instdir}/
2022-03-29 15:41:15 +08:00
pushd %{buildroot}%{gem_instdir}
rm -rf \
Gemfile* \
dependencies.yml \
ext \
*gemspec \
patches \
ports \
%{nil}
pushd gumbo-parser
rm \
Makefile \
%{nil}
find src -type f | \
grep -v README.md | \
xargs rm -f
popd
rm -f %{buildroot}%{gem_cache}
2020-08-28 12:06:27 +08:00
%check
export TZ="Asia/Tokyo"
LANG=C.UTF-8
cp -a %{gem_name}-%{version}/test/ ./%{gem_instdir}
pushd ./%{gem_instdir}
sed -i test/helper.rb \
-e '\@require.*simplecov@,\@^end$@d'
2022-03-29 15:41:15 +08:00
sed -i '/require..minitest.reporters./ s/^/#/' test/helper.rb
sed -i '/Minitest::Reporters/ s/^/#/' test/helper.rb
env \
RUBYLIB=".:lib:test:ext" \
ruby \
2020-08-28 12:06:27 +08:00
-e \
"require 'test/helper' ; Dir.glob('test/**/test_*.rb'){|f| require f}" || \
exit 1
echo "Please investigate this"
for f in $SKIPTEST
do
mv $f.skip $f
done
popd
%files
%{_bindir}/%{gem_name}
%{gem_extdir_mri}/
%dir %{gem_instdir}/
%doc %{gem_instdir}/[A-Z]*
%{gem_instdir}/bin/
%{gem_instdir}/lib/
2022-03-29 15:41:15 +08:00
%dir %{gem_instdir}/gumbo-parser
%dir %{gem_instdir}/gumbo-parser/src
%doc %{gem_instdir}/gumbo-parser/[A-Z]*
%doc %{gem_instdir}/gumbo-parser/src/README.md
%{gem_dir}/specifications/%{gem_name}-%{mainver}%{?prever}.gemspec
2020-08-28 12:06:27 +08:00
%files doc
%defattr(-,root,root,-)
%{gem_dir}/doc/%{gem_name}-%{mainver}%{?prever}/
%changelog
2022-04-24 11:02:02 +08:00
* Sun Apr 24 2022 wangkai <wangkai385@h-partners.com> - 1.13.1-2
- Fix CVE-2022-24836
2022-03-29 15:41:15 +08:00
* Tue Mar 29 2022 liyanan <liyanan32@huawei.com> - 1.13.1-1
- update to 1.13.1
2021-10-12 16:16:27 +08:00
* Tue Oct 12 2021 yaoxin <yaoxin30@huawei.com> - 1.10.5-3
- fix CVE-2021-41098
2021-03-17 10:08:42 +08:00
* Wed Mar 17 2021 zhanghua <zhanghua40@huawei.com> - 1.10.5-2
- fix CVE-2020-26247
2020-08-28 16:58:05 +08:00
* Wed Aug 19 2020 luoshengwei <luoshengwei@huawei.com> - 1.10.5-1
2020-08-28 12:06:27 +08:00
- package init