Subject: Re: 13apr2000 /usr/src/usr.sbin/pppd/pppd/Makefile oddity
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: None <itojun@iijlab.net>
List: current-users
Date: 04/20/2000 12:45:16
>>> 	since we ship userland in binary form, we need to always
>>> 	enable IPv6 for userland (otherwise, users would need to
>>> 	recompile the whole userland when he turns on IPv6).
>Yes. True. No argument there. Unfortunately, the state of IPv6
>implementatino deployment __today__ is such that if we want to ship
>code that works at sites with IPv4, plus "early" IPv6 services,
>we also have to ship with IPv6 turned *off*.

	How many combinations do you plan to ship?   I don't think it
	will work.

	At this moment, there are 3 builds take place (for 1.5):
		without crypto
		with US domestic crypto
		with international crypto
	now you propose to do 6 builds:
		IPv4-only without crypto
		IPv4-only with US domestic crypto
		IPv4-only with international crypto
		IPv4/v6 without crypto
		IPv4/v6 with US domestic crypto
		IPv4/v6 with international crypto

	I really vote for IPv4/v6 distribution only.  Also we should
	integrate crypto-ready distributions into one, to make only 2
	builds.

>I guess that means we need either two kernels, or two userlands: one
>with IPv6 on, and one with it off.  Also, dont forget the small-footprint
>devices which plausibly cannot afford the bloat of IPv6.

	how much size increase is "bloat" for you?  for example:

(after strip)
-rwxr-xr-x  1 root  itojun  109476 Apr 20 12:28 obj/pppd.v4
-rwxr-xr-x  1 root  itojun  117476 Apr 20 12:29 obj/pppd.v6

	If many REALLY care, I think it can be done, but I don't really
	like this due to maintenance headaches.
	- enable IPv4/v6 for kernel and userland by default
	- ship IPv4/v6kernel in kern.tgz
	- make a separate distribution set "base6.tgz" which contains
	  IPv6-only tools like route6d or ping6.
	base6.tgz will be real small, it will contain only the following
	files.  I think the base/base6 split is not necessary.

itojun


./sbin/ping6
./sbin/rtsol
./usr/sbin/faithd
./usr/sbin/ifmcstat
./usr/sbin/mld6query
./usr/sbin/mtrace6
./usr/sbin/ndp
./usr/sbin/pim6dd
./usr/sbin/pim6sd
./usr/sbin/pim6stat
./usr/sbin/rip6query
./usr/sbin/route6d
./usr/sbin/rtadvd
./usr/sbin/rtsold
./usr/sbin/traceroute6
manpages for them