Cinque anni fa, gli sviluppatori Python hanno annunciato che smetteranno di supportare Python 2 nel 2020. Per molto tempo, a nessuno è importato e l'adozione di Python 3 è stata lenta. Ma le cose sono cambiate molto ultimamente perché la scadenza è dietro l'angolo (1 gennaio).
Debian sta rimuovendo il supporto per Python 2
Debian sta pianificando di sbarazzarsi completamente di Python 2 per la loro prossima versione stabile, in modo da eliminare progressivamente il codice di Python 2. Hanno presentato bug critici di rilascio sui pacchetti foglia (cioè pacchetti senza dipendenze inverse) chiedendo loro di essere portati su Python 3. Se il porting di Python 3 non si verifica abbastanza presto, questi pacchetti verranno rimossi da Debian Testing (che è ciò che Kali si basa su) .
Conseguenze per Kali
Applicazioni che scompaiono
Poiché Kali è una distribuzione continua, riceve continuamente aggiornamenti da Debian Testing. Ciò include quando i pacchetti "scompaiono" perché sono stati eliminati da Debian. Tuttavia, possono sempre tornare in un secondo momento, a condizione che qualcuno li porti su Python 3.
L'abbiamo già sperimentato nel caso di zenmap
che non è più gestito dagli sviluppatori di nmap. Pertanto, non è più compilato dal pacchetto sorgente nmap di Debian e, di conseguenza, non appare più in Kali.
Applicazioni interrotte
Abbiamo molte applicazioni Python 2 in Kali che usano moduli che sono pacchettizzati in Debian. Quando Debian rilascia la versione Python 2 di un tale modulo, l'applicazione viene interrotta in kali-dev. kali-rolling non è influenzato dal modo in cui è gestito, ma la crescente divergenza tra kali-dev e kali-rolling sta rendendo il nostro lavoro più difficile:non riceviamo aggiornamenti per tali pacchetti e ci sono altre (recenti/) applicazioni che probabilmente richiederanno nuove versioni di quei pacchetti!
Kali deve rimuovere anche il codice Python 2
A causa di questo cambiamento nell'ecosistema, Kali non ha altra scelta che seguire l'esempio di Debian e rimuovere anche il codice Python 2. Questo sforzo gigantesco viene monitorato con molti problemi di GitLab rispetto a tutti i pacchetti che dipendono in qualche modo da Python 2. Abbiamo già archiviato segnalazioni di bug a monte per tutti i pacchetti per i quali non esiste ancora il supporto per Python 3.
Il modo in cui gestiamo ogni caso dipende da molti fattori:
- Se l'upstream funziona con il supporto per Python 3, allora aspettiamo che sia pronto.
- Se l'upstream è inattivo o non è interessato a portare il suo codice su Python 3, allora abbiamo poche scelte:
- o rimuoviamo il pacchetto;
- oppure troviamo qualche fork/patch che aggiunge il supporto per Python 3;
- oppure ci occupiamo noi stessi del porting (piuttosto improbabile se non per script banali).
Dipende anche dal tipo di pacchetti:
- Per una libreria Python, è un processo in due fasi:prima aggiungiamo il supporto per Python 3; Il supporto per Python 2 viene rimosso in seguito, una volta che tutte le dipendenze inverse sono state aggiornate per utilizzare Python 3.
- Per un'applicazione Python, un singolo aggiornamento potrebbe essere sufficiente, ma tale aggiornamento potrebbe dipendere dal fatto che le dipendenze siano state prima trasferite su Python 3.
Non ci piace rimuovere i software, ma a volte, quando non vengono più mantenuti, non abbiamo altre scelte. Per i pacchetti importanti, stiamo aspettando più tempo, lasciando così più tempo alla comunità per aggiungere il supporto richiesto per Python 3. Potremmo persino applicare una patch in modo che visualizzino un avviso che invita gli utenti a contribuire, o almeno capiscano che l'applicazione potrebbe essere rimossa nel prossimo futuro.
Per i pacchetti che non aggiungono più molto valore o che hanno valide alternative in Kali, potremmo rimuoverli in qualsiasi momento.
Come puoi contribuire
Se una delle tue applicazioni preferite appare tra i pacchetti Kali interessati o tra i pacchetti interessati dal team pkg-security di Debian, dovresti rivedere la sua situazione e possibilmente aiutare gli sviluppatori a monte inviando una richiesta pull aggiungendo il supporto per Python 3. Anche se l'upstream non è molto attivo, saremo in grado di unire le tue modifiche in Kali e mantenere il pacchetto più a lungo finché l'upstream non sarà di nuovo attivo.
Se non hai le capacità di programmazione richieste per questo, puoi comunque provare a trovare un fork/patch Python 3 scritto da qualcun altro e segnalarcelo nel corrispondente problema di GitLab o nella segnalazione di bug di Debian. Oppure, dì agli sviluppatori quanto ti piace la loro applicazione e che vorresti continuare a farne uso, quindi dovrebbero trasferirli su Python 3.