all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Tramp rclone
@ 2018-11-24 13:16 Michael Albinus
  2018-11-24 13:56 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: Michael Albinus @ 2018-11-24 13:16 UTC (permalink / raw)
  To: emacs-devel

Hi,

I have added a new method to Tramp, rclone. It uses the rclone program
to access remote system storages. See <https://rclone.org> for a list of
supported systems.

This feature is experimental; don't use it yet for production
purposes. However, if people are using rclone already outside Emacs, I'd
appreciate any feedback from them.

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-24 13:16 Tramp rclone Michael Albinus
@ 2018-11-24 13:56 ` Eli Zaretskii
  2018-11-25  3:01 ` John Wiegley
  2018-11-25  3:56 ` Daniel Kraus
  2 siblings, 0 replies; 24+ messages in thread
From: Eli Zaretskii @ 2018-11-24 13:56 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

> From: Michael Albinus <michael.albinus@gmx.de>
> Date: Sat, 24 Nov 2018 14:16:02 +0100
> 
> I have added a new method to Tramp, rclone.

Thanks!



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-24 13:16 Tramp rclone Michael Albinus
  2018-11-24 13:56 ` Eli Zaretskii
@ 2018-11-25  3:01 ` John Wiegley
  2018-11-25  8:38   ` Michael Albinus
  2018-11-26  1:39   ` Richard Stallman
  2018-11-25  3:56 ` Daniel Kraus
  2 siblings, 2 replies; 24+ messages in thread
From: John Wiegley @ 2018-11-25  3:01 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

>>>>> "MA" == Michael Albinus <michael.albinus@gmx.de> writes:

MA> I have added a new method to Tramp, rclone. It uses the rclone program to
MA> access remote system storages. See <https://rclone.org> for a list of
MA> supported systems.

This is great, Michael. I take it this means I can access B2 using Tramp?

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-24 13:16 Tramp rclone Michael Albinus
  2018-11-24 13:56 ` Eli Zaretskii
  2018-11-25  3:01 ` John Wiegley
@ 2018-11-25  3:56 ` Daniel Kraus
  2018-11-25  8:43   ` Michael Albinus
  2 siblings, 1 reply; 24+ messages in thread
From: Daniel Kraus @ 2018-11-25  3:56 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 814 bytes --]

Hi!

Michael Albinus <michael.albinus@gmx.de> writes:

> I have added a new method to Tramp, rclone. It uses the rclone program
> to access remote system storages. See <https://rclone.org> for a list of
> supported systems.
>
> This feature is experimental; don't use it yet for production
> purposes. However, if people are using rclone already outside Emacs, I'd
> appreciate any feedback from them.

Very nice :)

I tried it with google drive but it doesn't work for me.
`drive` is my rclone google drive remote.

In eshell it doesn't recognise `rclone`
```
cd /rclone:drive:
No such directory found via CDPATH environment variable
```

And with dired I just get an empty list:
```
  /rclone:drive::
  (No match)
  total used in directory 0 available 47811776
```

Attached is the tramp log.

Thanks,
  Daniel


