From 16ab96745e705a088a71a99f2e3503c11132054a Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Tue, 3 Jan 2012 04:18:13 +0000 Subject: Version bump for bug 393639. Thanks to Johan Bergström and Arfrever. Includes patch by sping. Fails tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (Portage version: 2.2.0_alpha84/cvs/Linux x86_64) --- dev-python/feedparser/ChangeLog | 9 ++- dev-python/feedparser/feedparser-5.1.ebuild | 53 +++++++++++++++ .../feedparser/files/feedparser-5.1-sgmllib.patch | 78 ++++++++++++++++++++++ 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 dev-python/feedparser/feedparser-5.1.ebuild create mode 100644 dev-python/feedparser/files/feedparser-5.1-sgmllib.patch (limited to 'dev-python') diff --git a/dev-python/feedparser/ChangeLog b/dev-python/feedparser/ChangeLog index 74e5bf1914a9..48830d4b0ae3 100644 --- a/dev-python/feedparser/ChangeLog +++ b/dev-python/feedparser/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-python/feedparser # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/feedparser/ChangeLog,v 1.32 2012/01/02 05:28:20 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/feedparser/ChangeLog,v 1.33 2012/01/03 04:18:13 floppym Exp $ + +*feedparser-5.1 (03 Jan 2012) + + 03 Jan 2012; Mike Gilbert +feedparser-5.1.ebuild, + +files/feedparser-5.1-sgmllib.patch: + Version bump for bug 393639. Thanks to Johan Bergström and Arfrever. Includes + patch by sping. Fails tests. 02 Jan 2012; Mike Gilbert Manifest: Fix manifest diff --git a/dev-python/feedparser/feedparser-5.1.ebuild b/dev-python/feedparser/feedparser-5.1.ebuild new file mode 100644 index 000000000000..00b36f377834 --- /dev/null +++ b/dev-python/feedparser/feedparser-5.1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/feedparser/feedparser-5.1.ebuild,v 1.1 2012/01/03 04:18:13 floppym Exp $ + +EAPI="4" +SUPPORT_PYTHON_ABIS="1" +PYTHON_TESTS_RESTRICTED_ABIS="*-jython" +PYTHON_TESTS_FAILURES_TOLERANT_ABIS="*" + +inherit distutils eutils + +DESCRIPTION="Parse RSS and Atom feeds in Python" +HOMEPAGE="http://code.google.com/p/feedparser/ http://pypi.python.org/pypi/feedparser" +SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.bz2" + +# sgmllib is licensed under PSF-2. +LICENSE="BSD-2 PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="" + +DEPEND="dev-python/setuptools" +RDEPEND="" + +DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES="1" +PYTHON_MODNAME="feedparser.py _feedparser_sgmllib.py" + +src_prepare() { + mv feedparser/sgmllib3.py feedparser/_feedparser_sgmllib.py || die "Renaming sgmllib3.py failed" + epatch "${FILESDIR}/${P}-sgmllib.patch" + + sed -e "/import feedparser/isys.path.insert(0, '../build/lib')" -i feedparser/feedparsertest.py + + distutils_src_prepare + + preparation() { + if [[ "${PYTHON_ABI}" == 3.* ]]; then + 2to3-${PYTHON_ABI} -nw --no-diffs feedparser/feedparsertest.py + else + # Avoid SyntaxErrors with Python 2. + echo "raise ImportError" > feedparser/_feedparser_sgmllib.py + fi + } + python_execute_function -s preparation +} + +src_test() { + testing() { + cd feedparser || return 1 + "$(PYTHON)" feedparsertest.py + } + python_execute_function -s testing +} diff --git a/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch b/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch new file mode 100644 index 000000000000..63c12ba0c362 --- /dev/null +++ b/dev-python/feedparser/files/feedparser-5.1-sgmllib.patch @@ -0,0 +1,78 @@ +From 812793c07d3202d3f5bc39091aec2e7071d000c8 Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping +Date: Sun, 1 Jan 2012 19:30:57 +0100 +Subject: [PATCH] Use shipped sgmllib for Python 3.x + +--- + feedparser/feedparser.py | 19 +++---------------- + setup.py | 2 +- + 2 files changed, 4 insertions(+), 17 deletions(-) + +diff --git a/feedparser/feedparser.py b/feedparser/feedparser.py +index 8275c29..9a8a053 100644 +--- a/feedparser/feedparser.py ++++ b/feedparser/feedparser.py +@@ -204,17 +204,9 @@ else: + try: + import sgmllib + except ImportError: +- # This is probably Python 3, which doesn't include sgmllib anymore +- _SGML_AVAILABLE = 0 ++ import _feedparser_sgmllib as sgmllib + +- # Mock sgmllib enough to allow subclassing later on +- class sgmllib(object): +- class SGMLParser(object): +- def goahead(self, i): +- pass +- def parse_starttag(self, i): +- pass +-else: ++if True: + _SGML_AVAILABLE = 1 + + # sgmllib defines a number of module-level regular expressions that are +@@ -2520,9 +2512,6 @@ class _RelativeURIResolver(_BaseHTMLProcessor): + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def _resolveRelativeURIs(htmlSource, baseURI, encoding, _type): +- if not _SGML_AVAILABLE: +- return htmlSource +- + p = _RelativeURIResolver(baseURI, encoding, _type) + p.feed(htmlSource) + return p.output() +@@ -2803,8 +2792,6 @@ class _HTMLSanitizer(_BaseHTMLProcessor): + + + def _sanitizeHTML(htmlSource, encoding, _type): +- if not _SGML_AVAILABLE: +- return htmlSource + p = _HTMLSanitizer(encoding, _type) + htmlSource = htmlSource.replace('