When publishing files using org-babel-tangle-publish, if the :tangle
header argument is given to a source block, and if org-babel-tangle-publish
is called from a directory other than the directory in which the source
file (that is, the file being tangled) exists, then org-babel-tangle-publish
fails in the copy-file step.

This happens because org-babel-tangle returns the file name (that is,
the basename only) mentioned in the :tangle header argument, and
org-babel-tangle-publish tries to copy that unqualified basename
instead of the absolute path to the file.

My emacs configuration follows. I used the minimal configuration given in
the Feedback section of the org mode manual. The backtrace for the error is
also attached.

Thanks,
Arun Isaac.

Emacs  : GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.2)
 of 2015-04-20 on bitzer.hoetzel.info
Package: Org-mode version 8.3.1 (release_8.3.1-241-gea7ac0 @ 
/home/arunisaac/.emacs.d/org-mode/lisp/)

current state:
==============
(setq
 org-tab-first-hook '(org-hide-block-toggle-maybe 
org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
 org-speed-command-hook '(org-speed-command-default-hook 
org-babel-speed-command-hook)
 org-occur-hook '(org-first-headline-recenter)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-html-format-drawer-function '(lambda (name contents) contents)
 org-latex-format-inlinetask-function 
'org-latex-format-inlinetask-default-function
 org-confirm-shell-link-function 'yes-or-no-p
 org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
 org-latex-format-headline-function 'org-latex-format-headline-default-function
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-latex-format-drawer-function '(lambda (name contents) contents)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer 
org-src-mode-configure-edit-buffer)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-babel-pre-tangle-hook '(save-buffer)
 org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook 
change-major-mode-hook org-show-block-all append local] 5]
                 #[nil "\300\301\302\303\304$\207" [org-add-hook 
change-major-mode-hook org-babel-show-result-all append local] 5]
                 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-ascii-format-drawer-function '(lambda (name contents width) contents)
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point 
org-babel-execute-safely-maybe)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers 
org-cycle-show-empty-lines org-optimize-window-after-visibility-change)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-html-format-headline-function 'org-html-format-headline-default-function
 org-html-format-inlinetask-function 
'org-html-format-inlinetask-default-function
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-publish-project-alist '(("basic" :base-directory 
"~/.emacs.d/org-tangle-bug/base" :base-extension "org" :publishing-directory
                              "~/.emacs.d/org-tangle-bug/pub" 
:publishing-function org-babel-tangle-publish)
                             )
 )
Debugger entered--Lisp error: (file-error "Opening input file" "no such file or 
directory" "/home/arunisaac/.emacs.d/org-tangle-bug/source.c")
  copy-file("source.c" "/home/arunisaac/.emacs.d/org-tangle-bug/pub/" t)
  #[(el) "\302 \303#\207" [el pub-dir copy-file t] 4]("source.c")
  mapc(#[(el) "\302    \303#\207" [el pub-dir copy-file t] 4] ("source.c"))
  org-babel-tangle-publish((:base-directory "~/.emacs.d/org-tangle-bug/base" 
:base-extension "org" :publishing-directory "~/.emacs.d/org-tangle-bug/pub" 
:publishing-function org-babel-tangle-publish) 
"/home/arunisaac/.emacs.d/org-tangle-bug/base/source.org" 
"/home/arunisaac/.emacs.d/org-tangle-bug/pub/")
  org-publish-file("/home/arunisaac/.emacs.d/org-tangle-bug/base/source.org" 
("basic" :base-directory "~/.emacs.d/org-tangle-bug/base" :base-extension "org" 
:publishing-directory "~/.emacs.d/org-tangle-bug/pub" :publishing-function 
org-babel-tangle-publish) t)
  #[(project) "\306@!\210A\307       \310\"\307     \311\"\307     
\312\"\206\313\307   \314\"\206#\315\307   \316\"\206-\307    
\317\"\2068  \307    \320\"\307    \321\"\322\n\"!\323\324\307 
\325\"\"\"\203^\326\327!\210\203g
\f\"\210!\330#\211$\203\216$@\211#\"\232\204\205\331#\332#\210$A\211$\204r*\307
   \333\"\203\245\334\307        
\325\"\"\210\331\"\332#\210\203\256\326\335!\210\336 .\207" [project 
project-plist exclude-regexp sitemap-p sitemap-filename sitemap-function 
org-publish-initialize-cache plist-get :exclude :auto-sitemap :sitemap-filename 
"sitemap.org" :sitemap-function org-publish-org-sitemap :sitemap-date-format 
:sitemap-file-entry-format :preparation-function :completion-function 
org-publish-get-base-files expand-file-name "theindex.org" :base-directory 
run-hooks preparation-function nil org-publish-file t :makeindex 
org-publish-index-generate-theindex completion-function 
org-publish-write-cache-file org-publish-sitemap-date-format 
org-publish-sitemap-file-entry-format files theindex file --dolist-tail--] 
6](("basic" :base-directory "~/.emacs.d/org-tangle-bug/base" :base-extension 
"org" :publishing-directory "~/.emacs.d/org-tangle-bug/pub" 
:publishing-function org-babel-tangle-publish))
  mapc(#[(project) "\306@!\210A\307  \310\"\307     \311\"\307     
\312\"\206\313\307   \314\"\206#\315\307   \316\"\206-\307    
\317\"\2068  \307    \320\"\307    \321\"\322\n\"!\323\324\307 
\325\"\"\"\203^\326\327!\210\203g
\f\"\210!\330#\211$\203\216$@\211#\"\232\204\205\331#\332#\210$A\211$\204r*\307
   \333\"\203\245\334\307        
\325\"\"\210\331\"\332#\210\203\256\326\335!\210\336 .\207" [project 
project-plist exclude-regexp sitemap-p sitemap-filename sitemap-function 
org-publish-initialize-cache plist-get :exclude :auto-sitemap :sitemap-filename 
"sitemap.org" :sitemap-function org-publish-org-sitemap :sitemap-date-format 
:sitemap-file-entry-format :preparation-function :completion-function 
org-publish-get-base-files expand-file-name "theindex.org" :base-directory 
run-hooks preparation-function nil org-publish-file t :makeindex 
org-publish-index-generate-theindex completion-function 
org-publish-write-cache-file org-publish-sitemap-date-format 
org-publish-sitemap-file-entry-format files theindex file --dolist-tail--] 6] 
(("basic" :base-directory "~/.emacs.d/org-tangle-bug/base" :base-extension 
"org" :publishing-directory "~/.emacs.d/org-tangle-bug/pub" 
:publishing-function org-babel-tangle-publish)))
  org-publish-projects((("basic" :base-directory 
"~/.emacs.d/org-tangle-bug/base" :base-extension "org" :publishing-directory 
"~/.emacs.d/org-tangle-bug/pub" :publishing-function org-babel-tangle-publish)))
  org-publish-project(("basic" :base-directory "~/.emacs.d/org-tangle-bug/base" 
:base-extension "org" :publishing-directory "~/.emacs.d/org-tangle-bug/pub" 
:publishing-function org-babel-tangle-publish) nil)
  call-interactively(org-publish-project record nil)
  command-execute(org-publish-project record)
  execute-extended-command(nil "org-publish-project")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

Attachment: signature.asc
Description: PGP signature

Reply via email to