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