RHEL: Import from Fedora
This commit is contained in:
parent
4214309545
commit
088e6b7d05
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
74
.gitignore
vendored
74
.gitignore
vendored
@ -0,0 +1,74 @@
|
|||||||
|
lxml-2.2.7.tar.gz
|
||||||
|
lxml-2.2.7.tar.gz.asc
|
||||||
|
/lxml-2.2.8.tar.gz
|
||||||
|
/lxml-2.2.8.tar.gz.asc
|
||||||
|
/lxml-2.3.tar.gz
|
||||||
|
/lxml-2.3.tar.gz.asc
|
||||||
|
/lxml-2.3.1.tar.gz
|
||||||
|
/lxml-2.3.1.tar.gz.asc
|
||||||
|
/lxml-2.3.2.tar.gz
|
||||||
|
/lxml-2.3.2.tar.gz.asc
|
||||||
|
/lxml-2.3.3.tar.gz
|
||||||
|
/lxml-2.3.3.tar.gz.asc
|
||||||
|
/lxml-2.3.5.tar.gz
|
||||||
|
/lxml-2.3.5.tar.gz.asc
|
||||||
|
/lxml-3.0.tar.gz
|
||||||
|
/lxml-3.0.tar.gz.asc
|
||||||
|
/lxml-3.0.tgz
|
||||||
|
/lxml-3.0.tgz.asc
|
||||||
|
/lxml-3.0.1.tgz
|
||||||
|
/lxml-3.0.1.tgz.asc
|
||||||
|
/lxml-3.1.0.tgz
|
||||||
|
/lxml-3.1.0.tgz.asc
|
||||||
|
/lxml-3.2.0.tgz
|
||||||
|
/lxml-3.2.0.tgz.asc
|
||||||
|
/lxml-3.2.1.tgz
|
||||||
|
/lxml-3.2.1.tgz.asc
|
||||||
|
/lxml-3.2.3.tgz
|
||||||
|
/lxml-3.2.3.tgz.asc
|
||||||
|
/lxml-3.2.4.tgz
|
||||||
|
/lxml-3.2.4.tgz.asc
|
||||||
|
/lxml-3.3.0.tgz
|
||||||
|
/lxml-3.3.0.tgz.asc
|
||||||
|
/lxml-3.3.2.tgz
|
||||||
|
/lxml-3.3.2.tgz.asc
|
||||||
|
/lxml-3.3.3.tgz
|
||||||
|
/lxml-3.3.3.tgz.asc
|
||||||
|
/lxml-3.3.5.tgz
|
||||||
|
/lxml-3.3.5.tgz.asc
|
||||||
|
/lxml-3.3.6.tgz
|
||||||
|
/lxml-3.3.6.tgz.asc
|
||||||
|
/lxml-3.4.4.tgz
|
||||||
|
/lxml-3.4.4.tgz.asc
|
||||||
|
/lxml-3.6.4.tar.gz
|
||||||
|
/lxml-3.7.0.tar.gz
|
||||||
|
/lxml-3.7.1.tgz
|
||||||
|
/lxml-3.7.2.tgz
|
||||||
|
/lxml-3.8.0.tgz
|
||||||
|
/lxml-4.0.0.tgz
|
||||||
|
/lxml-4.1.1.tgz
|
||||||
|
/lxml-4.2.1.tgz
|
||||||
|
/lxml-4.2.3.tgz
|
||||||
|
/lxml-4.2.4.tgz
|
||||||
|
/lxml-4.2.5.tgz
|
||||||
|
/lxml-4.4.0.tgz
|
||||||
|
/lxml-4.4.1.tgz
|
||||||
|
/lxml-4.5.1.tgz
|
||||||
|
/lxml-4.6.2.tar.gz
|
||||||
|
/lxml-4.6.3.tar.gz
|
||||||
|
/lxml-4.7.1.tar.gz
|
||||||
|
/lxml-4.9.1.tar.gz
|
||||||
|
/lxml-4.9.2.tar.gz
|
||||||
|
/lxml-4.9.2-no-isoschematron.tar.gz
|
||||||
|
/lxml-4.9.2-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-4.9.3-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-4.9.4-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.1.0-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.2.0-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.2.1-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.3.0-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.3.1-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.3.2-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-5.4.0-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-6.0.0-no-isoschematron-rng.tar.gz
|
||||||
|
/lxml-6.0.1-no-isoschematron-rng.tar.gz
|
||||||
8
gating.yaml
Normal file
8
gating.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- fedora-*
|
||||||
|
decision_contexts:
|
||||||
|
- bodhi_update_push_testing
|
||||||
|
- bodhi_update_push_stable
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/smoke.functional}
|
||||||
28
get-lxml-source.sh
Executable file
28
get-lxml-source.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#! /bin/bash -ex
|
||||||
|
|
||||||
|
# Download a release of lxml (if missing) and remove the isoschematron module from it
|
||||||
|
|
||||||
|
version=$1
|
||||||
|
|
||||||
|
if [ -z "${version}" ]; then
|
||||||
|
echo "Usage: $0 VERSION" >& 2
|
||||||
|
echo "" >& 2
|
||||||
|
echo "example: $0 4.9.2" >& 2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
versionedname=lxml-${version}
|
||||||
|
orig_archive=${versionedname}.tar.gz
|
||||||
|
new_archive=${versionedname}-no-isoschematron-rng.tar.gz
|
||||||
|
|
||||||
|
if [ ! -e ${orig_archive} ]; then
|
||||||
|
wget -N https://files.pythonhosted.org/packages/source/l/lxml/${orig_archive}
|
||||||
|
fi
|
||||||
|
|
||||||
|
deleted_directory=lxml-${version}/src/lxml/isoschematron/resources/rng
|
||||||
|
|
||||||
|
# tar --delete does not operate on compressed archives, so do
|
||||||
|
# gz decompression explicitly
|
||||||
|
gzip --decompress ${orig_archive}
|
||||||
|
tar -v --delete -f ${orig_archive//.gz} ${deleted_directory}
|
||||||
|
gzip -cf ${orig_archive//.gz} > ${new_archive}
|
||||||
7
plans/etree-fromstring.py
Normal file
7
plans/etree-fromstring.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import lxml.etree as et
|
||||||
|
s = '<foo><bar baz="xyzzy">a<![CDATA[b]]>c</bar></foo>'
|
||||||
|
x = et.fromstring(s)
|
||||||
|
t = x.find('bar').text
|
||||||
|
print(t)
|
||||||
|
if t != 'abc':
|
||||||
|
raise Exception()
|
||||||
12
plans/smoke.fmf
Normal file
12
plans/smoke.fmf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
summary: Basic smoke test
|
||||||
|
discover:
|
||||||
|
how: shell
|
||||||
|
tests:
|
||||||
|
- name: /smoke/import-python-module
|
||||||
|
test: |
|
||||||
|
python3 -c 'import importlib as il; print(il.import_module("lxml"))'
|
||||||
|
- name: /smoke/etree-fromstring
|
||||||
|
test: |
|
||||||
|
python3 plans/etree-fromstring.py
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
94
python-lxml.spec
Normal file
94
python-lxml.spec
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
Name: python-lxml
|
||||||
|
Version: 6.0.1
|
||||||
|
Release: %autorelease
|
||||||
|
Summary: XML processing library combining libxml2/libxslt with the ElementTree API
|
||||||
|
|
||||||
|
# The lxml project is licensed under BSD-3-Clause
|
||||||
|
# Some code is derived from ElementTree and cElementTree
|
||||||
|
# thus using the MIT-CMU elementtree license
|
||||||
|
# .xsl schematron files are under the MIT license
|
||||||
|
License: BSD-3-Clause AND MIT-CMU AND MIT
|
||||||
|
URL: https://github.com/lxml/lxml
|
||||||
|
|
||||||
|
# We use the get-lxml-source.sh script to generate the tarball
|
||||||
|
# without the isoschematron RNG validation file under a problematic license.
|
||||||
|
# See: https://gitlab.com/fedora/legal/fedora-license-data/-/issues/154
|
||||||
|
Source0: lxml-%{version}-no-isoschematron-rng.tar.gz
|
||||||
|
Source1: get-lxml-source.sh
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: libxml2-devel
|
||||||
|
BuildRequires: libxslt-devel
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
|
||||||
|
# Some of the extras create a build dependency loop.
|
||||||
|
# - [cssselect] Requires cssselect BuildRequires lxml
|
||||||
|
# - [html5] Requires html5lib BuildRequires lxml
|
||||||
|
# - [htmlsoup] Requires beautifulsoup4 Requires lxml
|
||||||
|
# - [html_clean] Requires lxml-html-clean Requires lxml
|
||||||
|
# Hence we provide a bcond to disable the extras altogether.
|
||||||
|
# By default, the extras are disabled in RHEL, to avoid dependencies.
|
||||||
|
%bcond extras %{undefined rhel}
|
||||||
|
|
||||||
|
%global _description \
|
||||||
|
lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It\
|
||||||
|
provides safe and convenient access to these libraries using the ElementTree It\
|
||||||
|
extends the ElementTree API significantly to offer support for XPath, RelaxNG,\
|
||||||
|
XML Schema, XSLT, C14N and much more.
|
||||||
|
|
||||||
|
%description %{_description}
|
||||||
|
|
||||||
|
%package -n python3-lxml
|
||||||
|
Summary: %{summary}
|
||||||
|
%if %{with extras}
|
||||||
|
Suggests: python3-lxml+cssselect
|
||||||
|
Suggests: python3-lxml+html5
|
||||||
|
Suggests: python3-lxml+htmlsoup
|
||||||
|
Suggests: python3-lxml+html_clean
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n python3-lxml %{_description}
|
||||||
|
|
||||||
|
Python 3 version.
|
||||||
|
|
||||||
|
%if %{with extras}
|
||||||
|
%pyproject_extras_subpkg -n python3-lxml cssselect html5 htmlsoup html_clean
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n lxml-%{version} -p1
|
||||||
|
# Don't run html5lib tests --without extras
|
||||||
|
%{!?without_extras:rm src/lxml/html/tests/test_html5parser.py}
|
||||||
|
|
||||||
|
# Remove limit for version of Cython
|
||||||
|
sed -i "s/Cython.*/Cython/" requirements.txt
|
||||||
|
sed -i 's/"Cython.*",/"Cython",/' pyproject.toml
|
||||||
|
|
||||||
|
%generate_buildrequires
|
||||||
|
%pyproject_buildrequires -x source%{?with_extras:,cssselect,html5,htmlsoup,html_clean}
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Remove pregenerated Cython C sources
|
||||||
|
# We need to do this after %%pyproject_buildrequires because setup.py errors
|
||||||
|
# without Cython and without the .c files.
|
||||||
|
find -type f -name '*.c' -print -delete >&2
|
||||||
|
export WITH_CYTHON=true
|
||||||
|
%pyproject_wheel
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
%pyproject_save_files lxml
|
||||||
|
|
||||||
|
%check
|
||||||
|
# The tests assume inplace build, so we copy the built library to source-dir.
|
||||||
|
# If not done that, Python can either import the tests or the extension modules, but not both.
|
||||||
|
cp -a build/lib.%{python3_platform}-*/* src/
|
||||||
|
# The options are: verbose, unit, functional
|
||||||
|
%{python3} test.py -vuf
|
||||||
|
|
||||||
|
%files -n python3-lxml -f %{pyproject_files}
|
||||||
|
%license doc/licenses/BSD.txt doc/licenses/elementtree.txt
|
||||||
|
%doc README.rst
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
%autochangelog
|
||||||
Loading…
Reference in New Issue
Block a user