From Fedora Project Wiki

Removal of Sun RPC Interfaces From glibc

Summary

This system-wide change covers the removal of interfaces related to Sun RPC from glibc.

Owner

Current status

Detailed Description

glibc bundles an implementation of Sun RPC (including XDR support, on which Sun RPC is based). This implementation is not compatible with IPv6, and due to the way addresses are represented, adding IPv6 support would need an ABI bump. As a result, upstream decided to move Sun RPC support to a separate library, libtirpc, which has been packaged since Fedora 7.

Benefit to Fedora

After switching to libtirpc, applications using the Sun RPC protocol will support IPv6.

Sun RPC and NIS support in glibc have been deprecated for a long time and is explicitly enabled in the Fedora build. This change aligns Fedora glibc with current upstream owners.

Scope

  • Proposal owners: Remove the interfaces from glibc and adjust the glibc packaging to remove the nss_nis subpackage.
  • Other developers:
    • Packages which still use the built-in Sun RPC support need to switch to libtirpc and add BuildRequires: libtirpc-devel (for <rpc/rpc.h> with IPv6 support). You will have to use pkg-config, or manually compile with -I/usr/include/tirpc and link with -ltirpc.
    • Packages which need rpcgen will have to add BuildRequires: rpcgen to their spec files.
    • NIS packages need to switch to the separate libnsl2 package. BuildRequires: libnsl2-devel is needed to obtain the <rpcsvc/yp_prot.h> header. See Changes/NISIPv6.
  • Policies and guidelines: N/A (not needed for this Change; covered by the existing Packaging Guidelines)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Support for existing binaries is preserved.

How To Test

Regular system testing on IPv4 and IPv6 networks will cover this change.

User Experience

Users will enjoy IPv6 support.

If they need the rpcgen program, they need to install the package providing rpcgen. The program will no longer be part of the glibc-common package.

Dependencies

This change interacts with NIS support for IPv6.

Contingency Plan

  • Contingency mechanism: Revert the glibc changes and reintroduce the deprecated interfaces.
  • Contingency deadline: alpha
  • Blocks release? no
  • Blocks product? N/A

Documentation

Release Notes

Fedora 28 uses libtirpc to implement the Sun RPC protocol.