Subject: Re: bug#21724: 25.0.50; (void-function (setf epg-context-armor))

From: Katsumi Yamaoka <[email-masked]>
Date: Fri, 23 Oct 2015 08:57:48 +0900

On Wed, 21 Oct 2015 18:03:38 +0900, Katsumi Yamaoka wrote:
> References: <http://thread.gmane.org/gmane.emacs.diffs/132036>

>>> -    (epg-context-set-armor context t)
>>> +    (setf (epg-context-armor context) t)

> Debugger entered--Lisp error: (void-function \(setf\ epg-context-armor\))

> To fix it, epg.el(c) is required when compiling auth-source.el,
> I think.

First I tried adding: (eval-when-compile (require 'epg))
It fixed the setf compilation problem.  However, the byte compiler
got to issue a new warning as follows:

In end of data:
auth-source.el:2145:1:Warning: the following functions might not be defined at
    runtime: epg-context-set-passphrase-callback, epg-decrypt-string,
    epg-encrypt-string

So, I'm not quite sure why it helps, but I wrapped the existing
autoload settings for those functions with `eval-and-compile':

<http://article.gmane.org/gmane.emacs.diffs/132162>