Bug 202546 - net/dhcpcd: update 6.8.2 -> 6.9.3
Summary: net/dhcpcd: update 6.8.2 -> 6.9.3
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Jason Unovitch
Depends on:
Reported: 2015-08-21 14:23 UTC by roy
Modified: 2015-09-04 16:16 UTC (History)
1 user (show)

See Also:

Patch to net/dhcpcd to update to 6.9.2 (7.73 KB, patch)
2015-08-21 14:23 UTC, roy
no flags Details | Diff
Patch to net/dhcpcd to update to 6.9.2 (1.51 KB, patch)
2015-08-21 14:28 UTC, roy
no flags Details | Diff
Poudriere testport failure from 9.3-RELEASE amd64 (9.23 KB, text/x-log)
2015-08-23 14:32 UTC, Jason Unovitch
no flags Details
Fix compile on systems lacking SOCK_CLOEXEC (537 bytes, patch)
2015-08-23 16:15 UTC, roy
no flags Details | Diff
net/dhcpcd: update 6.8.2 -> 6.9.3 (1.31 KB, patch)
2015-09-04 13:21 UTC, Jason Unovitch
no flags Details | Diff
Poudriere testport log from 9.3-RELEASE jail (19.32 KB, text/x-log)
2015-09-04 13:22 UTC, Jason Unovitch
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description roy 2015-08-21 14:23:44 UTC
Created attachment 160171 [details]
Patch to net/dhcpcd to update to 6.9.2

dhcpcd-6.9.2 has been released with the following changes:
  *  Only run the IPv4LL script and rebuild routes on drop when
     an address is actually dropped.
  *  Add noup directive to stop master mode bringing an interface up.
  *  Fix compile for old Linux systems.
  *  If only IPv4LL addresses exist, assign a default route to the
     interface so that IPv4LL can talk to non IPv4LL on the same link.
  *  Set DHCPv4 MTU on routes instead of the interface.
     This matches IPv6 behaviour and works around dodgy interfaces
     where a MTU change can reset the PHY causing an infinite loop.
  *  MTU is now requsted by default in dhcpcd.conf again.
  *  noauthrequired also allows unauthenticated FORCERENEW and
     RECONFIGURE messages.
  *  Simplify the socket code by adding a custom function instead of
     having the same #ifdef mess for systems without SOCK_CLOEXEC.
     Thanks to Christos Zoulas.
  *  Don't do platform init or setting interface MTU if too small when
     testing or dumping leases.
  *  Build new_domain_name from other sources if blank before checking
     it's blank to remove any prior config. Thanks to Paul Walrath.
  *  Describe adding an IPv6 temporary address.
  *  Don't delete dhcpcd assigned IPv6 link-local addresses when
     releasing leases.
  *  Reference old DHCPv6 FQDN when processing the hostname.

Changes from 6.9.0 to 6.9.1
  *  Change packaging from bz2 to xz
  *  Fixed waitip
  *  For Prefix Delegation, servers must now support RFC7550
  *  Fixed detecting host routes in DHCP messages
  *  Fixed ARP checking that failed in some situations
  *  Fixed static address assignment in dhcpcd.conf
  *  Split IPv4LL state from DHCP and into it's own state
  *  Reject any NA/RA with a hop limit != 255
  *  Replace if_oneup with if_afwaited and af_waited for hook scripts
  *  Fix a potential buffer overrun if an embedded DHCP option is
     a zero length or fails to parse - thanks to Paul Stewart
  *  Check fclose for errors - thanks to Bob
  *  wpad_url has been added to dhcpcd-definitions.conf
  *  Fix a double free when failing to send a DHCPv6 RELEASE
     Thanks to Todd Blanchard.
  *  Correct IPv6 public address test, thanks to Michał Kępień
  *  Fix DHCPv6 starting if no public addresses found in the RA
     but the M or O bit was set
  *  Replaced custom uptime() with clock_gettime(2)
  *  Fix DHCPv6 elapsed time

Changes from 6.8.2 to 6.9.0
  *  Fix IPv6 prefix underflow when confirming deprecated but valid leases
  *  eloop.c and .h are now 100% portable outside of dhcpcd
     (provided the system supports recent POSIX and either you or
     the system provide working TAILQ macros)
  *  Allow waitip to work per interface.
  *  Handle ND options in the same way we handle DHCP and DHCPv6 options.
  *  Add new variable of type bitflags:flags where the flags ABCDEFGH,
     A is 10000000, B is 01000000, etc.
     Variables with the name reserved are no longer processed.
  *  Improve IN_IFF_TENTATIVE with ip sharing.
