Summary: | app-emacs/org-mode - Export as Opendocument text fails with error "Cannot find factory styles file. Check package dir layout" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Paul Jewell <paul> |
Component: | Current packages | Assignee: | Emacs project <emacs> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
URL: | http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00799.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Paul Jewell
2011-12-28 08:41:10 UTC
Just dome some more testing - this bug is _not_ present in org-mode-9999 in the emacs overlay. (In reply to comment #1) > Just dome some more testing - this bug is _not_ present in org-mode-9999 in > the emacs overlay. Just a wild guess, can you try if the following upstream commit fixes it: <http://orgmode.org/w/?p=org-mode.git;a=commitdiff;h=f237ef8b3766c7fcf4213d8c334ef403ede1c6e5> If not, could you bisect the git repo to find the commit? Please ignore my previous comment. In fact, org-mode-7.8.02 doesn't install the style files (OrgOdtContentTemplate.xml and OrgOdtStyles.xml) at all. The live version installs them in /usr/share/emacs/site-lisp/etc/styles which is against our policy. They should go to /usr/share/emacs/etc/org-mode/styles instead. Therefore, I've added etcdir="${ED}${SITEETC}/${PN}" to emake install in the live ebuild. We'd have to assign org-odt-styles-dir in our site initialisation file, but unfortunately it is defined by a defconst. Probably this should be changed to a defvar upstream. Reported upstream, see URL. Thanks Ulrich! I see you are having to put some work in upstream to make your point! For completeness, as expected (if I understood your comment #3 correctly) the changes to the live ebuild now make the behaviour consistent with the 7.8.02 version (ie, with the original error message). Rgds., Paul Let's wait for a few days if upstream will come up with a solution, or even with a new release. If not, I'll commit a 7.8.02-r1 with a proper patch. (In reply to comment #5) > [...] the changes to the live ebuild now make the behaviour consistent with > the 7.8.02 version (ie, with the original error message). Yes, that's unfortunate. We could patch the live version, but experience shows that such patches to a moving target are likely to fail after a very short time. A fix has been committed upstream: <http://orgmode.org/w/?p=org-mode.git;a=commit;h=07f006e4fd9a7b66643cd7b404c8994665ba8300> Paul, could you verify if org-mode-9999 from the emacs overlay is working again? Hi Ulrich, Still doesn't appear to be working - same error message as before. Looking at (C-h v) org-odt-lib-dir gives the value as "/usr/share/emacs/site-lisp/org-mode/", which appears to be incorrect based on your earlier comments. I have checked the installed org-odt.el - I can confirm it has had the patch applied (just in case I did something wrong here!). The styles have now been installed in /usr/share/emacs/etc/styles. This is not as you stated in comment 3 - is that an intentional change or an oversight? This is interesting: C-h v on org-odt-styles-dir-list gives: org-odt-styles-dir-list's value is (nil "/var/tmp/portage/app-emacs/org-mode-9999/image/usr/share/emacs/etc/styles/" "/usr/share/emacs/site-lisp/etc/styles/" "/usr/share/emacs/site-lisp/org-mode/etc/styles/" "/usr/share/emacs/23.3/etc/org/") Looks like it is being set up using the locations available during ebuild processing, not the location after installation? If I move the compiled org-odt.elc, everything works as expected. Repeating the variable check above gives: org-odt-styles-dir-list's value is (nil "/var/tmp/portage/app-emacs/org-mode-9999/image/usr/share/emacs/etc/styles/" "/usr/share/emacs/etc/styles/" "/usr/share/emacs/site-lisp/etc/styles/" "/usr/share/emacs/23.3/etc/org/") Still has the sandbox location, but does have the correct location in the list. Byte compiling the file again in the installed location and everything still works correctly. I have to be honest Ulrich, this is pushing the boundaries of my knowledge (which I enjoy), but I cannot see where the /var/tmp/portage reference is coming from. If you can enlighten me, that would be great! Thanks, Paul Did you resync the emacs overlay? Upstream has renamed the Makefile parameter from "etcdir" to "datadir", and I've updated the live ebuild accordingly. How silly of me! I have now re-synced the overlay, and everything now works correctly. Es tut mir leid! Thanks! Paul (In reply to comment #13) > How silly of me! I have now re-synced the overlay, and everything now works > correctly. Es tut mir leid! My fault, too. I should have mentioned in comment #7 that I had updated the ebuild. O.K., so the live version works. I'll take care of 7.8.02 on the weekend. (In reply to comment #9) > This is interesting: > C-h v on org-odt-styles-dir-list gives: > > org-odt-styles-dir-list's value is > (nil > "/var/tmp/portage/app-emacs/org-mode-9999/image/usr/share/emacs/etc/styles/" > "/usr/share/emacs/site-lisp/etc/styles/" > "/usr/share/emacs/site-lisp/org-mode/etc/styles/" > "/usr/share/emacs/23.3/etc/org/") > > Looks like it is being set up using the locations available during ebuild > processing, not the location after installation? I see these embedded /var/tmp/portage locations in the .elc file too. Things are only working when I explicitly set org-odt-data-dir in the site-init file. See my posting to the upstream ML: <http://lists.gnu.org/archive/html/emacs-orgmode/2012-01/msg00002.html> 7.8.02-r1 that I've just committed to CVS is therefore using a simple solution, namely is assigns org-odt-styles-dir in the site-init file. Resolving as UPSTREAM. Thanks Ulrich - Happy new year! |