Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jan 1998 12:26:21 +0800
From:      Peter Wemm <peter@netplex.com.au>
To:        Brian Somers <brian@awfulhak.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org, cvs-ports@FreeBSD.org
Subject:   Re: cvs commit: ports/www/squid12/patches patch-aj 
Message-ID:  <199801110426.MAA27686@spinner.netplex.com.au>
In-Reply-To: Your message of "Sat, 10 Jan 1998 21:29:57 GMT." <199801102129.VAA19254@awfulhak.demon.co.uk> 

next in thread | previous in thread | raw e-mail | index | archive | help
Brian Somers wrote:
> > >   #include <net/if_var.h>, only on FreeBSD >= 3.  Brought to you by the
> > >   lets-make-life-as-difficult-as-possible-by-screwing-up-the-headers team
    .
> > 
> > Thank you for making this point - it's been driving me nuts too.  Talk
> > about adding a lot of pain for a minescule gain!  This is just
> > whitespace removal flying under a different banner. :-(
> 
> I forget who, but someone talked about removing this if_var.h 
> necessity a while ago.  I believe it was originally only intended as 
> a kernel-specific file.

I can understand the intention, but the implementation is _way_ flawed.  
Sure, user apps may not need to see 'struct ifnet's internals, but the 
include files themselves break if it's not present.

> It's *way* un-standard, and a real pain in the ass for ports.  If you 
> don't build a new net/* port on both 2.2 & -current, you're almost 
> definitely gonna get hit by this.

Everything that needs to include some <net*/if_*.h> file is hit by this, 
since most have a reference to 

> Can't we just #include it at the end of net/if.h and be done with it ? 
> Please ?  Or does anyone want to fix it properly ?

I'm not sure that's the best fix.  Take if_tun.h for example.  It would be 
best to split out the 'tun_softc' stuff into if_tunvar.h, that makes 
if_tun.h pretty much self contained.  tun_softc is not used by any 
userland that I can see.

The real kicker is if_arp.h.  I've just noticed that Bruce has made a
change here that should help - my system still isn't able to make world
after my partitioning disaster. IMHO, if_arp.h needs to be split into
if_arpvar.h so that userland programs that need to get to driver softc
structs can get to the definitions without having to mess with defining
KERNEL at the right time.

For the record, here's what's had to be patched so far in the ports tree.  
I don't think this is complete either, I'm pretty sure there are a number 
of ports that can't be built on -current because of this mess.

peter@einstein[11:59am]~ports-125> find */*/patches -name 'patch-*' -print | xargs grep if_var.h
net/arpwatch/patches/patch-aa:+ #include <net/if_var.h>
net/cap/patches/patch-ad:+#include <net/if_var.h>
net/cap/patches/patch-ah:+#include <net/if_var.h>
net/choparp/patches/patch-ac:+ #include <net/if_var.h>
net/dip/patches/patch-c:+#include <net/if_var.h>
net/mpd/patches/patch-ab:  #include <net/if_var.h>
net/mpd/patches/patch-ab:  #include <net/if_var.h>
net/ucd-snmp/patches/patch-aa:+/* Define if you have the <net/if_var.h> header file.  */
net/ucd-snmp/patches/patch-ae:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+AC_CHECK_HEADERS(malloc.h sys/param.h net/if_dl.h net/if_var.h sys/sysctl.h stdlib.h net/if_types.h)
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+for ac_hdr in malloc.h sys/param.h net/if_dl.h net/if_var.h sys/sysctl.h stdlib.h net/if_types.h
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-af:+#include <net/if_var.h>
net/ucd-snmp/patches/patch-ag:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-ac:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-ad:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-af:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-ah:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-aj:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-as:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-au:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-av:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-ax:+#include <net/if_var.h>
net/wide-dhcp/patches/patch-ay:+#include <net/if_var.h>
security/skip/patches/patch-bg:+#include <net/if_var.h>
sysutils/xsysinfo/patches/patch-aa:+#include <net/if_var.h>
www/squid12/patches/patch-aj:+#include <net/if_var.h>

Cheers,
-Peter
--
Peter Wemm <peter@netplex.com.au>   Netplex Consulting





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801110426.MAA27686>