[PATCH] gnu: linkchecker: Update to 10.0.1.

  • Done
  • quality assurance status badge
Details
2 participants
  • Arun Isaac
  • Xinglu Chen
Owner
unassigned
Submitted by
Arun Isaac
Severity
normal
A
A
Arun Isaac wrote on 18 Jun 2021 14:00
(address . guix-patches@gnu.org)(name . Arun Isaac)(address . arunisaac@systemreboot.net)
20210618120023.14607-1-arunisaac@systemreboot.net
* gnu/packages/web.scm (linkchecker): Update to 10.0.1.
[source]: Remove patches.
[inputs]: Add python-beautifulsoup4. Replace python2-dnspython-1.16,
python2-pyxdg and python2-requests with python-dnspython, python-pyxdg and
python-requests respectively.
[native-inputs]: Replace python2-pytest, python2-miniboa and
python2-parameterized with python-pytest, python-miniboa and
python-parameterized respectively.
[arguments]: Use python 3. Replace check phase instead of deleting the
standard phase and adding a custom one. Use add-installed-pythonpath instead
of setting PYTHONPATH directly.
[home-page]: Update URI.
* gnu/packages/patches/linkchecker-tests-require-network.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Unregister it.
---
gnu/local.mk | 1 -
.../linkchecker-tests-require-network.patch | 182 ------------------
gnu/packages/web.scm | 47 ++---
3 files changed, 16 insertions(+), 214 deletions(-)
delete mode 100644 gnu/packages/patches/linkchecker-tests-require-network.patch

