Subject: Re: bug#76955: 30.1; php-ts-mode-php-executable default path may not match remote path

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Mar 2025 21:28:14 +0200

> From: Morgan Willcock <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Thu, 13 Mar 2025 17:43:11 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> From: Morgan Willcock <[email-masked]>
> >> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> >> Date: Thu, 13 Mar 2025 16:45:04 +0000
> >> 
> >> Vincenzo Pupillo <[email-masked]> writes:
> >> 
> >> > In data giovedì 13 marzo 2025 15:25:57 Ora standard dell’Europa centrale, Eli
> >> > Zaretskii ha scritto:
> >> >> > From: Vincenzo Pupillo <[email-masked]>
> >> >> > Cc: [email-masked]
> >> >> > Date: Thu, 13 Mar 2025 11:17:11 +0100
> >> >> >
> >> >> > Ciao,
> >> >> >
> >> >> > 'php-ts-mode-php-executable' it's used for 'php-ts-mode-flymake-php',
> >> >> > 'run-php' and 'php-ts-mode-run-php-webserver'.
> >> >>
> >> >> Then please consider the solution proposed below.
> >> >>
> >> >> > @Morgan: Will setting the executable path to "php" work in your scenario?
> >> >> > Of the functions listed above, which one do you usually use?
> >> >>
> >> >> Customizing the value is an okay solution, but we are discussing how
> >> >> to solve this for users that don't customize.
> >> >>
> >> >> How about the following solution:
> >> >>
> >> >>  . we replace references to php-ts-mode-php-executable with a call to
> >> >>    a function
> >> >>  . that function will do something like
> >> >>
> >> >>    (let ((php-prog (if (file-remote-p default-directory)
> >> >>                        (executable-find "php" t)
> >> >> 		     php-ts-mode-php-executable)))
> >> >>      php-prog)
> >> >>
> >> >> WDYT?
> >> > Yes, that's fine. Maybe we should also rename 'php-ts-mode-php-executable',
> >> > something like 'php-ts-mode-php-default-executable'. It seems to me that it
> >> > might not be clear that this value would not be used if the file was remote.
> >> 
> >> Wouldn't this approach make it impossible to override the value for the
> >> remote system if the wrong PHP binary is found by executable-find?
> >
> > If executable-find fails to find the PHP binary on the remote host,
> > how can using "php" which you suggested do any better?
> 
> Because in that case I can modify either search path or the value of the
> variable to match where the (correct) PHP binary is.
> 
> I think that using the value "php" would work the in majority of cases
> for the majority of people, and working around issues is already covered
> by existing Emacs functionality.
> 
> > But if we want to allow customization of remote PHP executable, we
> > could introduce another defcustom.
> 
> This will have the same problems if connecting to two remote system
> which are configured differently.

So I conclude that expecting "php" to be on PATH on remote systems is
a requirement, since nothing else will work reliably enough, and let's
close this discussion at that.