Progetto Arduino, Atmel e licenze

Janos:
Detto questo, però, non vedo la necessità di reinventare la ruota: se c'è una libreria che fa egregiamente una determinata cosa, perché non lo dovrei usare per il mio prodotto commerciale?

Magari perché lo sviluppatore non è d'accordo col fatto che tu fai soldi col suo lavoro e a lui non arriva nulla in tasca, le varie licenze servono proprio per stabilire dei paletti, a seconda della licenza con cui è rilasciato una libraria, un prodotto, una applicazione, ci sono cose che puoi fare e altre no.
Personalmente se rilascio qualcosa sotto forma di open source mi sta benissimo che chi lo usa ci fa quello che vuole, pure senza citarmi, a patto che sia per puro uso personale e/o accademico, se lo usi a scopo commerciale mi devi chiedere il permesso e pagarmi quello che reputo giusto.
L'abbiamo detto molte volte, "(open source | open hardware) != gratis" :slight_smile:

Il mio discorso non è un'istigazione a delinquere, della serie "mi sembra giusto così, anche se non sei d'accordo con me me ne frego", sto dicendo che se faccio una qualcosa e decido di renderlo pubblico non me ne importa se qualcunaltro lo usa per un prodotto commerciale. Se invece lo sviluppatore, che in questo caso potrebbe essere leo con il suo leOS, non è d'accordo e vuole che quanto ha prodotto venga utilizzato solo per scopi hobbistici/didattici, ben venga, ne prendo atto ed evito di usare le sue librerie per lavoro, anche se me ne rammarico perché sono ottime... :wink:

Per quanto mi riguarda se un domani decidessi di sviluppare qualcosa in proprio lo renderei pubblico sotto licenza LGPL, purtroppo quello che sviluppo a lavoro non mi appartiene e quindi non posso renderlo pubblico... Posso però cercare di rendermi utile mettendo a disposizione degli altri quello che so, le mie conoscenze mi appartengono, e quello che so l'ho appreso proprio perché Arduino è sotto licenza LGPL, altrimenti non ci avrei fatto la tesi... :wink:

Va chiarito un punto, secondo me, perché il fulcro della discussione è questo che sto per esporvi.

La GPL3 è la bandiera del software libero, il free software, che si differenzia leggermente dal software open source. Anche se sinonimi, non sono la stessa cosa. Free software o software libero è un software che concede piena libertà di accesso al suo utilizzatore. Di un software libero io posso prendere il sorgente, cambiarlo e ridistribuirlo (sempre come GPL3) basta che menzioni l'autore originario, ne rispetti il suo copyright. Se poi si distribuisce il binario del programma compilato, si deve fornire anche l'accesso al sorgente completo.

Ora, affrontiamo il problema dei microcontrollori. Quando io vendo un prodotto finito basato su un microcontrollore già programmato, io non sto distribuendo il firmware in maniera diretta. Esso fa già parte del prodotto. E' alla stessa stregua del software installato in una centralina di una automobile. Io acquisto l'auto con la centralina già programmata.
Secondo voi, è questa una distribuzione del firmware? Se sì, allora chi usa una libreria sotto GPL3 deve distribuire tutto il sorgente del firmware.
Se non è una distribuzione diretta del firmware, il produttore non è obbligato a distribuire anche il sorgente.

Lo può fare, a sua discrezione, chiedendo un compenso?
Io, autore della porzione GPL usata, posso a questo punto chiedere una percentuale su questi guadagni? E' lui obbligato a versarmeli?

Ottima domanda... Anche se puoi stare tranquillo che non userò comunque leOS per lavoro... :wink:

Janos:
Anche se puoi stare tranquillo che non userò comunque leOS per lavoro... :wink:

Me ne farò una ragione, stanotte penso però che dormirò lo stesso :stuck_out_tongue:

mmmmmmm.......mmmmmm...... ma che devo dire, leggo ma ci capisco poco, percepisco confusione, contraddizioni, il cane che si morde la coda.

Dovete fare una scelta, non si può prendere quello che c'è di buono (conveniente) e rifiutare il resto.

