UPDATING revision 191389
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
2520090422
26	Implement low-level Bluetooth HCI API.
27	Bump __FreeBSD_version to 800083.
28
2920090415:
30	Anticipate overflowing inp_flags - add inp_flags2. 
31	This changes most offsets in inpcb, so checking v4 connection
32	state will require a world rebuild. 
33	Bump __FreeBSD_version to 800080.
3420090415:
35	Add an llentry to struct route and struct route_in6. Modules
36	embedding a struct route will need to be recompiled. 
37	Bump __FreeBSD_version to 800079.
38
3920090414:
40	The size of rt_metrics_lite and by extension rtentry has changed.
41	Networking administration apps will need to be recompiled.
42	The route command now supports show as an alias for get, weighting 
43	of routes, sticky and nostick flags to alter the behavior of stateful
44	load balancing.
45	Bump __FreeBSD_version to 800078.
4620090408:
47	Do not use Giant for kbdmux(4) locking. This is wrong and
48	apparently causing more problems than it solves. This will
49	re-open the issue where interrupt handlers may race with
50	kbdmux(4) in polling mode. Typical symptoms include (but
51	not limited to) duplicated and/or missing characters when
52	low level console functions (such as gets) are used while
53	interrupts are enabled (for example geli password prompt,
54	mountroot prompt etc.). Disabling kbdmux(4) may help.
55
5620090407:
57	The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
58	kernel modules referencing any of the above need to be recompiled.
59	Bump __FreeBSD_version to 800075.
60
6120090320:
62	GEOM_PART has become the default partition slicer for storage devices,
63	replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
64	introduces some changes:
65	
66	MSDOS/EBR: the devices created from MSDOS extended partition entries
67	(EBR) can be named differently than with GEOM_MBR and are now symlinks
68	to devices with offset-based names. fstabs may need to be modified.
69
70	BSD: the "geometry does not match label" warning is harmless in most
71	cases but it points to problems in file system misalignment with
72	disk geometry. The "c" partition is now implicit, covers the whole
73	top-level drive and cannot be (mis)used by users.
74	
75	General: Kernel dumps are now not allowed to be written to devices
76	whose partition types indicate they are meant to be used for file
77	systems (or, in case of MSDOS partitions, as something else than
78	the "386BSD" type).
79
80	Most of these changes date approximately from 200812.
81
8220090319:
83	The uscanner(4) driver has been removed from the kernel. This follows
84	Linux removing theirs in 2.6 and making libusb the default interface
85	(supported by sane).
86
8720090319:
88	The multicast forwarding code has been cleaned up. netstat(1)
89	only relies on KVM now for printing bandwidth upcall meters.
90	The IPv4 and IPv6 modules are split into ip_mroute_mod and
91	ip6_mroute_mod respectively. The config(5) options for statically
92	compiling this code remain the same, i.e. 'options MROUTING'.
93
9420090315:
95	Support for the IFF_NEEDSGIANT network interface flag has been
96	removed, which means that non-MPSAFE network device drivers are no
97	longer supported.  In particular, if_ar, if_sr, and network device
98	drivers from the old (legacy) USB stack can no longer be built or
99	used.
100
10120090313:
102	POSIX.1 Native Language Support (NLS) has been enabled in libc and
103	a bunch of new language catalog files have also been added.
104	This means that some common libc messages are now localized and
105	they depend on the LC_MESSAGES environmental variable.
106
10720090313:
108	The k8temp(4) driver has been renamed to amdtemp(4) since
109	support for K10 and K11 CPU families was added.
110
11120090309:
112	IGMPv3 and Source-Specific Multicast (SSM) have been merged
113	to the IPv4 stack. VIMAGE hooks are in but not yet used.
114
115	For kernel developers, the most important changes are that the
116	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
117	and this lock has been downgraded to a non-recursive mutex.
118
119	Transport protocols (UDP, Raw IP) are now responsible for filtering
120	inbound multicast traffic according to group membership and source
121	filters. The imo_multicast_filter() KPI exists for this purpose.
122	Transports which do not use multicast (SCTP, TCP) already reject
123	multicast by default. Forwarding and receive performance may improve
124	as a mutex acquisition is no longer needed in the ip_input()
125	low-level input path.  in_addmulti() and in_delmulti() are shimmed
126	to new KPIs which exist to support SSM in-kernel.
127
128	For application developers, it is recommended that loopback of
129	multicast datagrams be disabled for best performance, as this
130	will still cause the lock to be taken for each looped-back
131	datagram transmission. The net.inet.ip.mcast.loop sysctl may
132	be tuned to 0 to disable loopback by default; it defaults to 1
133	to preserve the existing behaviour.
134
135	For systems administrators, to obtain best performance with
136	multicast reception and multiple groups, it is always recommended
137	that a card with a suitably precise hash filter is used. Hash
138	collisions will still result in the lock being taken within the
139	transport protocol input path to check group membership.
140
141	If deploying FreeBSD in an environment with IGMP snooping switches,
142	it is recommended that the net.inet.igmp.sendlocal sysctl remain
143	enabled; this forces 224.0.0.0/24 group membership to be announced
144	via IGMP.
145
146	The size of 'struct igmpstat' has changed; netstat needs to be
147	recompiled to reflect this.
148	Bump __FreeBSD_version to 800070.
149
15020090309:
151	libusb20.so.1 is now installed as libusb.so.1 and the ports system
152	updated to use it. This requires a buildworld/installworld in order to
153	update the library and dependencies (usbconfig, etc). Its advisable to
154	rebuild all ports which uses libusb. More specific directions are given
155	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
156	libusb are no longer required and can be removed.
157
15820090302:
159	A workaround is committed to allow the creation of System V shared
160	memory segment of size > 2 GB on the 64-bit architectures.
161	Due to a limitation of the existing ABI, the shm_segsz member
162	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
163	wrong for large segments. Note that limits must be explicitely
164	raised to allow such segments to be created.
165
16620090301:
167	The layout of struct ifnet has changed, requiring a rebuild of all
168	network device driver modules.
169
17020090227:
171	The /dev handling for the new USB stack has changed, a
172	buildworld/installworld is required for libusb20.
173
17420090223:
175	The new USB2 stack has now been permanently moved in and all kernel and
176	module names reverted to their previous values (eg, usb, ehci, ohci,
177	ums, ...).  The old usb stack can be compiled in by prefixing the name
178	with the letter 'o', the old usb modules have been removed.
179	Updating entry 20090216 for xorg and 20090215 for libmap may still
180	apply.
181
18220090217:
183	The rc.conf(5) option if_up_delay has been renamed to
184	defaultroute_delay to better reflect its purpose. If you have
185	customized this setting in /etc/rc.conf you need to update it to
186	use the new name.
187
18820090216:
189	xorg 7.4 wants to configure its input devices via hald which does not
190	yet work with USB2. If the keyboard/mouse does not work in xorg then
191	add
192		Option "AllowEmptyInput" "off"
193	to your ServerLayout section.  This will cause X to use the configured
194	kbd and mouse sections from your xorg.conf.
195
19620090215:
197	The GENERIC kernels for all architectures now default to the new USB2
198	stack. No kernel config options or code have been removed so if a
199	problem arises please report it and optionally revert to the old USB
200	stack. If you are loading USB kernel modules or have a custom kernel
201	that includes GENERIC then ensure that usb names are also changed over,
202	eg uftdi -> usb2_serial_ftdi.
203
204	Older programs linked against the ports libusb 0.1 need to be
205	redirected to the new stack's libusb20.  /etc/libmap.conf can
206	be used for this:
207		# Map old usb library to new one for usb2 stack
208		libusb-0.1.so.8	libusb20.so.1
209
21020090203:
211	The ichsmb(4) driver has been changed to require SMBus slave
212	addresses be left-justified (xxxxxxx0b) rather than right-justified.
213	All of the other SMBus controller drivers require left-justified
214	slave addresses, so this change makes all the drivers provide the
215	same interface.
216
21720090201:
218	INET6 statistics (struct ip6stat) was updated.
219	netstat(1) needs to be recompiled.
220
22120090119:
222	NTFS has been removed from GENERIC kernel on amd64 to match
223	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
224	will load ntfs.ko module automatically when NTFS support is
225	actually needed, unless ntfs.ko is not installed or security
226	level prohibits loading kernel modules. If either is the case,
227	"options NTFS" has to be added into kernel config.
228
22920090115:
230	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
231	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
232	800061. User space tools that rely on the size of struct tcpcb in
233	tcp_var.h (e.g. sockstat) need to be recompiled.
234
23520081225:
236	ng_tty(4) module updated to match the new TTY subsystem.
237	Due to API change, user-level applications must be updated.
238	New API support added to mpd5 CVS and expected to be present
239	in next mpd5.3 release.
240
24120081219:
242	With __FreeBSD_version 800060 the makefs tool is part of
243	the base system (it was a port).
244
24520081216:
246	The afdata and ifnet locks have been changed from mutexes to
247	rwlocks, network modules will need to be re-compiled.
248
24920081214:
250	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
251	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
252	The new code reduced struct rtentry{} by 16 bytes on 32-bit
253	architecture and 40 bytes on 64-bit architecture. The userland
254	applications "arp" and "ndp" have been updated accordingly.
255	The output from "netstat -r" shows only routing entries and
256	none of the L2 information.
257
25820081130:
259	__FreeBSD_version 800057 marks the switchover from the
260	binary ath hal to source code. Users must add the line:
261
262	options	AH_SUPPORT_AR5416
263
264	to their kernel config files when specifying:
265
266	device	ath_hal
267
268	The ath_hal module no longer exists; the code is now compiled
269	together with the driver in the ath module.  It is now
270	possible to tailor chip support (i.e. reduce the set of chips
271	and thereby the code size); consult ath_hal(4) for details.
272
27320081121:
274	__FreeBSD_version 800054 adds memory barriers to
275	<machine/atomic.h>, new interfaces to ifnet to facilitate
276	multiple hardware transmit queues for cards that support
277	them, and a lock-less ring-buffer implementation to
278	enable drivers to more efficiently manage queueing of
279	packets.
280
28120081117:
282	A new version of ZFS (version 13) has been merged to -HEAD.
283	This version has zpool attribute "listsnapshots" off by
284	default, which means "zfs list" does not show snapshots,
285	and is the same as Solaris behavior.
286
28720081028:
288	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
289
29020081009:
291	The uhci, ohci, ehci and slhci USB Host controller drivers have
292	been put into separate modules. If you load the usb module
293	separately through loader.conf you will need to load the
294	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
295	controller add the following to loader.conf:
296
297		uhci_load="YES"
298		ehci_load="YES"
299
30020081009:
301	The ABI used by the PMC toolset has changed.  Please keep
302	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
303	sync.
304
30520080820:
306	The TTY subsystem of the kernel has been replaced by a new
307	implementation, which provides better scalability and an
308	improved driver model. Most common drivers have been migrated to
309	the new TTY subsystem, while others have not. The following
310	drivers have not yet been ported to the new TTY layer:
311
312	PCI/ISA:
313		cy, digi, rc, rp, sio
314
315	USB:
316		ubser, ucycom
317
318	Line disciplines:
319		ng_h4, ng_tty, ppp, sl, snp
320
321	Adding these drivers to your kernel configuration file shall
322	cause compilation to fail.
323
32420080818:
325	ntpd has been upgraded to 4.2.4p5.
326
32720080801:
328	OpenSSH has been upgraded to 5.1p1.
329
330	For many years, FreeBSD's version of OpenSSH preferred DSA
331	over RSA for host and user authentication keys.  With this
332	upgrade, we've switched to the vendor's default of RSA over
333	DSA.  This may cause upgraded clients to warn about unknown
334	host keys even for previously known hosts.  Users should
335	follow the usual procedure for verifying host keys before
336	accepting the RSA key.
337
338	This can be circumvented by setting the "HostKeyAlgorithms"
339	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
340	command line.
341
342	Please note that the sequence of keys offered for
343	authentication has been changed as well.  You may want to
344	specify IdentityFile in a different order to revert this
345	behavior.
346
34720080713:
348	The sio(4) driver has been removed from the i386 and amd64
349	kernel configuration files. This means uart(4) is now the
350	default serial port driver on those platforms as well.
351
352	To prevent collisions with the sio(4) driver, the uart(4) driver
353	uses different names for its device nodes. This means the
354	onboard serial port will now most likely be called "ttyu0"
355	instead of "ttyd0". You may need to reconfigure applications to
356	use the new device names.
357
358	When using the serial port as a boot console, be sure to update
359	/boot/device.hints and /etc/ttys before booting the new kernel.
360	If you forget to do so, you can still manually specify the hints
361	at the loader prompt:
362
363		set hint.uart.0.at="isa"
364		set hint.uart.0.port="0x3F8"
365		set hint.uart.0.flags="0x10"
366		set hint.uart.0.irq="4"
367		boot -s
368
36920080609:
370	The gpt(8) utility has been removed. Use gpart(8) to partition
371	disks instead.
372
37320080603:
374	The version that Linuxulator emulates was changed from 2.4.2
375	to 2.6.16. If you experience any problems with Linux binaries
376	please try to set sysctl compat.linux.osrelease to 2.4.2 and
377	if it fixes the problem contact emulation mailing list.
378
37920080525:
380	ISDN4BSD (I4B) was removed from the src tree. You may need to
381	update a your kernel configuration and remove relevant entries.
382
38320080509:
384	I have checked in code to support multiple routing tables.
385	See the man pages setfib(1) and setfib(2).
386	This is a hopefully backwards compatible version,
387	but to make use of it you need to compile your kernel
388	with options ROUTETABLES=2 (or more up to 16).
389
39020080420:
391	The 802.11 wireless support was redone to enable multi-bss
392	operation on devices that are capable.  The underlying device
393	is no longer used directly but instead wlanX devices are
394	cloned with ifconfig.  This requires changes to rc.conf files.
395	For example, change:
396		ifconfig_ath0="WPA DHCP"
397	to
398		wlans_ath0=wlan0
399		ifconfig_wlan0="WPA DHCP"
400	see rc.conf(5) for more details.  In addition, mergemaster of
401	/etc/rc.d is highly recommended.  Simultaneous update of userland
402	and kernel wouldn't hurt either.
403
404	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
405	modules were merged into the base wlan module.  All references
406	to these modules (e.g. in kernel config files) must be removed.
407
40820080408:
409	psm(4) has gained write(2) support in native operation level.
410	Arbitrary commands can be written to /dev/psm%d and status can
411	be read back from it.  Therefore, an application is responsible
412	for status validation and error recovery.  It is a no-op in
413	other operation levels.
414
41520080312:
416	Support for KSE threading has been removed from the kernel.  To
417	run legacy applications linked against KSE libmap.conf may
418	be used.  The following libmap.conf may be used to ensure
419	compatibility with any prior release:
420
421	libpthread.so.1 libthr.so.1
422	libpthread.so.2 libthr.so.2
423	libkse.so.3 libthr.so.3
424
42520080301:
426	The layout of struct vmspace has changed. This affects libkvm
427	and any executables that link against libkvm and use the
428	kvm_getprocs() function. In particular, but not exclusively,
429	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
430	The effects are minimal, but it's advisable to upgrade world
431	nonetheless.
432
43320080229:
434	The latest em driver no longer has support in it for the
435	82575 adapter, this is now moved to the igb driver. The
436	split was done to make new features that are incompatible
437	with older hardware easier to do.
438
43920080220:
440	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
441	likewise the kernel option is now GEOM_LINUX_LVM.
442
44320080211:
444	The default NFS mount mode has changed from UDP to TCP for
445	increased reliability.  If you rely on (insecurely) NFS
446	mounting across a firewall you may need to update your
447	firewall rules.
448
44920080208:
450	Belatedly note the addition of m_collapse for compacting
451	mbuf chains.
452
45320080126:
454	The fts(3) structures have been changed to use adequate
455	integer types for their members and so to be able to cope
456	with huge file trees.  The old fts(3) ABI is preserved
457	through symbol versioning in libc, so third-party binaries
458	using fts(3) should still work, although they will not take
459	advantage of the extended types.  At the same time, some
460	third-party software might fail to build after this change
461	due to unportable assumptions made in its source code about
462	fts(3) structure members.  Such software should be fixed
463	by its vendor or, in the worst case, in the ports tree.
464	FreeBSD_version 800015 marks this change for the unlikely
465	case that a portable fix is impossible.
466
46720080123:
468	To upgrade to -current after this date, you must be running
469	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
470	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
471
47220071128:
473	The ADAPTIVE_GIANT kernel option has been retired because its
474	functionality is the default now.
475
47620071118:
477	The AT keyboard emulation of sunkbd(4) has been turned on
478	by default. In order to make the special symbols of the Sun
479	keyboards driven by sunkbd(4) work under X these now have
480	to be configured the same way as Sun USB keyboards driven
481	by ukbd(4) (which also does AT keyboard emulation), f.e.:
482
483	Option	"XkbLayout" "us"
484	Option	"XkbRules" "xorg"
485	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
486
48720071024:
488	It has been decided that it is desirable to provide ABI
489	backwards compatibility to the FreeBSD 4/5/6 versions of the
490	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
491	broken with the introduction of PCI domain support (see the
492	20070930 entry). Unfortunately, this required the ABI of
493	PCIOCGETCONF to be broken again in order to be able to
494	provide backwards compatibility to the old version of that
495	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
496	again. As for prominent ports this affects neither pciutils
497	nor xorg-server this time, the hal port needs to be rebuilt
498	however.
499
50020071020:
501	The misnamed kthread_create() and friends have been renamed
502	to kproc_create() etc. Many of the callers already
503	used kproc_start()..
504	I will return kthread_create() and friends in a while
505	with implementations that actually create threads, not procs.
506	Renaming corresponds with version 800002.
507
50820071010:
509	RELENG_7 branched.
510
51120071009:
512	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
513	WITHOUT_LIBTHR are set.
514
51520070930:
516	The PCI code has been made aware of PCI domains. This means that
517	the location strings as used by pciconf(8) etc are now in the
518	following format: pci<domain>:<bus>:<device>[:<function>]. It
519	also means that consumers of <sys/pciio.h> potentially need to
520	be recompiled; this includes the hal and xorg-server ports.
521
52220070928:
523	The caching daemon (cached) was renamed to nscd. nscd.conf
524	configuration file should be used instead of cached.conf and
525	nscd_enable, nscd_pidfile and nscd_flags options should be used
526	instead of cached_enable, cached_pidfile and cached_flags in
527	rc.conf.
528
52920070921:
530	The getfacl(1) utility now prints owning user and group name
531	instead of owning uid and gid in the three line comment header.
532	This is the same behavior as getfacl(1) on Solaris and Linux.
533
53420070704:
535	The new IPsec code is now compiled in using the IPSEC option.  The
536	IPSEC option now requires "device crypto" be defined in your kernel
537	configuration.  The FAST_IPSEC kernel option is now deprecated.
538
53920070702:
540	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
541	note the changed syntax - keep state is now on by default.  Also
542	note the fact that ftp-proxy(8) has been changed from bottom up and
543	has been moved from libexec to usr/sbin.  Changes in the ALTQ
544	handling also affect users of IPFW's ALTQ capabilities.
545
54620070701:
547	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
548	only IPsec supported by FreeBSD.  The new IPsec stack
549	supports both IPv4 and IPv6. The kernel option will change
550	after the code changes have settled in.  For now the kernel
551	option IPSEC is deprecated and FAST_IPSEC is the only option, that
552	will change after some settling time.
553
55420070701:
555	The wicontrol(8) utility has been removed from the base system. wi(4)
556	cards should be configured using ifconfig(8), see the man page for more
557	information.
558
55920070612:
560	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
561	instead of the nve(4) driver. Please update your configuration
562	accordingly.
563
56420070612:
565	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
566	database if it is missing or older than the aliases file.  If
567	desired, set the new rc.conf option sendmail_rebuild_aliases
568	to "YES" to restore that functionality.
569
57020070612:
571	The IPv4 multicast socket code has been considerably modified, and
572	moved to the file sys/netinet/in_mcast.c. Initial support for the
573	RFC 3678 Source-Specific Multicast Socket API has been added to
574	the IPv4 network stack.
575
576	Strict multicast and broadcast reception is now the default for
577	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
578	has now been removed.
579
580	The RFC 1724 hack for interface selection has been removed; the use
581	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
582	been added to replace it. Consumers such as routed will soon be
583	updated to reflect this.
584
585	These changes affect users who are running routed(8) or rdisc(8)
586	from the FreeBSD base system on point-to-point or unnumbered
587	interfaces.
588
58920070610:
590	The net80211 layer has changed significantly and all wireless
591	drivers that depend on it need to be recompiled.  Further these
592	changes require that any program that interacts with the wireless
593	support in the kernel be recompiled; this includes: ifconfig,
594	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
595	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
596	if they use modules for wireless support.  These modules implement
597	scanning support for station and ap modes, respectively.  Failure
598	to load the appropriate module before marking a wireless interface
599	up will result in a message to the console and the device not
600	operating properly.
601
60220070610:
603	The pam_nologin(8) module ceases to provide an authentication
604	function and starts providing an account management function.
605	Consequent changes to /etc/pam.d should be brought in using
606	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
607	need manual editing as follows.  Locate this line (or similar):
608
609		auth	required	pam_nologin.so	no_warn
610
611	and change it according to this example:
612
613		account	required	pam_nologin.so	no_warn
614
615	That is, the first word needs to be changed from "auth" to
616	"account".  The new line can be moved to the account section
617	within the file for clarity.  Not updating pam.conf(5) files
618	will result in nologin(5) ignored by the respective services.
619
62020070529:
621	The ether_ioctl() function has been synchronized with ioctl(2)
622	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
623	has changed on 64-bit architectures.  All kernel modules using
624	ether_ioctl() need to be rebuilt on such architectures.
625
62620070516:
627	Improved INCLUDE_CONFIG_FILE support has been introduced to the
628	config(8) utility. In order to take advantage of this new
629	functionality, you are expected to recompile and install
630	src/usr.sbin/config. If you don't rebuild config(8), and your
631	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
632	build will be broken because of a missing "kernconfstring"
633	symbol.
634
63520070513:
636	Symbol versioning is enabled by default.  To disable it, use
637	option WITHOUT_SYMVER.  It is not advisable to attempt to
638	disable symbol versioning once it is enabled; your installworld
639	will break because a symbol version-less libc will get installed
640	before the install tools.  As a result, the old install tools,
641	which previously had symbol dependencies to FBSD_1.0, will fail
642	because the freshly installed libc will not have them.
643
644	The default threading library (providing "libpthread") has been
645	changed to libthr.  If you wish to have libkse as your default,
646	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
647
64820070423:
649	The ABI breakage in sendmail(8)'s libmilter has been repaired
650	so it is no longer necessary to recompile mail filters (aka,
651	milters).  If you recompiled mail filters after the 20070408
652	note, it is not necessary to recompile them again.
653
65420070417:
655	The new trunk(4) driver has been renamed to lagg(4) as it better
656	reflects its purpose. ifconfig will need to be recompiled.
657
65820070408:
659	sendmail(8) has been updated to version 8.14.1.  Mail filters
660	(aka, milters) compiled against the libmilter included in the
661	base operating system should be recompiled.
662
66320070302:
664	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
665	In order to use them one must agree to the respective LICENSE in
666	share/doc/legal and define legal.intel_<name>.license_ack=1 via
667	loader.conf(5) or kenv(1).  Make sure to deinstall the now
668	deprecated modules from the respective firmware ports.
669
67020070228:
671	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
672	were removed from FreeBSD's libc. These originally came from INRIA
673	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
674	deprecated in previous releases.
675	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
676	replace it as a more portable (and re-entrant) API.
677
67820070224:
679	To support interrupt filtering a modification to the newbus API
680	has occurred, ABI was broken and __FreeBSD_version was bumped
681	to 700031. Please make sure that your kernel and modules are in
682	sync. For more info:
683	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
684
68520070224:
686	The IPv6 multicast forwarding code may now be loaded into GENERIC
687	kernels by loading the ip_mroute.ko module. This is built into the
688	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
689	set; see src.conf(5) for more information.
690
69120070214:
692	The output of netstat -r has changed. Without -n, we now only
693	print a "network name" without the prefix length if the network
694	address and mask exactly match a Class A/B/C network, and an entry
695	exists in the nsswitch "networks" map.
696	With -n, we print the full unabbreviated CIDR network prefix in
697	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
698	This change is in preparation for changes such as equal-cost
699	multipath, and to more generally assist operational deployment
700	of FreeBSD as a modern IPv4 router.
701
70220070210:
703	PIM has been turned on by default in the IPv4 multicast
704	routing code. The kernel option 'PIM' has now been removed.
705	PIM is now built by default if option 'MROUTING' is specified.
706	It may now be loaded into GENERIC kernels by loading the
707	ip_mroute.ko module.
708
70920070207:
710	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
711	has been removed. Its functionality may be achieved by explicitly
712	configuring gif(4) interfaces and using the 'phyint' keyword in
713	mrouted.conf.
714	XORP does not support source-routed IPv4 multicast tunnels nor the
715	integrated IPIP tunneling, therefore it is not affected by this
716	change. The __FreeBSD_version macro has been bumped to 700030.
717
71820061221:
719	Support for PCI Message Signalled Interrupts has been
720	re-enabled in the bge driver, only for those chips which are
721	believed to support it properly.  If there are any problems,
722	MSI can be disabled completely by setting the
723	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
724	in the loader.
725
72620061214:
727	Support for PCI Message Signalled Interrupts has been
728	disabled again in the bge driver.  Many revisions of the
729	hardware fail to support it properly.  Support can be
730	re-enabled by removing the #define of BGE_DISABLE_MSI in
731	"src/sys/dev/bge/if_bge.c".
732
73320061214:
734	Support for PCI Message Signalled Interrupts has been added
735	to the bge driver.  If there are any problems, MSI can be
736	disabled completely by setting the 'hw.pci.enable_msi' and
737	'hw.pci.enable_msix' tunables to 0 in the loader.
738
73920061205:
740	The removal of several facets of the experimental Threading
741	system from the kernel means that the proc and thread structures
742	have changed quite a bit. I suggest all kernel modules that might
743	reference these structures be recompiled.. Especially the
744	linux module.
745
74620061126:
747	Sound infrastructure has been updated with various fixes and
748	improvements. Most of the changes are pretty much transparent,
749	with exceptions of followings:
750	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
751	   moved to their own dev sysctl nodes, for example:
752		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
753	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
754	   own chardev in the form of "dsp%d.<function>%d", where <function>
755	   is p = playback, r = record and v = virtual, respectively. Users
756	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
757	   This does not affect those who are using "/dev/dsp".
758
75920061122:
760	geom(4)'s gmirror(8) class metadata structure has been
761	rev'd from v3 to v4. If you update across this point and
762	your metadata is converted for you, you will not be easily
763	able to downgrade since the /boot/kernel.old/geom_mirror.ko
764	kernel module will be unable to read the v4 metadata.  You
765	can resolve this by doing from the loader(8) prompt:
766
767		set vfs.root.mountfrom="ufs:/dev/XXX"
768
769	where XXX is the root slice of one of the disks that composed
770	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
771	the array the same way you built it originally.
772
77320061122:
774	The following binaries have been disconnected from the build:
775	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
776	and mount_std.  The functionality of these programs has been
777	moved into the mount program.  For example, to mount a devfs
778	filesystem, instead of using mount_devfs, use: "mount -t devfs".
779	This does not affect entries in /etc/fstab, since entries in
780	/etc/fstab are always processed with "mount -t fstype".
781
78220061113:
783	Support for PCI Message Signalled Interrupts on i386 and amd64
784	has been added to the kernel and various drivers will soon be
785	updated to use MSI when it is available.  If there are any problems,
786	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
787	and 'hw.pci.enable_msix' tunables to 0 in the loader.
788
78920061110:
790	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
791	The lockmgr object layout has been changed as a result of having
792	a lock_object embedded in it. As a consequence all file system
793	kernel modules must be re-compiled. The mutex profiling man page
794	has not yet been updated to reflect this change.
795
79620061026:
797	KSE in the kernel has now been made optional and turned on by
798	default. Use 'nooption KSE' in your kernel config to turn it
799	off. All kernel modules *must* be recompiled after this change.
800	There-after, modules from a KSE kernel should be compatible with
801	modules from a NOKSE kernel due to the temporary padding fields
802	added to 'struct proc'.
803
80420060929:
805	mrouted and its utilities have been removed from the base system.
806
80720060927:
808	Some ioctl(2) command codes have changed.  Full backward ABI
809	compatibility is provided if the "options COMPAT_FREEBSD6" is
810	present in the kernel configuration file.  Make sure to add
811	this option to your kernel config file, or recompile X.Org
812	and the rest of ports; otherwise they may refuse to work.
813
81420060924:
815	tcpslice has been removed from the base system.
816
81720060913:
818	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
819	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
820	systat needs to be rebuilt.
821
82220060903:
823	libpcap updated to v0.9.4 and tcpdump to v3.9.4
824
82520060816:
826	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
827	for IPFIREWALL_FORWARD is now as it was before when it was first
828	committed and for years after. The behaviour is now ON.
829
83020060725:
831	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
832	Now it can decrypt files created from different architectures.
833	Unfortunately, it is no longer able to decrypt a cipher text
834	generated with an older version on 64 bit architectures.
835	If you have such a file, you need old utility to decrypt it.
836
83720060709:
838	The interface version of the i4b kernel part has changed. So
839	after updating the kernel sources and compiling a new kernel,
840	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
841	be rebuilt, and vice versa.
842
84320060627:
844	The XBOX kernel now defaults to the nfe(4) driver instead of
845	the nve(4) driver. Please update your configuration
846	accordingly.
847
84820060514:
849	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
850	PCnet family of NICs has been removed. The new le(4) driver serves
851	as an equivalent but cross-platform replacement with the pcn(4)
852	driver still providing performance-optimized support for the subset
853	of AMD Am79C971 PCnet-FAST and greater chips as before.
854
85520060511:
856	The machdep.* sysctls and the adjkerntz utility have been
857	modified a bit.  The new adjkerntz utility uses the new
858	sysctl names and sysctlbyname() calls, so it may be impossible
859	to run an old /sbin/adjkerntz utility in single-user mode
860	with a new kernel.  Replace the `adjkerntz -i' step before
861	`make installworld' with:
862
863	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
864
865	and proceed as usual with the rest of the installworld-stage
866	steps.  Otherwise, you risk installing binaries with their
867	timestamp set several hours in the future, especially if
868	you are running with local time set to GMT+X hours.
869
87020060412:
871	The ip6fw utility has been removed.  The behavior provided by
872	ip6fw has been in ipfw2 for a good while and the rc.d scripts
873	have been updated to deal with it.  There are some rules that
874	might not migrate cleanly.  Use rc.firewall6 as a template to
875	rewrite rules.
876
87720060428:
878	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
879	attachments have been removed. Make sure to configure scc(4)
880	on sparc64. Note also that by default puc(4) will use uart(4)
881	and not sio(4) for serial ports because interrupt handling has
882	been optimized for multi-port serial cards and only uart(4)
883	implements the interface to support it.
884
88520060330:
886	The scc(4) driver replaces puc(4) for Serial Communications
887	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
888	Z8530. On sparc64, it is advised to add scc(4) to the kernel
889	configuration to make sure that the serial ports remain
890	functional.
891
89220060317:
893	Most world/kernel related NO_* build options changed names.
894	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
895	after FreeBSD ports) and should be set in /etc/src.conf
896	(the src.conf(5) manpage is provided).  Full backwards
897	compatibility is maintained for the time being though it's
898	highly recommended to start moving old options out of the
899	system-wide /etc/make.conf file into the new /etc/src.conf
900	while also properly renaming them.  More conversions will
901	likely follow.  Posting to current@:
902
903	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
904
90520060305:
906	The NETSMBCRYPTO kernel option has been retired because its
907	functionality is always included in NETSMB and smbfs.ko now.
908
90920060303:
910	The TDFX_LINUX kernel option was retired and replaced by the
911	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
912	kernel module.  Loading it alone should suffice to get 3dfx support
913	for Linux apps because it will pull in 3dfx.ko and linux.ko through
914	its dependencies.
915
91620060204:
917	The 'audit' group was added to support the new auditing functionality
918	in the base system.  Be sure to follow the directions for updating,
919	including the requirement to run mergemaster -p.
920
92120060201:
922	The kernel ABI to file system modules was changed on i386.
923	Please make sure that your kernel and modules are in sync.
924
92520060118:
926	This actually occured some time ago, but installing the kernel
927	now also installs a bunch of symbol files for the kernel modules.
928	This increases the size of /boot/kernel to about 67Mbytes. You
929	will need twice this if you will eventually back this up to kernel.old
930	on your next install.
931	If you have a shortage of room in your root partition, you should add
932	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
933	to your /etc/make.conf.
934
93520060113:
936	libc's malloc implementation has been replaced.  This change has the
937	potential to uncover application bugs that previously went unnoticed.
938	See the malloc(3) manual page for more details.
939
94020060112:
941	The generic netgraph(4) cookie has been changed. If you upgrade
942	kernel passing this point, you also need to upgrade userland
943	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
944
94520060106:
946	si(4)'s device files now contain the unit number.
947	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
948
94920060106:
950	The kernel ABI was mostly destroyed due to a change in the size
951	of struct lock_object which is nested in other structures such
952	as mutexes which are nested in all sorts of other structures.
953	Make sure your kernel and modules are in sync.
954
95520051231:
956	The page coloring algorithm in the VM subsystem was converted
957	from tuning with kernel options to autotuning. Please remove
958	any PQ_* option except PQ_NOOPT from your kernel config.
959
96020051211:
961	The net80211-related tools in the tools/tools/ath directory
962	have been moved to tools/tools/net80211 and renamed with a
963	"wlan" prefix.  Scripts that use them should be adjusted
964	accordingly.
965
96620051202:
967	Scripts in the local_startup directories (as defined in
968	/etc/defaults/rc.conf) that have the new rc.d semantics will
969	now be run as part of the base system rcorder. If there are
970	errors or problems with one of these local scripts, it could
971	cause boot problems. If you encounter such problems, boot in
972	single user mode, remove that script from the */rc.d directory.
973	Please report the problem to the port's maintainer, and the
974	freebsd-ports@freebsd.org mailing list.
975
97620051129:
977	The nodev mount option was deprecated in RELENG_6 (where it
978	was a no-op), and is now unsupported.  If you have nodev or dev listed
979	in /etc/fstab, remove it, otherwise it will result in a mount error.
980
98120051129:
982	ABI between ipfw(4) and ipfw(8) has been changed. You need
983	to rebuild ipfw(8) when rebuilding kernel.
984
98520051108:
986	rp(4)'s device files now contain the unit number.
987	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
988
98920051029:
990	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
991	Its /etc/rc.conf.d configuration file has been `ppp' from
992	the beginning, and hence there is no need to touch it.
993
99420051014:
995	Now most modules get their build-time options from the kernel
996	configuration file.  A few modules still have fixed options
997	due to their non-conformant implementation, but they will be
998	corrected eventually.  You may need to review the options of
999	the modules in use, explicitly specify the non-default options
1000	in the kernel configuration file, and rebuild the kernel and
1001	modules afterwards.
1002
100320051001:
1004	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1005	to turn polling(4) on your interfaces.
1006
100720050927:
1008	The old bridge(4) implementation was retired.  The new
1009	if_bridge(4) serves as a full functional replacement.
1010
101120050722:
1012	The ai_addrlen of a struct addrinfo was changed to a socklen_t
1013	to conform to POSIX-2001.  This change broke an ABI
1014	compatibility on 64 bit architecture.  You have to recompile
1015	userland programs that use getaddrinfo(3) on 64 bit
1016	architecture.
1017
101820050711:
1019	RELENG_6 branched here.
1020
102120050629:
1022	The pccard_ifconfig rc.conf variable has been removed and a new
1023	variable, ifconfig_DEFAULT has been introduced.  Unlike
1024	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1025	do not have ifconfig_ifn entries rather than just those in
1026	removable_interfaces.
1027
102820050616:
1029	Some previous versions of PAM have permitted the use of
1030	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1031	to third party PAM modules in /usr/local/lib.  A change has been
1032	made to require the use of absolute paths in order to avoid
1033	ambiguity and dependence on library path configuration, which may
1034	affect existing configurations.
1035
103620050610:
1037	Major changes to network interface API.  All drivers must be
1038	recompiled.  Drivers not in the base system will need to be
1039	updated to the new APIs.
1040
104120050609:
1042	Changes were made to kinfo_proc in sys/user.h.  Please recompile
1043	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1044	will not behave correctly.
1045
1046	The API and ABI for hwpmc(4) have changed with the addition
1047	of sampling support.  Please recompile lib/libpmc(3) and
1048	usr.sbin/{pmcstat,pmccontrol}.
1049
105020050606:
1051	The OpenBSD dhclient was imported in place of the ISC dhclient
1052	and the network interface configuration scripts were updated
1053	accordingly.  If you use DHCP to configure your interfaces, you
1054	must now run devd.  Also, DNS updating was lost so you will need
1055	to find a workaround if you use this feature.
1056
1057	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1058	sure to run mergemaster -p (like you are supposed to do every time
1059	anyway).
1060
106120050605:
1062	if_bridge was added to the tree. This has changed struct ifnet.
1063	Please recompile userland and all network related modules.
1064
106520050603:
1066	The n_net of a struct netent was changed to an uint32_t, and
1067	1st argument of getnetbyaddr() was changed to an uint32_t, to
1068	conform to POSIX-2001.  These changes broke an ABI
1069	compatibility on 64 bit architecture.  With these changes,
1070	shlib major of libpcap was bumped.  You have to recompile
1071	userland programs that use getnetbyaddr(3), getnetbyname(3),
1072	getnetent(3) and/or libpcap on 64 bit architecture.
1073
107420050528:
1075	Kernel parsing of extra options on '#!' first lines of shell
1076	scripts has changed.  Lines with multiple options likely will
1077	fail after this date.  For full details, please see
1078		http://people.freebsd.org/~gad/Updating-20050528.txt
1079
108020050503:
1081	The packet filter (pf) code has been updated to OpenBSD 3.7
1082	Please note the changed anchor syntax and the fact that
1083	authpf(8) now needs a mounted fdescfs(5) to function.
1084
108520050415:
1086	The NO_MIXED_MODE kernel option has been removed from the i386
1087	amd64 platforms as its use has been superceded by the new local
1088	APIC timer code.  Any kernel config files containing this option
1089	should be updated.
1090
109120050227:
1092	The on-disk format of LC_CTYPE files was changed to be machine
1093	independent.  Please make sure NOT to use NO_CLEAN buildworld
1094	when crossing this point. Crossing this point also requires
1095	recompile or reinstall of all locale depended packages.
1096
109720050225:
1098	The ifi_epoch member of struct if_data has been changed to
1099	contain the uptime at which the interface was created or the
1100	statistics zeroed rather then the wall clock time because
1101	wallclock time may go backwards.  This should have no impact
1102	unless an snmp implementation is using this value (I know of
1103	none at this point.)
1104
110520050224:
1106	The acpi_perf and acpi_throttle drivers are now part of the
1107	acpi(4) main module.  They are no longer built separately.
1108
110920050223:
1110	The layout of struct image_params has changed. You have to
1111	recompile all compatibility modules (linux, svr4, etc) for use
1112	with the new kernel.
1113
111420050223:
1115	The p4tcc driver has been merged into cpufreq(4).  This makes
1116	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1117	compile in "device cpufreq" to restore this functionality.
1118
111920050220:
1120	The responsibility of recomputing the file system summary of
1121	a SoftUpdates-enabled dirty volume has been transferred to the
1122	background fsck.  A rebuild of fsck(8) utility is recommended
1123	if you have updated the kernel.
1124
1125	To get the old behavior (recompute file system summary at mount
1126	time), you can set vfs.ffs.compute_summary_at_mount=1 before
1127	mounting the new volume.
1128
112920050206:
1130	The cpufreq import is complete.  As part of this, the sysctls for
1131	acpi(4) throttling have been removed.  The power_profile script
1132	has been updated, so you can use performance/economy_cpu_freq in
1133	rc.conf(5) to set AC on/offline cpu frequencies.
1134
113520050206:
1136	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1137	requires recompiling libnetgraph and userland netgraph utilities.
1138
113920050114:
1140	Support for abbreviated forms of a number of ipfw options is
1141	now deprecated.  Warnings are printed to stderr indicating the
1142	correct full form when a match occurs.  Some abbreviations may
1143	be supported at a later date based on user feedback.  To be
1144	considered for support, abbreviations must be in use prior to
1145	this commit and unlikely to be confused with current key words.
1146
114720041221:
1148	By a popular demand, a lot of NOFOO options were renamed
1149	to NO_FOO (see bsd.compat.mk for a full list).  The old
1150	spellings are still supported, but will cause annoying
1151	warnings on stderr.  Make sure you upgrade properly (see
1152	the COMMON ITEMS: section later in this file).
1153
115420041219:
1155	Auto-loading of ancillary wlan modules such as wlan_wep has
1156	been temporarily disabled; you need to statically configure
1157	the modules you need into your kernel or explicitly load them
1158	prior to use.  Specifically, if you intend to use WEP encryption
1159	with an 802.11 device load/configure wlan_wep; if you want to
1160	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1161	and wlan_xauth as required.
1162
116320041213:
1164	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1165	(``enable lqr''), older versions would revert to LCP ECHO mode on
1166	negotiation failure.  Now, ``enable echo'' is required for this
1167	behaviour.  The ppp version number has been bumped to 3.4.2 to
1168	reflect the change.
1169
117020041201:
1171	The wlan support has been updated to split the crypto support
1172	into separate modules.  For static WEP you must configure the
1173	wlan_wep module in your system or build and install the module
1174	in place where it can be loaded (the kernel will auto-load
1175	the module when a wep key is configured).
1176
117720041201:
1178	The ath driver has been updated to split the tx rate control
1179	algorithm into a separate module.  You need to include either
1180	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1181
118220041116:
1183	Support for systems with an 80386 CPU has been removed.  Please
1184	use FreeBSD 5.x or earlier on systems with an 80386.
1185
118620041110:
1187	We have had a hack which would mount the root filesystem
1188	R/W if the device were named 'md*'.  As part of the vnode
1189	work I'm doing I have had to remove this hack.  People
1190	building systems which use preloaded MD root filesystems
1191	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1192	their /etc/rc scripts.
1193
119420041104:
1195	FreeBSD 5.3 shipped here.
1196
119720041102:
1198	The size of struct tcpcb has changed again due to the removal
1199	of RFC1644 T/TCP.  You have to recompile userland programs that
1200	read kmem for tcp sockets directly (netstat, sockstat, etc.)
1201
120220041022:
1203	The size of struct tcpcb has changed.  You have to recompile
1204	userland programs that read kmem for tcp sockets directly
1205	(netstat, sockstat, etc.)
1206
120720041016:
1208	RELENG_5 branched here.  For older entries, please see updating
1209	in the RELENG_5 branch.
1210
1211COMMON ITEMS:
1212
1213	General Notes
1214	-------------
1215	Avoid using make -j when upgrading.  From time to time in the
1216	past there have been problems using -j with buildworld and/or
1217	installworld.  This is especially true when upgrading between
1218	"distant" versions (eg one that cross a major release boundary
1219	or several minor releases, or when several months have passed
1220	on the -current branch).
1221
1222	Sometimes, obscure build problems are the result of environment
1223	poisoning.  This can happen because the make utility reads its
1224	environment when searching for values for global variables.
1225	To run your build attempts in an "environmental clean room",
1226	prefix all make commands with 'env -i '.  See the env(1) manual
1227	page for more details.
1228
1229	When upgrading from one major version to another it is generally
1230	best to upgrade to the latest code in the currently installed branch
1231	first, then do an upgrade to the new branch. This is the best-tested
1232	upgrade path, and has the highest probability of being successful.
1233	Please try this approach before reporting problems with a major
1234	version upgrade.
1235
1236	To build a kernel
1237	-----------------
1238	If you are updating from a prior version of FreeBSD (even one just
1239	a few days old), you should follow this procedure.  It is the most
1240	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1241
1242	make kernel-toolchain
1243	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1244	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1245
1246	To test a kernel once
1247	---------------------
1248	If you just want to boot a kernel once (because you are not sure
1249	if it works, or if you want to boot a known bad kernel to provide
1250	debugging information) run
1251	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1252	nextboot -k testkernel
1253
1254	To just build a kernel when you know that it won't mess you up
1255	--------------------------------------------------------------
1256	This assumes you are already running a 5.X system.  Replace
1257	${arch} with the architecture of your machine (e.g. "i386",
1258	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1259
1260	cd src/sys/${arch}/conf
1261	config KERNEL_NAME_HERE
1262	cd ../compile/KERNEL_NAME_HERE
1263	make depend
1264	make
1265	make install
1266
1267	If this fails, go to the "To build a kernel" section.
1268
1269	To rebuild everything and install it on the current system.
1270	-----------------------------------------------------------
1271	# Note: sometimes if you are running current you gotta do more than
1272	# is listed here if you are upgrading from a really old current.
1273
1274	<make sure you have good level 0 dumps>
1275	make buildworld
1276	make kernel KERNCONF=YOUR_KERNEL_HERE
1277							[1]
1278	<reboot in single user>				[3]
1279	mergemaster -p					[5]
1280	make installworld
1281	make delete-old
1282	mergemaster					[4]
1283	<reboot>
1284
1285
1286	To cross-install current onto a separate partition
1287	--------------------------------------------------
1288	# In this approach we use a separate partition to hold
1289	# current's root, 'usr', and 'var' directories.   A partition
1290	# holding "/", "/usr" and "/var" should be about 2GB in
1291	# size.
1292
1293	<make sure you have good level 0 dumps>
1294	<boot into -stable>
1295	make buildworld
1296	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1297	<maybe newfs current's root partition>
1298	<mount current's root partition on directory ${CURRENT_ROOT}>
1299	make installworld DESTDIR=${CURRENT_ROOT}
1300	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1301	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1302	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1303	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1304	<reboot into current>
1305	<do a "native" rebuild/install as described in the previous section>
1306	<maybe install compatibility libraries from ports/misc/compat*>
1307	<reboot>
1308
1309
1310	To upgrade in-place from 5.x-stable to current
1311	----------------------------------------------
1312	<make sure you have good level 0 dumps>
1313	make buildworld					[9]
1314	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1315							[1]
1316	<reboot in single user>				[3]
1317	mergemaster -p					[5]
1318	make installworld
1319	make delete-old
1320	mergemaster -i					[4]
1321	<reboot>
1322
1323	Make sure that you've read the UPDATING file to understand the
1324	tweaks to various things you need.  At this point in the life
1325	cycle of current, things change often and you are on your own
1326	to cope.  The defaults can also change, so please read ALL of
1327	the UPDATING entries.
1328
1329	Also, if you are tracking -current, you must be subscribed to
1330	freebsd-current@freebsd.org.  Make sure that before you update
1331	your sources that you have read and understood all the recent
1332	messages there.  If in doubt, please track -stable which has
1333	much fewer pitfalls.
1334
1335	[1] If you have third party modules, such as vmware, you
1336	should disable them at this point so they don't crash your
1337	system on reboot.
1338
1339	[3] From the bootblocks, boot -s, and then do
1340		fsck -p
1341		mount -u /
1342		mount -a
1343		cd src
1344		adjkerntz -i		# if CMOS is wall time
1345	Also, when doing a major release upgrade, it is required that
1346	you boot into single user mode to do the installworld.
1347
1348	[4] Note: This step is non-optional.  Failure to do this step
1349	can result in a significant reduction in the functionality of the
1350	system.  Attempting to do it by hand is not recommended and those
1351	that pursue this avenue should read this file carefully, as well
1352	as the archives of freebsd-current and freebsd-hackers mailing lists
1353	for potential gotchas.
1354
1355	[5] Usually this step is a noop.  However, from time to time
1356	you may need to do this if you get unknown user in the following
1357	step.  It never hurts to do it all the time.  You may need to
1358	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1359	install) after the buildworld before this step if you last updated
1360	from current before 20020224 or from -stable before 20020408.
1361
1362	[8] In order to have a kernel that can run the 4.x binaries
1363	needed to do an installworld, you must include the COMPAT_FREEBSD4
1364	option in your kernel.  Failure to do so may leave you with a system
1365	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1366	is required to run the 5.x binaries on more recent kernels.
1367
1368	Make sure that you merge any new devices from GENERIC since the
1369	last time you updated your kernel config file.
1370
1371	[9] When checking out sources, you must include the -P flag to have
1372	cvs prune empty directories.
1373
1374	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1375	"?=" instead of the "=" assignment operator, so that buildworld can
1376	override the CPUTYPE if it needs to.
1377
1378	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1379	not on the command line, or in /etc/make.conf.  buildworld will
1380	warn if it is improperly defined.
1381FORMAT:
1382
1383This file contains a list, in reverse chronological order, of major
1384breakages in tracking -current.  Not all things will be listed here,
1385and it only starts on October 16, 2004.  Updating files can found in
1386previous releases if your system is older than this.
1387
1388Copyright information:
1389
1390Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1391
1392Redistribution, publication, translation and use, with or without
1393modification, in full or in part, in any form or format of this
1394document are permitted without further permission from the author.
1395
1396THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1397IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1398WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1399DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1400INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1401(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1402SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1403HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1404STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1405IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1406POSSIBILITY OF SUCH DAMAGE.
1407
1408If you find this document useful, and you want to, you may buy the
1409author a beer.
1410
1411Contact Warner Losh if you have any questions about your use of
1412this document.
1413
1414$FreeBSD: head/UPDATING 191389 2009-04-22 15:54:27Z emax $
1415