Cambios en Fedora 42 para Desarrolladores

El Marco de Verificación en Tiempo de Ejecución Copilot

Fedora 42 proporciona el Sistema de Verificación de Copilot de Lenguaje y Tiempo de Ejecución es un marco de verificación en tiempo de ejecución basado en flujo para generar código C en tiempo real estricto, desarrollado por la NASA. Permite a los usuarios escribir programas concisos en una manera simple y potente utilizando una aproximación basada en flujo.

Los programas se pueden interpretar para realizar pruebas o traducir código C99 para incorporarlo a un proyecto, o como una aplicación independiente. El backend C99 nos asegura que la salida sea constante en memoria y tiempo, lo que lo hace adecuado para sistemas con requisitos estrictos de tiempo real.

Puede comenzar instalando el paquete ghc-copilot. Para más información, consulte la documentación actual seguida:

Ruby 3.4

La última liberación estable de este lenguaje de programación ahora está disponible en Fedora 42. Algunos cambios notables incluyen:

  • El intérprete por defecto ha cambiado desde parse.y a Prism para mejorar el mantenimiento, tolerancia a errores, portabilidad, y rendimiento.

  • El compilador YJIT ahora ofrece mejor rendimiento a lo largo de muchos puntos de referencia en ambas arquitecturas x86-64 y arm64.

  • Las características de la biblioteca del zócalo Happy Eyeballs Versión 2 para proporcionar conexiones de red eficiente y confiable para entornos modernos de Internet.

  • Aprobar bloque no se permite más en el índice.

  • El nombre del nivel cima ::Ruby ahora está reservado.

  • rb_newobj y rb_newobj_of (y correspondiendo a macros RB_NEWOBJ, RB_NEWOBJ_OF, NEWOBJ, NEWOBJ_OF) fueron retirados.

  • Se retiró la función rb_gc_force_recycle obsoleta.

Para más detalles, consulte las notas de publicación última.

PHP 8.4

La última liberación estable de este lenguaje de programación ahora está disponible en Fedora 42. Los cambios notables incluyen:

  • Ganchos de propiedad para soporte de propiedades calculadas que puedas ser nativamente entendidas por los IDE y utilidades estáticas sin la necesitad de comentarios de bloque de código (docblock).

  • El ámbito para escribir a una propiedad ahora puede ser controlador independientemente desde el ámbito para leer la propiedad.

  • El atributo #[\Deprecated].

  • Funciones nuevas array_find(), array_find_key(), array_any(), y array_all()

  • Subclaces nuevas Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, y Pdo\Sqlite

Para más detalles, consulte lanota de publicación última.

Actualización de GNU Toolchain

Las herramientas encadenadas de GNU en Fedora 41 han sido actualizadas a:

  • GNU C Compiler (gcc) 15

  • GNU Binary Utilities (binutils) 2.44

  • GNU C Library (glibc) 2.41

  • GNU Debugger (gdb) 15+

Además consulte la última nota de publicación para GCC, Binutils, GLibC News, y GDB NEWS.

LLVM 20

Sub-proyectos LLVM en Fedora han sido actualizados a la versión 20.

Hay un cambio de versión soname para las bibliotecas llvm, y un paquete compatible llvm19 añadido para asegurar que los paquetes que dependan actualmente en las bibliotecas clang y llvm en la versión 19 continúen a funcionar.

Otros cambios notables:

  • Cambios de Prefijos a Instalar: El prefijo de instalación para todos los paquetes llvm nuevos serán /usr/lib64/llvm$VERSION/ en vez de /usr/. Serán enlaces simbólicos para cada binario y biblioteca añadida a /usr/ la cual apunta al correspondiente binario en /usr/lib64/llvm$VERSION/. El logro de este cambio es para reducir las diferencias entre las versiones compatibles y no compatibles tales que sea más fácil para paquetes que dependan en llvm intercambiar entre los dos.

  • Unir más paquetes en llvm: en Fedora 41, unimos los paquetes clang, libomp, compiler-rt, lld, python-lit, y lldb al SRPM llvm. Para Fedora 42, además añadimos la unión de llvm-bolt, polly, libcxx, y mlir al SRPM llvm.

