summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-misc/s3cmd/files/s3cmd-2.1.0-fix-compatibility-with-Python-3.9.patch57
-rw-r--r--net-misc/s3cmd/s3cmd-2.1.0-r1.ebuild25
2 files changed, 82 insertions, 0 deletions
diff --git a/net-misc/s3cmd/files/s3cmd-2.1.0-fix-compatibility-with-Python-3.9.patch b/net-misc/s3cmd/files/s3cmd-2.1.0-fix-compatibility-with-Python-3.9.patch
new file mode 100644
index 000000000000..92d90c6df9b4
--- /dev/null
+++ b/net-misc/s3cmd/files/s3cmd-2.1.0-fix-compatibility-with-Python-3.9.patch
@@ -0,0 +1,57 @@
+From 4806955e05011c3d981e91c12a95d84ab3aa65d4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Budai?= <obudai@redhat.com>
+Date: Fri, 2 Oct 2020 14:24:09 +0200
+Subject: [PATCH] fix compatibility with Python 3.9
+
+getchildren() method was removed from the ElementTree and Element classes in
+Python 3.9. See the release notes:
+
+https://docs.python.org/3.9/whatsnew/3.9.html#removed
+---
+ S3/Exceptions.py | 2 +-
+ S3/Utils.py | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/S3/Exceptions.py b/S3/Exceptions.py
+index d12c5c5..2710d82 100644
+--- a/S3/Exceptions.py
++++ b/S3/Exceptions.py
+@@ -126,7 +126,7 @@ class S3Error (S3Exception):
+ if not error_node.tag == "Error":
+ error_node = tree.find(".//Error")
+ if error_node is not None:
+- for child in error_node.getchildren():
++ for child in error_node:
+ if child.text != "":
+ debug("ErrorXML: " + child.tag + ": " + repr(child.text))
+ info[child.tag] = child.text
+diff --git a/S3/Utils.py b/S3/Utils.py
+index b9f4fd5..1f66f6c 100644
+--- a/S3/Utils.py
++++ b/S3/Utils.py
+@@ -64,9 +64,9 @@ def parseNodes(nodes):
+ retval = []
+ for node in nodes:
+ retval_item = {}
+- for child in node.getchildren():
++ for child in node:
+ name = decode_from_s3(child.tag)
+- if child.getchildren():
++ if len(child):
+ retval_item[name] = parseNodes([child])
+ else:
+ found_text = node.findtext(".//%s" % child.tag)
+@@ -122,8 +122,8 @@ __all__.append("getListFromXml")
+
+ def getDictFromTree(tree):
+ ret_dict = {}
+- for child in tree.getchildren():
+- if child.getchildren():
++ for child in tree:
++ if len(child):
+ ## Complex-type child. Recurse
+ content = getDictFromTree(child)
+ else:
+--
+2.26.3
+
diff --git a/net-misc/s3cmd/s3cmd-2.1.0-r1.ebuild b/net-misc/s3cmd/s3cmd-2.1.0-r1.ebuild
new file mode 100644
index 000000000000..8fd4a4deed4d
--- /dev/null
+++ b/net-misc/s3cmd/s3cmd-2.1.0-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_7 python3_8 python3_9 )
+PYTHON_REQ_USE="xml"
+
+inherit distutils-r1
+
+DESCRIPTION="Command line client for Amazon S3"
+HOMEPAGE="https://s3tools.org/s3cmd"
+SRC_URI="mirror://sourceforge/s3tools/${P/_/-}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ia64 ~x86 ~amd64-linux ~x64-macos"
+
+RDEPEND="
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-magic[${PYTHON_USEDEP}]"
+
+S="${WORKDIR}/${P/_/-}"
+
+PATCHES=( "${FILESDIR}/${P}-fix-compatibility-with-Python-3.9.patch" )