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