[-- Attachment #2: tramp-rclone.log --]
[-- Type: text/plain, Size: 5809 bytes --]

;; Emacs: 27.0.50 Tramp: 2.4.1-pre -*- mode: outline; -*-
;; Location: /usr/share/emacs/27.0.50/lisp/net/tramp.elc Git: makepkg/3aa22e6ec615c5dadb134f1e45ee9bb3034518b7
11:50:51.137373 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.138118 tramp-get-connection-property (7) # uid-integer nil
11:50:51.138194 tramp-set-connection-property (7) # uid-integer 1000
11:50:51.138269 tramp-set-connection-property (7) # gid-integer 1000
11:50:51.138337 tramp-set-connection-property (7) # uid-string daniel
11:50:51.138424 tramp-set-connection-property (7) # gid-string daniel
11:50:51.138934 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.141423 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...
11:50:51.142320 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.142704 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.143296 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.143673 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.143851 tramp-rclone-handle-file-system-info (5) # file system info: 
11:50:51.143882 tramp-get-connection-property (7) # process-buffer nil
11:50:51.143919 tramp-get-connection-property (7) # process-buffer nil
11:50:51.143938 tramp-set-connection-property (7) # process-buffer nil
11:50:51.143968 tramp-get-connection-property (7) # about-args undef
11:50:51.144001 tramp-call-process (6) # ‘rclone about drive: --full’ nil *tramp/rclone drive*
11:50:51.549897 tramp-call-process (6) # 0
Total:   128849018880
Used:    452653677
Free:    79889759394
Trashed: 4593779
Other:   48506605809
11:50:51.550074 tramp-get-connection-property (7) # process-buffer nil
11:50:51.550330 tramp-set-file-property (8) #  used-bytes 452653677
11:50:51.551127 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...done
11:50:51.553848 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.555923 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.557585 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.560611 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.562937 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.564563 tramp-get-file-property (8) # /RCS file-truename undef
11:50:51.565489 tramp-get-file-property (8) # /RCS file-attributes-nil undef
11:50:51.565843 tramp-get-file-property (8) # /RCS local-file-name undef
11:50:51.565966 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.566230 tramp-set-file-property (8) # /RCS local-file-name /tmp/tramp.rclone.drive/RCS
11:50:51.566469 tramp-set-file-property (8) # /RCS file-attributes-nil nil
11:50:51.567078 tramp-set-file-property (8) # /RCS file-truename /RCS
11:50:51.567758 tramp-get-file-property (8) # /RCS file-attributes-nil nil
11:50:51.569537 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.571161 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.572537 tramp-get-file-property (8) # /CVS file-truename undef
11:50:51.573350 tramp-get-file-property (8) # /CVS file-attributes-nil undef
11:50:51.573707 tramp-get-file-property (8) # /CVS local-file-name undef
11:50:51.573821 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.574062 tramp-set-file-property (8) # /CVS local-file-name /tmp/tramp.rclone.drive/CVS
11:50:51.574275 tramp-set-file-property (8) # /CVS file-attributes-nil nil
11:50:51.574758 tramp-set-file-property (8) # /CVS file-truename /CVS
11:50:51.575353 tramp-get-file-property (8) # /CVS file-attributes-nil nil
11:50:51.576042 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.577438 tramp-get-file-property (8) # /SCCS file-truename undef
11:50:51.578244 tramp-get-file-property (8) # /SCCS file-attributes-nil undef
11:50:51.578465 tramp-get-file-property (8) # /SCCS local-file-name undef
11:50:51.578540 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.578712 tramp-set-file-property (8) # /SCCS local-file-name /tmp/tramp.rclone.drive/SCCS
11:50:51.578871 tramp-set-file-property (8) # /SCCS file-attributes-nil nil
11:50:51.579264 tramp-set-file-property (8) # /SCCS file-truename /SCCS
11:50:51.579695 tramp-get-file-property (8) # /SCCS file-attributes-nil nil
11:50:51.581087 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.582109 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.583081 tramp-get-file-property (8) # /.src file-truename undef
11:50:51.583590 tramp-get-file-property (8) # /.src file-attributes-nil undef
11:50:51.583785 tramp-get-file-property (8) # /.src local-file-name undef
11:50:51.583847 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.583986 tramp-set-file-property (8) # /.src local-file-name /tmp/tramp.rclone.drive/.src
11:50:51.584109 tramp-set-file-property (8) # /.src file-attributes-nil nil
11:50:51.584385 tramp-set-file-property (8) # /.src file-truename /.src
11:50:51.584727 tramp-get-file-property (8) # /.src file-attributes-nil nil
11:50:51.585184 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.585757 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.586331 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.603655 tramp-get-connection-property (7) # case-insensitive undef
11:50:51.604637 tramp-get-connection-property (7) # uid-integer 1000
11:50:51.605080 tramp-get-connection-property (7) # uid-integer 1000
11:50:54.519938 tramp-get-connection-property (7) # case-insensitive undef
11:50:54.524728 tramp-get-connection-property (7) # case-insensitive undef
11:52:31.017187 tramp-get-connection-property (7) # case-insensitive undef
11:52:31.018737 tramp-get-connection-property (7) # case-insensitive undef

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25  3:01 ` John Wiegley
@ 2018-11-25  8:38   ` Michael Albinus
  2018-11-26  1:39   ` Richard Stallman
  1 sibling, 0 replies; 24+ messages in thread
From: Michael Albinus @ 2018-11-25  8:38 UTC (permalink / raw)
  To: emacs-devel

"John Wiegley" <johnw@gnu.org> writes:

Hi John,

> MA> I have added a new method to Tramp, rclone. It uses the rclone program to
> MA> access remote system storages. See <https://rclone.org> for a list of
> MA> supported systems.
>
> This is great, Michael. I take it this means I can access B2 using Tramp?

I have tested Google Drive so far. rclone promises to support B2 as
well, so it shall be possible.

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25  3:56 ` Daniel Kraus
@ 2018-11-25  8:43   ` Michael Albinus
  2018-11-25 11:33     ` Daniel Kraus
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-25  8:43 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-devel

Daniel Kraus <daniel@kraus.my> writes:

> Hi!

Hi Daniel,

> Very nice :)
>
> I tried it with google drive but it doesn't work for me.
>
> Attached is the tramp log.

