Forum général.général [Licences] code source libre sans compilateur libre...

Posté par .
Tags : aucun
8
12
avr.
2010
Bonjour,
peut-on considérer comme libre un logiciel qui a :

* La liberté d'exécuter le programme, pour tous usages,
* La liberté d'étudier le fonctionnement du programme,
* La liberté de redistribuer des copies,
* La liberté d'améliorer le programme et de publier ses améliorations.

mais dont le code source n'est compilable qu'avec des outils propriétaires (et payants) ?
  • # D'aprés moi

    Posté par . Évalué à 4.

    Je pense oui.

    Ou alors ca dépend du langage en question.
  • # Demandons à Stallman

    Posté par (page perso) . Évalué à 7.

    Emacs a été le premier logiciel du projet GNU (1985) ; avant que GCC ne devienne le compilateur par défaut (1987 d'après WP), il était souvent compilé par des compilateurs non libres. Il semble que des compilateurs libres existaient (RMS évoque Pastel, mais qui avait des limitations rédhibitoires), mais en minorité.

    D'un autre côté, RMS évoque aussi le "Java trap", en disant qu'il faut éviter les langages tels que ceux que tu décris.
    • [^] # Re: Demandons à Stallman

      Posté par . Évalué à 6.

      Je pense que lorsqu'il s'agit d'un langage dont les spécifications sont connues et librement implémentables alors il n'y a pas de problème. Après tout, libre à l'utilisateur de programmer un compilateur.

      Maintenant si c'est un langage fermé, je ne suis pas si sûr.
      • [^] # Re: Demandons à Stallman

        Posté par . Évalué à 4.

        Ouais, enfin on dit habituellement que le libre est plus sûr car il y a moyen de vérifier que le binaire correspond bien au code. Dans cette optique, ce qui est important ça serait qu'il existe un compilo, libre ou pas, pour vérifier ça (à moins de supposer que c'est le compilo qui peut insérer des backdoors, auquel cas il faut que le compilo soit libre aussi).

        Il semble donc que techniquement un tel soft entrerait dans la définition du logiciel libre, mais qu'en pratique il n'en possède pas les propriétés. Imaginons que Microsoft fournisse le «code» de Windows dans un langage que personne ne connait (genre àç%£**§%), on a le langage, on a le binaire, et on a le binaire du «compilateur» fourni par Microsoft, qui sort un "error syntax" dès qu'on modifie le fichier d'entrée. Est-ce qu'un tel truc est libre? On ne peut même pas avoir la preuve que le compilateur en question utilise d'une manière ou d'une autre le source founi en entrée! Si c'est libre selon la définition officielle, alors il y a un bug dans la définition.
        • [^] # Re: Demandons à Stallman

          Posté par . Évalué à 1.

          Si, dès qu'on modifie le programme, le compilo crie, ou est "La liberté d'améliorer le programme et de publier ses améliorations." ?

          je ne suis pas sur que ton exemple soit très pertinent.
          • [^] # Re: Demandons à Stallman

            Posté par (page perso) . Évalué à 3.

            Tout langage impose des règles de syntaxe. En C, les règles sont connues, donc on sait comment modifier le programme pour obtenir le résultat escompté. Dans un langage inconnu quelconque (comme montré en exemple ci-dessus), comment savoir si une modification est syntaxiquement correcte ? Et comment connaître les limites de ce qui est exprimable par le langage ?

            Effectivement je pense comme d'autres qu'un programme ne peut être libre que si le code source est écrit dans un langage normalisé, reconnu, et pour lequel des compilateurs libres existent. Je pense que RMS avait cela en tête lorsqu'il a conçu GCC.
        • [^] # Re: Demandons à Stallman

          Posté par . Évalué à 2.

          La définition se rapporte à celle du code source, qui précise qu'il s'agit de la forme préférentielle pour la modification du programme (avant éventuelle recompilation) ainsi que les moyens de compiler. Je doute dans ton exemple que le binaire soit une forme préférentielle pour modifier le code.
          Exemple : le pilote libre nvidia nv qui est passé de l'utilisation de #define à des constantes hexadécimales hardcodées s'est fait très mal voir.
        • [^] # Re: Demandons à Stallman

          Posté par . Évalué à 5.

          La définition de la GPLv3 a été modifiée pour dire qu'un logiciel doit être fourni dans sa forme "d'origine" pour être considéré libre (selon la GPLv3). Ce n'était pas le cas de la v2 qui parlait seulement de code source. Ainsi, on ne peut pas fournir un code déjà préprocessé comme un code source libre en GPLv3 si on possède la forme non-préprocessée qui est considérée comme la forme "originale".
        • [^] # Re: Demandons à Stallman

          Posté par (page perso) . Évalué à 3.

          à moins de supposer que c'est le compilo qui peut insérer des backdoors
          Ce n'est pas comme si ce n'était jamais arrivé :-) http://en.wikipedia.org/wiki/Backdoor_(computing) Voir la partie "Reflections on Trusting Trust". C'est vieux comme le monde (comme le monde de l'informatique, certes).
        • [^] # Re: Demandons à Stallman

          Posté par (page perso) . Évalué à 3.

          >> On ne peut même pas avoir la preuve que le compilateur en question utilise d'une manière ou d'une autre le source founi en entrée!

          Et alors ?
          Il n'est pas imposé qu'un langage soit turing complet, éditable, ou quoi que ce soit !


          Je pense que le programme "1" dont le compilateur est
          "if (input = 1) then dump_un_binaire(); else error();" est un programme libre et bien acceptable, et qui fait ce qu'on lui demande.

          En revanche, il n'est justement pas dit que le binaire sera, lui, libre !
          C'est pas un bug dans la licence, c'est plutôt une feature marrante ^^

          En fait, tu confonds deux choses : le logiciel et son code source.
          Ici, c'est le code qui est libre mais pas le logiciel, alors que la GPL couvre le logiciel (ce qui implique la couverture du code).
          La GPL dit d'ailleurs :

          The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.


          Ce qui me fait dire que si j'ai écris la partie binaire dumpée par mon compilateur entièrement à la main, alors ça peut même être GPL. C'est un programme "one shot" (un "faux" compilateur) contre lequel tu ne peux rien. Le dev a joué, a ri, et il t'a bien eu.
    • [^] # Re: Demandons à Stallman

      Posté par . Évalué à 3.

      faudrait demander à Stallman s'il préfère un logiciel sous GPL dont la source est en Visual Basic, ou bien un logiciel sous CC-BY-NC-SA ou BSD dont la source est en C...

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Demandons à Stallman

        Posté par (page perso) . Évalué à 1.

        Il y a des compilateurs VB libres ? Ils tournent sur des OS libres ?
        • [^] # Re: Demandons à Stallman

          Posté par . Évalué à 3.

          non, et non, c'est justement la question du jour (cf. ce journal) : "mais dont le code source n'est compilable qu'avec des outils propriétaires"

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: Demandons à Stallman

            Posté par . Évalué à 2.

            Gambas et quelques autres y arrivent, mais se pose ensuite la question de la compatibilité avec les 37 versions et demi de VB, VBA, VB.Net qu'on trouve là dehors dans la nature, puis enfin le fait que bien peu sont officiellement normées, c'est à dire avec des specifications utilisables et librement accessibles.
            • [^] # Re: Demandons à Stallman

              Posté par . Évalué à 2.

              Gambas does not try to be compatible with Visual Basic, and will never be. I'm convinced that its syntax and internals are far better than the one's of its proprietary cousin

              http://gambas.sourceforge.net/en/main.html

              Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.