Documentation for a newer release is available. View Latest

Alterações no Fedora 43 para desenvolvedores

Python 3.14

Os pacotes Python no Fedora foram atualizados da versão 3.13 para a versão 3.14, a versão principal mais recente da linguagem de programação Python.

Para mais informações, consulte o documento upstream "What’s new", e especialmente a seção Porting to Python 3.14.

python-async-timeout agora está descontinuado

O pacote python-async-timeout foi descontinuado no Fedora. Recomenda-se que os desenvolvedores migrem para asyncio.Timeout no Python 3.11+ para melhor compatibilidade com a biblioteca padrão.

python-nose descontinuado

O pacote python3-nose foi descontinuado devido à falta de desenvolvimento upstream a longo prazo.

Atualização do conjunto de ferramentas GNU

O conjunto de ferramentas GNU no Fedora 43 foi atualizado para:

  • Compilador GNU C (gcc) 15.2

  • Utilitários Binários GNU (binutils) 2.45

  • Biblioteca C GNU (glibc) 2.42

  • Depurador GNU (gdb) 16.3

Veja também as notas de lançamento do projeto original: GCC, Binutils, notícias do GLibC e notícias do GDB.

Linker Gold descontinuado

O linker Gold foi descontinuado e será removido completamente do Fedora devido à interrupção do desenvolvimento upstream. Três outros linkers ainda estão disponíveis para desenvolvedores (ld.bfd, lld e mold), portanto, ainda há muitas opções.

Golang 1.25

A versão estável mais recente da linguagem de programação Go já está disponível no Fedora 43.

Para obter mais informações, consulte as notas de lançamento upstream.

Os pacotes Golang agora são incluídos por padrão

O Fedora agora usa dependências incluídas como padrão e opção preferencial ao compilar aplicativos Golang, em vez de depender de dependências pré-empacotadas. Isso inclui a adoção de Go Vendor Tools, um novo conjunto de ferramentas para lidar com a verificação de licenças, gerar uma expressão SPDX cumulativa para todas as dependências e criar arquivos reproduzíveis. Essa mudança visa simplificar o empacotamento de aplicativos Golang no Fedora. Os usuários não devem notar nenhuma alteração no comportamento.

LLVM 21

Os subprojetos do LLVM no Fedora foram atualizados para a versão 21. Houve uma alteração na versão do soname para as bibliotecas do LLVM e um pacote de compatibilidade llvm20 foi adicionado para garantir que os pacotes que atualmente dependem das bibliotecas clang e llvm versão 20 continuem funcionando.

Outras mudanças notáveis incluem:

  • Compilação com PGO: O pacote llvm agora é compilado com a otimização PGO, portanto, os usuários de suas bibliotecas e binários devem observar melhorias de desempenho. Por exemplo, o clang deve compilar arquivos C e C++ visivelmente mais rápido.

  • Desfazimento das alterações de prefixo do LLVM 20: Essa alteração foi feita no rawhide e no f42 após o lançamento do f42, portanto, já foi concluída. Consulte https://pagure.io/fesco/issue/3414.

Mais informações estão disponíveis nas notas de lançamento upstream.

Ruby on Rails 8.0

O conjunto de ferramentas Ruby on Rails foi atualizado da versão 7.0 no Fedora 42 para a versão 8.0 no Fedora 43. As mudanças notáveis incluem:

  • Um conjunto de três novos adaptadores com suporte a banco de dados, chamados Solid Cable, Solid Cache e Solid Queue (ainda não incluídos no Fedora).

  • SQLite pronto para produção.

  • Sprockets substituído por Propshaft.

  • Geração das informações básicas de autenticação.

Consulte as notas de lançamento upstream para mais informações.

Tomcat 10.1

O servidor de aplicativos Tomcat foi atualizado para a versão 10.1 no Fedora 43.

