Paquetes Obsoletos

A veces un paquete se intente ser retirado de Fedora, pero es conservado en Fedora por algún tiempo (a menudo indeterminado) adicional por varias razones incluyendo compatibilidad de mantenimiento hacia atrás. Con el fin de prevenir paquetes nuevos desde dependencias tales como un paquete, puede ser marcado como obsoleto.

Prerequisitos para obsolescencia

Si en Fedora nada depende de un paquete, un mantenedor puede desaprobarlo cuando lo considere oportuno. Un mantenedor (o un grupo de mantenedores) también puede desaprobar un conjunto de paquetes si ningún paquete de ese conjunto depende de ningún paquete externo.

Si un paquete depende de otros paquetes de la distribución (que no deben quedar obsoletos), su desuso requiere cambio de Fedora aprobado por FESCo. Un empaquetador DEBERÍA comunicar la desuso de un paquete a otros mantenedores, preferiblemente a través de las listas de correo devel o devel-announce.

Marcar un paquete obsoleto

Con el fin de marcar un paquete como obsoleto, se agrega un proveedor virtual especial:

Provides: deprecated()

If the package has subpackages and the packager intends to deprecate the package as a whole, packager MUST mark all subpackages as being deprecated.

Name:      mainpackage
...
Provides:  deprecated()

…

%package subpackage
...
Provides:  deprecated()

Alternatively, a packager MAY decide to only deprecate some subpackages.

A packager SHOULD add a comment in the spec explaining why a package is being deprecated. For example:

# net-tools (ifconfig etc.) have been obsoleted for ~20 years upstream.
# We want to get rid of it from Fedora in favor of the iproute package,
# however many sysadmins still expect ifconfig to be there, so we keep it
# around as a deprecated package.
Provides:  deprecated()

If a date for the final removal of the package from the distribution is known, it MAY be included as follows:

Provides:  deprecated() = YYYYMMDD

The special deprecated() provide MUST NOT be added in any released branch of Fedora. It is acceptable to deprecate packages in rawhide (the master branch), the branch for an upcoming Fedora release (if one exists) up until the time of the Final Freeze, and to EPEL branches (at any time). Also note that because packages may exist in a deprecated state for some time, those packages can eventually enter release branches. The restriction is on the initial addition of the deprecated() tag.

Consequences of a package being deprecated

Technically, nothing changes; a deprecated package works and behaves as before. However, other packages in Fedora MUST NOT add a dependency on a deprecated package (that includes Requires, BuildRequires, Recommends, Suggests, etc.). This applies both for updates of existing packages and new packages added to Fedora. Those submitting new packages, along with package reviewers, MUST check to see if any dependencies of the package they are submitting or reviewing have been deprecated. (It is, however, acceptable for a deprecated package to be renamed.)