Toggle diff (282 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 918c8515ac..b2b36d860a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1383,7 +1383,6 @@ dist_patch_DATA = \
%D%/packages/patches/lierolibre-remove-arch-warning.patch \
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
%D%/packages/patches/linbox-fix-pkgconfig.patch \
- %D%/packages/patches/linkchecker-tests-require-network.patch \
%D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
diff --git a/gnu/packages/patches/linkchecker-tests-require-network.patch b/gnu/packages/patches/linkchecker-tests-require-network.patch
deleted file mode 100644
index f3e488cec2..0000000000
--- a/gnu/packages/patches/linkchecker-tests-require-network.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From f24c88a0732024028fffe0372039a847e91722ea Mon Sep 17 00:00:00 2001
-From: Christopher Baines <mail@cbaines.net>
-Date: Tue, 1 Jan 2019 22:36:29 +0000
-Subject: [PATCH] Mark more tests that require the network
-
-I believe all these tests require the network, at least they seem to
-fail if it's I run them without connecting my computer to the web.
-
-I'm looking at this as part of packaging linkchecker for GNU Guix,
-where the package is build and the tests are run in a isolated
-environment, intentionally without network access, to avoid issues
-with non-reproducible package builds.
----
- tests/checker/test_http.py | 2 ++
- tests/checker/test_http_misc.py | 2 ++
- tests/checker/test_http_redirect.py | 2 ++
- tests/checker/test_httpbin.py | 5 +++++
- tests/checker/test_misc.py | 4 ++++
- tests/checker/test_whitespace.py | 3 +++
- 6 files changed, 18 insertions(+)
-
-diff --git a/tests/checker/test_http.py b/tests/checker/test_http.py
-index e4c1e097..8a8af567 100644
---- a/tests/checker/test_http.py
-+++ b/tests/checker/test_http.py
-@@ -20,6 +20,7 @@
-
- import pytest
-
-+from tests import need_network
- from .httpserver import HttpServerTest, CookieRedirectHttpRequestHandler
-
- class TestHttp (HttpServerTest):
-@@ -29,6 +30,7 @@ def __init__(self, methodName='runTest'):
- super(TestHttp, self).__init__(methodName=methodName)
- self.handler = CookieRedirectHttpRequestHandler
-
-+ @need_network
- def test_html (self):
- confargs = dict(recursionlevel=1)
- self.file_test("http.html", confargs=confargs)
-diff --git a/tests/checker/test_http_misc.py b/tests/checker/test_http_misc.py
-index 9922d85f..c6b6afdb 100644
---- a/tests/checker/test_http_misc.py
-+++ b/tests/checker/test_http_misc.py
-@@ -20,11 +20,13 @@
- import os
- import sys
- from .httpserver import HttpServerTest
-+from tests import need_network
- from linkcheck.network import iputil
-
- class TestHttpMisc (HttpServerTest):
- """Test http:// misc link checking."""
-
-+ @need_network
- def test_html (self):
- self.swf_test()
- self.obfuscate_test()
-diff --git a/tests/checker/test_http_redirect.py b/tests/checker/test_http_redirect.py
-index f212d98e..2253a70d 100644
---- a/tests/checker/test_http_redirect.py
-+++ b/tests/checker/test_http_redirect.py
-@@ -17,6 +17,7 @@
- """
- Test http checking.
- """
-+from tests import need_network
- from .httpserver import HttpServerTest, CookieRedirectHttpRequestHandler
-
- class TestHttpRedirect (HttpServerTest):
-@@ -26,6 +27,7 @@ def __init__(self, methodName='runTest'):
- super(TestHttpRedirect, self).__init__(methodName=methodName)
- self.handler = CookieRedirectHttpRequestHandler
-
-+ @need_network
- def test_redirect (self):
- self.redirect1()
- self.redirect2()
-diff --git a/tests/checker/test_httpbin.py b/tests/checker/test_httpbin.py
-index 0319c2f6..4c8fa846 100644
---- a/tests/checker/test_httpbin.py
-+++ b/tests/checker/test_httpbin.py
-@@ -18,6 +18,7 @@
- Test http stuff with httpbin.org.
- """
- import re
-+from tests import need_network
- from . import LinkCheckTest
-
-
-@@ -30,6 +31,7 @@ def get_httpbin_url(path):
- class TestHttpbin(LinkCheckTest):
- """Test http:// link redirection checking."""
-
-+ @need_network
- def test_http_link(self):
- linkurl = u"http://www.example.com"
- nlinkurl = self.norm(linkurl)
-@@ -48,6 +50,7 @@ def test_http_link(self):
- ]
- self.direct(url, resultlines, recursionlevel=1)
-
-+ @need_network
- def test_basic_auth(self):
- user = u"testuser"
- password = u"testpassword"
-@@ -67,6 +70,7 @@ def test_basic_auth(self):
- ]
- self.direct(url, resultlines, confargs=confargs)
-
-+ @need_network
- def test_http_refresh_header(self):
- linkurl = u"http://www.example.com"
- nlinkurl = self.norm(linkurl)
-@@ -85,6 +89,7 @@ def test_http_refresh_header(self):
- ]
- self.direct(url, resultlines, recursionlevel=1)
-
-+ @need_network
- def test_http_content_location_header(self):
- linkurl = u"http://www.example.com"
- nlinkurl = self.norm(linkurl)
-diff --git a/tests/checker/test_misc.py b/tests/checker/test_misc.py
-index 2e4cfd07..f9591f9d 100644
---- a/tests/checker/test_misc.py
-+++ b/tests/checker/test_misc.py
-@@ -17,6 +17,7 @@
- """
- Test miscellaneous html tag parsing and URL types
- """
-+from tests import need_network
- from . import LinkCheckTest
-
-
-@@ -25,15 +26,18 @@ class TestMisc (LinkCheckTest):
- Test misc link types.
- """
-
-+ @need_network
- def test_misc (self):
- self.file_test("misc.html")
-
- def test_html5 (self):
- self.file_test("html5.html")
-
-+ @need_network
- def test_archive (self):
- self.file_test("archive.html")
-
-+ @need_network
- def test_itms_services(self):
- url = u"itms-services:?action=download-manifest&url=http://www.example.com/"
- resultlines = [
-diff --git a/tests/checker/test_whitespace.py b/tests/checker/test_whitespace.py
-index 609c108a..fc2727d6 100644
---- a/tests/checker/test_whitespace.py
-+++ b/tests/checker/test_whitespace.py
-@@ -17,6 +17,7 @@
- """
- Test whitespace handling.
- """
-+from tests import need_network
- from . import LinkCheckTest
-
-
-@@ -25,6 +26,7 @@ class TestWhitespace (LinkCheckTest):
- Test whitespace in URLs.
- """
-
-+ @need_network
- def test_leading_whitespace (self):
- # Leading whitespace
- url = u" http://www.example.org/"
-@@ -50,6 +52,7 @@ def test_leading_whitespace (self):
- ]
- self.direct(url, resultlines)
-
-+ @need_network
- def test_trailing_whitespace (self):
- # Trailing whitespace
- url = u"http://www.example.org/ "
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index d1f1d0f755..0fc2d7e441 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -6578,51 +6578,36 @@ Instagram and YouTube.")
(define-public linkchecker
(package
(name "linkchecker")
- (version "9.4.0")
+ (version "10.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/linkchecker/linkchecker")
(commit (string-append "v" version))))
- (patches
- (search-patches "linkchecker-tests-require-network.patch"))
(file-name (git-file-name name version))
(sha256
(base32
- "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
+ "1j97dc9a4yhpscwadhv5dxp7036pnrxiaky18l8ddr3pvxdjvkxs"))))
(build-system python-build-system)
(inputs
- `(("python2-dnspython" ,python2-dnspython-1.16)
- ("python2-pyxdg" ,python2-pyxdg)
- ("python2-requests" ,python2-requests)))
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-dnspython" ,python-dnspython)
+ ("python-pyxdg" ,python-pyxdg)
+ ("python-requests" ,python-requests)))
(native-inputs
`(("gettext" ,gettext-minimal)
- ("python2-pytest" ,python2-pytest)
- ("python2-miniboa" ,python2-miniboa)
- ("python2-parameterized" ,python2-parameterized)))
+ ("python-pytest" ,python-pytest)
+ ("python-miniboa" ,python-miniboa)
+ ("python-parameterized" ,python-parameterized)))
(arguments
- `(#:python ,python-2
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- ;; Move the 'check phase to after 'install, so that the installed
- ;; library can be used
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; Set PYTHONPATH so that the installed linkchecker is used
- (setenv "PYTHONPATH"
- (string-append out "/lib/python2.7/site-packages"
- ":"
- (getenv "PYTHONPATH")))
- ;; Remove this directory to avoid it being used when running
- ;; the tests
- (delete-file-recursively "linkcheck")
-
- (invoke "py.test" "tests"))
- #t)))))
- (home-page "https://linkcheck.github.io/linkchecker")
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "py.test" "tests"))))))
+ (home-page "https://linkchecker.github.io/linkchecker/")
(synopsis "Check websites for broken links")
(description "LinkChecker is a website validator. It checks for broken
links in websites. It is recursive and multithreaded providing output in
--
2.32.0
X
X
Xinglu Chen wrote on 18 Jun 2021 16:18
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87eecz6yu0.fsf@yoctocell.xyz
On Fri, Jun 18 2021, Arun Isaac wrote:

Toggle quote (84 lines)
> * gnu/packages/web.scm (linkchecker): Update to 10.0.1.
> [source]: Remove patches.
> [inputs]: Add python-beautifulsoup4. Replace python2-dnspython-1.16,
> python2-pyxdg and python2-requests with python-dnspython, python-pyxdg and
> python-requests respectively.
> [native-inputs]: Replace python2-pytest, python2-miniboa and
> python2-parameterized with python-pytest, python-miniboa and
> python-parameterized respectively.
> [arguments]: Use python 3. Replace check phase instead of deleting the
> standard phase and adding a custom one. Use add-installed-pythonpath instead
> of setting PYTHONPATH directly.
> [home-page]: Update URI.
> * gnu/packages/patches/linkchecker-tests-require-network.patch: Delete file.
> * gnu/local.mk (dist_patch_DATA): Unregister it.
> ---
> gnu/local.mk | 1 -
> .../linkchecker-tests-require-network.patch | 182 ------------------
> gnu/packages/web.scm | 47 ++---
> 3 files changed, 16 insertions(+), 214 deletions(-)
> delete mode 100644 gnu/packages/patches/linkchecker-tests-require-network.patch
>
> (define-public linkchecker
> (package
> (name "linkchecker")
> - (version "9.4.0")
> + (version "10.0.1")
> (source
> (origin
> (method git-fetch)
> (uri (git-reference
> (url "https://github.com/linkchecker/linkchecker")
> (commit (string-append "v" version))))
> - (patches
> - (search-patches "linkchecker-tests-require-network.patch"))
> (file-name (git-file-name name version))
> (sha256
> (base32
> - "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
> + "1j97dc9a4yhpscwadhv5dxp7036pnrxiaky18l8ddr3pvxdjvkxs"))))
> (build-system python-build-system)
> (inputs
> - `(("python2-dnspython" ,python2-dnspython-1.16)
> - ("python2-pyxdg" ,python2-pyxdg)
> - ("python2-requests" ,python2-requests)))
> + `(("python-beautifulsoup4" ,python-beautifulsoup4)
> + ("python-dnspython" ,python-dnspython)
> + ("python-pyxdg" ,python-pyxdg)
> + ("python-requests" ,python-requests)))
> (native-inputs
> `(("gettext" ,gettext-minimal)
> - ("python2-pytest" ,python2-pytest)
> - ("python2-miniboa" ,python2-miniboa)
> - ("python2-parameterized" ,python2-parameterized)))
> + ("python-pytest" ,python-pytest)
> + ("python-miniboa" ,python-miniboa)
> + ("python-parameterized" ,python-parameterized)))
> (arguments
> - `(#:python ,python-2
> - #:phases
> + `(#:phases
> (modify-phases %standard-phases
> - ;; Move the 'check phase to after 'install, so that the installed
> - ;; library can be used
> - (delete 'check)
> - (add-after 'install 'check
> - (lambda* (#:key outputs #:allow-other-keys)
> - (let ((out (assoc-ref outputs "out")))
> - ;; Set PYTHONPATH so that the installed linkchecker is used
> - (setenv "PYTHONPATH"
> - (string-append out "/lib/python2.7/site-packages"
> - ":"
> - (getenv "PYTHONPATH")))
> - ;; Remove this directory to avoid it being used when running
> - ;; the tests
> - (delete-file-recursively "linkcheck")
> -
> - (invoke "py.test" "tests"))
> - #t)))))
> - (home-page "https://linkcheck.github.io/linkchecker")
> + (replace 'check
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (add-installed-pythonpath inputs outputs)
> + (invoke "py.test" "tests"))))))

This 'check phase doesn’t respect the ‘--with-tests’ transformation.
Something like the following would be better:

(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "tests"
(add-installed-pythonpath inputs outputs)
(invoke "py.test" "tests")))))

