beautifulsoup: update to version 4.12.0 (#8669)

Last version using setuptools.

Newer ones have some dependencies not yet in HaikuPorts.
This commit is contained in:
OscarL
2023-05-18 08:40:41 -03:00
committed by GitHub
parent e38ef8f7a6
commit b15bce4681
2 changed files with 97 additions and 69 deletions

View File

@@ -0,0 +1,97 @@
SUMMARY="Python library for iterating, searching, and modifying an HTML/XML parse tree"
DESCRIPTION="
Beautiful Soup is a Python library designed for quick turnaround projects like \
screen-scraping. Three features make it powerful:
* Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, \
searching, and modifying a parse tree: a toolkit for dissecting a document and \
extracting what you need. It doesn't take much code to write an application
* Beautiful Soup automatically converts incoming documents to Unicode and outgoing \
documents to UTF-8. You don't have to think about encodings, unless the document \
doesn't specify an encoding and Beautiful Soup can't detect one. Then you just have \
to specify the original encoding.
* Beautiful Soup sits on top of popular Python parsers like lxml and html5lib, allowing \
you to try out different parsing strategies or trade speed for flexibility.
Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. \
You can tell it \"Find all the links\", or \"Find all the links of class externalLink\", \
or \"Find all the links whose urls match 'foo.com'\", or \"Find the table heading that's \
got bold text, then give me that text.\""
HOMEPAGE="https://www.crummy.com/software/BeautifulSoup/
https://pypi.python.org/pypi/beautifulsoup4/
https://bugs.launchpad.net/beautifulsoup/"
COPYRIGHT="2004-2023 Leonard Richardson"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://pypi.org/packages/source/b/beautifulsoup4/beautifulsoup4-$portVersion.tar.gz"
CHECKSUM_SHA256="c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"
SOURCE_DIR="beautifulsoup4-$portVersion"
ARCHITECTURES="any"
PROVIDES="
$portName = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
PYTHON_PACKAGES=(python38 python39 python310)
PYTHON_VERSIONS=(3.8 3.9 3.10)
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
eval "PROVIDES_${pythonPackage}=\"
${portName}_$pythonPackage = $portVersion
\""
eval "REQUIRES_$pythonPackage=\"
haiku
soupsieve_$pythonPackage
cmd:python$pythonVersion
\""
BUILD_REQUIRES+="
setuptools_$pythonPackage
soupsieve_$pythonPackage
"
BUILD_PREREQUIRES+="
cmd:python$pythonVersion
"
done
# We'll move this inside the loop above once we drop 3.8
TEST_REQUIRES="
html5lib_python39
lxml_python39
pytest_python39
"
INSTALL()
{
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
python=python$pythonVersion
installLocation=$prefix/lib/$python/vendor-packages/
export PYTHONPATH=$installLocation:$PYTHONPATH
mkdir -p $installLocation
rm -rf build
$python setup.py build install \
--root=/ --prefix=$prefix
packageEntries $pythonPackage \
$prefix/lib/python*
done
}
TEST()
{
# We get 4 lxml related failures
python3 -m pytest bs4 || true
}

View File

@@ -1,69 +0,0 @@
SUMMARY="Python library for iterating, searching, and modifying an HTML/XML parse tree"
DESCRIPTION="
Beautiful Soup is a Python HTML/XML parser designed for quick
turnaround projects like screen-scraping.
Two features make it powerful:
it won't choke if you give it bad markup and it provides
a few simple methods and Pythonic idioms for navigating and
searching a parse tree: a toolkit for dissecting a document and
extracting what you need"
HOMEPAGE="https://bugs.launchpad.net/beautifulsoup/
https://pypi.python.org/pypi/beautifulsoup4
https://www.crummy.com/software/BeautifulSoup/bs4/"
COPYRIGHT="2004-2015 Leonard Richardson
2006-2013 James Graham and other contributors"
LICENSE="MIT"
REVISION="3"
SOURCE_URI="https://pypi.org/packages/source/b/beautifulsoup4/beautifulsoup4-$portVersion.tar.gz"
CHECKSUM_SHA256="84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"
SOURCE_DIR="beautifulsoup4-$portVersion"
ARCHITECTURES="any"
PROVIDES="
$portName = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
PYTHON_PACKAGES=(python38 python39 python310)
PYTHON_VERSIONS=(3.8 3.9 3.10)
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
eval "PROVIDES_${pythonPackage}=\"\
${portName}_$pythonPackage = $portVersion\
\"; \
REQUIRES_$pythonPackage=\"\
haiku\n\
cmd:python$pythonVersion\
\""
BUILD_REQUIRES="$BUILD_REQUIRES
setuptools_$pythonPackage"
BUILD_PREREQUIRES="$BUILD_PREREQUIRES
cmd:python$pythonVersion"
done
INSTALL()
{
for i in "${!PYTHON_PACKAGES[@]}"; do
pythonPackage=${PYTHON_PACKAGES[i]}
pythonVersion=${PYTHON_VERSIONS[$i]}
python=python$pythonVersion
installLocation=$prefix/lib/$python/vendor-packages/
export PYTHONPATH=$installLocation:$PYTHONPATH
mkdir -p $installLocation
rm -rf build
$python setup.py build install \
--root=/ --prefix=$prefix
packageEntries $pythonPackage \
$prefix/lib/python*
done
}