Pages: 1 2 [3] 4   Go Down
Author Topic: come proteggere il codice da lettura  (Read 3016 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi chiedevo, usando l'ide arduinica per fare un progetto si deve poi obbligatoriamente rilasciare il sw open ? Visto che per scrivere quel sw magari uso millis, e millis e' open, devo rilasciare solo millis o tutto il progetto ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Testato, la stessa domanda l'hai posta diversi mesi fa e ne è nata una discussione di diverse pagine  smiley-twist

La questione è: se distribuisci il progetto, sei obbligato a distribuire anche il sorgente se usi pezzi di sorgente coperti da GPL3.
Siccome alcuni autori sono un po' restii a far ciò, alcune librerie sono distribuite con licenza LGPL, che permettono la distribuzione solo del loro sorgente ma non del sorgente del programma che le usa. L'Arduino dovrebbe però essere tutto sotto GPL.

Se il programma resta in casa tua, sei libero di fare ciò che ti pare, ovviamente. Non è che devi obbligatoriamente mettere il codice del tuo orologio valvolare su un sito pubblico solo perché l'hai scritto usando l'Arduino  smiley-razz
Logged


0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2816
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Molte parti del core di arduino contengono l'intestazione della licenza usata, e molto spesso l'intestazione è quella della LGPL, come parte del file seguente, preso da WInterrupts.c

Code:
/*
  Part of the Wiring project - http://wiring.uniandes.edu.co

  Copyright (c) 2004-05 Hernando Barragan

  This library is free software; you can redistribute it and/or
  modify it under the terms of the [color=red]GNU Lesser General Public
  License[/color] as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA
 
  Modified 24 November 2006 by David A. Mellis
  Modified 1 August 2010 by Mark Sproul
*/

#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <stdio.h>

#include "wiring_private.h"


Quindi si deve controllare ogni sorgente è vedere se è rilasciato con una licenza compatibile con la LGPL.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comunque GPL o LGPL, resta il fatto che se il progetto non viene distribuito, non si è obbligati a distribuire il sorgente.
Se lo si distribuisce, si devono distribuire le parti sotto LGPL. Se ci includono parti GPL, allora tutto il sorgente deve essere distribuito con la stessa licenza.
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non e' stato vano richiedere, perche' sono venute fuori parti nuove, o almeno a me non conosciute.
Quindi per capirci la famosa millis dove vado a vedere se e' GPL o LGPL ?
Nel caso di utilizzo delle sole parti LGPL basta mettere un link all'IDE arduino e dire "andatevi a guardare dentro ad esso i sorgtenti sotto LGPL" Oppure si deve fisicamente allegare l'IDE o parte di essa nel download del proprio .zip ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aggiungo infine invece la domanda "Cattiva":
se costruisco un orologio valvolare (volendo restare sull'esempio da te scelto) basandolo profondamente sulla swRTC, pero' dico che e' tutta farina del mio sacco e inizio a venderlo come progetto chiuso e proprietario

Chi ? In che modo ? Potra' mai dimostrare il contrario ?

Bloccando i lockbit non si potra' nemmeno avere un hex da analizzare, e se anche fosse non si puo' risalire al sorgente in C.

E' questo un punto debole del sistema open source mondiale ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2816
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vengo io e ti chiedo di mostrarmi la licenza proprietaria degli strumenti che hai usato per sviluppare il tuo orologio valvolare, e tu mi dici che non hai nessuna licenza, perchè hai usato la libc nognu che è LGPL quindi sono a posto. Ma se ho dei sospetti posso sollevare un polverone fino ad arrivare in tribunale e chiederti di mostrare i sorgenti provando così che hai usato la libc o meno. Se perdo pago, se perdi tu, io incasso.

Si comunque più o meno le cose stanno come le hai dipinte tu, ma non si sa mai cosa può accadere ed e meglio avere la coscenza a posto e poter provare che sei diventato ricco senza mancare alla licenza GPL ecc.

Però non hai capito una cosa: è compito tuo leggerti tutte le licenze e regolati di conseguenza, e solo tu sei il responsabile.

Dovre trovi la licenza per mills, non ricordo il nome del file, devi andarti a vedere tutti i sorgenti del core.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' questo un punto debole del sistema open source mondiale ?
Mi pare che tutto questo polverone tu lo faccia solo perché hai paura di passar male a dire che non è farina del tuo sacco.
In primis, la GPL non ti obbliga a pagarmi proprio niente se stai usando la swRTC. Ti obbliga a distribuire il sorgente aperto con la swRTC dentro se decidi di distribuire il tuo progetto. Ma tu puoi farti pagare senza dare nulla a me, se è questo il tuo timore.

In secundis, se il tuo cliente vede che la swRTC l'ho scritta deve rivolgersi a me per una miglioria alla swRTC, ma continuerà a fare riferimento a te per l'orologio, visto che è un tuo progetto. Io non posso accampare diritti sull'orologio come tu non puoi accamparne sulla libreria. E mi pare giusto. Quindi nessuno ti ruberà il tuo progetto.
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il furto non avviene in genere da parte del creatore della libreria, ma del concorrente che ha anch'egli accesso alla tua libreria, ma non al mio codice.
Usare quindi la tua libreria porterebbe l'obbligo di rilasciare anche il mio codice al concorrente.
Quindi che si fa ? o si fa il furbo dicendo ho fatto tutto io, oppure non si usa la swRTC.
Il team arduinico non e' stato stupido nello scegliere la LGPL, perche' non voleva constringere all'apertura di tutti i codici creati con esso.
E' una lotta che non finira' mai di esistere, da un lato chi vuole aprire e costringere anche gli altri a farlo, e chi invece non vuole.
Arduino ( Massimo Banzi ) non e' stato coerente con lo spirito dell'open source in questo, perche' ha usato un trucco. La LGPL tutela di piu' i suoi interessi, la GPL avrebbe tutelato l'umanita' tutta  smiley
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' anche una questione filosofica. Io sono per l'opensource, altri possono pensarla come me.
Se io non avessi rilasciato le mie librerie sotto licenza GPL non le avrei neanche distribuite. Se non le avessi distribuite, non sarebbero state conosciute, e usate.
Se tu non ne eri a conoscenza, vivevi felice senza. Ora che sai che c'è la swRTC vuoi usarla ma non vuoi distribuire il tuo codice insieme al progetto.  smiley-yell
Tu pensi difatti che se distribuisci il tuo progetto senza sorgente qualcuno non sarà in grado di replicarlo. Ma un progetto può essere replicato osservando come funziona: è solo questione di tempo a riscrivere qualcosa di simile. D'altronde, se ho un oggetto che visualizza l'ora e non vedo RTC esterni, non ci vuole molto a capire che usa un sistema per tenere il tempo internamente, no?  smiley-wink
A questo punto, o mi scarico il firmware dal tuo valvolare oppure, se hai protetto il micro, lo replico partendo da zero (reverse engineering). E ti frego lo stesso.

Alla fine, questa discussione è la storia del cane che si morde la coda. Io resto delle mie idee e non riesco a convincerti, tu resti delle tue senza riuscire a convincermi.  smiley-razz


Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

siamo pienamente d'accordo, spesso con le mie provocazioni sembra che io sia closed source, invece sto' qui a criticare arduino che avrebbe potuto spingere di piu' sulla questione usando la GPL per il progetto.

Sono solo esempi che portano a capire meglio la questione, ne io ne tu stiamo vendendo nulla  smiley
Senza l'opensourceabilita', hw e sw, nessuno di noi sarebbe qui a parlarne
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Tu pensi difatti che se distribuisci il tuo progetto senza sorgente qualcuno non sarà in grado di replicarlo. Ma un progetto può essere replicato osservando come funziona: è solo questione di tempo a riscrivere qualcosa di simile. D'altronde, se ho un oggetto che visualizza l'ora e non vedo RTC esterni, non ci vuole molto a capire che usa un sistema per tenere il tempo internamente, no?  smiley-wink
A questo punto, o mi scarico il firmware dal tuo valvolare oppure, se hai protetto il micro, lo replico partendo da zero (reverse engineering). E ti frego lo stesso.

Qui se mi permetti hai ragione a metà.
Allora è il caso di dire che non si sta parlando di lucro sul software e hardware ma di lucro dell'idea.

Ti faccio un esempio:
Una 10ina di anni fa +/- la tv via satellite a livello casalingo si diffuse a macchia d'olio, era uscito Tele+ ora diventato SKY, tutti si sono comprati il decoder perchè qualcuno aveva messo in rete il minipippo completo di schemi e software fatto con 2 pic per poi piazzarli sulla card. Con chiunque parlavi di tvsat tutti sapevano e sorridevano senza dirti esplicitamente che lo avevano comprato o fatto da se, non ci voleva una scienza a capire le espressioni facciali smiley.
Tutti erano capaci a farla cercando su internet gli schemi e il software, anche lo zappatore dietro casa mia l'ha costruita con un saldatore e un negozio di elettronica. Moltissime persone che non avevano nemmeno due giorni di scuola in elettronica hanno pensato bene di fare i soldi con questo sistema ...  ma tanti tanti, cosa che col  reverse engineering non avrebbero mai potuto farlo, solo pochissimi si sarebbero arricchiti perchè ne avrebbero avuto la conoscenza e buone capacità.  
A prescindere dall'illegalità della cosa, quello era un furto e un *"grosso danno" a Tele+ ma anche mancanza di rispetto per colui che l'aveva ideata perchè contrario alla tv a pagamento.

Insomma con reverse engineering si arricchiscono in pochi, copiando dalla rete si arrichiscono tutti che tu abbia messo o meno i diritti.

Se tu lavori un anno a un progetto con, i soldi che hai speso, il tempo, le ricerche, lo studio e arriva il contadino che trova la pappa pronta
e magari prende un ragazzino che li costruisce per lui per poi vendenderli .... ti farebbe piacere? a me no smiley


*"grosso danno"
Che sia stato un grosso danno è ancora da vedere, molto probabile che siano stati loro stessi a diffondere il crack per far apprezzare la tvsat e accaparrarsi poi una montagna di contratti con le nuove decodifiche, comunque tutto da dimostrare.

ciao
« Last Edit: December 16, 2012, 07:03:33 pm by pablos » Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu hai esteso il mio discorso ma il concetto mi pare lo stesso.
Se io retroingegnerizzo qualcosa, poi il frutto del mio lavoro posso o tenerlo per me (piccolo danno, solo 1 godrà illecitamente) oppure diffonderlo (grosso danno, in molti godranno illecitamente senza pagare il dovuto).

Comunque ci sono casi e casi. Qui stiamo parlando di progetti amatoriali, venduti oppure no. Ma progetti di piccola diffusione fatti da singoli.
Non credo che una società più grossa diffonderà mai liberamente gli schemi ed i sorgenti di un suo prodotto: nel giro di un paio di mesi di quel prodotto non ne venderebbero più uno.
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

riassumiamo per chiudere il discorso.
Arduino e' tutto LGPL ? se c'e' una risposta su questo non siamo costretti a guardare tutti i file

Ammesso che sia tutto LGPL, un eventuale progetto diffuso dovrebbe contenere semplicemente l'ide scaricato da internet, oppure, ancora meglio, basta mettere un file txt nella distribuzione dove c'e' scritto MADE WITH arduino.cc e poi chi vuole se lo scarica ?

Esempio voglio vendere l'intero progetto fisicamente, allego un cd con l'ide arduinica o il file txt con il link
Esempio 2 voglio rilasciare il solo firmware direttamente in file .hex, aggiungo nella cartellina l'arduino o il semplice txt.

grazie
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 313
Posts: 21652
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non so risponderti alla tua domanda se il progetto Arduino sia tutto LGPL o meno.
So per certo però che "rilasciare il solo firmware direttamente in file .hex" contrasta con quanto fai intendere tu quando dici di non voler rilasciare i sorgenti perché ti preoccupi che qualcuno ti copi il progetto!  smiley-yell
Visto che l'HW è visibile, replicarlo è alla portata di tutti. Se gli fornisci il firmware, gli dai il SW su un piatto d'argento. Al clonatore cinese basterà solo rifare il circuito, flashare il firmware sul micro e rivendere la stessa cosa ad 1/10 del tuo prezzo.
Logged


Pages: 1 2 [3] 4   Go Up
Jump to: