Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

logkonsult - gui pour voir les logs pacman (Qt)

#1Messageil y a 4 mois

Bonjour à toutes et à tous :bjr:

Existe pacman Log Viewer, mais pas d'activité depuis 1 an alors que nous sommes maintenant avec plasma 6 et que QT6 existe depuis 3 ans.

Je me suis donc attelé à cette tâche relativement simple.
Fonctionnalités (pas dans l'original):
  • transactions triées en sens inverse : les plus récentes au début
  • chaque transaction en mode liste différenciée par un code couleur
  • paquets ne sont pas triés dans une transaction (en fait par date/heure)
  • liste des erreurs
  • ajoute FIXED aux erreurs si elles ne sont plus présentes (voir copies écran) pour permissions et pacnew, je ne sais pas s'il exite d'autres erreurs dans ce log.
  • différencier les paquets qui ne sont plus installés
  • possibilité d'un affichage en mode calendrier (en fait, c'est surtout le but de cet outil sinon il n'est pas un "plus")
  • purge du fichier si trop grand (en ligne de commande uniquement.) Pour l'instant, elle n'écrase pas l'original mais va créer un "pacman.log.clean"
  • double clic, dans le calendrier filtre le jour, dans la liste ouvre le log dans notre éditeur à la ligne sélectionnée (TODO mettre les 5 éditeurs supportés en dépendances optionnelles)
  • transformation de la date au format de notre système (autres que kde ?)
Image
facile de reconnaitre une stable avec ce calendrier dépouillé :
Image

Par défaut, il ne charge que les 90 derniers jours, mais en ligne de commande, il est possible de lui en indiquer plus.

C'est pour l'instant une application sans version et non présente dans aur. Pour la tester, il faut créer le paquet en local.

Avant installation, installer un paquet uniquement pour le build

    yay -S python-setuptools-git-versioning --asdeps
Récupérer le fichier PKGBUILD.git
Puis dans le même répertoire, lancer la commande

makepkg -fsi -Cc -p PKGBUILD.git
Pour le trouver dans le menu, il utilise les mots clé log et pacman.

En particulier, s'il y a des problèmes, merci pour les retours.

-----------------------

NOTE(s):

Si on a renommé le fichier "PKGBUILD.git" en "PKGBUILD", la commande pour l'installer/mettre à jour est simplement makepkg -fsir -Cc

Le "FIXED" pour les .pacnew teste uniquement si le .pacnew est encore présent :wink:

logkonsult - gui pour voir les logs pacman (Qt)

#2Messageil y a 4 mois

Bonjour

Fonctionne parfaitement
Image

Merci

logkonsult - gui pour voir les logs pacman (Qt)

#3Messageil y a 4 mois

Je viens de l'installer. Pas de souci de ce coté là.
Par contre, je ne peux le trouver dans le menu Whisper, sous xfce donc, ni via la recherche de log, konsult ou pacman, ni en regardant dans les catégories. Peut-être après un reboot ?
Le .desktop existe, dans /usr/share/applications et il se lance sans rechigner.

Bien vu le calendrier et la petite icône du nombre de warning restant à traiter.
Quand on augmente la hauteur de la fenêtre, le calendrier devrait conserver sa taille et ne pas rester à 50%.
La liste déroulante des recherches devrait être à gauche pour bien se différencier des boutons d'action / filtre.

Comme pour pacmanlogviewer, il me manque la possibilité de voir les messages d'erreur non liés à des paquets, et en particulier les hooks.

Sinon, bravo à toi et merci :sourire:

logkonsult - gui pour voir les logs pacman (Qt)

#4Messageil y a 4 mois

@Denis-pom :clap

oui, oui, oui, non :maître:
- Contrôles déplacés et calendrier bien aligné en bas
- pour les hooks, je ne pense pas qu'il soit possible, le contenu dans .log est extrêmement variable : c'est l'affichage de 50 scripts et les warnings dans "Initcpio/grub" sont normaux. Et retrouver le hook correspondant à la ligne n'est pas simple avec mon système actuel de lecture ligne à ligne.
Denis-pom a écrit :ne peux le trouver dans le menu ... Le .desktop existe, dans /usr/share/applications et il se lance sans rechigner
oops :mrgreen:Categories=Utilityty; Merci :lol:

Mise à jour faite. Mille mercis, 3 modifs qui ne prennent pas plus de 2 minutes chacune, je prends volontiers.

@Yvance77
Pas fan du look sur ton bureau (mais c'est du QT, on ne peut demander la lune)
Dans ta copie écran, j'ai vu que l'app ne gérait pas l'ancien format (avant pacman 6), c'est fixé pour les warnings "permissions differ". Pour les autres différences, pas grave.

# nouveau format toujours sur une ligne
[2024-06-09T19:36:10+0200] [ALPM] warning: directory permissions differ on /usr/lib/python3.12/site-packages/logkonsult/ui/, filesystem: 757  package: 755
# ancien format pacman 5 sur 2..x lignes :
[2024-01-31T18:21:10+0100] [ALPM] warning: directory permissions differ on /usr/share/polkit-1/rules.d/
filesystem: 750  package: 755
C'était aussi le but, avoir un outil qui reconnaisse bien le nouveau format des logs du nouveau pacman 6. Pour l'ancien, ce n'est pas important car normalement nous avons besoin de consulter que l'historique proche. (il ne gère même pas les dates qui étaient dans un autre format d'un autre pacman plus ancien)

logkonsult - gui pour voir les logs pacman (Qt)

#5Messageil y a 4 mois

@papajoke :
ça marche :sourire: , ça marche :sourire: , ça marche :sourire: et boooooooh :pleure:

Dommage pour les hooks et autres messages, mais je m'y attendais. De toute façon je surveille la màj, surtout début et fin. Ton utilitaire permet de mieux voir les messages liés aux paquets, messages qui défilent trop rapidement.
En cas de besoin, il reste cat ou mousepad:gsourire:

:clap et :merci:

logkonsult - gui pour voir les logs pacman (Qt)

#6Messageil y a 4 mois

Denis-pom a écrit : il y a 4 mois mieux voir les messages liés aux paquets, messages qui défilent trop rapidement.
Oui, c'est la principale raison de l'utilitaire : ne pas rester scotché devant l'écran. L'historique classique n'a pas vraiment d'intérêt... ou utile une fois l'an
Denis-pom a écrit : il y a 4 mois En cas de besoin, il reste cat
Lorsque je recherche les retours des hook, j'ai à 99,9% des choses de mkinitcpio/grub sans intéret.

grep -Ei 'SCRIPTLET.*(warning|fatal|error)' /var/log/pacman.log
SCRIPTLET = sorties écran dans les hook


-------------------


ps: j'ai voulu tester si on a un message dans les logs si l'utilisateur n'est pas bon, MALHEUREUSEMENT rien dans les logs :pleure:

pacman -Ql logconsult
ls -ld /usr/lib/python3.12/site-packages/logkonsult/ui
# appartient à root:root, on va le changer
sudo chown $user:users /usr/lib/python3.12/site-packages/logkonsult/ui

#force une re-instal ...
! rien dans les logs pacman ????? pourtant pacman détecte bien un "warning"

pacman -Qkk logkonsult
avertissement : logkonsult-git : /usr/lib/python3.12/site-packages/logkonsult/ui (Les UID ne correspondent pas)
avertissement : logkonsult-git : /usr/lib/python3.12/site-packages/logkonsult/ui (Les GID ne correspondent pas)
logkonsult-git : 57 fichiers au total, 1 fichier modifié
OK, trouvé,
cette erreur a été retirée de pacman :pleure: et en regardant le code source, les autres erreurs (que permissions) vont stopper l'install donc pas de raison d'être dans les logs (par exemple un conflit de fichier).

logkonsult - gui pour voir les logs pacman (Qt)

#7Messageil y a 4 mois

papajoke a écrit : il y a 4 mois @Yvance77
Pas fan du look sur ton bureau (mais c'est du QT, on ne peut demander la lune)
Dans ta copie écran, j'ai vu que l'app ne gérait pas l'ancien format (avant pacman 6), c'est fixé pour les warnings "permissions differ". Pour les autres différences, pas grave.
Ce n'est pas si grave me concernant. Je reste un inconditionnel de MATE jusqu'au bout, et peu importe si le rendu n'est pas optimisé (puis avant que je passe à KDE il pleuvra des billets de 500 euros). Bien qu'il va falloir penser à changer au regard de ce qui ne sera plus maintenu. On verra.

logkonsult - gui pour voir les logs pacman (Qt)

#8Messageil y a 4 mois

:bjr:

C'est vraiment bien par rapport à ce que j'utilise, une fonction avec grep $1 /var/log/pacman.log | fzf --bind 'ctrl-s:toggle-sort' --border=bold


Image

logkonsult - gui pour voir les logs pacman (Qt)

#9Messageil y a 4 mois

:bjr: Petite mise à jour du dépôt, version r52 (qui sent bon la fin)


Visuel
Icône différente entre les "warnings" existants et ceux traités
Image

Si l'icône dans la barre d'outils n'est pas trouvée dans le thème de l'utilisateur, elle devrait être remplacée par un caractère unicode (⚠ 📅 X) et non plus par le texte du bouton.
EDIT: sauf xfce (supporte pas unicode ???)

@Smurf sympa avec ce thème

pacnew
Un double clic sur les alertes pacnew va maintenant essayer d'ouvrir un éditeur dédié (meld, diffuse, kompare, code) plutôt que d'ouvrir le fichier log.
L'éditeur peut-être en lecture seule ! si le paquet gvfs n'est pas installé ou si l'éditeur ne supporte pas le protocole admin:// (par exemple code)

Editeurs
Il est possible de configurer un outil de son choix (parmi une liste définie)

Dépendances opt.         : diffuse: editor, compare merge files
                           kompare: editor, compare merge files [installé]
                           meld: editor, compare merge files [installé]
                           code: Visual Studio Code [installé]
                           geany: Fast and lightweight IDE [installé]
                           gedit: GNOME Text Editor
                           gnome-text-editor: A simple text editor for the GNOME desktop
                           kate: kde Advanced text editor [installé]
                           pluma: A powerful text editor for MATE
                           mousepad: Simple text editor for Xfce
Par défaut, logkonsult va essayer d'en trouver un dans la liste, mais si on désire en utiliser un autre (installé), il est possible de le lui indiquer :
  • par ligne de commande

      -e EDITOR         /usr/bin/kate pour voir le log
      -diff EDITOR      /usr/bin/meld pour voir les différences
    
    Avec logkonsult-gui -h, l'éditeur affiché est dans l'ordre : celui trouvé sur le disque, ou celui passé dans le fichier de configuration, ou au final, celui passé en paramètre.
  • par un fichier de configuration : ~/.config/logkonsult.conf, exemple

    editor = "code"
    diff = "kompare"
    days = 120

logkonsult - gui pour voir les logs pacman (Qt)

#10Messageil y a 4 mois

marche pô :pleure:

lancement par whisker : rien
lancement en terminal : toujours rien, sauf :

$logkonsult-gui
#read config file /home/denis/.config/logkonsult.conf
Traceback (most recent call last):
  File "/usr/bin/logkonsult-gui", line 5, in <module>
    from logkonsult import __main__
  File "/usr/lib/python3.12/site-packages/logkonsult/__main__.py", line 22, in <module>
    from .model.config import read_conf
  File "/usr/lib/python3.12/site-packages/logkonsult/model/config.py", line 53, in <module>
    if not editor:
           ^^^^^^
NameError: name 'editor' is not defined. Did you mean: '_editors'?
pas de fichier dans .config/logkonsult.conf

[Edit] ca marche :lol:
après avoir créé le fichier de config ... :siffle

ah, pas de texte dans le bouton Calendar, réduit à un petit rectangle, et une croix pour Exit ???

et du coup, via le Terminal :

logkonsult-gui
#read config file /home/denis/.config/logkonsult.conf
/var/log/pacman.log
1335

logkonsult - gui pour voir les logs pacman (Qt)

#11Messageil y a 4 mois

Merci, corrigé :roll: je n'avais pas testé sans fichier .conf :pleure:
pas de texte dans le bouton Calendar
comme indiqué plus haut
papajoke a écrit :devrait être remplacée par un caractère unicode (⚠ 📅 X)
Je suppose que ton système n'est pas compatible unicode :pleure: et suppose que tu vois bien le caractère dans le navigateur.
Si tu n'as pas d'icone, c'est que je charge une icone qui se nomme warning et calendar et elle n'existe pas dans ton thème !
Une solution (facile) serait d'inclure mes propres icônes dans l'app, mais à ce moment l'intégration au thème utilisateur n'est clairement pas top.

EDIT:
oui, il me semble avoir vu cela à l'inter, xfce ne supporte pas ces caractères "étendus" au niveau système (titre fenêtre, bouton, ...) ou, c'est simplement la police système par défaut de xfce qui n'est pas unicode ?

logkonsult - gui pour voir les logs pacman (Qt)

#12Messageil y a 4 mois

Je suppose que ton système n'est pas compatible unicode
sous Xfce ???
Comment contrôler cela ?
je suis probablement en utf8, d'ailleurs

Ah oui, j'avais oublié : je n'ai pas eu le choix des dépendances optionnelles, le paquet créé s'est installé direct.

logkonsult - gui pour voir les logs pacman (Qt)

#13Messageil y a 4 mois

il n'y a pas de raison d'installer une dépendance optionnelle, sauf peut-être meld pour voir/éditer les pacnews.

Pour les éditeurs (voir le log), logkonsult va tester une liste (écrite en dur dans le code) et utiliser le premier trouvé sur disque de cette liste :

    f"{bin_dir}kate": "{0} --line {1}",
    f"{bin_dir}geany": "{0} --line {1}",
    f"{bin_dir}gedit": "{0} +{1}",
    f"{bin_dir}gnome-text-editor": "{0} +{1}",
    f"{bin_dir}mousepad": "{0} -l {1}",
    f"{bin_dir}pluma": "{0} +{1}",
    f"{bin_dir}code": "-g {0}:{1}",
    f"{bin_dir}zeditor": "{0}:{1}",
Le fichier config permet de forcer un éditeur déjà installé que l'on préfère utiliser plutôt que celui que va trouver logkonsult par défaut.
par exemple j'ai "geany" mais je préfère utiliser "gedit" qui est lui aussi installé. Ou je préfère utiliser "code" qui est en dernier et à donc de grande chance de ne jamais être celui par défaut.
ps: "code" est particulier car il peut aussi servir pour les pacnew (il a un mode comparaison intégré), mais il ne sera qu'en lecture seule...

Pour les pacnews, pour l'instant, on a meld, diffuse(pas encore testé), kompare(lecture seule). Et on peut ajouter code et éventuellement kate (les 2 en lecture seule).

logkonsult - gui pour voir les logs pacman (Qt)

#14Messageil y a 4 mois

Je viens de me créer un pacnew pour mkinitcpio, histoire de tester LogKonsult avec meld:sourire: ...

meld s'ouvre bien, avec les deux fichiers cote à cote mais un curieux message apparaît en haut :

Image

File None is being compared to itself ???

Les différences sont bien marquées, mais je n'ai pas essayé d'aller plus loin et de modifier mon mkinitcpio :gsourire:

[Edit] je viens de tester avec pacnew-chaser et n'ai pas ce bizarre message File None ...

logkonsult - gui pour voir les logs pacman (Qt)

#15Messageil y a 4 mois

Merci pour le retour
ce n'est qu'un message d'alerte donc il n'y a pas de problème pour l'utiliser.

Oui, c'est un mini bug meld ... J'ai ouvert une issue en donnant la recette pour y remédier. (donc rapidement corrigé ? parmi les 187 ouvertes...)

pacnew-chaser lui : il ouvre "meld" en root. Ce qui n'est pas une bonne méthode. Ici, on ouvre l'éditeur en mode classique, par contre (si gvfs est installé) alors l'éditeur ouvre (que) les fichiers en root.



EDIT:

Je pense que maintenant il y a des icônes avec xfce (mate?), j'ai tapé dans les paquets gnome-themes-extra et adwaita-icon-theme répertoire /usr/share/icons/HighContrast/.

logkonsult - gui pour voir les logs pacman (Qt)

#16Messageil y a 4 mois

:bjr:
Je teste sous Xfce.
En Gui, rien ne se passe et en console:

$ logkonsult-gui &
[1] 4668
$ #read config file /home/steph/.config/logkonsult.conf
Traceback (most recent call last):
  File "/usr/bin/logkonsult-gui", line 5, in <module>
    from logkonsult import __main__
  File "/usr/lib/python3.12/site-packages/logkonsult/__main__.py", line 40, in <module>
    conf = read_conf(
           ^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/logkonsult/model/config.py", line 105, in read_conf
    args.diff =  Worker(args.diff, *_workers[args.diff])
                        ^^^^^^^^^
AttributeError: 'Namespace' object has no attribute 'diff'

logkonsult - gui pour voir les logs pacman (Qt)

#17Messageil y a 4 mois

:salut: je pense que c'est parce que tu n'as pas de logiciel spécifique pour voir les différences d'installé. Update fait (Version r55)

Nouveauté pas simple, puisque pas encore dans aur, il faut faire une manipulation (yay, pamac ou autre)
papajoke a écrit : il y a 4 mois Avant installation, installer un paquet uniquement pour le build

    yay -S python-setuptools-git-versioning --asdeps

logkonsult - gui pour voir les logs pacman (Qt)

#18Messageil y a 4 mois

J'ai des icones :sourire:
Même sans .conf, ça ouvre mousepad sur double click d'une ligne ou meld sur warning. :gsourire:

Image

et avec fichier .conf, ça marche aussi :lol:

editor = "mousepad"
diff = "meld"
days = 120
Répondre