guix-commits
[Top][All Lists]
Advanced

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

01/09: gnu: Add httpfs2.


From: Tobias Geerinckx-Rice
Subject: 01/09: gnu: Add httpfs2.
Date: Wed, 29 Mar 2017 16:05:12 -0400 (EDT)

nckx pushed a commit to branch master
in repository guix.

commit 8d5fe1f1cf2226d245b93d35ca4244c3e61abd88
Author: Tobias Geerinckx-Rice <address@hidden>
Date:   Wed Jan 4 10:42:38 2017 +0100

    gnu: Add httpfs2.
    
    * gnu/packages/file-systems.scm: New file.
    * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk                  |  2 +
 gnu/packages/file-systems.scm | 88 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 34642af..063974b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -9,6 +9,7 @@
 # Copyright © 2016 Adonay "adfeno" Felipe Nogueira 
<https://libreplanet.org/wiki/User:Adfeno> <address@hidden>
 # Copyright © 2016, 2017 Ricardo Wurmus <address@hidden>
 # Copyright © 2016 Ben Woodcroft <address@hidden>
+# Copyright © 2017 Tobias Geerinckx-Rice <address@hidden>
 # Copyright © 2017 Clément Lassieur <address@hidden>
 # Copyright © 2017 Mathieu Othacehe <address@hidden>
 #
@@ -129,6 +130,7 @@ GNU_SYSTEM_MODULES =                                \
   %D%/packages/fcitx.scm                       \
   %D%/packages/figlet.scm                      \
   %D%/packages/file.scm                                \
+  %D%/packages/file-systems.scm                        \
   %D%/packages/finance.scm                     \
   %D%/packages/firmware.scm                    \
   %D%/packages/flashing-tools.scm              \
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
new file mode 100644
index 0000000..b4134de
--- /dev/null
+++ b/gnu/packages/file-systems.scm
@@ -0,0 +1,88 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Tobias Geerinckx-Rice <address@hidden>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages file-systems)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xml))
+
+(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")))
+                    (install-file variant bin)
+                    (install-file man1-page man1)))
+                (list "httpfs2"
+                      "httpfs2-mt"
+                      "httpfs2-ssl"
+                      "httpfs2-ssl-mt")))
+             #t)))
+       #: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
address@hidden (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 license:gpl2+)))



reply via email to

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