-*- mode: text; fill-column: 79; mode: auto-fill; mode: flyspell; buffer-file-coding-system: latin-1 -*- Pour chaque question il y a une et seulement une réponse correcte. ------------------------------------------------------------------------ 1. Pouvez-vous ajouter du code écrit par vous-mêmes à un logiciel *dérivé* d'un logiciel sous la licence GNU GPL ? [The original text contained a grammar mistake: I had written "par un logiciel" instead of "d'un logiciel", as one student made me notice. Sorry] [ ] Oui, et le résultat est sous la même licence du logiciel dérivé, qui peut être différente de la GNU GPL [ ] Oui, et le résultat est sous la licence de X11 [X] Oui, et le résultat est sous licence GNU GPL [ ] Oui, et le résultat est sous licence GNU LGPL [ ] Oui, et vous pouvez choisir la licence du résultat [ ] Oui, et le résultat est dans le domaine publique [ ] Oui, et le résultat devient une partie du projet GNU [ ] Ça dépend de la licence du logiciel dérivé [ ] Non The situation is this: a software A is covered by the GPL. The software A' is derived from A. The question is about the possibility of making a third software, A'', derived from A'. The GNU GPL is a free software license with strong copyleft, which means that any work derived from a GPL work will be in its turn covered by the GPL. Hence A' is automatically under the GPL, and for the same reason A'' can be written, and will also be covered by the GPL. ------------------------------------------------------------------------ 2. Pouvez-vous ajouter du code écrit par vous-mêmes à un logiciel *dérivé* par un logiciel sous la licence de X11 ? [ ] Oui, et le résultat est sous la même licence du logiciel dérivé, qui peut être différente de la licence de X11 [ ] Oui, et le résultat est sous la licence de X11 [ ] Oui, et le résultat est sous licence GNU GPL [ ] Oui, et le résultat est sous licence GNU LGPL [ ] Oui, et vous pouvez choisir la licence du résultat [ ] Oui, et le résultat est dans le domaine publique [ ] Oui, et le résultat devient une partie du projet GNU [X] Ça dépend de la licence du logiciel dérivé [ ] Non This is similar to Question 1, with the difference that A is covered by the X11 license, which is a free software license without copyleft: this means that a work derived from A, like A', can have a different license, at the discretion of who writes A'. For this reason writing A'' could even be forbidden: everything depends on the license of A'. ------------------------------------------------------------------------ 3. Un logiciel a la note de copyright suivante : Copyright (C) 1998 Jean-Pierre Dupoint Jean-Pierre Dupoint a travaillé en France, où il est mort en 1999. Maintenant en 2009 son logiciel, en France... [X] A encore la même licence de 1998 [ ] Est dans le domaine publique [ ] N'est pas encore dans le domaine publique, mais il sera dans le domaine publique dans moins de 10 ans [ ] N'est pas encore dans le domaine publique, mais il sera dans le domaine publique dans 10 ans [ ] Est utilisable par tout le monde, mais pas modifiable Copyright lasts much longer than the author's life in most countries; in France it lasts for the whole lifetime of the author plus 70 years in general, and even longer in some special cases (see for example http://www.caslon.com.au/durationprofile1.htm). After copyright expires the work reverts to the public domain, but that occurs *much* later than 20 years after the author's death. By the way, the law can be also changed in the mean time, retro-actively extending copyright's duration; this has already happened several times in many countries. ------------------------------------------------------------------------ 4. Un logiciel dans le domaine publique est : [ ] Propriétaire [ ] Ni Logiciel Libre ni Open Source [ ] Logiciel Libre mais pas Open Source [ ] Open Source mais pas Logiciel Libre [X] Open Source et Logiciel Libre [ ] Avec copyleft faible [ ] Avec copyleft fort A software is free software when *all* the following conditions hold: i) you can run the software, for any purpose ii) you can modify the software for your personal use iii) you can distribute literal copies of the software iv) you can distribute modified versions of the software When a work is in the public domain none of the monopolies granted to the author by copyright law apply any more: you can do whatever you want with a public domain work, so all four conditions hold. There is no copyleft in this case (copyleft is "implemented" on copyright, and there is no copyright): if you modify a public domain work you can choose the license of your derivative work. The set of open source software is essentially the same as the set of free software: the philosophies of the two groups are different, but they accept essentially the same set of licenses. It makes no sense to say that a piece of software is free software but not open source, or vice-versa. In France and some other countries the author or a public domain work retains "moral rights": you still have to recognize and not misrepresent the work's paternity. Anyway, this is not relevant for the four conditions above. ------------------------------------------------------------------------ 5. Vous avez écrit un logiciel. Pouvez-vous le délivrer sous une licence avec copyleft fort seulement après avoir reçu un paiement ? [X] Oui [ ] Oui pour la majorité des licences avec copyleft fort, mais pas sous la licence GNU GPL. [ ] Oui pour la majorité des licences avec copyleft fort, mais pas sous la licence de X11. [ ] Non, mais c'est possible de le délivrer sous une licence avec copyleft faible après avoir reçu un paiement [ ] Non, mais c'est possible de le délivrer sous une licence sans copyleft après avoir reçu un paiement [ ] Oui, mais je suis obligé à publier au moins 10 copies avant de demander le paiement Copyleft does not limit the possibility of selling copies: it simply affects the license of each copy. The GPL is not special or atypical in this sense: it's just one free software license with strong copyleft. The X11 license has no copyleft. The "10 copies" provision does not exist: I pulled it out of thin air. ------------------------------------------------------------------------ 6. Pouvez-vous utiliser un logiciel distribué sous la licence GPL sur un système d'exploitation (utilisant ses bibliothèques dynamiques) propriétaire ? [the original text contained a grammar mistake: I had written "sur la licence" instead of "sous la licence", as one student made me notice. Sorry] [ ] Oui, la licence GPL permit la liaison avec les logiciels propriétaires parce que c'est sans copyleft [ ] Oui, la licence GPL permit la liaison avec les logiciels propriétaires parce que c'est avec copyleft faible [ ] Oui, la licence GPL permit la liaison avec des logiciels propriétaires parce que c'est avec copyleft fort [X] Oui, la licence GPL permit *explicitement* la liaison avec le bibliothèques du système d'exploitation [ ] Non, lier le logiciel et les bibliothèques du système d'exploitation est illégale parce que les licences sont incompatibles. This was by far the most difficult question, as its answer requires you to have read the GPL text, which I distributed on paper in class and published on the course web page. Running a piece of software on any modern operating system implies the loading and linking of dynamic libraries associated with the operating system: as the GPL has a strong copyleft, it explicitly forbids linking with proprietary software, but we all know that GPL software exists for proprietary system. How can this be legal? The only possible answer is that the GPL explicitly allows to link system libraries, as an exception to the general rule. In fact that's the case: look for "System Libraries" in the GPL text. ------------------------------------------------------------------------ 7. Pouvez-vous utiliser un logiciel propriétaire sur un système d'exploitation (utilisant ses bibliothèques dynamiques) distribué sous la licence de X11 ? [X] Oui, la licence de X11 permit la liaison avec les logiciels propriétaires parce que c'est sans copyleft [ ] Oui, la licence de X11 permit la liaison avec les logiciels propriétaires parce que c'est avec copyleft faible [ ] Oui, la licence de X11 permit la liaison avec des logiciels propriétaires parce que c'est avec copyleft fort [ ] Oui, la licence de X11 permit *explicitement* la liaison avec le bibliothèques du système d'exploitation [ ] Non, lier le logiciel et les bibliothèques du système d'exploitation est illégale parce que les licences sont incompatibles. This looks superficially similar to question 6, but it's in fact much easier: the X11 license has no copyleft, so linking with proprietary software is not forbidden at all. No special exception is needed, and in fact there isn't any. ------------------------------------------------------------------------ 8. «Le design initial est absolument essentiel pour produire un logiciel de qualité raisonnable». Une opinion comme cela est typique du modèle (ou des modèles) de développement : [ ] Domaine publique [ ] Linux [ ] avec copyleft [ ] sans copyleft [ ] X11 [ ] à bazar, pas à cathédrale [X] à cathédrale, pas à bazar [ ] à bazar et à cathédrale [ ] GCC [ ] Open Source, pas Logiciel Libre [ ] Logiciel Libre, pas Open Source [ ] Logiciel Libre et Open Source We have cited the famous article by Eric Raymond "The cathedral and the bazaar", in which the traditional model of following an initial design and building a system in isolation from the community is compared to the construction of a cathedral. Raymond argues in favor of a much more decentralized and less structured development model in which "everybody adds a piece" as more appropriate for collaborative development over the network, by using the metaphor of a bazaar. The particular development model is not associated to Free Software or Open Source: each project can be cathedral- or bazaar-style, independently of the authors' opinion about the Free Software vs. Open Source debate. Some answers are totally unrelated: X11 is a network-transparent window system (we have mostly spoken about its license); Linux is a kernel, GCC is a compiler. Public domain is the absence of copyright, and copyleft is about licensing. ------------------------------------------------------------------------ 9. Pouvez-vous re-implanter un logiciel similaire à une autre logiciel, (sans re-utiliser le code de l'autre projet) et distribuer votre implantation sous une licence différente, en France ? [X] Oui, toujours [ ] Juste si l'autre projet n'est pas logiciel libre [ ] Juste si l'autre projet est logiciel libre [ ] Juste si la licence de l'autre projet est libre sans copyleft [ ] Juste si la licence de l'autre projet est libre avec copyleft faible [ ] Juste si la licence de l'autre projet est libre avec copyleft fort [ ] Juste si la licence de l'autre projet est libre avec copyleft, n'importe si le copyleft est faible ou fort [ ] Non Copyright (for software) is only about the literal expression of a program, intended as its string of characters. If you re-implement a program yourself without using the original source, you're not violating copyright law. There may be patents on some abstract ideas in some countries, but software patents are not recognized in Europe. ------------------------------------------------------------------------ 10. Pouvez-vous re-utiliser une partie du code d'un autre projet dans votre logiciel et distribuer l'implantation complète (compris le code que vous avez copié) sous une licence propriétaire, en France ? [ ] Oui, toujours [ ] Oui, si l'autre projet n'est pas logiciel libre [ ] Oui, si l'autre projet est logiciel libre, avec ou sans copyleft [X] Oui, si la licence de l'autre projet est libre sans copyleft [ ] Oui, si la licence de l'autre projet est libre avec copyleft faible [ ] Oui, si la licence de l'autre projet est libre avec copyleft fort [ ] Oui, si la licence de l'autre projet est libre avec copyleft, n'importe si le copyleft est faible ou fort [ ] Non You want to make a derived work, with a different license which also covers the code you re-use. A license with copyleft will not let you do that, but if the original software is under a license such as the license of X11 then you can. ------------------------------------------------------------------------ 11. Pouvez-vous re-utiliser l'algorithme (sans copier le code) d'un logiciel dans votre programme propriétaire, en France ? [X] Oui, toujours [ ] Juste si l'autre logiciel n'est pas logiciel libre [ ] Juste si l'autre logiciel est logiciel libre [ ] Juste si la licence de l'autre logiciel est sans copyleft [ ] Juste si la licence de l'autre logiciel est avec copyleft faible [ ] Juste si la licence de l'autre logiciel est avec copyleft fort [ ] Juste si la licence de l'autre logiciel est avec copyleft, n'importe si le copyleft est faible ou fort [ ] Non See question 9. ------------------------------------------------------------------------ 12. C'est possible de télécharger gratuitement un logiciel sur Internet, juste en forme binaire mais avec la permission de l'utiliser sans limites : son code source n'est pas disponible à personne sauf l'auteur. Est-il possible que le logiciel soit logiciel libre ? [ ] Oui, le logiciel est sûrement de domaine publique et libre [ ] Oui, le logiciel est sûrement libre, sans copyleft [ ] Oui, le logiciel peut être libre, avec copyleft faible [ ] Oui, le logiciel peut être libre, avec copyleft fort [ ] Oui, le logiciel est libre si tout le monde a le permis de le redistribuer, même juste en forme binaire [ ] Non, mais le logiciel est sûrement de domaine publique [ ] Non, mais le logiciel est sûrement Open Source [ ] Non, mais le logiciel peut être de domaine publique [ ] Non, mais le logiciel peut être Open Source [X] Non, le logiciel est sûrement propriétaire See the definition of free software in the comment after question 4. You need to have the source as a precondition to make use of ii) and iv). Having the permission to redistribute is necessary, but not sufficient. ------------------------------------------------------------------------ 13. C'est possible de télécharger gratuitement un logiciel sur Internet, avec son code source ; tout le monde a le permis de le copier et redistribuer, mais pas de redistribuer des versions modifiées. Est-il possible que le logiciel soit logiciel libre ? [ ] Oui, le logiciel est sûrement de domaine publique et libre [ ] Oui, le logiciel est sûrement libre, sans copyleft [ ] Oui, le logiciel peut être libre, avec copyleft faible [ ] Oui, le logiciel peut être libre, avec copyleft fort [ ] Oui, le logiciel est libre si tout le monde a le permis de le modifier pour l'utilisation personnelle [ ] Non, mais le logiciel est sûrement de domaine publique [ ] Non, mais le logiciel est sûrement Open Source [ ] Non, mais le logiciel peut être de domaine publique [ ] Non, mais le logiciel peut être Open Source [X] Non, le logiciel est sûrement propriétaire Condition iv) is violated. ------------------------------------------------------------------------ 14. Pouvez-vous demander d'argent en échange d'une copie d'une ouvre que *vous* avez dérivée d'un logiciel qui est sous la licence de X11 ? [X] Oui, sans limitations de prix [ ] Vous ne pouvez pas demander plus de 10000 dollars [ ] Vous ne pouvez pas demander plus de 1000 dollars [ ] Seulement si le logiciel est Libre mais pas Open Source [ ] Seulement si le logiciel est Open Source mais pas Libre [ ] Non, parce que le logiciel est dans le domaine publique [ ] Non, parce que le logiciel n'est pas dans le domaine publique A is under the license of X11; *you* have written A', derived from A; since the X11 license is without copyleft *you* can choose any license you like for A' (for example the GPL, LGPL and X11 licenses all allow you to charge as much as you wish; you can even use a proprietary license). By the way A' is *not* in the public domain, as it is derived from a work covered by copyright. ------------------------------------------------------------------------ 15. Le paragraphe suivant est une citation : Surtout, la société a besoin d'encourager l'esprit de coopération volontaire de ses citoyens. Quand les propriétaires de logiciels qualifient de «pillage» le fait d'aider notre voisin d'une façon simple et naturelle, ils polluent l'esprit civique de notre société. Je donne la version originale en anglais aussi : And above all society needs to encourage the spirit of voluntary cooperation in its citizens. When software owners tell us that helping our neighbors in a natural way is "piracy", they pollute our society's civic spirit. Le texte a été écrit par un adhèrent au mouvement ou à la philosophie : [X] Logiciel Libre [ ] Open Source [ ] Logiciel Libre ou Open Source, le texte est raisonnable pour les deux [ ] Domaine publique [ ] Développement à cathédrale [ ] Développement à bazar [ ] Worse is better Saying "helping our neighbors" and "they pollute our society's civic spirit" is clearly part of a statement about ethics, not about cost or practical convenience (which would be typical of an Open Source perspective; the Open Source movement intentionally avoids these ethical questions). The quotation is by Richard Stallman. The last four answers are completely unrelated. ------------------------------------------------------------------------- Rappelez-vous que (number? X) retourne #t si X est un nombre, et #f sinon. (null? X) retourne #t si X est la liste vide, et #f sinon. #t et #f sont «vrai» et «faux» en Scheme. (define f (lambda (x) (if (number? x) 37 (if (null? x) 0 (cons x (f (cdr x))))))) Pour les questions suivantes vous devez «interpréter manuellement» le code. Il est très court. f is a function of one parameter: if the parameter is a number the result is 37, if it's the empty list the result is 0, otherwise the result is a cons whose car is the parameter, and whose cdr is the function applied to the cdr of the parameter. ------------------------------------------------------------------------ 16. 17. 18. (f #t) (f (42)) (f '(42)) Quel est le résultat ? Quel est le résultat ? Quel est le résultat ? [X] Il y a une erreur [X] Il y a une erreur [ ] Il y a une erreur [ ] 37 [ ] 37 [ ] 37 [ ] (37) [ ] (37) [ ] (37) [ ] (37 . 0) [ ] (37 . 0) [ ] (37 . 0) [ ] ((37) . 0) [ ] ((37) . 0) [ ] ((37) . 0) [ ] #t [ ] #t [ ] #t [ ] #f [ ] #f [ ] #f [ ] 0 [ ] 0 [ ] 0 [ ] 42 [ ] 42 [ ] 42 [ ] (42) [ ] (42) [ ] (42) [ ] (42 . 0) [ ] (42 . 0) [ ] (42 . 0) [ ] ((42) . 0) [ ] ((42) . 0) [X] ((42) . 0) [ ] f [ ] f [ ] f #t is not a number nor Type error: 42 is not a f is applied to the one- the empty list; when cdr procedure. If you have element list (42). is applied to it, there ever tried to write a It's not a number, and it's is an error: of course Scheme program on a not the empty list, so the car and cdr can only be computer you must know result is the value of applied to a cons. this. (cons '(42) (f (cdr '(42)))) . Since (cdr '(42)) is the empty list, the final result is the cons of (42) and 0, which is ((42) . 0) ------------------------------------------------------------------------ 19. 20. (f f) (f 42 0) Quel est le résultat ? Quel est le résultat ? [X] Il y a une erreur [X] Il y a une erreur [ ] 37 [ ] 37 [ ] (37) [ ] (37) [ ] (37 . 0) [ ] (37 . 0) [ ] ((37) . 0) [ ] ((37) . 0) [ ] #t [ ] #t [ ] #f [ ] #f [ ] 0 [ ] 0 [ ] 42 [ ] 42 [ ] (42) [ ] (42) [ ] (42 . 0) [ ] (42 . 0) [ ] ((42) . 0) [ ] ((42) . 0) [ ] f [ ] f f is bound to a f is a function of *one* procedure, which is not parameter, not two. a number nor the empty list. Applying cdr to a procedure is an error.