Joined: 28 Apr 2007
Location: Gainesville, FL, USA
|Posted: Tue Jun 21, 2022 1:31 am Post subject: dhcpcd-9.4.1 causes problems for dhcpcd-ui
|This took me days to trace through; if you've got this problem, this message will save you a lot of trouble.
Problem: after a world update upgraded dhcpcd from 9.4.0-r1 to 9.4.1, dhcpcd-qt quit working: instead of displaying a icon in the taskbar reflecting the current network state, the icon showed up with a red X on it. When hovering the mouse over the icon, the hover-over text is "not connected to dhcpcd".
So here are some other things: dhcpcd is indeed running and assigns IP addresses as it should. It does create the sockets that it should and they do indeed communicate to the dhcpcd daemon. Running dhcpcd -U, which should dump out a listing of active interfaces, instead shows only the first part of the data followed by the message "dhcpcd_readdump1: Invalid argument".
After tracing through the dhcpcd-ui-0.7.8 sources, doing test builds, and writing short test programs to excercise dhcpcd, I eliminated dhcpcd-ui as a suspect.
One thing to note about this process: it sure is easier to build software using Portage than by hand with configure and make. Here's something I missed: dhcpcd won't work without the configure parameter --libdir=/lib64. That took a while to figure out.
Findings: dhcpcd version 9.4.0 works properly, version 9.4.1 has the error. A check of the git repo shows that the 9.4.0 release has a proper Git tag but 9.4.1 does not. After zeroing in on src/control.c as being related to the problem in 9.4.1, I decided to look to more recent commits. Hmm, lots of change in that file from what appears to be the 9.4.1 release. I tried building at the head of the dhcpcd repo, and that worked!
So here's the recommendation: skip net-misc/dhcpcd-9.4.1. If you have it now, dhcpcd-9.4.0-r1 is still in the Portage tree. Unless there's another regression, you should be OK with whatever succeeds 9.4.1.
I do need to remind Roy to tag his releases. (Edit: actually, there is a dhcpcd-9.4.1 tag, but it's on some other branch.)