Haskell GHC 9.8 y Stackage LTS 23

Para Fedora 42, el paquete de compilador pincipal GHC Haskell ha sido desde la versión 9.6.6 hasta la última liberación 9.8.4 más estable (superando el paquete ghc desde el paquete ghc9.8). Por lo tanto con esto, los paquetes Haskell en Stackage (la distribución del paquete fuente estable de Haskell) ha sido actualizada desde las versiones LTS 22 a las últimas liberaciones de LTS 23. Los paquetes Haskell no dentro de Stackage han sido actualizados a la versión apropiada más última en la liberación del repositorio de paquete Hackage.

Para toda la información sobre esta liberación, consulte las notas de liberación última y la guía de migración.

Golang 1.24

La última liberación estable del lenguaje de programación Go ahora está disponible en Fedora 42. Incluye los cambios notables:

  • Módulos Go ahora pueden trazar dependencias ejecutables utilizando directivas tool dentro de go.mod.

  • El indicador -tool nuevo para go obtiene causa una directiva de herramienta para ser añadida al módulo actual para paquetes nombrados dentro de adición de directivas que requieren.

  • El meta-patrón de tool nuevo se refiere a todas las herramientas dentro del módulo actual. Esto puede ser utilizado para modernizarlos todo con go get tool o para instalarlos en su directorio GOBIN con`go install tool`.

  • Ejecutables creados por go run y el comportamiento nuevo de go tool ahora están cacheados dentro de la caché de compilación Go. Esto crea ejecuciones repetidas más rápidas en el gasto de crear la caché más grande.

  • Las instrucciones go build y go install ahora aceptan un indicador -json que reporta salida de compilación y fallos como salida JSON estructurada en salida estándar. Para detalles del formato devuelto, consulte go help buildjson.

  • Además, ahora go test -json informa salida de compilador y fallos en JSON, empaquetados con resultado de prueba en JSON. Esto son distinguidos por nuevos tipos de Action, pero si causan problemas en un sistema de integración de pruebas, puede revertir al texto de salida de compilación con parámetros GODEBUG gotestjsonbuildtext=1.

  • La variable del entorno GOAUTH nuevo proporciona una manera flexible para autenticar módulo privado recuperados. Consulte go help goauth para más información.

  • La instrucción go build ahora establece la versión del módulo principal en el binario compilado basado en el sistema de control de versión de etiquetado y/o efecto. Un sufijo +dirty será adjuntado si hay cambios no efectuados. Utilice el indicador -buildvcs=false para omitir información de control de versión desde el binario.

  • Los parámetros nuevos GODEBUG toolchaintrace=1 pueden ser utilizados para traza del proceso de selección de herramientas encadenadas de instrucciones go.

Para más información, consulte notas de liberación última.

Tcl/Tk 9

Tcl (Tool Command Language) y Tk (TCL graphical toolkit) han sido mejorados a la versión 9 en Fedora 42. Hay algunas incompatibilidades mayores y es irrealístico portar todas los paquetes dependientes, por tanto han sido proporcionadas compatibilidades de paquetes Tcp/Tk 8 (tcl8 y tk8).

Las características nuevas incluyen:

  • Capacidad de 64-bit: Valores de datos más grandes que 2GB.

  • Unicode y Encodificaciones: intervalo de punto de código completo, codificando perfiles para E/S de gobierno, y más.

  • Acceso a capacidades de SO: notificaciones, impresión y bandeja de sistemas.

  • Gráficos Vectoriales Escalables: soporte parcial en imágenes, uso extensivo para activar widget escalable y apariencias de tema.

  • Características de Plataforma y Convenciones: puede mejorar, incluyendo soporte de gestos de dos dedos donde sea disponible.

