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.

Le grand retour du BASIC (et en bien plus mieux)!

#1Messageil y a 1 an

Bonjour,

Nombre d'entre vous (et moi) ont commencé la programmation par le BASIC (interprété ou compilé).

Ce langage a été décrié très (trop) souvent à tors par de prétendus "gourous" pour son code qualifié de "spagueti" (comme si les goto n'existaient pas dans d'autres langages comme par exemple le bon vieux C ANSI) et pour le fait que même complilé, il devait trainer avec lui un "BASRUN" qui soit disant ralentissait l'exécution des programmes exécutables.

Foutaises !

Dans les années 1980 et 1990 et même jusqu'au milieu des années 2000, de très nombreux logiciels professionnels mondialement distribués et utilisés à des millions d'exemplaires ont été écrits en BASIC compilé (Microsoft QB4.5 ou BC7, ou Borland Turbo Basic et même Power Basic de mon regreté ami Bob Zale - RIP).

Vous voulez des exemples ?

OK : PolyWrite (DOS, Windows et OS/2), Turbo Text Professional (DOS et OS/2), Ultimate DB (DOS, Windows et OS/2), Xgraph (DOS) etc. etc. etc. !

Aujourd'hui, Galleon (un Australien bien perché) soutenu par une équipe de bénévoles complètement dingues nous proposent un IDE complet et en Open Source utilisant la base du langage BASIC de Microsoft (Quick Basic 4.5 ou BC7 et Turbo Basic .1 de Borlnd) compatible à 99 pour 100 avec le langage de référence (à quelques très rares restrictions prêt), mais tout en y apportant de très nombreuses nouveautés, améliorations et extensions.

Mais cet IDE (son compilateur) traduit en fait votre code souce BASIC (.bas) en code source C++ (.cpp), puis le compile avec gcc-g++ pour en faire un exécutable.

Et en plus, cet IDE fonctionne non seulement sous Linux, mais aussi sous Windows et OS/X vous permettant ainsi d'écrire un code portable multi plateformes.

Comparé au verbiage de certains langages plus récents (que je ne citerais pas pour ne vexer personne), je ne parle même pas de la simplicité de l'écriture d'un source en BASIC (même et surtout sans aucun GOTO en utilisant fonctions et sub routines) !

J'ai donc le plaisir de vous proposer un script d'installation interactif de cet IDE qui devrait ravir de très nombreux programmeurs, débutants ou experts car le BASIC est un langage de programmation simple, concis et performant qui peut aussi être très facilement étendu (en particulier par l'ajout et l'utilisation de librairies C).

Vous pouvez le télécharger ici : => http://www.as2.com/qb64/index.html

Pour l'utiliser, veuillez décompresser ce fichier par la commande :

tar -xjf QB64_install.tar.bz2

Puis lancez la commande :

sudo ./QB64_install.sh

Répondez simplement aux quelques questions posées et l'installation se déroulera (à priori) sans problème.

Merci d'essayer cet IDE et de me faire part de vos observations.

Note :

Mon script peut (sans aucune prétention) être à priori utilisé sous : ArchLinux, Bridge, CentOS, Chakra, Debian, elementary, Fedora, LinuxMint, LMDE, Manjaro, Neon, RedHat, Ubuntu (including its spin off) et Zorin, que ce soit pour les versions Desktop et Server.

Merci aussi de me faire part de vos critiques sur mon script.

Merci encore de m'aider à le traduire dans d'autres langues et/ou de l'adapter pour d'autres distributions que je ne connais ni ne maîtrise pas encore (par exemple : Suze et ses spin off).

Très cordialement.
Fnux.

PS: les membres de ce forum (comme ceux d'autres distributions) qui mon aimablement aidé à écrire ce script sont nauturellement remerciés et cités dans les crédits en tête de mon script. Merci encore à eux tous pour leur aide.
Modifié en dernier par Fnux le 07 Déc 2016, 08:12, modifié 4 fois.

Le grand retour du BASIC (et en bien plus mieux)!

#2Messageil y a 1 an

bonjour,

désolé MAIS
ce type d'installation est A PROSCRIRE

On n'installe JAMAIS un logiciel sous Archlinux/Manjaro de cette façon

  • source "indéfinie" (ton nom de domaine...)
  • wget sources pas sur le site officiel ou dépôt git
  • SURTOUT sudo install
  • installations dans le home et non dossiers systèmes (lanceur...)

ps: @Fnux je ne dis pas que ton logiciel est douteux (tu fais de la pub pour qb64 depuis le début du forum) mais qu'avec ce type d'installation, dans le doute, on passe toujours sous archlinux
longue vie a QB64

Le grand retour du BASIC (et en bien plus mieux)!

#3Messageil y a 1 an

Bonjour,
Ah, le Basic ! Que de souvenirs...
Bon, pour ceux qui veulent apprendre (ou réapprendre) la programmation, le Python c'est sans doute mieux, et que de doc !
Proche de Basic et installable "officiellement" sous Arch/Manjaro il y aurait Gambas3 (un meta-paquet de 89 paquets, interface-gtk)

$ sudo pacman -S gambas3

Le grand retour du BASIC (et en bien plus mieux)!

#4Messageil y a 1 an

Salut papajoke, :salut:

papajoke a écrit :désolé MAIS ce type d'installation est A PROSCRIRE

On n'installe JAMAIS un logiciel sous Archlinux/Manjaro de cette façon

  • source "indéfinie" (ton nom de domaine...)
  • wget sources pas sur le site officiel ou dépôt git
  • SURTOUT sudo install
  • installations dans le home et non dossiers systèmes (lanceur...)

ps: @Fnux je ne dis pas que ton logiciel est douteux (tu fais de la pub pour qb64 depuis le début du forum) mais qu'avec ce type d'installation, dans le doute, on passe toujours sous archlinux

Merci de tes observations que j'apprécie sincèrement, mais (sans aucune polémique... Victor LoL)...

QB64 n'est pas "MON" logiciel.

C'est simplement un outil (IDE) que j'aime bien et que je veux faire connaître au plus grand nombre, et en particulier aux débutants sous une distribution Linux (Arch & Co, Debian & Co, Fedora & Co) qui aimeraient se développer de petits (ou même de gros) programmes (dont des jeux) sans avoir à se cogner l'appentissage de langages bien plus complexes (et pas forcément plus efficaces).

Mon script demande effectivement d'avoir les privilèges de root (sudo ou su ou su -) très exactement comme cela est aussi nécessaire pour pour installer n'importe quel "package" avec pacman (ou pamac) mais aussi avec apt-get (Debian & Co) ou yum (CentOS ou RedHat) ou dnf (les dernières versions de Fedora). Exemple sudo pacman -S bidule où l'on ne maîtrise absolument rien de ce qui sera fait (et c'est pareil avec apt-get, yum ou dnf pour les autres packet managers d'autres distributions) !!!

Moi, au moins, avec mon script bash, tu as le source (documenté) de ce qui va être fait !!!

QB64 étant un IDE avec d'un côté un éditeur spécialisé pour ce langage et de l'autre un compilateur séparé (qui peut être lancé en ligne de commande), ce dernier doit donc pouvoir à priori s'installer de la même manière que n'importe quel autre outil du même genre comme par exemple GO ou nodejs !

Il me semble donc que le répertoire /usr/local soit à priori parfaitement adapté, surtout pour pouvoir lancer qb64 en ligne de commande par n'importe quel utilisateur depuis n'importe où sans avoir à utiliser sudo comme c'est la cas pour par exemple gcc.

Mon wget se réfère effectivement à mon site personnel pour la seule et unique raison que QB64 est maintenu par différentes personnes dont l'auteur principal, Galleon (qui depuis quelques temps n'est plus très actif en raison d'autres obligations) et par un petit groupe de bénévoles (dont je ne fais pas partie) qui fait évoluer le projet en "nighty builds" avec une numérotation de leurs builds qui n'est pas facilement utilisable pour standardiser le téléchargement.

J'assume donc de toujours proposer une version à jour et surtout stable (d'après mes tests) sur mon site personnel, mais mon script permet de télécharger facilement ces nighty builds grâce à la documentation la plus précise possible de mon code (il n'y a que 4 ou 5 lignes à modifier et elles sont très bien documentées).

Maintenant, j'espère faire bientôt partie de ce groupe et de pouvvoir utiliser un dépôt GIT pour résoudre ce problème (qui n'en est pas vraiment un dans la mesure ou je fournis les sources de l'IDE complet et que mon script les compile, très exactement comme c'est le cas pour par exemple si tu veux la dernière version de nodejs).

En attendant, c'est la meilleure (ou la moins mauvaise) solution que j'ai trouvée.

Donc, une fois encore merci de tes remarques parfaitement justifiées, mais pour être constructif, que me propose-tu alors pour être à ton sens "acceptable" ?

Merci d'avance de ton temps à m'expliquer comment faire pour me conformer au "standard" (si tant est qu'il y en ai un dans ce monde de brutes).

:clap:merci::maître::aime::sos::saispas::tetu!:smack::smack::smack::smack::smack:

Très cordialement.
Fnux.
Modifié en dernier par Fnux le 27 Nov 2016, 07:07, modifié 2 fois.

Le grand retour du BASIC (et en bien plus mieux)!

#5Messageil y a 1 an

Salut waitnsea, :salut:

waitnsea a écrit :Bonjour,
Ah, le Basic ! Que de souvenirs...
Bon, pour ceux qui veulent apprendre (ou réapprendre) la programmation, le Python c'est sans doute mieux, et que de doc !
Proche de Basic et installable "officiellement" sous Arch/Manjaro il y aurait Gambas3 (un meta-paquet de 89 paquets, interface-gtk)

$ sudo pacman -S gambas3

Désolé mais non, le Python n'est pas mieux (ni moins bien) que QB64 pour la seule et unique raison que ce sont deux outils qui ne sont pas comparables.

QB64 est un IDE cross-plateform (Linux, Windows et O/X) qui offre d'une part un éditeur spécialisé pour ce langage (le BASIC de Microsoft) et d'autre part un système de conversion du code source (.bas) en c++ (.cpp) pour le compiler et en faire (automatiquement) un exécutable via gcc-g++.

Cela n'a donc rien à voir (me semble-t-il) avec Python qui est un interpréteur.

Quand à la "doc", il n'y que que juste que quelques milliards de sources (.bas) et de librairies disponibles sur la toile !

Par ailleurs, et cela n'engage que moi, QB64 n'a rien à envier à Python (ou à Perl ou encore à bien d'autres langages) pour sa facilité d'apprentissage.

Merci de tes observations même si je ne suis pas de ton avis (c'est ça la démocratie non ? Et nous en avons bien besoin en ces moments troubles). :rire

Très cordialement.
Fnux.

Le grand retour du BASIC (et en bien plus mieux)!

#6Messageil y a 1 an

Désolé, erreur de manipulation de ma part. :cartonrouge:
Doublon du message précédent donc supprimé.
Très cordialement.
Fnux.
Modifié en dernier par Fnux le 27 Nov 2016, 18:05, modifié 1 fois.

Le grand retour du BASIC (et en bien plus mieux)!

#7Messageil y a 1 an

Bonjour .
Ça ne devrait pas être très compliqué d'établir un PKGBUILD . Pour l'hébergement, vu que ce n'est qu'un script, il devrait être accepté sur la plateforme Git de Aur , mais tu peux aussi le laisser où il est .
En gros précise ces lignes:

..........
souces() "www.as2.com/linux/tools/qb64/QB64_install.tar.bz2"
sha256sums "df4780b7e5f9bab58d0d84754c7ff94348dbb2bd1056eb7782f3781ea4d923bd"


make()
             {
              cd "$pkgname-$pkgver"
             ./QB64_install.sh --prefix=/usr
              make
            }
package()
            {
             cd "$pkgname-$pkgver"
             make DESTDIR="$pkgdir/" install
            }


Il faut toujours construire un PKGBUILD même pour un script dès l'instant qu'on installe hors du /home. D'autant que pacman pourra gérer les dépendances et éviter des ennuis inévitables lors de prochaines mise à jour.
Je t'aiderai si tu rencontre des problèmes, mais il vaut mieux que tu t'y essaies avant.

Le grand retour du BASIC (et en bien plus mieux)!

#8Messageil y a 1 an

lemust83 a écrit :...En gros précise ces lignes:

...depends() "gambas3"
...
C'est un programme en Gambas en fait - pas en "old" Basic ?
Sur la page du Wiki on lit "This article or section is out of date" mais les paquets sont toujours disponibles

Le grand retour du BASIC (et en bien plus mieux)!

#9Messageil y a 1 an

:bjr:
Oui, j'ai un peu mélangé les retours de code dans les posts de ce sujet. :rire
Je rectifie.

Le grand retour du BASIC (et en bien plus mieux)!

#10Messageil y a 1 an

Come stai amico ?
Oui, après ta correction, ce ne semble pas du gambas...
Il y a un tuto ici : Développez.com
Quand Fnux aura posé son paquet AUR... :salut:

Le grand retour du BASIC (et en bien plus mieux)!

#11Messageil y a 1 an

Alors j'ai dégrossi un peu.Ce PKGBUILD construit bien un paquet qui s'installe:

# Maintainer: Your Name <youremail@domain.com>
pkgname=qb64
pkgver=1
pkgrel=1
pkgdesc="A script that allows the installation of the IDE 'QB64' which translates the basic language into C++"
arch=('x86_64')
url="NONE"
license=('CC-By-Sa')
replaces=(qb64)
source=("www.as2.com/linux/tools/qb64/QB64_install.tar.bz2")
sha256sums=("df4780b7e5f9bab58d0d84754c7ff94348dbb2bd1056eb7782f3781ea4d923bd")
package() {
   cd "$srcdir"
   ./QB64_install.sh
        }


La compilation et l'installation se déroulent bien malgré un poids nul...

[steph@manjaro Nouveau dossier]$ makepkg
==> Création du paquet qb64 1-1 (dim. nov. 27 11:36:17 CET 2016)
==> Vérification des dépendances pour l’exécution...
==> Vérification des dépendances pour la compilation...
==> Récupération des sources...
  -> QB64_install.tar.bz2 trouvé
==> Validation des fichiers source avec sha256sums...
    QB64_install.tar.bz2 ... Réussite
==> Extraction des sources...
  -> Extraction de QB64_install.tar.bz2 avec bsdtar
==> Suppression du répertoire $pkgdir/ existant...
==> Entre dans l’environnement fakeroot...
==> Lancement de package()...


Bonjour steph,

Vous devez utilisser les privilèges root pour utiliser ce script.

Merci de relancer ce script avec [sudo] ou [su] ou [su -] en fonction de la
politique de sécurité de votre OS.

Au revoir.

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

==> Nettoyage de l’installation...
  -> Suppression des fichiers libtool...
  -> Suppression des fichiers indésirables...
  -> Suppression des fichiers de bibliothèques statiques...
  -> Nettoyage des symboles inutiles dans les fichiers binaires et les bibliothèques...
  -> Compression des pages de man/info...
==> Recherche des erreurs d’empaquetage…
==> Création du paquet « qb64 »...
  -> Génération du fichier .PKGINFO...
  -> Génération du fichier .BUILDINFO...
  -> Génération du fichier .MTREE...
  -> Compression du paquet...
==> Quitte l’environnement fakeroot.
==> Création finie : qb64 1-1 (dim. nov. 27 11:36:18 CET 2016)


Je l'installe:

[steph@manjaro Nouveau dossier]$ sudo pacman -U qb64-1-1-x86_64.pkg.tar.xz 
[sudo] Mot de passe de steph : 
chargement des paquets...
résolution des dépendances...
recherche des conflits entre paquets...

Paquets (1) qb64-1-1

Taille totale installée :  0,00 MiB

:: Procéder à l’installation ? [O/n]
(1/1) vérification des clés dans le trousseau               [--------------------------------] 100%
(1/1) vérification de l’intégrité des paquets                [--------------------------------] 100%
(1/1) chargement des fichiers des paquets                [--------------------------------] 100%
(1/1) analyse des conflits entre fichiers                      [--------------------------------] 100%
(1/1) vérification de l’espace disque disponible           [--------------------------------] 100%
:: Traitement des changements du paquet...
(1/1) installation de qb64


Je reboot et rien...
Pourtant, le paquet s'est bien installé, mais apparemment le script ne s'exécute pas :

[steph@manjaro ~]$ pacman -Qi qb64
Nom                      : qb64
Version                  : 1-1
Description              : A script that allows the installation of the IDE 'QB64' which translates
                           the basic language into C++
Architecture             : x86_64
URL                      : NONE
Licences                 : CC-By-Sa
Groupes                  : --
Fournit                  : --
Dépend de                : --
Dépendances opt.         : --
Requis par               : --
Optionnel pour           : --
Est en conflit avec      : --
Remplace                 : qb64
Taille installée         : 4,00 KiB
Paqueteur                : Unknown Packager
Compilé le               : dim. 27 nov. 2016 10:28:03 CET
Installé le              : dim. 27 nov. 2016 10:28:52 CET
Motif d’installation     : Explicitement installé
Script d’installation    : Non
Validé par               : --

[steph@manjaro ~]$ qb64
bash: qb64 : commande introuvable

Je pense que makepkg a construit les métadonnées, mais le script semble perdre les droits d'exécution en dehors du fakeroot et ne s'exécute pas.
On ne doit pas être loin. J'ai toujours galéré pour construire un paquet sans makefile.....

Le grand retour du BASIC (et en bien plus mieux)!

#12Messageil y a 1 an

Bonjour lemust83,

lemust83 a écrit :Je pense que makepkg a construit les métadonnées, mais le script semble perdre les droits d'exécution en dehors du fakeroot et ne s'exécute pas.
On ne doit pas être loin. J'ai toujours galéré pour construire un paquet sans makefile.....

Lors de l'exécution du script, après avoir saisi ton nom d'utilisateur, tu as le message suivant :

Bonjour steph,

Vous devez utiliser les privilèges root pour utiliser ce script.

Merci de relancer ce script avec [sudo] ou [su] ou [su -] en fonction de la
politique de sécurité de votre OS.

Au revoir.

Donc le script ne s'est pas exécuté et tant le téléchargement des dépendances et de QB64 que les compilations de ces dépendances et celle de QB64 n'ont pas été exécutées.

Comme je ne connais rien au comportement du système après être entré dans fakeroot, je suppose que c'est à cause du test que je fais sur la validité du nom d'utilisateur.

En effet, j'interdit l'utilisation de certains noms (par exemple root, ou www-data lignes 391 à 399 du script) et de noms d'utilisateurs qui n'existent pas (lignes 375 à 386 du script).

Je suppose alors que lorsque tu entres dans fakeroot, ton nom d'utilisateur est inconnu, et ça, je ne sais pas le régler.

Il y a surement un moyen, mais je dois chercher comment faire.

En tous cas, merci de ton aide.

Cordialement.

Le grand retour du BASIC (et en bien plus mieux)!

#13Messageil y a 1 an

Oui, il est probable que pointer un nom d'utilisateur en fakeroot pose problème
J'ai analysé le paquet construit ..

[steph@manjaro Nouveau dossier]$ ls -la pkg/qb64/
total 148
drwxr-xr-x 2 steph users  4096 27.11.2016 12:56 ./
drwxr-xr-x 3 steph users  4096 27.11.2016 12:56 ../
-rw-r--r-- 1 steph users 46427 27.11.2016 12:56 .BUILDINFO
-rw-r--r-- 1 steph users 84066 27.11.2016 12:56 .INSTALL
-rw-r--r-- 1 steph users   353 27.11.2016 12:56 .MTREE
-rw-r--r-- 1 steph users   352 27.11.2016 12:56 .PKGINFO

Le fichier standard .INSTALL crée par makepkg contient le contenu du script QB64_install.sh, mais ce contenu n'est pas conforme a ce qu'attend pacman d'un fichier .install . donc il est ignoré et le paquet s'installe à vide....
Je pense qu'il faut recréer l'arborescence proposée dans le script en fakeroot à la phase package() avant d'appeler ./QB64_install.sh
Extrait du script à la phase " case $VENDOR in"

Arch'|'Bridge'|'Manjaro'|'Chakra')
          $ECHO "# Set path to QB64 folder if it exists" > /etc/profile.d/qb64.sh; $ECHO "# Added /usr/local/qb64/qb64 dir for QB64" >> /etc/profile.d/qb64.sh; $ECHO "[ -d /usr/local/qb64 ] && PATH=\$PATH:/usr/local/qb64" >> /etc/profile.d/qb64.sh; $ECHO "# Set path to QB64 folder if it exists" > /etc/profile.d/qb64.csh; $ECHO "# Added /usr/local/qb64/qb64 dir for QB64" >> /etc/profile.d/qb64.csh; $ECHO "[ -d /usr/local/qb64 ] && PATH=\$PATH:/usr/local/qb64" >> /etc/profile.d/qb64.csh;;


En théorie, on évite d'installer dans /usr/local/bin mais plutôt dans /usr/bin . Cela dit, seul les puristes intégristes hurlent à l'infamie :gsourire:

Le grand retour du BASIC (et en bien plus mieux)!

#14Messageil y a 1 an

lemust83 a écrit :Alors j'ai dégrossi un peu.Ce PKGBUILD

En fait on ne peut réutiliser l'installateur tel quel dans le PKGBUILD: il faut intégrer une partie des sources dans le PKGBUILD et en plus créer un .install avec une autre partie des sources. Rappel: pacman n'est pas interactif comme le script d'install.

l'installateur modifie des fichiers systèmes, comme sudoers :confus: il me semble que c'est parce que les exécutables ne sont pas installés dans le classique dossier /bin ; la raison ? c'est juste sans doute parce que c'est plus facile d'installer/désinstaller mais avec pacman cette raison n'existe pas. Ou mettre simplement des liens dans le /bin ?

Nous sommes en rolling, l'installateur ici ne le gère pas. Dommage qu'il n'y ai pas de releases dans le dépôt github

Le grand retour du BASIC (et en bien plus mieux)!

#15Messageil y a 1 an

Salut lemust83, :salut:

lemust83 a écrit :En théorie, on évite d'installer dans /usr/local/bin mais plutôt dans /usr/bin . Cela dit, seul les puristes intégristes hurlent à l'infamie :gsourire:


Jésus crie... et la caravane passe. :gsourire:

Pour le choix de /usr/local/qb64, je me suis simplement basé sur l'installation de GO et de NodeJS qui l'un comme l'autre s'installent parfaitement dans /usr/local.

Quand à PHP, il s'installe dans /etc (où à priori il n'a rien à faire) !

De même, Apache s'installe aussi dans /etc (alors que sa place naturelle devrait être dans /srv) !

Il n' a donc à priori pas de standard (ou alors il n'est pas vraiment respecté) ! :rire

Et comme à priori les Ayatollahs du libre ne gueulent pas après eux, je ne vois pas pourquoi je ne ferais pas pareil. :siffle

Salut papajoke, :salut:

papajoke a écrit :l'installateur modifie des fichiers systèmes, comme sudoers :confus: il me semble que c'est parce que les exécutables ne sont pas installés dans le classique dossier /bin ; la raison ? c'est juste sans doute parce que c'est plus facile d'installer/désinstaller mais avec pacman cette raison n'existe pas.

Sans aucun esprit de polémique, vois ma réponse faite au dessus à lemust83.

papajoke a écrit :Ou mettre simplement des liens dans le /bin ?

Très bonne idée. :bien

Je t'en remercie et je vais le faire. :maître:

Cela règlera alors peut être le problème de n'avoir plus à modifier les fichiers systèmes (dont les originaux sont sauvegardés).

papajoke a écrit :Nous sommes en rolling, l'installateur ici ne le gère pas. Dommage qu'il n'y ai pas de releases dans le dépôt github

Ca, ça ne dépend pas de moi.

Mais je vais travailler Galleon et son équipe de bénévoles au corps pour les motiver. :rire

Après à tous les deux, je vous rappelle que le but de mon script est de pouvoir fonctionner sans aucun changement aussi bien sur les distributions ArchLinux et ses dérivées (dont Manjaro) que sur les distributions Debian et ses dérivées (dont Ubuntu), et sur les distributions Fedora et CentOS et leurs dérivées (dont RedHat) tout en offrant un maximum de sécurité en raison de l'utilisation des droits administrateurs. :clap

Et comme chacune de ces trois grandes familles de distributions s'évertuent à avoir des noms et des structures de paquets différents pour les mêmes choses (exemple : avec ArchLinux C++ s'appelle gcc, mais sous Fedora c'est gcc-g++ et sous Debian c'est g++ alors que c'est bel et bien le même compilateur) et donc des installateurs différents. :tetu!

D'ailleurs à ce propos, le jour où les développeurs harmoniseront les noms de paquets (et les installateurs), le monde Linux aura fait un très grand pas en avant au lieu d'entretenir des batailles de clochers inutiles et surtout absolument pas constructives (just my 2 cents). :maisnon:

La création de .rpm ou de .deb ou autres paquets prêts à installer n'est (pour moi) pas encore à l'ordre du jour car il faut d'abord que j'apprenne à les faire, ce qui n'est pas pour demain matin. :siffle

Mais je ne désespère pas d'y parvenir un jour.

Il me reste aussi un autre détail à régler: celui de la création d'une entrée avec l'icône de QB64 dans le menu des applications et même dans la section development (en français : programmation) comme c'est le cas pour Code::Blocks.

Cette partie de mon script ne fonctionne pas alors qu'elle devrait.

En tous cas, merci de votre intérêt pour mon script et surtout de votre aide et de vos sugestions car je vais en tenir compte.

Cordialement.

Le grand retour du BASIC (et en bien plus mieux)!

#16Messageil y a 1 an

Fnux a écrit :Pour le choix de /usr/local/qb64, je me suis simplement basé sur l'installation de GO et de NodeJS qui l'un comme l'autre s'installent parfaitement dans /usr/local.
Quand à PHP, il s'installe dans /etc (où à priori il n'a rien à faire) !

:confus:
php comme modejs et les autres c'est dans bin et les bibliotheques dans lib.
/etc est UNIQUEMENT pour les fichiers de configuration du logiciel, c'est la norme pour tous les linux

pacman -Ql php | grep bin
php /usr/bin/
php /usr/bin/phar
php /usr/bin/phar.phar
php /usr/bin/php
php /usr/bin/php-config
php /usr/bin/phpize

pacman -Ql nodejs
nodejs /usr/
nodejs /usr/bin/
nodejs /usr/bin/node
nodejs /usr/include/
nodejs /usr/include/node/
nodejs /usr/include/node/common.gypi
nodejs /usr/include/node/config.gypi
nodejs /usr/include/node/libplatform/
nodejs /usr/include/node/libplatform/libplatform.h
nodejs /usr/include/node/libplatform/v8-tracing.h
nodejs /usr/include/node/node.h
nodejs /usr/include/node/node_buffer.h
nodejs /usr/include/node/node_object_wrap.h
nodejs /usr/include/node/node_version.h
nodejs /usr/include/node/v8-debug.h
nodejs /usr/include/node/v8-experimental.h
nodejs /usr/include/node/v8-platform.h
nodejs /usr/include/node/v8-profiler.h
nodejs /usr/include/node/v8-testing.h
nodejs /usr/include/node/v8-util.h
nodejs /usr/include/node/v8-version.h
nodejs /usr/include/node/v8.h
nodejs /usr/include/node/v8config.h
nodejs /usr/share/
nodejs /usr/share/doc/
nodejs /usr/share/doc/node/
nodejs /usr/share/doc/node/gdbinit
nodejs /usr/share/licenses/
nodejs /usr/share/licenses/nodejs/
nodejs /usr/share/licenses/nodejs/LICENSE
nodejs /usr/share/man/
nodejs /usr/share/man/man1/
nodejs /usr/share/man/man1/node.1.gz
nodejs /usr/share/systemtap/
nodejs /usr/share/systemtap/tapset/
nodejs /usr/share/systemtap/tapset/node.stp



Fnux a écrit :De même, Apache s'installe aussi dans /etc (alors que sa place naturelle devrait être dans /srv) !

re NON
dans /srv tu as que le contenu des sites web ! et QUE la configuration dans /etc. Ce n'est pas parce que j'ai mes documents dans $HOME/Documents/ que libreOffice s'installe dans mon home :siffle

Fnux a écrit :Il n' a donc à priori pas de standard (ou alors il n'est pas vraiment respecté) !

plutôt tu n'as pas encore tout compris :clindoeil: A ta décharge, ce basic est multi-plateforme donc pas sur qu'il puisse bien tout respecter sous linux.

Fnux a écrit :Après à tous les deux, je vous rappelle que le but de mon script est de pouvoir fonctionner sans aucun changement aussi bien sur les distributions ArchLinux et ses dérivées (dont Manjaro) que sur les distributions Debian et ses dérivées

oui oui mais nous sommes en rolling contrairement à debian et autres amis et avons donc d'autres exigences

Fnux a écrit :La création de .rpm ou de .deb ou autres paquets prêts à installer n'est (pour moi) pas encore à l'ordre du jour car il faut d'abord que j'apprenne à les faire, ce qui n'est pas pour demain matin.

pour info, les paquets archlinux peuvent très bien utiliser les paquets rpm ou deb comme source. A noter que le PKGBUILD est justement le technique "la recette" pour créer un paquet archlinux.

Je peux te dire que 99% des utilisateurs d'archlinux ne voudront pas utiliser ton script tel quel et , pour manjaro c'est certainement plus de 50%.

Fnux a écrit :Il me reste aussi un autre détail à régler: celui de la création d'une entrée avec l'icône de QB64 dans le menu des applications et même dans la section development (en français : programmation) comme c'est le cas pour Code::Blocks.

:confus: pour créer une entrée (.desktop) dans le menu c'est /usr/share/applications/ , ton script l'installe lui dans $HOME/.local/share/applications/ pas sur de l’intérêt et ... avec archlinux on ne touche jamais au $HOME :evil:

Le grand retour du BASIC (et en bien plus mieux)!

#17Messageil y a 1 an

Bonsoir papajoke, :salut:
papajoke a écrit :plutôt tu n'as pas encore tout compris :clindoeil: A ta décharge, ce basic est multi-plateforme donc pas sur qu'il puisse bien tout respecter sous linux.

Tu as parfaitement raison car je ne prétends surtout pas tout connaître étant un vrai débutant avec Linux (même à mon âge) car sinon, je ne vous demanderai pas d'aide! :pappy:

Je suis là pour apprendre et je remercie tous ceux qui comme toi me corrigent pour faire quelque chose de propre.

Maintenant, à priori, QB64 me semble respecter les impératifs de Linux et fonctionne parfaitement depuis longtemps avec de très nombreuses distributions en Workstation et/ou en Server (si l'on ne développe que des applications soit en mode console soit pour le web).
papajoke a écrit :oui oui mais nous sommes en rolling contrairement à debian et autres amis et avons donc d'autres exigences

Où puis-je trouver qu'elles sont ces exigences ?
papajoke a écrit :pour info, les paquets archlinux peuvent très bien utiliser les paquets rpm ou deb comme source. A noter que le PKGBUILD est justement le technique "la recette" pour créer un paquet archlinux.

Voici une excellente raison pour moi pour apprendre comment faire ces paquets.
papajoke a écrit :Je peux te dire que 99% des utilisateurs d'archlinux ne voudront pas utiliser ton script tel quel et , pour manjaro c'est certainement plus de 50%.

Pour les afficionados d'ArchLinux, je ne me fais aucune illusion car ce qui n'a pas été écrit par ces Ayatollahs du libre n'est jamais regardé d'un bon oeil. Désolé mais ce sont dans leur grande majorité (à quelques rares exceptions près) des geeks intégristes qui, quand tu leur poses une question te donnent l'unique et unanime réponse : "man is your friend"! ;rale:

Il suffit de voir la galère d'un débutant pour installer un ArchLinux avec une interface graphique pour s'en rendre compte et s'en dégouter à jamais alors que c'est quand même une super distribution. Been there, done that! :cartonrouge:

Et je ne préfère même pas parler de leur prétendu "wiki" totallement incompréhensible ! A croire que ceux qui ont écrit la partie sur l'installation étaient soit complètement bourrés, soit avaient fumé un très mauvais produit illicite ! :Rouleau:

C'est d'ailleurs me semble-t-il la raison de l'existance de distributions comme Manjaro un milliard de fois plus facile à utiliser mais surtout avec une vraie communauté conviviale ! :aime:
papajoke a écrit ::confus: pour créer une entrée (.desktop) dans le menu c'est /usr/share/applications/ , ton script l'installe lui dans $HOME/.local/share/applications/ pas sur de l’intérêt et ... avec archlinux on ne touche jamais au $HOME :evil:

J'ai tenté /home/.local car j'avais aussi essayé ça, mais ça ne fonctionnait pas mieux.

Je dois donc avoir un problème dans cette petite partie du script qui devrait alors se résumer à ceci:

#!/bin/sh
#
create_a_QB64_menu_entry()
{
  echo "[Desktop Entry]" > /usr/share/applications/QB64
  echo "Name=QB64" >> /usr/share/applications/QB64
  echo "GenericName=QB64" >> /usr/share/applications/QB64
  echo "Exec=/usr/local/qb64/qb64" >> /usr/share/applications/QB64
  echo "Icon=/usr/local/qb64/internal/source/qb64icon32.png" >> /usr/share/applications/QB64
  echo "Terminal=false" >> /usr/share/applications/QB64
  echo "Type=Application" >> /usr/share/applications/QB64
  echo "Categories=Programming" >> /usr/share/applications/QB64
  echo "Path=/usr/local/qb64" >> /usr/share/applications/QB64
  echo "StartupNotify=false" >> /usr/share/applications/QB64
}
create_a_QB64_menu_entry
exit 0

mais chez moi, ça ne fonctionne pas ! :pleure:

Autre problème : si on est avec une interface en français, faut-il utiliser

echo "Categories=Programming" >> /usr/share/applications/QB64

ou

echo "Categories=Programmation" >> /usr/share/applications/QB64

alors que sous d'autres GUI que Cinnamon c'est (entre autre) :

echo "Categories=Development" >> /usr/share/applications/QB64

Bon, je peux utiliser une variable en fonction de la langue et aussi une autre en fonction du GUI (à condition de savoir repérer le GUI utilisé, ce que je ne sais pas faire).

Bon, de toutes les façons, je vais retravailler ce script pour qu'il devienne plus "acceptable" au moins pour Manjaro soit en installant QB64 dans /bin (à priori une seule variable à changer) soit au minimum en y mettant un lien (une toute petite commande à ajouter). :bien

Pour Arch (ou Bridge), je m'en tape un peu vu leur extrême convivialité car de toutes les manières, ils n'utiliseront jamais du BASIC (c'est bien trop simple et surtout bien trop populaire pour eux). :siffle

En tous cas, sache que j'apprécie tes remarques et conseils au plus haut point car ils me font avancer de manière positive.

Merci. :maître::merci:

Très cordialement.

Le grand retour du BASIC (et en bien plus mieux)!

#18Messageil y a 1 an

papajoke a écrit :pour créer une entrée (.desktop) dans le menu c'est /usr/share/applications/

le truc c'est .desktop :clindoeil:

create_a_QB64_menu_entry() {
sudo  tee  /usr/share/applications/qb64.desktop <<EOF
[Desktop Entry]
Name=QB64
Name[fr]=IDE Basic
Exec=/usr/bin/qb64
Categories=Development;Programming;
EOF
}


les catégories sont en anglais et dans le doute tu peux en mettre plusieurs (normalement c'est Development)
ps: tu as tous les .desktop dans ce dossier comme exemple

Le grand retour du BASIC (et en bien plus mieux)!

#19Messageil y a 1 an

'LLo,
papajoke a écrit :pour créer une entrée (.desktop) dans le menu c'est /usr/share/applications/
[/quote]

Ouaip, mais avec un thème d'icône exotique/incomplet, des traductions d'entrées inexistantes ou des catégories fantaisistes par exemple, le seul moyen de corriger le tir & surtout que cela résiste aux futurs maj (écrasantes) du programme, c'est d'intervenir sur une copie dans $HOME/.local/share/applications qui lorsqu'elle est présente prend le pas sur son homologue système :clindoeil:
On peut aussi de la même façon se débarrasser de celles dont on ne sert jamais pour allèger ces menus (sans éditeur de menu dédié) d'un radical NoDisplay=true inséré/enregistré dedans..!

Le grand retour du BASIC (et en bien plus mieux)!

#20Messageil y a 1 an

:salut: fassil
bon je vais reformuler autrement

a l’installation du logiciel créer une entrée (.desktop) dans le menu c'est /usr/share/applications/
car, pour le $HOME/.local/share/... :
    1) c'est une entrée uniquement pour un seul utilisateur
    2) il faut garder le répertoire $HOME pour que l'utilisateur puisse écrire sa propre entrée menu (dixit fassil)

---------------------------
---------------------------
EDIT
Installation tentée dans une VM... Bien passée et simple et execution de scripts de test est ok.
  • /etc/sudoers corrompu donc plus d'accès à sudo :evil: manque le dernier caractère"
  • les droits du dossier pas trop normal :

    ls -l /usr/local/
    total 40
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 bin
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 etc
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 games
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 include
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 lib
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 man
    drwxrwxrwx 6 patrick root 4096 28 nov.  18:01 qb64
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 sbin
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 share
    drwxr-xr-x 2 root    root 4096 30 sept.  2015 src
  • Comment désinstaller proprement ? pas de script
  • L'éditeur (en VM) est franchement très très lent, a la limite du praticable
  • premiere utilisation ca marche (sans reboot?), ensuite, après re-boots, éditeur ne se lance plus :confus:
  • le BASIC beau/compréhensible ? utiliser une telle mise en page du code me fait fuir tout de suite (exemple sudoku.bas)

Répondre