summaryrefslogtreecommitdiff
path: root/gnu/packages/web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r--gnu/packages/web.scm243
1 files changed, 232 insertions, 11 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 13a46a5503..a2af98da53 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -13,13 +13,13 @@
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -76,9 +76,11 @@
#:use-module (gnu packages java)
#:use-module (gnu packages javascript)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages markup)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages base)
#:use-module (gnu packages perl)
@@ -92,7 +94,8 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
- #:use-module (gnu packages statistics))
+ #:use-module (gnu packages statistics)
+ #:use-module (gnu packages version-control))
(define-public httpd
(package
@@ -104,7 +107,8 @@
version ".tar.bz2"))
(sha256
(base32
- "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i"))))
+ "0fn1778mxhf78np2d8qlycg1c2ak18rxax41plahasca4clc3z3i"))
+ (patches (search-patches "httpd-CVE-2017-9798.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
(inputs `(("apr" ,apr)
@@ -157,10 +161,12 @@ and its related documentation.")
(("/bin/sh") (which "sh")))
#t))
(replace 'configure
+ ;; The configure script is hand-written, not from GNU autotools.
(lambda* (#:key outputs #:allow-other-keys)
(let ((flags
(list (string-append "--prefix=" (assoc-ref outputs "out"))
"--with-http_ssl_module"
+ "--with-http_v2_module"
"--with-pcre-jit"
"--with-debug"
;; Even when not cross-building, we pass the
@@ -185,6 +191,12 @@ and its related documentation.")
(format #t "environment variable `CC' set to `gcc'~%")
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* "./configure" flags)))))
+ (add-after 'install 'install-man-page
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man (string-append out "/share/man")))
+ (install-file "objs/nginx.8" (string-append man "/man8"))
+ #t)))
(add-after 'install 'fix-root-dirs
(lambda* (#:key outputs #:allow-other-keys)
;; 'make install' puts things in strange places, so we need to
@@ -1905,6 +1917,33 @@ string generation and manipulation, and processing and preparing HTTP
headers.")
(license l:perl-license)))
+(define-public perl-cgi-session
+ (package
+ (name "perl-cgi-session")
+ (version "4.48")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (inputs `(("perl-cgi" ,perl-cgi)))
+ (home-page
+ "http://search.cpan.org/dist/CGI-Session")
+ (synopsis
+ "Persistent session data in CGI applications")
+ (description
+ "@code{CGI::Session} provides modular session management system across
+HTTP requests.")
+ (license l:perl-license)))
+
(define-public perl-cgi-simple
(package
(name "perl-cgi-simple")
@@ -2177,6 +2216,37 @@ composed of HTML::Element style components.")
<form> ... </form> instance.")
(license l:perl-license)))
+(define-public perl-html-scrubber
+ (package
+ (name "perl-html-scrubber")
+ (version "0.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-cpan-meta" ,perl-test-cpan-meta)
+ ("perl-test-eol" ,perl-test-eol)
+ ("perl-test-memory-cycle" ,perl-test-memory-cycle)
+ ("perl-test-notabs" ,perl-test-notabs)))
+ (inputs
+ `(("perl-html-parser" ,perl-html-parser)))
+ (home-page
+ "http://search.cpan.org/dist/HTML-Scrubber")
+ (synopsis
+ "Perl extension for scrubbing/sanitizing html")
+ (description
+ "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.")
+ (license l:perl-license)))
+
(define-public perl-html-lint
(package
(name "perl-html-lint")
@@ -2226,7 +2296,7 @@ in tables within an HTML document, either as text or encoded element trees.")
(define-public perl-html-tree
(package
(name "perl-html-tree")
- (version "5.06")
+ (version "5.07")
(source
(origin
(method url-fetch)
@@ -2234,7 +2304,7 @@ in tables within an HTML document, either as text or encoded element trees.")
"HTML-Tree-" version ".tar.gz"))
(sha256
(base32
- "0vjk4xrybjqs511qrh9cymhpbg9m3jjqr52qr035k6nzrccyndlw"))))
+ "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)
@@ -3380,10 +3450,18 @@ web browsing, used for automating interaction with websites.")
(base32
"1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
(build-system perl-build-system)
- (arguments
- `(#:tests? #f)) ; Tests require further modules to be packaged
(native-inputs
- `(("perl-module-install" ,perl-module-install)))
+ `(("perl-class-errorhandler" ,perl-class-errorhandler)
+ ("perl-datetime" ,perl-datetime)
+ ("perl-datetime-format-mail" ,perl-datetime-format-mail)
+ ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
+ ("perl-feed-find" ,perl-feed-find)
+ ("perl-module-install" ,perl-module-install)
+ ("perl-module-pluggable" ,perl-module-pluggable)
+ ("perl-uri-fetch" ,perl-uri-fetch)
+ ("perl-test-simple" ,perl-test-simple)
+ ("perl-xml-atom" ,perl-xml-atom)
+ ("perl-xml-rss" ,perl-xml-rss)))
(inputs
`(("perl-data-page" ,perl-data-page)
("perl-libwww" ,perl-libwww)
@@ -3500,13 +3578,13 @@ in systems and applications.")
(define-public r-servr
(package
(name "r-servr")
- (version "0.6")
+ (version "0.7")
(source (origin
(method url-fetch)
(uri (cran-uri "servr" version))
(sha256
(base32
- "0sqz3wssxa19g9mpmf9s4gx2a5rvzl8nrd11qkgpz5v3iqsc6ysr"))))
+ "0rxh89csqlpyf9wv5wlymya9kbddj79mlmxz2x0xmls12gbrxaaa"))))
(build-system r-build-system)
(propagated-inputs
`(("r-httpuv" ,r-httpuv)
@@ -3995,6 +4073,74 @@ parse both valid and invalid web content. It is developed as part of the
NetSurf project.")
(license l:expat)))
+(define-public ikiwiki
+ (package
+ (name "ikiwiki")
+ (version "3.20170111")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://snapshot.debian.org/archive/debian/"
+ "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"))))
+ (build-system perl-build-system)
+ (arguments
+ `(;; Image tests fail
+ ;;
+ ;; Test Summary Report
+ ;; -------------------
+ ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9)
+ ;; Failed tests: 21, 27-28, 30-35
+ ;; Non-zero exit status: 9
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (path (getenv "PERL5LIB")))
+ (for-each (lambda (file)
+ (wrap-program file
+ `("PERL5LIB" ":" prefix (,path))))
+ (find-files bin))
+ #t))))))
+ (native-inputs
+ `(("which" ,which)
+ ("perl-html-tagset" ,perl-html-tagset)
+ ("perl-timedate" ,perl-timedate)
+ ("perl-xml-sax" ,perl-xml-sax)
+ ("perl-xml-simple" ,perl-xml-simple)
+ ("gettext" ,gettext-minimal)
+ ("subversion" ,subversion)
+ ("git" ,git)
+ ("bazaar" ,bazaar)
+ ("cvs" ,cvs)
+ ("mercurial" ,mercurial)))
+ (inputs
+ `(("python" ,python-wrapper)
+ ("perl-cgi-session" ,perl-cgi-session)
+ ("perl-cgi-simple" ,perl-cgi-simple)
+ ("perl-json" ,perl-json)
+ ("perl-image-magick" ,perl-image-magick)
+ ("perl-uri" ,perl-uri)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-uri" ,perl-uri)
+ ("perl-text-markdown-discount" ,perl-text-markdown-discount)
+ ("perl-html-scrubber" ,perl-html-scrubber)
+ ("perl-html-template" ,perl-html-template)
+ ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+ (home-page "https://ikiwiki.info/")
+ (synopsis "Wiki compiler, capable of generating HTML")
+ (description
+ "Ikiwiki is a wiki compiler, capable of generating a static set of web
+pages, but also incorporating dynamic features like a web based editor and
+commenting.")
+ (license l:gpl2+)))
+
(define-public libwapcaplet
(package
(name "libwapcaplet")
@@ -5047,3 +5193,78 @@ 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-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
+
+(define-public cadaver
+ (package
+ (name "cadaver")
+ (version "0.23.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.webdav.org/cadaver/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
+ (build-system gnu-build-system)
+ ;; TODO: Unbundle libneon and make build succeed with new neon.
+ (arguments
+ `(#:configure-flags (list "--with-ssl=openssl")
+ #:tests? #f)) ;No tests included
+ (native-inputs
+ `(("gettext" ,gnu-gettext)
+ ("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("expat" ,expat)
+ ("openssl" ,openssl)))
+ (home-page "http://www.webdav.org/cadaver")
+ (synopsis "Command-line WebDAV client")
+ (description
+ "Cadaver is a command-line WebDAV client for Unix. It supports
+file upload, download, on-screen display, namespace operations (move/copy),
+collection creation and deletion, and locking operations.")
+ (license l:gpl2)))