Subject: Re: Pkgs checking for IPv6 .. (and getting it wrong)
To: Matthias Scheler <tron@zhadum.org.uk>
From: Martin S. Weber <Ephaeton@gmx.net>
List: pkgsrc-users
Date: 09/12/2007 23:28:54
On Wed, Sep 12, 2007 at 10:02:44PM +0100, Matthias Scheler wrote:
> On Wed, Sep 12, 2007 at 06:06:47PM +0200, Martin S. Weber wrote:
> > I'm having a 4.0 RC 1 (and a -current 4.99.31) without IPv6
> > support, i.e. built with -V MKINET6=no (build.sh).
> 
> I consider that a bad idea.

Okay. I thought it's the "better" way of disabling ipv6 stuff.

> 
> I would recomment to build a kernel without "options INET6" and leave
> the rest of the system yet.
> 

I thought that would leave me with binaries which just wouldn't
work (i.e. all the ipv6 specific stuff), i.e. unusable "junk".

If MKINET6 is not working, it should be removed. Or fixed.

What would you say if you do MKCATPAGES=no just to find your system
full of preformatted manpages? Or you want to use your trustworthy
pkgsrc-based X, set MKX11=no and suddenly X-using software begins
to think you have a /usr/X11R6 - XFree tree ?

> > Is this correct for them to do so?
> 
> Yes, it is.
> 

So when I build a kernel without INET6 there'll be attempts to use
 ::1 etc. but just won't work. I.e. fail at run-time. But at
 compile-time the software keeps on thinking ipv6 is available (as
I suppose AF_INET6 is still defined). What bugs me here is that
compile-time and run-time truth differ. And there should be a test
which gives the same result for compile- and run-time for software's
configure scripts to use to determine whether or not ipv6 is
available, supported, working.

> > Who's wrong here (besides me, the bad bad bad user who doesn't want
> > ipv6 support) ...
> 
> May I ask why? If you don't use IPv6 you can build a kernel without
> IPv6 support. Applications will automatically pick IPv4.
> 

Oh, I just throw out all junk I don't, can't or won't use. Like
drivers for nonexistent hardware, filesystems I don't use, or
network protocols for which I do not have any use because I don't
have a NS, ISO/OSI, NETATALK - or - ipv6 gateway / network environment.

Why would you burn kernel memory for stuff you wouldn't use? Or
run-time? Why shed cpu-cycles which surely have no effect as I
don't have the surrounding hardware / environment? This just seems
wrong to me.

If I "may" disable NETATALK, why "shouldn't I" disable IPv6?

And then, the software. It'll try to use ipv6. Hey, I cannot
transport those packets. Why try sending them in the first place?
I don't want to.  I want my good (t)rusted ipv4 packets! grrr...

> > ... - the build system or the package checks ?
> 
> Neither, your system configuration is just broken.
> 

Well, "broken" from your point of view (which is a strong hint I
really shouldn't be doing this), "desired" from mine (see netatalk).
I'd consider a system configuration with installed binaries which
just-won't-work(tm) "broken".

Buuuuuuut okay. USE_INET6 is present, but don't you dare setting
it to no.. MKINET6 is present, but don't you dare... there's the
pkg option "inet6" but don't you ... This is frustrating, at best.
So next attempt.

Regards,

-Martin