Le licenze GPL e LGPL sono nate a seguito di esperienze negative che l'ideatore e promotore a vissuto sulla sua pelle.
Egli non è un pazzo, forse è un visionario, comunque sia un bel giorno ha detto NO, io non ci sto.

Io (voi, ognuno di voi) per quanto bravo che si senta o che realmente sia, praticamente non è in grado di eccellere in ogni ramo della materia informatica, che si fonde con quella elettronica anzi da questa prende forma.
La coscenza di ciò può portare a due principali comportamenti:

  1. Creo una azienda, assumo dei progettisti, programmatori e sviluppo del software con l'obiettivo di creare un prodotto.
    Varianti al punto uno: decido che il prodotto software deve essere deperibile anche se di suo non è deperibile come un
    oggetto meccanico. Il software si comporterà come un elettrodomestico che con il tempo si guasta, o perde prestazioni
    come per esempio accade con le automobili. Questa volonta ha evidenti ricadute positive ad ampio spettro, ci si guadagna
    in denaro, notorietà, si crea un legame difficilmente interrompibile con l'acquirente. Si potrebbe pure continuare fino a
    scriverne un libro.

Note al punto uno: Prima della GPL LGPL, della FSF ecc, non c'erano alternative a questo punto, dovevi costituire azienda o meglio software house. Il punto 2 fa perno sulla GPL LGPL e FSF ecc.

  1. Creo uno fondazione, cerco finanziamenti, illustro i progetti, cerco le competenze su un bacino di utenze illimitato, con
    proventi della fondazione pago gli sviluppatore, ingegneri software ecc e (questi fanno ciò che amano e pagano la loro
    bolletta), trovo i possibili utilizzatori di questo software, o indentifico l'area di appartenenza comunque di questi potenziali
    utilizzatori. Questi utilizzatori producono un vantaggio derivato dall'uso di questo software tanto che decidono di:
  • Finanziare il progetto, il mantenimento ecc
  • Contribuisco con codice, con esperienza, con architettura, con struttura reale di utilizzo.

Note al punto 2:
Se il progetto viene rilasciato sotto i termini della licenza GPL, posso:
Utilizzare il progetto, per fini diretti o indiretti di lucro, modificare il progetto, ricevere test, ricevere patch, istituire dei corsi
di formazione per l'uso e la manutenzione e modifica/personalizzazione del progetto. E questo lo può fare chiunque in tutto il mondo, ognuno fornendo servizi a pagamento (non è conveniente per nessuna delle parti, che 4 esperti si spostino dall'italia in cina, giappone, india ecc. L'unica cosa che devi fare è rilasciare ogni intervento al software, veramente anche qui ci sono punti precisi specificati nella GPL&LGPL, ma è lungo.

Se il software A è rilasciato sotto i termini della licenza LGPL devi comportarti come per la GPL, tranne per il fatto che il software B che sviluppi usando le funzionalità offerte da A (solitamente A è libreria shared o static, e nella licenza e spiegato anche il perchè) può essere rilasciato sotto una licenza scelta a piacere, può essere una MIT, o QPL o altro come pure una licenza copyright closed source, con licenza contrattuale a scopo commerciale.

B però deve essere rilasciato sotto forma di eseguibile, ma cosa più importate deve essere possibile per l'acquirente la generazione di un nuovo eseguibile ottenuto partendo da i file oggetto di B e dal codice sorgente di A, così da potere sfruttare le modifiche introdotte nella nuova versione del codice di A.

C'è una apparente anomalia in Arduino style, infatti le librerie utente (cioè una delle tante librerie come può essere leOS, o altra) potrebbe essere usata in modo improprio dall'utente. Il modo improprio avviene quando uso il codice di queste librerie utente, rilasciate GPL|LGPL, miscelandole al mio codice e usando per quest'ultimo una licenza incompatibile. Il perché è anomalo deriva dal fatto che non è possibile più distinguere il codice da dove proviene. Non è un caso che del core arduino venga creata una libreria statica e poi il codice utente venga linkato, sarà anche tecnicamente conveniente, ma nella LGPL si fa menzione tra codice miscelato e codice linkato.

