Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: job qgis-installation-finder not working correctly #505

Closed
1 task done
NROLLANDGrandlyon opened this issue May 14, 2024 · 17 comments · Fixed by #535
Closed
1 task done

[BUG]: job qgis-installation-finder not working correctly #505

NROLLANDGrandlyon opened this issue May 14, 2024 · 17 comments · Fixed by #535
Assignees
Labels
bug Something isn't working help wanted Extra attention is needed jobs Scenarios and jobs

Comments

@NROLLANDGrandlyon
Copy link

NROLLANDGrandlyon commented May 14, 2024

Is there an existing issue or a documentation page for this?

  • I have searched the existing issues and within documentation

Which version of the app are you using?

0.34.2

Operating System

Windows 10+*

Packaging mode

Stand-alone executable (.i.e qdt.exe)

Related resources

No response

Description of the bug

J'ai essayé dans 2 cas avec 2 installations de QGIS sur le poste.

1er cas

QGIS dans Program File(x86)/QGIS 3.34.5/bin et une autre version 3.34 dans Program Files/QGIS3/bin

Résultat :

2024-05-02 15:00:03||WARNING||job_qgis_installation_finder||run||90||No QGIS installation found
2024-05-02 15:00:03||DEBUG||job_qgis_installation_finder||run||93||Job qgis-installation-finder ran successfully.

2eme cas

QGIS dans Program Files/QGIS 3.28.15/bin et une autre version 3.34 dans Program Files/QGIS3/bin.

Résultat :

2024-05-14 16:01:59||DEBUG||job_qgis_installation_finder||get_installed_qgis_path||132||Found installed QGIS : 
{'3.28.15': 'C:\\Program Files\\QGIS 3.28.15\\bin\\qgis-ltr-bin.exe'}
2024-05-14 16:01:59||INFO||job_qgis_installation_finder||get_installed_qgis_path||153||QGIS version(s) 
[3.34,3.28,3.22,3.18] not found. Using most recent found version 3.28.15 : C:\Program Files\QGIS 
3.28.15\bin\qgis-ltr-bin.exe
2024-05-14 16:01:59||DEBUG||job_qgis_installation_finder||run||93||Job qgis-installation-finder ran successfully.

Alors que la 3.34 est installée et que dans le job l'ordre est défini comme suit :

- name: Find installed QGIS
    uses: qgis-installation-finder
    with:
        version_priority:
        - "3.34"
        - "3.28"
        - "3.22"
        - "3.16"

Steps to reproduce

No response

Relevant log output

2024-05-02 15:00:03||INFO||journalizer||headers||118||========== QGIS Deployment Toolbelt - 0.34.2 ==========
2024-05-02 15:00:03||DEBUG||journalizer||headers||119||Operating System: Windows-10-10.0.19045
2024-05-02 15:00:03||DEBUG||journalizer||headers||124||Architecture: 64bit

Comment

Donc ne semble trouver que les installations "standards" durant lesquelles on n'a pas modifié le chemin proposé par défaut par l'installateur.

@NROLLANDGrandlyon NROLLANDGrandlyon added the triage To be qualified, waiting for a project manager label May 14, 2024
@jmkerloch jmkerloch assigned jmkerloch and unassigned Guts May 14, 2024
@Guts
Copy link
Collaborator

Guts commented May 14, 2024

Bonjour @NROLLANDGrandlyon

Merci d'avoir pris le temps de remplir le ticket. @jmkerloch devrait pouvoir regarder cette semaine.

@jmkerloch
Copy link
Collaborator

Je vais regarder ça.

@NROLLANDGrandlyon J'ai une idée du problème et j'aurais besoin de ces informations sur ton poste

Soit via powershell

$Env:PROGRAMFILES

Soit via l'invite de commande

echo %PROGRAMFILES%

@jmkerloch
Copy link
Collaborator

@NROLLANDGrandlyon Pour l'installation sur les chemins suivants:

  • Program File(x86)/QGIS 3.34.5/bin
  • Program Files/QGIS3/bin

Tu avais défini manuellement les chemins d'installation ?

@NROLLANDGrandlyon
Copy link
Author

echo %PROGRAMFILES% donne C:\Program Files
L'installation dans Program File(x86)/QGIS 3.34.5/bin est une erreur SCCM. Ce n'est bien sûr pas la cible mais j'avais noté que QDT ne l'avait pas trouvé.
L'installation dans Program Files/QGIS3/bin est bien défini manuellement et c'est la cible pour tous les postes du Grand Lyon

@jmkerloch
Copy link
Collaborator

jmkerloch commented May 14, 2024

@NROLLANDGrandlyon

Pour l'instant QDT ne peut trouver que les versions de QGIS installés avec les options par défaut.
On va donc trouver uniquement les versions qui sont disponibles dans:

  • la variable d'environnement %PROGRAMFILES% (chemin d'installation par défaut avec l'installeur QGIS)
  • la variable d'environnement %QDT_OSGEO4W_INSTALL_DIR% (valeur par défaut C:\\OSGeo4W qui correspond au chemin par défaut pour l'installation OSGEO4W)

