Skip to content

doesn't work for Flatpak: "failed to find qtplugininfo" #1

@bam80

Description

@bam80

Hmm, not quite:

$ cat bin/config.yaml 
qtcreator_path: "~/.local/share/flatpak/app/io.qt.QtCreator/current/active/files/"
plugin_path: "~/.var/app/io.qt.QtCreator/data/data/QtProject/qtcreator/plugins/18.0.0/petrmironychev.qodeassist/lib/qtcreator/plugins/"

$ ll /home/bam/.local/share/flatpak/app/io.qt.QtCreator/current/active/files/
total 32
drwxr-xr-x. 1 bam bam  3648 янв  1  1970 bin
-rwxr-xr-x. 3 bam bam   702 янв  1  1970 cleanup-BaseApp.sh
-rwxr-xr-x. 3 bam bam    52 янв  1  1970 enable.sh
drwxr-xr-x. 1 bam bam    28 янв  1  1970 etc
drwxr-xr-x. 1 bam bam     0 янв  1  1970 extensions
drwxr-xr-x. 1 bam bam   672 янв  1  1970 include
drwxr-xr-x. 1 bam bam  4556 янв  1  1970 lib
drwxr-xr-x. 1 bam bam   166 янв  1  1970 libexec
-rw-r--r--. 2 bam bam  7227 янв  1  1970 manifest-base-1.json
-rw-r--r--. 2 bam bam 13645 янв  1  1970 manifest.json
drwxr-xr-x. 1 bam bam    14 янв  1  1970 mkspecs
drwxr-xr-x. 1 bam bam  3048 янв  1  1970 qtwebengine_dictionaries
drwxr-xr-x. 1 bam bam   284 янв  1  1970 resources
drwxr-xr-x. 1 bam bam   224 янв  1  1970 share
drwxr-xr-x. 1 bam bam    38 янв  1  1970 translations

$ bin/qodeassist-updater-linux-x64 --status
QodeAssist Plugin Status
────────────────────────
Command failed: failed to get Qt Creator version: failed to find qtplugininfo: qtplugininfo not found in Qt Creator directory: /home/bam/.local/share/flatpak/app/io.qt.QtCreator/current/active/files

Apparently, qtplugininfo is not included in the Flatpak.

Originally posted by @bam80 in #283

Possible solution here would be not to search for qtplugininfo in Qt Creator directory only, but also in system's $PATH, as the file is usually distributed there separately from Qt Creator:
https://pkgs.org/search/?q=qtplugininfo&on=files

So other check is needed here before final return:

for _, execName := range platformConfig.ExecutableNames {
execPath := filepath.Join(qtCreatorRootPath, execName)
if PathExists(execPath) {
dir := filepath.Dir(execPath)
qtPluginInfoPath := filepath.Join(dir, GetQtPluginInfoName())
if PathExists(qtPluginInfoPath) {
return qtPluginInfoPath, nil
}
}
}
return "", fmt.Errorf("qtplugininfo not found in Qt Creator directory: %s", qtCreatorRootPath)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions