Perubahan pada Fedora 43 untuk Pengembang

Python 3.14

Stapel Python di Fedora telah diperbarui dari versi 3.13 ke versi 3.14, rilis utama terbaru dari bahasa pemrograman Python.

Untuk informasi lebih lanjut, lihat dokumen upstream "What’s new" pada hulu, dan khususnya bagian Porting ke Python 3.14.

python-async-timeout sekarang sudah usang

Paket python-async-timeout telah dihentikan penggunaannya di Fedora. Pengembang disarankan untuk beralih ke asyncio.Timeout di Python 3.11+ untuk kompatibilitas yang lebih baik dengan pustaka standar.

python-nose telah dihentikan

Paket python3-nose telah dihentikan karena kurangnya pengembangan hulu dalam jangka panjang.

Pembaruan rantai alat GNU

Rangkaian alat GNU di Fedora 43 telah diperbarui menjadi:

  • Compiler C GNU (gcc) 15.2

  • Utilitas Biner GNU (binutils) 2.45

  • Pustaka C GNU (glibc) 2.42

  • GNU Debugger (gdb) 16.3

Lihat juga catatan rilis hulu untuk GCC, Binutils, GLibC NEWS, dan GDB NEWS.

Gold linker sudah tidak digunakan lagi

Gold linker telah dihentikan penggunaannya dan akan dihapus sepenuhnya dari Fedora karena pengembangan hulu telah dihentikan. Tiga penghubung lain masih tersedia bagi pengembang (ld.bfd, lld, dan mold), sehingga masih ada banyak pilihan.

Golang 1.25

Rilis stabil terbaru dari bahasa pemrograman Go kini tersedia di Fedora 43.

Untuk informasi lebih lanjut, lihat catatan rilis hulu.

Paket-paket Golang sekarang menggunakan vendored secara default

Fedora kini menggunakan dependensi yang disediakan oleh vendor sebagai opsi default dan disarankan saat membangun aplikasi Golang, daripada mengandalkan dependensi yang sudah dikemas sebelumnya. Hal ini mencakup adopsi Go Vendor Tools, seperangkat alat baru untuk menangani pemindaian lisensi, menghasilkan ekspresi SPDX kumulatif untuk semua dependensi, dan membuat arsip vendor yang dapat direproduksi. Perubahan ini bertujuan untuk menyederhanakan pengemasan aplikasi Golang di Fedora. Pengguna tidak akan melihat perubahan perilaku apa pun.

LLVM 21

Proyek-proyek turunan LLVM di Fedora telah diperbarui ke versi 21. Telah terjadi perubahan versi soname untuk pustaka LLVM, dan paket kompatibilitas llvm20 telah ditambahkan untuk memastikan bahwa paket-paket yang saat ini bergantung pada pustaka clang dan llvm versi 20 tetap berfungsi.

Perubahan lain yang menonjol meliputi:

  • Dibangun dengan PGO: Paket llvm kini dibangun dengan optimasi PGO, sehingga pengguna pustakanya dan binernya seharusnya melihat peningkatan kinerja. Misalnya, clang seharusnya lebih cepat secara signifikan saat mengompilasi berkas C dan C++.

  • Membatalkan perubahan prefiks dari LLVM 20: Perubahan ini telah dilakukan di rawhide dan f42 setelah rilis f42, jadi sudah selesai. Lihat https://pagure.io/fesco/issue/3414.

Informasi lebih lanjut tersedia di catatan rilis hulu.

Ruby on Rails 8.0

Stapel Ruby on Rails telah diperbarui dari versi 7.0 di Fedora 42 menjadi versi 8.0 di Fedora 43. Perubahan yang menonjol meliputi:

  • Tiga adaptor baru yang didukung oleh basis data bernama Solid Cable, Solid Cache, dan Solid Queue (belum termasuk dalam Fedora saat ini).

  • SQLite siap untuk produksi.

  • Sprockets diganti dengan Propshaft.

  • Membuat dasar-dasar otentikasi.

Lihat catatan rilis hulu untuk informasi lebih lanjut.

Tomcat 10.1

Server aplikasi Tomcat telah diperbarui ke versi 10.1 di Fedora 43.

