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