From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dkQ4A-00022D-Bl for guix-patches@gnu.org; Wed, 23 Aug 2017 03:27:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dkQ46-00037E-M9 for guix-patches@gnu.org; Wed, 23 Aug 2017 03:27:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:41581) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dkQ46-00036m-AN for guix-patches@gnu.org; Wed, 23 Aug 2017 03:27:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dkQ46-0007FD-54 for guix-patches@gnu.org; Wed, 23 Aug 2017 03:27:02 -0400 Subject: [bug#27468] [PATCH] gnu: Add linkchecker. Resent-Message-ID: Message-Id: <9da8cde7.AEEAPL4o3uAAAAAAAAAAAAPNQHwAAAACwQwAAAAAAAW9WABZnS4m@mailjet.com> MIME-Version: 1.0 From: Arun Isaac Date: Wed, 23 Aug 2017 12:56:14 +0530 In-reply-to: <87y3qb1789.fsf@fastmail.com> References: <7a5dc060.AEQAMFHLF6MAAAAAAAAAAAOtUOAAAAACwQwAAAAAAAW9WABZTa-9@mailjet.com> <4cc366f5.AEMAO2lAou4AAAAAAAAAAAPNQHwAAAACwQwAAAAAAAW9WABZnL7F@mailjet.com> <87y3qb1789.fsf@fastmail.com> Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Marius Bakke Cc: 27468@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Marius Bakke writes: >> + (modify-phases %standard-phases >> + ;; Remove faulty python-requests version check. This has been = fixed >> + ;; upstream, and can be removed in version 9.4. >> + (add-after 'unpack 'remove-python-requests-version >> + (lambda _ >> + (substitute* "linkcheck/__init__.py" >> + (("requests.__version__ <=3D '2.2.0'") "False"))))))) > > Please end this phase on a #t since (substitute* ...) has an unspecified > return value. Done. >> + (license (list l:gpl2+ >> + l:bsd-2 ; linkcheck/better_exchook2.py >> + l:bsd-3 ; linkcheck/colorama.py >> + l:psfl ; linkcheck/gzip2.py >> + l:expat ; linkcheck/mem.py >> + l:isc ; third_party/dnspython >> + l:asl2.0)))) ; third_party/miniboa > > Is it possible to remove these third party libraries and use packaged > copies instead? At least 'dnspython' is already in Guix. linkchecker is using a modified version of dnspython and miniboa. So, I don't think it will be easy. For a list of modifications, look at https://github.com/wummel/linkchecker/blob/master/third_party/dnspython/cha= ngelog.txt and https://github.com/wummel/linkchecker/blob/master/third_party/miniboa-r= 42/CHANGES.txt > Also, since GPL2+ is stricter than the other licenses, the program as a > whole is effectively GPL2+, so we don't really need to mention those > one-off source files in the license field (but comments are great). But, we generally don't hide this information from the user, right? Many Guix packages have licenses of even single files mentioned in the `license' field. Do you still think I should remove them? > Not sure about the 3rd party bundles though, since they probably don't > depend on anything from the GPL2+ distribution. If they are installed, > I guess we should mention them with a FIXME. I've added a FIXME. I'm attaching a new patch with the discussed changes. Do let me know if everything looks good. = --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-Add-linkchecker.patch >From 63f4192ff8ed7341767797f4ca67ab87773e2338 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 24 Jun 2017 05:37:45 +0530 Subject: [PATCH] gnu: Add linkchecker. * gnu/packages/web.scm (linkchecker): New variable. --- gnu/packages/web.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 652eb6792..68a9c2302 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4979,3 +4979,47 @@ websites lacking feeds. Supported websites include Facebook, Twitter, Instagram and YouTube.") (license (list l:public-domain l:expat)))) ;; vendor/simplehtmldom/simple_html_dom.php + +(define-public linkchecker + (package + (name "linkchecker") + (version "9.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "LinkChecker" version)) + (sha256 + (base32 + "0v8pavf0bx33xnz1kwflv0r7lxxwj7vg3syxhy2wzza0wh6sc2pf")))) + (build-system python-build-system) + (inputs + `(("python2-dnspython" ,python2-dnspython) + ("python2-requests" ,python2-requests))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + ;; Remove faulty python-requests version check. This has been fixed + ;; upstream, and can be removed in version 9.4. + (add-after 'unpack 'remove-python-requests-version + (lambda _ + (substitute* "linkcheck/__init__.py" + (("requests.__version__ <= '2.2.0'") "False")) + #t))))) + (home-page "https://linkcheck.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 +colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It +supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local +file links.") + (license (list l:gpl2+ + l:bsd-2 ; linkcheck/better_exchook2.py + l:bsd-3 ; linkcheck/colorama.py + l:psfl ; linkcheck/gzip2.py + l:expat ; linkcheck/mem.py + ;; FIXME: Unbundle dnspython and miniboa + ;; This issue has been raised upstream + ;; https://github.com/wummel/linkchecker/issues/729 + l:isc ; third_party/dnspython + l:asl2.0)))) ; third_party/miniboa -- 2.13.4 --=-=-=--