Hello, When trying to publish my Web site pages with the most recent Cygwin Emacs[1], I get the following error: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (error "Can't find library org") signal(error ("Can't find library org")) error("Can't find library %s" "org") find-library-name("org") (file-name-directory (find-library-name "org")) (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))) (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))) (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))) (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))))) (expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))) eval((expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))))))) custom-initialize-reset(org-ditaa-jar-path (expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))))))) custom-declare-variable(org-ditaa-jar-path (expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))) ("/usr/share/emacs/24.2/lisp/org/org-exp-blocks.elc" . 6117) :group org-babel :type string) require(org-exp-blocks) byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\207" [require org org-macs org-agenda org-exp-blocks ob-exp org-src] 2) require(org-exp) byte-code("\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\207" [require org-exp format-spec custom-declare-group org-export-html nil "Options specific for HTML export of Org-mode files." :tag "Org Export HTML" :group org-export] 8) require(org-html) byte-code("\300\301!\210\300\302!\207" [require org-html org-compat] 2) require(org-special-blocks) eval-buffer(#<buffer *load*> nil "/cygdrive/d/Users/sva/src/www/org-init.el" nil t) ; Reading at buffer position 1053 load-with-code-conversion("/cygdrive/d/Users/sva/src/www/org-init.el" "/cygdrive/d/Users/sva/src/www/org-init.el" nil t) load("/cygdrive/d/Users/sva/src/www/org-init.el" nil t) command-line-1(("--load" "./org-init.el" "--funcall" "publish-www")) command-line() normal-top-level() --8<---------------cut here---------------end--------------->8--- It seems that `org-ditaa' and `org-exp-blocks' both expect to find an "../contrib" directory. Such is not bundled with Emacs. Isn't the assumption wrong, then or should `contrib' be bundled as well? Best regards, Seb [1] Org-mode version 7.8.11 (org.elc @ /usr/share/emacs/24.2/lisp/org/) -- Sebastien Vauban
Hi Sébastien,
"Sebastien Vauban"
<wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes:
> It seems that `org-ditaa' and `org-exp-blocks' both expect to find an
> "../contrib" directory. Such is not bundled with Emacs. Isn't the assumption
> wrong, then or should `contrib' be bundled as well?
I don't know how Cygwin builds the Emacs package...
If this is a problem in Cygwin, it's a miracle (?) no Org user
reported it before!
I don't know how to fix this, things are fine in Org >=7.9.
--
Bastien
Hi Bastien,
Bastien wrote:
> "Sebastien Vauban" writes:
>
>> It seems that `org-ditaa' and `org-exp-blocks' both expect to find an
>> "../contrib" directory. Such is not bundled with Emacs. Isn't the assumption
>> wrong, then or should `contrib' be bundled as well?
>
> I don't know how Cygwin builds the Emacs package...
>
> If this is a problem in Cygwin, it's a miracle (?) no Org user
> reported it before!
>
> I don't know how to fix this, things are fine in Org >=7.9.
I don't think it's related to Cygwin per se. AFAIK:
- `contrib' is not bundled within Emacs, while
- `org-ditaa' and `org-exp-blocks' both expect that directory along where
org.el resides
in the current Org version...
Just grep for "../contrib":
./ob-ditaa.el:55: "../contrib"
./org-exp-blocks.el:252: "../contrib"
I guess the (relative) hardcoding should be avoided.
Best regards,
Seb
--
Sebastien Vauban
Hi Sébastien, yes, the default `org-ditaa-jar-path' value points to the contrib/ directory, but a wrong value for this variable does prevent publishing a web page -- unless you want to publish ditaa shunk without setting the `org-ditaa-jar-path' correctly. Is it what you did? Best, -- Bastien
Sebastien Vauban writes: > - `org-ditaa' and `org-exp-blocks' both expect that directory along where > org.el resides No they don't, this is only used as a fallback if they can't find the expected files elsewhere. You need to configure where they should find the JAR files. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf rackAttack V1.04R1: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
On 1/24/2013 1:27 PM, Sebastien Vauban wrote: > Hi Bastien, > > Bastien wrote: >> "Sebastien Vauban" writes: >> >>> It seems that `org-ditaa' and `org-exp-blocks' both expect to find an >>> "../contrib" directory. Such is not bundled with Emacs. Isn't the assumption >>> wrong, then or should `contrib' be bundled as well? >> I don't know how Cygwin builds the Emacs package... >> >> If this is a problem in Cygwin, it's a miracle (?) no Org user >> reported it before! >> >> I don't know how to fix this, things are fine in Org >=7.9. > I don't think it's related to Cygwin per se. AFAIK: > > - `contrib' is not bundled within Emacs, while > > - `org-ditaa' and `org-exp-blocks' both expect that directory along where > org.el resides > > in the current Org version... > > Just grep for "../contrib": > > ./ob-ditaa.el:55: "../contrib" > ./org-exp-blocks.el:252: "../contrib" > > I guess the (relative) hardcoding should be avoided. > > Best regards, > Seb > For my Org-mode in Cygwin I followed the instructions at http://orgmode.org/worg/org-faq.html#keeping-current-with-Org-mode-development This not allows you to have "bleeding edge" org-mode, but the contrib directory is now present in my Cygwin; I do not believe that the Org contrib directory is in the Cygwin Emacs. Regards, Charlie Millar
Hi Bastien, Achim and Charles,
Bastien wrote:
> yes, the default `org-ditaa-jar-path' value points to the contrib/
> directory, but a wrong value for this variable does prevent publishing a web
> page -- unless you want to publish ditaa shunk without setting the
> `org-ditaa-jar-path' correctly.
>
> Is it what you did?
Nope. I don't use DITAA in my Web pages at all.
When looking more carefully at the backtrace:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (error "Can't find library org")
signal(error ("Can't find library org"))
error("Can't find library %s" "org")
find-library-name("org")
(file-name-directory (find-library-name "org"))
(expand-file-name "../contrib" (file-name-directory (find-library-name "org")))
(file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))
(expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))))
(file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))
(expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org")))))))
eval((expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))))
custom-initialize-reset(org-ditaa-jar-path (expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))))
custom-declare-variable(org-ditaa-jar-path (expand-file-name "ditaa.jar" (file-name-as-directory (expand-file-name "scripts" (file-name-as-directory (expand-file-name "../contrib" (file-name-directory (find-library-name "org"))))))) ("/usr/share/emacs/24.2/lisp/org/org-exp-blocks.elc" . 6117) :group org-babel :type string)
require(org-exp-blocks)
byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\207" [require org org-macs org-agenda org-exp-blocks ob-exp org-src] 2)
require(org-exp)
byte-code("\300\301!\210\300\302!\210\300\303!\210\304\305!\204\306\305\307\"\210\300\207" [require org org-exp format-spec fboundp declare-function defalias (macro . #[(fn file &optional arglist fileonly) "\300\207" [nil] 1])] 3)
require(org-publish)
--8<---------------cut here---------------end--------------->8---
it seems that (in the latest Cygwin Emacs, that is Emacs bundled with Org-mode
version 7.8.11):
1. `org-publish' calls `org-exp' (still true as of today)
2. `org-exp' calls `org-exp-blocks' (not true anymore)
3. `org-exp-blocks' needs, somehow, a right value for DITAA.
Wait, wait, wait...
When reading the backtrace even more carefully, this 3rd observation is not
what's said by the error message: "../contrib" is not (I guess Achim is right)
the problem here, but the fact that `find-library-name' fails to find "org".
So, the problem comes down to the fact that the following...
#+begin_src emacs-lisp
(require 'find-func)
(find-library-name "org")
#+end_src
... does fail with the latest Cygwin [1]:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (error "Can't find library org")
signal(error ("Can't find library org"))
error("Can't find library %s" "org")
find-library-name("org")
--8<---------------cut here---------------end--------------->8---
OTOH, the following does work:
#+begin_src emacs-lisp
(message "%s" (locate-library "org"))
#+end_src
and returns:
--8<---------------cut here---------------start------------->8---
/usr/share/emacs/24.2/lisp/org/org.elc
--8<---------------cut here---------------end--------------->8---
I'm not sure to understand the (subtle?) difference between
`find-library-name' and `locate-library'...
IOW, using `locate-library' (if equivalent) in `org-exp-blocks' would (seem
to) be a workaround to this problem. But...?
Best regards,
Seb
--
Sebastien Vauban
[1] No local Org installation -- or at least no (add-to-list 'load-path).
Hi Sébastien,
"Sebastien Vauban"
<wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes:
> So, the problem comes down to the fact that the following...
>
> #+begin_src emacs-lisp
> (require 'find-func)
> (find-library-name "org")
> #+end_src
>
> ... does fail with the latest Cygwin [1]:
>
> Debugger entered--Lisp error: (error "Can't find library org")
> signal(error ("Can't find library org"))
> error("Can't find library %s" "org")
> find-library-name("org")
Please report the problem to Cygwin people. They can either
upgrade to a more recent version of Emacs, or try to sort out
the problem with (find-library-name "org"). I cannot do
anything from here, `find-library-name' is not in latest Org.
Best,
--
Bastien
Sebastien Vauban writes: > Wait, wait, wait... > > When reading the backtrace even more carefully, this 3rd observation is not > what's said by the error message: "../contrib" is not (I guess Achim is right) > the problem here, but the fact that `find-library-name' fails to find "org". > > So, the problem comes down to the fact that the following... > > #+begin_src emacs-lisp > (require 'find-func) > (find-library-name "org") > #+end_src > > ... does fail with the latest Cygwin [1]: I remember... that bug has since been fixed in Org. As a workaround, install the emacs-el package which contains the source files to prevent this from happening with that particular version of Emacs/Org on Cygwin. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Hi Bastien,
Bastien wrote:
> Sebastien Vauban writes:
>
>> So, the problem comes down to the fact that the following...
>>
>> #+begin_src emacs-lisp
>> (require 'find-func)
>> (find-library-name "org")
>> #+end_src
>>
>> ... does fail with the latest Cygwin [1]:
>>
>> Debugger entered--Lisp error: (error "Can't find library org")
>> signal(error ("Can't find library org"))
>> error("Can't find library %s" "org")
>> find-library-name("org")
>
> Please report the problem to Cygwin people. They can either upgrade to a
> more recent version of Emacs, or try to sort out the problem with
> (find-library-name "org"). I cannot do anything from here,
> `find-library-name' is not in latest Org.
DONE (forwarded onto Gmane's "os.cygwin" mailing list).
Best regards,
Seb
--
Sebastien Vauban
Hi Achim, Achim Gratz wrote: > Sebastien Vauban writes: >> Wait, wait, wait... >> >> When reading the backtrace even more carefully, this 3rd observation is not >> what's said by the error message: "../contrib" is not (I guess Achim is right) >> the problem here, but the fact that `find-library-name' fails to find "org". >> >> So, the problem comes down to the fact that the following... >> >> #+begin_src emacs-lisp >> (require 'find-func) >> (find-library-name "org") >> #+end_src >> >> ... does fail with the latest Cygwin [1]: > > I remember... that bug has since been fixed in Org. As a workaround, > install the emacs-el package which contains the source files to prevent > this from happening with that particular version of Emacs/Org on Cygwin. Exactly what you said... Perfectly seen! Though, I'm not sure to understand why that solves the issue... except if the emacs-el package gets updated more often that Emacs, then? -------------------- Start of forwarded message -------------------- From: Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org> Newsgroups: gmane.os.cygwin Subject: Re: Org mode package too old in Cygwin Emacs Date: Fri, 01 Feb 2013 09:02:56 -0500 On 2/1/2013 4:23 AM, Sebastien Vauban wrote: > I'm forwarding here a request of Bastien Guerry, maintainer of Org mode, after > looking at a problem I have when running Cygwin Emacs: > > -------------------- Start of forwarded message -------------------- > From: Bastien <bzg-whniv8GeeGkdnm+yROfE0A@public.gmane.org> > Newsgroups: gmane.emacs.orgmode > Subject: Re: Contrib missing from (Cygwin) Emacs > Date: Sat, 26 Jan 2013 11:20:00 +0100 > > Hi Sébastien, > > Sebastien Vauban writes: >> Debugger entered--Lisp error: (error "Can't find library org") >> signal(error ("Can't find library org")) >> error("Can't find library %s" "org") >> find-library-name("org") > > Please report the problem to Cygwin people. They can either upgrade to a more > recent version of Emacs, or try to sort out the problem with > (find-library-name "org"). I cannot do anything from here, `find-library-name' > is not in latest Org. Cygwin's emacs is the latest upstream release. The problem is that the current Org distributed with emacs requires the presence of elisp source files, which are not installed by default on Cygwin. Cygwin users of the current Org have to install the emacs-el package to get the elisp source files. Ken -------------------- End of forwarded message -------------------- Best regards, Seb -- Sebastien Vauban
Sebastien Vauban writes: > Though, I'm not sure to understand why that solves the issue... except if the > emacs-el package gets updated more often that Emacs, then? The original implementation of find-func looked explicitly for org.el, which wasn't ever working with either compressed or not-installed source files. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Achim Gratz writes: > Sebastien Vauban writes: >> Though, I'm not sure to understand why that solves the issue... except if the >> emacs-el package gets updated more often that Emacs, then? > > The original implementation of find-func looked explicitly for org.el, Sorry, what I meant was: the original compatibility macro for find-library-name (since that function is not available in all versions of Emacs). It has since been replaced with an implementation that uses a function that is available in all versions of Emacs and uses the same logic as load-library to find "org" so it will find org.elc, org.el.gz etc.pp. > which wasn't ever working with either compressed or not-installed source > files. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf Blofeld V1.15B11: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada