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