View Full Version : libmysql.dll è liberamente distribuibile a fini commerciali ?
Sto realizzando un programma shareware che funziona grazie a libmysql.dll. Volevo sapere se per poter rilasciare il programma devo pagare dei diritti oppure è gratis.
Se fosse a pagamento, potrei inserire un messaggio nel software che indica all'utente di copiarsela a mano dalla cartella di mysql ?
Ho fatto un po' di ricerche ma non ci ho capito molto.
Grazie
variabilepippo
06-07-2008, 18:37
Se realizzi un programma shareware basato su MySQL e non intendi rilasciare i sorgenti (http://www.mysql.com/about/legal/licensing/) nel rispetto di una licenza GPL-like devi acquistare MySQL (https://shop.mysql.com/).
Se realizzi un programma shareware basato su MySQL e non intendi rilasciare i sorgenti (http://www.mysql.com/about/legal/licensing/) nel rispetto di una licenza GPL-like devi acquistare MySQL (https://shop.mysql.com/).
Dal testo dei link però sembrerebbe riferirsi al fatto che io distribuisca mysql con il mio prodotto.
Dunque se il mio programma suggerisse al cliente di installarsi mysql (ad es. XAMPP) e copiarsi la dll per conto suo andrebbe bene ?
variabilepippo
06-07-2008, 20:47
Certe cose vanno chiarite nel dettaglio contattando un commerciale di MySQL al quale potrai spieegare per bene quali sono le modalità di interfacciamento e di distribuzione del tuo programma.
Imho i casi sono due:
- linking statico di libmysql: qui è fuori dubbio che ti serva una licenza visto che distribuisci parte del codice di libmysql
- linking dinamico di libmysql: qui non viene distribuito alcuna parte di MySQL. Tu puoi distribuire il tuo codice senza licenza di MySQL, ma sarà il cliente a doversi acquistare una licenza MySQL in quanto
Un tempo libmysql era LGPL ed anche il primo caso era perfettamente legale. Ora invece la community edition di MySQL è completamente GPL (inclusa libmysql), quindi o rilasci il sorgente della tua applicazione sotto GPL o il cliente dovrà dotarsi di una licenza commerciale.
Imho i casi sono due:
- linking statico di libmysql: qui è fuori dubbio che ti serva una licenza visto che distribuisci parte del codice di libmysql
- linking dinamico di libmysql: qui non viene distribuito alcuna parte di MySQL. Tu puoi distribuire il tuo codice senza licenza di MySQL, ma sarà il cliente a doversi acquistare una licenza MySQL in quanto
Un tempo libmysql era LGPL ed anche il primo caso era perfettamente legale. Ora invece la community edition di MySQL è completamente GPL (inclusa libmysql), quindi o rilasci il sorgente della tua applicazione sotto GPL o il cliente dovrà dotarsi di una licenza commerciale.
Il linking è dinamico, il cliente non può installarsi xampp (che è gpl) e via ?
Cioè, io distribuisco il mio programma senza libmysql, alla prima schermata appena installato chiede:'Indicare il percorso dove è installato il server mysql'
A quel punto una routine copia libmysql nella propria cartella.
Così dovrebbe andare bene no ?
Se il cliente installa xampp che è gpl non dovrebbe essere costretto a comprare una licenza no ?
variabilepippo
07-07-2008, 17:22
Così dovrebbe andare bene no ?
Se il cliente installa xampp che è gpl non dovrebbe essere costretto a comprare una licenza no ?
Il problema non è XAMPP, il problema è la licenza di MySQL. Se tu usi MySQL, indipendentemente dal fatto di averlo scaricato dal sito ufficiale o all'interno di un bundle (come XAMPP), devi rispettare i termini stabiliti nella licenza. Se il tuo programma è coperto da GPL allora non devi acquistarlo, se non lo è mi sembra inutile cercare "scappatoie": o tu o il tuo cliente dovrete acquistare MySQL.
Non va bene perché è un programma commerciale e non open source. Per tali programmi c'è bisogno di una licenza commerciale.
tomminno
08-07-2008, 08:15
Imho i casi sono due:
- linking statico di libmysql: qui è fuori dubbio che ti serva una licenza visto che distribuisci parte del codice di libmysql
- linking dinamico di libmysql: qui non viene distribuito alcuna parte di MySQL. Tu puoi distribuire il tuo codice senza licenza di MySQL, ma sarà il cliente a doversi acquistare una licenza MySQL in quanto
Un tempo libmysql era LGPL ed anche il primo caso era perfettamente legale. Ora invece la community edition di MySQL è completamente GPL (inclusa libmysql), quindi o rilasci il sorgente della tua applicazione sotto GPL o il cliente dovrà dotarsi di una licenza commerciale.
Leggendo il thread mi è venuta in mente una domanda:
Ma tutti i siti che usano MySQL dovrebbero averne una licenza o essere opensource?
Sinceramente non ho mai lavorato con una licenza pagata di MySQL.
Però ho appena letto la licenza GPL e al punto 3/c dice:
Questi requisiti si applicano all'opera modificata nel suo complesso. Se sussistono parti identificabili dell'opera modificata che non siano derivate dal Programma e che possono essere ragionevolmente considerate lavori indipendenti, allora questa Licenza e i suoi termini non si applicano a queste parti quando queste vengono distribuite separatamente. Se però queste parti vengono distribuite all'interno di un prodotto che è un'opera basata sul Programma, la distribuzione di quest'opera nella sua interezza deve avvenire nei termini di questa Licenza, le cui norme nei confronti di altri utenti si estendono all'opera nella sua interezza, e quindi ad ogni sua parte, chiunque ne sia l'autore.
Tra l'altro la mia non sarebbe neppure un'opera modificata la cui definizione si trova al punto 3:
È lecito modificare la propria copia o copie del Programma, o parte di esso, creando perciò un'opera basata sul Programma, e copiare o distribuire tali modifiche o tale opera secondo i termini del precedente comma 1, a patto che siano soddisfatte tutte le condizioni che seguono:
ma una vera e propria opera indipendente. Anche però considerandola opera modificata rientrerebbe a pieno nel caso indicato dal punto 3/c visto che il link è dinamico. Esiste cioè ben identificabile un eseguibile .exe fatto da me e una libreria .dll fatta da altri. Addirittura dunque potrei rilasciare la libreria direttamente nello stesso pacchetto d'installazione del programma a patto di indicare dove è possibile scaricare i sorgenti della sola dll.
Leggendo il thread mi è venuta in mente una domanda:
Ma tutti i siti che usano MySQL dovrebbero averne una licenza o essere opensource?
Sinceramente non ho mai lavorato con una licenza pagata di MySQL.
C'è una esclusione esplicita per i programmi PHP nella licenza di MySQL.
Il punto non è la GPL, ma quando MySQL AB prescrive l'uso della GPL e quando non. Infatti dicono che per programmi commerciali serve una licenza commerciale.
La tua lettura della GPL è corretta, infatti non distribuendo MySQL con il tuo programma tu non incorri in alcun problema. I problemi sono per la ditta che usa un programma commerciale senza una licenza MySQL commerciale.
Se avessi linkato staticamente libmysql avresti dovuto includere una licenza di MySQL nell'acquisto del programma.
Ah ho capito.
Comunque non è detto che gli utenti del mio programma ne facciano un uso commerciale dato che è uno shareware.
Potrebbero usarlo anche solo per praticità personale visto che è una specie di motore di ricerca. Nella licenza d'uso inserirò una nota dove specifico che se si intende fare un uso commerciale del mio software occorre comprarsi anche mysql.
variabilepippo
08-07-2008, 11:29
Per evitare beghe legali ti rinnovo il consiglio di contattare un commerciale di MySQL e di illustrare nel dettaglio il tuo scenario.
Anche perché se il cliente ti paga il software (non open-source) allora ricadi nel caso di software commerciale (http://www.mysql.com/about/legal/licensing/commercial-license.html):
Typical examples of MySQL distribution include:
Selling software that includes MySQL to customers who install the software on their own machines.
Selling software that requires customers to install MySQL themselves on their own machines.
Building a hardware system that includes MySQL and selling that hardware system to customers for installation at their own locations.
Hai ragione, a questo punto passo a PostegreSQL.
Con quello non dovrei avere problemi no ? E' licenza BSD
variabilepippo
08-07-2008, 20:12
PostgreSQL è coperto da licenza BSD, comunque valuta anche altri sistemi di gestione dei dati prima di sceglierne uno.
cdimauro
08-07-2008, 20:23
Già. C'è anche Firebird (http://www.firebirdsql.org/) con licenza BSD-like. :)
Cercando su internet ne ho trovati un po', ma il più veloce qual'è? non mi interessa nessuna funzione particolare, ma nella mia applicazione il database è il collo di bottiglia perchè è l'unico momento in cui si scrive su hard disk.
Tra PostgreSQL, Firebird e SQLite qual'è il più veloce ?
Grazie
variabilepippo
09-07-2008, 10:48
Per applicazioni "normali" (es. un gestionale) non dovresti vedere differenze notevoli tra i vari DBMS, soprattutto se ti attieni alle guidelines sull'ottimizzazione degli inserimenti reperibili tra la documentazione sui siti ufficiali dei vari prodotti. Secondo me dovresti prendere in considerazione altri aspetti: facilità di sviluppo, supporto delle transazioni e dell'integrità referenziale, affidabilità e soprattutto "adeguatezza" rispetto alle specifiche del tuo progetto.
Considera che spesso "maggiore velocità = minori controlli". Prima di sceglierne uno leggi con attenzione le relative feature-list e nota se manca qualcosa... SQLite ha fama di essere molto veloce, (http://www.sqlite.org/speed.html) ma è anche vero che il set di carattistiche supportate è ridotto rispetto alla concorrenza.
SQLite ha il pregio di essere un db embedded ed occupa molte meno risorse degli altri DBMS ed è più facile da distribuire con la tua applicazione.
Comunque dipende da quello che ti serve ;)
variabilepippo
09-07-2008, 11:29
SQLite ha il pregio di essere un db embedded ed occupa molte meno risorse degli altri DBMS ed è più facile da distribuire con la tua applicazione.
Esatto, basta portarsi dietro una piccola DLL. :)
In quale linguaggio stai sviluppando il progetto?
tomminno
09-07-2008, 12:14
Considera che spesso "maggiore velocità = minori controlli". Prima di sceglierne uno leggi con attenzione le relative feature-list e nota se manca qualcosa... SQLite ha fama di essere molto veloce, (http://www.sqlite.org/speed.html) ma è anche vero che il set di carattistiche supportate è ridotto rispetto alla concorrenza.
SQLite secondo me è il perfetto sostituto di Access in ogni situazione, ma non ha certo lo stesso target di MySQL,PostgreSql,Firebird.
SQLite secondo me è il perfetto sostituto di Access in ogni situazione, ma non ha certo lo stesso target di MySQL,PostgreSql,Firebird.
Certo...appunto dipende da cosa gli serve. Se gli serve l'accesso contemporaneo da parte di più utenze già SQLite è da scartare.
variabilepippo
09-07-2008, 12:53
SQLite secondo me è il perfetto sostituto di Access in ogni situazione, ma non ha certo lo stesso target di MySQL,PostgreSql,Firebird.
Infatti ho scritto "Secondo me dovresti prendere in considerazione altri aspetti: facilità di sviluppo, supporto delle transazioni e dell'integrità referenziale, affidabilità e soprattutto "adeguatezza" rispetto alle specifiche del tuo progetto" e "SQLite ha fama di essere molto veloce, ma è anche vero che il set di carattistiche supportate è ridotto rispetto alla concorrenza." (concorrenza = MySQL, PostgreSQL, Firebird, Oracle, Microsoft SQL Server, ...) :)
Se non ricordo male sia Microsoft SQL Server Express sia Oracle Express sono gratuiti anche per usi commerciali, dunque se l'utente non vuole orientarsi verso un database embedded può prenderli in considerazione.
cdimauro
09-07-2008, 13:36
FireBird ha il pregio di essere un SQL "di spessore", quindi presentare caratteristiche come transazioni, trigger, stored procedure, ecc. ecc. ecc., ma è disponibile anche in forma embedded (quindi sarebbe sufficiente copiare i file che gli servono nella cartella dell'applicazione).
Il vantaggio non indifferente è che nel momento in cui l'applicazione dovesse passare da standalone a client / server, il db creato non si dovrebbe cambiare di una virgola, e sarebbe sufficiente cambiare la connessione al db (specificando un URL o un alias remoto, anziché il path locale del DB) creata dall'applicazione, non toccando nessun'altra riga di codice. ;)
Sto vagliandoli, vedo che comunque hanno tutti molte più funzioni di mysql e sembrerebbero abbastanza più complessi. Embedded mi tornerebbe meglio perchè potrei fare un unico pacchetto d'installazione.
La velocità è fondamentale, perché sto facendo un piccolo motore di ricerca per il web. Ha ancora molti difetti, è in pieno sviluppo ma è già usabile, se volete provarlo e dirmi che impressione vi fa ecco:
http://rapidshare.com/files/128450358/TSearch.zip.html
Ci sono dei memory leak che di cui ancora non sono riuscito a trovare la causa.
Dopo questa cosa della licenza però mi sto più che altro ingegnando per cambiare database. Il tasto 'Continua' non è ancora attivo.
variabilepippo
09-07-2008, 20:27
Lo stai sviluppando in C++Builder/Delphi?
Lo stai sviluppando in C++Builder/Delphi?
No perchè non ho i soldi per comprarmi la licenza commerciale, sto cercando di fare tutto in Lazarus (clone gratuito di delphi) nonstante i limiti.
L'hai provato?
Il file php va modificato a mano con il nome del database scelto, di default è testdb
variabilepippo
09-07-2008, 20:38
No perchè non ho i soldi per comprarmi la licenza commerciale
Ma Turbo Delphi e Turbo C++ (http://www.turboexplorer.com/), anche nelle versioni gratuite possono essere usati per scopi commerciali. Non c'è paragone con Lazarus e con circa 200/250 euro ti porti a casa la versione Professional, senza limitazioni... :)
Ma la versione gratuita non consente di aggiungere i componenti esterni. Comunque non sapevo che costasse così poco, pensavo 2-3000 euro.
cdimauro
09-07-2008, 20:55
No, quei prezzi ci sono per RAD Delphi 2007.
Comunque se usi Delphi et similia vai di lusso con FireBird: è supportatissimo e ci sono una marea di componenti e applicazioni, visto che Borland da anni utilizza (e vende) InterBase (FireBird deriva da IB ed è quasi del tutto compatibile con IB).
variabilepippo
09-07-2008, 21:03
Comunque non sapevo che costasse così poco, pensavo 2-3000 euro.
No, quelli sono i prezzi delle versioni Enterprise del pacchetto completo.
Turbo Delphi Pro costa meno di 200/250 euro, secondo me è un ottimo investimento se usi Delphi per programmare. Ne guadagni in termini di produttività e di qualità del prodotto.
No, quelli sono i prezzi delle versioni Enterprise del pacchetto completo.
Turbo Delphi Pro costa meno di 200/250 euro, secondo me è un ottimo investimento se usi Delphi per programmare. Ne guadagni in termini di produttività e di qualità del prodotto.
E cosa c'è di diverso tra il pacchetto completo e la versione da 200 euro ?
variabilepippo
09-07-2008, 21:49
E cosa c'è di diverso tra il pacchetto completo e la versione da 200 euro ?
Consulta la feature matrix (http://www.codegear.com/article/34452/images/34452/turbo_delphi_feature_matrix.pdf) per la lista completa delle differenze. Comunque la differenze più rilevante è l'impossibilità di installare componenti di terze parti nella versione base, ma nonostante questa limitazione Turbo Delphi è tutto un altro pianeta rispetto a Lazarus (a meno che un certo grado di portabilità non sia una esigenza imprescindibile).
Se sviluppi software commerciale credo che investire 200 euro in un prodotto come Turbo Delphi Pro non sia un problema, ne guadagni (anche) in salute... ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.