Alterações nesta versão incluem:

  • Apache Tomcat 10.1.x requer Java 11 ou posterior.

  • Specification API Breaking Changes: There is a significant breaking change between Tomcat 9.0.x and Tomcat 10.1.x. The Java package used by the specification APIs has changed from javax.* to jakarta.*. It will be necessary to recompile web applications against the new APIs. See the Change page on the Fedora Wiki for details.

  • Other Specification API changes:

    • Jakarta Servlet 6.0 API: The Java package has changed from javax.servlet to jakarta.servlet. A new method, Cookie.setAttribute(String name, String value) has been added. The process for decoding and normalizing URIs has been clarified. New methods and classes have been added to provide access to unique identifiers for the current request and/or associated connection.

    • Jakarta Server Pages 3.1 API: The Java package has changed from javax.servlet.jsp to jakarta.servlet.jsp. Added an option to raise a PropertyNotFoundException when an EL expression contains an unknown identifier.

    • Jakarta Expression Language 5.0: The Java package has changed from javax.el to jakarta.el. The EL API now uses generics where appropriate. The deprecated MethodExpression.isParmetersProvided() method has been removed from the API.

    • Jakarta WebSocket 2.1: The Java package has changed from javax.websocket to jakarta.websocket. The packaging of the API JARs has changed to remove duplicate classes. The server API now has a dependency on the client API JAR.

    • Jakarta Authentication 3.0: The Java package has changed from javax.security.auth.message to jakarta.security.auth.message.

  • Internal Tomcat APIs: Whilst the Tomcat 10 internal API is broadly compatible with Tomcat 9, there have been many changes at the detail level and they are not binary compatible. Developers of custom components that interact with Tomcat’s internals should review the JavaDoc for the relevant API.

  • web.xml defaults: conf/web.xml sets the default request and response character encoding to UTF-8.

  • Session management: Session persistence on restart has been disabled by default. It may be re-enabled globally in conf/context.xml or per web application.

  • HTTP/2: The configuration settings that were duplicated between the HTTP/1.1 and HTTP/2 connectors have been removed from the HTTP/2 connector which will now inherit them from the associated HTTP/1.1 connector.

  • Logging: The logging implementation now only creates log files once there is something to write to the log files.

  • Access Log Patterns: To align with httpd, the %D pattern now logs request time in microseconds rather than milliseconds. To log request time in milliseconds, use %{ms}T.

See the upstream changelog for additional information.

Haskell GHC 9.8 and Stackage LTS 23

For Fedora 42, the main GHC Haskell compiler package have been from version 9.6.6 to the latest stable 9.8.4 release (rebasing the ghc package from the ghc9.8 package). Along with this, Haskell packages in Stackage (the stable Haskell source package distribution) have been updated from the versions in LTS 22 to latest LTS 23 release. Haskell packages not in Stackage have been updated to the latest appropriate version in the upstream Hackage package repository.

For full information about this release, see the upstream release notes and migration guide.

The Hare programming language

Fedora 43 introduces packages for Hare, a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.

The Hare toolchain on Fedora includes:

  • hare (build driver)

  • harec (compiler front-end, already available in Fedora)

  • qbe (compiler back-end, already available in Fedora)

  • binutils (for assembly and static linking)

  • gcc (for dynamic linking, it also works with other C compilers)

The Hare tool chain can target the x86_64, aarch64, and riscv64 architectures, and is configured to rely by default on gcc-<arch>-linux-gnu and binutils-<arch>-linux-gnu for cross compilation.

The hare source package includes the following:

  • hare (build driver, haredoc utility, and manuals)

  • hare-stdlib (standard library)

  • hare-rpm-macros (packaging utilities)

In addition, a hare-update package is provided to assist Hare developers dealing with breaking changes when a new Hare release is available, until the language and its standard library become stable.

For more information about Hare, see the upstream documentation and specification. A tutorial is also available on the official website.

Java

Release 43 makes java-25-openjdk available in Fedora, the latest LTS version released Sept. 2025.

The java-21-openjdk is still available in F43 and will continue to be in F44. It will be removed in F45.

In Fedora 43 both openjdk versions provide "java" equally. There is no "system" or "default" JDK anymore. Users can (and should) choose which version to use, and can mix and match Java versions for development and runtime. Several instances of a software, e.g. Tomcat, can execute with different Java versions. Conventionally, the most recent version will likely become the systemwide used default one, but there is no guarantee. Use alternatives --config java to select the version to be used systemwide by default.

Upgrading from release 42 with installed java-21-openjdk, just updates Java 21 to release 43. The upgrade does not automatically update to Java 25. The administrator must install these separately.

For more information about Java 25, see the JDK 25 Features and Release notes.

For technical details of this change, see the Change page.

TBB2022.2.0

The tbb package contains Intel’s oneAPI Threading Building Blocks, a library for breaking computations into parralel tasks. In Fedora 43, this package has been upgraded from version 2022.0.0 to version 2022.2.0.

Due to an ABI change, non-Fedora packages that use tbb will likely need to be rebuilt. Version 2022.2.0 is API-compatible with version 2022.0.0, so a simple rebuild should suffice.

Perl 5.42

Fedora 43 provides Perl 5.42.0, a new stable release that focuses on improving performance, refining existing features, and adding new experimental capabilities.

Core enhancements

  • New any and all Operators: Two new experimental keywords, any and all, are introduced for more efficient list processing. They’re designed to short-circuit, so they stop processing the list as soon as the result is known. They’re compiled directly into the core, making them faster than their counterparts from the List::Util module.

  • Lexical Methods: You can now declare private, lexical methods using the my method syntax. The new ->& operator allows you to call these methods, ensuring they’re only visible within their defined scope.

  • source::encoding Pragma: A new pragma is available to explicitly declare whether a source file is encoded in ASCII or UTF-8. This helps to catch encoding-related errors early during development.

  • Expanded CORE:: Namespace: Built-in functions like chdir and rand can now be safely used as first-class subroutine references. This gives you more flexibility when passing core functions as arguments.

  • :writer Field Attribute: When defining classes with use feature 'class', you can now use the :writer attribute on scalar fields to automatically generate setter accessors.

Reconsidered features

  • smartmatch and switch Reinstated: The switch and smartmatch (~~) features, which were previously scheduled for removal, have been granted an indefinite reprieve. They are now available, but you must enable them with a specific feature flag.

  • Apostrophe as Package Separator: The legacy use of a single apostrophe (`) as a package separator has been reinstated by default after community feedback. You can still control this behavior with a feature flag.

    • Other updates**

  • This release also includes performance improvements to the tr/// operator, updates to Unicode 16.0 support, and various bug fixes related to locale handling, goto, and eval.

For more detailed information, refer to the official perldelta for 5.42.0 documentation.

Maven 4

Maven 4 is a new major version of Maven after 15 years of Maven 3. It brings many improvements, but also breaking changes. Fedora 43 provides Maven 4 as the maven4 package, making it installable in parallel to Maven 3.

See the What’s new in Maven 4? post and the upstream docs for more details.

Idris 2

Idris 2 is a dependently typed practical functional programming language, now available in Fedora 43. It is a complete rewrite of Idris 1 (which was written in Haskell and is now deprecated) on top of a Scheme compiler.

For details, see the upstream documentation, including a list of changes compared to Idris 1 and an Idris 2 tutorial.

Rust

async-std is now deprecated

The async-std Rust crate is no longer maintained and is now considered deprecated in favor of the smol crate.

gtk3-rs, gtk-rs-core v0.18, and gtk4-rs v0.7 are now removed

The Rust bindings for GTK3 (and related libraries) were marked as deprecated in Fedora 43 due to lack of upstream maintenance. In Fedora 43, they are completely removed.

Debuginfod IMA verification

The debuginfod client tools used to auto-download debuginfo & source code into tools like gdb now cryptographically verify the integrity of the downloaded files from the Fedora debuginfod server. This setting is appropriate for normal Fedora koji-signed release/update RPMs. However if your workflow also involves unsigned flatpak RPMs (%dist ".fc#app#"), then you may need to manually remove ima:enforcing from your $DEBUGINFOD_URLS.

Free Pascal cross-compilers

Fedora Linux 43 ships with cross-compilation support for the Free Pascal Compiler, through several new packages. Users interested in cross-compiling for MS Windows should install the fpc-units-x86_64-win64 or fpc-units-i386-win32 packages. For cross-compiling for Linux to other architectures, install the appropraite fpc-units-$ARCH-linux package. Note that you may need to perform some extra steps if you want your cross-compiled Pascal programs to link against external libraries.