Perubahan dalam versi ini meliputi:

  • Apache Tomcat 10.1.x memerlukan Java 11 atau versi yang lebih baru.

  • Perubahan Spesifikasi API yang Berdampak Besar: Terdapat perubahan signifikan antara Tomcat 9.0.x dan Tomcat 10.1.x. Paket Java yang digunakan oleh API spesifikasi telah berubah dari javax.* menjadi jakarta.*. Aplikasi web perlu dikompilasi ulang menggunakan API baru. Lihat halaman perubahan di Fedora Wiki untuk detailnya.

  • Perubahan spesifikasi API lainnya:

    • Jakarta Servlet 6.0 API: Paket Java telah diubah dari javax.servlet menjadi jakarta.servlet. Metode baru, Cookie.setAttribute(String name, String value), telah ditambahkan. Proses untuk mendekode dan menormalisasi URI telah dijelaskan dengan lebih jelas. Metode dan kelas baru telah ditambahkan untuk memberikan akses ke identifikasi unik untuk permintaan saat ini dan/atau koneksi yang terkait.

    • Jakarta Server Pages 3.1 API: Paket Java telah diubah dari javax.servlet.jsp menjadi jakarta.servlet.jsp. Ditambahkan opsi untuk memicu PropertyNotFoundException ketika ekspresi EL mengandung identifikasi yang tidak dikenal.

    • Jakarta Expression Language 5.0: Paket Java telah diubah dari javax.el menjadi jakarta.el. Antarmuka Pemrograman Aplikasi (API) EL kini menggunakan generik di tempat yang sesuai. Metode MethodExpression.isParmetersProvided() yang sudah tidak direkomendasikan telah dihapus dari API.

    • Jakarta WebSocket 2.1: Paket Java telah diubah dari javax.websocket menjadi jakarta.websocket. Pengemasan berkas JAR API telah diubah untuk menghilangkan kelas-kelas duplikat. API server kini bergantung pada berkas JAR API klien.

    • Jakarta Authentication 3.0: Paket Java telah diubah dari javax.security.auth.message menjadi jakarta.security.auth.message.

  • Antarmuka Pemrograman Aplikasi (API) Internal Tomcat: Meskipun API internal Tomcat 10 secara umum kompatibel dengan Tomcat 9, terdapat banyak perubahan pada tingkat detail dan API ini tidak kompatibel secara biner. Pengembang komponen kustom yang berinteraksi dengan bagian internal Tomcat disarankan untuk meninjau dokumentasi JavaDoc untuk API yang relevan.

  • Pengaturan default web.xml: Berkas conf/web.xml menetapkan pengkodean karakter default untuk permintaan dan respons menjadi UTF-8.

  • Pengelolaan sesi: Persisten sesi saat restart telah dinonaktifkan secara default. Fitur ini dapat diaktifkan kembali secara global di conf/context.xml atau per aplikasi web.

  • HTTP/2: Pengaturan konfigurasi yang sebelumnya diduplikasi antara konektor HTTP/1.1 dan HTTP/2 telah dihapus dari konektor HTTP/2, yang kini akan mewarisi pengaturan tersebut dari konektor HTTP/1.1 yang terkait.

  • Pencatatan: Implementasi pencatatan sekarang hanya membuat berkas log setelah ada data yang perlu ditulis ke berkas log.

  • Pola Log Akses: Untuk menyesuaikan dengan httpd, pola %D sekarang mencatat waktu permintaan dalam mikrodetik daripada milidetik. Untuk mencatat waktu permintaan dalam milidetik, gunakan %{ms}T.

Lihat catatan perubahan hulu untuk informasi tambahan.

Haskell GHC 9.8 dan Stackage LTS 23

Untuk Fedora 42, paket compiler Haskell GHC utama telah diperbarui dari versi 9.6.6 ke versi stabil terbaru 9.8.4 (mengganti paket ghc dari paket ghc9.8). Selain itu, paket Haskell di Stackage (distribusi paket sumber Haskell yang stabil) telah diperbarui dari versi di LTS 22 ke rilis terbaru di LTS 23. Paket Haskell yang tidak ada di Stackage telah diperbarui ke versi terbaru yang sesuai di repositori paket hulu Hackage.

Untuk informasi lengkap tentang rilis ini, lihat catatan rilis hulu dan panduan migrasi.

Bahasa pemrograman Hare

Fedora 43 memperkenalkan paket-paket untuk Hare, bahasa pemrograman sistem yang dirancang untuk sederhana, stabil, dan tangguh. Hare menggunakan sistem tipe statis, pengelolaan memori manual, dan runtime minimal. Bahasa ini sangat cocok untuk mengembangkan sistem operasi, alat sistem, compiler, perangkat lunak jaringan, dan tugas-tugas tingkat rendah berkecepatan tinggi lainnya.

