From Fedora Project Wiki

WIP: Deprecate dhclient

Summary

This is the next step in the deprecation of ISC DHCP in Fedora due to deprecation by the vendor (ISC).

Currently, dhclient (dhcp-client) is the main implementation and while some projects switched to dhcp library provided by NetworkManager (TBD links) and some work was done in Fedora to switch to dhcp library ( BZ#1204226) dhclient binary is pulled into ISO by anaconda and dracut still.

Owner

  • Name: Martin Osvald
  • Email: mosvald at redhat dot com
  • Release notes owner:

Current status

  • Targeted release: Fedora 40
  • Last updated: 2023-11-27
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

dhcp-client no longer receives any development by the vendor (ISC) and it is deprecated. While dhcp-server is deprecated by ISC Kea, dhcp-client doesn't have an alternative developed by ISC and the proposal is to use DHCP implementation provided by NetworkManager (preferable) and if not possible use a client provided by dhcpcd package.


Benefit to Fedora

Modern implementation fixes a few bugs which are difficult to fix in dhcp-client like monotonic time support (bz#876791) and brings support for mixed ipv4 + ipv6 environment. Besides it fits more accurately into modern stack of networking management in Fedora (ip addresses lifetime, etc).

Scope

  • Proposal owners:
  • Other developers: Anaconda and Dracut maintainers to drop rhard requirement of dhcp-client, RCM to drop dhcp-client RPM from ISO, maintainers of packages depending on dhcp-client rpm
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

NetworkManager's dhcp implementation is NOT drop-in replacement of dhclient. While it supports (almost) all RFCs it can behave in different way in some cases ((IB support, client identifier, direct calls of dhclient binary etc links: TBD ). The goal is to find this cases and fix them.

How To Test

Check:

1. dhcp-client rpm does not exist on installation ISO and the absence of the RPM does not have an impact on installation including network installation.

2. There is no package depending on dhcp-client rpm.


User Experience

Regular users should not notice any change. Advanced users and third-party applications may call dhclient binary directly thus they will be affected and should start using dhcpcd, or install dhcp-client from the EPEL repo (TBD/TODO), and/or adjust the dependencies list accordingly.

Dependencies

cloud-init-0:23.2.1-1.fc39.noarch BZ#2247055

dracut-network-0:059-12.fc39.x86_64 BZ#2247056

google-compute-engine-guest-configs-0:20230801.00-1.fc39.noarch BZ#2251746

libguestfs-1:1.51.6-2.fc39.src BZ#2247057


Contingency Plan

  • Contingency mechanism: Pull dhclient into iso and allow anaconda/dracut use it as before
  • Contingency deadline: Beta freeze (not a System Wide Change)
  • Blocks release? Yes
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes