GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Kali menangani Akhir Kehidupan Python 2 yang akan datang

Lima tahun lalu, pengembang Python mengumumkan bahwa mereka akan berhenti mendukung Python 2 pada tahun 2020. Untuk waktu yang lama, tidak ada yang peduli dan adopsi Python 3 lambat. Tetapi banyak hal telah berubah akhir-akhir ini karena tenggat waktu sudah dekat (1 Januari).

Debian menghapus dukungan Python 2

Debian berencana untuk menyingkirkan Python 2 sepenuhnya untuk rilis stabil berikutnya sehingga mereka secara bertahap menyingkirkan kode Python 2. Mereka mengajukan rilis bug kritis pada paket daun (yaitu paket tanpa dependensi terbalik) meminta mereka untuk porting ke Python 3. Jika port Python 3 tidak segera terjadi, paket-paket ini akan dihapus dari Debian Testing (yang mana Kali didasarkan pada) .

Konsekuensi untuk Kali

Aplikasi menghilang

Karena Kali adalah distribusi bergulir, ia terus menerima pembaruan dari Pengujian Debian. Ini termasuk ketika paket "pergi" karena telah dihapus dari Debian. Namun, mereka selalu dapat kembali lagi nanti, asalkan seseorang mem-porting-nya ke Python 3.

Kami telah mengalami ini dalam kasus zenmap yang tidak lagi dikelola oleh pengembang nmap. Jadi, itu tidak lagi dibangun oleh paket sumber nmap Debian, dan akibatnya tidak lagi muncul di Kali.

Aplikasi rusak

Kami memiliki banyak aplikasi Python 2 di Kali yang menggunakan modul yang dikemas dalam Debian. Ketika Debian menjatuhkan versi Python 2 dari modul semacam itu, aplikasi tersebut rusak di kali-dev. kali-rolling tidak terpengaruh karena cara pengelolaannya tetapi perbedaan yang berkembang antara kali-dev dan kali-rolling membuat pekerjaan kami lebih sulit:kami tidak mendapatkan pembaruan untuk paket-paket tersebut dan ada aplikasi lain (terbaru/) yang kemungkinan akan membutuhkan versi baru dari paket tersebut!

Kali juga harus menghapus kode Python 2

Karena perubahan ekosistem ini, Kali tidak punya pilihan lain selain mengikuti jejak Debian dan menghapus kode Python 2 juga. Upaya raksasa ini dilacak dengan banyak masalah GitLab terhadap semua paket tergantung pada Python 2 dalam beberapa cara. Kami telah mengajukan laporan bug upstream untuk semua paket yang belum mendukung Python 3.

Cara kami menangani setiap kasus bergantung pada banyak faktor:

  • Jika upstream bekerja pada dukungan Python 3, maka kita tunggu saja sampai siap.
  • Jika upstream tidak aktif atau tidak tertarik untuk mem-porting kodenya ke Python 3, maka kita memiliki beberapa pilihan:
    • apakah kami menghapus paket;
    • atau kami menemukan beberapa fork/patch yang menambahkan dukungan Python 3;
    • atau kami melakukan porting sendiri (agak tidak mungkin kecuali untuk skrip sepele).

Itu juga tergantung pada jenis paket:

  • Untuk pustaka Python, ini adalah proses dua langkah:pertama kami menambahkan dukungan Python 3; Dukungan Python 2 akan dihapus nanti, setelah semua dependensi terbalik diperbarui untuk menggunakan Python 3.
  • Untuk aplikasi Python, satu pembaruan mungkin cukup tetapi pembaruan itu mungkin bergantung pada porting dependensi ke Python 3 terlebih dahulu.

Kami tidak suka menghapus perangkat lunak, tetapi terkadang ketika perangkat lunak tersebut tidak lagi dipelihara, kami tidak punya pilihan lain. Untuk paket penting, kami menunggu lebih lama sehingga memberi lebih banyak waktu bagi komunitas untuk menambahkan dukungan Python 3 yang diperlukan. Kami bahkan mungkin menambalnya sehingga menampilkan peringatan yang mengundang pengguna untuk berkontribusi, atau setidaknya memahami bahwa aplikasi tersebut mungkin akan dihapus dalam waktu dekat.

Untuk paket yang tidak lagi memberikan nilai tambah, atau yang memiliki alternatif yang layak di Kali, kami dapat menghapusnya kapan saja.

Bagaimana Anda dapat berkontribusi

Jika salah satu aplikasi favorit Anda muncul di antara paket Kali yang terpengaruh atau di antara paket yang terpengaruh dari tim keamanan pkg Debian, maka Anda harus meninjau situasinya dan mungkin membantu pengembang hulu dengan mengirimkan permintaan tarik dengan menambahkan dukungan Python 3. Meskipun upstream tidak terlalu aktif, kami dapat menggabungkan perubahan Anda di Kali dan menyimpan paket lebih lama hingga upstream aktif kembali.

Jika Anda tidak memiliki keterampilan pengkodean yang diperlukan untuk ini, Anda masih dapat mencoba menemukan fork/patch Python 3 yang ditulis oleh orang lain dan menunjukkannya kepada kami dalam masalah GitLab yang sesuai atau laporan bug Debian. Atau, beri tahu pengembang betapa Anda menyukai aplikasi mereka dan bahwa Anda ingin terus menggunakannya, jadi mereka harus melakukan porting ke Python 3.


Linux
  1. Bagaimana cara mendapatkan PYTHONPATH di shell?

  2. Bagaimana cara menautkan Perpustakaan C Runtime dengan 'ld'?

  3. Bagaimana cara menginstal PhantomJS untuk digunakan dengan Python Selenium di Raspberry Pi?

  1. Cara Dockerize Aplikasi Python Dengan Miniconda

  2. Bagaimana saya bisa mengatur 'backend' di matplotlib dengan Python?

  3. Cara membunuh skrip python dengan skrip bash

  1. Cara mengaudit izin dengan perintah find

  2. Cara mendapatkan ukuran file tar.gz dalam (MB) dengan python

  3. Bagaimana cara memeriksa sistem operasi dengan Python?