Ce qu'en dit GNU :
Définition d'un logiciel libreLa liberté d'étudier le fonctionnement du programme, et de l'adapter à vos besoins (liberté 1). Pour ceci l'accès au code source est une condition requise.
Tu peux essayer de comprendre :
if (md5(username) == 0xb5aaf328c86cac18f11592b17357d4d8) {
error = user_banned; // ce nom d'utilisateur est banni
goto end;
}
mais tu te heurtes au fait que tu ne sais pas quel nom d'utilisateur est banni et pourquoi : est-ce parce que c'est un mot vulgaire?
Pour savoir si je veux garder ce test, j'ai besoin de savoir ce que fait réellement ce code.
Quelle est la raison d'être de ce test?Pour la définition de "code source",
la GPL :
The “source code” for a work means the preferred form of the work for making modifications to it.
Il semble évident que le programmeur n'a pas sorti "0xb5aaf328c86cac18f11592b17357d4d8" de son chapeau!
Peut-être même a t-il un "template" pour faire cela. Peut-être a t-il écrit ce script "
make_c_source":
#!/bin/bash
banned_user=$1
cat >toto.c <<EOT
if (md5(username) == 0x$( md5sum <<<${banned_user} ) ) {
error = user_banned; // ce nom d'utilisateur est banni
goto end;
}
EOT
Pour modifier le programme, il est préférable d'avoir ce script. Ce script fait donc parti du "code source".
Pour recréer le code objet, il te faut le script de compilation qui passe le bon argument au script make_c_source (censuré, je ne vous dirais pas quel est le nom de l'utilisateur banni!) :
toto.c:
./make_c_source ICI_LE_NOM_DE_L_UTILISATEUR_BANNI
donc le makefile non-censuré fait parti du "corresponding source" :
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.
Bon, tout ça reste très hypothétique. (En fait, "l'auteur du code" (moi) n'a pas utilisé un script pour pondre son exemple hypothétique, mais j'avais envie de poster ici un script à la noix.)
En tout cas, tu ignores une information que l'auteur du code (moi) possède : le nom de l'utilisateur banni.
Selon moi, c'est un obstacle à ta liberté.