Comprendre les aspects techniques

Comprendre les aspects techniques Harmonie mar 13/06/2017 - 17:10

Pour définir leur champ d'application, les licences utilisent des notions techniques. Ainsi pour appréhender les obligations contenues par ces licences, l'explication de ces notions techniques est nécessaire.

ASP Loophole ?

ASP Loophole ? Harmonie lun 07/08/2017 - 09:06

Le logiciel en tant que service ou Software As A Service (SaaS) est un modèle d'exploitation commerciale des logiciels dans lequel ceux-ci sont installés sur des serveurs distants plutôt que sur la machine de l'utilisateur. Les clients ne paient pas de licence d'utilisation pour une version, mais utilisent librement le service en ligne ou, plus généralement, payent un abonnement pour le service.

À l’origine les licences libres conditionnaient leur respect à la distribution à un tiers d’une copie du logiciel.

La distribution ne recouvre pas les cas de d’usage ou d’offre de service du logiciel par le réseau, et ne déclenche pas les obligations liées à la licence, c’est ce que l’on a nommé l’ASP Loophole.

Désormais certaines licences, comme l’Open Software Licence ou la GNU Affero GPL imposent leur respect dès lors que le logiciel est utilisé ou interagit avec des tiers, directement ou indirectement, ce qui recouvre les cas d’utilisation du logiciel en tant que service.

Code source, code objet et compilation

Code source, code objet et compilation Harmonie lun 07/08/2017 - 08:57

Le code source est un texte qui représente les instructions de programme telles qu'elles ont été écrites par un programmeur. Le code source est généralement écrit dans un langage de programmation permettant d’être compris par les humains. Une fois le code source écrit, il permet de générer une représentation binaire d'une séquence d'instructions — code binaire ou code objet — exécutables par un microprocesseur.

Le code objet — résultant de la compilation du code source — est une suite d’instructions en langage binaire (0 et 1), uniquement compréhensible par l’ordinateur qui va l’utiliser pour exécuter le programme.

La compilation est une opération réalisée par un programme — le compilateur — consistant à transformer le code source écrit dans un langage de programmation, en un autre langage informatique — le langage cible. Pour qu’il puisse être exploité par la machine, le compilateur traduit le code source en un langage machine.

Certains langages de programmation n’ont pas besoin de passer par une étape de compilation afin d’être exécutés, on dit alors qu’ils sont interprétés.

Il est possible d’appliquer le droit d’auteur sur une compilation en elle même, si elle respecte les critères de protection par le droit d’auteur.

Les agrégations

Les agrégations Harmonie lun 07/08/2017 - 09:00

Quelle est la différence entre la « simple agrégation » (mere aggregation) et la « combinaison de deux modules dans un seul programme » (combining) ?

La simple agrégation de deux programmes consiste à les mettre côte à côte sur leur support. (Disque dur, CD-ROM, etc).

Un cas de simple agrégation, il s'agit de programmes distincts, pas des parties d'un même programme. Dans ce cas, si l'un des programmes est régi par une licence, cela n'a pas d'effet sur l'autre programme.

Par contre, si les modules sont inclus dans un même fichier exécutable, ils sont indéniablement combinés dans un seul programme. Si les modules sont conçus pour être exécutés par édition de liens, cela signifie presque à coup sûr une combinaison en un seul programme.

Les mesures techniques de protections et tivoïsation

Les mesures techniques de protections et tivoïsation Harmonie lun 07/08/2017 - 09:08

Les mesures techniques de protections (MTP, en anglais Digital rights management – DRM) sont des dispositifs permettant de contrôle l’usage des œuvres numériques. Les mesures techniques de protection peuvent être matérielles ou immatérielles. La plupart du temps, la mesure technique de protection prendra la forme d’un logiciel. Cependant, les mesures techniques de protection ne suivent pas le régime spécifique aux logiciels, elles ne sont pas considérées comme telles par la jurisprudence.

La loi interdit de porter atteinte à ces mesures ou de les neutraliser (Article L335-1 CPI). Cependant les logiciels ne sont pas concernés par le régime général des MTP. Pour ce qui est des logiciels, le législateur ne sanctionne pas l’acte de neutralisation de la MTP mais les actes préparatoires permettant de faire circuler le moyen de contournement (mise en circulation ou détention à des fins commerciales).

La protection des MTP n’est pas censée faire obstacle à la mise en œuvre des droits des utilisateurs sur les logiciels. Elle ne doit pas empêcher l’utilisation normale du logiciel.

La tivoïsation est la création d'un système qui inclut des logiciels libres, mais utilise le matériel électronique pour interdire aux utilisateurs d'y exécuter des versions modifiées.

Le terme fait référence à l'utilisation de logiciels sous licence GPL v.2 par la marque TiVo sur ses enregistreurs vidéo numériques. Respectant la licence, le code source était bel et bien ouvert, mais TiVo empêchait l’utilisation d’une version modifiée de leur logiciel sur leurs matériels, rendant ainsi très limité l’intérêt de l’Open source pour les utilisateurs de leurs produits.

Cette démarche a pu soulever quelques questions. Pour Richard Stallman, ce système de verrouillage allait à l’encontre de l’esprit même de la licence (libre), et constituait un viol de cette dernière. Pour Linus Torvalds, bien qu’il préfère le matériel flexibles plutôt que verrouillé, estime qu’avoir recours à une licence libre n’implique pas forcément de faire de l’Open Hardware, et qu’il n’y avait donc pas de problème éthique à avoir recours à la tivoïsation.

Liens statiques et liens dynamiques

Liens statiques et liens dynamiques Harmonie lun 07/08/2017 - 09:03

Il existe deux types de liens, les liens dynamiques et les liens statiques (static link and dynamic link).

Les bibliothèques logicielles sont utilisées par les programmes pour obtenir du code assistant.

Entre une liaison dynamique et une liaison statique, la différence que l’on peut soulever se situe au moment de la sollicitation de la bibliothèque par le programme utilisateur.

En cas de liaison statique, le programme sera complété au moment de la compilation ; en cas de liaison dynamique, le programme sera complété au moment de l’utilisation.

On comprend dès lors, que l’on soit en présence d’une liaison statique ou d’une liaison dynamique, la qualification d’œuvre composite ne fait pas de doute (sauf stipulation contraire de certaines licences), puisque dans les deux cas, le logiciel sera complété par la bibliothèque.

Ainsi, il faudra bien s’assurer de respecter la licence liée à la bibliothèque pour pouvoir l’utiliser, puisqu’il s’agira de l’œuvre préexistante à l’œuvre composite que constitue le programme.

Minification

Minification Harmonie lun 07/08/2017 - 09:07

La minification est une opération que l’on retrouve le plus souvent dans le développement web. Elle consiste à supprimer tout ce qui n’est pas indispensable à la compréhension du code par la machine.

Lors de l’écriture du code, le développeur va ajouter des commentaires et des sauts de lignes et des espace, afin de rendre sa relecture plus aisée pour un humain. Mais ces éléments son inutiles pour la machines, prennent de la place sur le disque et donc alourdissent le programme.

La minification peut également consister en la suppression des appels à fonction vides et le raccourci de certaines expressions si cela permet d’aboutir au même résultat.

L’ensemble de ces petites opérations permet d’alléger le code de plusieurs Ko.