Para más información sobre esta liberación, consulte las motas de liberación superior.

Generador de Dependencia de extensión de GNOME Shell

Fedora 42 proporciona un generador de dependencia de extensión de GNOME Shell, empaquetadas como gnome-shell-extension-rpm-macros.

Las extensiones de GNOME Shell traen un metadata.json que lista las versiones mantenidas de GNOME Shell. Estos datos previamente fueron utilizadas en Fedora cuando empaqueten una extensión, a no ser que el mantenedor del paquete explícitamente transfirió esta información al spec; y entonces conserva hasta la fecha.

Al comenzar con Fedora 42, el RPM binario declara automáticamente sus dependencias en las versiones correctas de GNOME Shell, asegurando que descubrimos tras recompilación masiva si alguna extensión necesita ser actualizada debido a su FTI. Esto resulta en una experiencia de usuario mejorada para los usuarios de Fedora, porque las extensiones que instalen ahora son más como listas para funcionar.

Intel Compute Runtime modernizado a Hardware recortado

Los paquetes intel-compute-runtime y intel-igc han sido superados a la última liberación, proporcionando mantenimiento para hardware Intel nuevo. Sin embargo, note que estas versiones más nuevas abandonan mantenimiento de computaciones para las liberaciones de GPU Intel más antiguas anteriores a la 2020 (gen 12 y anterior); consulte este archivo para un listado de arquitecturas abandonadas.

Este cambio no afecta el intel-media-driver incluido en el conjunto de paquetes por defecto, el cual continúa tener mantenimiento para generaciones anteriores de hardware en las ramas de desarrollo principales por ahora.

Heredados de Tercera Parte de JDK

En Fedora 42, java y java-devel empaqueta provides y requires han sido ajustados a obsoloto a todos los LTS JDKs no del sistema. En efecto, esto significa:

  • java-1.8.0-openjdk, java-11-openjdk y java-17-openjdk ahora están obsoletos en Fedora 39, 40, y 41. Declararán un mensaje de advertencia al utilizarlos.

  • java-1.8.0-openjdk, java-11-openjdk y java-17-openjdk están retirados en Fedora 42.

Aquellos quienes necesiten estos paquetes utilizarían el paquete adoptium-temurin-java-repository, el cual activa el repositorio Adoption Temurin, el cual en torno le permite instalar los paquetes siguientes:

  • temurin-8-jdk

  • temurin-8-jre

  • temurin-11-jdk

  • temurin-11-jre

  • temurin-17-jdk

  • temurin-17-jre

  • temurin-21-jdk

  • temurin-21-jre

El paquete adoptium-temurin-java-repository está disponible desde Fedora 39 en adelante.

Para información más detallada, consulte la página Change en el Wiki de Fedora. Un listado de problemas conocidos está disponible en el GitHub.

Setuptools 74

Fedora 42 actualiza el paquete pyhon3-setuptools a la versión 74.

Note que esta liberación no es compatible 100% con anteriores liberaciones. Notablemente, la versión 72.0.0 retirada admite a la instrucción setup.py test (obsoleta por 5 años). Esto es un cambio de ruptura y los paquetes Fedora que utilicen la instrucción setup.py test durante la compilación necesita ser adaptada para utilizar un ejecutador de test diferente, tal como unittest, pytest, etc.

Consulte la documentación última para información sobre esta liberación.

Numpy actualizado a la versión 2

El paquete Numpy ha sudo actualizado de la versión 1.26 a la 2.2.4. La actualización proporciona una cantidad más grande de mejora para la biblioteca.

Consulte la documentación última para un listado de cambios así como una guía de migración y advertencias para autores de paquetes inferiores. También está disponible un blogpost de los desarrolladores de Numpy el cual discute algunos de los cambios de nivel más alto en la liberación de 2.x.