Comment 1 roy 2015-08-21 14:28:50 UTC
Created attachment 160172 [details]
Patch to net/dhcpcd to update to 6.9.2
Comment 2 Jason Unovitch freebsd_committer 2015-08-23 00:06:38 UTC
Take for testing.
Comment 3 Jason Unovitch freebsd_committer 2015-08-23 14:32:34 UTC
Created attachment 160249 [details]
Poudriere testport failure from 9.3-RELEASE amd64

Hello Roy,
Thanks for your work on this.  This compiles just fine on 10 and 11 but is having an issue on FreeBSD 9.3.  Can you look into what is going on with this?

===>  Building for dhcpcd-6.9.2
[ ...<snip>... ]
cc  -O2 -pipe -fstack-protector -fno-strict-aliasing -std=c99  -DHAVE_CONFIG_H -DNDEBUG -D_GNU_SOURCE -DINET -DINET6 -I./crypt -c if.c -o if.o
if.c: In function 'xsocket':
if.c:679: error: 'xlags' undeclared (first use in this function)
if.c:679: error: (Each undeclared identifier is reported only once
if.c:679: error: for each function it appears in.)
*** [if.o] Error code 1
Comment 4 roy 2015-08-23 16:15:35 UTC
Created attachment 160254 [details]
Fix compile on systems lacking SOCK_CLOEXEC

This should fix it.
Comment 5 Jason Unovitch freebsd_committer 2015-08-24 02:03:00 UTC
(In reply to roy from comment #4)
This resolves the 9.3-RELEASE build failures.  How do you want to handle this?  Do you want a patched 6.9.2 in ports or do you want to roll this into a 6.9.3?
Comment 6 roy 2015-08-24 08:15:07 UTC
(In reply to Jason Unovitch from comment #5)

There could be 6.9.3 shortly as there are other fixes I have since made to address various gcc versions wit different -W* variations. As you're supporting FreeBSD-9.x and that afaik is gcc based I'll probably roll out a new version in the coming days - just need to address one new bug report first.
Comment 7 Jason Unovitch freebsd_committer 2015-08-25 01:58:18 UTC
(In reply to roy from comment #6)
Ok. I updated the title to reflect this and I'll consider this on hold until the next patch. I'll test everything out once you have the next update.
Comment 8 roy 2015-09-04 11:58:46 UTC
dhcpcd-6.9.3 has been released with the following changes:
  *  Fixed compile on various platform/compiler variations
  *  Statically assigned IPv4 addresses now undergo ARP checks
  *  Statically assigned interface_mtu= works again
  *  Statically assigned DHCP variables persist across lease renews

Do you need a new patch for the port or is it ok as is?
Comment 9 Jason Unovitch freebsd_committer 2015-09-04 13:21:19 UTC
Created attachment 160714 [details]
net/dhcpcd: update 6.8.2 -> 6.9.3

Note this is just a version bump and `make makesum` on the original patch for the PR.  This obsolete the 6.9.2 patch that didn't compile on 9.X.
Comment 10 Jason Unovitch freebsd_committer 2015-09-04 13:22:57 UTC
Created attachment 160715 [details]
Poudriere testport log from 9.3-RELEASE jail

Poudriere builds were done on the following jails successfully with this 6.9.3 patch.

9.3-RELEASE-p24      amd64
9.3-RELEASE-p24      i386
10.1-RELEASE-p19     amd64
10.1-RELEASE-p19     i386
10.2-RELEASE-p2      amd64
10.2-RELEASE-p2      i386
11.0-CURRENT r286886 amd64
11.0-CURRENT r286888 i386

portlint -ac returns no errors.

Obsolete the original build failure log for 6.9.2.
Comment 11 Jason Unovitch freebsd_committer 2015-09-04 13:23:55 UTC
Comment on attachment 160254 [details]
Fix compile on systems lacking SOCK_CLOEXEC

Obsolete patch for 6.9.2 to compile on 9.X as that's been resolved in 6.9.3
Comment 12 commit-hook freebsd_committer 2015-09-04 16:11:06 UTC
A commit references this bug:

Author: junovitch
Date: Fri Sep  4 16:10:23 UTC 2015
New revision: 396104
URL: https://svnweb.freebsd.org/changeset/ports/396104

  net/dhcpcd: update 6.8.2 -> 6.9.3

  PR:		202546
  Submitted by:	Roy Marples <roy@marples.name> (maintainer)
  Approved by:	feld (mentor)

Comment 13 Jason Unovitch freebsd_committer 2015-09-04 16:16:50 UTC
Committed. Thanks for your work Roy!