emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* org mode R remote code evaluation
@ 2013-08-29  6:31 Johannes Rainer
  2013-08-29  8:25 ` Loris Bennett
  0 siblings, 1 reply; 18+ messages in thread
From: Johannes Rainer @ 2013-08-29  6:31 UTC (permalink / raw)
  To: emacs-orgmode

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

dear all,

I have some computation intense R-code that I want to run remotely on my
server, and, according to the org manual that should be possible with the
":dir" parameter. so I went on and tried the following (user/server masked):

#+BEGIN_SRC R :dir /xx@xxx:
  system("hostname")
#+END_SRC

when I execute it I get the error:

Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file /ssh:xx@xxx
:/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs...done
byte-code: Couldn't write region to
`/ssh:xx@xxx:/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs',
decode using `base64 -d -i >%s' failed

apparently, this temp folder does not exist on the linux server, it is
actually the temp folder from my local machine.

I get the same error when I try to execute remote shell code, so it's not R
related.

I also tried to start a ssh session using "M-x ssh" and used the source
block

#+BEGIN_SRC R :exports both :session *ssh xxx*
system("hostname")
#+END_SRC

on the server it executes the command but it can not write the results:

> xxx
> Warning message:
In file.rename(tfile, transfer.file) :
  cannot rename file '/tmp/RtmpsirjGl/file51c8f6ce4ec' to
'/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/babel-46345zSH/R-46345a4N',
reason 'No such file or directory'
>

I am using emacs 24.3 and Org-mode version 8.0.7 (release_8.0.7-384-g6fdc23)

I would be helpful for any suggestions how I could solve this problem.

thanks in advance

[-- Attachment #2: Type: text/html, Size: 1922 bytes --]

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

* Re: org mode R remote code evaluation
  2013-08-29  6:31 org mode R remote code evaluation Johannes Rainer
@ 2013-08-29  8:25 ` Loris Bennett
  2013-08-29 10:42   ` Johannes Rainer
  0 siblings, 1 reply; 18+ messages in thread
From: Loris Bennett @ 2013-08-29  8:25 UTC (permalink / raw)
  To: emacs-orgmode

Johannes Rainer <johannes.rainer@gmail.com> writes:

> dear all,
>
> I have some computation intense R-code that I want to run remotely on my server,
> and, according to the org manual that should be possible with the ":dir"
> parameter. so I went on and tried the following (user/server masked):
>
> #+BEGIN_SRC R :dir /xx@xxx:
>   system("hostname")
> #+END_SRC
>
> when I execute it I get the error:
>
> Tramp: Encoding region using function `base64-encode-region'...done
> Tramp: Decoding region into remote file
> /ssh:xx@xxx:/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs...done
> byte-code: Couldn't write region to
> `/ssh:xx@xxx:/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs',
> decode using `base64 -d -i >%s' failed
>
> apparently, this temp folder does not exist on the linux server, it is actually
> the temp folder from my local machine.
>
> I get the same error when I try to execute remote shell code, so it's not R
> related.
>
> I also tried to start a ssh session using "M-x ssh" and used the source block
>
> #+BEGIN_SRC R :exports both :session *ssh xxx*
> system("hostname")
> #+END_SRC
>
> on the server it executes the command but it can not write the results:
>
>> xxx
>> Warning message:
> In file.rename(tfile, transfer.file) :
>   cannot rename file '/tmp/RtmpsirjGl/file51c8f6ce4ec' to
> '/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/babel-46345zSH/R-46345a4N',
> reason 'No such file or directory'
>>
>
> I am using emacs 24.3 and Org-mode version 8.0.7 (release_8.0.7-384-g6fdc23)
>
> I would be helpful for any suggestions how I could solve this problem.
>
> thanks in advance

The following works for me:

#+BEGIN_SRC R :results output :dir /xxx@xxxxx:
system("hostname")
#+END_SRC

with Emacs 24.2.1 and 8.0.7 (8.0.7-6-g13cb28-elpaplus)

Cheers,

Loris

-- 
This signature is currently under construction.

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