Io posso avere detto delle imprecisioni, quindi vi consiglio di studiare le licenze che avete intensione di usare o che state usando, ma questo consiglio è rivolto solo a chi a intenzioni di fare qualcosa che è contraria allo spirito della licenza stessa, perchè chi vuole usare un software GPL o LGPL non deve preoccuparsi di nulla, non ha neanche necessità di leggere la licenza
ma questo è opinabile pertanto la licenza va letta almeno l'avviso che ti chiede se hai qualcosa in contrario ad usare questo software con questa licenza con queste conseguenze, anche se io posso pensare che nessuno possa avere qualcosa in contrario alla licenza GPL&LGPL non è detto che tutti sono come me.

Ora invio che se va via la corrente elettrica mi girano :stuck_out_tongue:

Ciao.

Secondo me Janos sta cercando di capire se lui è obbligato a rilasciare i sorgenti di un prodotto realizzato utilizzando codice GPL.
Si fosse trattato unicamente di un programma sarei stato certo nella risposta: sì, sei obbligato. La licenza lo dice che se distribuisce il tuo programma in forma di compilato/binario sei obbligato a distribuire il codice o per lo meno a mettere nelle condizioni gli utenti di poterselo procurare agevolmente ed in forma libera.

I microcontrollori sono però degli oggetti particolari. Essi integrano il software al loro interno tant'è che esso viene chiamato "firmware" perché non è generalmente modificabile dall'utente in maniera diretta. Anzi, se si protegge il micro in scrittura si potrebbe anche non sapere mai se al suo interno gira un codice scritto con questa o quella libreria.
Ad esempio, Janos sa di aver usato il leOS ma non distribuisce il firmware in maniera diretta ma solo il chip programmato. Il suo dubbio è: voglio proteggere il mio lavoro, sono obbligato a distribuire i sorgenti agli acquirenti del mio prodotto o sono obbligato a distribuirli solo nel caso in cui decidessi di fornire una versione aggiornata del firmware?

Ala fine, un firmware è qualcosa di inviolabile. Prendiamo un chippino che faccia lampeggiare un led. Dall'esterno io non posso sapere se quel led viene fatto lampeggiare con 2 digitalWrite alternati da 2 delay, se con il leOS che esegue un task schedulato oppure se ho incluso 4 righe di assembly scritte da Maurotec nel mio sorgente. Janos realizza il prodotto e lo vende, e l'utente vede solo che c'è un led che lampeggia ma non sa come questo lampeggio è fatto. Potrebbe anche aver usato il leOS ma senza sorgenti io non lo posso sapere.

Leo io il problema non me lo pongo se devo scrivere un programma closed non vado a copiare codice a destra e a manca, se per vendere il mio prodotto software devo sfruttare il lavoro altrui anche se questo non è in grado di appurare se ho copiato illecitamente allora sono una schiappa.

Certo quello che dice è vero lo dissi anche io, cioè se devi farlo fallo e basta, se non sei in grado di scriverti delle funzioni da te, se non ti importa di usare lavoro altrui a tuo esclusivo beneficio fallo e basta, ancor di più se si tratta di firmware.

Purtroppo o per fortuna le cose stanno così, e vanno così, l'incapace è sempre in agguato, agisce con apparente furbizia (che io reputo stupidità). Se ci fai caso più di una volta ho evitato di dare spiegazioni circa la protezione del micro proprio per questo motivo, cioè io non ti spiego come agire se sei capace marca i fuse giusti e appròpiati di ciò che non è tutto e fai quello che c...o ti pare basta che vieni a chiedere aiuto a me. Però cercavo di indagare circa i motivi che spingono un utente di arduino a ricavare queste informazioni, perchè io stesso prima che cominciassi a scrivere avrdudequi e che Menniti facessi il programmatore HV io di fuse ne sapevo solo l'esistenza, ma non sapevo come agire questo perchè non mi interessava proteggere il firmware. E se ci fai caso anche qui non sto nominando l'incriminato, tranne che arriva qualcuno e mi dice che non si usano i ...... ma i ..... :stuck_out_tongue:

