UPDATING revision 195634
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
2520090712:
26	Padding has been added to struct tcpcb, sackhint and tcpstat in
27	<netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
28	maintainig the ABI. However, this change breaks the ABI, so bump
29	__FreeBSD_version to 800102. User space tools that rely on the size of
30	any of these structs (e.g. sockstat) need to be recompiled.
31
3220090630:
33	The NFS_LEGACYRPC option has been removed along with the old
34	kernel RPC implementation that this option selected. Kernel
35	configurations may need to be adjusted.
36
3720090629:
38	The network interface device nodes at /dev/net/<interface> have
39	been removed.  All ioctl operations can be performed the normal
40	way using routing sockets.  The kqueue functionality can
41	generally be replaced with routing sockets.
42
4320090628:
44	The documentation from the FreeBSD Documentation Project
45	(Handbook, FAQ, etc.) is now installed via packages by
46	sysinstall(8) and under the /usr/local/share/doc/freebsd
47	directory instead of /usr/share/doc.
48
4920090624:
50	The ABI of various structures related to the SYSV IPC API have
51	been changed.  As a result, the COMPAT_FREEBSD[456] kernel
52	options now all require COMPAT_FREEBSD7.  Bump __FreeBSD_version
53	to 800100.
54
5520090622:
56	Layout of struct vnet has changed as routing related variables
57	were moved to their own Vimage module. Modules need to be
58	recompiled.  Bump __FreeBSD_version to 800099.
59
6020090619:
61	NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
62	and 1024 respectively.  As long as no more than 16 groups per
63	process are used, no changes should be visible.  When more
64	than 16 groups are used, old binaries may fail if they call
65	getgroups() or getgrouplist() with statically sized storage.
66	Recompiling will work around this, but applications should be
67	modified to use dynamically allocated storage for group arrays
68	as POSIX.1-2008 does not cap an implementation's number of
69	supported groups at NGROUPS_MAX+1 as previous versions did.
70
71	NFS and portalfs mounts may also be affected as the list of
72	groups is truncated to 16.  Users of NFS who use more than 16
73	groups, should take care that negative group permissions are not
74	used on the exported file systems as they will not be reliable
75	unless a GSSAPI based authentication method is used.
76
7720090616:
78	The compiling option ADAPTIVE_LOCKMGRS has been introduced.
79	This option compiles in the support for adaptive spinning for lockmgrs
80	which want to enable it.  The lockinit() function now accepts the
81	flag LK_ADAPTIVE in order to make the lock object subject to
82	adaptive spinning when both held in write and read mode.
83
8420090613:
85	The layout of the structure returned by IEEE80211_IOC_STA_INFO
86	has changed.  User applications that use this ioctl need to be
87	rebuilt.
88
8920090611:
90	The layout of struct thread has changed.  Kernel and modules
91	need to be rebuilt.
92
9320090608:
94	The layout of structs ifnet, domain, protosw and vnet_net has
95	changed.  Kernel modules need to be rebuilt.
96	Bump __FreeBSD_version to 800097.
97
9820090602:
99	window(1) has been removed from the base system. It can now be
100	installed from ports. The port is called misc/window.
101
10220090601:
103	The way we are storing and accessing `routing table' entries
104	has changed. Programs reading the FIB, like netstat, need to
105	be re-compiled.
106
10720090601:
108	A new netisr implementation has been added for FreeBSD 8.  Network
109	file system modules, such as igmp, ipdivert, and others, should be
110	rebuilt.
111	Bump __FreeBSD_version to 800096.
112
11320090530:
114	Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
115	is no more valid.
116
11720090530:
118	Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
119	Bump __FreeBSD_version to 800094.
120
12120090529:
122	Add mnt_xflag field to 'struct mount'.  File system modules
123	need to be rebuilt.
124	Bump __FreeBSD_version to 800093.
125
12620090528:
127	The compiling option ADAPTIVE_SX has been retired while it has been
128	introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
129	The KPI for sx_init_flags() changes as accepting flags:
130	SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
131	has been introduced in order to handle the reversed logic.
132	Bump __FreeBSD_version to 800092.
133
13420090527:
135	Add support for hierarchical jails.  Remove global securelevel.
136	Bump __FreeBSD_version to 800091.
137
13820090523:
139	The layout of struct vnet_net has changed, therefore modules
140	need to be rebuilt.
141	Bump __FreeBSD_version to 800090.
142
14320090523:
144	The newly imported zic(8) produces a new format in the
145	output. Please run tzsetup(8) to install the newly created
146	data to /etc/localtime.
147
14820090520:
149	The sysctl tree for the usb stack has renamed from hw.usb2.* to
150	hw.usb.* and is now consistent again with previous releases.
151
15220090520:
153	802.11 monitor mode support was revised and driver api's
154	were changed.  Drivers dependent on net80211 now support
155	DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11.  No
156	user-visible data structures were changed but applications
157	that use DLT_IEEE802_11 may require changes.
158	Bump __FreeBSD_version to 800088.
159
16020090430:
161	The layout of the following structs has changed: sysctl_oid,
162	socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
163	vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
164	panics may be experienced.  World rebuild is required for
165	correctly checking networking state from userland.
166	Bump __FreeBSD_version to 800085.
167
16820090429:
169	MLDv2 and Source-Specific Multicast (SSM) have been merged
170	to the IPv6 stack. VIMAGE hooks are in but not yet used.
171	The implementation of SSM within FreeBSD's IPv6 stack closely
172	follows the IPv4 implementation.
173
174	For kernel developers:
175
176	* The most important changes are that the ip6_output() and
177	  ip6_input() paths no longer take the IN6_MULTI_LOCK,
178	  and this lock has been downgraded to a non-recursive mutex.
179
180	* As with the changes to the IPv4 stack to support SSM, filtering
181	  of inbound multicast traffic must now be performed by transport
182	  protocols within the IPv6 stack. This does not apply to TCP and
183	  SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
184
185	* The KPIs used by IPv6 multicast are similar to those used by
186	  the IPv4 stack, with the following differences:
187	   * im6o_mc_filter() is analogous to imo_multicast_filter().
188	   * The legacy KAME entry points in6_joingroup and in6_leavegroup()
189	     are shimmed to in6_mc_join() and in6_mc_leave() respectively.
190	   * IN6_LOOKUP_MULTI() has been deprecated and removed.
191	   * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
192	     for MLDv1 have an additional 'timer' argument which is used to
193	     jitter the initial membership report for the solicited-node
194	     multicast membership on-link.
195	   * This is not strictly needed for MLDv2, which already jitters
196	     its report transmissions.  However, the 'timer' argument is
197	     preserved in case MLDv1 is active on the interface.
198
199	* The KAME linked-list based IPv6 membership implementation has
200	  been refactored to use a vector similar to that used by the IPv4
201	  stack.
202	  Code which maintains a list of its own multicast memberships
203	  internally, e.g. carp, has been updated to reflect the new
204	  semantics.
205
206	* There is a known Lock Order Reversal (LOR) due to in6_setscope()
207	  acquiring the IF_AFDATA_LOCK and being called within ip6_output().
208	  Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
209	  implementation constraint which needs to be addressed in HEAD.
210
211	For application developers:
212
213	* The changes are broadly similar to those made for the IPv4
214	  stack.
215
216	* The use of IPv4 and IPv6 multicast socket options on the same
217	  socket, using mapped addresses, HAS NOT been tested or supported.
218
219	* There are a number of issues with the implementation of various
220	  IPv6 multicast APIs which need to be resolved in the API surface
221	  before the implementation is fully compatible with KAME userland
222	  use, and these are mostly to do with interface index treatment.
223
224	* The literature available discusses the use of either the delta / ASM
225	  API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
226	  using setsourcefilter(3)/getsourcefilter(3). For more information
227	  please refer to RFC 3768, 'Socket Interface Extensions for
228	  Multicast Source Filters'.
229
230	* Applications which use the published RFC 3678 APIs should be fine.
231
232	For systems administrators:
233
234	* The mtest(8) utility has been refactored to support IPv6, in
235	  addition to IPv4. Interface addresses are no longer accepted
236	  as arguments, their names must be used instead. The utility
237	  will map the interface name to its first IPv4 address as
238	  returned by getifaddrs(3).
239
240	* The ifmcstat(8) utility has also been updated to print the MLDv2
241	  endpoint state and source filter lists via sysctl(3).
242
243	* The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
244	  loopback of IPv6 multicast datagrams by default; it defaults to 1
245	  to preserve the existing behaviour. Disabling multicast loopback is
246	  recommended for optimal system performance.
247
248	* The IPv6 MROUTING code has been changed to examine this sysctl
249	  instead of attempting to perform a group lookup before looping
250	  back forwarded datagrams.
251
252	Bump __FreeBSD_version to 800084.
253
25420090422:
255	Implement low-level Bluetooth HCI API.
256	Bump __FreeBSD_version to 800083.
257
25820090419:
259	The layout of struct malloc_type, used by modules to register new
260	memory allocation types, has changed.  Most modules will need to
261	be rebuilt or panics may be experienced.
262	Bump __FreeBSD_version to 800081.
263
26420090415:
265	Anticipate overflowing inp_flags - add inp_flags2.
266	This changes most offsets in inpcb, so checking v4 connection
267	state will require a world rebuild.
268	Bump __FreeBSD_version to 800080.
269
27020090415:
271	Add an llentry to struct route and struct route_in6. Modules
272	embedding a struct route will need to be recompiled.
273	Bump __FreeBSD_version to 800079.
274
27520090414:
276	The size of rt_metrics_lite and by extension rtentry has changed.
277	Networking administration apps will need to be recompiled.
278	The route command now supports show as an alias for get, weighting
279	of routes, sticky and nostick flags to alter the behavior of stateful
280	load balancing.
281	Bump __FreeBSD_version to 800078.
282
28320090408:
284	Do not use Giant for kbdmux(4) locking. This is wrong and
285	apparently causing more problems than it solves. This will
286	re-open the issue where interrupt handlers may race with
287	kbdmux(4) in polling mode. Typical symptoms include (but
288	not limited to) duplicated and/or missing characters when
289	low level console functions (such as gets) are used while
290	interrupts are enabled (for example geli password prompt,
291	mountroot prompt etc.). Disabling kbdmux(4) may help.
292
29320090407:
294	The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
295	kernel modules referencing any of the above need to be recompiled.
296	Bump __FreeBSD_version to 800075.
297
29820090320:
299	GEOM_PART has become the default partition slicer for storage devices,
300	replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
301	introduces some changes:
302
303	MSDOS/EBR: the devices created from MSDOS extended partition entries
304	(EBR) can be named differently than with GEOM_MBR and are now symlinks
305	to devices with offset-based names. fstabs may need to be modified.
306
307	BSD: the "geometry does not match label" warning is harmless in most
308	cases but it points to problems in file system misalignment with
309	disk geometry. The "c" partition is now implicit, covers the whole
310	top-level drive and cannot be (mis)used by users.
311
312	General: Kernel dumps are now not allowed to be written to devices
313	whose partition types indicate they are meant to be used for file
314	systems (or, in case of MSDOS partitions, as something else than
315	the "386BSD" type).
316
317	Most of these changes date approximately from 200812.
318
31920090319:
320	The uscanner(4) driver has been removed from the kernel. This follows
321	Linux removing theirs in 2.6 and making libusb the default interface
322	(supported by sane).
323
32420090319:
325	The multicast forwarding code has been cleaned up. netstat(1)
326	only relies on KVM now for printing bandwidth upcall meters.
327	The IPv4 and IPv6 modules are split into ip_mroute_mod and
328	ip6_mroute_mod respectively. The config(5) options for statically
329	compiling this code remain the same, i.e. 'options MROUTING'.
330
33120090315:
332	Support for the IFF_NEEDSGIANT network interface flag has been
333	removed, which means that non-MPSAFE network device drivers are no
334	longer supported.  In particular, if_ar, if_sr, and network device
335	drivers from the old (legacy) USB stack can no longer be built or
336	used.
337
33820090313:
339	POSIX.1 Native Language Support (NLS) has been enabled in libc and
340	a bunch of new language catalog files have also been added.
341	This means that some common libc messages are now localized and
342	they depend on the LC_MESSAGES environmental variable.
343
34420090313:
345	The k8temp(4) driver has been renamed to amdtemp(4) since
346	support for K10 and K11 CPU families was added.
347
34820090309:
349	IGMPv3 and Source-Specific Multicast (SSM) have been merged
350	to the IPv4 stack. VIMAGE hooks are in but not yet used.
351
352	For kernel developers, the most important changes are that the
353	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
354	and this lock has been downgraded to a non-recursive mutex.
355
356	Transport protocols (UDP, Raw IP) are now responsible for filtering
357	inbound multicast traffic according to group membership and source
358	filters. The imo_multicast_filter() KPI exists for this purpose.
359	Transports which do not use multicast (SCTP, TCP) already reject
360	multicast by default. Forwarding and receive performance may improve
361	as a mutex acquisition is no longer needed in the ip_input()
362	low-level input path.  in_addmulti() and in_delmulti() are shimmed
363	to new KPIs which exist to support SSM in-kernel.
364
365	For application developers, it is recommended that loopback of
366	multicast datagrams be disabled for best performance, as this
367	will still cause the lock to be taken for each looped-back
368	datagram transmission. The net.inet.ip.mcast.loop sysctl may
369	be tuned to 0 to disable loopback by default; it defaults to 1
370	to preserve the existing behaviour.
371
372	For systems administrators, to obtain best performance with
373	multicast reception and multiple groups, it is always recommended
374	that a card with a suitably precise hash filter is used. Hash
375	collisions will still result in the lock being taken within the
376	transport protocol input path to check group membership.
377
378	If deploying FreeBSD in an environment with IGMP snooping switches,
379	it is recommended that the net.inet.igmp.sendlocal sysctl remain
380	enabled; this forces 224.0.0.0/24 group membership to be announced
381	via IGMP.
382
383	The size of 'struct igmpstat' has changed; netstat needs to be
384	recompiled to reflect this.
385	Bump __FreeBSD_version to 800070.
386
38720090309:
388	libusb20.so.1 is now installed as libusb.so.1 and the ports system
389	updated to use it. This requires a buildworld/installworld in order to
390	update the library and dependencies (usbconfig, etc). Its advisable to
391	rebuild all ports which uses libusb. More specific directions are given
392	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
393	libusb are no longer required and can be removed.
394
39520090302:
396	A workaround is committed to allow the creation of System V shared
397	memory segment of size > 2 GB on the 64-bit architectures.
398	Due to a limitation of the existing ABI, the shm_segsz member
399	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
400	wrong for large segments. Note that limits must be explicitly
401	raised to allow such segments to be created.
402
40320090301:
404	The layout of struct ifnet has changed, requiring a rebuild of all
405	network device driver modules.
406
40720090227:
408	The /dev handling for the new USB stack has changed, a
409	buildworld/installworld is required for libusb20.
410
41120090223:
412	The new USB2 stack has now been permanently moved in and all kernel and
413	module names reverted to their previous values (eg, usb, ehci, ohci,
414	ums, ...).  The old usb stack can be compiled in by prefixing the name
415	with the letter 'o', the old usb modules have been removed.
416	Updating entry 20090216 for xorg and 20090215 for libmap may still
417	apply.
418
41920090217:
420	The rc.conf(5) option if_up_delay has been renamed to
421	defaultroute_delay to better reflect its purpose. If you have
422	customized this setting in /etc/rc.conf you need to update it to
423	use the new name.
424
42520090216:
426	xorg 7.4 wants to configure its input devices via hald which does not
427	yet work with USB2. If the keyboard/mouse does not work in xorg then
428	add
429		Option "AllowEmptyInput" "off"
430	to your ServerLayout section.  This will cause X to use the configured
431	kbd and mouse sections from your xorg.conf.
432
43320090215:
434	The GENERIC kernels for all architectures now default to the new USB2
435	stack. No kernel config options or code have been removed so if a
436	problem arises please report it and optionally revert to the old USB
437	stack. If you are loading USB kernel modules or have a custom kernel
438	that includes GENERIC then ensure that usb names are also changed over,
439	eg uftdi -> usb2_serial_ftdi.
440
441	Older programs linked against the ports libusb 0.1 need to be
442	redirected to the new stack's libusb20.  /etc/libmap.conf can
443	be used for this:
444		# Map old usb library to new one for usb2 stack
445		libusb-0.1.so.8	libusb20.so.1
446
44720090203:
448	The ichsmb(4) driver has been changed to require SMBus slave
449	addresses be left-justified (xxxxxxx0b) rather than right-justified.
450	All of the other SMBus controller drivers require left-justified
451	slave addresses, so this change makes all the drivers provide the
452	same interface.
453
45420090201:
455	INET6 statistics (struct ip6stat) was updated.
456	netstat(1) needs to be recompiled.
457
45820090119:
459	NTFS has been removed from GENERIC kernel on amd64 to match
460	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
461	will load ntfs.ko module automatically when NTFS support is
462	actually needed, unless ntfs.ko is not installed or security
463	level prohibits loading kernel modules. If either is the case,
464	"options NTFS" has to be added into kernel config.
465
46620090115:
467	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
468	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
469	800061. User space tools that rely on the size of struct tcpcb in
470	tcp_var.h (e.g. sockstat) need to be recompiled.
471
47220081225:
473	ng_tty(4) module updated to match the new TTY subsystem.
474	Due to API change, user-level applications must be updated.
475	New API support added to mpd5 CVS and expected to be present
476	in next mpd5.3 release.
477
47820081219:
479	With __FreeBSD_version 800060 the makefs tool is part of
480	the base system (it was a port).
481
48220081216:
483	The afdata and ifnet locks have been changed from mutexes to
484	rwlocks, network modules will need to be re-compiled.
485
48620081214:
487	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
488	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
489	The new code reduced struct rtentry{} by 16 bytes on 32-bit
490	architecture and 40 bytes on 64-bit architecture. The userland
491	applications "arp" and "ndp" have been updated accordingly.
492	The output from "netstat -r" shows only routing entries and
493	none of the L2 information.
494
49520081130:
496	__FreeBSD_version 800057 marks the switchover from the
497	binary ath hal to source code. Users must add the line:
498
499	options	AH_SUPPORT_AR5416
500
501	to their kernel config files when specifying:
502
503	device	ath_hal
504
505	The ath_hal module no longer exists; the code is now compiled
506	together with the driver in the ath module.  It is now
507	possible to tailor chip support (i.e. reduce the set of chips
508	and thereby the code size); consult ath_hal(4) for details.
509
51020081121:
511	__FreeBSD_version 800054 adds memory barriers to
512	<machine/atomic.h>, new interfaces to ifnet to facilitate
513	multiple hardware transmit queues for cards that support
514	them, and a lock-less ring-buffer implementation to
515	enable drivers to more efficiently manage queueing of
516	packets.
517
51820081117:
519	A new version of ZFS (version 13) has been merged to -HEAD.
520	This version has zpool attribute "listsnapshots" off by
521	default, which means "zfs list" does not show snapshots,
522	and is the same as Solaris behavior.
523
52420081028:
525	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
526
52720081009:
528	The uhci, ohci, ehci and slhci USB Host controller drivers have
529	been put into separate modules. If you load the usb module
530	separately through loader.conf you will need to load the
531	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
532	controller add the following to loader.conf:
533
534		uhci_load="YES"
535		ehci_load="YES"
536
53720081009:
538	The ABI used by the PMC toolset has changed.  Please keep
539	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
540	sync.
541
54220080820:
543	The TTY subsystem of the kernel has been replaced by a new
544	implementation, which provides better scalability and an
545	improved driver model. Most common drivers have been migrated to
546	the new TTY subsystem, while others have not. The following
547	drivers have not yet been ported to the new TTY layer:
548
549	PCI/ISA:
550		cy, digi, rc, rp, sio
551
552	USB:
553		ubser, ucycom
554
555	Line disciplines:
556		ng_h4, ng_tty, ppp, sl, snp
557
558	Adding these drivers to your kernel configuration file shall
559	cause compilation to fail.
560
56120080818:
562	ntpd has been upgraded to 4.2.4p5.
563
56420080801:
565	OpenSSH has been upgraded to 5.1p1.
566
567	For many years, FreeBSD's version of OpenSSH preferred DSA
568	over RSA for host and user authentication keys.  With this
569	upgrade, we've switched to the vendor's default of RSA over
570	DSA.  This may cause upgraded clients to warn about unknown
571	host keys even for previously known hosts.  Users should
572	follow the usual procedure for verifying host keys before
573	accepting the RSA key.
574
575	This can be circumvented by setting the "HostKeyAlgorithms"
576	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
577	command line.
578
579	Please note that the sequence of keys offered for
580	authentication has been changed as well.  You may want to
581	specify IdentityFile in a different order to revert this
582	behavior.
583
58420080713:
585	The sio(4) driver has been removed from the i386 and amd64
586	kernel configuration files. This means uart(4) is now the
587	default serial port driver on those platforms as well.
588
589	To prevent collisions with the sio(4) driver, the uart(4) driver
590	uses different names for its device nodes. This means the
591	onboard serial port will now most likely be called "ttyu0"
592	instead of "ttyd0". You may need to reconfigure applications to
593	use the new device names.
594
595	When using the serial port as a boot console, be sure to update
596	/boot/device.hints and /etc/ttys before booting the new kernel.
597	If you forget to do so, you can still manually specify the hints
598	at the loader prompt:
599
600		set hint.uart.0.at="isa"
601		set hint.uart.0.port="0x3F8"
602		set hint.uart.0.flags="0x10"
603		set hint.uart.0.irq="4"
604		boot -s
605
60620080609:
607	The gpt(8) utility has been removed. Use gpart(8) to partition
608	disks instead.
609
61020080603:
611	The version that Linuxulator emulates was changed from 2.4.2
612	to 2.6.16. If you experience any problems with Linux binaries
613	please try to set sysctl compat.linux.osrelease to 2.4.2 and
614	if it fixes the problem contact emulation mailing list.
615
61620080525:
617	ISDN4BSD (I4B) was removed from the src tree. You may need to
618	update a your kernel configuration and remove relevant entries.
619
62020080509:
621	I have checked in code to support multiple routing tables.
622	See the man pages setfib(1) and setfib(2).
623	This is a hopefully backwards compatible version,
624	but to make use of it you need to compile your kernel
625	with options ROUTETABLES=2 (or more up to 16).
626
62720080420:
628	The 802.11 wireless support was redone to enable multi-bss
629	operation on devices that are capable.  The underlying device
630	is no longer used directly but instead wlanX devices are
631	cloned with ifconfig.  This requires changes to rc.conf files.
632	For example, change:
633		ifconfig_ath0="WPA DHCP"
634	to
635		wlans_ath0=wlan0
636		ifconfig_wlan0="WPA DHCP"
637	see rc.conf(5) for more details.  In addition, mergemaster of
638	/etc/rc.d is highly recommended.  Simultaneous update of userland
639	and kernel wouldn't hurt either.
640
641	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
642	modules were merged into the base wlan module.  All references
643	to these modules (e.g. in kernel config files) must be removed.
644
64520080408:
646	psm(4) has gained write(2) support in native operation level.
647	Arbitrary commands can be written to /dev/psm%d and status can
648	be read back from it.  Therefore, an application is responsible
649	for status validation and error recovery.  It is a no-op in
650	other operation levels.
651
65220080312:
653	Support for KSE threading has been removed from the kernel.  To
654	run legacy applications linked against KSE libmap.conf may
655	be used.  The following libmap.conf may be used to ensure
656	compatibility with any prior release:
657
658	libpthread.so.1 libthr.so.1
659	libpthread.so.2 libthr.so.2
660	libkse.so.3 libthr.so.3
661
66220080301:
663	The layout of struct vmspace has changed. This affects libkvm
664	and any executables that link against libkvm and use the
665	kvm_getprocs() function. In particular, but not exclusively,
666	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
667	The effects are minimal, but it's advisable to upgrade world
668	nonetheless.
669
67020080229:
671	The latest em driver no longer has support in it for the
672	82575 adapter, this is now moved to the igb driver. The
673	split was done to make new features that are incompatible
674	with older hardware easier to do.
675
67620080220:
677	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
678	likewise the kernel option is now GEOM_LINUX_LVM.
679
68020080211:
681	The default NFS mount mode has changed from UDP to TCP for
682	increased reliability.  If you rely on (insecurely) NFS
683	mounting across a firewall you may need to update your
684	firewall rules.
685
68620080208:
687	Belatedly note the addition of m_collapse for compacting
688	mbuf chains.
689
69020080126:
691	The fts(3) structures have been changed to use adequate
692	integer types for their members and so to be able to cope
693	with huge file trees.  The old fts(3) ABI is preserved
694	through symbol versioning in libc, so third-party binaries
695	using fts(3) should still work, although they will not take
696	advantage of the extended types.  At the same time, some
697	third-party software might fail to build after this change
698	due to unportable assumptions made in its source code about
699	fts(3) structure members.  Such software should be fixed
700	by its vendor or, in the worst case, in the ports tree.
701	FreeBSD_version 800015 marks this change for the unlikely
702	case that a portable fix is impossible.
703
70420080123:
705	To upgrade to -current after this date, you must be running
706	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
707	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
708
70920071128:
710	The ADAPTIVE_GIANT kernel option has been retired because its
711	functionality is the default now.
712
71320071118:
714	The AT keyboard emulation of sunkbd(4) has been turned on
715	by default. In order to make the special symbols of the Sun
716	keyboards driven by sunkbd(4) work under X these now have
717	to be configured the same way as Sun USB keyboards driven
718	by ukbd(4) (which also does AT keyboard emulation), f.e.:
719
720	Option	"XkbLayout" "us"
721	Option	"XkbRules" "xorg"
722	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
723
72420071024:
725	It has been decided that it is desirable to provide ABI
726	backwards compatibility to the FreeBSD 4/5/6 versions of the
727	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
728	broken with the introduction of PCI domain support (see the
729	20070930 entry). Unfortunately, this required the ABI of
730	PCIOCGETCONF to be broken again in order to be able to
731	provide backwards compatibility to the old version of that
732	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
733	again. As for prominent ports this affects neither pciutils
734	nor xorg-server this time, the hal port needs to be rebuilt
735	however.
736
73720071020:
738	The misnamed kthread_create() and friends have been renamed
739	to kproc_create() etc. Many of the callers already
740	used kproc_start()..
741	I will return kthread_create() and friends in a while
742	with implementations that actually create threads, not procs.
743	Renaming corresponds with version 800002.
744
74520071010:
746	RELENG_7 branched.
747
74820071009:
749	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
750	WITHOUT_LIBTHR are set.
751
75220070930:
753	The PCI code has been made aware of PCI domains. This means that
754	the location strings as used by pciconf(8) etc are now in the
755	following format: pci<domain>:<bus>:<device>[:<function>]. It
756	also means that consumers of <sys/pciio.h> potentially need to
757	be recompiled; this includes the hal and xorg-server ports.
758
75920070928:
760	The caching daemon (cached) was renamed to nscd. nscd.conf
761	configuration file should be used instead of cached.conf and
762	nscd_enable, nscd_pidfile and nscd_flags options should be used
763	instead of cached_enable, cached_pidfile and cached_flags in
764	rc.conf.
765
76620070921:
767	The getfacl(1) utility now prints owning user and group name
768	instead of owning uid and gid in the three line comment header.
769	This is the same behavior as getfacl(1) on Solaris and Linux.
770
77120070704:
772	The new IPsec code is now compiled in using the IPSEC option.  The
773	IPSEC option now requires "device crypto" be defined in your kernel
774	configuration.  The FAST_IPSEC kernel option is now deprecated.
775
77620070702:
777	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
778	note the changed syntax - keep state is now on by default.  Also
779	note the fact that ftp-proxy(8) has been changed from bottom up and
780	has been moved from libexec to usr/sbin.  Changes in the ALTQ
781	handling also affect users of IPFW's ALTQ capabilities.
782
78320070701:
784	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
785	only IPsec supported by FreeBSD.  The new IPsec stack
786	supports both IPv4 and IPv6. The kernel option will change
787	after the code changes have settled in.  For now the kernel
788	option IPSEC is deprecated and FAST_IPSEC is the only option, that
789	will change after some settling time.
790
79120070701:
792	The wicontrol(8) utility has been removed from the base system. wi(4)
793	cards should be configured using ifconfig(8), see the man page for more
794	information.
795
79620070612:
797	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
798	instead of the nve(4) driver. Please update your configuration
799	accordingly.
800
80120070612:
802	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
803	database if it is missing or older than the aliases file.  If
804	desired, set the new rc.conf option sendmail_rebuild_aliases
805	to "YES" to restore that functionality.
806
80720070612:
808	The IPv4 multicast socket code has been considerably modified, and
809	moved to the file sys/netinet/in_mcast.c. Initial support for the
810	RFC 3678 Source-Specific Multicast Socket API has been added to
811	the IPv4 network stack.
812
813	Strict multicast and broadcast reception is now the default for
814	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
815	has now been removed.
816
817	The RFC 1724 hack for interface selection has been removed; the use
818	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
819	been added to replace it. Consumers such as routed will soon be
820	updated to reflect this.
821
822	These changes affect users who are running routed(8) or rdisc(8)
823	from the FreeBSD base system on point-to-point or unnumbered
824	interfaces.
825
82620070610:
827	The net80211 layer has changed significantly and all wireless
828	drivers that depend on it need to be recompiled.  Further these
829	changes require that any program that interacts with the wireless
830	support in the kernel be recompiled; this includes: ifconfig,
831	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
832	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
833	if they use modules for wireless support.  These modules implement
834	scanning support for station and ap modes, respectively.  Failure
835	to load the appropriate module before marking a wireless interface
836	up will result in a message to the console and the device not
837	operating properly.
838
83920070610:
840	The pam_nologin(8) module ceases to provide an authentication
841	function and starts providing an account management function.
842	Consequent changes to /etc/pam.d should be brought in using
843	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
844	need manual editing as follows.  Locate this line (or similar):
845
846		auth	required	pam_nologin.so	no_warn
847
848	and change it according to this example:
849
850		account	required	pam_nologin.so	no_warn
851
852	That is, the first word needs to be changed from "auth" to
853	"account".  The new line can be moved to the account section
854	within the file for clarity.  Not updating pam.conf(5) files
855	will result in nologin(5) ignored by the respective services.
856
85720070529:
858	The ether_ioctl() function has been synchronized with ioctl(2)
859	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
860	has changed on 64-bit architectures.  All kernel modules using
861	ether_ioctl() need to be rebuilt on such architectures.
862
86320070516:
864	Improved INCLUDE_CONFIG_FILE support has been introduced to the
865	config(8) utility. In order to take advantage of this new
866	functionality, you are expected to recompile and install
867	src/usr.sbin/config. If you don't rebuild config(8), and your
868	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
869	build will be broken because of a missing "kernconfstring"
870	symbol.
871
87220070513:
873	Symbol versioning is enabled by default.  To disable it, use
874	option WITHOUT_SYMVER.  It is not advisable to attempt to
875	disable symbol versioning once it is enabled; your installworld
876	will break because a symbol version-less libc will get installed
877	before the install tools.  As a result, the old install tools,
878	which previously had symbol dependencies to FBSD_1.0, will fail
879	because the freshly installed libc will not have them.
880
881	The default threading library (providing "libpthread") has been
882	changed to libthr.  If you wish to have libkse as your default,
883	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
884
88520070423:
886	The ABI breakage in sendmail(8)'s libmilter has been repaired
887	so it is no longer necessary to recompile mail filters (aka,
888	milters).  If you recompiled mail filters after the 20070408
889	note, it is not necessary to recompile them again.
890
89120070417:
892	The new trunk(4) driver has been renamed to lagg(4) as it better
893	reflects its purpose. ifconfig will need to be recompiled.
894
89520070408:
896	sendmail(8) has been updated to version 8.14.1.  Mail filters
897	(aka, milters) compiled against the libmilter included in the
898	base operating system should be recompiled.
899
90020070302:
901	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
902	In order to use them one must agree to the respective LICENSE in
903	share/doc/legal and define legal.intel_<name>.license_ack=1 via
904	loader.conf(5) or kenv(1).  Make sure to deinstall the now
905	deprecated modules from the respective firmware ports.
906
90720070228:
908	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
909	were removed from FreeBSD's libc. These originally came from INRIA
910	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
911	deprecated in previous releases.
912	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
913	replace it as a more portable (and re-entrant) API.
914
91520070224:
916	To support interrupt filtering a modification to the newbus API
917	has occurred, ABI was broken and __FreeBSD_version was bumped
918	to 700031. Please make sure that your kernel and modules are in
919	sync. For more info:
920	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
921
92220070224:
923	The IPv6 multicast forwarding code may now be loaded into GENERIC
924	kernels by loading the ip_mroute.ko module. This is built into the
925	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
926	set; see src.conf(5) for more information.
927
92820070214:
929	The output of netstat -r has changed. Without -n, we now only
930	print a "network name" without the prefix length if the network
931	address and mask exactly match a Class A/B/C network, and an entry
932	exists in the nsswitch "networks" map.
933	With -n, we print the full unabbreviated CIDR network prefix in
934	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
935	This change is in preparation for changes such as equal-cost
936	multipath, and to more generally assist operational deployment
937	of FreeBSD as a modern IPv4 router.
938
93920070210:
940	PIM has been turned on by default in the IPv4 multicast
941	routing code. The kernel option 'PIM' has now been removed.
942	PIM is now built by default if option 'MROUTING' is specified.
943	It may now be loaded into GENERIC kernels by loading the
944	ip_mroute.ko module.
945
94620070207:
947	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
948	has been removed. Its functionality may be achieved by explicitly
949	configuring gif(4) interfaces and using the 'phyint' keyword in
950	mrouted.conf.
951	XORP does not support source-routed IPv4 multicast tunnels nor the
952	integrated IPIP tunneling, therefore it is not affected by this
953	change. The __FreeBSD_version macro has been bumped to 700030.
954
95520061221:
956	Support for PCI Message Signalled Interrupts has been
957	re-enabled in the bge driver, only for those chips which are
958	believed to support it properly.  If there are any problems,
959	MSI can be disabled completely by setting the
960	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
961	in the loader.
962
96320061214:
964	Support for PCI Message Signalled Interrupts has been
965	disabled again in the bge driver.  Many revisions of the
966	hardware fail to support it properly.  Support can be
967	re-enabled by removing the #define of BGE_DISABLE_MSI in
968	"src/sys/dev/bge/if_bge.c".
969
97020061214:
971	Support for PCI Message Signalled Interrupts has been added
972	to the bge driver.  If there are any problems, MSI can be
973	disabled completely by setting the 'hw.pci.enable_msi' and
974	'hw.pci.enable_msix' tunables to 0 in the loader.
975
97620061205:
977	The removal of several facets of the experimental Threading
978	system from the kernel means that the proc and thread structures
979	have changed quite a bit. I suggest all kernel modules that might
980	reference these structures be recompiled.. Especially the
981	linux module.
982
98320061126:
984	Sound infrastructure has been updated with various fixes and
985	improvements. Most of the changes are pretty much transparent,
986	with exceptions of followings:
987	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
988	   moved to their own dev sysctl nodes, for example:
989		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
990	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
991	   own chardev in the form of "dsp%d.<function>%d", where <function>
992	   is p = playback, r = record and v = virtual, respectively. Users
993	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
994	   This does not affect those who are using "/dev/dsp".
995
99620061122:
997	geom(4)'s gmirror(8) class metadata structure has been
998	rev'd from v3 to v4. If you update across this point and
999	your metadata is converted for you, you will not be easily
1000	able to downgrade since the /boot/kernel.old/geom_mirror.ko
1001	kernel module will be unable to read the v4 metadata.  You
1002	can resolve this by doing from the loader(8) prompt:
1003
1004		set vfs.root.mountfrom="ufs:/dev/XXX"
1005
1006	where XXX is the root slice of one of the disks that composed
1007	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
1008	the array the same way you built it originally.
1009
101020061122:
1011	The following binaries have been disconnected from the build:
1012	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
1013	and mount_std.  The functionality of these programs has been
1014	moved into the mount program.  For example, to mount a devfs
1015	filesystem, instead of using mount_devfs, use: "mount -t devfs".
1016	This does not affect entries in /etc/fstab, since entries in
1017	/etc/fstab are always processed with "mount -t fstype".
1018
101920061113:
1020	Support for PCI Message Signalled Interrupts on i386 and amd64
1021	has been added to the kernel and various drivers will soon be
1022	updated to use MSI when it is available.  If there are any problems,
1023	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
1024	and 'hw.pci.enable_msix' tunables to 0 in the loader.
1025
102620061110:
1027	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
1028	The lockmgr object layout has been changed as a result of having
1029	a lock_object embedded in it. As a consequence all file system
1030	kernel modules must be re-compiled. The mutex profiling man page
1031	has not yet been updated to reflect this change.
1032
103320061026:
1034	KSE in the kernel has now been made optional and turned on by
1035	default. Use 'nooption KSE' in your kernel config to turn it
1036	off. All kernel modules *must* be recompiled after this change.
1037	There-after, modules from a KSE kernel should be compatible with
1038	modules from a NOKSE kernel due to the temporary padding fields
1039	added to 'struct proc'.
1040
104120060929:
1042	mrouted and its utilities have been removed from the base system.
1043
104420060927:
1045	Some ioctl(2) command codes have changed.  Full backward ABI
1046	compatibility is provided if the "options COMPAT_FREEBSD6" is
1047	present in the kernel configuration file.  Make sure to add
1048	this option to your kernel config file, or recompile X.Org
1049	and the rest of ports; otherwise they may refuse to work.
1050
105120060924:
1052	tcpslice has been removed from the base system.
1053
105420060913:
1055	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1056	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
1057	systat needs to be rebuilt.
1058
105920060903:
1060	libpcap updated to v0.9.4 and tcpdump to v3.9.4
1061
106220060816:
1063	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1064	for IPFIREWALL_FORWARD is now as it was before when it was first
1065	committed and for years after. The behaviour is now ON.
1066
106720060725:
1068	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1069	Now it can decrypt files created from different architectures.
1070	Unfortunately, it is no longer able to decrypt a cipher text
1071	generated with an older version on 64 bit architectures.
1072	If you have such a file, you need old utility to decrypt it.
1073
107420060709:
1075	The interface version of the i4b kernel part has changed. So
1076	after updating the kernel sources and compiling a new kernel,
1077	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1078	be rebuilt, and vice versa.
1079
108020060627:
1081	The XBOX kernel now defaults to the nfe(4) driver instead of
1082	the nve(4) driver. Please update your configuration
1083	accordingly.
1084
108520060514:
1086	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1087	PCnet family of NICs has been removed. The new le(4) driver serves
1088	as an equivalent but cross-platform replacement with the pcn(4)
1089	driver still providing performance-optimized support for the subset
1090	of AMD Am79C971 PCnet-FAST and greater chips as before.
1091
109220060511:
1093	The machdep.* sysctls and the adjkerntz utility have been
1094	modified a bit.  The new adjkerntz utility uses the new
1095	sysctl names and sysctlbyname() calls, so it may be impossible
1096	to run an old /sbin/adjkerntz utility in single-user mode
1097	with a new kernel.  Replace the `adjkerntz -i' step before
1098	`make installworld' with:
1099
1100	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1101
1102	and proceed as usual with the rest of the installworld-stage
1103	steps.  Otherwise, you risk installing binaries with their
1104	timestamp set several hours in the future, especially if
1105	you are running with local time set to GMT+X hours.
1106
110720060412:
1108	The ip6fw utility has been removed.  The behavior provided by
1109	ip6fw has been in ipfw2 for a good while and the rc.d scripts
1110	have been updated to deal with it.  There are some rules that
1111	might not migrate cleanly.  Use rc.firewall6 as a template to
1112	rewrite rules.
1113
111420060428:
1115	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1116	attachments have been removed. Make sure to configure scc(4)
1117	on sparc64. Note also that by default puc(4) will use uart(4)
1118	and not sio(4) for serial ports because interrupt handling has
1119	been optimized for multi-port serial cards and only uart(4)
1120	implements the interface to support it.
1121
112220060330:
1123	The scc(4) driver replaces puc(4) for Serial Communications
1124	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1125	Z8530. On sparc64, it is advised to add scc(4) to the kernel
1126	configuration to make sure that the serial ports remain
1127	functional.
1128
112920060317:
1130	Most world/kernel related NO_* build options changed names.
1131	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1132	after FreeBSD ports) and should be set in /etc/src.conf
1133	(the src.conf(5) manpage is provided).  Full backwards
1134	compatibility is maintained for the time being though it's
1135	highly recommended to start moving old options out of the
1136	system-wide /etc/make.conf file into the new /etc/src.conf
1137	while also properly renaming them.  More conversions will
1138	likely follow.  Posting to current@:
1139
1140	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1141
114220060305:
1143	The NETSMBCRYPTO kernel option has been retired because its
1144	functionality is always included in NETSMB and smbfs.ko now.
1145
114620060303:
1147	The TDFX_LINUX kernel option was retired and replaced by the
1148	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
1149	kernel module.  Loading it alone should suffice to get 3dfx support
1150	for Linux apps because it will pull in 3dfx.ko and linux.ko through
1151	its dependencies.
1152
115320060204:
1154	The 'audit' group was added to support the new auditing functionality
1155	in the base system.  Be sure to follow the directions for updating,
1156	including the requirement to run mergemaster -p.
1157
115820060201:
1159	The kernel ABI to file system modules was changed on i386.
1160	Please make sure that your kernel and modules are in sync.
1161
116220060118:
1163	This actually occured some time ago, but installing the kernel
1164	now also installs a bunch of symbol files for the kernel modules.
1165	This increases the size of /boot/kernel to about 67Mbytes. You
1166	will need twice this if you will eventually back this up to kernel.old
1167	on your next install.
1168	If you have a shortage of room in your root partition, you should add
1169	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1170	to your /etc/make.conf.
1171
117220060113:
1173	libc's malloc implementation has been replaced.  This change has the
1174	potential to uncover application bugs that previously went unnoticed.
1175	See the malloc(3) manual page for more details.
1176
117720060112:
1178	The generic netgraph(4) cookie has been changed. If you upgrade
1179	kernel passing this point, you also need to upgrade userland
1180	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1181
118220060106:
1183	si(4)'s device files now contain the unit number.
1184	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1185
118620060106:
1187	The kernel ABI was mostly destroyed due to a change in the size
1188	of struct lock_object which is nested in other structures such
1189	as mutexes which are nested in all sorts of other structures.
1190	Make sure your kernel and modules are in sync.
1191
119220051231:
1193	The page coloring algorithm in the VM subsystem was converted
1194	from tuning with kernel options to autotuning. Please remove
1195	any PQ_* option except PQ_NOOPT from your kernel config.
1196
119720051211:
1198	The net80211-related tools in the tools/tools/ath directory
1199	have been moved to tools/tools/net80211 and renamed with a
1200	"wlan" prefix.  Scripts that use them should be adjusted
1201	accordingly.
1202
120320051202:
1204	Scripts in the local_startup directories (as defined in
1205	/etc/defaults/rc.conf) that have the new rc.d semantics will
1206	now be run as part of the base system rcorder. If there are
1207	errors or problems with one of these local scripts, it could
1208	cause boot problems. If you encounter such problems, boot in
1209	single user mode, remove that script from the */rc.d directory.
1210	Please report the problem to the port's maintainer, and the
1211	freebsd-ports@freebsd.org mailing list.
1212
121320051129:
1214	The nodev mount option was deprecated in RELENG_6 (where it
1215	was a no-op), and is now unsupported.  If you have nodev or dev listed
1216	in /etc/fstab, remove it, otherwise it will result in a mount error.
1217
121820051129:
1219	ABI between ipfw(4) and ipfw(8) has been changed. You need
1220	to rebuild ipfw(8) when rebuilding kernel.
1221
122220051108:
1223	rp(4)'s device files now contain the unit number.
1224	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1225
122620051029:
1227	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1228	Its /etc/rc.conf.d configuration file has been `ppp' from
1229	the beginning, and hence there is no need to touch it.
1230
123120051014:
1232	Now most modules get their build-time options from the kernel
1233	configuration file.  A few modules still have fixed options
1234	due to their non-conformant implementation, but they will be
1235	corrected eventually.  You may need to review the options of
1236	the modules in use, explicitly specify the non-default options
1237	in the kernel configuration file, and rebuild the kernel and
1238	modules afterwards.
1239
124020051001:
1241	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1242	to turn polling(4) on your interfaces.
1243
124420050927:
1245	The old bridge(4) implementation was retired.  The new
1246	if_bridge(4) serves as a full functional replacement.
1247
124820050722:
1249	The ai_addrlen of a struct addrinfo was changed to a socklen_t
1250	to conform to POSIX-2001.  This change broke an ABI
1251	compatibility on 64 bit architecture.  You have to recompile
1252	userland programs that use getaddrinfo(3) on 64 bit
1253	architecture.
1254
125520050711:
1256	RELENG_6 branched here.
1257
125820050629:
1259	The pccard_ifconfig rc.conf variable has been removed and a new
1260	variable, ifconfig_DEFAULT has been introduced.  Unlike
1261	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1262	do not have ifconfig_ifn entries rather than just those in
1263	removable_interfaces.
1264
126520050616:
1266	Some previous versions of PAM have permitted the use of
1267	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1268	to third party PAM modules in /usr/local/lib.  A change has been
1269	made to require the use of absolute paths in order to avoid
1270	ambiguity and dependence on library path configuration, which may
1271	affect existing configurations.
1272
127320050610:
1274	Major changes to network interface API.  All drivers must be
1275	recompiled.  Drivers not in the base system will need to be
1276	updated to the new APIs.
1277
127820050609:
1279	Changes were made to kinfo_proc in sys/user.h.  Please recompile
1280	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1281	will not behave correctly.
1282
1283	The API and ABI for hwpmc(4) have changed with the addition
1284	of sampling support.  Please recompile lib/libpmc(3) and
1285	usr.sbin/{pmcstat,pmccontrol}.
1286
128720050606:
1288	The OpenBSD dhclient was imported in place of the ISC dhclient
1289	and the network interface configuration scripts were updated
1290	accordingly.  If you use DHCP to configure your interfaces, you
1291	must now run devd.  Also, DNS updating was lost so you will need
1292	to find a workaround if you use this feature.
1293
1294	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1295	sure to run mergemaster -p (like you are supposed to do every time
1296	anyway).
1297
129820050605:
1299	if_bridge was added to the tree. This has changed struct ifnet.
1300	Please recompile userland and all network related modules.
1301
130220050603:
1303	The n_net of a struct netent was changed to an uint32_t, and
1304	1st argument of getnetbyaddr() was changed to an uint32_t, to
1305	conform to POSIX-2001.  These changes broke an ABI
1306	compatibility on 64 bit architecture.  With these changes,
1307	shlib major of libpcap was bumped.  You have to recompile
1308	userland programs that use getnetbyaddr(3), getnetbyname(3),
1309	getnetent(3) and/or libpcap on 64 bit architecture.
1310
131120050528:
1312	Kernel parsing of extra options on '#!' first lines of shell
1313	scripts has changed.  Lines with multiple options likely will
1314	fail after this date.  For full details, please see
1315		http://people.freebsd.org/~gad/Updating-20050528.txt
1316
131720050503:
1318	The packet filter (pf) code has been updated to OpenBSD 3.7
1319	Please note the changed anchor syntax and the fact that
1320	authpf(8) now needs a mounted fdescfs(5) to function.
1321
132220050415:
1323	The NO_MIXED_MODE kernel option has been removed from the i386
1324	amd64 platforms as its use has been superceded by the new local
1325	APIC timer code.  Any kernel config files containing this option
1326	should be updated.
1327
132820050227:
1329	The on-disk format of LC_CTYPE files was changed to be machine
1330	independent.  Please make sure NOT to use NO_CLEAN buildworld
1331	when crossing this point. Crossing this point also requires
1332	recompile or reinstall of all locale depended packages.
1333
133420050225:
1335	The ifi_epoch member of struct if_data has been changed to
1336	contain the uptime at which the interface was created or the
1337	statistics zeroed rather then the wall clock time because
1338	wallclock time may go backwards.  This should have no impact
1339	unless an snmp implementation is using this value (I know of
1340	none at this point.)
1341
134220050224:
1343	The acpi_perf and acpi_throttle drivers are now part of the
1344	acpi(4) main module.  They are no longer built separately.
1345
134620050223:
1347	The layout of struct image_params has changed. You have to
1348	recompile all compatibility modules (linux, svr4, etc) for use
1349	with the new kernel.
1350
135120050223:
1352	The p4tcc driver has been merged into cpufreq(4).  This makes
1353	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1354	compile in "device cpufreq" to restore this functionality.
1355
135620050220:
1357	The responsibility of recomputing the file system summary of
1358	a SoftUpdates-enabled dirty volume has been transferred to the
1359	background fsck.  A rebuild of fsck(8) utility is recommended
1360	if you have updated the kernel.
1361
1362	To get the old behavior (recompute file system summary at mount
1363	time), you can set vfs.ffs.compute_summary_at_mount=1 before
1364	mounting the new volume.
1365
136620050206:
1367	The cpufreq import is complete.  As part of this, the sysctls for
1368	acpi(4) throttling have been removed.  The power_profile script
1369	has been updated, so you can use performance/economy_cpu_freq in
1370	rc.conf(5) to set AC on/offline cpu frequencies.
1371
137220050206:
1373	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1374	requires recompiling libnetgraph and userland netgraph utilities.
1375
137620050114:
1377	Support for abbreviated forms of a number of ipfw options is
1378	now deprecated.  Warnings are printed to stderr indicating the
1379	correct full form when a match occurs.  Some abbreviations may
1380	be supported at a later date based on user feedback.  To be
1381	considered for support, abbreviations must be in use prior to
1382	this commit and unlikely to be confused with current key words.
1383
138420041221:
1385	By a popular demand, a lot of NOFOO options were renamed
1386	to NO_FOO (see bsd.compat.mk for a full list).  The old
1387	spellings are still supported, but will cause annoying
1388	warnings on stderr.  Make sure you upgrade properly (see
1389	the COMMON ITEMS: section later in this file).
1390
139120041219:
1392	Auto-loading of ancillary wlan modules such as wlan_wep has
1393	been temporarily disabled; you need to statically configure
1394	the modules you need into your kernel or explicitly load them
1395	prior to use.  Specifically, if you intend to use WEP encryption
1396	with an 802.11 device load/configure wlan_wep; if you want to
1397	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1398	and wlan_xauth as required.
1399
140020041213:
1401	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1402	(``enable lqr''), older versions would revert to LCP ECHO mode on
1403	negotiation failure.  Now, ``enable echo'' is required for this
1404	behaviour.  The ppp version number has been bumped to 3.4.2 to
1405	reflect the change.
1406
140720041201:
1408	The wlan support has been updated to split the crypto support
1409	into separate modules.  For static WEP you must configure the
1410	wlan_wep module in your system or build and install the module
1411	in place where it can be loaded (the kernel will auto-load
1412	the module when a wep key is configured).
1413
141420041201:
1415	The ath driver has been updated to split the tx rate control
1416	algorithm into a separate module.  You need to include either
1417	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1418
141920041116:
1420	Support for systems with an 80386 CPU has been removed.  Please
1421	use FreeBSD 5.x or earlier on systems with an 80386.
1422
142320041110:
1424	We have had a hack which would mount the root filesystem
1425	R/W if the device were named 'md*'.  As part of the vnode
1426	work I'm doing I have had to remove this hack.  People
1427	building systems which use preloaded MD root filesystems
1428	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1429	their /etc/rc scripts.
1430
143120041104:
1432	FreeBSD 5.3 shipped here.
1433
143420041102:
1435	The size of struct tcpcb has changed again due to the removal
1436	of RFC1644 T/TCP.  You have to recompile userland programs that
1437	read kmem for tcp sockets directly (netstat, sockstat, etc.)
1438
143920041022:
1440	The size of struct tcpcb has changed.  You have to recompile
1441	userland programs that read kmem for tcp sockets directly
1442	(netstat, sockstat, etc.)
1443
144420041016:
1445	RELENG_5 branched here.  For older entries, please see updating
1446	in the RELENG_5 branch.
1447
1448COMMON ITEMS:
1449
1450	General Notes
1451	-------------
1452	Avoid using make -j when upgrading.  From time to time in the
1453	past there have been problems using -j with buildworld and/or
1454	installworld.  This is especially true when upgrading between
1455	"distant" versions (eg one that cross a major release boundary
1456	or several minor releases, or when several months have passed
1457	on the -current branch).
1458
1459	Sometimes, obscure build problems are the result of environment
1460	poisoning.  This can happen because the make utility reads its
1461	environment when searching for values for global variables.
1462	To run your build attempts in an "environmental clean room",
1463	prefix all make commands with 'env -i '.  See the env(1) manual
1464	page for more details.
1465
1466	When upgrading from one major version to another it is generally
1467	best to upgrade to the latest code in the currently installed branch
1468	first, then do an upgrade to the new branch. This is the best-tested
1469	upgrade path, and has the highest probability of being successful.
1470	Please try this approach before reporting problems with a major
1471	version upgrade.
1472
1473	To build a kernel
1474	-----------------
1475	If you are updating from a prior version of FreeBSD (even one just
1476	a few days old), you should follow this procedure.  It is the most
1477	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1478
1479	make kernel-toolchain
1480	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1481	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1482
1483	To test a kernel once
1484	---------------------
1485	If you just want to boot a kernel once (because you are not sure
1486	if it works, or if you want to boot a known bad kernel to provide
1487	debugging information) run
1488	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1489	nextboot -k testkernel
1490
1491	To just build a kernel when you know that it won't mess you up
1492	--------------------------------------------------------------
1493	This assumes you are already running a 5.X system.  Replace
1494	${arch} with the architecture of your machine (e.g. "i386",
1495	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1496
1497	cd src/sys/${arch}/conf
1498	config KERNEL_NAME_HERE
1499	cd ../compile/KERNEL_NAME_HERE
1500	make depend
1501	make
1502	make install
1503
1504	If this fails, go to the "To build a kernel" section.
1505
1506	To rebuild everything and install it on the current system.
1507	-----------------------------------------------------------
1508	# Note: sometimes if you are running current you gotta do more than
1509	# is listed here if you are upgrading from a really old current.
1510
1511	<make sure you have good level 0 dumps>
1512	make buildworld
1513	make kernel KERNCONF=YOUR_KERNEL_HERE
1514							[1]
1515	<reboot in single user>				[3]
1516	mergemaster -p					[5]
1517	make installworld
1518	make delete-old
1519	mergemaster					[4]
1520	<reboot>
1521
1522
1523	To cross-install current onto a separate partition
1524	--------------------------------------------------
1525	# In this approach we use a separate partition to hold
1526	# current's root, 'usr', and 'var' directories.   A partition
1527	# holding "/", "/usr" and "/var" should be about 2GB in
1528	# size.
1529
1530	<make sure you have good level 0 dumps>
1531	<boot into -stable>
1532	make buildworld
1533	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1534	<maybe newfs current's root partition>
1535	<mount current's root partition on directory ${CURRENT_ROOT}>
1536	make installworld DESTDIR=${CURRENT_ROOT}
1537	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1538	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1539	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1540	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1541	<reboot into current>
1542	<do a "native" rebuild/install as described in the previous section>
1543	<maybe install compatibility libraries from ports/misc/compat*>
1544	<reboot>
1545
1546
1547	To upgrade in-place from 5.x-stable to current
1548	----------------------------------------------
1549	<make sure you have good level 0 dumps>
1550	make buildworld					[9]
1551	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1552							[1]
1553	<reboot in single user>				[3]
1554	mergemaster -p					[5]
1555	make installworld
1556	make delete-old
1557	mergemaster -i					[4]
1558	<reboot>
1559
1560	Make sure that you've read the UPDATING file to understand the
1561	tweaks to various things you need.  At this point in the life
1562	cycle of current, things change often and you are on your own
1563	to cope.  The defaults can also change, so please read ALL of
1564	the UPDATING entries.
1565
1566	Also, if you are tracking -current, you must be subscribed to
1567	freebsd-current@freebsd.org.  Make sure that before you update
1568	your sources that you have read and understood all the recent
1569	messages there.  If in doubt, please track -stable which has
1570	much fewer pitfalls.
1571
1572	[1] If you have third party modules, such as vmware, you
1573	should disable them at this point so they don't crash your
1574	system on reboot.
1575
1576	[3] From the bootblocks, boot -s, and then do
1577		fsck -p
1578		mount -u /
1579		mount -a
1580		cd src
1581		adjkerntz -i		# if CMOS is wall time
1582	Also, when doing a major release upgrade, it is required that
1583	you boot into single user mode to do the installworld.
1584
1585	[4] Note: This step is non-optional.  Failure to do this step
1586	can result in a significant reduction in the functionality of the
1587	system.  Attempting to do it by hand is not recommended and those
1588	that pursue this avenue should read this file carefully, as well
1589	as the archives of freebsd-current and freebsd-hackers mailing lists
1590	for potential gotchas.
1591
1592	[5] Usually this step is a noop.  However, from time to time
1593	you may need to do this if you get unknown user in the following
1594	step.  It never hurts to do it all the time.  You may need to
1595	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1596	install) after the buildworld before this step if you last updated
1597	from current before 20020224 or from -stable before 20020408.
1598
1599	[8] In order to have a kernel that can run the 4.x binaries
1600	needed to do an installworld, you must include the COMPAT_FREEBSD4
1601	option in your kernel.  Failure to do so may leave you with a system
1602	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1603	is required to run the 5.x binaries on more recent kernels.
1604
1605	Make sure that you merge any new devices from GENERIC since the
1606	last time you updated your kernel config file.
1607
1608	[9] When checking out sources, you must include the -P flag to have
1609	cvs prune empty directories.
1610
1611	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1612	"?=" instead of the "=" assignment operator, so that buildworld can
1613	override the CPUTYPE if it needs to.
1614
1615	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1616	not on the command line, or in /etc/make.conf.  buildworld will
1617	warn if it is improperly defined.
1618FORMAT:
1619
1620This file contains a list, in reverse chronological order, of major
1621breakages in tracking -current.  Not all things will be listed here,
1622and it only starts on October 16, 2004.  Updating files can found in
1623previous releases if your system is older than this.
1624
1625Copyright information:
1626
1627Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1628
1629Redistribution, publication, translation and use, with or without
1630modification, in full or in part, in any form or format of this
1631document are permitted without further permission from the author.
1632
1633THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1634IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1635WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1636DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1637INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1638(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1639SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1640HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1641STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1642IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1643POSSIBILITY OF SUCH DAMAGE.
1644
1645If you find this document useful, and you want to, you may buy the
1646author a beer.
1647
1648Contact Warner Losh if you have any questions about your use of
1649this document.
1650
1651$FreeBSD: head/UPDATING 195634 2009-07-12 09:14:28Z lstewart $
1652