guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] gnu: Add httpfs2.


From: Tobias Geerinckx-Rice
Subject: [PATCH] gnu: Add httpfs2.
Date: Tue, 3 Jan 2017 22:04:41 +0100

* 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 <address@hidden>
 ;;; Copyright © 2016 ng0 <address@hidden>
 ;;; Copyright © 2016 Arun Isaac <address@hidden>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <address@hidden>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <address@hidden>
 ;;; Copyright © 2016 Bake Timmons <address@hidden>
 ;;;
 ;;; 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]