Ciao.

leo72:
Secondo me Janos sta cercando di capire se lui è obbligato a rilasciare i sorgenti di un prodotto realizzato utilizzando codice GPL.
...
Ad esempio, Janos sa di aver usato il leOS...

Leo, ti posso garantire che non ho usato nessuna delle tue librerie. Ti confesso che ne avevo intenzione per future applicazioni ma adesso che so che non posso per via della GPL (o meglio, che non posso perché non vuoi ;)) non le userò, quantomeno per lavoro. Se un domani mi servirà uno schedulatore me lo scriverò (o meglio ancora avevo quasi in mente di impararmi un RTOS e migrare ad altri micro).

Mauro, io accetto le tue opinioni ma non accetto questo tuo accanimento verso chi non la pensa come te (offendendolo pure dandogli dell'imcompetente, francamente io non mi reputo una cima ma neppure un inetto). Non sei d'accordo? Bene, quello che fai lo proteggi con la GPL, ma perché ti accanisci cercando di proteggere chi invece non la pensa come te (ti ricordo che Arduino è rilasciato con le LGPL)? Se lo hanno rilasciato con quelle licenze è perché gli sta bene così, se a te non va bene rispetto la tua idea ma pretendo lo stesso rispetto. Io personalmente sono a favore dell'LGPL e se un domani creassi qualcosa lo distribuirei sotto quella licenza...

Janos:
Leo, ti posso garantire che non ho usato nessuna delle tue librerie.

No no. Janos. Era un esempio :stuck_out_tongue:

Ti confesso che ne avevo intenzione per future applicazioni ma adesso che so che non posso per via della GPL (o meglio, che non posso perché non vuoi ;)) non le userò, quantomeno per lavoro.

Janos. Mi sa che ancora tu non comprendi lo spirito della GPL. Io non ho rilasciato i miei software sotto GPL perché non siano usati, ma l'opposto! Il software libero permette l'accesso illimitato al mio software, a patto ovviamente che anche tu debba poi ridistribuire il tuo lavoro con questa licenza. Ma non ti vieto di venderlo. Questo forse è il punto che non comprendi.
Tu puoi vendere un tuo software elaborato a partire da una mia libreria, basta che tu distribuisca anche il sorgente.
Se la tua paura è quella che, una volta distribuito il sorgente, qualcun altro lo replichi e ti faccia calare gli introiti :wink:
Ma allora Arduino non ti ha insegnato nulla? :wink: :wink:
E' tutto opensource e openhardware ma la gente acquista lo stesso la schedina perché spende meno che a fare una copia raffazzonata.

Se un domani mi servirà uno schedulatore me lo scriverò (o meglio ancora avevo quasi in mente di impararmi un RTOS e migrare ad altri micro).

Di prodotti validi, commerciali e non, ce ne sono tanti.

leo72:
E' tutto opensource e openhardware ma la gente acquista lo stesso la schedina perché spende meno che a fare una copia raffazzonata.

Veramente è pieno di persone, anche utenti di questo forum, che invece di comprare l'originale comprano una cineseria al 50% del prezzo, salvo accorgersi, e dopo lamentarsi, che non funziona come dovrebbe.
Ma questo è un altro discorso. :frowning:

PaoloP:
Veramente è pieno di persone, anche utenti di questo forum, che invece di comprare l'originale comprano una cineseria al 50% del prezzo, salvo accorgersi, e dopo lamentarsi, che non funziona come dovrebbe.
Ma questo è un altro discorso. :frowning:

I cinesi clonano le automobili, non si ritengono certo a clonare una schedina.
Ma questo vuol dire che l'Arduino è valido, se clonassero il lavoro di Janos significherebbe che avrebbe creato un prodotto commercialmente valido a livello internazionale, buon per lui $)

Leo, lavorando in un'azienda di automazione industriale non possiamo permetterci di divulgare il software delle nostre macchine. Arduino è libero, ed è giusto che sia così, perché è una schedina fine a se stessa e non il sistema di controllo di un macchinaro.

