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