Re: [PATCH] gnu: Add httpfs2.

2017-01-03 Thread Leo Famulari
On Wed, Jan 04, 2017 at 05:55:22AM +0100, Tobias Geerinckx-Rice wrote:
> Leo & others,
> 
> On 04/01/17 05:37, Tobias Geerinckx-Rice wrote:
> > On 04/01/17 05:20, Leo Famulari wrote:
> >> If you wanted to do extra work, I think it would also fit in a new FUSE
> >> package module.
> > 
> > Eh, why not. It's that or study.
> 
> ...or file-systems.scm?
> 
> I'm ambivalent about implementation choice being the right abstraction
> level.

Fair point. It's up to you. I merely thought that the web module was not
perfect for this package :)


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add httpfs2.

2017-01-03 Thread Tobias Geerinckx-Rice
On 04/01/17 05:55, Tobias Geerinckx-Rice wrote:
> ...or file-systems.scm?

Thinking about it more, I think that's the right thing to do.

It's not the first time I've expected it to exist, and it would fill out
nicely with packages like btrfs and ntfs-3g which always felt out of
place to me in linux.scm.

I'll start on a patch unless someone objects.

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] gnu: Add httpfs2.

2017-01-03 Thread Tobias Geerinckx-Rice
Leo & others,

On 04/01/17 05:37, Tobias Geerinckx-Rice wrote:
> On 04/01/17 05:20, Leo Famulari wrote:
>> If you wanted to do extra work, I think it would also fit in a new FUSE
>> package module.
> 
> Eh, why not. It's that or study.

...or file-systems.scm?

I'm ambivalent about implementation choice being the right abstraction
level.

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] gnu: Add httpfs2.

2017-01-03 Thread Tobias Geerinckx-Rice
Leo,

On 04/01/17 05:20, Leo Famulari wrote:
> If you wanted to do extra work, I think it would also fit in a new FUSE
> package module.

Eh, why not. It's that or study.

I confess to trying ‘gnu/packages/f’ before settling on
web.scm, so that would certainly be more intuitive.

(I was also disappointed to find out that fuse is in linux.scm for a
reason. Oh well.)

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] gnu: Add httpfs2.

2017-01-03 Thread Leo Famulari
On Tue, Jan 03, 2017 at 10:04:41PM +0100, Tobias Geerinckx-Rice wrote:
> * gnu/packages/web.scm (httpfs2): New variable.

LGTM, thanks!

If you wanted to do extra work, I think it would also fit in a new FUSE
package module.



[PATCH] gnu: Add httpfs2.

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