Dovrei includermi come autore dopo aver modificato il codice di terze parti?


17

È pratica comune apportare alcune modifiche o correzioni nel codice di terze parti (che si tratti di un semplice riassunto o di un'intera libreria). Ma è anche comune che molti di questi codici abbiano le proprie regole di licenza e alla fine un'intestazione su ogni file con informazioni sul copyright.

Dopo aver apportato tali modifiche, qual è la cosa giusta da fare dopo? Mantenere le informazioni sulla licenza intoccabili o provare ad aggiornarle includendo te stesso con qualcosa di simile @authoro @revisiontag?

Un altro problema comune è la modifica dello spazio dei nomi / pacchetto di terze parti per adattarlo alle convenzioni del progetto. Alcuni tipi di licenza includono questo tipo di informazioni nel loro blocco di licenza, posso cambiarlo liberamente?

So che la risposta a queste domande dipende da ogni tipo di licenza, quindi per rendere la mia domanda più specifica ...

Considerando le regole di licenza generali (di solito sono diverse in aspetti minori, giusto?), È etico (o almeno consentito) che io aggiunga liberamente informazioni al blocco di licenza sulle mie modifiche e forse modifichi anche come posso fare riferimento ad esse nel mio codice (es. usare YACorp.YALibcome Utils.YALib)?


2
Dipende dalla licenza e dalle pratiche stabilite dal progetto. Alcuni progetti riconoscono tutti gli autori nel testo della licenza; altri mettono gli autori su Github e fanno riferimento al progetto per nome nella licenza. Alcune licenze richiedono l'attribuzione, altre no.
Robert Harvey,

@RobertHarvey Hai ragione, ma sto cercando di definire alcune linee guida generali per queste situazioni. Ho aggiornato la domanda.
kbtz,

La tua modifica sembra una forchetta. Se stai biforcando il progetto, puoi fare quello che vuoi (possiedi il fork). Ma non starei in giro con i nomi delle biblioteche se non possiedi il progetto.
Robert Harvey,


1
Questa domanda sembra fuori tema perché riguarda l'affermazione e l'assegnazione del copyright. Le domande sul copyright sono domande legali al di fuori delle competenze della community e inadeguate per il sito. È difficile rispondere correttamente a questa domanda perché ci sono troppi fattori coinvolti come la giurisdizione locale, nonché la licenza e la proprietà del copyright del programma originale.

Risposte:


9

Dopo aver apportato tali modifiche, qual è la cosa giusta da fare dopo? Mantenere le informazioni sulla licenza intoccabili o provare ad aggiornarle includendo te stesso con qualcosa come i tag @author o @revision?

Penso che tu stia confondendo la licenza del software e qualsiasi prologo che potrebbe far parte del software.

La licenza è dove i proprietari del copyright del programma specificano i termini di utilizzo (la licenza) per altre persone. Alcune licenze sono molto permissive, altre sono molto più restrittive.

Il prologo è dove gli autori inseriscono @authore @revisiontag per fornire un modo per tenere traccia delle modifiche al codice sorgente. In alcuni casi, diventare un autore di un'aggiunta non banale al codice può comportare la rivendicazione del copyright su quella sezione del codice. Districare le preoccupazioni sul copyright può essere spinoso ed è gestito al meglio dagli avvocati. Tuttavia, hai affermato espressamente che non ti preoccupi di quell'aspetto, quindi passerò avanti.

Un altro problema comune è la modifica dello spazio dei nomi / pacchetto di terze parti per adattarlo alle convenzioni del progetto. Alcuni tipi di licenza includono questo tipo di informazioni nel loro blocco di licenza, posso cambiarlo liberamente?

Questo dipende davvero dalle convenzioni del progetto.

Se fai il fork del progetto, puoi fare quello che vuoi.

Se hai intenzione di contribuire con le modifiche al progetto, dovresti attenersi alla convenzione stabilita. Se c'è un motivo convincente per cambiare lo spazio dei nomi, è necessario presentarlo alla comunità dell'applicazione.

Considerando le regole di licenza generali (di solito sono diverse in aspetti minori, giusto?),

è etico (o almeno consentito) aggiungere liberamente informazioni al blocco di licenza in merito alle mie modifiche e forse modificare anche come posso fare riferimento ad esse nel mio codice (ad esempio, utilizzare YACorp.YALib come Utils.YALib)?

Non modificare la licenza!

Prima di tutto, probabilmente non hai i diritti legali per cambiare la licenza. In secondo luogo, è probabile che qualsiasi modifica apportata rovini la licenza. Lasciare le modifiche della licenza agli avvocati.

Per quanto riguarda l'aggiornamento del prologo, dipende dalle norme del progetto. Alcuni progetti non vogliono un prologo perché usano il controllo del codice sorgente per rintracciarlo. Lo fanno altri progetti. Segui le convenzioni del progetto.

In realtà le mie preoccupazioni riguardano più il "rispetto per la comunità" che gli aspetti legali, sto chiedendo di più su quanto possiamo "scatenarci" rimanendo etici se il nostro progetto può essere considerato privato o personale.

Se stai mantenendo le tue modifiche su te stesso, perché ti importa cosa pensano gli altri? Qualcosa che usi solo per te stesso e non lo distribuisci mai agli altri non ha alcun impatto sul progetto originale. Quindi a loro non importa quello che fai.

Se prevedi di distribuire le modifiche o di restituirle al progetto, devi valutare le convenzioni di quel progetto. Alcuni progetti non vogliono essere biforcati e avranno una licenza in atto per impedirlo. Altri arrivano al punto di dire "fai quello che vuoi" e ti viene data carta bianca da fare come ritieni opportuno. In definitiva, la risposta qui dipende dal particolare progetto che stai guardando.


Proprio come mi aspettavo, le risposte sono quasi ovvie, ma è stato un sollievo vedere tutti esprimere la propria opinione. Grazie a tutte le risposte!
kbtz,

Esistono effettivamente progetti che accettano contributi ma che non consentono il fork? O intendi cose come le biblioteche commerciali fornite anche con il loro codice sorgente?
svick,

@svick - Entrambi sarebbero applicabili in questo caso. Esistono alcuni progetti open-source che (tentano di) impedire il fork. Pensa a progetti in cui stanno cercando di riservare la possibilità di diventare commerciali ad un certo punto in futuro. Le librerie commerciali esistenti impedirebbero il fork dalle condizioni di licenza.

@ GlenH7 Pensavo che tali progetti (ad es. MySQL) richiedessero di solito che il copyright dei contributi che vanno nella versione ufficiale sia assegnato all'organizzazione governativa. Quindi la versione open source viene rilasciata con una comune licenza open source (come GPL), ma possono anche avere una versione commerciale chiusa. Ma ciò non impedisce le forcelle della versione open-source (vedi MariaDB).
svick,

5

Vorrei aggiungere un commento, in parte per segnalare a un lettore che il file non è "vaniglia", con collegamenti a qualsiasi documentazione pertinente o un sistema di tracciamento dei problemi.

Modifica: Quindi questa situazione mi ricorda quando una distribuzione Linux impacchetta una libreria. Debian ha linee guida e standard su come i pacchetti dovrebbero essere compilati e nominati, il che potrebbe ben variare da come la libreria è solitamente distribuita pre-costruita.

Non penso che dovresti essere timido nel nominare / costruire / modificare una libreria, dal momento che immagino che non distribuirai il risultato al resto del mondo? In questo caso, includerei un file README insieme alla fonte che descrive quali modifiche hai apportato e perché. Ad esempio README. $ {CompanyName} .changes


Vorrei fare anche una cosa del genere, ma la mia domanda riguarda maggiormente ciò che è considerato giusto dal punto di vista della terza parte e / o regole di licenza generali.
kbtz,

2

Dovrai consultare la regola di licenza del codice.

In generale, molte applicazioni di front-end open source (ad es. Firefox, OpenOffice) considerano il loro nome e il loro logo come marchio di fabbrica; quindi se dovessi rilasciare una versione modificata dell'app non sarai in grado di utilizzare i marchi / gli abiti commerciali originali (quindi IceWeasel, Torbrowser, LibreOffice).

Tuttavia, la maggior parte delle librerie di programmazione sono spesso meno preoccupate dei marchi purché sia ​​abbastanza chiaro chi fa cosa (di solito questo può essere trovato dai metadati di controllo della versione).

Le informazioni sull'autore hanno due scopi:

  1. Dare credito dove è dovuto
  2. Dare la colpa dove merita

Quest'ultimo diventa più importante man mano che le modifiche diventano più grandi. Le informazioni sulla paternità effettiva si trovano generalmente nel controllo della versione, ma alcuni progetti accreditano formalmente una serie di autori in un file separato. Il punto limite in cui le persone verrebbero formalmente accreditate varia per ogni progetto, contattare gli autori originali in caso di dubbio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.