* gnu/packages/web.scm (httpfs2): New variable. --- gnu/packages/web.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 50a2e04..bfb2f8e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Clément Lassieur <[email protected]> ;;; Copyright © 2016 ng0 <[email protected]> ;;; Copyright © 2016 Arun Isaac <[email protected]> -;;; Copyright © 2016 Tobias Geerinckx-Rice <[email protected]> +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2016 Bake Timmons <[email protected]> ;;; ;;; This file is part of GNU Guix. @@ -68,6 +68,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) @@ -3968,3 +3969,62 @@ useful for users behind restrictive firewalls. As long as Web traffic is allowed, even through a HTTP-only proxy, httptunnel can be combined with other tools like SSH (Secure Shell) to reach the outside world.") (license l:gpl2+))) + +(define-public httpfs2 + (package + (name "httpfs2") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/httpfs/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1h8ggvhw30n2r6w11n1s458ypggdqx6ldwd61ma4yd7binrlpjq1")))) + (build-system gnu-build-system) + (native-inputs + `(("asciidoc" ,asciidoc) + ("docbook-xml" ,docbook-xml) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("pkg-config" ,pkg-config))) + (inputs + `(("fuse" ,fuse) + ("gnutls" ,gnutls))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'install + ;; There's no ‘install’ target. Install all variants manually. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man1 (string-append out "/share/man/man1"))) + (mkdir-p bin) + (mkdir-p man1) + (for-each + (lambda (variant) + (let ((man1-page (string-append variant ".1"))) + (copy-file variant + (string-append bin "/" variant)) + (copy-file man1-page + (string-append man1 "/" man1-page)))) + (list "httpfs2" + "httpfs2-mt" + "httpfs2-ssl" + "httpfs2-ssl-mt")))))) + #:make-flags (list "CC=gcc") + #:parallel-build? #f ; can result in missing man pages + #:tests? #f)) ; no tests + (home-page "https://sourceforge.net/projects/httpfs/") + (synopsis "Mount remote files over HTTP") + (description "httpfs2 is a @code{fuse} file system for mounting any +HyperText (HTTP or HTTPS) URL. It uses HTTP/1.1 byte ranges to request +arbitrary bytes from the web server without needing to download the entire +file. This is particularly useful with large archives such as ZIP files and +ISO images when you only need to inspect their contents or extract specific +files. Since the HTTP protocol itself has no notion of directories, only a +single file can be mounted.") + (license l:gpl2+))) -- 2.9.3
