Gambas France BETA


Pas de compte ? Incription

MAJ-Auto...?

Ce sujet est résolu.

1
AuteurMessages
didier18#1 Posté le 15/7/2014 à 18:39:12
Bonjour

A l'initialisation du programme...

1) - L'ordi est-il connecté au réseau ?
2) - Le numéro de version est-il différent de celui présent sur le site ?
3) - Si 1 et 2 sont vrai on propose à l'utilisateur la MAJ.
4) - Si l'utilisateur donne son accord on effectue la MAJ
5) - Dans la négative on affiche un bouton sous la barre des menus (ainsi l'utilisateur pourra faire la MAJ lorsqu'il le souhaitera).

Une MAJ de ce type pour Gambas3 (ou pour tous vos programmes) ce serai cool non ? ;)

Cordialement.

Jack#2 Posté le 15/7/2014 à 20:31:43
Bonjour Didier,

je ne comprends pas trop le but de ton message.
C'est une demande de modification que tu formules auprès de Gambas ou c'est une demande d'aide parce que tu ne sais pas trop comment faire ?
Pour un code démocratique nationalisons Gambas.
didier18#3 Posté le 15/7/2014 à 22:48:58
Bonsoir Jack.

A vrai dire beaucoup des deux...

Oui, d'abord une demande auprès des concepteurs de Gambas car venant (comme tant d'autres) de ce qu'ici vous appelez 'les écrans bleus', j'appréciais la simplicité d'installation d'un soft. Un double clic sur un 'setup.exe' et hop le tour est joué.

Le monde unix, pardon linuxien est bien plus compliqué sur cet aspect, sans parler des '.tar.bz2' et des '.deb' qui s'installent différemment. Pas vraiment simple... Mais ceci ne me fera pas retourner vers la firme Américaine.

Et aussi pour moi car si je vois le cheminement à effectuer, je ne saurais pas pour autant, le mettre en œuvre.

Donc l'idée serai la création d'un module qui pourrai mettre à jour le soft sur lequel il est hébergé.
Ainsi plus besoin d'aller vérifier si il y a des MAJ, ni à se soucier des dépendances, le MAJ ferai tout cela pour nous (qui ne sommes pas tous des programmeurs chevronnés).
Le sujet n'étant pas crucial pour la réalisation d'un projet, j'ai préféré le poster dans la rubrique 'Bistrot', d’où peut être la confusion...

Jack#4 Posté le 16/7/2014 à 00:55:49
Pour les mises à jour de Gambas il y a les PPA. Je ne vois pas ce qu'on pourrai faire de mieux même sous Windows.
Je vais te faire un topo demain pour les mises à jour de tes projets.
Pour un code démocratique nationalisons Gambas.
Jack#5 Posté le 16/7/2014 à 11:13:53
Voilà comment je procède pour les mises à jour.

1- Mettre le numéro de version dans le fichier de settings.
2- Sur le site distant qui contient le logiciel mettre un fichier qui contient le numéro de version. Ce fichier est mis à jour manuellement (ou par un autre moyen) lors de chaque mise à jour du logiciel.
3- A chaque lancement du logiciel on vérifie si on est connecté à internet.
4- Si c'est le cas on charge le fichier de version et on effectue une comparaison entre ce fichier et le setting local.
5- Si le setting est inférieur alors on lance la mise à jour.
6- On met à jour le numéro de version du setting.

Voilà une idée du programme.

Version = Settings["/dbase/Version"] 'On récupère le numéro de version locale.
If Not Exist(User.home & "/tmp") Then Mkdir User.home & "/tmp" 'on créé un répertoire local qui contiendra nos fichiers de travail.
If Exist(User.Home & "/tmp/pb1.txt") Then Kill User.Home & "/tmp/pb1.txt" 'on détruit le fichier pb1.txt
If Exist(User.Home & "/tmp/ping.txt") Then Kill User.Home & "/tmp/ping.txt" 'on détruit le fichier ping.txt
If Exist(User.Home & "/version.txt") Then Kill User.Home & "/version.txt" 'on détruit le fichier version.txt
If Exist(User.Home & "/logiciel.tar.gz") Then Kill User.Home & "/logiciel.tar.gz" 'on détruit le fichier logiciel.tar.gz

