PrimTux

La distribution éducative pour débutants et initiés.

Vous n'êtes pas identifié(e).

Annonce

CONSULTER LES MENTIONS LÉGALES RGPD.

CARTE DES MEMBRES POUVANT AIDER ET DES ÉCOLES SOUS PRIMTUX
Merci de vous y inscrire en nous envoyant un email si vous souhaitez y apparaître.

  • Pour être automatiquement informé des réponses à vos messages sur le forum, n'oubliez pas de cliquer sur "Suivre cette discussion" en bas de page. Mieux, en vous abonnant au flux RSS du forum, vous pourrez suivre tout nouveau message sur l'ensemble du forum.
  • En allant dans votre Profil, ligne "Vie privée", vous pouvez également cocher "Suivre automatiquement les sujets auxquels on a répondu.", vous n'aurez plus à cliquer sur "Suivre cette discussion" lorsque vous postez un message.
  • Abonnez-vous à la newsletter sur le site principal pour être informé des nouveaux paquets, nouvelles versions, bugs...

#1 24-12-2019 11:20:42

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

PrimtuxStore

Pour avoir un dev suivi sur ce projet, je crée cette nouvelle discussion.

Pour testé le primtuxStore (une ébauche pour l'instant) : https://framagit.org/mothsart/primtuxstore

Il faut au préalable installer "python-apt". (donc apt-get install python-apt)
Il y a aussi python-yaml (comme les handymenus)

Pour le lancer, on fait :

python store.py (ou ./store.py)

Celui-ci va charger le fichier conf.yaml, créer une ligne pour chaque app détecté, regarder si le soft est installé (apt-get cache au lancement et apt-cache search à chaque ligne grosso modo).
Si est installé, on peut le tester.

L'édition du fichier conf.yaml permet de compléter la liste.

Hors ligne

#2 24-12-2019 12:40:08

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Je n'ai pas de création de ligne et il ne détecte que gcompris (mais il ne voit pas l'exécutable) et firefox (là tout est bon), sinon dans l'idée c'est ça! Les images ne sont pas redimensionnées.

Hors ligne

#3 24-12-2019 16:12:52

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Steph a écrit :

Je n'ai pas de création de ligne et il ne détecte que gcompris (mais il ne voit pas l'exécutable) et firefox (là tout est bon)

Euh, oui. C'est un peu le principe : il ne va afficher que les entrées dans le fichier conf.yaml
A la rigueur, je peux essayé d'en créer le max avec un script de conversion provenant des handymenus.
Mais faudra quand même faire le tri, rajouter des images etc.

Pas de création de ligne : ah, tu voulais un store "éditable" ?
Pour l'instant, le faire à la main dans le fichier conf.yaml, c'est suffisant, non ?
L'utilisateur final veut un truc à consulter, non ?


Qu'entends-tu par redimensionnement ? Que les image soient responsives ?
Le mieux seraient de toute façon de donner une taille standart pour pas avoir de surprises.

Hors ligne

#4 24-12-2019 16:20:47

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Laisse tomber j'avais lu "va changer le fichier de conf" au lieu de "va charger". Oui pour les icones.

Hors ligne

#5 06-02-2020 23:49:23

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Quelques news : j'ai finalement migré l'applicatif pour utiliser une base de donnée sqlite : ça sera plus facile de faire de la recherche, de la pagination etc.
J'ai également créé un script d'import qui va alimenter la base en se basant sur les diff fichiers yaml des session.
Y'a encore quelques petits retouches (notamment sur les images) mais ça devrait être prêt ce week-end.