Un moyen de contournement pour le Grand Lyon serait éventuellement de passer par la variable d'environnement QDT_OSGEO4W_INSTALL_DIR qui devrait être définie sur C:/Program Files/QGIS3/

@NROLLANDGrandlyon
Copy link
Author

OK. Je testerai cette façon de faire. De toute façon ce job est pour l'instant "optionnel" pour nous
Merci

@NROLLANDGrandlyon
Copy link
Author

D'ailleurs puis-je définir cette variable d'environnement QDT_OSGEO4W_INSTALL_DIR dans le scénario ? ou faut-il le faire dans le système ?

@jmkerloch
Copy link
Collaborator

Je pense qu'on doit pouvoir la définir dans le scénario mais je t'avoue ne pas avoir encore testé complètement ce type d'option.

@Guts
Copy link
Collaborator

Guts commented May 15, 2024

D'ailleurs puis-je définir cette variable d'environnement QDT_OSGEO4W_INSTALL_DIR dans le scénario ? ou faut-il le faire dans le système ?

Tu as 2 façons de le faire :

  • soit tu le mets dans les settings du scénario :

    [...]
    settings:
      OSGEO4W_INSTALL_DIR: chemin
    [...]
  • soit tu utilises le job Environment Variables manager avant le QGIS Finder :

    [...]
    ```yml
    [...]
    - name: Set environment variables
      uses: manage-env-vars
      with:
        - name: QDT_OSGEO4W_INSTALL_DIR
          action: "add"
          scope: "user"
          value: "\\chemin"
          value_type: path
    [...]

Mais cela reste du contournement. Il faut voir si on ne devrait pas ajouter une option au job QGIS Finder pour pouvoir lui passer des chemins où chercher.

@Guts Guts added help wanted Extra attention is needed jobs Scenarios and jobs and removed triage To be qualified, waiting for a project manager labels May 15, 2024
@jmkerloch
Copy link
Collaborator

Oui c'est clairement un coutournement. Il faut voir plus global. La liste de chemin de recherche me parait être une bonne idée.

@NROLLANDGrandlyon
Copy link
Author

Il y le chemin dans :

Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders
Nom: C:\Program Files\QGIS3
Valeur: 1

Ordinateur\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Nom : C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe.FriendlyAppName
Valeur : qgis-ltr-bin.exe

Dans
Ordinateur\HKEY_CLASSES_ROOT\QGIS Project\Shell\open\command
Nom : (par défaut)
Valeur : "C:\PROGRA~1\QGIS3\bin\qgis-ltr.bat" "%1"

Je ne sais pas si c'est fiable mais généralement quand on veut une info Windows on la trouve dans le registre.
Bon après, dans le scénario il y avait
QGIS_EXE_PATH:
windows: "%PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe"

Ce qui revient à ajouter un chemin de recherche ?

@jmkerloch
Copy link
Collaborator

Il y le chemin dans :

Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders Nom: C:\Program Files\QGIS3 Valeur: 1

Ordinateur\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache Nom : C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe.FriendlyAppName Valeur : qgis-ltr-bin.exe

Dans Ordinateur\HKEY_CLASSES_ROOT\QGIS Project\Shell\open\command Nom : (par défaut) Valeur : "C:\PROGRA~1\QGIS3\bin\qgis-ltr.bat" "%1"

Je ne sais pas si c'est fiable mais généralement quand on veut une info Windows on la trouve dans le registre. Bon après, dans le scénario il y avait QGIS_EXE_PATH: windows: "%PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe"

Ce qui revient à ajouter un chemin de recherche ?

Il faudrait regarder les logs mais en théorie si la valeur définie dans QDT_QGIS_EXE_PATH est valide on s'en sert.

Ma relecture du code montre qu'on ne va pas utiliser les variables d'environnement définie dans QDT_QGIS_EXE_PATH.

Donc on regarde dans PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe au lieu d'aller dans C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe.

==> il y a donc un bug sur l'utilisation de QDT_QGIS_EXE_PATH et le job qgis-installation-finder

@Guts Guts added the bug Something isn't working label May 15, 2024
@Guts
Copy link
Collaborator

Guts commented May 15, 2024

Farfouiller dans la base de registre est une bonne piste à suivre. Le module est standard dans Python et on l'utilise déjà pour la gestion des variables d'environnement.

@NROLLANDGrandlyon
Copy link
Author

En tout cas j'ai essayé avec le job Set env variable et ça fonctionne, la version est trouvée.
2024-05-15 11:20:55||DEBUG||job_qgis_installation_finder||get_installed_qgis_path||132||Found installed QGIS :
{'3.34.5': 'C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe'}

@NROLLANDGrandlyon
Copy link
Author

Peut être que vos collègues qui "fabriquent" l'installeur pour Windows savent s'ils posent une donnée intéressante (fiable) dans la base de registre ?

@Guts
Copy link
Collaborator

Guts commented Jun 18, 2024

J'ai documenté l'évolution ici : #523

@jmkerloch
Copy link
Collaborator

@NROLLANDGrandlyon @Guts je propose de cloturer l'issue.

L'ajout de l'option search_paths permet pour moi de régler ce problème.

@Guts Guts closed this as completed Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed jobs Scenarios and jobs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants