La domanda principale qui è: stai copiando il codice, o stai copiando l'algoritmo sottostante.
Portare il codice su una lingua diversa (di programmazione) è un'area grigia nella legge sul copyright e dipenderà in gran parte da quanto meccanica è la trasformazione se la tua versione sarà vista come un'opera derivata dell'originale o come una separata lavoro.
D'altra parte, gli algoritmi non sono soggetti al diritto d'autore, ma solo al modo in cui sono espressi. Ciò significa che se si guarda solo il codice originale per determinare come funziona e si tenta di ricreare lo stesso comportamento, si è un passo avanti rispetto alla creazione di un'opera derivata. Il problema più grande potrebbe essere nel dimostrare che le somiglianze tra le due versioni non sono il risultato di aver visto l'originale.
Quanto sopra non si applica solo alle licenze copyleft, ma si applica a qualsiasi licenza di copyright che richiede il rilascio di un'opera derivata con la stessa licenza. Per tutte queste licenze, l'opzione più sicura quando si esegue il porting di un lavoro è di rilasciare la porta sotto la stessa licenza o di ottenere un accordo dai manutentori dell'originale per utilizzare una licenza diversa per la propria porta.