emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Tim Cross <theophilusx@gmail.com>
To: Nick Dokos <ndokos@gmail.com>
Cc: Org-mode <emacs-orgmode@gnu.org>, Emacs developers <emacs-devel@gnu.org>
Subject: Re: org 9.2.6 and org 9.1.9
Date: Wed, 27 Nov 2019 08:41:08 +1100	[thread overview]
Message-ID: <CAC=50j_nqDVYJYrwsqftuYXpytbBRgzLaK5uX5eo=JMG-0Z-KA@mail.gmail.com> (raw)
In-Reply-To: <874kyqcuup.fsf@alphaville.usersys.redhat.com>

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

There is a very important rule which must be followed wrt org-mode
installation. It is critical that no version of org is already loaded
before installing a new version. This can be quite tricky as many of us
have org setups which automatically load some org functionality without
explicitly opening an org file or agenda view (for example, you might be
using an org add-on for email). Situation is worse if we are loading org as
part of our init.el.

I'm also not sure that tweaking the load-path order is sufficient if your
installing org via M-x package-install as there is a 'chicken and egg'
problem with the initial install. If your init.el file is loading org
functionality and you only have the built-in org version installed, that
version will be loaded before you run package-install. Probably works if
you install via your init.el though.

I've found the safest thing to do is only use autoload or use-package with
deferred loading for org and whenever updating org (I use the
org-plus-contrib package from the org elpa repo) only update immediately
after a fresh restart of emacs and before doing anything else.  Failing to
do this often results in a broken build as you get a set of new org elc
files which contains definitions from two different org versions. When the
versions are only different in minor version numbers, this mixed build may
not even be noticeable, but when major version differences exist, you get
the symptom of broken functionality, missing definitions or unbound symbols.

The situation is made worse by package maintainers specifying the latest
org version rather than the version built into Emacs when the bundled
version would be sufficient.

It took me a while to structure my init.el file such that no org
functionality was loaded until I used something which depends on it.
However, once I did, provided I only update org in a fresh new session, all
works flawlessly. I found use-package package really helped with this.

On Wed, 27 Nov 2019 at 06:22, Nick Dokos <ndokos@gmail.com> wrote:

> Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org>
> writes:
> > org 9.1.9 is a built-in
> >
> > but org 9.2.6 comes as a dependency to some packages and having both
> installed creates conflicts.
> >
> What conflicts are you seeing? I have the built-in 9.1.9 org that
> comes with emacs but I run (close to) latest master and I see no
> problems: the only thing I do is to set my load-path to point to the
> right place (and make sure that that setting precedes the
> /usr/local/share/emacs/27.0.50/lisp/org setting that emacs adds):
>     (add-to-list 'load-path (expand-file-name "~/elisp/org-mode/lisp"))
> Although that has been enough for me, it's probably safer to delete
> from load-path all other org entries, thereby making the built-in
> version invisible to emacs - in my case, I just have the one:
>    (delete "/usr/local/share/emacs/27.0.50/lisp/org" load-path)
> That way, if you happen to do something like `(require 'old-org-req)'
> with a requirement that is not satisfied by current org, but is
> satisfied by the built-in org, you'd get an error, rather than getting
> a mixed installation.
> > Why does that happen ?
> >
> > Can't 9.2.6 override 9.1.9 ? It's not the first time I have issues
> > with that situation and that's extremely confusing. What is the best
> > way to solve that ?
> >
> I think the above should be enough (and IME it is), but maybe someone can
> think of other things that might trip one up.
> --
> Nick
> "There are only two hard problems in computer science: cache
> invalidation, naming things, and off-by-one errors." -Martin Fowler



Tim Cross

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

  reply	other threads:[~2019-11-26 21:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-24 13:37 Jean-Christophe Helary
2019-11-26 19:15 ` Nick Dokos
2019-11-26 21:41   ` Tim Cross [this message]
2019-11-27  2:59     ` Cook, Malcolm
2019-11-27  3:13       ` Jean-Christophe Helary
2019-11-27  6:18         ` Stefan Kangas
2019-11-27 13:23       ` Stefan Monnier
2019-11-27 17:20         ` Cook, Malcolm
2019-11-27 21:51           ` Tim Cross
2019-11-27 22:01           ` Stefan Monnier
2019-11-26 23:14   ` Jean-Christophe Helary
2019-11-27  3:24     ` Stefan Monnier
2019-11-27  5:43       ` Jean-Christophe Helary
2019-11-27  6:00         ` Tim Cross
2019-11-27  6:29           ` Stefan Kangas
2019-11-27  6:42             ` Tim Cross
2019-11-27 10:11               ` Stefan Kangas
2019-11-27 13:21               ` Stefan Monnier
2019-11-27 15:44             ` Eli Zaretskii
2019-11-27  7:04           ` Fraga, Eric
2019-11-27  6:34       ` Stefan Kangas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC=50j_nqDVYJYrwsqftuYXpytbBRgzLaK5uX5eo=JMG-0Z-KA@mail.gmail.com' \
    --to=theophilusx@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=ndokos@gmail.com \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


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).