Rangkaian alat Hare di Fedora mencakup:

  • hare (driver build)

  • harec (front-end compiler, sudah tersedia di Fedora)

  • qbe (bagian belakang compiler, sudah tersedia di Fedora)

  • binutils (untuk perakitan dan pengikatan statis)

  • gcc (untuk pengikatan dinamis, juga berfungsi dengan compiler C lainnya)

Rantai alat Hare dapat menargetkan arsitektur x86_64, aarch64, dan riscv64, dan secara default dikonfigurasi untuk mengandalkan gcc-<arch>-linux-gnu dan binutils-<arch>-linux-gnu untuk kompilasi silang.

Paket sumber hare mencakup hal-hal berikut:

  • hare (driver build, utilitas haredoc, dan manual)

  • hare-stdlib (pustaka standar)

  • hare-rpm-macros (utilitas pengemasan)

Selain itu, paket hare-update disediakan untuk membantu pengembang Hare yang menghadapi perubahan yang memengaruhi kompatibilitas saat rilis baru Hare tersedia, hingga bahasa pemrograman dan pustakanya menjadi stabil.

Untuk informasi lebih lanjut tentang Hare, lihat dokumentasi hulu dan spesifikasi. Sebuah tutorial juga tersedia di situs web resmi.

Java

Rilis 43 membuat java-25-openjdk tersedia di Fedora, versi LTS terbaru yang dirilis pada September 2025.

java-21-openjdk masih tersedia di F43 dan akan tetap tersedia di F44. Paket ini akan dihapus di F45.

Di Fedora 43, kedua versi OpenJDK menyediakan “java” secara setara. Tidak ada lagi ‘system’ atau “default” JDK. Pengguna dapat (dan sebaiknya) memilih versi mana yang akan digunakan, serta dapat mencampur dan mencocokkan versi Java untuk pengembangan dan runtime. Beberapa instance perangkat lunak, misalnya Tomcat, dapat dijalankan dengan versi Java yang berbeda. Secara konvensional, versi terbaru kemungkinan besar akan menjadi versi default yang digunakan secara sistem, tetapi tidak ada jaminan. Gunakan perintah alternatives --config java untuk memilih versi yang akan digunakan secara default di seluruh sistem.

Peningkatan dari rilis 42 dengan Java-21-OpenJDK yang terpasang hanya akan memperbarui Java 21 ke rilis 43. Peningkatan ini tidak secara otomatis memperbarui ke Java 25. Administrator harus menginstal Java 25 secara terpisah.

Untuk informasi lebih lanjut tentang Java 25, lihat Fitur dan Catatan Rilis JDK 25.

Untuk detail teknis perubahan ini, lihat Halaman Perubahan.

TBB2022.2.0

Paket tbb berisi Intel’s oneAPI Threading Building Blocks, sebuah pustaka untuk membagi perhitungan menjadi tugas-tugas paralel. Pada Fedora 43, paket ini telah diperbarui dari versi 2022.0.0 menjadi versi 2022.2.0.

Karena perubahan ABI, paket-paket non-Fedora yang menggunakan tbb kemungkinan perlu dibangun ulang. Versi 2022.2.0 kompatibel dengan API versi 2022.0.0, jadi pembaruan sederhana seharusnya cukup.

Untuk informasi lebih lanjut, lihat catatan rilis hulu untuk TBB 2022.1.0 dan TBB 2022.2.0.

Perl 5.42

Fedora 43 menyediakan Perl 5.42.0, rilis stabil terbaru yang berfokus pada peningkatan kinerja, penyempurnaan fitur yang sudah ada, dan penambahan kemampuan eksperimental baru.

Peningkatan inti

  • Operator any dan all Baru: Dua kata kunci eksperimental baru, any dan all, diperkenalkan untuk pemrosesan daftar yang lebih efisien. Operator ini dirancang untuk menghentikan pemrosesan daftar begitu hasilnya diketahui. Mereka dikompilasi langsung ke dalam inti, sehingga lebih cepat daripada versi dari modul List::Util.

  • Metode Lexikal: Anda kini dapat mendeklarasikan metode lexikal pribadi menggunakan sintaks my method. Operator baru ->& memungkinkan Anda memanggil metode-metode ini, memastikan bahwa metode-metode tersebut hanya terlihat dalam lingkup di mana mereka didefinisikan.

  • source::encoding Pragma: Pragma baru ini memungkinkan Anda untuk secara eksplisit menyatakan apakah berkas sumber dienkode dalam ASCII atau UTF-8. Hal ini membantu mendeteksi kesalahan terkait enkoding sejak dini selama proses pengembangan.

  • Penerapan Ruang Nama CORE:: yang Diperluas: Fungsi bawaan seperti chdir dan rand kini dapat digunakan dengan aman sebagai referensi subrutin tingkat pertama. Hal ini memberikan fleksibilitas lebih saat meneruskan fungsi inti sebagai argumen.

  • Atribut :writer: Saat mendefinisikan kelas dengan use feature 'class', Anda kini dapat menggunakan atribut :writer pada bidang skalar untuk secara otomatis menghasilkan aksesor setter.