This is not the full log. I don't see any attempt to mount the drive.

Could you pls rerun the test, starting with "emacs -Q", and setting
tramp-verbose to 10 then?

> Thanks,
>   Daniel

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25  8:43   ` Michael Albinus
@ 2018-11-25 11:33     ` Daniel Kraus
  2018-11-25 12:02       ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Daniel Kraus @ 2018-11-25 11:33 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 713 bytes --]

Hi!

Michael Albinus <michael.albinus@gmx.de> writes:

> Could you pls rerun the test, starting with "emacs -Q", and setting
> tramp-verbose to 10 then?

Sure. I should have done that from the start.
Result is the same though.
No such directory in eshell (is that even supposed to work?)
and empty list in dired.

Attached is the tramp log (verbose set to 10) where
I first tried to open `/rclone:drive:` (drive is my remote name)
and then `/rclone:drive:/skor`.

I have to say that I never used rclone before but I
can do `rclone lsl drive:/skor` for example just fine.

I'm on arch linux with rclone v1.44:
```
$ rclone --version
rclone v1.44
- os/arch: linux/amd64
- go version: go1.11.2
```

Thanks,
  Daniel

[-- Attachment #2: tramp-rclone.log --]
[-- Type: text/plain, Size: 3168 bytes --]

;; Emacs: 27.0.50 Tramp: 2.4.1-pre -*- mode: outline; -*-
;; Location: /usr/share/emacs/27.0.50/lisp/net/tramp.elc Git: makepkg/3aa22e6ec615c5dadb134f1e45ee9bb3034518b7
19:22:26.807429 tramp-get-connection-property (7) # case-insensitive undef
19:22:26.809770 tramp-get-connection-property (7) # uid-integer nil
19:22:26.809959 tramp-set-connection-property (7) # uid-integer 1000
19:22:26.810202 tramp-set-connection-property (7) # gid-integer 1000
19:22:26.810307 tramp-set-connection-property (7) # uid-string daniel
19:22:26.810454 tramp-set-connection-property (7) # gid-string daniel
19:22:26.811638 tramp-get-connection-property (7) # uid-integer 1000
19:22:26.816262 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...
19:22:26.820050 tramp-get-connection-property (7) # uid-integer 1000
19:22:26.833087 tramp-get-connection-property (7) # uid-integer 1000
19:22:26.833841 tramp-get-connection-property (7) # uid-integer 1000
19:22:26.834303 tramp-get-connection-property (7) # uid-integer 1000
19:22:26.834510 tramp-rclone-handle-file-system-info (5) # file system info:
19:22:26.834536 tramp-get-connection-property (7) # process-buffer nil
19:22:26.834562 tramp-get-connection-property (7) # process-buffer nil
19:22:26.834581 tramp-set-connection-property (7) # process-buffer nil
19:22:26.834613 tramp-get-connection-property (7) # about-args undef
19:22:26.834686 tramp-call-process (6) # ‘rclone about drive: --full’ nil *tramp/rclone drive*
19:22:27.355841 tramp-call-process (6) # 0
Total:   128849018880
Used:    452653677
Free:    79889759394
Trashed: 4593779
Other:   48506605809
19:22:27.355978 tramp-get-connection-property (7) # process-buffer nil
19:22:27.356154 tramp-set-file-property (8) #  used-bytes 452653677
19:22:27.356561 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...done
19:22:27.359036 tramp-get-connection-property (7) # uid-integer 1000
19:23:35.221403 tramp-get-connection-property (7) # case-insensitive undef
19:23:35.221927 tramp-get-file-property (8) # /skor file-truename undef
19:23:35.222321 tramp-get-file-property (8) # /skor file-attributes-nil undef
19:23:35.222451 tramp-get-file-property (8) # /skor local-file-name undef
19:23:35.222501 tramp-get-connection-property (7) # uid-integer 1000
19:23:35.222617 tramp-set-file-property (8) # /skor local-file-name /tmp/tramp.rclone.drive/skor
19:23:35.222716 tramp-set-file-property (8) # /skor file-attributes-nil nil
19:23:35.222910 tramp-set-file-property (8) # /skor file-truename /skor
19:23:35.223166 tramp-get-file-property (8) # /skor file-attributes-nil nil
19:23:35.225484 tramp-get-file-property (8) # / local-file-name undef
19:23:35.225525 tramp-get-connection-property (7) # uid-integer 1000
19:23:35.225600 tramp-set-file-property (8) # / local-file-name /tmp/tramp.rclone.drive
19:23:55.326762 tramp-get-connection-property (7) # case-insensitive undef
19:23:55.328043 tramp-get-connection-property (7) # uid-integer 1000
19:23:55.328643 tramp-get-connection-property (7) # uid-integer 1000
19:23:55.331335 tramp-get-connection-property (7) # uid-integer 1000

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25 11:33     ` Daniel Kraus
@ 2018-11-25 12:02       ` Michael Albinus
  2018-11-26 12:35         ` Daniel Kraus
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-25 12:02 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-devel

Daniel Kraus <daniel@kraus.my> writes:

> Hi!

Hi Daniel,

> Result is the same though.
> No such directory in eshell (is that even supposed to work?)
> and empty list in dired.
>
> Attached is the tramp log (verbose set to 10) where
> I first tried to open `/rclone:drive:` (drive is my remote name)
> and then `/rclone:drive:/skor`.

Strange. The log doesn't show any external command but

> 19:22:26.834686 tramp-call-process (6) # ‘rclone about drive: --full’ nil *tramp/rclone drive*
> 19:22:27.355841 tramp-call-process (6) # 0
> Total:   128849018880
> Used:    452653677
> Free:    79889759394
> Trashed: 4593779
> Other:   48506605809

That works as expected, and it is a proof that your storage "drive" is
configured properly.

But I'm missing a mount operation.

Could you pls check whether rclone is running for mount? What do you get
with

# ps -eaf | grep rclone

Furthermore, how does /tmp/tramp.rclone.drive look like? It must be a
directory, and there must be files from your remote "drive".

If there is an rclone process running, pls unmount that directory,
possibly you must do it with "fusermount -u /tmp/tramp.rclone.drive".
The directory must be empty then, and the rclone process must have been
killed. Delete the directory, and run "emacs -Q" after that again, and
show the logs.

(Maybe there is an error in the mount operation as implemented in
tramp-rclone.el, will check.)

> Thanks,
>   Daniel

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25  3:01 ` John Wiegley
  2018-11-25  8:38   ` Michael Albinus
@ 2018-11-26  1:39   ` Richard Stallman
  2018-11-26  3:39     ` Eli Zaretskii
  2018-11-26 19:15     ` Michael Albinus
  1 sibling, 2 replies; 24+ messages in thread
From: Richard Stallman @ 2018-11-26  1:39 UTC (permalink / raw)
  To: John Wiegley; +Cc: michael.albinus, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

I see an ethical question here.  Is the rclone program free?

If so, how does it access Google Drive?
Does it dynamically load any nonfree software from the Google server?
If so, it would not be acceptable to suggest users use rclone.

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26  1:39   ` Richard Stallman
@ 2018-11-26  3:39     ` Eli Zaretskii
  2018-11-26 20:50       ` Richard Stallman
  2018-11-26 19:15     ` Michael Albinus
  1 sibling, 1 reply; 24+ messages in thread
From: Eli Zaretskii @ 2018-11-26  3:39 UTC (permalink / raw)
  To: rms; +Cc: johnw, michael.albinus, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Date: Sun, 25 Nov 2018 20:39:41 -0500
> Cc: michael.albinus@gmx.de, emacs-devel@gnu.org
> 
> I see an ethical question here.  Is the rclone program free?

It's under MIT license:

  https://rclone.org/licence/



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-25 12:02       ` Michael Albinus
@ 2018-11-26 12:35         ` Daniel Kraus
  2018-11-26 18:55           ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Daniel Kraus @ 2018-11-26 12:35 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

Hi Michael

Michael Albinus <michael.albinus@gmx.de> writes:

> Could you pls check whether rclone is running for mount? What do you get
> with
>
> # ps -eaf | grep rclone
>
> Furthermore, how does /tmp/tramp.rclone.drive look like? It must be a
> directory, and there must be files from your remote "drive".
>
> If there is an rclone process running, pls unmount that directory,
> possibly you must do it with "fusermount -u /tmp/tramp.rclone.drive".
> The directory must be empty then, and the rclone process must have been
> killed. Delete the directory, and run "emacs -Q" after that again, and
> show the logs.

I just tried and it's the exact same result.
There is no rclone process running and there is no /tmp/tramp.rclone*
file.

Let me know if I can provide more info.

Thanks,
  Daniel



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26 12:35         ` Daniel Kraus
@ 2018-11-26 18:55           ` Michael Albinus
  2018-11-27  9:44             ` Daniel Kraus
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-26 18:55 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-devel

Daniel Kraus <daniel@kraus.my> writes:

> Hi Michael

Hi Daniel,

> I just tried and it's the exact same result.
> There is no rclone process running and there is no /tmp/tramp.rclone*
> file.

I have pushed a patch to master which should make tramp-rclone-mounted-p
more mature. There is still the edge case that using an rclone remote
file name as emacs argument in batch mode does not mount in all cases
(something like "emacs /rclone:drive:/"), but this is a corner case I'll
continue to investigate. Visiting an rclone remote file interactively
seems to work better now.

> Let me know if I can provide more info.

Yes. Pls tell me whether it works for you ...

> Thanks,
>   Daniel

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26  1:39   ` Richard Stallman
  2018-11-26  3:39     ` Eli Zaretskii
@ 2018-11-26 19:15     ` Michael Albinus
  2018-11-27 22:55       ` Richard Stallman
  1 sibling, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-26 19:15 UTC (permalink / raw)
  To: Richard Stallman; +Cc: John Wiegley, emacs-devel

Richard Stallman <rms@gnu.org> writes:

Hi Richard,

> I see an ethical question here.  Is the rclone program free?

As Eli said already, rclone uses the MIT license.

> If so, how does it access Google Drive?
> Does it dynamically load any nonfree software from the Google server?
> If so, it would not be acceptable to suggest users use rclone.

Google Drive authentication is performed by the OAuth 2.0 protocol. This
does not require to download software from the Google server at runtime.

I've cloned the rclone software from its git repository
https://github.com/ncw/rclone.git. The OAuth 2.0 client software is
located in subdirectory rclone/vendor/golang.org/x/oauth2. It is
copied from the Golang project as far as I understand. But all files are
distributed with the rclone sources; no software needs to be downloaded
at runtime from Google Servers.

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26  3:39     ` Eli Zaretskii
@ 2018-11-26 20:50       ` Richard Stallman
  2018-11-27 16:00         ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Richard Stallman @ 2018-11-26 20:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: johnw, michael.albinus, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > It's under MIT license:

  >   https://rclone.org/licence/

Not the best choice, but it's a free license.

However, the other question remains: how does it access Google
Drive?

(Is there a difference between Google Drive and Google Docs?
I've heard people say they are the same thing.)

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26 18:55           ` Michael Albinus
@ 2018-11-27  9:44             ` Daniel Kraus
  2018-11-27 12:18               ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Daniel Kraus @ 2018-11-27  9:44 UTC (permalink / raw)
  To: emacs-devel

Hi!

Michael Albinus <michael.albinus@gmx.de> writes:

> I have pushed a patch to master which should make tramp-rclone-mounted-p
> more mature. There is still the edge case that using an rclone remote
> file name as emacs argument in batch mode does not mount in all cases
> (something like "emacs /rclone:drive:/"), but this is a corner case I'll
> continue to investigate. Visiting an rclone remote file interactively
> seems to work better now.

It is still the same (no rclone process and nothing mounted)
(see log below where I try do visit dired /rclone:drive: )

Maybe I'm doing something wrong?
After `emacs --debug-init -Q` I just eval (setq tramp-verbose 10)
and then M-x dired
with /rclone:drive:

`find-file` and `cd` in eshell doesn't recognise the tramp rclone path
at all.

Best,
  Daniel


;; Emacs: 27.0.50 Tramp: 2.4.1-pre -*- mode: outline; -*-
;; Location: /usr/share/emacs/27.0.50/lisp/net/tramp.elc Git: makepkg/ed3ae3fc58c12bb413f52026c06320a5fff84084
17:26:25.403174 tramp-get-connection-property (7) # case-insensitive undef
17:26:25.403827 tramp-get-connection-property (7) # uid-integer nil
17:26:25.403880 tramp-set-connection-property (7) # uid-integer 1000
17:26:25.403928 tramp-set-connection-property (7) # gid-integer 1000
17:26:25.403971 tramp-set-connection-property (7) # uid-string daniel
17:26:25.404055 tramp-set-connection-property (7) # gid-string daniel
17:26:25.404518 tramp-get-connection-property (7) # uid-integer 1000
17:26:25.406463 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...
17:26:25.425088 tramp-get-connection-property (7) # uid-integer 1000
17:26:25.425465 tramp-get-connection-property (7) # uid-integer 1000
17:26:25.426043 tramp-get-connection-property (7) # uid-integer 1000
17:26:25.426415 tramp-get-connection-property (7) # uid-integer 1000
17:26:25.426585 tramp-rclone-handle-file-system-info (5) # file system info:
17:26:25.426606 tramp-get-connection-property (7) # process-buffer nil
17:26:25.426627 tramp-get-connection-property (7) # process-buffer nil
17:26:25.426641 tramp-set-connection-property (7) # process-buffer nil
17:26:25.426667 tramp-get-connection-property (7) # about-args undef
17:26:25.426696 tramp-call-process (6) # ‘rclone about drive: --full’ nil *tramp/rclone drive*
17:26:28.640146 tramp-call-process (6) # 0
Total:   128849018880
Used:    453080042
Free:    79889333029
Trashed: 4707349
Other:   48506605809
17:26:28.640272 tramp-get-connection-property (7) # process-buffer nil
17:26:28.640434 tramp-set-file-property (8) #  used-bytes 453080042
17:26:28.640828 tramp-handle-insert-directory (0) # Opening directory /rclone:drive:...done
17:26:28.641603 tramp-get-connection-property (7) # uid-integer 1000



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-27  9:44             ` Daniel Kraus
@ 2018-11-27 12:18               ` Michael Albinus
  2018-11-27 13:14                 ` Daniel Kraus
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-27 12:18 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]

