Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 396269 - app-emacs/org-mode - Export as Opendocument text fails with error "Cannot find factory styles file. Check package dir layout"
Summary: app-emacs/org-mode - Export as Opendocument text fails with error "Cannot fin...
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Emacs project
URL: http://lists.gnu.org/archive/html/ema...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-28 08:41 UTC by Paul Jewell
Modified: 2012-01-02 08:57 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Jewell 2011-12-28 08:41:10 UTC
Open org file in buffer, and then press C-c C-e. Select o or O - error messages appears in mini buffer. Tried with vanilla .emacs, containing only the lines necessary for loading org-mode, also re-emerged with the contrib useflag set. Same error each time. Emacs version 23.3.3, org-mode 7.8.02. Not much around the web, but I did find reference to similar problems early in December. 

Reproducible: Always

Steps to Reproduce:
1. Open emacs
2. Load org file
3. C-c C-e O
4. Error displayed in mini buffer
Actual Results:  
Error displayed in mini buffer

Expected Results:  
File exported as OpenDocument file, and if "O" was selected, it is then opened in LibreOffice.

emerge --info:

Portage 2.1.10.41 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.3, glibc-2.13-r4, 3.1.1-gentoo x86_64)
=================================================================
System uname: Linux-3.1.1-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.3
Timestamp of tree: Tue, 27 Dec 2011 16:15:01 +0000
ccache version 3.1.6 [enabled]
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.1.4-r3
dev-util/ccache:          3.1.6
dev-util/cmake:           2.8.6-r4
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.4.5, 4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.1 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo lisp lcd-filtering emacs x-portage
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -msse4 -mcx16 -msahf -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=core2 -msse4 -mcx16 -msahf -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs ccache distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="ftp://gentoo.virginmedia.com/sites/gentoo http://gentoo.virginmedia.com/ http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ "
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en en_GB"
MAKEOPTS="-j9"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/lisp /var/lib/layman/lcd-filtering /var/lib/layman/emacs /usr/local/portage"
SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam firefox flac fortran garmin gdbm gdu gif gimpprint git gnome gpm gpsd gtk iconv ipv6 java jpeg kde kdrive kipi kpathsea lcms ldap libnotify lm_sensors mad mmx mng modules mozbranding mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf phonon plasma plugins png policykit ppds pppd pulseaudio qt3 qt3support qt4 readline sdl semantic-desktop session spell sqlite sse sse2 ssl startup-notification subversion svg sysfs tcpd thunar tiff truetype udev unicode usb vim-syntax vorbis x264 xcb xcomposite xinerama xml xorg xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="canon ptp ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB" NETBEANS_MODULES="*" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Paul Jewell 2011-12-28 17:12:38 UTC
Just dome some more testing - this bug is _not_ present in org-mode-9999 in the emacs overlay.
Comment 2 Ulrich Müller gentoo-dev 2011-12-28 18:59:56 UTC
(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?
Comment 3 Ulrich Müller gentoo-dev 2011-12-28 19:45:39 UTC
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.
Comment 4 Ulrich Müller gentoo-dev 2011-12-29 11:38:28 UTC
Reported upstream, see URL.
Comment 5 Paul Jewell 2011-12-29 20:25:55 UTC
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
Comment 6 Ulrich Müller gentoo-dev 2011-12-29 23:05:36 UTC
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.
Comment 7 Ulrich Müller gentoo-dev 2011-12-30 20:58:14 UTC
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?
Comment 8 Paul Jewell 2011-12-30 22:20:31 UTC
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?
Comment 9 Paul Jewell 2011-12-30 22:24:52 UTC
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?
Comment 10 Paul Jewell 2011-12-30 23:01:15 UTC
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.
Comment 11 Paul Jewell 2011-12-30 23:12:23 UTC
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
Comment 12 Ulrich Müller gentoo-dev 2011-12-30 23:27:21 UTC
Did you resync the emacs overlay? Upstream has renamed the Makefile parameter from "etcdir" to "datadir", and I've updated the live ebuild accordingly.
Comment 13 Paul Jewell 2011-12-30 23:35:14 UTC
How silly of me! I have now re-synced the overlay, and everything now works correctly. Es tut mir leid!

Thanks!
Paul
Comment 14 Ulrich Müller gentoo-dev 2011-12-31 00:17:58 UTC
(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.
Comment 15 Ulrich Müller gentoo-dev 2012-01-01 19:19:03 UTC
(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.
Comment 16 Paul Jewell 2012-01-02 08:57:08 UTC
Thanks Ulrich - Happy new year!