From Fedora Project Wiki
(Mention <rpc/rpc.h>)
(Mention pkg-config and compiler/linker flags)
 
(3 intermediate revisions by 2 users not shown)
Line 7: Line 7:
* Name: [[User:fweimer| Florian Weimer]]
* Name: [[User:fweimer| Florian Weimer]]
* Email: fweimer@redhat.com
* Email: fweimer@redhat.com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes ticket: [https://pagure.io/fedora-docs/release-notes/issue/93 #93]
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 19: Line 19:
* Targeted release: [[Releases/28 | Fedora 28]]  
* Targeted release: [[Releases/28 | Fedora 28]]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1537250 #1537250]


== Detailed Description ==
== Detailed Description ==
Line 34: Line 34:
* Proposal owners: Remove the interfaces from glibc and adjust the glibc packaging to remove the <code>nss_nis</code> subpackage.
* Proposal owners: Remove the interfaces from glibc and adjust the glibc packaging to remove the <code>nss_nis</code> subpackage.
* Other developers:
* Other developers:
** Packages which still use the built-in Sun RPC support need to switch to <code>libtirpc</code> and add <code>BuildRequires: libtirpc-devel</code> (for <code>&lt;rpc/rpc.h></code> with IPv6 support).
** Packages which still use the built-in Sun RPC support need to switch to <code>libtirpc</code> and add <code>BuildRequires: libtirpc-devel</code> (for <code>&lt;rpc/rpc.h></code> with IPv6 support). You will have to use <code>pkg-config</code>, or manually compile with <code>-I/usr/include/tirpc</code> and link with <code>-ltirpc</code>.
** Packages which need <code>rpcgen</code> will have to add <code>BuildRequires: rpcgen</code> to their spec files.
** Packages which need <code>rpcgen</code> will have to add <code>BuildRequires: rpcgen</code> to their spec files.
** NIS packages need to switch to the separate <code>libnsl</code> package.
** NIS packages need to switch to the separate <code>libnsl2</code> package. <code>BuildRequires: libnsl2-devel</code> is needed to obtain the <code>&lt;rpcsvc/yp_prot.h></code> header.  See [[Changes/NISIPv6]].


* Release engineering: [https://pagure.io/releng/issue/7239 #7239] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/7239 #7239] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
Line 80: Line 80:
Fedora 28 uses <code>libtirpc</code> to implement the Sun RPC protocol.
Fedora 28 uses <code>libtirpc</code> to implement the Sun RPC protocol.


[[Category:ChangeReadyForFesco]]
[[Category:ChangeAcceptedF28]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 07:28, 30 May 2018

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.