Otherwise, LGTM.
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmDMqycVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x514sP/iuNgHRD2QOjKwWvhmuj3rb0mWvS
cU7x8TOpCUx7mFh3O4+SqOdGIk8Tdxo2Y0e/4nj7KoHutHK8oOGXCuheY8JvFQ3Z
IWob7ww1v9Kz1/ocQBmACmnpp8GDGdZJ78npjucXCzuEZ7Ttw3yopSswFz9JtFTX
r/J1Ijx5QXsxaTwY3Y6fyueF8YzaXfu0MjN6hl7Yt8PiZ+a0yThoLWMOU8kgkx/n
L/4HF0dcFVWeWqNEwm1QFPjnwQTq1CiZRbU+px+1Ln/qluyvOyM0TtbRPkPIV5+U
AJmYby8roI2Gn3c5tz8p7Ej2hPhf5zCSvESKDJ6DpqzLRbBMqR62S6Mh2uip32o5
rK+kh/IjANgC8VKX+9G/x/a98L0y50geEpGcSU9vJwGqOmiIN8pWCJ+Zw8ywpES2
6RsEUvowq1tycMXgSh9ip/Ll61JQ6FD2hTMdSECs1dYPY8u+v8aoKtwKMK/T/9jH
X6zpsT5msPW5C/y/1G/rzTxnSNxhPDabeheV1FGqs9qMD0PQTrchvHCUxDXUxvyP
i1W/Z2/g4hBX9sly8vsEm44ii8/IjiBdTQ3gzxZqySJU7rXqqD1iCUOzRLbUxJwK
ELh+xVkswCxbZ7wFyrh3fywUEqwg6wgR83zYN+7lXZ4AT/f+nWKVrDGEYLIPayq+
Ew460YRnxvlQtNwn
=NRLy
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 19 Jun 2021 10:25
87v96antw6.fsf@systemreboot.net
Toggle quote (10 lines)
> This 'check phase doesn’t respect the ‘--with-tests’ transformation.
> Something like the following would be better:
>
> (replace 'check
> (lambda* (#:key inputs outputs tests? #:allow-other-keys)
> (when tests?
> (with-directory-excursion "tests"
> (add-installed-pythonpath inputs outputs)
> (invoke "py.test" "tests")))))

Makes sense. I'll add the `when tests?', but what's the
with-directory-excursion for?
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAmDNqekbHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzaNEIALsC/7aM0ydJBcU3M5Pn
LSA633tnw4DPxJZ0zSu6mtpQnzW+NpbBBT9VSfKxE54aUqqrs+5EZ+gR1l61177i
LfhWMsGgt0I1ASxyIlhhWRIC+4Q92TWd/N52214TgIutJJ9il/bu55CB4JHaz00R
4RhGeSF2eKB7Cf8mmchMQPjVCLnPuYGaK6YS4ugU/rozZy36DtsKqDU7E2PrMXZZ
tcTrxiatLZg6lsLvWReWGLCRgEVFgOoXqJJkwSkpGcBBh4CZJL7xiWFfM/YNvGrc
/QVtUdvQpcVf6vsOeQxXiOW1erBrVoHqLUmM8Q5p01YdYCDbwxBOxRuNr0+844IJ
dMg=
=4TxI
-----END PGP SIGNATURE-----

X
X
Xinglu Chen wrote on 19 Jun 2021 11:06
878s362pgl.fsf@yoctocell.xyz
On Sat, Jun 19 2021, Arun Isaac wrote:

Toggle quote (13 lines)
>> This 'check phase doesn’t respect the ‘--with-tests’ transformation.
>> Something like the following would be better:
>>
>> (replace 'check
>> (lambda* (#:key inputs outputs tests? #:allow-other-keys)
>> (when tests?
>> (with-directory-excursion "tests"
>> (add-installed-pythonpath inputs outputs)
>> (invoke "py.test" "tests")))))
>
> Makes sense. I'll add the `when tests?', but what's the
> with-directory-excursion for?

Oops, ignore the ‘with-directory-excursion’, sorry about that.
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmDNs5oVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5tPYQAKuZjW9RN81IIBaZaw5dvtuTPAYV
ue2z5uLQU2Mdq1ljwD6lMzj9R0SXzi6t2R1q25ERiWFSwKcepxdLp9ynsGP8Iefy
7MOfhqlZI7Q2dmRWBBSoAAj+A/GaUzLcZs733ztQyNFswMq4l6H1+n85bQzpShLD
saQxq4YO9LMLQ2Q62PGKrr96jkOGSOjThUkfApQtnP+OOanAX1aG9T60ofjZbjTZ
A4gkPe+Sup314qHRMG+FSd1uLxOZ0sclJq+sDK/Dlm7jGUzWJYTZRJcwz2hhuWTB
UIAXWh0pFU5D1S5+VdNHwQjyvxPaA7PdCbdowrofNCoRXMdVJwbSBMkjlwRhIxZU
FoWLi3rKI2J7lvT4JdphQGnX8I+A2DnHaHB2NmCtr5B0TAr8xHDlTtSgf9mmtdd5
8V0vn4J/3EdJxf1tptW9wNpazfXTynfnQQQwmZm3JMTpVqUnpbGZFq49JySOs/zt
1KKDOjV4jd1SzxbETT0/9Qg271mlOj/8UNZSwkqeqQoOYnfQl45oZnZTCTLF9F+W
BJ0ZcObI7E6XVjTlcNvaXZ3q9Wmn2UQDWxAIU1La1CtNifR7Rpc/3yKTmSfwYSKi
qElFRe5cV8ywMcf8T7x7h2FWhZK+5zwH5B7dQ5JgwOySWtKjWZdJNfxHH9tqiude
v5XvoreiNvqQ4P4N
=2vqG
-----END PGP SIGNATURE-----

A
A
Arun Isaac wrote on 19 Jun 2021 21:07
87sg1doepd.fsf@systemreboot.net
Pushed to master. Thanks for the review!
-----BEGIN PGP SIGNATURE-----

iQFPBAEBCAA5FiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAmDOQI4bHGFydW5pc2Fh
Y0BzeXN0ZW1yZWJvb3QubmV0AAoJEC4l7othgCuzxF4H/2j+Vju+zhy7M3yLOkKL
ViZvbsF86MltM8UsJXK1AzORlsvLdQ7Voj3rckgVIjlMGJUBxh/vz7rQibFusZ58
LcpvslQo8CZlQwI6wPVhEXUepq8bXWxTwISrD0zxjOT9wlVZOqV1oi++rr+eRsSX
u66Ryo43qJ3+XmuHInBa0jfYbkyaNaRHqNpQV91p9h/yZEUlAr7ZKYY1DnLOOFId
4K63tJIXZ4/fPfBPMgw1pgvieIuk18zBTK5sWOvUe30xQZ3MLZOVrPe63HuL3cGn
I1w92qM9CSnGekzs3GM58vNTafXqivs3nfp/J2MJ8vqAhuFRqymVne0wWQgCJVLX
ac8=
=w/Fw
-----END PGP SIGNATURE-----

Closed
?