UPDATING revision 191672
1Updating Information for FreeBSD current users
2
3This file is maintained and copyrighted by M. Warner Losh
4<imp@village.org>.  See end of file for further details.  For commonly
5done items, please see the COMMON ITEMS: section later in the file.
6
7Items affecting the ports and packages system can be found in
8/usr/ports/UPDATING.  Please read that file before running
9portupgrade.
10
11NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
12	FreeBSD 8.x has many debugging features turned on, in
13	both the kernel and userland.  These features attempt to detect
14	incorrect use of system primitives, and encourage loud failure
15	through extra sanity checking and fail stop semantics.  They
16	also substantially impact system performance.  If you want to
17	do performance measurement, benchmarking, and optimization,
18	you'll want to turn them off.  This includes various WITNESS-
19	related kernel options, INVARIANTS, malloc debugging flags
20	in userland, and various verbose features in the kernel.  Many
21	developers choose to disable these features on build machines
22	to maximize performance.  (To disable malloc debugging, run
23	ln -s aj /etc/malloc.conf.)
24
2520090429:
26	MLDv2 and Source-Specific Multicast (SSM) have been merged
27	to the IPv6 stack. VIMAGE hooks are in but not yet used.
28	The implementation of SSM within FreeBSD's IPv6 stack closely
29	follows the IPv4 implementation.
30
31	For kernel developers:
32
33	* The most important changes are that the ip6_output() and
34	  ip6_input() paths no longer take the IN6_MULTI_LOCK,
35	  and this lock has been downgraded to a non-recursive mutex.
36
37	* As with the changes to the IPv4 stack to support SSM, filtering
38	  of inbound multicast traffic must now be performed by transport
39	  protocols within the IPv6 stack. This does not apply to TCP and
40	  SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
41
42	* The KPIs used by IPv6 multicast are similar to those used by
43	  the IPv4 stack, with the following differences:
44	   * im6o_mc_filter() is analogous to imo_multicast_filter().
45	   * The legacy KAME entry points in6_joingroup and in6_leavegroup()
46	     are shimmed to in6_mc_join() and in6_mc_leave() respectively.
47	   * IN6_LOOKUP_MULTI() has been deprecated and removed.
48	   * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
49	     for MLDv1 have an additional 'timer' argument which is used to
50	     jitter the initial membership report for the solicited-node
51	     multicast membership on-link.
52	   * This is not strictly needed for MLDv2, which already jitters
53	     its report transmissions.  However, the 'timer' argument is
54	     preserved in case MLDv1 is active on the interface.
55
56	* The KAME linked-list based IPv6 membership implementation has
57	  been refactored to use a vector similar to that used by the IPv4
58	  stack.
59	  Code which maintains a list of its own multicast memberships
60	  internally, e.g. carp, has been updated to reflect the new
61	  semantics.
62
63	* There is a known Lock Order Reversal (LOR) due to in6_setscope()
64	  acquiring the IF_AFDATA_LOCK and being called within ip6_output().
65	  Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
66	  implementation constraint which needs to be addressed in HEAD.
67
68	For application developers:
69
70	* The changes are broadly similar to those made for the IPv4
71	  stack.
72
73	* The use of IPv4 and IPv6 multicast socket options on the same
74	  socket, using mapped addresses, HAS NOT been tested or supported.
75
76	* There are a number of issues with the implementation of various
77	  IPv6 multicast APIs which need to be resolved in the API surface
78	  before the implementation is fully compatible with KAME userland
79	  use, and these are mostly to do with interface index treatment.
80
81	* The literature available discusses the use of either the delta / ASM
82	  API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
83	  using setsourcefilter(3)/getsourcefilter(3). For more information
84	  please refer to RFC 3768, 'Socket Interface Extensions for
85	  Multicast Source Filters'.
86
87	* Applications which use the published RFC 3678 APIs should be fine.
88
89	For systems administrators:
90
91	* The mtest(8) utility has been refactored to support IPv6, in
92	  addition to IPv4. Interface addresses are no longer accepted
93	  as arguments, their names must be used instead. The utility
94	  will map the interface name to its first IPv4 address as
95	  returned by getifaddrs(3).
96
97	* The ifmcstat(8) utility has also been updated to print the MLDv2
98	  endpoint state and source filter lists via sysctl(3).
99
100	* The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
101	  loopback of IPv6 multicast datagrams by default; it defaults to 1
102	  to preserve the existing behaviour. Disabling multicast loopback is
103	  recommended for optimal system performance.
104
105	* The IPv6 MROUTING code has been changed to examine this sysctl
106	  instead of attempting to perform a group lookup before looping
107	  back forwarded datagrams.
108
109	Bump __FreeBSD_version to 800084.
110
11120090422:
112	Implement low-level Bluetooth HCI API.
113	Bump __FreeBSD_version to 800083.
114
11520090419:
116	The layout of struct malloc_type, used by modules to register new
117	memory allocation types, has changed.  Most modules will need to
118	be rebuilt or panics may be experienced.
119	Bump __FreeBSD_version to 800081.
120
12120090415:
122	Anticipate overflowing inp_flags - add inp_flags2.
123	This changes most offsets in inpcb, so checking v4 connection
124	state will require a world rebuild.
125	Bump __FreeBSD_version to 800080.
126
12720090415:
128	Add an llentry to struct route and struct route_in6. Modules
129	embedding a struct route will need to be recompiled.
130	Bump __FreeBSD_version to 800079.
131
13220090414:
133	The size of rt_metrics_lite and by extension rtentry has changed.
134	Networking administration apps will need to be recompiled.
135	The route command now supports show as an alias for get, weighting
136	of routes, sticky and nostick flags to alter the behavior of stateful
137	load balancing.
138	Bump __FreeBSD_version to 800078.
139
14020090408:
141	Do not use Giant for kbdmux(4) locking. This is wrong and
142	apparently causing more problems than it solves. This will
143	re-open the issue where interrupt handlers may race with
144	kbdmux(4) in polling mode. Typical symptoms include (but
145	not limited to) duplicated and/or missing characters when
146	low level console functions (such as gets) are used while
147	interrupts are enabled (for example geli password prompt,
148	mountroot prompt etc.). Disabling kbdmux(4) may help.
149
15020090407:
151	The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
152	kernel modules referencing any of the above need to be recompiled.
153	Bump __FreeBSD_version to 800075.
154
15520090320:
156	GEOM_PART has become the default partition slicer for storage devices,
157	replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
158	introduces some changes:
159
160	MSDOS/EBR: the devices created from MSDOS extended partition entries
161	(EBR) can be named differently than with GEOM_MBR and are now symlinks
162	to devices with offset-based names. fstabs may need to be modified.
163
164	BSD: the "geometry does not match label" warning is harmless in most
165	cases but it points to problems in file system misalignment with
166	disk geometry. The "c" partition is now implicit, covers the whole
167	top-level drive and cannot be (mis)used by users.
168
169	General: Kernel dumps are now not allowed to be written to devices
170	whose partition types indicate they are meant to be used for file
171	systems (or, in case of MSDOS partitions, as something else than
172	the "386BSD" type).
173
174	Most of these changes date approximately from 200812.
175
17620090319:
177	The uscanner(4) driver has been removed from the kernel. This follows
178	Linux removing theirs in 2.6 and making libusb the default interface
179	(supported by sane).
180
18120090319:
182	The multicast forwarding code has been cleaned up. netstat(1)
183	only relies on KVM now for printing bandwidth upcall meters.
184	The IPv4 and IPv6 modules are split into ip_mroute_mod and
185	ip6_mroute_mod respectively. The config(5) options for statically
186	compiling this code remain the same, i.e. 'options MROUTING'.
187
18820090315:
189	Support for the IFF_NEEDSGIANT network interface flag has been
190	removed, which means that non-MPSAFE network device drivers are no
191	longer supported.  In particular, if_ar, if_sr, and network device
192	drivers from the old (legacy) USB stack can no longer be built or
193	used.
194
19520090313:
196	POSIX.1 Native Language Support (NLS) has been enabled in libc and
197	a bunch of new language catalog files have also been added.
198	This means that some common libc messages are now localized and
199	they depend on the LC_MESSAGES environmental variable.
200
20120090313:
202	The k8temp(4) driver has been renamed to amdtemp(4) since
203	support for K10 and K11 CPU families was added.
204
20520090309:
206	IGMPv3 and Source-Specific Multicast (SSM) have been merged
207	to the IPv4 stack. VIMAGE hooks are in but not yet used.
208
209	For kernel developers, the most important changes are that the
210	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
211	and this lock has been downgraded to a non-recursive mutex.
212
213	Transport protocols (UDP, Raw IP) are now responsible for filtering
214	inbound multicast traffic according to group membership and source
215	filters. The imo_multicast_filter() KPI exists for this purpose.
216	Transports which do not use multicast (SCTP, TCP) already reject
217	multicast by default. Forwarding and receive performance may improve
218	as a mutex acquisition is no longer needed in the ip_input()
219	low-level input path.  in_addmulti() and in_delmulti() are shimmed
220	to new KPIs which exist to support SSM in-kernel.
221
222	For application developers, it is recommended that loopback of
223	multicast datagrams be disabled for best performance, as this
224	will still cause the lock to be taken for each looped-back
225	datagram transmission. The net.inet.ip.mcast.loop sysctl may
226	be tuned to 0 to disable loopback by default; it defaults to 1
227	to preserve the existing behaviour.
228
229	For systems administrators, to obtain best performance with
230	multicast reception and multiple groups, it is always recommended
231	that a card with a suitably precise hash filter is used. Hash
232	collisions will still result in the lock being taken within the
233	transport protocol input path to check group membership.
234
235	If deploying FreeBSD in an environment with IGMP snooping switches,
236	it is recommended that the net.inet.igmp.sendlocal sysctl remain
237	enabled; this forces 224.0.0.0/24 group membership to be announced
238	via IGMP.
239
240	The size of 'struct igmpstat' has changed; netstat needs to be
241	recompiled to reflect this.
242	Bump __FreeBSD_version to 800070.
243
24420090309:
245	libusb20.so.1 is now installed as libusb.so.1 and the ports system
246	updated to use it. This requires a buildworld/installworld in order to
247	update the library and dependencies (usbconfig, etc). Its advisable to
248	rebuild all ports which uses libusb. More specific directions are given
249	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
250	libusb are no longer required and can be removed.
251
25220090302:
253	A workaround is committed to allow the creation of System V shared
254	memory segment of size > 2 GB on the 64-bit architectures.
255	Due to a limitation of the existing ABI, the shm_segsz member
256	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
257	wrong for large segments. Note that limits must be explicitely
258	raised to allow such segments to be created.
259
26020090301:
261	The layout of struct ifnet has changed, requiring a rebuild of all
262	network device driver modules.
263
26420090227:
265	The /dev handling for the new USB stack has changed, a
266	buildworld/installworld is required for libusb20.
267
26820090223:
269	The new USB2 stack has now been permanently moved in and all kernel and
270	module names reverted to their previous values (eg, usb, ehci, ohci,
271	ums, ...).  The old usb stack can be compiled in by prefixing the name
272	with the letter 'o', the old usb modules have been removed.
273	Updating entry 20090216 for xorg and 20090215 for libmap may still
274	apply.
275
27620090217:
277	The rc.conf(5) option if_up_delay has been renamed to
278	defaultroute_delay to better reflect its purpose. If you have
279	customized this setting in /etc/rc.conf you need to update it to
280	use the new name.
281
28220090216:
283	xorg 7.4 wants to configure its input devices via hald which does not
284	yet work with USB2. If the keyboard/mouse does not work in xorg then
285	add
286		Option "AllowEmptyInput" "off"
287	to your ServerLayout section.  This will cause X to use the configured
288	kbd and mouse sections from your xorg.conf.
289
29020090215:
291	The GENERIC kernels for all architectures now default to the new USB2
292	stack. No kernel config options or code have been removed so if a
293	problem arises please report it and optionally revert to the old USB
294	stack. If you are loading USB kernel modules or have a custom kernel
295	that includes GENERIC then ensure that usb names are also changed over,
296	eg uftdi -> usb2_serial_ftdi.
297
298	Older programs linked against the ports libusb 0.1 need to be
299	redirected to the new stack's libusb20.  /etc/libmap.conf can
300	be used for this:
301		# Map old usb library to new one for usb2 stack
302		libusb-0.1.so.8	libusb20.so.1
303
30420090203:
305	The ichsmb(4) driver has been changed to require SMBus slave
306	addresses be left-justified (xxxxxxx0b) rather than right-justified.
307	All of the other SMBus controller drivers require left-justified
308	slave addresses, so this change makes all the drivers provide the
309	same interface.
310
31120090201:
312	INET6 statistics (struct ip6stat) was updated.
313	netstat(1) needs to be recompiled.
314
31520090119:
316	NTFS has been removed from GENERIC kernel on amd64 to match
317	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
318	will load ntfs.ko module automatically when NTFS support is
319	actually needed, unless ntfs.ko is not installed or security
320	level prohibits loading kernel modules. If either is the case,
321	"options NTFS" has to be added into kernel config.
322
32320090115:
324	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
325	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
326	800061. User space tools that rely on the size of struct tcpcb in
327	tcp_var.h (e.g. sockstat) need to be recompiled.
328
32920081225:
330	ng_tty(4) module updated to match the new TTY subsystem.
331	Due to API change, user-level applications must be updated.
332	New API support added to mpd5 CVS and expected to be present
333	in next mpd5.3 release.
334
33520081219:
336	With __FreeBSD_version 800060 the makefs tool is part of
337	the base system (it was a port).
338
33920081216:
340	The afdata and ifnet locks have been changed from mutexes to
341	rwlocks, network modules will need to be re-compiled.
342
34320081214:
344	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
345	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
346	The new code reduced struct rtentry{} by 16 bytes on 32-bit
347	architecture and 40 bytes on 64-bit architecture. The userland
348	applications "arp" and "ndp" have been updated accordingly.
349	The output from "netstat -r" shows only routing entries and
350	none of the L2 information.
351
35220081130:
353	__FreeBSD_version 800057 marks the switchover from the
354	binary ath hal to source code. Users must add the line:
355
356	options	AH_SUPPORT_AR5416
357
358	to their kernel config files when specifying:
359
360	device	ath_hal
361
362	The ath_hal module no longer exists; the code is now compiled
363	together with the driver in the ath module.  It is now
364	possible to tailor chip support (i.e. reduce the set of chips
365	and thereby the code size); consult ath_hal(4) for details.
366
36720081121:
368	__FreeBSD_version 800054 adds memory barriers to
369	<machine/atomic.h>, new interfaces to ifnet to facilitate
370	multiple hardware transmit queues for cards that support
371	them, and a lock-less ring-buffer implementation to
372	enable drivers to more efficiently manage queueing of
373	packets.
374
37520081117:
376	A new version of ZFS (version 13) has been merged to -HEAD.
377	This version has zpool attribute "listsnapshots" off by
378	default, which means "zfs list" does not show snapshots,
379	and is the same as Solaris behavior.
380
38120081028:
382	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
383
38420081009:
385	The uhci, ohci, ehci and slhci USB Host controller drivers have
386	been put into separate modules. If you load the usb module
387	separately through loader.conf you will need to load the
388	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
389	controller add the following to loader.conf:
390
391		uhci_load="YES"
392		ehci_load="YES"
393
39420081009:
395	The ABI used by the PMC toolset has changed.  Please keep
396	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
397	sync.
398
39920080820:
400	The TTY subsystem of the kernel has been replaced by a new
401	implementation, which provides better scalability and an
402	improved driver model. Most common drivers have been migrated to
403	the new TTY subsystem, while others have not. The following
404	drivers have not yet been ported to the new TTY layer:
405
406	PCI/ISA:
407		cy, digi, rc, rp, sio
408
409	USB:
410		ubser, ucycom
411
412	Line disciplines:
413		ng_h4, ng_tty, ppp, sl, snp
414
415	Adding these drivers to your kernel configuration file shall
416	cause compilation to fail.
417
41820080818:
419	ntpd has been upgraded to 4.2.4p5.
420
42120080801:
422	OpenSSH has been upgraded to 5.1p1.
423
424	For many years, FreeBSD's version of OpenSSH preferred DSA
425	over RSA for host and user authentication keys.  With this
426	upgrade, we've switched to the vendor's default of RSA over
427	DSA.  This may cause upgraded clients to warn about unknown
428	host keys even for previously known hosts.  Users should
429	follow the usual procedure for verifying host keys before
430	accepting the RSA key.
431
432	This can be circumvented by setting the "HostKeyAlgorithms"
433	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
434	command line.
435
436	Please note that the sequence of keys offered for
437	authentication has been changed as well.  You may want to
438	specify IdentityFile in a different order to revert this
439	behavior.
440
44120080713:
442	The sio(4) driver has been removed from the i386 and amd64
443	kernel configuration files. This means uart(4) is now the
444	default serial port driver on those platforms as well.
445
446	To prevent collisions with the sio(4) driver, the uart(4) driver
447	uses different names for its device nodes. This means the
448	onboard serial port will now most likely be called "ttyu0"
449	instead of "ttyd0". You may need to reconfigure applications to
450	use the new device names.
451
452	When using the serial port as a boot console, be sure to update
453	/boot/device.hints and /etc/ttys before booting the new kernel.
454	If you forget to do so, you can still manually specify the hints
455	at the loader prompt:
456
457		set hint.uart.0.at="isa"
458		set hint.uart.0.port="0x3F8"
459		set hint.uart.0.flags="0x10"
460		set hint.uart.0.irq="4"
461		boot -s
462
46320080609:
464	The gpt(8) utility has been removed. Use gpart(8) to partition
465	disks instead.
466
46720080603:
468	The version that Linuxulator emulates was changed from 2.4.2
469	to 2.6.16. If you experience any problems with Linux binaries
470	please try to set sysctl compat.linux.osrelease to 2.4.2 and
471	if it fixes the problem contact emulation mailing list.
472
47320080525:
474	ISDN4BSD (I4B) was removed from the src tree. You may need to
475	update a your kernel configuration and remove relevant entries.
476
47720080509:
478	I have checked in code to support multiple routing tables.
479	See the man pages setfib(1) and setfib(2).
480	This is a hopefully backwards compatible version,
481	but to make use of it you need to compile your kernel
482	with options ROUTETABLES=2 (or more up to 16).
483
48420080420:
485	The 802.11 wireless support was redone to enable multi-bss
486	operation on devices that are capable.  The underlying device
487	is no longer used directly but instead wlanX devices are
488	cloned with ifconfig.  This requires changes to rc.conf files.
489	For example, change:
490		ifconfig_ath0="WPA DHCP"
491	to
492		wlans_ath0=wlan0
493		ifconfig_wlan0="WPA DHCP"
494	see rc.conf(5) for more details.  In addition, mergemaster of
495	/etc/rc.d is highly recommended.  Simultaneous update of userland
496	and kernel wouldn't hurt either.
497
498	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
499	modules were merged into the base wlan module.  All references
500	to these modules (e.g. in kernel config files) must be removed.
501
50220080408:
503	psm(4) has gained write(2) support in native operation level.
504	Arbitrary commands can be written to /dev/psm%d and status can
505	be read back from it.  Therefore, an application is responsible
506	for status validation and error recovery.  It is a no-op in
507	other operation levels.
508
50920080312:
510	Support for KSE threading has been removed from the kernel.  To
511	run legacy applications linked against KSE libmap.conf may
512	be used.  The following libmap.conf may be used to ensure
513	compatibility with any prior release:
514
515	libpthread.so.1 libthr.so.1
516	libpthread.so.2 libthr.so.2
517	libkse.so.3 libthr.so.3
518
51920080301:
520	The layout of struct vmspace has changed. This affects libkvm
521	and any executables that link against libkvm and use the
522	kvm_getprocs() function. In particular, but not exclusively,
523	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
524	The effects are minimal, but it's advisable to upgrade world
525	nonetheless.
526
52720080229:
528	The latest em driver no longer has support in it for the
529	82575 adapter, this is now moved to the igb driver. The
530	split was done to make new features that are incompatible
531	with older hardware easier to do.
532
53320080220:
534	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
535	likewise the kernel option is now GEOM_LINUX_LVM.
536
53720080211:
538	The default NFS mount mode has changed from UDP to TCP for
539	increased reliability.  If you rely on (insecurely) NFS
540	mounting across a firewall you may need to update your
541	firewall rules.
542
54320080208:
544	Belatedly note the addition of m_collapse for compacting
545	mbuf chains.
546
54720080126:
548	The fts(3) structures have been changed to use adequate
549	integer types for their members and so to be able to cope
550	with huge file trees.  The old fts(3) ABI is preserved
551	through symbol versioning in libc, so third-party binaries
552	using fts(3) should still work, although they will not take
553	advantage of the extended types.  At the same time, some
554	third-party software might fail to build after this change
555	due to unportable assumptions made in its source code about
556	fts(3) structure members.  Such software should be fixed
557	by its vendor or, in the worst case, in the ports tree.
558	FreeBSD_version 800015 marks this change for the unlikely
559	case that a portable fix is impossible.
560
56120080123:
562	To upgrade to -current after this date, you must be running
563	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
564	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
565
56620071128:
567	The ADAPTIVE_GIANT kernel option has been retired because its
568	functionality is the default now.
569
57020071118:
571	The AT keyboard emulation of sunkbd(4) has been turned on
572	by default. In order to make the special symbols of the Sun
573	keyboards driven by sunkbd(4) work under X these now have
574	to be configured the same way as Sun USB keyboards driven
575	by ukbd(4) (which also does AT keyboard emulation), f.e.:
576
577	Option	"XkbLayout" "us"
578	Option	"XkbRules" "xorg"
579	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
580
58120071024:
582	It has been decided that it is desirable to provide ABI
583	backwards compatibility to the FreeBSD 4/5/6 versions of the
584	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
585	broken with the introduction of PCI domain support (see the
586	20070930 entry). Unfortunately, this required the ABI of
587	PCIOCGETCONF to be broken again in order to be able to
588	provide backwards compatibility to the old version of that
589	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
590	again. As for prominent ports this affects neither pciutils
591	nor xorg-server this time, the hal port needs to be rebuilt
592	however.
593
59420071020:
595	The misnamed kthread_create() and friends have been renamed
596	to kproc_create() etc. Many of the callers already
597	used kproc_start()..
598	I will return kthread_create() and friends in a while
599	with implementations that actually create threads, not procs.
600	Renaming corresponds with version 800002.
601
60220071010:
603	RELENG_7 branched.
604
60520071009:
606	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
607	WITHOUT_LIBTHR are set.
608
60920070930:
610	The PCI code has been made aware of PCI domains. This means that
611	the location strings as used by pciconf(8) etc are now in the
612	following format: pci<domain>:<bus>:<device>[:<function>]. It
613	also means that consumers of <sys/pciio.h> potentially need to
614	be recompiled; this includes the hal and xorg-server ports.
615
61620070928:
617	The caching daemon (cached) was renamed to nscd. nscd.conf
618	configuration file should be used instead of cached.conf and
619	nscd_enable, nscd_pidfile and nscd_flags options should be used
620	instead of cached_enable, cached_pidfile and cached_flags in
621	rc.conf.
622
62320070921:
624	The getfacl(1) utility now prints owning user and group name
625	instead of owning uid and gid in the three line comment header.
626	This is the same behavior as getfacl(1) on Solaris and Linux.
627
62820070704:
629	The new IPsec code is now compiled in using the IPSEC option.  The
630	IPSEC option now requires "device crypto" be defined in your kernel
631	configuration.  The FAST_IPSEC kernel option is now deprecated.
632
63320070702:
634	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
635	note the changed syntax - keep state is now on by default.  Also
636	note the fact that ftp-proxy(8) has been changed from bottom up and
637	has been moved from libexec to usr/sbin.  Changes in the ALTQ
638	handling also affect users of IPFW's ALTQ capabilities.
639
64020070701:
641	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
642	only IPsec supported by FreeBSD.  The new IPsec stack
643	supports both IPv4 and IPv6. The kernel option will change
644	after the code changes have settled in.  For now the kernel
645	option IPSEC is deprecated and FAST_IPSEC is the only option, that
646	will change after some settling time.
647
64820070701:
649	The wicontrol(8) utility has been removed from the base system. wi(4)
650	cards should be configured using ifconfig(8), see the man page for more
651	information.
652
65320070612:
654	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
655	instead of the nve(4) driver. Please update your configuration
656	accordingly.
657
65820070612:
659	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
660	database if it is missing or older than the aliases file.  If
661	desired, set the new rc.conf option sendmail_rebuild_aliases
662	to "YES" to restore that functionality.
663
66420070612:
665	The IPv4 multicast socket code has been considerably modified, and
666	moved to the file sys/netinet/in_mcast.c. Initial support for the
667	RFC 3678 Source-Specific Multicast Socket API has been added to
668	the IPv4 network stack.
669
670	Strict multicast and broadcast reception is now the default for
671	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
672	has now been removed.
673
674	The RFC 1724 hack for interface selection has been removed; the use
675	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
676	been added to replace it. Consumers such as routed will soon be
677	updated to reflect this.
678
679	These changes affect users who are running routed(8) or rdisc(8)
680	from the FreeBSD base system on point-to-point or unnumbered
681	interfaces.
682
68320070610:
684	The net80211 layer has changed significantly and all wireless
685	drivers that depend on it need to be recompiled.  Further these
686	changes require that any program that interacts with the wireless
687	support in the kernel be recompiled; this includes: ifconfig,
688	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
689	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
690	if they use modules for wireless support.  These modules implement
691	scanning support for station and ap modes, respectively.  Failure
692	to load the appropriate module before marking a wireless interface
693	up will result in a message to the console and the device not
694	operating properly.
695
69620070610:
697	The pam_nologin(8) module ceases to provide an authentication
698	function and starts providing an account management function.
699	Consequent changes to /etc/pam.d should be brought in using
700	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
701	need manual editing as follows.  Locate this line (or similar):
702
703		auth	required	pam_nologin.so	no_warn
704
705	and change it according to this example:
706
707		account	required	pam_nologin.so	no_warn
708
709	That is, the first word needs to be changed from "auth" to
710	"account".  The new line can be moved to the account section
711	within the file for clarity.  Not updating pam.conf(5) files
712	will result in nologin(5) ignored by the respective services.
713
71420070529:
715	The ether_ioctl() function has been synchronized with ioctl(2)
716	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
717	has changed on 64-bit architectures.  All kernel modules using
718	ether_ioctl() need to be rebuilt on such architectures.
719
72020070516:
721	Improved INCLUDE_CONFIG_FILE support has been introduced to the
722	config(8) utility. In order to take advantage of this new
723	functionality, you are expected to recompile and install
724	src/usr.sbin/config. If you don't rebuild config(8), and your
725	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
726	build will be broken because of a missing "kernconfstring"
727	symbol.
728
72920070513:
730	Symbol versioning is enabled by default.  To disable it, use
731	option WITHOUT_SYMVER.  It is not advisable to attempt to
732	disable symbol versioning once it is enabled; your installworld
733	will break because a symbol version-less libc will get installed
734	before the install tools.  As a result, the old install tools,
735	which previously had symbol dependencies to FBSD_1.0, will fail
736	because the freshly installed libc will not have them.
737
738	The default threading library (providing "libpthread") has been
739	changed to libthr.  If you wish to have libkse as your default,
740	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
741
74220070423:
743	The ABI breakage in sendmail(8)'s libmilter has been repaired
744	so it is no longer necessary to recompile mail filters (aka,
745	milters).  If you recompiled mail filters after the 20070408
746	note, it is not necessary to recompile them again.
747
74820070417:
749	The new trunk(4) driver has been renamed to lagg(4) as it better
750	reflects its purpose. ifconfig will need to be recompiled.
751
75220070408:
753	sendmail(8) has been updated to version 8.14.1.  Mail filters
754	(aka, milters) compiled against the libmilter included in the
755	base operating system should be recompiled.
756
75720070302:
758	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
759	In order to use them one must agree to the respective LICENSE in
760	share/doc/legal and define legal.intel_<name>.license_ack=1 via
761	loader.conf(5) or kenv(1).  Make sure to deinstall the now
762	deprecated modules from the respective firmware ports.
763
76420070228:
765	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
766	were removed from FreeBSD's libc. These originally came from INRIA
767	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
768	deprecated in previous releases.
769	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
770	replace it as a more portable (and re-entrant) API.
771
77220070224:
773	To support interrupt filtering a modification to the newbus API
774	has occurred, ABI was broken and __FreeBSD_version was bumped
775	to 700031. Please make sure that your kernel and modules are in
776	sync. For more info:
777	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
778
77920070224:
780	The IPv6 multicast forwarding code may now be loaded into GENERIC
781	kernels by loading the ip_mroute.ko module. This is built into the
782	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
783	set; see src.conf(5) for more information.
784
78520070214:
786	The output of netstat -r has changed. Without -n, we now only
787	print a "network name" without the prefix length if the network
788	address and mask exactly match a Class A/B/C network, and an entry
789	exists in the nsswitch "networks" map.
790	With -n, we print the full unabbreviated CIDR network prefix in
791	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
792	This change is in preparation for changes such as equal-cost
793	multipath, and to more generally assist operational deployment
794	of FreeBSD as a modern IPv4 router.
795
79620070210:
797	PIM has been turned on by default in the IPv4 multicast
798	routing code. The kernel option 'PIM' has now been removed.
799	PIM is now built by default if option 'MROUTING' is specified.
800	It may now be loaded into GENERIC kernels by loading the
801	ip_mroute.ko module.
802
80320070207:
804	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
805	has been removed. Its functionality may be achieved by explicitly
806	configuring gif(4) interfaces and using the 'phyint' keyword in
807	mrouted.conf.
808	XORP does not support source-routed IPv4 multicast tunnels nor the
809	integrated IPIP tunneling, therefore it is not affected by this
810	change. The __FreeBSD_version macro has been bumped to 700030.
811
81220061221:
813	Support for PCI Message Signalled Interrupts has been
814	re-enabled in the bge driver, only for those chips which are
815	believed to support it properly.  If there are any problems,
816	MSI can be disabled completely by setting the
817	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
818	in the loader.
819
82020061214:
821	Support for PCI Message Signalled Interrupts has been
822	disabled again in the bge driver.  Many revisions of the
823	hardware fail to support it properly.  Support can be
824	re-enabled by removing the #define of BGE_DISABLE_MSI in
825	"src/sys/dev/bge/if_bge.c".
826
82720061214:
828	Support for PCI Message Signalled Interrupts has been added
829	to the bge driver.  If there are any problems, MSI can be
830	disabled completely by setting the 'hw.pci.enable_msi' and
831	'hw.pci.enable_msix' tunables to 0 in the loader.
832
83320061205:
834	The removal of several facets of the experimental Threading
835	system from the kernel means that the proc and thread structures
836	have changed quite a bit. I suggest all kernel modules that might
837	reference these structures be recompiled.. Especially the
838	linux module.
839
84020061126:
841	Sound infrastructure has been updated with various fixes and
842	improvements. Most of the changes are pretty much transparent,
843	with exceptions of followings:
844	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
845	   moved to their own dev sysctl nodes, for example:
846		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
847	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
848	   own chardev in the form of "dsp%d.<function>%d", where <function>
849	   is p = playback, r = record and v = virtual, respectively. Users
850	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
851	   This does not affect those who are using "/dev/dsp".
852
85320061122:
854	geom(4)'s gmirror(8) class metadata structure has been
855	rev'd from v3 to v4. If you update across this point and
856	your metadata is converted for you, you will not be easily
857	able to downgrade since the /boot/kernel.old/geom_mirror.ko
858	kernel module will be unable to read the v4 metadata.  You
859	can resolve this by doing from the loader(8) prompt:
860
861		set vfs.root.mountfrom="ufs:/dev/XXX"
862
863	where XXX is the root slice of one of the disks that composed
864	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
865	the array the same way you built it originally.
866
86720061122:
868	The following binaries have been disconnected from the build:
869	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
870	and mount_std.  The functionality of these programs has been
871	moved into the mount program.  For example, to mount a devfs
872	filesystem, instead of using mount_devfs, use: "mount -t devfs".
873	This does not affect entries in /etc/fstab, since entries in
874	/etc/fstab are always processed with "mount -t fstype".
875
87620061113:
877	Support for PCI Message Signalled Interrupts on i386 and amd64
878	has been added to the kernel and various drivers will soon be
879	updated to use MSI when it is available.  If there are any problems,
880	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
881	and 'hw.pci.enable_msix' tunables to 0 in the loader.
882
88320061110:
884	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
885	The lockmgr object layout has been changed as a result of having
886	a lock_object embedded in it. As a consequence all file system
887	kernel modules must be re-compiled. The mutex profiling man page
888	has not yet been updated to reflect this change.
889
89020061026:
891	KSE in the kernel has now been made optional and turned on by
892	default. Use 'nooption KSE' in your kernel config to turn it
893	off. All kernel modules *must* be recompiled after this change.
894	There-after, modules from a KSE kernel should be compatible with
895	modules from a NOKSE kernel due to the temporary padding fields
896	added to 'struct proc'.
897
89820060929:
899	mrouted and its utilities have been removed from the base system.
900
90120060927:
902	Some ioctl(2) command codes have changed.  Full backward ABI
903	compatibility is provided if the "options COMPAT_FREEBSD6" is
904	present in the kernel configuration file.  Make sure to add
905	this option to your kernel config file, or recompile X.Org
906	and the rest of ports; otherwise they may refuse to work.
907
90820060924:
909	tcpslice has been removed from the base system.
910
91120060913:
912	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
913	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
914	systat needs to be rebuilt.
915
91620060903:
917	libpcap updated to v0.9.4 and tcpdump to v3.9.4
918
91920060816:
920	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
921	for IPFIREWALL_FORWARD is now as it was before when it was first
922	committed and for years after. The behaviour is now ON.
923
92420060725:
925	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
926	Now it can decrypt files created from different architectures.
927	Unfortunately, it is no longer able to decrypt a cipher text
928	generated with an older version on 64 bit architectures.
929	If you have such a file, you need old utility to decrypt it.
930
93120060709:
932	The interface version of the i4b kernel part has changed. So
933	after updating the kernel sources and compiling a new kernel,
934	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
935	be rebuilt, and vice versa.
936
93720060627:
938	The XBOX kernel now defaults to the nfe(4) driver instead of
939	the nve(4) driver. Please update your configuration
940	accordingly.
941
94220060514:
943	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
944	PCnet family of NICs has been removed. The new le(4) driver serves
945	as an equivalent but cross-platform replacement with the pcn(4)
946	driver still providing performance-optimized support for the subset
947	of AMD Am79C971 PCnet-FAST and greater chips as before.
948
94920060511:
950	The machdep.* sysctls and the adjkerntz utility have been
951	modified a bit.  The new adjkerntz utility uses the new
952	sysctl names and sysctlbyname() calls, so it may be impossible
953	to run an old /sbin/adjkerntz utility in single-user mode
954	with a new kernel.  Replace the `adjkerntz -i' step before
955	`make installworld' with:
956
957	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
958
959	and proceed as usual with the rest of the installworld-stage
960	steps.  Otherwise, you risk installing binaries with their
961	timestamp set several hours in the future, especially if
962	you are running with local time set to GMT+X hours.
963
96420060412:
965	The ip6fw utility has been removed.  The behavior provided by
966	ip6fw has been in ipfw2 for a good while and the rc.d scripts
967	have been updated to deal with it.  There are some rules that
968	might not migrate cleanly.  Use rc.firewall6 as a template to
969	rewrite rules.
970
97120060428:
972	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
973	attachments have been removed. Make sure to configure scc(4)
974	on sparc64. Note also that by default puc(4) will use uart(4)
975	and not sio(4) for serial ports because interrupt handling has
976	been optimized for multi-port serial cards and only uart(4)
977	implements the interface to support it.
978
97920060330:
980	The scc(4) driver replaces puc(4) for Serial Communications
981	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
982	Z8530. On sparc64, it is advised to add scc(4) to the kernel
983	configuration to make sure that the serial ports remain
984	functional.
985
98620060317:
987	Most world/kernel related NO_* build options changed names.
988	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
989	after FreeBSD ports) and should be set in /etc/src.conf
990	(the src.conf(5) manpage is provided).  Full backwards
991	compatibility is maintained for the time being though it's
992	highly recommended to start moving old options out of the
993	system-wide /etc/make.conf file into the new /etc/src.conf
994	while also properly renaming them.  More conversions will
995	likely follow.  Posting to current@:
996
997	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
998
99920060305:
1000	The NETSMBCRYPTO kernel option has been retired because its
1001	functionality is always included in NETSMB and smbfs.ko now.
1002
100320060303:
1004	The TDFX_LINUX kernel option was retired and replaced by the
1005	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
1006	kernel module.  Loading it alone should suffice to get 3dfx support
1007	for Linux apps because it will pull in 3dfx.ko and linux.ko through
1008	its dependencies.
1009
101020060204:
1011	The 'audit' group was added to support the new auditing functionality
1012	in the base system.  Be sure to follow the directions for updating,
1013	including the requirement to run mergemaster -p.
1014
101520060201:
1016	The kernel ABI to file system modules was changed on i386.
1017	Please make sure that your kernel and modules are in sync.
1018
101920060118:
1020	This actually occured some time ago, but installing the kernel
1021	now also installs a bunch of symbol files for the kernel modules.
1022	This increases the size of /boot/kernel to about 67Mbytes. You
1023	will need twice this if you will eventually back this up to kernel.old
1024	on your next install.
1025	If you have a shortage of room in your root partition, you should add
1026	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1027	to your /etc/make.conf.
1028
102920060113:
1030	libc's malloc implementation has been replaced.  This change has the
1031	potential to uncover application bugs that previously went unnoticed.
1032	See the malloc(3) manual page for more details.
1033
103420060112:
1035	The generic netgraph(4) cookie has been changed. If you upgrade
1036	kernel passing this point, you also need to upgrade userland
1037	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1038
103920060106:
1040	si(4)'s device files now contain the unit number.
1041	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1042
104320060106:
1044	The kernel ABI was mostly destroyed due to a change in the size
1045	of struct lock_object which is nested in other structures such
1046	as mutexes which are nested in all sorts of other structures.
1047	Make sure your kernel and modules are in sync.
1048
104920051231:
1050	The page coloring algorithm in the VM subsystem was converted
1051	from tuning with kernel options to autotuning. Please remove
1052	any PQ_* option except PQ_NOOPT from your kernel config.
1053
105420051211:
1055	The net80211-related tools in the tools/tools/ath directory
1056	have been moved to tools/tools/net80211 and renamed with a
1057	"wlan" prefix.  Scripts that use them should be adjusted
1058	accordingly.
1059
106020051202:
1061	Scripts in the local_startup directories (as defined in
1062	/etc/defaults/rc.conf) that have the new rc.d semantics will
1063	now be run as part of the base system rcorder. If there are
1064	errors or problems with one of these local scripts, it could
1065	cause boot problems. If you encounter such problems, boot in
1066	single user mode, remove that script from the */rc.d directory.
1067	Please report the problem to the port's maintainer, and the
1068	freebsd-ports@freebsd.org mailing list.
1069
107020051129:
1071	The nodev mount option was deprecated in RELENG_6 (where it
1072	was a no-op), and is now unsupported.  If you have nodev or dev listed
1073	in /etc/fstab, remove it, otherwise it will result in a mount error.
1074
107520051129:
1076	ABI between ipfw(4) and ipfw(8) has been changed. You need
1077	to rebuild ipfw(8) when rebuilding kernel.
1078
107920051108:
1080	rp(4)'s device files now contain the unit number.
1081	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1082
108320051029:
1084	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1085	Its /etc/rc.conf.d configuration file has been `ppp' from
1086	the beginning, and hence there is no need to touch it.
1087
108820051014:
1089	Now most modules get their build-time options from the kernel
1090	configuration file.  A few modules still have fixed options
1091	due to their non-conformant implementation, but they will be
1092	corrected eventually.  You may need to review the options of
1093	the modules in use, explicitly specify the non-default options
1094	in the kernel configuration file, and rebuild the kernel and
1095	modules afterwards.
1096
109720051001:
1098	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1099	to turn polling(4) on your interfaces.
1100
110120050927:
1102	The old bridge(4) implementation was retired.  The new
1103	if_bridge(4) serves as a full functional replacement.
1104
110520050722:
1106	The ai_addrlen of a struct addrinfo was changed to a socklen_t
1107	to conform to POSIX-2001.  This change broke an ABI
1108	compatibility on 64 bit architecture.  You have to recompile
1109	userland programs that use getaddrinfo(3) on 64 bit
1110	architecture.
1111
111220050711:
1113	RELENG_6 branched here.
1114
111520050629:
1116	The pccard_ifconfig rc.conf variable has been removed and a new
1117	variable, ifconfig_DEFAULT has been introduced.  Unlike
1118	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1119	do not have ifconfig_ifn entries rather than just those in
1120	removable_interfaces.
1121
112220050616:
1123	Some previous versions of PAM have permitted the use of
1124	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1125	to third party PAM modules in /usr/local/lib.  A change has been
1126	made to require the use of absolute paths in order to avoid
1127	ambiguity and dependence on library path configuration, which may
1128	affect existing configurations.
1129
113020050610:
1131	Major changes to network interface API.  All drivers must be
1132	recompiled.  Drivers not in the base system will need to be
1133	updated to the new APIs.
1134
113520050609:
1136	Changes were made to kinfo_proc in sys/user.h.  Please recompile
1137	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1138	will not behave correctly.
1139
1140	The API and ABI for hwpmc(4) have changed with the addition
1141	of sampling support.  Please recompile lib/libpmc(3) and
1142	usr.sbin/{pmcstat,pmccontrol}.
1143
114420050606:
1145	The OpenBSD dhclient was imported in place of the ISC dhclient
1146	and the network interface configuration scripts were updated
1147	accordingly.  If you use DHCP to configure your interfaces, you
1148	must now run devd.  Also, DNS updating was lost so you will need
1149	to find a workaround if you use this feature.
1150
1151	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1152	sure to run mergemaster -p (like you are supposed to do every time
1153	anyway).
1154
115520050605:
1156	if_bridge was added to the tree. This has changed struct ifnet.
1157	Please recompile userland and all network related modules.
1158
115920050603:
1160	The n_net of a struct netent was changed to an uint32_t, and
1161	1st argument of getnetbyaddr() was changed to an uint32_t, to
1162	conform to POSIX-2001.  These changes broke an ABI
1163	compatibility on 64 bit architecture.  With these changes,
1164	shlib major of libpcap was bumped.  You have to recompile
1165	userland programs that use getnetbyaddr(3), getnetbyname(3),
1166	getnetent(3) and/or libpcap on 64 bit architecture.
1167
116820050528:
1169	Kernel parsing of extra options on '#!' first lines of shell
1170	scripts has changed.  Lines with multiple options likely will
1171	fail after this date.  For full details, please see
1172		http://people.freebsd.org/~gad/Updating-20050528.txt
1173
117420050503:
1175	The packet filter (pf) code has been updated to OpenBSD 3.7
1176	Please note the changed anchor syntax and the fact that
1177	authpf(8) now needs a mounted fdescfs(5) to function.
1178
117920050415:
1180	The NO_MIXED_MODE kernel option has been removed from the i386
1181	amd64 platforms as its use has been superceded by the new local
1182	APIC timer code.  Any kernel config files containing this option
1183	should be updated.
1184
118520050227:
1186	The on-disk format of LC_CTYPE files was changed to be machine
1187	independent.  Please make sure NOT to use NO_CLEAN buildworld
1188	when crossing this point. Crossing this point also requires
1189	recompile or reinstall of all locale depended packages.
1190
119120050225:
1192	The ifi_epoch member of struct if_data has been changed to
1193	contain the uptime at which the interface was created or the
1194	statistics zeroed rather then the wall clock time because
1195	wallclock time may go backwards.  This should have no impact
1196	unless an snmp implementation is using this value (I know of
1197	none at this point.)
1198
119920050224:
1200	The acpi_perf and acpi_throttle drivers are now part of the
1201	acpi(4) main module.  They are no longer built separately.
1202
120320050223:
1204	The layout of struct image_params has changed. You have to
1205	recompile all compatibility modules (linux, svr4, etc) for use
1206	with the new kernel.
1207
120820050223:
1209	The p4tcc driver has been merged into cpufreq(4).  This makes
1210	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1211	compile in "device cpufreq" to restore this functionality.
1212
121320050220:
1214	The responsibility of recomputing the file system summary of
1215	a SoftUpdates-enabled dirty volume has been transferred to the
1216	background fsck.  A rebuild of fsck(8) utility is recommended
1217	if you have updated the kernel.
1218
1219	To get the old behavior (recompute file system summary at mount
1220	time), you can set vfs.ffs.compute_summary_at_mount=1 before
1221	mounting the new volume.
1222
122320050206:
1224	The cpufreq import is complete.  As part of this, the sysctls for
1225	acpi(4) throttling have been removed.  The power_profile script
1226	has been updated, so you can use performance/economy_cpu_freq in
1227	rc.conf(5) to set AC on/offline cpu frequencies.
1228
122920050206:
1230	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1231	requires recompiling libnetgraph and userland netgraph utilities.
1232
123320050114:
1234	Support for abbreviated forms of a number of ipfw options is
1235	now deprecated.  Warnings are printed to stderr indicating the
1236	correct full form when a match occurs.  Some abbreviations may
1237	be supported at a later date based on user feedback.  To be
1238	considered for support, abbreviations must be in use prior to
1239	this commit and unlikely to be confused with current key words.
1240
124120041221:
1242	By a popular demand, a lot of NOFOO options were renamed
1243	to NO_FOO (see bsd.compat.mk for a full list).  The old
1244	spellings are still supported, but will cause annoying
1245	warnings on stderr.  Make sure you upgrade properly (see
1246	the COMMON ITEMS: section later in this file).
1247
124820041219:
1249	Auto-loading of ancillary wlan modules such as wlan_wep has
1250	been temporarily disabled; you need to statically configure
1251	the modules you need into your kernel or explicitly load them
1252	prior to use.  Specifically, if you intend to use WEP encryption
1253	with an 802.11 device load/configure wlan_wep; if you want to
1254	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1255	and wlan_xauth as required.
1256
125720041213:
1258	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1259	(``enable lqr''), older versions would revert to LCP ECHO mode on
1260	negotiation failure.  Now, ``enable echo'' is required for this
1261	behaviour.  The ppp version number has been bumped to 3.4.2 to
1262	reflect the change.
1263
126420041201:
1265	The wlan support has been updated to split the crypto support
1266	into separate modules.  For static WEP you must configure the
1267	wlan_wep module in your system or build and install the module
1268	in place where it can be loaded (the kernel will auto-load
1269	the module when a wep key is configured).
1270
127120041201:
1272	The ath driver has been updated to split the tx rate control
1273	algorithm into a separate module.  You need to include either
1274	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1275
127620041116:
1277	Support for systems with an 80386 CPU has been removed.  Please
1278	use FreeBSD 5.x or earlier on systems with an 80386.
1279
128020041110:
1281	We have had a hack which would mount the root filesystem
1282	R/W if the device were named 'md*'.  As part of the vnode
1283	work I'm doing I have had to remove this hack.  People
1284	building systems which use preloaded MD root filesystems
1285	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1286	their /etc/rc scripts.
1287
128820041104:
1289	FreeBSD 5.3 shipped here.
1290
129120041102:
1292	The size of struct tcpcb has changed again due to the removal
1293	of RFC1644 T/TCP.  You have to recompile userland programs that
1294	read kmem for tcp sockets directly (netstat, sockstat, etc.)
1295
129620041022:
1297	The size of struct tcpcb has changed.  You have to recompile
1298	userland programs that read kmem for tcp sockets directly
1299	(netstat, sockstat, etc.)
1300
130120041016:
1302	RELENG_5 branched here.  For older entries, please see updating
1303	in the RELENG_5 branch.
1304
1305COMMON ITEMS:
1306
1307	General Notes
1308	-------------
1309	Avoid using make -j when upgrading.  From time to time in the
1310	past there have been problems using -j with buildworld and/or
1311	installworld.  This is especially true when upgrading between
1312	"distant" versions (eg one that cross a major release boundary
1313	or several minor releases, or when several months have passed
1314	on the -current branch).
1315
1316	Sometimes, obscure build problems are the result of environment
1317	poisoning.  This can happen because the make utility reads its
1318	environment when searching for values for global variables.
1319	To run your build attempts in an "environmental clean room",
1320	prefix all make commands with 'env -i '.  See the env(1) manual
1321	page for more details.
1322
1323	When upgrading from one major version to another it is generally
1324	best to upgrade to the latest code in the currently installed branch
1325	first, then do an upgrade to the new branch. This is the best-tested
1326	upgrade path, and has the highest probability of being successful.
1327	Please try this approach before reporting problems with a major
1328	version upgrade.
1329
1330	To build a kernel
1331	-----------------
1332	If you are updating from a prior version of FreeBSD (even one just
1333	a few days old), you should follow this procedure.  It is the most
1334	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1335
1336	make kernel-toolchain
1337	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1338	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1339
1340	To test a kernel once
1341	---------------------
1342	If you just want to boot a kernel once (because you are not sure
1343	if it works, or if you want to boot a known bad kernel to provide
1344	debugging information) run
1345	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1346	nextboot -k testkernel
1347
1348	To just build a kernel when you know that it won't mess you up
1349	--------------------------------------------------------------
1350	This assumes you are already running a 5.X system.  Replace
1351	${arch} with the architecture of your machine (e.g. "i386",
1352	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1353
1354	cd src/sys/${arch}/conf
1355	config KERNEL_NAME_HERE
1356	cd ../compile/KERNEL_NAME_HERE
1357	make depend
1358	make
1359	make install
1360
1361	If this fails, go to the "To build a kernel" section.
1362
1363	To rebuild everything and install it on the current system.
1364	-----------------------------------------------------------
1365	# Note: sometimes if you are running current you gotta do more than
1366	# is listed here if you are upgrading from a really old current.
1367
1368	<make sure you have good level 0 dumps>
1369	make buildworld
1370	make kernel KERNCONF=YOUR_KERNEL_HERE
1371							[1]
1372	<reboot in single user>				[3]
1373	mergemaster -p					[5]
1374	make installworld
1375	make delete-old
1376	mergemaster					[4]
1377	<reboot>
1378
1379
1380	To cross-install current onto a separate partition
1381	--------------------------------------------------
1382	# In this approach we use a separate partition to hold
1383	# current's root, 'usr', and 'var' directories.   A partition
1384	# holding "/", "/usr" and "/var" should be about 2GB in
1385	# size.
1386
1387	<make sure you have good level 0 dumps>
1388	<boot into -stable>
1389	make buildworld
1390	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1391	<maybe newfs current's root partition>
1392	<mount current's root partition on directory ${CURRENT_ROOT}>
1393	make installworld DESTDIR=${CURRENT_ROOT}
1394	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1395	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1396	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1397	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1398	<reboot into current>
1399	<do a "native" rebuild/install as described in the previous section>
1400	<maybe install compatibility libraries from ports/misc/compat*>
1401	<reboot>
1402
1403
1404	To upgrade in-place from 5.x-stable to current
1405	----------------------------------------------
1406	<make sure you have good level 0 dumps>
1407	make buildworld					[9]
1408	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1409							[1]
1410	<reboot in single user>				[3]
1411	mergemaster -p					[5]
1412	make installworld
1413	make delete-old
1414	mergemaster -i					[4]
1415	<reboot>
1416
1417	Make sure that you've read the UPDATING file to understand the
1418	tweaks to various things you need.  At this point in the life
1419	cycle of current, things change often and you are on your own
1420	to cope.  The defaults can also change, so please read ALL of
1421	the UPDATING entries.
1422
1423	Also, if you are tracking -current, you must be subscribed to
1424	freebsd-current@freebsd.org.  Make sure that before you update
1425	your sources that you have read and understood all the recent
1426	messages there.  If in doubt, please track -stable which has
1427	much fewer pitfalls.
1428
1429	[1] If you have third party modules, such as vmware, you
1430	should disable them at this point so they don't crash your
1431	system on reboot.
1432
1433	[3] From the bootblocks, boot -s, and then do
1434		fsck -p
1435		mount -u /
1436		mount -a
1437		cd src
1438		adjkerntz -i		# if CMOS is wall time
1439	Also, when doing a major release upgrade, it is required that
1440	you boot into single user mode to do the installworld.
1441
1442	[4] Note: This step is non-optional.  Failure to do this step
1443	can result in a significant reduction in the functionality of the
1444	system.  Attempting to do it by hand is not recommended and those
1445	that pursue this avenue should read this file carefully, as well
1446	as the archives of freebsd-current and freebsd-hackers mailing lists
1447	for potential gotchas.
1448
1449	[5] Usually this step is a noop.  However, from time to time
1450	you may need to do this if you get unknown user in the following
1451	step.  It never hurts to do it all the time.  You may need to
1452	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1453	install) after the buildworld before this step if you last updated
1454	from current before 20020224 or from -stable before 20020408.
1455
1456	[8] In order to have a kernel that can run the 4.x binaries
1457	needed to do an installworld, you must include the COMPAT_FREEBSD4
1458	option in your kernel.  Failure to do so may leave you with a system
1459	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1460	is required to run the 5.x binaries on more recent kernels.
1461
1462	Make sure that you merge any new devices from GENERIC since the
1463	last time you updated your kernel config file.
1464
1465	[9] When checking out sources, you must include the -P flag to have
1466	cvs prune empty directories.
1467
1468	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1469	"?=" instead of the "=" assignment operator, so that buildworld can
1470	override the CPUTYPE if it needs to.
1471
1472	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1473	not on the command line, or in /etc/make.conf.  buildworld will
1474	warn if it is improperly defined.
1475FORMAT:
1476
1477This file contains a list, in reverse chronological order, of major
1478breakages in tracking -current.  Not all things will be listed here,
1479and it only starts on October 16, 2004.  Updating files can found in
1480previous releases if your system is older than this.
1481
1482Copyright information:
1483
1484Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1485
1486Redistribution, publication, translation and use, with or without
1487modification, in full or in part, in any form or format of this
1488document are permitted without further permission from the author.
1489
1490THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1491IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1492WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1493DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1494INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1495(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1496SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1497HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1498STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1499IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1500POSSIBILITY OF SUCH DAMAGE.
1501
1502If you find this document useful, and you want to, you may buy the
1503author a beer.
1504
1505Contact Warner Losh if you have any questions about your use of
1506this document.
1507
1508$FreeBSD: head/UPDATING 191672 2009-04-29 19:19:13Z bms $
1509