From 794598350e101bdff60a21ba1672c942a7ac96ae Mon Sep 17 00:00:00 2001 From: Tomas Mozes Date: Mon, 8 Jan 2018 07:54:54 +0100 Subject: net-analyzer/linkchecker: fix using newer dev-python/requests Closes: #6791 Closes: https://bugs.gentoo.org/643688 Package-Manager: Portage-2.3.18, Repoman-2.3.6 --- .../files/linkchecker-9.3.1-requests.patch | 46 +++++++++++++ .../linkchecker/linkchecker-9.3.1-r1.ebuild | 76 ++++++++++++++++++++++ net-analyzer/linkchecker/linkchecker-9.3.1.ebuild | 75 --------------------- 3 files changed, 122 insertions(+), 75 deletions(-) create mode 100644 net-analyzer/linkchecker/files/linkchecker-9.3.1-requests.patch create mode 100644 net-analyzer/linkchecker/linkchecker-9.3.1-r1.ebuild delete mode 100644 net-analyzer/linkchecker/linkchecker-9.3.1.ebuild (limited to 'net-analyzer') diff --git a/net-analyzer/linkchecker/files/linkchecker-9.3.1-requests.patch b/net-analyzer/linkchecker/files/linkchecker-9.3.1-requests.patch new file mode 100644 index 000000000000..56c57fa37997 --- /dev/null +++ b/net-analyzer/linkchecker/files/linkchecker-9.3.1-requests.patch @@ -0,0 +1,46 @@ +From 9b12b5d66fa9b832f4d9e19a0b9dcb92607ee3e5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= +Date: Mon, 2 Oct 2017 20:18:54 -0400 +Subject: [PATCH] workaround new limitation in requests + +newer requests do not expose the internal SSL socket object so we +cannot verify certificates. there was work to allow custom +verification routines which we could use, but this never finished: + +https://github.com/shazow/urllib3/pull/257 + +so right now, just treat missing socket information as if the cert was +missing. + +Closes: #76 +--- + linkcheck/checker/httpurl.py | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/linkcheck/checker/httpurl.py b/linkcheck/checker/httpurl.py +index 161619c5..bde77c70 100644 +--- a/linkcheck/checker/httpurl.py ++++ b/linkcheck/checker/httpurl.py +@@ -194,6 +194,10 @@ def _get_ssl_sock(self): + """Get raw SSL socket.""" + assert self.scheme == u"https", self + raw_connection = self.url_connection.raw._connection ++ if not raw_connection: ++ # this happens with newer requests versions: ++ # https://github.com/linkcheck/linkchecker/issues/76 ++ return None + if raw_connection.sock is None: + # sometimes the socket is not yet connected + # see https://github.com/kennethreitz/requests/issues/1966 +@@ -204,7 +208,10 @@ def _add_ssl_info(self): + """Add SSL cipher info.""" + if self.scheme == u'https': + sock = self._get_ssl_sock() +- if hasattr(sock, 'cipher'): ++ if not sock: ++ log.debug(LOG_CHECK, "cannot extract SSL certificate from connection") ++ self.ssl_cert = None ++ elif hasattr(sock, 'cipher'): + self.ssl_cert = sock.getpeercert() + else: + # using pyopenssl diff --git a/net-analyzer/linkchecker/linkchecker-9.3.1-r1.ebuild b/net-analyzer/linkchecker/linkchecker-9.3.1-r1.ebuild new file mode 100644 index 000000000000..109499f785bb --- /dev/null +++ b/net-analyzer/linkchecker/linkchecker-9.3.1-r1.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite?" + +inherit bash-completion-r1 distutils-r1 eutils multilib + +DESCRIPTION="Check websites for broken links" +HOMEPAGE="https://github.com/linkcheck/linkchecker" +SRC_URI="https://github.com/linkcheck/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-solaris" +IUSE="gnome sqlite X" + +RDEPEND=" + virtual/python-dnspython[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + gnome? ( dev-python/pygtk:2[${PYTHON_USEDEP}] ) + X? ( + dev-python/PyQt4[X,help,${PYTHON_USEDEP}] + dev-python/qscintilla-python[qt4(+),${PYTHON_USEDEP}] + )" +DEPEND=" + X? ( + dev-qt/qthelp:4 + dev-python/markdown2[${PYTHON_USEDEP}] + )" + +RESTRICT="test" + +python_prepare_all() { + local PATCHES=( + "${FILESDIR}/${PN}-9.2-unbundle.patch" + "${FILESDIR}/${PN}-9.3-bash-completion.patch" + "${FILESDIR}/${PN}-9.3-desktop.patch" + "${FILESDIR}/${PN}-9.3.1-build-fix.patch" + "${FILESDIR}/${PN}-9.3.1-requests.patch" + ) + + distutils-r1_python_prepare_all +} + +python_install_all() { + DOCS=( + doc/upgrading.txt + doc/python3.txt + doc/changelog.txt + doc/development.txt + ) + distutils-r1_python_install_all + if ! use X; then + delete_gui() { + rm -rf \ + "${ED}"/usr/bin/linkchecker-gui* \ + "${ED}"/$(python_get_sitedir)/linkcheck/gui* || die + } + python_foreach_impl delete_gui + rm -f "${ED}"/usr/share/applications/linkchecker*.desktop || die + fi + + rm -f "${ED}"/usr/share/applications/linkchecker.desktop || die + + newicon doc/html/logo64x64.png ${PN}.png + + docinto html + dodoc doc/html/* + newbashcomp config/linkchecker-completion ${PN} + optfeature "bash-completion support" dev-python/argcomplete[${PYTHON_USEDEP}] + optfeature "Virus scanning" app-antivirus/clamav + optfeature "Geo IP support" dev-python/geoip-python[${PYTHON_USEDEP}] +} diff --git a/net-analyzer/linkchecker/linkchecker-9.3.1.ebuild b/net-analyzer/linkchecker/linkchecker-9.3.1.ebuild deleted file mode 100644 index 512db84e331a..000000000000 --- a/net-analyzer/linkchecker/linkchecker-9.3.1.ebuild +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="sqlite?" - -inherit bash-completion-r1 distutils-r1 eutils multilib - -DESCRIPTION="Check websites for broken links" -HOMEPAGE="https://github.com/linkcheck/linkchecker" -SRC_URI="https://github.com/linkcheck/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-solaris" -IUSE="gnome sqlite X" - -RDEPEND=" - virtual/python-dnspython[${PYTHON_USEDEP}] -