* Re: org mode R remote code evaluation
  2013-08-29  8:25 ` Loris Bennett
@ 2013-08-29 10:42   ` Johannes Rainer
  2013-09-23 16:45     ` Alexander Vorobiev
  0 siblings, 1 reply; 18+ messages in thread
From: Johannes Rainer @ 2013-08-29 10:42 UTC (permalink / raw)
  To: Loris Bennett; +Cc: emacs-orgmode

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

thanks! so the ":results output" does the trick.




On Thu, Aug 29, 2013 at 10:25 AM, Loris Bennett
<loris.bennett@fu-berlin.de>wrote:

> Johannes Rainer <johannes.rainer@gmail.com> writes:
>
> > dear all,
> >
> > I have some computation intense R-code that I want to run remotely on my
> server,
> > and, according to the org manual that should be possible with the ":dir"
> > parameter. so I went on and tried the following (user/server masked):
> >
> > #+BEGIN_SRC R :dir /xx@xxx:
> >   system("hostname")
> > #+END_SRC
> >
> > when I execute it I get the error:
> >
> > Tramp: Encoding region using function `base64-encode-region'...done
> > Tramp: Decoding region into remote file
> > /ssh:xx@xxx
> :/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs...done
> > byte-code: Couldn't write region to
> > `/ssh:xx@xxx
> :/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs',
> > decode using `base64 -d -i >%s' failed
> >
> > apparently, this temp folder does not exist on the linux server, it is
> actually
> > the temp folder from my local machine.
> >
> > I get the same error when I try to execute remote shell code, so it's
> not R
> > related.
> >
> > I also tried to start a ssh session using "M-x ssh" and used the source
> block
> >
> > #+BEGIN_SRC R :exports both :session *ssh xxx*
> > system("hostname")
> > #+END_SRC
> >
> > on the server it executes the command but it can not write the results:
> >
> >> xxx
> >> Warning message:
> > In file.rename(tfile, transfer.file) :
> >   cannot rename file '/tmp/RtmpsirjGl/file51c8f6ce4ec' to
> >
> '/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/babel-46345zSH/R-46345a4N',
> > reason 'No such file or directory'
> >>
> >
> > I am using emacs 24.3 and Org-mode version 8.0.7
> (release_8.0.7-384-g6fdc23)
> >
> > I would be helpful for any suggestions how I could solve this problem.
> >
> > thanks in advance
>
> The following works for me:
>
> #+BEGIN_SRC R :results output :dir /xxx@xxxxx:
> system("hostname")
> #+END_SRC
>
> with Emacs 24.2.1 and 8.0.7 (8.0.7-6-g13cb28-elpaplus)
>
> Cheers,
>
> Loris
>
> --
> This signature is currently under construction.
>
>
>


-- 
Johannes Rainer, PhD
Applied Bioinformatics Group,
Division Molecular Pathophysiology,
Biocenter, Medical University Innsbruck,
Innrain 80/82 II, 6020 Innsbruck, Austria
and
Tyrolean Cancer Research Institute
Innrain 66, 6020 Innsbruck, Austria

Tel.:     +43 (0)512 9003 70961
Email:  johannes.rainer@i-med.ac.at
            johannes.rainer@tcri.at
URL:   http://bioinfo.i-med.ac.at