Django 5.1

La pila Django ha sido actualizada a la versión 5.1 en Fedora 42.

Similar para el provecho de empaquetado para el intérprete de Python mismo, Fedora es trasladado a unas única fuente RPM por cada versión mayor de Django. La versión mayor inicialmente trasladada con una liberacación de Fedora dada tendrá paquetes binarios no sufijo (p.ej. python3-django), mientras que cualquier más nuevo u otras versiones más antiguas de paquetes binarios (p.ej., python3-django5). Los paquetes sufijos (fuente y binario) solo listará la versión mayor (tal como python-django5 en vez de python-django5.1).

Para información sobre liberación 5.1, consulte las notas de liberación últimas.

Python 3.8 retirado

El paquete python3.8 será retirado sin sustitución desde Fedora Linux 42. Python 3.8 alcanzó el última fase de Fin de Vida 2024-10-07. RHEL 8 Python 3.8 Stream ha sido retirado desde mayo del 2023. Debian Buster tuvo Python 3.7, Bullseye tuvo 3.9. Ubuntu 20.04 LTS (Focal Fossa) tiene Python 3.8, pero mantenimiento estándar finaliza en abril de 2025, lo cual es cuando Fedora 42 liberadas también. Python 3.8 solo tuvo mantener en Fedora para hacerlo posible para los usuarios de Fedora para pruebas de su software frete a esto, pero también con otras distribuciones obtenidas, este el caso no ha sido más relevante.

Nota que python3.6 permanecerá disponible para futuro previsible para mantener desarrolladores cuyo destino es RHEL 8.

Desinstalar Py03 v0.19, v0.20 y v0.21

Los paquetes para versiones obsoletas de Py03 (0.21, v0.20, y v0.19), los vínculos Rust para CPython y PyPy, fueron desinstalados desde Fedora. Todos los paquetes Python que contienen extensiones Python nativas escritas en Rust ahora están compiladas con PyO3 v0.22 o posterior, proporcionando mantenimiento oficial para Python 3.13 y/o mantenimiento para ejecutar en un intérprete Python "free-threadad".

python-pytest-runner ahora está obsoleto

El paquete python-pytest-runner (python3-pytest-runner) está obsoleto en Fedora 42 debido a ser obsoleto por encima desde 2.019 y el repositorio superior siendo archivado desde el 2.023. Los paquetes dependientes están mejorados para intercambiar utilizando directamente pytest.

Para migrar, siga estos pasos:

  • Desinstale pytest-runner de su setup_requires, preferiblemente retire la opción setup_requires.

  • Retire pytest y cualquier otros requisitos de pruebas desde tests_require, preferiblemente desinstalando con la opción setup_requires.

  • Consulte Guías de Empaquetados de Fedora para como especificar dependencias de pruebas.

  • Pruebas de invocación con pytest.

  • Otras opción buena es configurar un tox.ini a continuación a su setup.cfg. https://tox.readthedocs.io/en/latest/

Zbus v1 retirado

Los paquetes para v1 de la jaula zbus (y los paquetes para v2 de la jaula zvariant) han sido retirados desde Fedora 42. Paquetes dependientes están para ser portados a una versión no obsoleta de estas bibliotecas (p.ej. zbus v4 o v5) o para ser retirados también.

Los paquetes de biblioteca Rust no está intentado ser instalado en los sistemas de usuario-final, y están la mayoría instalados exclusivamente en entornos de compilación efímeros (p.ej. mock chroot), por tanto este cambio no tendría ningún impacto en los usuarios finales.

gtk3-rs ahora está obsoleto

Los vínculos Rust para GTL3 están obsoletos y oficialmente no mantenidos. Los paquetes para ellos han sido marcados como obsoletos para prevenir paquetes nuevos que dependan en ellos desde añadirse a Fedora, y serán quitados en una liberación futura.