bridge: fix doubled bin/ in bundled-mode frankenphp path resolution
resolveFrankenphpBin() returned `applicationDirPath() + "/bin/frankenphp"`, but applicationDirPath() inside an AppImage is already `usr/bin/` — where the host binary itself runs from. The "/bin/" prefix produced the doubled path, e.g.: /tmp/appimage_extracted_<hash>/usr/bin/bin/frankenphp …which doesn't exist. The supervisor logged the lookup failure and kept retrying, eventually hitting the perfsmoke 8s cold-start deadline. build-appimage.sh:148 installs frankenphp at `usr/bin/frankenphp` (sibling of the host binary, per the layout comment at line 18). The fix is to drop the spurious `/bin/`. Other resolvers in the same file (resolveSymfonyDir, resolveCaddyfilePath) already use the correct `here + "/<file>"` pattern. Bug shipped since the bundled-mode supervisor was added — would have hit anyone running the AppImage. Local `make quality` only exercises dev mode (BRIDGE_URL set), so the integration test loop never reached this codepath; CI's perfsmoke against the actual AppImage is the only thing that catches it. Manual test would be: launch the AppImage with BRIDGE_FRANKENPHP_BIN unset and watch the phpqml.bridge.bundled log. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -135,7 +135,8 @@ QString BackendConnection::resolveFrankenphpBin() const
|
||||
{
|
||||
const QByteArray override = qgetenv("BRIDGE_FRANKENPHP_BIN");
|
||||
if (!override.isEmpty()) return QString::fromUtf8(override);
|
||||
return QCoreApplication::applicationDirPath() + QStringLiteral("/bin/frankenphp");
|
||||
// build-appimage.sh installs frankenphp as a sibling of the host binary at usr/bin/frankenphp.
|
||||
return QCoreApplication::applicationDirPath() + QStringLiteral("/frankenphp");
|
||||
}
|
||||
|
||||
QString BackendConnection::resolveSymfonyDir() const
|
||||
|
||||
Reference in New Issue
Block a user