Subject: bug#31737: 26.1.50; Gnus does not use mailutils movemail

From: Robert Pluim <[email-masked]>
Date: Mon, 11 Jun 2018 10:27:13 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Robert Pluim <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Fri, 08 Jun 2018 20:47:53 +0200
>> 
>> > But then the fix should be where mail-source-movemail-progam is used,
>> > not in its default value, right?  Gnus should use executable-find to
>> > look for the program named by mail-source-movemail-progam.
>> >
>> 
>> It blindly calls call-process at the moment, rather than using
>> executable-find, but thatʼs a separate issue.
>
> But call-process looks up the program along exec-path, and exec-path
> puts exec-directory at its end.  Right?  So if GNU Mailutils are
> installed and on PATH, Gnus should find its movemail first, right?  Or
> am I missing something?
>
> IOW, if Gnus calls call-process, then it already uses executable-find,
> albeit internally.

As noted on emacs-devel, gnus passes (expand-file-name "movemail"
exec-directory) to call-process, so it doesnʼt search in $PATH.

I think the current suggested fix is this:

 		       (append
 			(list
 			 (or mail-source-movemail-program
-			     (expand-file-name "movemail" exec-directory))
+			     "movemail"
 			 nil errors nil from to)))))
 	      (when (file-exists-p to)
 		(set-file-modes to mail-source-default-file-modes))

That will work for people who have Mailutils installed in $PATH, and
for those who donʼt it should use the exec-directory one.

The only issue is that people who install Mailutils after they've
built emacs will now be switched to using the Mailutils movemail, with
no indication that itʼs happened.

Robert

PS The possible requirement for passing '--emacs' to movemail is still
not clear to me. Rmail cares whether itʼs using Mailutils, but I donʼt
know if Gnus does.