Hi,

I spent some time these last weeks to update the dhcpcd patches to
implement review suggestions and progress a bit with the port. This
is the complete list of changes compared to previous patches:


[PATCH 1/6] New libpcap BPF backend

- No changes


[PATCH 2/6] Escape filenames

- No changes


[PATCH 3/6] Adapt codebase to the new Hurd backend.

- RTM_NEWADDR and RTM_DELADDR: Give them the same values they have
  in BSD.
- Add new exceptions when `__GNU__` is defined. Required after 
  rebasing to recent changes from master.


[PATCH 4/6] New GNU/Hurd backend

- Simplify `if_init` by calling ioctls instead of accessing the
  gnumach device.
- Return -1 and set EOPNOTSUP when possible, as other OSs do. Also,
  add comments to those functions that should nothing.
- Implement function `if_carrier`.


[PATCH 5/6] Add support for the Hurd in ./configure

- Remove dependency on lwip.
- Fix autodetection of the Hurd. This was failing because in the Hurd,
  `uname -m` is `i686-AT386` which includes a dash, that breaks the
  shell script to detect the platform. The debian package is manually
  setting `--build=i686-gnu` to avoid this, now that won't be needed.
- Automatically disable unsupported features like IPv6 and privilege
  separation when the Hurd is detected.
- Patch order: This patch was second in the series, now it's the last
  one that implements code changes.


[PATCH 6/6] Add some build instructions for the Hurd

- Remove mentions to required configure parameters and dependency on
  lwip.
  

Next is an updated version of the status report I wrote in my previous
email about dhcpcd:

- Support only for IPv4. IPv6 not supported yet.
- It works only over lwip. pfinet fails but I haven't investigated yet.
- Only Ethernet is supported. This is because the Hurd doesn't define
  AF_LINK so dhcpcd can't get any data from the interface other thant
  what is returned by `getifaddrs()`.
- dhcpcd monitors the interfaces and gets notified when there are changes
  in routes or network configurations. This is not working yet for the Hurd.
- dhcpcd implements some privilege separation by which the process spawns
  new processes that run as a non-privileged user. Or that's what I
  understood. It's not implemented for the Hurd because I've deferred this
  for now.
- Access to BPF is provided by libpcap.
- libpcap is a dependency for the Hurd.
- This has been tested only in a 32-bit Hurd.


These patches still can't be merged because they depend on:

1. Changes in libpcap being merged and included the debian package
   - https://github.com/the-tcpdump-group/libpcap/pull/1565
2. Changes in Glibc being included in the debian package
3. Changes in lwip being included in the debian package, which I won't
   merge unless both previous points are met
   - https://salsa.debian.org/debian/lwip/-/commits/in_pktinfo

Reply via email to