Steph : je te donnerais les détails pour utiliser l'import. Le mieux est d'avoir une Primtux avec le max de softs d'installé sur les handymenus.
Une fois en place, le soft d'import fera le reste.
Il sera possible de lancer l'import à plusieurs reprises : c'est "normalement" (d'expérience, c'est toujours un peu capricieux ce genre d'import) assez intelligent pour n'ajouter que les choses qu'il n'a pas encore dans sa base.

Une fois cet import de passé, il faudra se concentrer sur :
- les quelques softs qui n'ont pas passé l'import
- le mode "recherche"
- la pagination

Hors ligne

#6 08-02-2020 00:49:09

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Voilà, j'ai créé une première version du script d'import.
ça nécessite la lib yaml et pillow. (apt-get install python3-pil python3-yaml)

Le mieux, pour tester :

git clone git@framagit.org:mothsart/primtuxstore.git
cd primtuxstore
./create_db // crée la base de donnée à la racine : dans le fichier prmtuxstore.db

Puis :

./import

Ce dernier va, à partir des fichiers yaml, crée les entrées en base, rapatrier les images dans un dossier "assets" et effectuer un traitement pour qu'elles fassent toutes la même tailles et soit au format png (les jpeg sont convertis en png) ou svg.

Une fois, ces opérations effectués, on peut tester le résultat avec un :

./primtuxstore

Hors ligne

#7 18-02-2020 12:17:20

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

La pagination est désormais en place.
Je vais me concentrer désormais sur le moteur de recherche.
Je pense que je vais également améliorer l'import pour qu'il se base sur les fichiers desktop et en récupère le max de données. (les mots clés notamment)

Y'a encore des petits soucis de mis en page mais je traiterais ça à la fin.

Hors ligne

#8 18-02-2020 15:48:04

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

J'ai ça à l'import:

$ ./create_db
DROP TABLES
CREATE TABLES
$ ./import
Traceback (most recent call last):
  File "./import", line 84, in <module>
    session
  File "./import", line 70, in import_session
    import_apps(sessions, db, s['apps'], session)
  File "./import", line 56, in import_apps
    'in_%s' % session
  File "./import", line 38, in import_app
    app_exist = db.app_exist(name, sessions, session)
  File "/home/administrateur/primtuxstore-master/pstore/lib/request.py", line 45, in app_exist
    name
  File "/home/administrateur/primtuxstore-master/pstore/lib/request.py", line 15, in _exec
    result = self.db.execute(request)
sqlite3.OperationalError: no such table: results

Hors ligne

#9 18-02-2020 21:35:44

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Hum, c'est étonnant.
Après le ./create_db, tu as bien un fichier primtuxstore.db de créé ?
Là, il n'accède pas à la table sql et je ne vois que 2 cas possibles : pas de fichier de base de donnée (ou pas les droits nécessaires) ou le create_db n'a pas fait son job. (ce qui me semble très improbable)

Hors ligne

#10 18-02-2020 21:48:18

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

J'ai mis à jour le code pour avoir un mode verbeux.
Peux-tu me donner le résultat de :

./create_db --verbose

Hors ligne

#11 18-02-2020 22:00:22

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

On parle bien d'une exécution en user, pas en root? J'ai le même message et pas de primtuxstore.db dans le répertoire.

Hors ligne

#12 18-02-2020 23:46:38

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Ah oui, en espace utilisateur ça devrait passer très bien.
J'avais un soucis sur ma branche donc un pull pour récupérer le mode verbeux.

Je pense que c'est un soucis de dépendance : sqlite3 ou python-sqlite manquant... (mais si c'est ça, je trouve bizarre que l'erreur soit aussi silencieuse) si vraiment ça ne passe pas, il va falloir que je teste sur une primtux fraiche.

Hors ligne

#13 19-02-2020 01:18:08

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Sur une primtux4, il me manquait "python3-pil" et "python3-yaml".

Hors ligne

#14 25-02-2020 20:34:57

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Bon, je suis embêté.

Vu que je suis arrivé à l'installer sans soucis sur l'ordi de ma fille (et qu'il y avait sans doute pas mal de libs), je me suis installé une Primtux 5 toute fraîche dans une VM :

$ uname -a
Linux primtux 5.0.0-31-generic #33~18.0.4.1-Ubuntu SMP Tue Oct 1 10:20:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Je me suis basé sur la dernière iso sur sourceforge et j'ai eu aucun blocage.

j'ai fait

$ cd /home/administrateur
$ git clone https://framagit.org/mothsart/primtuxstore.git
$ cd primtuxstore
$ ./create_db --verbose

ma base de donnée était bien créé :

$ ls  | grep primtuxstore.db
primtuxstore.db

et du coup, pas de soucis d'import :

./import

Même pas eu besoin d'installer "python3-yaml" ! c'est à n'y rien comprendre...

Hors ligne

#15 28-02-2020 18:55:41

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Alors avec le git clone ça fonctionne mais si je clone en téléchargeant en zip la base n'est pas créée, c'est ça qui est étrange.
Une fois démarré, j'ai les boutons "installer" qui sont actifs pour les applis installées, c'est pas "tester" qui devrait être actif?

Hors ligne

#16 28-02-2020 20:17:35

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Avec la commande dpkg-buildpackage -us -uc on a une erreur de chemin, corrigeable dans /debian/primtuxstore.install en mettant pstore à la place de store.

Hors ligne

#17 28-02-2020 20:38:08

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Mais en fait il est passé où create_db ? On dirait qu'il n'y a que des .py dans le deb.

Hors ligne

#18 29-02-2020 10:36:28

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Bon, je comprend le pourquoi du comment :
Le soft ne marche pour l'instant qu'en mode "debug" et ce mode s'appuie sur la présence d'un dossier ".git"... or avec l'archive, ce dossier n'existe pas et patatra.

Sur la partie packaging, j'ai pas mis la charrue avant les boeufs et c'est juste un squelette mais ça ne fonctionne pas encore.
Pour l'instant, c'est en plein dev, c'est un peu hatif de se concentrer dessus : le but c'est que tu es un aperçu et qu'on puisse travailler ensemble sur l'aspect "contenu" et fonctionnalités. Une fois ces points en place, je me concentrerais sur stabiliser et packager.

De plus, j'aimerais que le .deb intègre directement la base de donnée "alimentée". (le script de création et d'import, c'est juste pour nous simplifier la vie mais ça n'a pas vocation a être présent chez l'utilisateur final)
Du coup, le create_db et l'import ne seront pas présent sur le .deb final.

Hors ligne

#19 29-02-2020 10:59:51

Steph
Administrateur
Inscription : 03-06-2015
Messages : 5 942

Re : PrimtuxStore

Compris! smile

Hors ligne

#20 12-03-2020 10:20:36

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Je viens d'améliorer le script d'import.

Il arrive désormais, à partir des entrées du handymenu à retrouver le
nom du paquet correspond (grâce à ça, il est capable de savoir si
l'applicatif est installé ou non), le fichier .desktop et de ce fait les
mots clés rattachés.
Alors, il fait : c'est bien grand mot car les handymenus ne disposent
tout simplement pas de suffisamment d'info pour tout remonter facilement.
Je suis obligé de récup la commande lancé, de faire un "which" dessus
pour ne pas prendre en compte les éventuels alias, supprimer les
arguments puis j'identifie via dpkg quel paquet
contient cette commande de lancement.
Une fois le nom de ce paquet récupéré, je fais ressortir les .desktop
(certains en ont plusieurs) pour n'en sélectionner qu'un (celui qui a le
bon lanceur) et j'enregistre les mots clés correspondants.
Bref, c'était pas de la tarte et y'a sans doute des cas ou il ne s'en
sort pas.

Ce script alimente donc la base de donnée et peut se lancer plusieurs
fois sans rajouter de doublons (enfin, ça c'est la théorie. Si ils y en
a, il faut tout de suite me le préciser pour que j'identifie pourquoi) :
il ne va rajouter que les nouvelles entrées présent dans les handymenus.

Voilà, ça devrait néanmoins bien nous simplifier la tâche.

Steph, est-ce que tu pourrais alimenter cet import avec des handymenus
chargés à toque : toutes les sessions + app non libres + paquets en
cours d'intégration dans la PTX6 ?

./create_db // on re-crée la base de zéro
./import

En parallèle, je vais mettre au point le petit moteur de recherche pour
qu'il tienne partie de ces futures nouvelles données.

Hors ligne

#21 14-03-2020 13:50:53

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

Voilà, ça avance.

L'auto-complete n'est pas encore parfait mais après l'import c'est utilisable. (et couplé avec la pagination)

Pour tester, il suffit de récupérer les dernières sources (git pull) et de lancer le store :

./primtuxstore

Hors ligne

#22 14-03-2020 15:52:23

mothsart
Modérateur
Inscription : 31-10-2016
Messages : 1 204

Re : PrimtuxStore

J'ai fait un premier jet pour l'installation.
Pour ça, il faut lancer le soft avec les droits root :

gksu ./primtuxstore

Pour l'instant, ça fige l'interface pendant que le soft est installé et on a pas vraiment de visibilité sur l'état d'avancement mais c'est toujours ça.

Bref, une fois qu'on aura suffisamment de données, je pourrais sans doute tagger le soft en version 0.1 : c'est à mon sens, fonctionnel.

Hors ligne

Pied de page des forums