aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Roy <julien@jroy.ca>2024-05-15 15:40:16 -0400
committerJulien Roy <julien@jroy.ca>2024-05-15 15:40:16 -0400
commit67fe63d3932bb4f914cfd4e82d218c847a72fc2a (patch)
tree91224b05567387979af7967b16d26f6c1a3ab222
parent6ad0c5a9ecde00c9c801c2c7f56146e32d2a779f (diff)
downloadMrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.tar.gz
MrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.tar.bz2
MrRoy-Overlay-67fe63d3932bb4f914cfd4e82d218c847a72fc2a.zip
dev-python/multipart: new package, add 0.2.4
Signed-off-by: Julien Roy <julien@jroy.ca>
-rw-r--r--dev-python/multipart/Manifest1
-rw-r--r--dev-python/multipart/files/multipart-urlencoded-test.patch35
-rw-r--r--dev-python/multipart/metadata.xml20
-rw-r--r--dev-python/multipart/multipart-0.2.4.ebuild28
4 files changed, 84 insertions, 0 deletions
diff --git a/dev-python/multipart/Manifest b/dev-python/multipart/Manifest
new file mode 100644
index 0000000..5ed6fce
--- /dev/null
+++ b/dev-python/multipart/Manifest
@@ -0,0 +1 @@
+DIST multipart-0.2.4.tar.gz 22300 BLAKE2B 02e14136559b4af50938b4ab025f84055e8aa51d97e0f3415a6b6b9986ba72dd7226080592a8d603a94e2f4598ef7d0a4772e9bbef01121e10fce5cf483cd5e7 SHA512 8df8bad1f68d41e841e407f276745e7cb7352e9fb8c5d43569a7e5c4d8c0ae429e440933017244d01182271a12a6f43a4d15e353b1082df9563cbf9d6eb2c7f6
diff --git a/dev-python/multipart/files/multipart-urlencoded-test.patch b/dev-python/multipart/files/multipart-urlencoded-test.patch
new file mode 100644
index 0000000..e47f692
--- /dev/null
+++ b/dev-python/multipart/files/multipart-urlencoded-test.patch
@@ -0,0 +1,35 @@
+From 4d4ac6b79c453918ebf40c690e8d57d982ee840b Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@debian.org>
+Date: Fri, 9 Apr 2021 16:54:49 +0100
+Subject: [PATCH] Don't test semicolon separators in urlencoded data
+
+Python no longer accepts ";" as a separator for `urllib.parse.parse_qs`
+by default (https://bugs.python.org/issue42967), causing the multipart
+test suite to fail with recent Python versions (3.6.13, 3.7.10, 3.8.8,
+3.9.2, 3.10.0a6).
+
+While we could detect the availability of the `separator` argument and
+pass it, since `application/x-www-form-urlencoded` data in `POST` and
+`PUT` requests is probably not an issue for web cache poisoning, the
+current HTML spec seems clear that only "&" should be considered, so
+follow along with Python's API change.
+---
+ test/test_multipart.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/test/test_multipart.py b/test/test_multipart.py
+index 38c69d1..6fe864f 100644
+--- a/test/test_multipart.py
++++ b/test/test_multipart.py
+@@ -233,10 +233,9 @@ def test_empty(self):
+ def test_urlencoded(self):
+ for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'):
+ self.env['CONTENT_TYPE'] = ctype
+- forms, files = self.parse('a=b&c=d;e=f')
++ forms, files = self.parse('a=b&c=d')
+ self.assertEqual(forms['a'], 'b')
+ self.assertEqual(forms['c'], 'd')
+- self.assertEqual(forms['e'], 'f')
+
+ def test_urlencoded_latin1(self):
+ for ctype in ('application/x-www-form-urlencoded', 'application/x-url-encoded'):
diff --git a/dev-python/multipart/metadata.xml b/dev-python/multipart/metadata.xml
new file mode 100644
index 0000000..f59dd1e
--- /dev/null
+++ b/dev-python/multipart/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Julien Roy</name>
+ <email>julien@jroy.ca</email>
+ </maintainer>
+ <longdescription>
+ This module provides a parser for the multipart/form-data format. It can read from a file, a socket or a WSGI environment. The parser can be used to replace cgi.FieldStorage to work around its limitations.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <name>Marcel Hellkamp</name>
+ <email>marc@gsites.de</email>
+ </maintainer>
+ <bugs-to>https://github.com/defnull/multipart/issues</bugs-to>
+ <remote-id type="github">defnull/multipart</remote-id>
+ <remote-id type="pypi">multipart</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/multipart/multipart-0.2.4.ebuild b/dev-python/multipart/multipart-0.2.4.ebuild
new file mode 100644
index 0000000..0d12882
--- /dev/null
+++ b/dev-python/multipart/multipart-0.2.4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..11} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Multipart parser for Python 3"
+HOMEPAGE="https://github.com/defnull/multipart"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+distutils_enable_tests unittest
+
+PATCHES=(
+ # Merged in master but no release since, so backporting it
+ "${FILESDIR}/multipart-urlencoded-test.patch"
+)
+
+src_test() {
+ cd "${S}/test" || die
+ distutils-r1_src_test
+}