Daniel Kraus <daniel@kraus.my> writes:

> Hi!

Hi Daniel,

> It is still the same (no rclone process and nothing mounted)
> (see log below where I try do visit dired /rclone:drive: )
>
> Maybe I'm doing something wrong?
> After `emacs --debug-init -Q` I just eval (setq tramp-verbose 10)
> and then M-x dired with /rclone:drive:

> ;; Emacs: 27.0.50 Tramp: 2.4.1-pre -*- mode: outline; -*-
> ;; Location: /usr/share/emacs/27.0.50/lisp/net/tramp.elc Git: makepkg/ed3ae3fc58c12bb413f52026c06320a5fff84084

Hmm, this one looks strange. You are using git branch makepkg (a local
one), which points to git revision ed3ae3fc58c12bb413f52026c06320a5fff84084.
This is, at least in the master branch, a newer revision than my commit
from yesterday (f3328f995ee316cffa1a86117e6da2ba299d2c90). I guess, you
have merged the master branch into your makepkg branch.

However, tramp.elc is located at /usr/share/emacs/27.0.50/lisp/net/tramp.elc.
Do you have installed your latest Emacs compilation at this location?

Furthermore, does it help to remove the check for `non-essential' in
`tramp-rclone-maybe-open-connection'? That is


[-- Attachment #2: Type: text/plain, Size: 597 bytes --]

diff --git a/lisp/tramp-rclone.el b/lisp/tramp-rclone.el
index a1767ab3..a2cf8e64 100644
--- a/lisp/tramp-rclone.el
+++ b/lisp/tramp-rclone.el
@@ -489,7 +489,7 @@ file names."
   "Maybe open a connection VEC.
 Does not do anything if a connection is already open, but re-opens the
 connection if a previous connection has died for some reason."
-  (unless (or (null non-essential) (tramp-rclone-mounted-p vec))
+  (unless (tramp-rclone-mounted-p vec)
     (let ((host (tramp-file-name-host vec)))
       (if (zerop (length host))
 	  (tramp-error vec 'file-error "Storage %s not connected" host))

[-- Attachment #3: Type: text/plain, Size: 183 bytes --]


> `find-file` and `cd` in eshell doesn't recognise the tramp rclone path
> at all.

That's something else we don't need to care just now.

> Best,
>   Daniel

Best regards, Michael.

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-27 12:18               ` Michael Albinus
@ 2018-11-27 13:14                 ` Daniel Kraus
  2018-11-27 13:32                   ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Daniel Kraus @ 2018-11-27 13:14 UTC (permalink / raw)
  To: Michael Albinus; +Cc: emacs-devel

Hi Michael.

Michael Albinus <michael.albinus@gmx.de> writes:

>> ;; Emacs: 27.0.50 Tramp: 2.4.1-pre -*- mode: outline; -*-
>> ;; Location: /usr/share/emacs/27.0.50/lisp/net/tramp.elc Git: makepkg/ed3ae3fc58c12bb413f52026c06320a5fff84084
> Hmm, this one looks strange. You are using git branch makepkg (a local
> one), which points to git revision ed3ae3fc58c12bb413f52026c06320a5fff84084.
> This is, at least in the master branch, a newer revision than my commit
> from yesterday (f3328f995ee316cffa1a86117e6da2ba299d2c90). I guess, you
> have merged the master branch into your makepkg branch.
>
> However, tramp.elc is located at /usr/share/emacs/27.0.50/lisp/net/tramp.elc.
> Do you have installed your latest Emacs compilation at this location?

Yes, I use the Arch Linux AUR `emacs-git` package which compiles in the
`makepkg` branch and then installs in `/usr/share`.

> Furthermore, does it help to remove the check for `non-essential' in
> `tramp-rclone-maybe-open-connection'?

Yes, that did the trick. I removed that check and now it works :)

Best,
  Daniel



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-27 13:14                 ` Daniel Kraus
@ 2018-11-27 13:32                   ` Michael Albinus
  0 siblings, 0 replies; 24+ messages in thread
From: Michael Albinus @ 2018-11-27 13:32 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-devel

Daniel Kraus <daniel@kraus.my> writes:

> Hi Michael.

Hi Daniel,

>> Furthermore, does it help to remove the check for `non-essential' in
>> `tramp-rclone-maybe-open-connection'?
>
> Yes, that did the trick. I removed that check and now it works :)

Ahh, thanks! This was used for optimization. I'll remove this check, and
commit to master. Then I'll need to investigate whether there are drawbacks.

Thanks for all your tests! Pls keep us informed 'bout your experience
with the rclone Tramp method. I know that the performance is not
overwhelming, but I fear this is due to delays in rclone itself, rather
than in Tramp. Let's see whether I could improve it, by removing
roundtrips and alike.

> Best,
>   Daniel

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26 20:50       ` Richard Stallman
@ 2018-11-27 16:00         ` Michael Albinus
  2018-11-28 11:25           ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-27 16:00 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Eli Zaretskii, johnw, emacs-devel

Richard Stallman <rms@gnu.org> writes:

Hi Richard,

> However, the other question remains: how does it access Google
> Drive?

I'm not an expert in Google APIs. I've tried to understand by reading
several ressources plus the rclone source tree.

IIUC, rclone uses Google's Go App Engine as working horse. There seems
to be two different app engines, "Standard App Engine" and "Flexible App
Engine". The documentation reads like the Standard App Engine runs
locally on your machine, part of your local application, and the
Flexible App Engine runs in a virtual machine on Google
infrastructure. Accessing the data (files in Google Drive, for example)
is offered by a REST API in both cases.

The documentation of rclone says in rclone/vendor/google.golang.org/appengine/README.md:

--8<---------------cut here---------------start------------->8---
This repository supports the Go runtime on *App Engine standard*.

[...]

This package does not work on *App Engine flexible*.

There are many differences between the App Engine standard environment and
the flexible environment.
--8<---------------cut here---------------end--------------->8---

It doesn't look like software is downloaded from Google Servers in order
to run rclone. However, I will contact the rclone author for
clarification.

> (Is there a difference between Google Drive and Google Docs?
> I've heard people say they are the same thing.)

Don't know.

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-26 19:15     ` Michael Albinus
@ 2018-11-27 22:55       ` Richard Stallman
  0 siblings, 0 replies; 24+ messages in thread
From: Richard Stallman @ 2018-11-27 22:55 UTC (permalink / raw)
  To: Michael Albinus; +Cc: johnw, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > If so, how does it access Google Drive?
  > > Does it dynamically load any nonfree software from the Google server?
  > > If so, it would not be acceptable to suggest users use rclone.

  > Google Drive authentication is performed by the OAuth 2.0 protocol. This
  > does not require to download software from the Google server at runtime.

That's good news.  I think we're ok.

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-27 16:00         ` Michael Albinus
@ 2018-11-28 11:25           ` Michael Albinus
  2018-11-29  0:19             ` Richard Stallman
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-28 11:25 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Eli Zaretskii, johnw, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 571 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Richard,

> It doesn't look like software is downloaded from Google Servers in order
> to run rclone. However, I will contact the rclone author for
> clarification.

I've got an answer from the rclone maintainer. Major message:

--8<---------------cut here---------------start------------->8---
rclone is statically linked with all the libraries it needs and
doesn't download any code at runtime.
--8<---------------cut here---------------end--------------->8---

The whole reply is appended.

Best regards, Michael.


[-- Attachment #2: Type: message/rfc822, Size: 1734 bytes --]

From: Nick Craig-Wood <nick@craig-wood.com>
To: Michael Albinus <michael.albinus@gmx.de>
Subject: Re: rclone license question
Date: Wed, 28 Nov 2018 10:41:07 +0000 (40 minutes, 35 seconds ago)

On 27/11/18 16:09, Michael Albinus wrote:
> my name is Michael Albinus, I'm one of the Emacs developers.
I'm a grateful emacs user - thank you for your work :-)

> These days
> I'm working on integration of rclone into Emacs Tramp, that means a user
> can access a remote file in the cloud from inside Emacs with the help of
> rclone.

Great :-)

> During my work, the question has been raised, how rclone accesses Google
> Drive (and the other cloud storages in general). The major point is,
> whether this access includes the download of whatever libraries from a
> cloud storage at runtime. This could raise license problems, and maybe
> violates Emacs term of use,
>
> For Google Drive, I understand that rclone uses the Google Go Standard
> App Environment, which is bundled with the rclone sources. No further
> library download needed at runtime, IIUC.
>
> Could you pls confirm this? And are there other cloud storages
> integrated in rclone, which would require a library download at runtime?

rclone is statically linked with all the libraries it needs and
doesn't download any code at runtime.

rclone itself is under an MIT licence.  The libraries it uses are
under various Open Source licences and I haven't attempted to
catalogue them before!

I ran this tool (https://github.com/pmezard/licenses) over the source
- 
I've attached the report

Cheers

Nick
-- 
Nick Craig-Wood <nick@craig-wood.com> -- http://www.craig-wood.com/nick

[2. text/plain; rclone-licences.txt]...


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-28 11:25           ` Michael Albinus
@ 2018-11-29  0:19             ` Richard Stallman
  2018-11-30  9:46               ` Michael Albinus
  0 siblings, 1 reply; 24+ messages in thread
From: Richard Stallman @ 2018-11-29  0:19 UTC (permalink / raw)
  To: Michael Albinus; +Cc: eliz, johnw, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Thanks for checking this.  There is one more thing to check:
does rclone use, or invoke, a Javascript interpreter?

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-29  0:19             ` Richard Stallman
@ 2018-11-30  9:46               ` Michael Albinus
  2018-11-30 22:44                 ` Richard Stallman
  0 siblings, 1 reply; 24+ messages in thread
From: Michael Albinus @ 2018-11-30  9:46 UTC (permalink / raw)
  To: Richard Stallman; +Cc: eliz, johnw, emacs-devel

Richard Stallman <rms@gnu.org> writes:

Hi Richard,

> Thanks for checking this.  There is one more thing to check:
> does rclone use, or invoke, a Javascript interpreter?

I've checked the rclone sources. Javascript could be found only in the
rclone/doc subdirectory, the documentation subdirectory. All documents
using Javascript are contained there also as text variant, in parallel.

For the rclone machinery itself, no Javascript is used.

Best regards, Michael.



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: Tramp rclone
  2018-11-30  9:46               ` Michael Albinus
@ 2018-11-30 22:44                 ` Richard Stallman
  0 siblings, 0 replies; 24+ messages in thread
From: Richard Stallman @ 2018-11-30 22:44 UTC (permalink / raw)
  To: Michael Albinus; +Cc: eliz, johnw, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Thanks for checking this carefully.  I think you've checked it enough;
rclone is ok to use.

Happy hacking.

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-11-30 22:44 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-24 13:16 Tramp rclone Michael Albinus
2018-11-24 13:56 ` Eli Zaretskii
2018-11-25  3:01 ` John Wiegley
2018-11-25  8:38   ` Michael Albinus
2018-11-26  1:39   ` Richard Stallman
2018-11-26  3:39     ` Eli Zaretskii
2018-11-26 20:50       ` Richard Stallman
2018-11-27 16:00         ` Michael Albinus
2018-11-28 11:25           ` Michael Albinus
2018-11-29  0:19             ` Richard Stallman
2018-11-30  9:46               ` Michael Albinus
2018-11-30 22:44                 ` Richard Stallman
2018-11-26 19:15     ` Michael Albinus
2018-11-27 22:55       ` Richard Stallman
2018-11-25  3:56 ` Daniel Kraus
2018-11-25  8:43   ` Michael Albinus
2018-11-25 11:33     ` Daniel Kraus
2018-11-25 12:02       ` Michael Albinus
2018-11-26 12:35         ` Daniel Kraus
2018-11-26 18:55           ` Michael Albinus
2018-11-27  9:44             ` Daniel Kraus
2018-11-27 12:18               ` Michael Albinus
2018-11-27 13:14                 ` Daniel Kraus
2018-11-27 13:32                   ` Michael Albinus

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.