Janos:
Leo, lavorando in un'azienda di automazione industriale non possiamo permetterci di divulgare il software delle nostre macchine. Arduino è libero, ed è giusto che sia così, perché è una schedina fine a se stessa e non il sistema di controllo di un macchinaro.

Quindi voi, anche se voleste, non potreste utilizzare nulla di Arduino? E così per tutti i software liberi?

Perché no? Basta che utilizzi software LGPL...

Janos:
Perché no? Basta che utilizzi software LGPL...

Capito.

Janos:

leo72:
Secondo me Janos sta cercando di capire se lui è obbligato a rilasciare i sorgenti di un prodotto realizzato utilizzando codice GPL.
...
Ad esempio, Janos sa di aver usato il leOS...

Leo, ti posso garantire che non ho usato nessuna delle tue librerie. Ti confesso che ne avevo intenzione per future applicazioni ma adesso che so che non posso per via della GPL (o meglio, che non posso perché non vuoi ;)) non le userò, quantomeno per lavoro. Se un domani mi servirà uno schedulatore me lo scriverò (o meglio ancora avevo quasi in mente di impararmi un RTOS e migrare ad altri micro).

Mauro, io accetto le tue opinioni ma non accetto questo tuo accanimento verso chi non la pensa come te (offendendolo pure dandogli dell'imcompetente, francamente io non mi reputo una cima ma neppure un inetto). Non sei d'accordo? Bene, quello che fai lo proteggi con la GPL, ma perché ti accanisci cercando di proteggere chi invece non la pensa come te (ti ricordo che Arduino è rilasciato con le LGPL)? Se lo hanno rilasciato con quelle licenze è perché gli sta bene così, se a te non va bene rispetto la tua idea ma pretendo lo stesso rispetto. Io personalmente sono a favore dell'LGPL e se un domani creassi qualcosa lo distribuirei sotto quella licenza...

Ma janos, guarda che io non ti ho detto che tu sia incompentente, non sto qui a giudicare senza elementi.
Ti posso fare un esempio con la speranza che quello che ho scritto lo interpreti diversamente.

Tempo addietro (e c'è il formum a testimonianza) mi sono messo a sviluppare un IDE ambizioso troppo per una sola persona.
Ma purtroppo mi sono accorto di essere una schiappa, io non sono capace di fare un AST e non posso prendere quello di QtCreatore che è il miglior fast parser AST in C++. Potrei usare proprio il fast parser AST di QtCreator se avessi intenzione di rilasciare tutto open, ma il lavoro è immane specie per una sola persona. Quindi visto che io sono una schiappa e non so fare un AST ho messo da parte il progetto, non solo non sono neanche in grado di gestire con padronanza un progetto plugin oriented.

Insomma sono una schiappa, ma questo non vuol dire che mi arrendo forse un giorna saprò fare un AST, ma non mi vergogno a dirlo perché io penso che la cosa che mi nobilità è il fatto di essermi reso conto che non posso prendere un codice sviluppato da altri per mio interesse economico esclusivo.

La tua azienda dopo aver preso del codice LGPL averne ricavato del profitto dovrebbe pensare ad alimentare il mercato del software LGPL. Diversamente la tua azienda come qualunque altra azienda sta prendendo l'acqua dal pozzo pensando che sia senza fondo.
La tua Azienda potrebbe:

  • finanziare la FSF
  • finanziare lo sviluppo e mantenimento della avr-libc o avr-gcc o simili.

può essere pure che già la tua azienda fa qualcosa di simile a quello che ho descritto prima ma mica lo so, spiego solo il meccanismo virtuoso che si cela dietro la GLP&LGPL e FSF.

Janos non mi dire che io c'è l'ho con l'azienda per cui lavori, sto usando la tua azienda come esempio perchè tu l'hai tirata in ballo, come pure ho usato il nik janos per fare degli esempi, io mica so se sei una schiappa (lo siamo un po tutti).

Alla fine per fortuna che esiste la LGPL.

Ciao.