UPDATING revision 195028
167754SmsmithUpdating Information for FreeBSD current users
267754Smsmith
367754SmsmithThis file is maintained and copyrighted by M. Warner Losh
467754Smsmith<imp@village.org>.  See end of file for further details.  For commonly
567754Smsmithdone items, please see the COMMON ITEMS: section later in the file.
667754Smsmith
7217365SjkimItems affecting the ports and packages system can be found in
8245582Sjkim/usr/ports/UPDATING.  Please read that file before running
970243Smsmithportupgrade.
1067754Smsmith
11217365SjkimNOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
12217365Sjkim	FreeBSD 8.x has many debugging features turned on, in
13217365Sjkim	both the kernel and userland.  These features attempt to detect
14217365Sjkim	incorrect use of system primitives, and encourage loud failure
15217365Sjkim	through extra sanity checking and fail stop semantics.  They
16217365Sjkim	also substantially impact system performance.  If you want to
17217365Sjkim	do performance measurement, benchmarking, and optimization,
18217365Sjkim	you'll want to turn them off.  This includes various WITNESS-
19217365Sjkim	related kernel options, INVARIANTS, malloc debugging flags
20217365Sjkim	in userland, and various verbose features in the kernel.  Many
21217365Sjkim	developers choose to disable these features on build machines
22217365Sjkim	to maximize performance.  (To disable malloc debugging, run
23217365Sjkim	ln -s aj /etc/malloc.conf.)
24217365Sjkim
2567754Smsmith20090622:
26217365Sjkim	Layout of struct vnet has changed as routing related variables
27217365Sjkim	were moved to their own Vimage module. Modules need to be
28217365Sjkim	recompiled.  Bump __FreeBSD_version to 800099.
2967754Smsmith
30217365Sjkim20090619:
31217365Sjkim	NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
32217365Sjkim	and 1024 respectively.  As long as no more than 16 groups per
33217365Sjkim	process are used, no changes should be visible.  When more
34217365Sjkim	than 16 groups are used, old binaries may fail if they call
35217365Sjkim	getgroups() or getgrouplist() with statically sized storage.
36217365Sjkim	Recompiling will work around this, but applications should be
37217365Sjkim	modified to use dynamically allocated storage for group arrays
38217365Sjkim	as POSIX.1-2008 does not cap an implementation's number of
39217365Sjkim	supported groups at NGROUPS_MAX+1 as previous versions did.
40217365Sjkim
41217365Sjkim	NFS and portalfs mounts may also be affected as the list of
42217365Sjkim	groups is truncated to 16.  Users of NFS who use more than 16
4367754Smsmith	groups, should take care that negative group permissions are not
4467754Smsmith	used on the exported file systems as they will not be reliable
4567754Smsmith	unless a GSSAPI based authentication method is used.
4667754Smsmith
4767754Smsmith20090616:
48246849Sjkim	The compiling option ADAPTIVE_LOCKMGRS has been introduced.
49246849Sjkim	This option compiles in the support for adaptive spinning for lockmgrs
5067754Smsmith	which want to enable it.  The lockinit() function now accepts the
51246849Sjkim	flag LK_ADAPTIVE in order to make the lock object subject to
5267754Smsmith	adaptive spinning when both held in write and read mode.
53246849Sjkim
54246849Sjkim20090613:
55246849Sjkim	The layout of the structure returned by IEEE80211_IOC_STA_INFO
56246849Sjkim	has changed.  User applications that use this ioctl need to be
57246849Sjkim	rebuilt.
58246849Sjkim
59238381Sjkim20090611:
6067754Smsmith	The layout of struct thread has changed.  Kernel and modules
6167754Smsmith	need to be rebuilt.
62246849Sjkim
63246849Sjkim20090608:
64246849Sjkim	The layout of structs ifnet, domain, protosw and vnet_net has
65246849Sjkim	changed.  Kernel modules need to be rebuilt.
66246849Sjkim	Bump __FreeBSD_version to 800097.
67246849Sjkim
68246849Sjkim20090602:
69246849Sjkim	window(1) has been removed from the base system. It can now be
7067754Smsmith	installed from ports. The port is called misc/window.
71246849Sjkim
72246849Sjkim20090601:
73246849Sjkim	The way we are storing and accessing `routing table' entries
74246849Sjkim	has changed. Programs reading the FIB, like netstat, need to
75246849Sjkim	be re-compiled.
76246849Sjkim
77246849Sjkim20090601:
78246849Sjkim	A new netisr implementation has been added for FreeBSD 8.  Network
79246849Sjkim	file system modules, such as igmp, ipdivert, and others, should be
80246849Sjkim	rebuilt.
81246849Sjkim	Bump __FreeBSD_version to 800096.
82246849Sjkim
83246849Sjkim20090530:
84246849Sjkim	Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
85246849Sjkim	is no more valid.
86246849Sjkim
87246849Sjkim20090530:
88246849Sjkim	Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
89246849Sjkim	Bump __FreeBSD_version to 800094.
90246849Sjkim
91246849Sjkim20090529:
92246849Sjkim	Add mnt_xflag field to 'struct mount'.  File system modules
93246849Sjkim	need to be rebuilt.
9467754Smsmith	Bump __FreeBSD_version to 800093.
9567754Smsmith
9667754Smsmith20090528:
9767754Smsmith	The compiling option ADAPTIVE_SX has been retired while it has been
9867754Smsmith	introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
9967754Smsmith	The KPI for sx_init_flags() changes as accepting flags:
10067754Smsmith	SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
10167754Smsmith	has been introduced in order to handle the reversed logic.
102246849Sjkim	Bump __FreeBSD_version to 800092.
103246849Sjkim
104246849Sjkim20090527:
105246849Sjkim	Add support for hierarchical jails.  Remove global securelevel.
106246849Sjkim	Bump __FreeBSD_version to 800091.
107246849Sjkim
108246849Sjkim20090523:
109246849Sjkim	The layout of struct vnet_net has changed, therefore modules
110246849Sjkim	need to be rebuilt.
111246849Sjkim	Bump __FreeBSD_version to 800090.
112246849Sjkim
113246849Sjkim20090523:
114246849Sjkim	The newly imported zic(8) produces a new format in the
115246849Sjkim	output. Please run tzsetup(8) to install the newly created
116246849Sjkim	data to /etc/localtime.
117246849Sjkim
118246849Sjkim20090520:
119246849Sjkim	The sysctl tree for the usb stack has renamed from hw.usb2.* to
120246849Sjkim	hw.usb.* and is now consistent again with previous releases.
121246849Sjkim
122246849Sjkim20090520:
123246849Sjkim	802.11 monitor mode support was revised and driver api's
124246849Sjkim	were changed.  Drivers dependent on net80211 now support
125246849Sjkim	DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11.  No
126246849Sjkim	user-visible data structures were changed but applications
127246849Sjkim	that use DLT_IEEE802_11 may require changes.
128246849Sjkim	Bump __FreeBSD_version to 800088.
129246849Sjkim
130254745Sjkim20090430:
13167754Smsmith	The layout of the following structs has changed: sysctl_oid,
132254745Sjkim	socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
13367754Smsmith	vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
134151937Sjkim	panics may be experienced.  World rebuild is required for
13567754Smsmith	correctly checking networking state from userland.
13667754Smsmith	Bump __FreeBSD_version to 800085.
13767754Smsmith
138246849Sjkim20090429:
139246849Sjkim	MLDv2 and Source-Specific Multicast (SSM) have been merged
140246849Sjkim	to the IPv6 stack. VIMAGE hooks are in but not yet used.
141246849Sjkim	The implementation of SSM within FreeBSD's IPv6 stack closely
142246849Sjkim	follows the IPv4 implementation.
143246849Sjkim
144246849Sjkim	For kernel developers:
145246849Sjkim
146246849Sjkim	* The most important changes are that the ip6_output() and
14767754Smsmith	  ip6_input() paths no longer take the IN6_MULTI_LOCK,
14899146Siwasaki	  and this lock has been downgraded to a non-recursive mutex.
14967754Smsmith
15067754Smsmith	* As with the changes to the IPv4 stack to support SSM, filtering
15167754Smsmith	  of inbound multicast traffic must now be performed by transport
15267754Smsmith	  protocols within the IPv6 stack. This does not apply to TCP and
15367754Smsmith	  SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
154246849Sjkim
155246849Sjkim	* The KPIs used by IPv6 multicast are similar to those used by
156246849Sjkim	  the IPv4 stack, with the following differences:
157246849Sjkim	   * im6o_mc_filter() is analogous to imo_multicast_filter().
158246849Sjkim	   * The legacy KAME entry points in6_joingroup and in6_leavegroup()
15967754Smsmith	     are shimmed to in6_mc_join() and in6_mc_leave() respectively.
160193267Sjkim	   * IN6_LOOKUP_MULTI() has been deprecated and removed.
16167754Smsmith	   * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
16267754Smsmith	     for MLDv1 have an additional 'timer' argument which is used to
16367754Smsmith	     jitter the initial membership report for the solicited-node
164241973Sjkim	     multicast membership on-link.
16567754Smsmith	   * This is not strictly needed for MLDv2, which already jitters
16667754Smsmith	     its report transmissions.  However, the 'timer' argument is
167246849Sjkim	     preserved in case MLDv1 is active on the interface.
168246849Sjkim
169246849Sjkim	* The KAME linked-list based IPv6 membership implementation has
170246849Sjkim	  been refactored to use a vector similar to that used by the IPv4
171246849Sjkim	  stack.
172246849Sjkim	  Code which maintains a list of its own multicast memberships
173246849Sjkim	  internally, e.g. carp, has been updated to reflect the new
174246849Sjkim	  semantics.
175246849Sjkim
176246849Sjkim	* There is a known Lock Order Reversal (LOR) due to in6_setscope()
177246849Sjkim	  acquiring the IF_AFDATA_LOCK and being called within ip6_output().
178246849Sjkim	  Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
179246849Sjkim	  implementation constraint which needs to be addressed in HEAD.
180246849Sjkim
181246849Sjkim	For application developers:
182246849Sjkim
183246849Sjkim	* The changes are broadly similar to those made for the IPv4
184246849Sjkim	  stack.
185246849Sjkim
186246849Sjkim	* The use of IPv4 and IPv6 multicast socket options on the same
187246849Sjkim	  socket, using mapped addresses, HAS NOT been tested or supported.
188246849Sjkim
189246849Sjkim	* There are a number of issues with the implementation of various
190246849Sjkim	  IPv6 multicast APIs which need to be resolved in the API surface
191246849Sjkim	  before the implementation is fully compatible with KAME userland
192246849Sjkim	  use, and these are mostly to do with interface index treatment.
193246849Sjkim
194246849Sjkim	* The literature available discusses the use of either the delta / ASM
195246849Sjkim	  API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
196246849Sjkim	  using setsourcefilter(3)/getsourcefilter(3). For more information
197246849Sjkim	  please refer to RFC 3768, 'Socket Interface Extensions for
198246849Sjkim	  Multicast Source Filters'.
199246849Sjkim
20067754Smsmith	* Applications which use the published RFC 3678 APIs should be fine.
201193267Sjkim
20267754Smsmith	For systems administrators:
203151937Sjkim
20467754Smsmith	* The mtest(8) utility has been refactored to support IPv6, in
20567754Smsmith	  addition to IPv4. Interface addresses are no longer accepted
20667754Smsmith	  as arguments, their names must be used instead. The utility
207246849Sjkim	  will map the interface name to its first IPv4 address as
208246849Sjkim	  returned by getifaddrs(3).
209246849Sjkim
210246849Sjkim	* The ifmcstat(8) utility has also been updated to print the MLDv2
211246849Sjkim	  endpoint state and source filter lists via sysctl(3).
212246849Sjkim
213246849Sjkim	* The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
214246849Sjkim	  loopback of IPv6 multicast datagrams by default; it defaults to 1
215246849Sjkim	  to preserve the existing behaviour. Disabling multicast loopback is
216246849Sjkim	  recommended for optimal system performance.
217246849Sjkim
218246849Sjkim	* The IPv6 MROUTING code has been changed to examine this sysctl
219246849Sjkim	  instead of attempting to perform a group lookup before looping
22067754Smsmith	  back forwarded datagrams.
221167802Sjkim
22267754Smsmith	Bump __FreeBSD_version to 800084.
22367754Smsmith
224193267Sjkim20090422:
225193267Sjkim	Implement low-level Bluetooth HCI API.
226238381Sjkim	Bump __FreeBSD_version to 800083.
22767754Smsmith
22867754Smsmith20090419:
22967754Smsmith	The layout of struct malloc_type, used by modules to register new
23067754Smsmith	memory allocation types, has changed.  Most modules will need to
23167754Smsmith	be rebuilt or panics may be experienced.
232246849Sjkim	Bump __FreeBSD_version to 800081.
23367754Smsmith
234246849Sjkim20090415:
235246849Sjkim	Anticipate overflowing inp_flags - add inp_flags2.
236246849Sjkim	This changes most offsets in inpcb, so checking v4 connection
237246849Sjkim	state will require a world rebuild.
238246849Sjkim	Bump __FreeBSD_version to 800080.
239254745Sjkim
240246849Sjkim20090415:
241246849Sjkim	Add an llentry to struct route and struct route_in6. Modules
242246849Sjkim	embedding a struct route will need to be recompiled.
243246849Sjkim	Bump __FreeBSD_version to 800079.
244246849Sjkim
245246849Sjkim20090414:
246246849Sjkim	The size of rt_metrics_lite and by extension rtentry has changed.
247246849Sjkim	Networking administration apps will need to be recompiled.
248246849Sjkim	The route command now supports show as an alias for get, weighting
249246849Sjkim	of routes, sticky and nostick flags to alter the behavior of stateful
250246849Sjkim	load balancing.
251246849Sjkim	Bump __FreeBSD_version to 800078.
252246849Sjkim
253246849Sjkim20090408:
254246849Sjkim	Do not use Giant for kbdmux(4) locking. This is wrong and
255246849Sjkim	apparently causing more problems than it solves. This will
256246849Sjkim	re-open the issue where interrupt handlers may race with
257246849Sjkim	kbdmux(4) in polling mode. Typical symptoms include (but
258246849Sjkim	not limited to) duplicated and/or missing characters when
259246849Sjkim	low level console functions (such as gets) are used while
260246849Sjkim	interrupts are enabled (for example geli password prompt,
261246849Sjkim	mountroot prompt etc.). Disabling kbdmux(4) may help.
262254745Sjkim
263254745Sjkim20090407:
26467754Smsmith	The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
26567754Smsmith	kernel modules referencing any of the above need to be recompiled.
266246849Sjkim	Bump __FreeBSD_version to 800075.
26767754Smsmith
268246849Sjkim20090320:
269246849Sjkim	GEOM_PART has become the default partition slicer for storage devices,
270246849Sjkim	replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
271246849Sjkim	introduces some changes:
272246849Sjkim
273246849Sjkim	MSDOS/EBR: the devices created from MSDOS extended partition entries
274246849Sjkim	(EBR) can be named differently than with GEOM_MBR and are now symlinks
275246849Sjkim	to devices with offset-based names. fstabs may need to be modified.
276246849Sjkim
277246849Sjkim	BSD: the "geometry does not match label" warning is harmless in most
27867754Smsmith	cases but it points to problems in file system misalignment with
27967754Smsmith	disk geometry. The "c" partition is now implicit, covers the whole
280246849Sjkim	top-level drive and cannot be (mis)used by users.
28167754Smsmith
282246849Sjkim	General: Kernel dumps are now not allowed to be written to devices
283246849Sjkim	whose partition types indicate they are meant to be used for file
284246849Sjkim	systems (or, in case of MSDOS partitions, as something else than
285246849Sjkim	the "386BSD" type).
286246849Sjkim
287246849Sjkim	Most of these changes date approximately from 200812.
28867754Smsmith
28967754Smsmith20090319:
290246849Sjkim	The uscanner(4) driver has been removed from the kernel. This follows
29167754Smsmith	Linux removing theirs in 2.6 and making libusb the default interface
292246849Sjkim	(supported by sane).
293246849Sjkim
294246849Sjkim20090319:
295246849Sjkim	The multicast forwarding code has been cleaned up. netstat(1)
296246849Sjkim	only relies on KVM now for printing bandwidth upcall meters.
297246849Sjkim	The IPv4 and IPv6 modules are split into ip_mroute_mod and
298246849Sjkim	ip6_mroute_mod respectively. The config(5) options for statically
299246849Sjkim	compiling this code remain the same, i.e. 'options MROUTING'.
300246849Sjkim
301246849Sjkim20090315:
302246849Sjkim	Support for the IFF_NEEDSGIANT network interface flag has been
303246849Sjkim	removed, which means that non-MPSAFE network device drivers are no
304246849Sjkim	longer supported.  In particular, if_ar, if_sr, and network device
305246849Sjkim	drivers from the old (legacy) USB stack can no longer be built or
306246849Sjkim	used.
307246849Sjkim
308246849Sjkim20090313:
309246849Sjkim	POSIX.1 Native Language Support (NLS) has been enabled in libc and
310246849Sjkim	a bunch of new language catalog files have also been added.
311246849Sjkim	This means that some common libc messages are now localized and
312246849Sjkim	they depend on the LC_MESSAGES environmental variable.
313246849Sjkim
314246849Sjkim20090313:
315246849Sjkim	The k8temp(4) driver has been renamed to amdtemp(4) since
316246849Sjkim	support for K10 and K11 CPU families was added.
317246849Sjkim
318246849Sjkim20090309:
319246849Sjkim	IGMPv3 and Source-Specific Multicast (SSM) have been merged
320246849Sjkim	to the IPv4 stack. VIMAGE hooks are in but not yet used.
321246849Sjkim
322246849Sjkim	For kernel developers, the most important changes are that the
323246849Sjkim	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
324246849Sjkim	and this lock has been downgraded to a non-recursive mutex.
325246849Sjkim
32667754Smsmith	Transport protocols (UDP, Raw IP) are now responsible for filtering
32767754Smsmith	inbound multicast traffic according to group membership and source
328246849Sjkim	filters. The imo_multicast_filter() KPI exists for this purpose.
32967754Smsmith	Transports which do not use multicast (SCTP, TCP) already reject
330246849Sjkim	multicast by default. Forwarding and receive performance may improve
331246849Sjkim	as a mutex acquisition is no longer needed in the ip_input()
332246849Sjkim	low-level input path.  in_addmulti() and in_delmulti() are shimmed
333246849Sjkim	to new KPIs which exist to support SSM in-kernel.
334246849Sjkim
335246849Sjkim	For application developers, it is recommended that loopback of
336246849Sjkim	multicast datagrams be disabled for best performance, as this
337246849Sjkim	will still cause the lock to be taken for each looped-back
338246849Sjkim	datagram transmission. The net.inet.ip.mcast.loop sysctl may
339246849Sjkim	be tuned to 0 to disable loopback by default; it defaults to 1
340246849Sjkim	to preserve the existing behaviour.
341246849Sjkim
342246849Sjkim	For systems administrators, to obtain best performance with
343246849Sjkim	multicast reception and multiple groups, it is always recommended
34467754Smsmith	that a card with a suitably precise hash filter is used. Hash
34567754Smsmith	collisions will still result in the lock being taken within the
346238381Sjkim	transport protocol input path to check group membership.
34767754Smsmith
34867754Smsmith	If deploying FreeBSD in an environment with IGMP snooping switches,
349	it is recommended that the net.inet.igmp.sendlocal sysctl remain
350	enabled; this forces 224.0.0.0/24 group membership to be announced
351	via IGMP.
352
353	The size of 'struct igmpstat' has changed; netstat needs to be
354	recompiled to reflect this.
355	Bump __FreeBSD_version to 800070.
356
35720090309:
358	libusb20.so.1 is now installed as libusb.so.1 and the ports system
359	updated to use it. This requires a buildworld/installworld in order to
360	update the library and dependencies (usbconfig, etc). Its advisable to
361	rebuild all ports which uses libusb. More specific directions are given
362	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
363	libusb are no longer required and can be removed.
364
36520090302:
366	A workaround is committed to allow the creation of System V shared
367	memory segment of size > 2 GB on the 64-bit architectures.
368	Due to a limitation of the existing ABI, the shm_segsz member
369	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
370	wrong for large segments. Note that limits must be explicitly
371	raised to allow such segments to be created.
372
37320090301:
374	The layout of struct ifnet has changed, requiring a rebuild of all
375	network device driver modules.
376
37720090227:
378	The /dev handling for the new USB stack has changed, a
379	buildworld/installworld is required for libusb20.
380
38120090223:
382	The new USB2 stack has now been permanently moved in and all kernel and
383	module names reverted to their previous values (eg, usb, ehci, ohci,
384	ums, ...).  The old usb stack can be compiled in by prefixing the name
385	with the letter 'o', the old usb modules have been removed.
386	Updating entry 20090216 for xorg and 20090215 for libmap may still
387	apply.
388
38920090217:
390	The rc.conf(5) option if_up_delay has been renamed to
391	defaultroute_delay to better reflect its purpose. If you have
392	customized this setting in /etc/rc.conf you need to update it to
393	use the new name.
394
39520090216:
396	xorg 7.4 wants to configure its input devices via hald which does not
397	yet work with USB2. If the keyboard/mouse does not work in xorg then
398	add
399		Option "AllowEmptyInput" "off"
400	to your ServerLayout section.  This will cause X to use the configured
401	kbd and mouse sections from your xorg.conf.
402
40320090215:
404	The GENERIC kernels for all architectures now default to the new USB2
405	stack. No kernel config options or code have been removed so if a
406	problem arises please report it and optionally revert to the old USB
407	stack. If you are loading USB kernel modules or have a custom kernel
408	that includes GENERIC then ensure that usb names are also changed over,
409	eg uftdi -> usb2_serial_ftdi.
410
411	Older programs linked against the ports libusb 0.1 need to be
412	redirected to the new stack's libusb20.  /etc/libmap.conf can
413	be used for this:
414		# Map old usb library to new one for usb2 stack
415		libusb-0.1.so.8	libusb20.so.1
416
41720090203:
418	The ichsmb(4) driver has been changed to require SMBus slave
419	addresses be left-justified (xxxxxxx0b) rather than right-justified.
420	All of the other SMBus controller drivers require left-justified
421	slave addresses, so this change makes all the drivers provide the
422	same interface.
423
42420090201:
425	INET6 statistics (struct ip6stat) was updated.
426	netstat(1) needs to be recompiled.
427
42820090119:
429	NTFS has been removed from GENERIC kernel on amd64 to match
430	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
431	will load ntfs.ko module automatically when NTFS support is
432	actually needed, unless ntfs.ko is not installed or security
433	level prohibits loading kernel modules. If either is the case,
434	"options NTFS" has to be added into kernel config.
435
43620090115:
437	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
438	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
439	800061. User space tools that rely on the size of struct tcpcb in
440	tcp_var.h (e.g. sockstat) need to be recompiled.
441
44220081225:
443	ng_tty(4) module updated to match the new TTY subsystem.
444	Due to API change, user-level applications must be updated.
445	New API support added to mpd5 CVS and expected to be present
446	in next mpd5.3 release.
447
44820081219:
449	With __FreeBSD_version 800060 the makefs tool is part of
450	the base system (it was a port).
451
45220081216:
453	The afdata and ifnet locks have been changed from mutexes to
454	rwlocks, network modules will need to be re-compiled.
455
45620081214:
457	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
458	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
459	The new code reduced struct rtentry{} by 16 bytes on 32-bit
460	architecture and 40 bytes on 64-bit architecture. The userland
461	applications "arp" and "ndp" have been updated accordingly.
462	The output from "netstat -r" shows only routing entries and
463	none of the L2 information.
464
46520081130:
466	__FreeBSD_version 800057 marks the switchover from the
467	binary ath hal to source code. Users must add the line:
468
469	options	AH_SUPPORT_AR5416
470
471	to their kernel config files when specifying:
472
473	device	ath_hal
474
475	The ath_hal module no longer exists; the code is now compiled
476	together with the driver in the ath module.  It is now
477	possible to tailor chip support (i.e. reduce the set of chips
478	and thereby the code size); consult ath_hal(4) for details.
479
48020081121:
481	__FreeBSD_version 800054 adds memory barriers to
482	<machine/atomic.h>, new interfaces to ifnet to facilitate
483	multiple hardware transmit queues for cards that support
484	them, and a lock-less ring-buffer implementation to
485	enable drivers to more efficiently manage queueing of
486	packets.
487
48820081117:
489	A new version of ZFS (version 13) has been merged to -HEAD.
490	This version has zpool attribute "listsnapshots" off by
491	default, which means "zfs list" does not show snapshots,
492	and is the same as Solaris behavior.
493
49420081028:
495	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
496
49720081009:
498	The uhci, ohci, ehci and slhci USB Host controller drivers have
499	been put into separate modules. If you load the usb module
500	separately through loader.conf you will need to load the
501	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
502	controller add the following to loader.conf:
503
504		uhci_load="YES"
505		ehci_load="YES"
506
50720081009:
508	The ABI used by the PMC toolset has changed.  Please keep
509	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
510	sync.
511
51220080820:
513	The TTY subsystem of the kernel has been replaced by a new
514	implementation, which provides better scalability and an
515	improved driver model. Most common drivers have been migrated to
516	the new TTY subsystem, while others have not. The following
517	drivers have not yet been ported to the new TTY layer:
518
519	PCI/ISA:
520		cy, digi, rc, rp, sio
521
522	USB:
523		ubser, ucycom
524
525	Line disciplines:
526		ng_h4, ng_tty, ppp, sl, snp
527
528	Adding these drivers to your kernel configuration file shall
529	cause compilation to fail.
530
53120080818:
532	ntpd has been upgraded to 4.2.4p5.
533
53420080801:
535	OpenSSH has been upgraded to 5.1p1.
536
537	For many years, FreeBSD's version of OpenSSH preferred DSA
538	over RSA for host and user authentication keys.  With this
539	upgrade, we've switched to the vendor's default of RSA over
540	DSA.  This may cause upgraded clients to warn about unknown
541	host keys even for previously known hosts.  Users should
542	follow the usual procedure for verifying host keys before
543	accepting the RSA key.
544
545	This can be circumvented by setting the "HostKeyAlgorithms"
546	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
547	command line.
548
549	Please note that the sequence of keys offered for
550	authentication has been changed as well.  You may want to
551	specify IdentityFile in a different order to revert this
552	behavior.
553
55420080713:
555	The sio(4) driver has been removed from the i386 and amd64
556	kernel configuration files. This means uart(4) is now the
557	default serial port driver on those platforms as well.
558
559	To prevent collisions with the sio(4) driver, the uart(4) driver
560	uses different names for its device nodes. This means the
561	onboard serial port will now most likely be called "ttyu0"
562	instead of "ttyd0". You may need to reconfigure applications to
563	use the new device names.
564
565	When using the serial port as a boot console, be sure to update
566	/boot/device.hints and /etc/ttys before booting the new kernel.
567	If you forget to do so, you can still manually specify the hints
568	at the loader prompt:
569
570		set hint.uart.0.at="isa"
571		set hint.uart.0.port="0x3F8"
572		set hint.uart.0.flags="0x10"
573		set hint.uart.0.irq="4"
574		boot -s
575
57620080609:
577	The gpt(8) utility has been removed. Use gpart(8) to partition
578	disks instead.
579
58020080603:
581	The version that Linuxulator emulates was changed from 2.4.2
582	to 2.6.16. If you experience any problems with Linux binaries
583	please try to set sysctl compat.linux.osrelease to 2.4.2 and
584	if it fixes the problem contact emulation mailing list.
585
58620080525:
587	ISDN4BSD (I4B) was removed from the src tree. You may need to
588	update a your kernel configuration and remove relevant entries.
589
59020080509:
591	I have checked in code to support multiple routing tables.
592	See the man pages setfib(1) and setfib(2).
593	This is a hopefully backwards compatible version,
594	but to make use of it you need to compile your kernel
595	with options ROUTETABLES=2 (or more up to 16).
596
59720080420:
598	The 802.11 wireless support was redone to enable multi-bss
599	operation on devices that are capable.  The underlying device
600	is no longer used directly but instead wlanX devices are
601	cloned with ifconfig.  This requires changes to rc.conf files.
602	For example, change:
603		ifconfig_ath0="WPA DHCP"
604	to
605		wlans_ath0=wlan0
606		ifconfig_wlan0="WPA DHCP"
607	see rc.conf(5) for more details.  In addition, mergemaster of
608	/etc/rc.d is highly recommended.  Simultaneous update of userland
609	and kernel wouldn't hurt either.
610
611	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
612	modules were merged into the base wlan module.  All references
613	to these modules (e.g. in kernel config files) must be removed.
614
61520080408:
616	psm(4) has gained write(2) support in native operation level.
617	Arbitrary commands can be written to /dev/psm%d and status can
618	be read back from it.  Therefore, an application is responsible
619	for status validation and error recovery.  It is a no-op in
620	other operation levels.
621
62220080312:
623	Support for KSE threading has been removed from the kernel.  To
624	run legacy applications linked against KSE libmap.conf may
625	be used.  The following libmap.conf may be used to ensure
626	compatibility with any prior release:
627
628	libpthread.so.1 libthr.so.1
629	libpthread.so.2 libthr.so.2
630	libkse.so.3 libthr.so.3
631
63220080301:
633	The layout of struct vmspace has changed. This affects libkvm
634	and any executables that link against libkvm and use the
635	kvm_getprocs() function. In particular, but not exclusively,
636	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
637	The effects are minimal, but it's advisable to upgrade world
638	nonetheless.
639
64020080229:
641	The latest em driver no longer has support in it for the
642	82575 adapter, this is now moved to the igb driver. The
643	split was done to make new features that are incompatible
644	with older hardware easier to do.
645
64620080220:
647	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
648	likewise the kernel option is now GEOM_LINUX_LVM.
649
65020080211:
651	The default NFS mount mode has changed from UDP to TCP for
652	increased reliability.  If you rely on (insecurely) NFS
653	mounting across a firewall you may need to update your
654	firewall rules.
655
65620080208:
657	Belatedly note the addition of m_collapse for compacting
658	mbuf chains.
659
66020080126:
661	The fts(3) structures have been changed to use adequate
662	integer types for their members and so to be able to cope
663	with huge file trees.  The old fts(3) ABI is preserved
664	through symbol versioning in libc, so third-party binaries
665	using fts(3) should still work, although they will not take
666	advantage of the extended types.  At the same time, some
667	third-party software might fail to build after this change
668	due to unportable assumptions made in its source code about
669	fts(3) structure members.  Such software should be fixed
670	by its vendor or, in the worst case, in the ports tree.
671	FreeBSD_version 800015 marks this change for the unlikely
672	case that a portable fix is impossible.
673
67420080123:
675	To upgrade to -current after this date, you must be running
676	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
677	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
678
67920071128:
680	The ADAPTIVE_GIANT kernel option has been retired because its
681	functionality is the default now.
682
68320071118:
684	The AT keyboard emulation of sunkbd(4) has been turned on
685	by default. In order to make the special symbols of the Sun
686	keyboards driven by sunkbd(4) work under X these now have
687	to be configured the same way as Sun USB keyboards driven
688	by ukbd(4) (which also does AT keyboard emulation), f.e.:
689
690	Option	"XkbLayout" "us"
691	Option	"XkbRules" "xorg"
692	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
693
69420071024:
695	It has been decided that it is desirable to provide ABI
696	backwards compatibility to the FreeBSD 4/5/6 versions of the
697	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
698	broken with the introduction of PCI domain support (see the
699	20070930 entry). Unfortunately, this required the ABI of
700	PCIOCGETCONF to be broken again in order to be able to
701	provide backwards compatibility to the old version of that
702	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
703	again. As for prominent ports this affects neither pciutils
704	nor xorg-server this time, the hal port needs to be rebuilt
705	however.
706
70720071020:
708	The misnamed kthread_create() and friends have been renamed
709	to kproc_create() etc. Many of the callers already
710	used kproc_start()..
711	I will return kthread_create() and friends in a while
712	with implementations that actually create threads, not procs.
713	Renaming corresponds with version 800002.
714
71520071010:
716	RELENG_7 branched.
717
71820071009:
719	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
720	WITHOUT_LIBTHR are set.
721
72220070930:
723	The PCI code has been made aware of PCI domains. This means that
724	the location strings as used by pciconf(8) etc are now in the
725	following format: pci<domain>:<bus>:<device>[:<function>]. It
726	also means that consumers of <sys/pciio.h> potentially need to
727	be recompiled; this includes the hal and xorg-server ports.
728
72920070928:
730	The caching daemon (cached) was renamed to nscd. nscd.conf
731	configuration file should be used instead of cached.conf and
732	nscd_enable, nscd_pidfile and nscd_flags options should be used
733	instead of cached_enable, cached_pidfile and cached_flags in
734	rc.conf.
735
73620070921:
737	The getfacl(1) utility now prints owning user and group name
738	instead of owning uid and gid in the three line comment header.
739	This is the same behavior as getfacl(1) on Solaris and Linux.
740
74120070704:
742	The new IPsec code is now compiled in using the IPSEC option.  The
743	IPSEC option now requires "device crypto" be defined in your kernel
744	configuration.  The FAST_IPSEC kernel option is now deprecated.
745
74620070702:
747	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
748	note the changed syntax - keep state is now on by default.  Also
749	note the fact that ftp-proxy(8) has been changed from bottom up and
750	has been moved from libexec to usr/sbin.  Changes in the ALTQ
751	handling also affect users of IPFW's ALTQ capabilities.
752
75320070701:
754	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
755	only IPsec supported by FreeBSD.  The new IPsec stack
756	supports both IPv4 and IPv6. The kernel option will change
757	after the code changes have settled in.  For now the kernel
758	option IPSEC is deprecated and FAST_IPSEC is the only option, that
759	will change after some settling time.
760
76120070701:
762	The wicontrol(8) utility has been removed from the base system. wi(4)
763	cards should be configured using ifconfig(8), see the man page for more
764	information.
765
76620070612:
767	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
768	instead of the nve(4) driver. Please update your configuration
769	accordingly.
770
77120070612:
772	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
773	database if it is missing or older than the aliases file.  If
774	desired, set the new rc.conf option sendmail_rebuild_aliases
775	to "YES" to restore that functionality.
776
77720070612:
778	The IPv4 multicast socket code has been considerably modified, and
779	moved to the file sys/netinet/in_mcast.c. Initial support for the
780	RFC 3678 Source-Specific Multicast Socket API has been added to
781	the IPv4 network stack.
782
783	Strict multicast and broadcast reception is now the default for
784	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
785	has now been removed.
786
787	The RFC 1724 hack for interface selection has been removed; the use
788	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
789	been added to replace it. Consumers such as routed will soon be
790	updated to reflect this.
791
792	These changes affect users who are running routed(8) or rdisc(8)
793	from the FreeBSD base system on point-to-point or unnumbered
794	interfaces.
795
79620070610:
797	The net80211 layer has changed significantly and all wireless
798	drivers that depend on it need to be recompiled.  Further these
799	changes require that any program that interacts with the wireless
800	support in the kernel be recompiled; this includes: ifconfig,
801	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
802	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
803	if they use modules for wireless support.  These modules implement
804	scanning support for station and ap modes, respectively.  Failure
805	to load the appropriate module before marking a wireless interface
806	up will result in a message to the console and the device not
807	operating properly.
808
80920070610:
810	The pam_nologin(8) module ceases to provide an authentication
811	function and starts providing an account management function.
812	Consequent changes to /etc/pam.d should be brought in using
813	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
814	need manual editing as follows.  Locate this line (or similar):
815
816		auth	required	pam_nologin.so	no_warn
817
818	and change it according to this example:
819
820		account	required	pam_nologin.so	no_warn
821
822	That is, the first word needs to be changed from "auth" to
823	"account".  The new line can be moved to the account section
824	within the file for clarity.  Not updating pam.conf(5) files
825	will result in nologin(5) ignored by the respective services.
826
82720070529:
828	The ether_ioctl() function has been synchronized with ioctl(2)
829	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
830	has changed on 64-bit architectures.  All kernel modules using
831	ether_ioctl() need to be rebuilt on such architectures.
832
83320070516:
834	Improved INCLUDE_CONFIG_FILE support has been introduced to the
835	config(8) utility. In order to take advantage of this new
836	functionality, you are expected to recompile and install
837	src/usr.sbin/config. If you don't rebuild config(8), and your
838	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
839	build will be broken because of a missing "kernconfstring"
840	symbol.
841
84220070513:
843	Symbol versioning is enabled by default.  To disable it, use
844	option WITHOUT_SYMVER.  It is not advisable to attempt to
845	disable symbol versioning once it is enabled; your installworld
846	will break because a symbol version-less libc will get installed
847	before the install tools.  As a result, the old install tools,
848	which previously had symbol dependencies to FBSD_1.0, will fail
849	because the freshly installed libc will not have them.
850
851	The default threading library (providing "libpthread") has been
852	changed to libthr.  If you wish to have libkse as your default,
853	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
854
85520070423:
856	The ABI breakage in sendmail(8)'s libmilter has been repaired
857	so it is no longer necessary to recompile mail filters (aka,
858	milters).  If you recompiled mail filters after the 20070408
859	note, it is not necessary to recompile them again.
860
86120070417:
862	The new trunk(4) driver has been renamed to lagg(4) as it better
863	reflects its purpose. ifconfig will need to be recompiled.
864
86520070408:
866	sendmail(8) has been updated to version 8.14.1.  Mail filters
867	(aka, milters) compiled against the libmilter included in the
868	base operating system should be recompiled.
869
87020070302:
871	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
872	In order to use them one must agree to the respective LICENSE in
873	share/doc/legal and define legal.intel_<name>.license_ack=1 via
874	loader.conf(5) or kenv(1).  Make sure to deinstall the now
875	deprecated modules from the respective firmware ports.
876
87720070228:
878	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
879	were removed from FreeBSD's libc. These originally came from INRIA
880	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
881	deprecated in previous releases.
882	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
883	replace it as a more portable (and re-entrant) API.
884
88520070224:
886	To support interrupt filtering a modification to the newbus API
887	has occurred, ABI was broken and __FreeBSD_version was bumped
888	to 700031. Please make sure that your kernel and modules are in
889	sync. For more info:
890	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
891
89220070224:
893	The IPv6 multicast forwarding code may now be loaded into GENERIC
894	kernels by loading the ip_mroute.ko module. This is built into the
895	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
896	set; see src.conf(5) for more information.
897
89820070214:
899	The output of netstat -r has changed. Without -n, we now only
900	print a "network name" without the prefix length if the network
901	address and mask exactly match a Class A/B/C network, and an entry
902	exists in the nsswitch "networks" map.
903	With -n, we print the full unabbreviated CIDR network prefix in
904	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
905	This change is in preparation for changes such as equal-cost
906	multipath, and to more generally assist operational deployment
907	of FreeBSD as a modern IPv4 router.
908
90920070210:
910	PIM has been turned on by default in the IPv4 multicast
911	routing code. The kernel option 'PIM' has now been removed.
912	PIM is now built by default if option 'MROUTING' is specified.
913	It may now be loaded into GENERIC kernels by loading the
914	ip_mroute.ko module.
915
91620070207:
917	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
918	has been removed. Its functionality may be achieved by explicitly
919	configuring gif(4) interfaces and using the 'phyint' keyword in
920	mrouted.conf.
921	XORP does not support source-routed IPv4 multicast tunnels nor the
922	integrated IPIP tunneling, therefore it is not affected by this
923	change. The __FreeBSD_version macro has been bumped to 700030.
924
92520061221:
926	Support for PCI Message Signalled Interrupts has been
927	re-enabled in the bge driver, only for those chips which are
928	believed to support it properly.  If there are any problems,
929	MSI can be disabled completely by setting the
930	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
931	in the loader.
932
93320061214:
934	Support for PCI Message Signalled Interrupts has been
935	disabled again in the bge driver.  Many revisions of the
936	hardware fail to support it properly.  Support can be
937	re-enabled by removing the #define of BGE_DISABLE_MSI in
938	"src/sys/dev/bge/if_bge.c".
939
94020061214:
941	Support for PCI Message Signalled Interrupts has been added
942	to the bge driver.  If there are any problems, MSI can be
943	disabled completely by setting the 'hw.pci.enable_msi' and
944	'hw.pci.enable_msix' tunables to 0 in the loader.
945
94620061205:
947	The removal of several facets of the experimental Threading
948	system from the kernel means that the proc and thread structures
949	have changed quite a bit. I suggest all kernel modules that might
950	reference these structures be recompiled.. Especially the
951	linux module.
952
95320061126:
954	Sound infrastructure has been updated with various fixes and
955	improvements. Most of the changes are pretty much transparent,
956	with exceptions of followings:
957	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
958	   moved to their own dev sysctl nodes, for example:
959		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
960	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
961	   own chardev in the form of "dsp%d.<function>%d", where <function>
962	   is p = playback, r = record and v = virtual, respectively. Users
963	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
964	   This does not affect those who are using "/dev/dsp".
965
96620061122:
967	geom(4)'s gmirror(8) class metadata structure has been
968	rev'd from v3 to v4. If you update across this point and
969	your metadata is converted for you, you will not be easily
970	able to downgrade since the /boot/kernel.old/geom_mirror.ko
971	kernel module will be unable to read the v4 metadata.  You
972	can resolve this by doing from the loader(8) prompt:
973
974		set vfs.root.mountfrom="ufs:/dev/XXX"
975
976	where XXX is the root slice of one of the disks that composed
977	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
978	the array the same way you built it originally.
979
98020061122:
981	The following binaries have been disconnected from the build:
982	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
983	and mount_std.  The functionality of these programs has been
984	moved into the mount program.  For example, to mount a devfs
985	filesystem, instead of using mount_devfs, use: "mount -t devfs".
986	This does not affect entries in /etc/fstab, since entries in
987	/etc/fstab are always processed with "mount -t fstype".
988
98920061113:
990	Support for PCI Message Signalled Interrupts on i386 and amd64
991	has been added to the kernel and various drivers will soon be
992	updated to use MSI when it is available.  If there are any problems,
993	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
994	and 'hw.pci.enable_msix' tunables to 0 in the loader.
995
99620061110:
997	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
998	The lockmgr object layout has been changed as a result of having
999	a lock_object embedded in it. As a consequence all file system
1000	kernel modules must be re-compiled. The mutex profiling man page
1001	has not yet been updated to reflect this change.
1002
100320061026:
1004	KSE in the kernel has now been made optional and turned on by
1005	default. Use 'nooption KSE' in your kernel config to turn it
1006	off. All kernel modules *must* be recompiled after this change.
1007	There-after, modules from a KSE kernel should be compatible with
1008	modules from a NOKSE kernel due to the temporary padding fields
1009	added to 'struct proc'.
1010
101120060929:
1012	mrouted and its utilities have been removed from the base system.
1013
101420060927:
1015	Some ioctl(2) command codes have changed.  Full backward ABI
1016	compatibility is provided if the "options COMPAT_FREEBSD6" is
1017	present in the kernel configuration file.  Make sure to add
1018	this option to your kernel config file, or recompile X.Org
1019	and the rest of ports; otherwise they may refuse to work.
1020
102120060924:
1022	tcpslice has been removed from the base system.
1023
102420060913:
1025	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1026	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
1027	systat needs to be rebuilt.
1028
102920060903:
1030	libpcap updated to v0.9.4 and tcpdump to v3.9.4
1031
103220060816:
1033	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1034	for IPFIREWALL_FORWARD is now as it was before when it was first
1035	committed and for years after. The behaviour is now ON.
1036
103720060725:
1038	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1039	Now it can decrypt files created from different architectures.
1040	Unfortunately, it is no longer able to decrypt a cipher text
1041	generated with an older version on 64 bit architectures.
1042	If you have such a file, you need old utility to decrypt it.
1043
104420060709:
1045	The interface version of the i4b kernel part has changed. So
1046	after updating the kernel sources and compiling a new kernel,
1047	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1048	be rebuilt, and vice versa.
1049
105020060627:
1051	The XBOX kernel now defaults to the nfe(4) driver instead of
1052	the nve(4) driver. Please update your configuration
1053	accordingly.
1054
105520060514:
1056	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1057	PCnet family of NICs has been removed. The new le(4) driver serves
1058	as an equivalent but cross-platform replacement with the pcn(4)
1059	driver still providing performance-optimized support for the subset
1060	of AMD Am79C971 PCnet-FAST and greater chips as before.
1061
106220060511:
1063	The machdep.* sysctls and the adjkerntz utility have been
1064	modified a bit.  The new adjkerntz utility uses the new
1065	sysctl names and sysctlbyname() calls, so it may be impossible
1066	to run an old /sbin/adjkerntz utility in single-user mode
1067	with a new kernel.  Replace the `adjkerntz -i' step before
1068	`make installworld' with:
1069
1070	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1071
1072	and proceed as usual with the rest of the installworld-stage
1073	steps.  Otherwise, you risk installing binaries with their
1074	timestamp set several hours in the future, especially if
1075	you are running with local time set to GMT+X hours.
1076
107720060412:
1078	The ip6fw utility has been removed.  The behavior provided by
1079	ip6fw has been in ipfw2 for a good while and the rc.d scripts
1080	have been updated to deal with it.  There are some rules that
1081	might not migrate cleanly.  Use rc.firewall6 as a template to
1082	rewrite rules.
1083
108420060428:
1085	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1086	attachments have been removed. Make sure to configure scc(4)
1087	on sparc64. Note also that by default puc(4) will use uart(4)
1088	and not sio(4) for serial ports because interrupt handling has
1089	been optimized for multi-port serial cards and only uart(4)
1090	implements the interface to support it.
1091
109220060330:
1093	The scc(4) driver replaces puc(4) for Serial Communications
1094	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1095	Z8530. On sparc64, it is advised to add scc(4) to the kernel
1096	configuration to make sure that the serial ports remain
1097	functional.
1098
109920060317:
1100	Most world/kernel related NO_* build options changed names.
1101	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1102	after FreeBSD ports) and should be set in /etc/src.conf
1103	(the src.conf(5) manpage is provided).  Full backwards
1104	compatibility is maintained for the time being though it's
1105	highly recommended to start moving old options out of the
1106	system-wide /etc/make.conf file into the new /etc/src.conf
1107	while also properly renaming them.  More conversions will
1108	likely follow.  Posting to current@:
1109
1110	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1111
111220060305:
1113	The NETSMBCRYPTO kernel option has been retired because its
1114	functionality is always included in NETSMB and smbfs.ko now.
1115
111620060303:
1117	The TDFX_LINUX kernel option was retired and replaced by the
1118	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
1119	kernel module.  Loading it alone should suffice to get 3dfx support
1120	for Linux apps because it will pull in 3dfx.ko and linux.ko through
1121	its dependencies.
1122
112320060204:
1124	The 'audit' group was added to support the new auditing functionality
1125	in the base system.  Be sure to follow the directions for updating,
1126	including the requirement to run mergemaster -p.
1127
112820060201:
1129	The kernel ABI to file system modules was changed on i386.
1130	Please make sure that your kernel and modules are in sync.
1131
113220060118:
1133	This actually occured some time ago, but installing the kernel
1134	now also installs a bunch of symbol files for the kernel modules.
1135	This increases the size of /boot/kernel to about 67Mbytes. You
1136	will need twice this if you will eventually back this up to kernel.old
1137	on your next install.
1138	If you have a shortage of room in your root partition, you should add
1139	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1140	to your /etc/make.conf.
1141
114220060113:
1143	libc's malloc implementation has been replaced.  This change has the
1144	potential to uncover application bugs that previously went unnoticed.
1145	See the malloc(3) manual page for more details.
1146
114720060112:
1148	The generic netgraph(4) cookie has been changed. If you upgrade
1149	kernel passing this point, you also need to upgrade userland
1150	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1151
115220060106:
1153	si(4)'s device files now contain the unit number.
1154	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1155
115620060106:
1157	The kernel ABI was mostly destroyed due to a change in the size
1158	of struct lock_object which is nested in other structures such
1159	as mutexes which are nested in all sorts of other structures.
1160	Make sure your kernel and modules are in sync.
1161
116220051231:
1163	The page coloring algorithm in the VM subsystem was converted
1164	from tuning with kernel options to autotuning. Please remove
1165	any PQ_* option except PQ_NOOPT from your kernel config.
1166
116720051211:
1168	The net80211-related tools in the tools/tools/ath directory
1169	have been moved to tools/tools/net80211 and renamed with a
1170	"wlan" prefix.  Scripts that use them should be adjusted
1171	accordingly.
1172
117320051202:
1174	Scripts in the local_startup directories (as defined in
1175	/etc/defaults/rc.conf) that have the new rc.d semantics will
1176	now be run as part of the base system rcorder. If there are
1177	errors or problems with one of these local scripts, it could
1178	cause boot problems. If you encounter such problems, boot in
1179	single user mode, remove that script from the */rc.d directory.
1180	Please report the problem to the port's maintainer, and the
1181	freebsd-ports@freebsd.org mailing list.
1182
118320051129:
1184	The nodev mount option was deprecated in RELENG_6 (where it
1185	was a no-op), and is now unsupported.  If you have nodev or dev listed
1186	in /etc/fstab, remove it, otherwise it will result in a mount error.
1187
118820051129:
1189	ABI between ipfw(4) and ipfw(8) has been changed. You need
1190	to rebuild ipfw(8) when rebuilding kernel.
1191
119220051108:
1193	rp(4)'s device files now contain the unit number.
1194	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1195
119620051029:
1197	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1198	Its /etc/rc.conf.d configuration file has been `ppp' from
1199	the beginning, and hence there is no need to touch it.
1200
120120051014:
1202	Now most modules get their build-time options from the kernel
1203	configuration file.  A few modules still have fixed options
1204	due to their non-conformant implementation, but they will be
1205	corrected eventually.  You may need to review the options of
1206	the modules in use, explicitly specify the non-default options
1207	in the kernel configuration file, and rebuild the kernel and
1208	modules afterwards.
1209
121020051001:
1211	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1212	to turn polling(4) on your interfaces.
1213
121420050927:
1215	The old bridge(4) implementation was retired.  The new
1216	if_bridge(4) serves as a full functional replacement.
1217
121820050722:
1219	The ai_addrlen of a struct addrinfo was changed to a socklen_t
1220	to conform to POSIX-2001.  This change broke an ABI
1221	compatibility on 64 bit architecture.  You have to recompile
1222	userland programs that use getaddrinfo(3) on 64 bit
1223	architecture.
1224
122520050711:
1226	RELENG_6 branched here.
1227
122820050629:
1229	The pccard_ifconfig rc.conf variable has been removed and a new
1230	variable, ifconfig_DEFAULT has been introduced.  Unlike
1231	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1232	do not have ifconfig_ifn entries rather than just those in
1233	removable_interfaces.
1234
123520050616:
1236	Some previous versions of PAM have permitted the use of
1237	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1238	to third party PAM modules in /usr/local/lib.  A change has been
1239	made to require the use of absolute paths in order to avoid
1240	ambiguity and dependence on library path configuration, which may
1241	affect existing configurations.
1242
124320050610:
1244	Major changes to network interface API.  All drivers must be
1245	recompiled.  Drivers not in the base system will need to be
1246	updated to the new APIs.
1247
124820050609:
1249	Changes were made to kinfo_proc in sys/user.h.  Please recompile
1250	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1251	will not behave correctly.
1252
1253	The API and ABI for hwpmc(4) have changed with the addition
1254	of sampling support.  Please recompile lib/libpmc(3) and
1255	usr.sbin/{pmcstat,pmccontrol}.
1256
125720050606:
1258	The OpenBSD dhclient was imported in place of the ISC dhclient
1259	and the network interface configuration scripts were updated
1260	accordingly.  If you use DHCP to configure your interfaces, you
1261	must now run devd.  Also, DNS updating was lost so you will need
1262	to find a workaround if you use this feature.
1263
1264	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1265	sure to run mergemaster -p (like you are supposed to do every time
1266	anyway).
1267
126820050605:
1269	if_bridge was added to the tree. This has changed struct ifnet.
1270	Please recompile userland and all network related modules.
1271
127220050603:
1273	The n_net of a struct netent was changed to an uint32_t, and
1274	1st argument of getnetbyaddr() was changed to an uint32_t, to
1275	conform to POSIX-2001.  These changes broke an ABI
1276	compatibility on 64 bit architecture.  With these changes,
1277	shlib major of libpcap was bumped.  You have to recompile
1278	userland programs that use getnetbyaddr(3), getnetbyname(3),
1279	getnetent(3) and/or libpcap on 64 bit architecture.
1280
128120050528:
1282	Kernel parsing of extra options on '#!' first lines of shell
1283	scripts has changed.  Lines with multiple options likely will
1284	fail after this date.  For full details, please see
1285		http://people.freebsd.org/~gad/Updating-20050528.txt
1286
128720050503:
1288	The packet filter (pf) code has been updated to OpenBSD 3.7
1289	Please note the changed anchor syntax and the fact that
1290	authpf(8) now needs a mounted fdescfs(5) to function.
1291
129220050415:
1293	The NO_MIXED_MODE kernel option has been removed from the i386
1294	amd64 platforms as its use has been superceded by the new local
1295	APIC timer code.  Any kernel config files containing this option
1296	should be updated.
1297
129820050227:
1299	The on-disk format of LC_CTYPE files was changed to be machine
1300	independent.  Please make sure NOT to use NO_CLEAN buildworld
1301	when crossing this point. Crossing this point also requires
1302	recompile or reinstall of all locale depended packages.
1303
130420050225:
1305	The ifi_epoch member of struct if_data has been changed to
1306	contain the uptime at which the interface was created or the
1307	statistics zeroed rather then the wall clock time because
1308	wallclock time may go backwards.  This should have no impact
1309	unless an snmp implementation is using this value (I know of
1310	none at this point.)
1311
131220050224:
1313	The acpi_perf and acpi_throttle drivers are now part of the
1314	acpi(4) main module.  They are no longer built separately.
1315
131620050223:
1317	The layout of struct image_params has changed. You have to
1318	recompile all compatibility modules (linux, svr4, etc) for use
1319	with the new kernel.
1320
132120050223:
1322	The p4tcc driver has been merged into cpufreq(4).  This makes
1323	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1324	compile in "device cpufreq" to restore this functionality.
1325
132620050220:
1327	The responsibility of recomputing the file system summary of
1328	a SoftUpdates-enabled dirty volume has been transferred to the
1329	background fsck.  A rebuild of fsck(8) utility is recommended
1330	if you have updated the kernel.
1331
1332	To get the old behavior (recompute file system summary at mount
1333	time), you can set vfs.ffs.compute_summary_at_mount=1 before
1334	mounting the new volume.
1335
133620050206:
1337	The cpufreq import is complete.  As part of this, the sysctls for
1338	acpi(4) throttling have been removed.  The power_profile script
1339	has been updated, so you can use performance/economy_cpu_freq in
1340	rc.conf(5) to set AC on/offline cpu frequencies.
1341
134220050206:
1343	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1344	requires recompiling libnetgraph and userland netgraph utilities.
1345
134620050114:
1347	Support for abbreviated forms of a number of ipfw options is
1348	now deprecated.  Warnings are printed to stderr indicating the
1349	correct full form when a match occurs.  Some abbreviations may
1350	be supported at a later date based on user feedback.  To be
1351	considered for support, abbreviations must be in use prior to
1352	this commit and unlikely to be confused with current key words.
1353
135420041221:
1355	By a popular demand, a lot of NOFOO options were renamed
1356	to NO_FOO (see bsd.compat.mk for a full list).  The old
1357	spellings are still supported, but will cause annoying
1358	warnings on stderr.  Make sure you upgrade properly (see
1359	the COMMON ITEMS: section later in this file).
1360
136120041219:
1362	Auto-loading of ancillary wlan modules such as wlan_wep has
1363	been temporarily disabled; you need to statically configure
1364	the modules you need into your kernel or explicitly load them
1365	prior to use.  Specifically, if you intend to use WEP encryption
1366	with an 802.11 device load/configure wlan_wep; if you want to
1367	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1368	and wlan_xauth as required.
1369
137020041213:
1371	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1372	(``enable lqr''), older versions would revert to LCP ECHO mode on
1373	negotiation failure.  Now, ``enable echo'' is required for this
1374	behaviour.  The ppp version number has been bumped to 3.4.2 to
1375	reflect the change.
1376
137720041201:
1378	The wlan support has been updated to split the crypto support
1379	into separate modules.  For static WEP you must configure the
1380	wlan_wep module in your system or build and install the module
1381	in place where it can be loaded (the kernel will auto-load
1382	the module when a wep key is configured).
1383
138420041201:
1385	The ath driver has been updated to split the tx rate control
1386	algorithm into a separate module.  You need to include either
1387	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1388
138920041116:
1390	Support for systems with an 80386 CPU has been removed.  Please
1391	use FreeBSD 5.x or earlier on systems with an 80386.
1392
139320041110:
1394	We have had a hack which would mount the root filesystem
1395	R/W if the device were named 'md*'.  As part of the vnode
1396	work I'm doing I have had to remove this hack.  People
1397	building systems which use preloaded MD root filesystems
1398	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1399	their /etc/rc scripts.
1400
140120041104:
1402	FreeBSD 5.3 shipped here.
1403
140420041102:
1405	The size of struct tcpcb has changed again due to the removal
1406	of RFC1644 T/TCP.  You have to recompile userland programs that
1407	read kmem for tcp sockets directly (netstat, sockstat, etc.)
1408
140920041022:
1410	The size of struct tcpcb has changed.  You have to recompile
1411	userland programs that read kmem for tcp sockets directly
1412	(netstat, sockstat, etc.)
1413
141420041016:
1415	RELENG_5 branched here.  For older entries, please see updating
1416	in the RELENG_5 branch.
1417
1418COMMON ITEMS:
1419
1420	General Notes
1421	-------------
1422	Avoid using make -j when upgrading.  From time to time in the
1423	past there have been problems using -j with buildworld and/or
1424	installworld.  This is especially true when upgrading between
1425	"distant" versions (eg one that cross a major release boundary
1426	or several minor releases, or when several months have passed
1427	on the -current branch).
1428
1429	Sometimes, obscure build problems are the result of environment
1430	poisoning.  This can happen because the make utility reads its
1431	environment when searching for values for global variables.
1432	To run your build attempts in an "environmental clean room",
1433	prefix all make commands with 'env -i '.  See the env(1) manual
1434	page for more details.
1435
1436	When upgrading from one major version to another it is generally
1437	best to upgrade to the latest code in the currently installed branch
1438	first, then do an upgrade to the new branch. This is the best-tested
1439	upgrade path, and has the highest probability of being successful.
1440	Please try this approach before reporting problems with a major
1441	version upgrade.
1442
1443	To build a kernel
1444	-----------------
1445	If you are updating from a prior version of FreeBSD (even one just
1446	a few days old), you should follow this procedure.  It is the most
1447	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1448
1449	make kernel-toolchain
1450	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1451	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1452
1453	To test a kernel once
1454	---------------------
1455	If you just want to boot a kernel once (because you are not sure
1456	if it works, or if you want to boot a known bad kernel to provide
1457	debugging information) run
1458	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1459	nextboot -k testkernel
1460
1461	To just build a kernel when you know that it won't mess you up
1462	--------------------------------------------------------------
1463	This assumes you are already running a 5.X system.  Replace
1464	${arch} with the architecture of your machine (e.g. "i386",
1465	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1466
1467	cd src/sys/${arch}/conf
1468	config KERNEL_NAME_HERE
1469	cd ../compile/KERNEL_NAME_HERE
1470	make depend
1471	make
1472	make install
1473
1474	If this fails, go to the "To build a kernel" section.
1475
1476	To rebuild everything and install it on the current system.
1477	-----------------------------------------------------------
1478	# Note: sometimes if you are running current you gotta do more than
1479	# is listed here if you are upgrading from a really old current.
1480
1481	<make sure you have good level 0 dumps>
1482	make buildworld
1483	make kernel KERNCONF=YOUR_KERNEL_HERE
1484							[1]
1485	<reboot in single user>				[3]
1486	mergemaster -p					[5]
1487	make installworld
1488	make delete-old
1489	mergemaster					[4]
1490	<reboot>
1491
1492
1493	To cross-install current onto a separate partition
1494	--------------------------------------------------
1495	# In this approach we use a separate partition to hold
1496	# current's root, 'usr', and 'var' directories.   A partition
1497	# holding "/", "/usr" and "/var" should be about 2GB in
1498	# size.
1499
1500	<make sure you have good level 0 dumps>
1501	<boot into -stable>
1502	make buildworld
1503	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1504	<maybe newfs current's root partition>
1505	<mount current's root partition on directory ${CURRENT_ROOT}>
1506	make installworld DESTDIR=${CURRENT_ROOT}
1507	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1508	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1509	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1510	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1511	<reboot into current>
1512	<do a "native" rebuild/install as described in the previous section>
1513	<maybe install compatibility libraries from ports/misc/compat*>
1514	<reboot>
1515
1516
1517	To upgrade in-place from 5.x-stable to current
1518	----------------------------------------------
1519	<make sure you have good level 0 dumps>
1520	make buildworld					[9]
1521	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1522							[1]
1523	<reboot in single user>				[3]
1524	mergemaster -p					[5]
1525	make installworld
1526	make delete-old
1527	mergemaster -i					[4]
1528	<reboot>
1529
1530	Make sure that you've read the UPDATING file to understand the
1531	tweaks to various things you need.  At this point in the life
1532	cycle of current, things change often and you are on your own
1533	to cope.  The defaults can also change, so please read ALL of
1534	the UPDATING entries.
1535
1536	Also, if you are tracking -current, you must be subscribed to
1537	freebsd-current@freebsd.org.  Make sure that before you update
1538	your sources that you have read and understood all the recent
1539	messages there.  If in doubt, please track -stable which has
1540	much fewer pitfalls.
1541
1542	[1] If you have third party modules, such as vmware, you
1543	should disable them at this point so they don't crash your
1544	system on reboot.
1545
1546	[3] From the bootblocks, boot -s, and then do
1547		fsck -p
1548		mount -u /
1549		mount -a
1550		cd src
1551		adjkerntz -i		# if CMOS is wall time
1552	Also, when doing a major release upgrade, it is required that
1553	you boot into single user mode to do the installworld.
1554
1555	[4] Note: This step is non-optional.  Failure to do this step
1556	can result in a significant reduction in the functionality of the
1557	system.  Attempting to do it by hand is not recommended and those
1558	that pursue this avenue should read this file carefully, as well
1559	as the archives of freebsd-current and freebsd-hackers mailing lists
1560	for potential gotchas.
1561
1562	[5] Usually this step is a noop.  However, from time to time
1563	you may need to do this if you get unknown user in the following
1564	step.  It never hurts to do it all the time.  You may need to
1565	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1566	install) after the buildworld before this step if you last updated
1567	from current before 20020224 or from -stable before 20020408.
1568
1569	[8] In order to have a kernel that can run the 4.x binaries
1570	needed to do an installworld, you must include the COMPAT_FREEBSD4
1571	option in your kernel.  Failure to do so may leave you with a system
1572	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1573	is required to run the 5.x binaries on more recent kernels.
1574
1575	Make sure that you merge any new devices from GENERIC since the
1576	last time you updated your kernel config file.
1577
1578	[9] When checking out sources, you must include the -P flag to have
1579	cvs prune empty directories.
1580
1581	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1582	"?=" instead of the "=" assignment operator, so that buildworld can
1583	override the CPUTYPE if it needs to.
1584
1585	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1586	not on the command line, or in /etc/make.conf.  buildworld will
1587	warn if it is improperly defined.
1588FORMAT:
1589
1590This file contains a list, in reverse chronological order, of major
1591breakages in tracking -current.  Not all things will be listed here,
1592and it only starts on October 16, 2004.  Updating files can found in
1593previous releases if your system is older than this.
1594
1595Copyright information:
1596
1597Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1598
1599Redistribution, publication, translation and use, with or without
1600modification, in full or in part, in any form or format of this
1601document are permitted without further permission from the author.
1602
1603THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1604IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1605WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1606DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1607INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1608(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1609SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1610HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1611STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1612IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1613POSSIBILITY OF SUCH DAMAGE.
1614
1615If you find this document useful, and you want to, you may buy the
1616author a beer.
1617
1618Contact Warner Losh if you have any questions about your use of
1619this document.
1620
1621$FreeBSD: head/UPDATING 195028 2009-06-26 01:10:10Z dougb $
1622