From Fedora Project Wiki
(page creation)
 
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=WIP: Deprecate dhclient .<!-- The name of your change proposal --> =
=WIP: Deprecate dhclient <!-- The name of your change proposal -->=


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release.  
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release.  
Note that motivation for the change should be in the Motivation section below, and this part should answer the question "What?" rather than "Why?". -->
Note that motivation for the change should be in the Motivation section below, and this part should answer the question "What?" rather than "Why?". -->
This is the first step of deprecation of ISC DHCP in Fedora due to deprecation by the vendor (ISC) . Currently dhclient is 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 (links : TBD) dhclient  binary is pulled into ISO by anaconda and dracut still
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 ( [https://bugzilla.redhat.com/1204226 BZ#1204226]) dhclient  binary is pulled into ISO by anaconda and dracut still.


== Owner ==
== Owner ==
Line 11: Line 13:
This should link to your home wiki page so we know who you are.  
This should link to your home wiki page so we know who you are.  
-->
-->
* Name: [[User:landgraf|Pavel Zhukov]]
* Name: [[User:mosvald|Martin Osvald]]
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email:  pzhukov at redhat dot com
* Email:  mosvald at redhat dot com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
Line 24: Line 26:


== Current status ==
== Current status ==
* Targeted release: [[Releases/31 | Fedora 31 ]]  
* Targeted release: [[Releases/40 | Fedora 40 ]]  
* 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}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 37: Line 39:


== Detailed Description ==
== Detailed Description ==
dhclient doesn't receive much development by the vendor (ISC) and it's deprecated. While dhcp-server is deprecated by ISC Kea (not drop-in replacement through) dhcp-client doesn't have an alternative developed by ISC and the proposal is to use dhcp implementation provided by NetworkManager
'''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 [https://src.fedoraproject.org/rpms/dhcpcd dhcpcd] package.


<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Line 70: Line 72:
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
-->
-->
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 ==
== Scope ==
Line 75: Line 78:
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers: Anaconda and Dracut maintainers to drop rhard requirement of dhcp-client,
* 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
RCM to drop dhcp-client RPM from ISO <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 110: Line 113:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
Check if dhcp-client rpm doesn't exists on installation ISO and absence of the RPM doesn't have impact on installation including network installation.
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.


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 125: Line 132:
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
-->
-->
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 ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
anaconda-core-0:31.7-1.fc31.x86_64
 
dracut-network-0:049-26.git20181204.fc30.x86_64
cloud-init-0:23.2.1-1.fc39.noarch [https://bugzilla.redhat.com/show_bug.cgi?id=2247055 BZ#2247055]
synce-connector-0:0.15.2-20.fc29.x86_64
 
wicd-common-0:1.7.4-9.fc29.noarch
dracut-network-0:059-12.fc39.x86_64 [https://bugzilla.redhat.com/show_bug.cgi?id=2247056 BZ#2247056]
wifi-radar-0:2.0.s10-7.fc29.noarch
 
wlassistant-0:0.5.7-32.fc30.x86_64
google-compute-engine-guest-configs-0:20230801.00-1.fc39.noarch [https://bugzilla.redhat.com/show_bug.cgi?id=2251746 BZ#2251746]
 
libguestfs-1:1.51.6-2.fc39.src [https://bugzilla.redhat.com/show_bug.cgi?id=2247057 BZ#2247057]


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->

Latest revision as of 11:46, 27 November 2023

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