Fitur yang dipertimbangkan ulang

  • smartmatch dan switch Dipulihkan: Fitur switch dan smartmatch (~~), yang sebelumnya dijadwalkan untuk dihapus, kini diberikan penangguhan tanpa batas waktu. Keduanya kini tersedia, namun Anda harus mengaktifkannya dengan bendera fitur khusus.

  • Penggunaan Apostrof sebagai Pemisah Paket: Penggunaan apostrof tunggal (`) sebagai pemisah paket yang telah menjadi tradisi kini diaktifkan kembali secara default berdasarkan masukan dari komunitas. Anda masih dapat mengontrol perilaku ini melalui fitur flag.

    • Pembaruan lainnya**

  • Rilis ini juga mencakup peningkatan kinerja pada operator tr///, pembaruan dukungan Unicode 16.0, dan berbagai perbaikan bug terkait penanganan locale, goto, dan eval.

Untuk informasi lebih lanjut, silakan merujuk ke dokumentasi perldelta untuk 5.42.0 resminya.

Maven 4

Maven 4 adalah versi utama baru Maven setelah 15 tahun sejak Maven 3. Versi ini membawa banyak perbaikan, namun juga perubahan yang dapat menyebabkan ketidakkompatibilitas. Fedora 43 menyediakan Maven 4 sebagai paket maven4, sehingga dapat diinstal secara paralel dengan Maven 3.

Lihat Apa yang baru di Maven 4? dan dokumen hulu untuk detail lebih lanjut.

Idris 2

Idris 2 adalah bahasa pemrograman fungsional praktis yang bertipe bergantung, kini tersedia di Fedora 43. Ini merupakan penulisan ulang lengkap dari Idris 1 (yang ditulis dalam Haskell dan kini sudah tidak direkomendasikan) di atas compiler Scheme.

Untuk detailnya, lihat dokumentasi hulu, termasuk daftar perubahan dibandingkan dengan Idris 1 dan tutorial Idris 2.

Rust

async-std sekarang sudah usang

Kumpulan pustaka async-std dalam Rust tidak lagi dipelihara dan kini dianggap usang, digantikan oleh kumpulan pustaka smol.

gtk3-rs, gtk-rs-core v0.18, dan gtk4-rs v0.7 kini telah dihapus

Pengikatan Rust untuk GTK3 (dan pustaka terkait) telah ditandai sebagai usang di Fedora 43 karena kurangnya pemeliharaan dari hulu. Di Fedora 43, pengikatan tersebut telah dihapus sepenuhnya.

Verifikasi Debuginfod IMA

Alat klien debuginfod yang digunakan untuk mengunduh otomatis debuginfo dan kode sumber ke alat seperti gdb kini secara kriptografis memverifikasi integritas file yang diunduh dari server debuginfod Fedora. Pengaturan ini sesuai untuk paket RPM rilis/pembaruan Fedora yang ditandatangani oleh Koji. Namun, jika alur kerja Anda juga melibatkan paket RPM Flatpak yang tidak ditandatangani (%dist ".fc#app#"), Anda mungkin perlu menghapus ima:enforcing secara manual dari $DEBUGINFOD_URLS.

Compiler silang Pascal bebas

Fedora Linux 43 dilengkapi dengan dukungan kompilasi silang untuk Free Pascal Compiler, melalui beberapa paket baru. Pengguna yang tertarik untuk melakukan kompilasi silang untuk MS Windows disarankan untuk menginstal paket fpc-units-x86_64-win64 atau fpc-units-i386-win32 packages. Untuk kompilasi silang dari Linux ke arsitektur lain, instal paket fpc-units-$ARCH-linux yang sesuai. Perhatikan bahwa Anda mungkin perlu melakukan beberapa langkah tambahan jika ingin program Pascal yang dikompilasi silang terhubung dengan pustaka eksternal.