Une fois ces pré-requis effectués on commence le traitement.
1- pour savoir si on est sur le réseau on va faire un ping du site. Par exemple www.gambasforge.org
Shell "ping -c 1 www.gambasforge.org >" & User.home & "/tmp/ping.txt 2>&1" Wait
2- Une fois le fichier téléchargé on le met dans une variable.
If Exist(User.Home & "/tmp/ping.txt") Then txt = Trim$(File.Load(User.Home & "/tmp/ping.txt"))
3- Puis on regarde si le fichier contient le nom du site. Si 0 alors on n'a pas de connexion sinon on a la connexion.
If InStr(txt, "gambasforge") <> 0 Then
4- On charge le fichier de version
Shell "wget -q" & " " & "http://www.gambasforge.org/version.txt" & " -P " & User.Home Wait
5- Une fois le fichier téléchargé on on vérifie sa présence en local et on le cahrge dans une variable.
If Exist(User.Home & "/version.txt") Then
txt = Trim$(File.Load(User.Home & "/version.txt"))
6- On effectue un contrôle sur les deux fichiers de travail.
If IsNull(Version) And Not IsNull(txt) Or If Not IsNull(Right$(version, 4)) And Not IsNull(txt) Then
If txt >= version Then
If Message.Question("Attention ! Vous allez mettre à jour votre logiciel \nEtes-vous d'accord ?", "Oui", "Non") = "1" Then
7- Avant la mise à jour on fait une sauvegarde de l'ancienne version.
Try Move Application.Path & "/logiciel.gambas" To Application.Path & "/logiciel.old.gambas"
Shell "cd " & User.Home ' On se met sur le réprtoire de l'utilisateur.
Shell "wget http://www.gambasforge.org/logiciel.tar.gz -P " & User.Home"
8- On va ensuite décompresser l'archive.
Shell "cd " & User.Home & " " & "; tar xvfz " & User.Home & "/logiciel.tar.gz" Wait
Kill User.Home & "/logiciel.tar.gz" 'On détruit l'archive
Kill User.Home & "/version.txt" 'On détruit le fichier de version
Settings["/dbase/Version"] = Txt 'On met à jour le fichier de setting
Settings.Save 'Et on sauvegarde
Message.Warning("Mise à jour terminée !") 'On préviens l'utilisateur du succès de l'opération.
9- Si txt n'est pas supérieur à version alors on indique qu'il n'y a pas de mise à jour a faire.
Message.Warning("Aucune mise à jour n'est a faire !")
10- Si le fichier version.txt n'existe pas alors on prévient l'utilisateur
Message.Warning("Problème de mise à jour! Veuillez vérifier votre connexion SVP.")
11- Si on n'a pasd la connexion internet
Message.Warning("Problème de mise à jour! Veuillez vérifier votre connexion SVP.")
Pour un code démocratique nationalisons Gambas.
Reivillo#6 Posté le 16/7/2014 à 11:53:43
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjour...

@ didier18.
Regarde ci-dessous dans la Forge
Vers ICI.

@ jack.
Ben, quelle Tartine...
Pas besoin de la beurrée, celle-la!
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
didier18#7 Posté le 17/7/2014 à 00:37:56
Bonsoir Jack, Reivillo et tout le monde

Oui bien sur il y a les 'PPA'... Comment fait-on pour y accéder et déposer un 'soft' ? Ne faut il pas être enregistré quelque part et le programme testé avant de le proposer au plus grand nombre...?
ça ne dois pas être si évident que ça puisque même Gambas3 n'y apparaît pas (alors qu'il devrait y figurer à la meilleure place !).


D'ailleurs à ce propos Reivillo j'ai vu qu'il y avait une version 3.5.4 sur le site officiel et lorsque je lance la première commande qui figure dans ta signature, voici ce que j’obtiens...

didier@boita1:~$ sudo add-apt-repository ppa:nemh/gambas3
[sudo] password for didier:
You are about to add the following PPA to your system:
This PPA is DEPRECATED and no longer updated! Please use gambas-team/gambas3 repository.
More info: https://launchpad.net/~nemh/+archive/ubuntu/gambas3
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: le porte-clefs « /tmp/tmp2XMQGk/secring.gpg » a été créé
gpg: le porte-clefs « /tmp/tmp2XMQGk/pubring.gpg » a été créé
gpg: demande de la clef 73C62A1B sur le serveur hkp keyserver.ubuntu.com
gpg: /tmp/tmp2XMQGk/trustdb.gpg : base de confiance créée
gpg: clef 73C62A1B : clef publique « Launchpad PPA for Kendek » importée
gpg: Quantité totale traitée : 1
gpg: importées : 1 (RSA: 1)
OK
didier@boita1:~$

Même si je donne les ordres suivant dans ta signature, un beau message final m'indique que ma version est la dernière MAJ.
D'après ce que j'en comprend le 'PPA' est cassé ou inaccessible (bref pas de version 3.5.4 pour l'instant).

Jack, je vais étudier et essayer d'adapter ton code à mon besoin et comme le suggère Reivillo décortiquer les codes sur le lien fourni.

Merci à vous deux pour votre réactivité et votre soutient.

Reivillo#8 Posté le 17/7/2014 à 08:04:58
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »RE...

Pour les mises à jour de Gambas3,
j'attends que Linux Mint, m'invite à les Télécharger.
J'ai eu trop de déconvenue, en allant les pêcher moi même.
Personnellement, ça me presse pas.
Doucement le matin, Pas trop vite l'après midi, Puis calme le soir...
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
didier18#9 Posté le 18/7/2014 à 10:11:21
Bonne philosophie Reivillo...

Il y a des jours ou je me dis que didier18 mériterai bien cinq marionnettes dans son théâtre !

Ce matin Ubuntu me propose de nouvelles MAJ et parmi celles-ci figure Gambas3.
Après acceptation, 'moulinage' de la machine, je me retrouve avec un Gambas 3.5.4 !

- A part le menu contextuel qui est toujours en Anglais, tout le reste semble fonctionner correctement.

C'est toi qui avait raison Reivillo, il fallait juste patienter un p'tit peu...
1