[-- Attachment #2: Type: text/html, Size: 3734 bytes --]

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

* Re: org mode R remote code evaluation
  2013-08-29 10:42   ` Johannes Rainer
@ 2013-09-23 16:45     ` Alexander Vorobiev
  2013-09-24 12:57       ` Michael Albinus
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Vorobiev @ 2013-09-23 16:45 UTC (permalink / raw)
  To: Johannes Rainer; +Cc: Loris Bennett, emacs-orgmode

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

The ":results output" doesn't help in my setup (I'm on Windows, the remote
system is linux, access is via putty/plink)

#+BEGIN_SRC sh :results output :dir /grid:
  ls
#+END_SRC

executing Sh code block...
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY...done
byte-code: Couldn't write region to
`/plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY', decode
using `tramp_perl_decode_with_module >%s' failed

The /Users directory obviously does not exist on linux.

Tramp itself works in my configuration, I can open files, etc. I have the
latest org-mode from elpa.

Thanks,
Alex


On Thu, Aug 29, 2013 at 5:42 AM, Johannes Rainer <
johannes.rainer@i-med.ac.at> wrote:

> thanks! so the ":results output" does the trick.
>
>
>
>
> On Thu, Aug 29, 2013 at 10:25 AM, Loris Bennett <
> loris.bennett@fu-berlin.de> wrote:
>
>> Johannes Rainer <johannes.rainer@gmail.com> writes:
>>
>> > dear all,
>> >
>> > I have some computation intense R-code that I want to run remotely on
>> my server,
>> > and, according to the org manual that should be possible with the ":dir"
>> > parameter. so I went on and tried the following (user/server masked):
>> >
>> > #+BEGIN_SRC R :dir /xx@xxx:
>> >   system("hostname")
>> > #+END_SRC
>> >
>> > when I execute it I get the error:
>> >
>> > Tramp: Encoding region using function `base64-encode-region'...done
>> > Tramp: Decoding region into remote file
>> > /ssh:xx@xxx
>> :/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs...done
>> > byte-code: Couldn't write region to
>> > `/ssh:xx@xxx
>> :/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/R-46345BQs',
>> > decode using `base64 -d -i >%s' failed
>> >
>> > apparently, this temp folder does not exist on the linux server, it is
>> actually
>> > the temp folder from my local machine.
>> >
>> > I get the same error when I try to execute remote shell code, so it's
>> not R
>> > related.
>> >
>> > I also tried to start a ssh session using "M-x ssh" and used the source
>> block
>> >
>> > #+BEGIN_SRC R :exports both :session *ssh xxx*
>> > system("hostname")
>> > #+END_SRC
>> >
>> > on the server it executes the command but it can not write the results:
>> >
>> >> xxx
>> >> Warning message:
>> > In file.rename(tfile, transfer.file) :
>> >   cannot rename file '/tmp/RtmpsirjGl/file51c8f6ce4ec' to
>> >
>> '/var/folders/ny/6kbb36310wz2kww8y8ctry600000gn/T/babel-46345zSH/R-46345a4N',
>> > reason 'No such file or directory'
>> >>
>> >
>> > I am using emacs 24.3 and Org-mode version 8.0.7
>> (release_8.0.7-384-g6fdc23)
>> >
>> > I would be helpful for any suggestions how I could solve this problem.
>> >
>> > thanks in advance
>>
>> The following works for me:
>>
>> #+BEGIN_SRC R :results output :dir /xxx@xxxxx:
>> system("hostname")
>> #+END_SRC
>>
>> with Emacs 24.2.1 and 8.0.7 (8.0.7-6-g13cb28-elpaplus)
>>
>> Cheers,
>>
>> Loris
>>
>> --
>> This signature is currently under construction.
>>
>>
>>
>
>
> --
> Johannes Rainer, PhD
> Applied Bioinformatics Group,
> Division Molecular Pathophysiology,
> Biocenter, Medical University Innsbruck,
> Innrain 80/82 II, 6020 Innsbruck, Austria
> and
> Tyrolean Cancer Research Institute
> Innrain 66, 6020 Innsbruck, Austria
>
> Tel.:     +43 (0)512 9003 70961
> Email:  johannes.rainer@i-med.ac.at
>             johannes.rainer@tcri.at
> URL:   http://bioinfo.i-med.ac.at
>
>
>

[-- Attachment #2: Type: text/html, Size: 5220 bytes --]

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

* Re: org mode R remote code evaluation
  2013-09-23 16:45     ` Alexander Vorobiev
@ 2013-09-24 12:57       ` Michael Albinus
  2013-09-24 13:21         ` Alexander Vorobiev
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-24 12:57 UTC (permalink / raw)
  To: Alexander Vorobiev; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> The ":results output" doesn't help in my setup (I'm on Windows, the
> remote system is linux, access is via putty/plink)

I do not run Windows, so I cannot reproduce exactly. However, ...

> #+BEGIN_SRC sh :results output :dir /grid:
> ls
> #+END_SRC
>
> executing Sh code block...
> Tramp: Encoding region using function `base64-encode-region'...done
> Tramp: Decoding region into remote file
> /plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY...done
> byte-code: Couldn't write region to
> `/plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY',
> decode using `tramp_perl_decode_with_module >%s' failed
>
> The /Users directory obviously does not exist on linux.

... this looks like an old problem. Which Emacs/Tramp version are you using?
Check variables `emacs-version' and `tramp-version'.

> Thanks,
> Alex

Best regards, Michael.

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

* Re: org mode R remote code evaluation
  2013-09-24 12:57       ` Michael Albinus
@ 2013-09-24 13:21         ` Alexander Vorobiev
  2013-09-24 13:25           ` Michael Albinus
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Vorobiev @ 2013-09-24 13:21 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

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

Here is what I have:

ELISP> emacs-version
"24.3.1"
ELISP> tramp-version
"2.2.7"
ELISP> org-version
"8.2"

Thanks,
Alex


On Tue, Sep 24, 2013 at 7:57 AM, Michael Albinus <michael.albinus@gmx.de>wrote:

> Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:
>
> > The ":results output" doesn't help in my setup (I'm on Windows, the
> > remote system is linux, access is via putty/plink)
>
> I do not run Windows, so I cannot reproduce exactly. However, ...
>
> > #+BEGIN_SRC sh :results output :dir /grid:
> > ls
> > #+END_SRC
> >
> > executing Sh code block...
> > Tramp: Encoding region using function `base64-encode-region'...done
> > Tramp: Decoding region into remote file
> > /plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY...done
> > byte-code: Couldn't write region to
> > `/plinkx:grid:/Users/avorobi/AppData/Local/Temp/ob-input-6116fuY',
> > decode using `tramp_perl_decode_with_module >%s' failed
> >
> > The /Users directory obviously does not exist on linux.
>
> ... this looks like an old problem. Which Emacs/Tramp version are you
> using?
> Check variables `emacs-version' and `tramp-version'.
>
> > Thanks,
> > Alex
>
> Best regards, Michael.
>

[-- Attachment #2: Type: text/html, Size: 1947 bytes --]

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

* Re: org mode R remote code evaluation
  2013-09-24 13:21         ` Alexander Vorobiev
@ 2013-09-24 13:25           ` Michael Albinus
       [not found]             ` <CAGOCFPUyTaQzVTSwjUOJBfwF8vUzyw=Gn43+bHs8Go8+RUU+nA@mail.gmail.com>
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-24 13:25 UTC (permalink / raw)
  To: Alexander Vorobiev; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> Here is what I have:
>
> ELISP> emacs-version
> "24.3.1"
> ELISP> tramp-version
> "2.2.7"
> ELISP> org-version
> "8.2"

Well, that sounds recent. Could you, please, perform (setq tramp-verbose 6)
prior your test? There will be a Tramp debug buffer, which I would like
to analyze.

> Thanks,
> Alex

Best regards, Michael.

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

* Re: org mode R remote code evaluation
       [not found]             ` <CAGOCFPUyTaQzVTSwjUOJBfwF8vUzyw=Gn43+bHs8Go8+RUU+nA@mail.gmail.com>
@ 2013-09-24 18:40               ` Michael Albinus
  2013-09-25  4:24                 ` Alexander Vorobiev
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-24 18:40 UTC (permalink / raw)
  To: Alexander Vorobiev; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> Hi Michael,

Hi Alex,

> Here it is.

Thanks. I believe, the following patch shall cure it:

--8<---------------cut here---------------start------------->8---
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -2735,8 +2735,12 @@
 value of `temporary-file-directory' temporarily set to the value
 of `org-babel-temporary-directory'."
   (if (file-remote-p default-directory)
       (let ((prefix
+            ;; We cannot use `temporary-file-directory' as local part
+            ;; on the remote host, because it might be another OS
+            ;; there.  So we assume "/tmp", which ought to exist on
+            ;; relevant architectures.
              (concat (file-remote-p default-directory)
-                     (expand-file-name prefix temporary-file-directory))))
+                     (expand-file-name prefix "/tmp/"))))
         (make-temp-file prefix nil suffix))
     (let ((temporary-file-directory
           (or (and (boundp 'org-babel-temporary-directory)
--8<---------------cut here---------------end--------------->8---

Could you, please, test?

> Thanks,
> Alex

Best regards, Michael.

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

* Re: org mode R remote code evaluation
  2013-09-24 18:40               ` Michael Albinus
@ 2013-09-25  4:24                 ` Alexander Vorobiev
  2013-09-25 10:44                   ` Michael Albinus
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Vorobiev @ 2013-09-25  4:24 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

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

Hi Michael,

The patch seems to be working, the only thing I noticed is having
http://www.emacswiki.org/emacs/setup-cygwin.el loaded together with the
patched ob-core.el makes tramp prepend "/cygwin" to /tmp/. When I disabled
(require 'setup-cygwin) the patch works as expected. Outside of org/babel
setup-cygwin has no effect on Tramp.

Thanks,
Alex


On Tue, Sep 24, 2013 at 1:40 PM, Michael Albinus <michael.albinus@gmx.de>wrote:

> Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:
>
> > Hi Michael,
>
> Hi Alex,
>
> > Here it is.
>
> Thanks. I believe, the following patch shall cure it:
>
> --8<---------------cut here---------------start------------->8---
> --- a/lisp/ob-core.el
> +++ b/lisp/ob-core.el
> @@ -2735,8 +2735,12 @@
>  value of `temporary-file-directory' temporarily set to the value
>  of `org-babel-temporary-directory'."
>    (if (file-remote-p default-directory)
>        (let ((prefix
> +            ;; We cannot use `temporary-file-directory' as local part
> +            ;; on the remote host, because it might be another OS
> +            ;; there.  So we assume "/tmp", which ought to exist on
> +            ;; relevant architectures.
>               (concat (file-remote-p default-directory)
> -                     (expand-file-name prefix temporary-file-directory))))
> +                     (expand-file-name prefix "/tmp/"))))
>          (make-temp-file prefix nil suffix))
>      (let ((temporary-file-directory
>            (or (and (boundp 'org-babel-temporary-directory)
> --8<---------------cut here---------------end--------------->8---
>
> Could you, please, test?
>
> > Thanks,
> > Alex
>
> Best regards, Michael.
>

[-- Attachment #2: Type: text/html, Size: 2418 bytes --]

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

* Re: org mode R remote code evaluation
  2013-09-25  4:24                 ` Alexander Vorobiev
@ 2013-09-25 10:44                   ` Michael Albinus
  2013-09-25 18:15                     ` Eric Schulte
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-25 10:44 UTC (permalink / raw)
  To: Alexander Vorobiev; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> Hi Michael,

Hi Alex,

> The patch seems to be working, the only thing I noticed is having
> http://www.emacswiki.org/emacs/setup-cygwin.el loaded together with
> the patched ob-core.el makes tramp prepend "/cygwin" to /tmp/. When I
> disabled (require 'setup-cygwin) the patch works as expected. Outside
> of org/babel setup-cygwin has no effect on Tramp.

This problem does not seem to be related to org-mode code. Could
somebody, please, commit my patch to org's repository? Thanks.

I will try to find out what's up with Tramp and Cygwin. Sadly, it has
been a misalliance very often :-(

> Thanks,
> Alex

Best regards, Michael.

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

* Re: org mode R remote code evaluation
  2013-09-25 10:44                   ` Michael Albinus
@ 2013-09-25 18:15                     ` Eric Schulte
  2013-09-25 19:03                       ` Michael Albinus
  2013-09-27 11:39                       ` Michael Albinus
  0 siblings, 2 replies; 18+ messages in thread
From: Eric Schulte @ 2013-09-25 18:15 UTC (permalink / raw)
  To: Michael Albinus
  Cc: Loris Bennett, emacs-orgmode, Alexander Vorobiev, Johannes Rainer

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

> Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:
>
>> Hi Michael,
>
> Hi Alex,
>
>> The patch seems to be working, the only thing I noticed is having
>> http://www.emacswiki.org/emacs/setup-cygwin.el loaded together with
>> the patched ob-core.el makes tramp prepend "/cygwin" to /tmp/. When I
>> disabled (require 'setup-cygwin) the patch works as expected. Outside
>> of org/babel setup-cygwin has no effect on Tramp.
>
> This problem does not seem to be related to org-mode code. Could
> somebody, please, commit my patch to org's repository? Thanks.
>

I'd rather not hard-code the value of "/tmp/".  Perhaps you could rework
the patch so that it introduces a new customizable variable (including a
documentation string) so that users can set the value for their system.

If you can keep the patch under 15LOC we can include it w/o requiring
FSF copyright assignment, otherwise see [1] for contribution details.
Also, please package the patch with git format-patch.

Thanks,

>
> I will try to find out what's up with Tramp and Cygwin. Sadly, it has
> been a misalliance very often :-(
>
>> Thanks,
>> Alex
>
> Best regards, Michael.
>


Footnotes: 
[1]   http://orgmode.org/worg/org-contribute.html

-- 
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D

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

* Re: org mode R remote code evaluation
  2013-09-25 18:15                     ` Eric Schulte
@ 2013-09-25 19:03                       ` Michael Albinus
  2013-09-25 20:36                         ` Alexander Vorobiev
  2013-09-27 11:39                       ` Michael Albinus
  1 sibling, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-25 19:03 UTC (permalink / raw)
  To: Eric Schulte
  Cc: Loris Bennett, emacs-orgmode, Alexander Vorobiev, Johannes Rainer

Eric Schulte <schulte.eric@gmail.com> writes:

> I'd rather not hard-code the value of "/tmp/".  Perhaps you could rework
> the patch so that it introduces a new customizable variable (including a
> documentation string) so that users can set the value for their system.

Will do, tomorrow. I would even prefer a more general solution, a new
function which returns a ("the") temp directory on a remote host. This
would be useful also outside org-mode. But this would require changes in
Emacs/Tramp, which won't be applicable for org immediately (backwards
compatibility, and alike).

> If you can keep the patch under 15LOC we can include it w/o requiring
> FSF copyright assignment, otherwise see [1] for contribution details.

No problem. As Tramp maintainer, I have signed the FSF papers for Emacs
10+ years ago. This shall be valid also for org patches.

> Thanks,

Best regards, Michael.

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

* Re: org mode R remote code evaluation
  2013-09-25 19:03                       ` Michael Albinus
@ 2013-09-25 20:36                         ` Alexander Vorobiev
  2013-09-26  8:11                           ` Michael Albinus
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Vorobiev @ 2013-09-25 20:36 UTC (permalink / raw)
  To: Michael Albinus
  Cc: Loris Bennett, emacs-orgmode, Johannes Rainer, Eric Schulte

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

Michael,

I found that the patch doesn't work for sql code blocks. Here is an example

* this works
#+BEGIN_SRC sh :results output :dir /grid:
  ls
#+END_SRC

* this doesn't work
#+BEGIN_SRC sql :engine postgresql :dir /grid: :results output
  select 1+2 as three;
#+END_SRC

and here is what appears in *Messages*:

executing Sh code block...
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/ob-input-7928Z4Q...done
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/ob-error-7928zMd...done
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/ob-input-7928Z4Q...done
Wrote /plinkx:grid:/tmp/ob-input-7928Z4Q
Code block evaluation complete.
executing Sql code block...
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/sql-in-7928arv...done
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/sql-out-7928Z_E...done
Tramp: Encoding region using function `base64-encode-region'...done
Tramp: Decoding region into remote file
/plinkx:grid:/tmp/sql-in-7928arv...done
psql -A  -F " "  -f "c:/tmp/sql-in-7928arv" -o "c:/tmp/sql-out-7928Z_E"
-f c:/tmp/sql-in-7928arv -o c:/tmp/sql-out-7928Z_E
No such file or directory 'c:/tmp/sql-in-7928arv'
Tramp: Inserting `/plinkx:grid:/tmp/sql-out-7928Z_E'...
Tramp: Encoding remote file /plinkx:grid:/tmp/sql-out-7928Z_E...done
Tramp: Decoding remote file /plinkx:grid:/tmp/sql-out-7928Z_E with function
base64-decode-region...
Wrote c:/Users/avorobi/AppData/Local/Temp/tramp.7928AeX
Tramp: Decoding remote file /plinkx:grid:/tmp/sql-out-7928Z_E with function
base64-decode-region...done
Tramp: Inserting `/plinkx:grid:/tmp/sql-out-7928Z_E'...done

So shell commands work but the arguments passed to psql have "c:" at the
beginning.

Thanks
Alex



On Wed, Sep 25, 2013 at 2:03 PM, Michael Albinus <michael.albinus@gmx.de>wrote:

> Eric Schulte <schulte.eric@gmail.com> writes:
>
> > I'd rather not hard-code the value of "/tmp/".  Perhaps you could rework
> > the patch so that it introduces a new customizable variable (including a
> > documentation string) so that users can set the value for their system.
>
> Will do, tomorrow. I would even prefer a more general solution, a new
> function which returns a ("the") temp directory on a remote host. This
> would be useful also outside org-mode. But this would require changes in
> Emacs/Tramp, which won't be applicable for org immediately (backwards
> compatibility, and alike).
>
> > If you can keep the patch under 15LOC we can include it w/o requiring
> > FSF copyright assignment, otherwise see [1] for contribution details.
>
> No problem. As Tramp maintainer, I have signed the FSF papers for Emacs
> 10+ years ago. This shall be valid also for org patches.
>
> > Thanks,
>
> Best regards, Michael.
>

[-- Attachment #2: Type: text/html, Size: 4277 bytes --]

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

* Re: org mode R remote code evaluation
  2013-09-25 20:36                         ` Alexander Vorobiev
@ 2013-09-26  8:11                           ` Michael Albinus
       [not found]                             ` <CAGOCFPXj2-3FruuD=K7=H+SQ308dzkH1P=qP0b17xQuoW9MkPQ@mail.gmail.com>
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-26  8:11 UTC (permalink / raw)
  To: Alexander Vorobiev
  Cc: Loris Bennett, emacs-orgmode, Johannes Rainer, Eric Schulte

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> Michael,

Hi Alex,

> * this doesn't work
> #+BEGIN_SRC sql :engine postgresql :dir /grid: :results output
> select 1+2 as three;
> #+END_SRC
>
> /plinkx:grid:/tmp/sql-in-7928arv...done
> psql -A -F " " -f "c:/tmp/sql-in-7928arv" -o "c:/tmp/sql-out-7928Z_E" 
> -f c:/tmp/sql-in-7928arv -o c:/tmp/sql-out-7928Z_E
> No such file or directory 'c:/tmp/sql-in-7928arv'

Try this extended patch:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 5a032a1..2789f47 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -2680,11 +2680,7 @@ Fixes a bug in
`tramp-handle-call-process-region'."
 
 (defun org-babel-local-file-name (file)
   "Return the local name component of FILE."
-  (if (file-remote-p file)
-      (let (localname)
-       (with-parsed-tramp-file-name file nil
-                                    localname))
-    file))
+  (or (file-remote-p file 'localname) file))
 
 (defun org-babel-process-file-name (name &optional no-quote-p)
   "Prepare NAME to be used in an external process.
@@ -2694,7 +2690,10 @@ remotely.  The file name is then processed by
   `expand-file-name'.
 Unless second argument NO-QUOTE-P is non-nil, the file name is
 additionally processed by `shell-quote-argument'"
   ((lambda (f) (if no-quote-p f (shell-quote-argument f)))
-   (expand-file-name (org-babel-local-file-name name))))
+   ;; We must apply `expand-file-name' on the whole filename.  If we
+   ;; would apply it on the local filename only, undesired effects
+   ;; like prepending a drive letter on MS Windows could happen.
+   (org-babel-local-file-name (expand-file-name name))))
 
 (defvar org-babel-temporary-directory)
 (unless (or noninteractive (boundp 'org-babel-temporary-directory))
@@ -2736,7 +2735,7 @@ of `org-babel-temporary-directory'."
   (if (file-remote-p default-directory)
       (let ((prefix
              (concat (file-remote-p default-directory)
-                     (expand-file-name prefix temporary-file-directory))))
+                     (expand-file-name prefix "/tmp/"))))
         (make-temp-file prefix nil suffix))
     (let ((temporary-file-directory
           (or (and (boundp 'org-babel-temporary-directory)
--8<---------------cut here---------------end--------------->8---

> Thanks
> Alex

Best regards, Michael.

PS: the analysis of your cygwin problem is delayed. I don't run MS
Windows on my machines, I need to hijack a machine from my wife or
somebody else for analysis.

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

* Re: org mode R remote code evaluation
       [not found]                               ` <87mwmzy16d.fsf@gmx.de>
@ 2013-09-26 17:28                                 ` Alexander Vorobiev
  2013-09-26 17:43                                   ` Michael Albinus
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Vorobiev @ 2013-09-26 17:28 UTC (permalink / raw)
  To: Michael Albinus, emacs-orgmode, Johannes Rainer, Loris Bennett

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

#+BEGIN_SRC sql :engine postgresql :dir /grid: :results output :colnames yes
  select 2+2 as four, 1+1 as one;
#+END_SRC

#+RESULTS:
| 4\t2 |

It works! As you see there are still some problems with ob-sql (no column
names and \t is not parsed correctly) but the remote execution seems to be
fixed.

Thanks,
Alex


On Thu, Sep 26, 2013 at 11:53 AM, Michael Albinus <michael.albinus@gmx.de>wrote:

> Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:
>
> > Hi Michael,
>
> Hi Alex,
>
> > I can't apply the patch for some reason.
>
> Strange.
>
> > Could you send it and/or new ob-core.el as a attachment?
>
> It's appended.
>
> > Thanks,
> > Alex
>
> Best regards, Michael.
>
>

[-- Attachment #2: Type: text/html, Size: 1381 bytes --]

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

* Re: org mode R remote code evaluation
  2013-09-26 17:28                                 ` Alexander Vorobiev
@ 2013-09-26 17:43                                   ` Michael Albinus
  0 siblings, 0 replies; 18+ messages in thread
From: Michael Albinus @ 2013-09-26 17:43 UTC (permalink / raw)
  To: Alexander Vorobiev; +Cc: Loris Bennett, emacs-orgmode, Johannes Rainer

Alexander Vorobiev <alexander.vorobiev@gmail.com> writes:

> #+BEGIN_SRC sql :engine postgresql :dir /grid: :results output :
> colnames yes
> select 2+2 as four, 1+1 as one;
> #+END_SRC
>
> #+RESULTS:
> | 4\t2 |
>
> It works! As you see there are still some problems with ob-sql (no
> column names and \t is not parsed correctly) but the remote execution
> seems to be fixed.

Great! I will prepare the patch tomorrow, as instructed by Eric.

> Thanks,
> Alex

Best regards, Michael.

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

* Re: org mode R remote code evaluation
  2013-09-25 18:15                     ` Eric Schulte
  2013-09-25 19:03                       ` Michael Albinus
@ 2013-09-27 11:39                       ` Michael Albinus
  2013-09-28 11:41                         ` Eric Schulte
  1 sibling, 1 reply; 18+ messages in thread
From: Michael Albinus @ 2013-09-27 11:39 UTC (permalink / raw)
  To: Eric Schulte
  Cc: Loris Bennett, emacs-orgmode, Alexander Vorobiev, Johannes Rainer

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

Eric Schulte <schulte.eric@gmail.com> writes:

> I'd rather not hard-code the value of "/tmp/".  Perhaps you could rework
> the patch so that it introduces a new customizable variable (including a
> documentation string) so that users can set the value for their system.
>
> Also, please package the patch with git format-patch.

Patch is appended.

> Thanks,

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ob-core.el-org-babel-local-file-name-Simplify.patch --]
[-- Type: text/x-diff, Size: 2737 bytes --]

From 2b8db5486de75ec35c2c0d3e6063847cf582ace7 Mon Sep 17 00:00:00 2001
From: Michael Albinus <michael.albinus@gmx.de>
Date: Fri, 27 Sep 2013 13:34:03 +0200
Subject: [PATCH] * ob-core.el (org-babel-local-file-name): Simplify.
 (org-babel-process-file-name): Apply `expand-file-name' first.
 (org-babel-remote-temporary-directory): New defcustom. (org-babel-temp-file):
 Use it.

---
 lisp/ob-core.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 5a032a1..a7c227b 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -2680,11 +2680,7 @@ Fixes a bug in `tramp-handle-call-process-region'."
 
 (defun org-babel-local-file-name (file)
   "Return the local name component of FILE."
-  (if (file-remote-p file)
-      (let (localname)
-	(with-parsed-tramp-file-name file nil
-				     localname))
-    file))
+  (or (file-remote-p file 'localname) file))
 
 (defun org-babel-process-file-name (name &optional no-quote-p)
   "Prepare NAME to be used in an external process.
@@ -2694,7 +2690,10 @@ remotely.  The file name is then processed by `expand-file-name'.
 Unless second argument NO-QUOTE-P is non-nil, the file name is
 additionally processed by `shell-quote-argument'"
   ((lambda (f) (if no-quote-p f (shell-quote-argument f)))
-   (expand-file-name (org-babel-local-file-name name))))
+   ;; We must apply `expand-file-name' on the whole filename.  If we
+   ;; would apply it on the local filename only, undesired effects
+   ;; like prepending a drive letter on MS Windows could happen.
+   (org-babel-local-file-name (expand-file-name name))))
 
 (defvar org-babel-temporary-directory)
 (unless (or noninteractive (boundp 'org-babel-temporary-directory))
@@ -2707,6 +2706,11 @@ additionally processed by `shell-quote-argument'"
 Used by `org-babel-temp-file'.  This directory will be removed on
 Emacs shutdown."))
 
+(defcustom org-babel-remote-temporary-directory "/tmp/"
+  "Directory to hold temporary files on remote hosts."
+  :group 'org-babel
+  :type 'string)
+
 (defmacro org-babel-result-cond (result-params scalar-form &rest table-forms)
   "Call the code to parse raw string results according to RESULT-PARAMS."
   (declare (indent 1)
@@ -2736,7 +2740,8 @@ of `org-babel-temporary-directory'."
   (if (file-remote-p default-directory)
       (let ((prefix
              (concat (file-remote-p default-directory)
-                     (expand-file-name prefix temporary-file-directory))))
+                     (expand-file-name
+		      prefix org-babel-remote-temporary-directory))))
         (make-temp-file prefix nil suffix))
     (let ((temporary-file-directory
 	   (or (and (boundp 'org-babel-temporary-directory)
-- 
1.8.1.2


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

* Re: org mode R remote code evaluation
  2013-09-27 11:39                       ` Michael Albinus
@ 2013-09-28 11:41                         ` Eric Schulte
  0 siblings, 0 replies; 18+ messages in thread
From: Eric Schulte @ 2013-09-28 11:41 UTC (permalink / raw)
  To: Michael Albinus
  Cc: Loris Bennett, emacs-orgmode, Alexander Vorobiev, Eric Schulte,
	Johannes Rainer

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

> Eric Schulte <schulte.eric@gmail.com> writes:
>
>> I'd rather not hard-code the value of "/tmp/".  Perhaps you could rework
>> the patch so that it introduces a new customizable variable (including a
>> documentation string) so that users can set the value for their system.
>>
>> Also, please package the patch with git format-patch.
>
> Patch is appended.
>

Applied, Thanks for the patch!

I've also added you to the list of contributors on worg, so I shouldn't
ask you to complete the FSF paperwork again :).

Cheers,

>
>> Thanks,
>
> Best regards, Michael.
>
>

-- 
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D

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

end of thread, other threads:[~2013-09-28 12:39 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-29  6:31 org mode R remote code evaluation Johannes Rainer
2013-08-29  8:25 ` Loris Bennett
2013-08-29 10:42   ` Johannes Rainer
2013-09-23 16:45     ` Alexander Vorobiev
2013-09-24 12:57       ` Michael Albinus
2013-09-24 13:21         ` Alexander Vorobiev
2013-09-24 13:25           ` Michael Albinus
     [not found]             ` <CAGOCFPUyTaQzVTSwjUOJBfwF8vUzyw=Gn43+bHs8Go8+RUU+nA@mail.gmail.com>
2013-09-24 18:40               ` Michael Albinus
2013-09-25  4:24                 ` Alexander Vorobiev
2013-09-25 10:44                   ` Michael Albinus
2013-09-25 18:15                     ` Eric Schulte
2013-09-25 19:03                       ` Michael Albinus
2013-09-25 20:36                         ` Alexander Vorobiev
2013-09-26  8:11                           ` Michael Albinus
     [not found]                             ` <CAGOCFPXj2-3FruuD=K7=H+SQ308dzkH1P=qP0b17xQuoW9MkPQ@mail.gmail.com>
     [not found]                               ` <87mwmzy16d.fsf@gmx.de>
2013-09-26 17:28                                 ` Alexander Vorobiev
2013-09-26 17:43                                   ` Michael Albinus
2013-09-27 11:39                       ` Michael Albinus
2013-09-28 11:41                         ` Eric Schulte

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).