UPDATING revision 195028
167754SmsmithUpdating Information for FreeBSD current users 267754Smsmith 367754SmsmithThis file is maintained and copyrighted by M. Warner Losh 467754Smsmith<imp@village.org>. See end of file for further details. For commonly 567754Smsmithdone items, please see the COMMON ITEMS: section later in the file. 667754Smsmith 7217365SjkimItems affecting the ports and packages system can be found in 8245582Sjkim/usr/ports/UPDATING. Please read that file before running 970243Smsmithportupgrade. 1067754Smsmith 11217365SjkimNOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW: 12217365Sjkim FreeBSD 8.x has many debugging features turned on, in 13217365Sjkim both the kernel and userland. These features attempt to detect 14217365Sjkim incorrect use of system primitives, and encourage loud failure 15217365Sjkim through extra sanity checking and fail stop semantics. They 16217365Sjkim also substantially impact system performance. If you want to 17217365Sjkim do performance measurement, benchmarking, and optimization, 18217365Sjkim you'll want to turn them off. This includes various WITNESS- 19217365Sjkim related kernel options, INVARIANTS, malloc debugging flags 20217365Sjkim in userland, and various verbose features in the kernel. Many 21217365Sjkim developers choose to disable these features on build machines 22217365Sjkim to maximize performance. (To disable malloc debugging, run 23217365Sjkim ln -s aj /etc/malloc.conf.) 24217365Sjkim 2567754Smsmith20090622: 26217365Sjkim Layout of struct vnet has changed as routing related variables 27217365Sjkim were moved to their own Vimage module. Modules need to be 28217365Sjkim recompiled. Bump __FreeBSD_version to 800099. 2967754Smsmith 30217365Sjkim20090619: 31217365Sjkim NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 32217365Sjkim and 1024 respectively. As long as no more than 16 groups per 33217365Sjkim process are used, no changes should be visible. When more 34217365Sjkim than 16 groups are used, old binaries may fail if they call 35217365Sjkim getgroups() or getgrouplist() with statically sized storage. 36217365Sjkim Recompiling will work around this, but applications should be 37217365Sjkim modified to use dynamically allocated storage for group arrays 38217365Sjkim as POSIX.1-2008 does not cap an implementation's number of 39217365Sjkim supported groups at NGROUPS_MAX+1 as previous versions did. 40217365Sjkim 41217365Sjkim NFS and portalfs mounts may also be affected as the list of 42217365Sjkim groups is truncated to 16. Users of NFS who use more than 16 4367754Smsmith groups, should take care that negative group permissions are not 4467754Smsmith used on the exported file systems as they will not be reliable 4567754Smsmith unless a GSSAPI based authentication method is used. 4667754Smsmith 4767754Smsmith20090616: 48246849Sjkim The compiling option ADAPTIVE_LOCKMGRS has been introduced. 49246849Sjkim This option compiles in the support for adaptive spinning for lockmgrs 5067754Smsmith which want to enable it. The lockinit() function now accepts the 51246849Sjkim flag LK_ADAPTIVE in order to make the lock object subject to 5267754Smsmith adaptive spinning when both held in write and read mode. 53246849Sjkim 54246849Sjkim20090613: 55246849Sjkim The layout of the structure returned by IEEE80211_IOC_STA_INFO 56246849Sjkim has changed. User applications that use this ioctl need to be 57246849Sjkim rebuilt. 58246849Sjkim 59238381Sjkim20090611: 6067754Smsmith The layout of struct thread has changed. Kernel and modules 6167754Smsmith need to be rebuilt. 62246849Sjkim 63246849Sjkim20090608: 64246849Sjkim The layout of structs ifnet, domain, protosw and vnet_net has 65246849Sjkim changed. Kernel modules need to be rebuilt. 66246849Sjkim Bump __FreeBSD_version to 800097. 67246849Sjkim 68246849Sjkim20090602: 69246849Sjkim window(1) has been removed from the base system. It can now be 7067754Smsmith installed from ports. The port is called misc/window. 71246849Sjkim 72246849Sjkim20090601: 73246849Sjkim The way we are storing and accessing `routing table' entries 74246849Sjkim has changed. Programs reading the FIB, like netstat, need to 75246849Sjkim be re-compiled. 76246849Sjkim 77246849Sjkim20090601: 78246849Sjkim A new netisr implementation has been added for FreeBSD 8. Network 79246849Sjkim file system modules, such as igmp, ipdivert, and others, should be 80246849Sjkim rebuilt. 81246849Sjkim Bump __FreeBSD_version to 800096. 82246849Sjkim 83246849Sjkim20090530: 84246849Sjkim Remove the tunable/sysctl debug.mpsafevfs as its initial purpose 85246849Sjkim is no more valid. 86246849Sjkim 87246849Sjkim20090530: 88246849Sjkim Add VOP_ACCESSX(9). File system modules need to be rebuilt. 89246849Sjkim Bump __FreeBSD_version to 800094. 90246849Sjkim 91246849Sjkim20090529: 92246849Sjkim Add mnt_xflag field to 'struct mount'. File system modules 93246849Sjkim need to be rebuilt. 9467754Smsmith Bump __FreeBSD_version to 800093. 9567754Smsmith 9667754Smsmith20090528: 9767754Smsmith The compiling option ADAPTIVE_SX has been retired while it has been 9867754Smsmith introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 9967754Smsmith The KPI for sx_init_flags() changes as accepting flags: 10067754Smsmith SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag 10167754Smsmith has been introduced in order to handle the reversed logic. 102246849Sjkim Bump __FreeBSD_version to 800092. 103246849Sjkim 104246849Sjkim20090527: 105246849Sjkim Add support for hierarchical jails. Remove global securelevel. 106246849Sjkim Bump __FreeBSD_version to 800091. 107246849Sjkim 108246849Sjkim20090523: 109246849Sjkim The layout of struct vnet_net has changed, therefore modules 110246849Sjkim need to be rebuilt. 111246849Sjkim Bump __FreeBSD_version to 800090. 112246849Sjkim 113246849Sjkim20090523: 114246849Sjkim The newly imported zic(8) produces a new format in the 115246849Sjkim output. Please run tzsetup(8) to install the newly created 116246849Sjkim data to /etc/localtime. 117246849Sjkim 118246849Sjkim20090520: 119246849Sjkim The sysctl tree for the usb stack has renamed from hw.usb2.* to 120246849Sjkim hw.usb.* and is now consistent again with previous releases. 121246849Sjkim 122246849Sjkim20090520: 123246849Sjkim 802.11 monitor mode support was revised and driver api's 124246849Sjkim were changed. Drivers dependent on net80211 now support 125246849Sjkim DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No 126246849Sjkim user-visible data structures were changed but applications 127246849Sjkim that use DLT_IEEE802_11 may require changes. 128246849Sjkim Bump __FreeBSD_version to 800088. 129246849Sjkim 130254745Sjkim20090430: 13167754Smsmith The layout of the following structs has changed: sysctl_oid, 132254745Sjkim socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 13367754Smsmith vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 134151937Sjkim panics may be experienced. World rebuild is required for 13567754Smsmith correctly checking networking state from userland. 13667754Smsmith Bump __FreeBSD_version to 800085. 13767754Smsmith 138246849Sjkim20090429: 139246849Sjkim MLDv2 and Source-Specific Multicast (SSM) have been merged 140246849Sjkim to the IPv6 stack. VIMAGE hooks are in but not yet used. 141246849Sjkim The implementation of SSM within FreeBSD's IPv6 stack closely 142246849Sjkim follows the IPv4 implementation. 143246849Sjkim 144246849Sjkim For kernel developers: 145246849Sjkim 146246849Sjkim * The most important changes are that the ip6_output() and 14767754Smsmith ip6_input() paths no longer take the IN6_MULTI_LOCK, 14899146Siwasaki and this lock has been downgraded to a non-recursive mutex. 14967754Smsmith 15067754Smsmith * As with the changes to the IPv4 stack to support SSM, filtering 15167754Smsmith of inbound multicast traffic must now be performed by transport 15267754Smsmith protocols within the IPv6 stack. This does not apply to TCP and 15367754Smsmith SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 154246849Sjkim 155246849Sjkim * The KPIs used by IPv6 multicast are similar to those used by 156246849Sjkim the IPv4 stack, with the following differences: 157246849Sjkim * im6o_mc_filter() is analogous to imo_multicast_filter(). 158246849Sjkim * The legacy KAME entry points in6_joingroup and in6_leavegroup() 15967754Smsmith are shimmed to in6_mc_join() and in6_mc_leave() respectively. 160193267Sjkim * IN6_LOOKUP_MULTI() has been deprecated and removed. 16167754Smsmith * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 16267754Smsmith for MLDv1 have an additional 'timer' argument which is used to 16367754Smsmith jitter the initial membership report for the solicited-node 164241973Sjkim multicast membership on-link. 16567754Smsmith * This is not strictly needed for MLDv2, which already jitters 16667754Smsmith its report transmissions. However, the 'timer' argument is 167246849Sjkim preserved in case MLDv1 is active on the interface. 168246849Sjkim 169246849Sjkim * The KAME linked-list based IPv6 membership implementation has 170246849Sjkim been refactored to use a vector similar to that used by the IPv4 171246849Sjkim stack. 172246849Sjkim Code which maintains a list of its own multicast memberships 173246849Sjkim internally, e.g. carp, has been updated to reflect the new 174246849Sjkim semantics. 175246849Sjkim 176246849Sjkim * There is a known Lock Order Reversal (LOR) due to in6_setscope() 177246849Sjkim acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 178246849Sjkim Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 179246849Sjkim implementation constraint which needs to be addressed in HEAD. 180246849Sjkim 181246849Sjkim For application developers: 182246849Sjkim 183246849Sjkim * The changes are broadly similar to those made for the IPv4 184246849Sjkim stack. 185246849Sjkim 186246849Sjkim * The use of IPv4 and IPv6 multicast socket options on the same 187246849Sjkim socket, using mapped addresses, HAS NOT been tested or supported. 188246849Sjkim 189246849Sjkim * There are a number of issues with the implementation of various 190246849Sjkim IPv6 multicast APIs which need to be resolved in the API surface 191246849Sjkim before the implementation is fully compatible with KAME userland 192246849Sjkim use, and these are mostly to do with interface index treatment. 193246849Sjkim 194246849Sjkim * The literature available discusses the use of either the delta / ASM 195246849Sjkim API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 196246849Sjkim using setsourcefilter(3)/getsourcefilter(3). For more information 197246849Sjkim please refer to RFC 3768, 'Socket Interface Extensions for 198246849Sjkim Multicast Source Filters'. 199246849Sjkim 20067754Smsmith * Applications which use the published RFC 3678 APIs should be fine. 201193267Sjkim 20267754Smsmith For systems administrators: 203151937Sjkim 20467754Smsmith * The mtest(8) utility has been refactored to support IPv6, in 20567754Smsmith addition to IPv4. Interface addresses are no longer accepted 20667754Smsmith as arguments, their names must be used instead. The utility 207246849Sjkim will map the interface name to its first IPv4 address as 208246849Sjkim returned by getifaddrs(3). 209246849Sjkim 210246849Sjkim * The ifmcstat(8) utility has also been updated to print the MLDv2 211246849Sjkim endpoint state and source filter lists via sysctl(3). 212246849Sjkim 213246849Sjkim * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 214246849Sjkim loopback of IPv6 multicast datagrams by default; it defaults to 1 215246849Sjkim to preserve the existing behaviour. Disabling multicast loopback is 216246849Sjkim recommended for optimal system performance. 217246849Sjkim 218246849Sjkim * The IPv6 MROUTING code has been changed to examine this sysctl 219246849Sjkim instead of attempting to perform a group lookup before looping 22067754Smsmith back forwarded datagrams. 221167802Sjkim 22267754Smsmith Bump __FreeBSD_version to 800084. 22367754Smsmith 224193267Sjkim20090422: 225193267Sjkim Implement low-level Bluetooth HCI API. 226238381Sjkim Bump __FreeBSD_version to 800083. 22767754Smsmith 22867754Smsmith20090419: 22967754Smsmith The layout of struct malloc_type, used by modules to register new 23067754Smsmith memory allocation types, has changed. Most modules will need to 23167754Smsmith be rebuilt or panics may be experienced. 232246849Sjkim Bump __FreeBSD_version to 800081. 23367754Smsmith 234246849Sjkim20090415: 235246849Sjkim Anticipate overflowing inp_flags - add inp_flags2. 236246849Sjkim This changes most offsets in inpcb, so checking v4 connection 237246849Sjkim state will require a world rebuild. 238246849Sjkim Bump __FreeBSD_version to 800080. 239254745Sjkim 240246849Sjkim20090415: 241246849Sjkim Add an llentry to struct route and struct route_in6. Modules 242246849Sjkim embedding a struct route will need to be recompiled. 243246849Sjkim Bump __FreeBSD_version to 800079. 244246849Sjkim 245246849Sjkim20090414: 246246849Sjkim The size of rt_metrics_lite and by extension rtentry has changed. 247246849Sjkim Networking administration apps will need to be recompiled. 248246849Sjkim The route command now supports show as an alias for get, weighting 249246849Sjkim of routes, sticky and nostick flags to alter the behavior of stateful 250246849Sjkim load balancing. 251246849Sjkim Bump __FreeBSD_version to 800078. 252246849Sjkim 253246849Sjkim20090408: 254246849Sjkim Do not use Giant for kbdmux(4) locking. This is wrong and 255246849Sjkim apparently causing more problems than it solves. This will 256246849Sjkim re-open the issue where interrupt handlers may race with 257246849Sjkim kbdmux(4) in polling mode. Typical symptoms include (but 258246849Sjkim not limited to) duplicated and/or missing characters when 259246849Sjkim low level console functions (such as gets) are used while 260246849Sjkim interrupts are enabled (for example geli password prompt, 261246849Sjkim mountroot prompt etc.). Disabling kbdmux(4) may help. 262254745Sjkim 263254745Sjkim20090407: 26467754Smsmith The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 26567754Smsmith kernel modules referencing any of the above need to be recompiled. 266246849Sjkim Bump __FreeBSD_version to 800075. 26767754Smsmith 268246849Sjkim20090320: 269246849Sjkim GEOM_PART has become the default partition slicer for storage devices, 270246849Sjkim replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 271246849Sjkim introduces some changes: 272246849Sjkim 273246849Sjkim MSDOS/EBR: the devices created from MSDOS extended partition entries 274246849Sjkim (EBR) can be named differently than with GEOM_MBR and are now symlinks 275246849Sjkim to devices with offset-based names. fstabs may need to be modified. 276246849Sjkim 277246849Sjkim BSD: the "geometry does not match label" warning is harmless in most 27867754Smsmith cases but it points to problems in file system misalignment with 27967754Smsmith disk geometry. The "c" partition is now implicit, covers the whole 280246849Sjkim top-level drive and cannot be (mis)used by users. 28167754Smsmith 282246849Sjkim General: Kernel dumps are now not allowed to be written to devices 283246849Sjkim whose partition types indicate they are meant to be used for file 284246849Sjkim systems (or, in case of MSDOS partitions, as something else than 285246849Sjkim the "386BSD" type). 286246849Sjkim 287246849Sjkim Most of these changes date approximately from 200812. 28867754Smsmith 28967754Smsmith20090319: 290246849Sjkim The uscanner(4) driver has been removed from the kernel. This follows 29167754Smsmith Linux removing theirs in 2.6 and making libusb the default interface 292246849Sjkim (supported by sane). 293246849Sjkim 294246849Sjkim20090319: 295246849Sjkim The multicast forwarding code has been cleaned up. netstat(1) 296246849Sjkim only relies on KVM now for printing bandwidth upcall meters. 297246849Sjkim The IPv4 and IPv6 modules are split into ip_mroute_mod and 298246849Sjkim ip6_mroute_mod respectively. The config(5) options for statically 299246849Sjkim compiling this code remain the same, i.e. 'options MROUTING'. 300246849Sjkim 301246849Sjkim20090315: 302246849Sjkim Support for the IFF_NEEDSGIANT network interface flag has been 303246849Sjkim removed, which means that non-MPSAFE network device drivers are no 304246849Sjkim longer supported. In particular, if_ar, if_sr, and network device 305246849Sjkim drivers from the old (legacy) USB stack can no longer be built or 306246849Sjkim used. 307246849Sjkim 308246849Sjkim20090313: 309246849Sjkim POSIX.1 Native Language Support (NLS) has been enabled in libc and 310246849Sjkim a bunch of new language catalog files have also been added. 311246849Sjkim This means that some common libc messages are now localized and 312246849Sjkim they depend on the LC_MESSAGES environmental variable. 313246849Sjkim 314246849Sjkim20090313: 315246849Sjkim The k8temp(4) driver has been renamed to amdtemp(4) since 316246849Sjkim support for K10 and K11 CPU families was added. 317246849Sjkim 318246849Sjkim20090309: 319246849Sjkim IGMPv3 and Source-Specific Multicast (SSM) have been merged 320246849Sjkim to the IPv4 stack. VIMAGE hooks are in but not yet used. 321246849Sjkim 322246849Sjkim For kernel developers, the most important changes are that the 323246849Sjkim ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 324246849Sjkim and this lock has been downgraded to a non-recursive mutex. 325246849Sjkim 32667754Smsmith Transport protocols (UDP, Raw IP) are now responsible for filtering 32767754Smsmith inbound multicast traffic according to group membership and source 328246849Sjkim filters. The imo_multicast_filter() KPI exists for this purpose. 32967754Smsmith Transports which do not use multicast (SCTP, TCP) already reject 330246849Sjkim multicast by default. Forwarding and receive performance may improve 331246849Sjkim as a mutex acquisition is no longer needed in the ip_input() 332246849Sjkim low-level input path. in_addmulti() and in_delmulti() are shimmed 333246849Sjkim to new KPIs which exist to support SSM in-kernel. 334246849Sjkim 335246849Sjkim For application developers, it is recommended that loopback of 336246849Sjkim multicast datagrams be disabled for best performance, as this 337246849Sjkim will still cause the lock to be taken for each looped-back 338246849Sjkim datagram transmission. The net.inet.ip.mcast.loop sysctl may 339246849Sjkim be tuned to 0 to disable loopback by default; it defaults to 1 340246849Sjkim to preserve the existing behaviour. 341246849Sjkim 342246849Sjkim For systems administrators, to obtain best performance with 343246849Sjkim multicast reception and multiple groups, it is always recommended 34467754Smsmith that a card with a suitably precise hash filter is used. Hash 34567754Smsmith collisions will still result in the lock being taken within the 346238381Sjkim transport protocol input path to check group membership. 34767754Smsmith 34867754Smsmith If deploying FreeBSD in an environment with IGMP snooping switches, 349 it is recommended that the net.inet.igmp.sendlocal sysctl remain 350 enabled; this forces 224.0.0.0/24 group membership to be announced 351 via IGMP. 352 353 The size of 'struct igmpstat' has changed; netstat needs to be 354 recompiled to reflect this. 355 Bump __FreeBSD_version to 800070. 356 35720090309: 358 libusb20.so.1 is now installed as libusb.so.1 and the ports system 359 updated to use it. This requires a buildworld/installworld in order to 360 update the library and dependencies (usbconfig, etc). Its advisable to 361 rebuild all ports which uses libusb. More specific directions are given 362 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 363 libusb are no longer required and can be removed. 364 36520090302: 366 A workaround is committed to allow the creation of System V shared 367 memory segment of size > 2 GB on the 64-bit architectures. 368 Due to a limitation of the existing ABI, the shm_segsz member 369 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 370 wrong for large segments. Note that limits must be explicitly 371 raised to allow such segments to be created. 372 37320090301: 374 The layout of struct ifnet has changed, requiring a rebuild of all 375 network device driver modules. 376 37720090227: 378 The /dev handling for the new USB stack has changed, a 379 buildworld/installworld is required for libusb20. 380 38120090223: 382 The new USB2 stack has now been permanently moved in and all kernel and 383 module names reverted to their previous values (eg, usb, ehci, ohci, 384 ums, ...). The old usb stack can be compiled in by prefixing the name 385 with the letter 'o', the old usb modules have been removed. 386 Updating entry 20090216 for xorg and 20090215 for libmap may still 387 apply. 388 38920090217: 390 The rc.conf(5) option if_up_delay has been renamed to 391 defaultroute_delay to better reflect its purpose. If you have 392 customized this setting in /etc/rc.conf you need to update it to 393 use the new name. 394 39520090216: 396 xorg 7.4 wants to configure its input devices via hald which does not 397 yet work with USB2. If the keyboard/mouse does not work in xorg then 398 add 399 Option "AllowEmptyInput" "off" 400 to your ServerLayout section. This will cause X to use the configured 401 kbd and mouse sections from your xorg.conf. 402 40320090215: 404 The GENERIC kernels for all architectures now default to the new USB2 405 stack. No kernel config options or code have been removed so if a 406 problem arises please report it and optionally revert to the old USB 407 stack. If you are loading USB kernel modules or have a custom kernel 408 that includes GENERIC then ensure that usb names are also changed over, 409 eg uftdi -> usb2_serial_ftdi. 410 411 Older programs linked against the ports libusb 0.1 need to be 412 redirected to the new stack's libusb20. /etc/libmap.conf can 413 be used for this: 414 # Map old usb library to new one for usb2 stack 415 libusb-0.1.so.8 libusb20.so.1 416 41720090203: 418 The ichsmb(4) driver has been changed to require SMBus slave 419 addresses be left-justified (xxxxxxx0b) rather than right-justified. 420 All of the other SMBus controller drivers require left-justified 421 slave addresses, so this change makes all the drivers provide the 422 same interface. 423 42420090201: 425 INET6 statistics (struct ip6stat) was updated. 426 netstat(1) needs to be recompiled. 427 42820090119: 429 NTFS has been removed from GENERIC kernel on amd64 to match 430 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 431 will load ntfs.ko module automatically when NTFS support is 432 actually needed, unless ntfs.ko is not installed or security 433 level prohibits loading kernel modules. If either is the case, 434 "options NTFS" has to be added into kernel config. 435 43620090115: 437 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 438 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 439 800061. User space tools that rely on the size of struct tcpcb in 440 tcp_var.h (e.g. sockstat) need to be recompiled. 441 44220081225: 443 ng_tty(4) module updated to match the new TTY subsystem. 444 Due to API change, user-level applications must be updated. 445 New API support added to mpd5 CVS and expected to be present 446 in next mpd5.3 release. 447 44820081219: 449 With __FreeBSD_version 800060 the makefs tool is part of 450 the base system (it was a port). 451 45220081216: 453 The afdata and ifnet locks have been changed from mutexes to 454 rwlocks, network modules will need to be re-compiled. 455 45620081214: 457 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 458 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 459 The new code reduced struct rtentry{} by 16 bytes on 32-bit 460 architecture and 40 bytes on 64-bit architecture. The userland 461 applications "arp" and "ndp" have been updated accordingly. 462 The output from "netstat -r" shows only routing entries and 463 none of the L2 information. 464 46520081130: 466 __FreeBSD_version 800057 marks the switchover from the 467 binary ath hal to source code. Users must add the line: 468 469 options AH_SUPPORT_AR5416 470 471 to their kernel config files when specifying: 472 473 device ath_hal 474 475 The ath_hal module no longer exists; the code is now compiled 476 together with the driver in the ath module. It is now 477 possible to tailor chip support (i.e. reduce the set of chips 478 and thereby the code size); consult ath_hal(4) for details. 479 48020081121: 481 __FreeBSD_version 800054 adds memory barriers to 482 <machine/atomic.h>, new interfaces to ifnet to facilitate 483 multiple hardware transmit queues for cards that support 484 them, and a lock-less ring-buffer implementation to 485 enable drivers to more efficiently manage queueing of 486 packets. 487 48820081117: 489 A new version of ZFS (version 13) has been merged to -HEAD. 490 This version has zpool attribute "listsnapshots" off by 491 default, which means "zfs list" does not show snapshots, 492 and is the same as Solaris behavior. 493 49420081028: 495 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 496 49720081009: 498 The uhci, ohci, ehci and slhci USB Host controller drivers have 499 been put into separate modules. If you load the usb module 500 separately through loader.conf you will need to load the 501 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 502 controller add the following to loader.conf: 503 504 uhci_load="YES" 505 ehci_load="YES" 506 50720081009: 508 The ABI used by the PMC toolset has changed. Please keep 509 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 510 sync. 511 51220080820: 513 The TTY subsystem of the kernel has been replaced by a new 514 implementation, which provides better scalability and an 515 improved driver model. Most common drivers have been migrated to 516 the new TTY subsystem, while others have not. The following 517 drivers have not yet been ported to the new TTY layer: 518 519 PCI/ISA: 520 cy, digi, rc, rp, sio 521 522 USB: 523 ubser, ucycom 524 525 Line disciplines: 526 ng_h4, ng_tty, ppp, sl, snp 527 528 Adding these drivers to your kernel configuration file shall 529 cause compilation to fail. 530 53120080818: 532 ntpd has been upgraded to 4.2.4p5. 533 53420080801: 535 OpenSSH has been upgraded to 5.1p1. 536 537 For many years, FreeBSD's version of OpenSSH preferred DSA 538 over RSA for host and user authentication keys. With this 539 upgrade, we've switched to the vendor's default of RSA over 540 DSA. This may cause upgraded clients to warn about unknown 541 host keys even for previously known hosts. Users should 542 follow the usual procedure for verifying host keys before 543 accepting the RSA key. 544 545 This can be circumvented by setting the "HostKeyAlgorithms" 546 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 547 command line. 548 549 Please note that the sequence of keys offered for 550 authentication has been changed as well. You may want to 551 specify IdentityFile in a different order to revert this 552 behavior. 553 55420080713: 555 The sio(4) driver has been removed from the i386 and amd64 556 kernel configuration files. This means uart(4) is now the 557 default serial port driver on those platforms as well. 558 559 To prevent collisions with the sio(4) driver, the uart(4) driver 560 uses different names for its device nodes. This means the 561 onboard serial port will now most likely be called "ttyu0" 562 instead of "ttyd0". You may need to reconfigure applications to 563 use the new device names. 564 565 When using the serial port as a boot console, be sure to update 566 /boot/device.hints and /etc/ttys before booting the new kernel. 567 If you forget to do so, you can still manually specify the hints 568 at the loader prompt: 569 570 set hint.uart.0.at="isa" 571 set hint.uart.0.port="0x3F8" 572 set hint.uart.0.flags="0x10" 573 set hint.uart.0.irq="4" 574 boot -s 575 57620080609: 577 The gpt(8) utility has been removed. Use gpart(8) to partition 578 disks instead. 579 58020080603: 581 The version that Linuxulator emulates was changed from 2.4.2 582 to 2.6.16. If you experience any problems with Linux binaries 583 please try to set sysctl compat.linux.osrelease to 2.4.2 and 584 if it fixes the problem contact emulation mailing list. 585 58620080525: 587 ISDN4BSD (I4B) was removed from the src tree. You may need to 588 update a your kernel configuration and remove relevant entries. 589 59020080509: 591 I have checked in code to support multiple routing tables. 592 See the man pages setfib(1) and setfib(2). 593 This is a hopefully backwards compatible version, 594 but to make use of it you need to compile your kernel 595 with options ROUTETABLES=2 (or more up to 16). 596 59720080420: 598 The 802.11 wireless support was redone to enable multi-bss 599 operation on devices that are capable. The underlying device 600 is no longer used directly but instead wlanX devices are 601 cloned with ifconfig. This requires changes to rc.conf files. 602 For example, change: 603 ifconfig_ath0="WPA DHCP" 604 to 605 wlans_ath0=wlan0 606 ifconfig_wlan0="WPA DHCP" 607 see rc.conf(5) for more details. In addition, mergemaster of 608 /etc/rc.d is highly recommended. Simultaneous update of userland 609 and kernel wouldn't hurt either. 610 611 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 612 modules were merged into the base wlan module. All references 613 to these modules (e.g. in kernel config files) must be removed. 614 61520080408: 616 psm(4) has gained write(2) support in native operation level. 617 Arbitrary commands can be written to /dev/psm%d and status can 618 be read back from it. Therefore, an application is responsible 619 for status validation and error recovery. It is a no-op in 620 other operation levels. 621 62220080312: 623 Support for KSE threading has been removed from the kernel. To 624 run legacy applications linked against KSE libmap.conf may 625 be used. The following libmap.conf may be used to ensure 626 compatibility with any prior release: 627 628 libpthread.so.1 libthr.so.1 629 libpthread.so.2 libthr.so.2 630 libkse.so.3 libthr.so.3 631 63220080301: 633 The layout of struct vmspace has changed. This affects libkvm 634 and any executables that link against libkvm and use the 635 kvm_getprocs() function. In particular, but not exclusively, 636 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 637 The effects are minimal, but it's advisable to upgrade world 638 nonetheless. 639 64020080229: 641 The latest em driver no longer has support in it for the 642 82575 adapter, this is now moved to the igb driver. The 643 split was done to make new features that are incompatible 644 with older hardware easier to do. 645 64620080220: 647 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 648 likewise the kernel option is now GEOM_LINUX_LVM. 649 65020080211: 651 The default NFS mount mode has changed from UDP to TCP for 652 increased reliability. If you rely on (insecurely) NFS 653 mounting across a firewall you may need to update your 654 firewall rules. 655 65620080208: 657 Belatedly note the addition of m_collapse for compacting 658 mbuf chains. 659 66020080126: 661 The fts(3) structures have been changed to use adequate 662 integer types for their members and so to be able to cope 663 with huge file trees. The old fts(3) ABI is preserved 664 through symbol versioning in libc, so third-party binaries 665 using fts(3) should still work, although they will not take 666 advantage of the extended types. At the same time, some 667 third-party software might fail to build after this change 668 due to unportable assumptions made in its source code about 669 fts(3) structure members. Such software should be fixed 670 by its vendor or, in the worst case, in the ports tree. 671 FreeBSD_version 800015 marks this change for the unlikely 672 case that a portable fix is impossible. 673 67420080123: 675 To upgrade to -current after this date, you must be running 676 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 677 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 678 67920071128: 680 The ADAPTIVE_GIANT kernel option has been retired because its 681 functionality is the default now. 682 68320071118: 684 The AT keyboard emulation of sunkbd(4) has been turned on 685 by default. In order to make the special symbols of the Sun 686 keyboards driven by sunkbd(4) work under X these now have 687 to be configured the same way as Sun USB keyboards driven 688 by ukbd(4) (which also does AT keyboard emulation), f.e.: 689 690 Option "XkbLayout" "us" 691 Option "XkbRules" "xorg" 692 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 693 69420071024: 695 It has been decided that it is desirable to provide ABI 696 backwards compatibility to the FreeBSD 4/5/6 versions of the 697 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 698 broken with the introduction of PCI domain support (see the 699 20070930 entry). Unfortunately, this required the ABI of 700 PCIOCGETCONF to be broken again in order to be able to 701 provide backwards compatibility to the old version of that 702 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 703 again. As for prominent ports this affects neither pciutils 704 nor xorg-server this time, the hal port needs to be rebuilt 705 however. 706 70720071020: 708 The misnamed kthread_create() and friends have been renamed 709 to kproc_create() etc. Many of the callers already 710 used kproc_start().. 711 I will return kthread_create() and friends in a while 712 with implementations that actually create threads, not procs. 713 Renaming corresponds with version 800002. 714 71520071010: 716 RELENG_7 branched. 717 71820071009: 719 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 720 WITHOUT_LIBTHR are set. 721 72220070930: 723 The PCI code has been made aware of PCI domains. This means that 724 the location strings as used by pciconf(8) etc are now in the 725 following format: pci<domain>:<bus>:<device>[:<function>]. It 726 also means that consumers of <sys/pciio.h> potentially need to 727 be recompiled; this includes the hal and xorg-server ports. 728 72920070928: 730 The caching daemon (cached) was renamed to nscd. nscd.conf 731 configuration file should be used instead of cached.conf and 732 nscd_enable, nscd_pidfile and nscd_flags options should be used 733 instead of cached_enable, cached_pidfile and cached_flags in 734 rc.conf. 735 73620070921: 737 The getfacl(1) utility now prints owning user and group name 738 instead of owning uid and gid in the three line comment header. 739 This is the same behavior as getfacl(1) on Solaris and Linux. 740 74120070704: 742 The new IPsec code is now compiled in using the IPSEC option. The 743 IPSEC option now requires "device crypto" be defined in your kernel 744 configuration. The FAST_IPSEC kernel option is now deprecated. 745 74620070702: 747 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 748 note the changed syntax - keep state is now on by default. Also 749 note the fact that ftp-proxy(8) has been changed from bottom up and 750 has been moved from libexec to usr/sbin. Changes in the ALTQ 751 handling also affect users of IPFW's ALTQ capabilities. 752 75320070701: 754 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 755 only IPsec supported by FreeBSD. The new IPsec stack 756 supports both IPv4 and IPv6. The kernel option will change 757 after the code changes have settled in. For now the kernel 758 option IPSEC is deprecated and FAST_IPSEC is the only option, that 759 will change after some settling time. 760 76120070701: 762 The wicontrol(8) utility has been removed from the base system. wi(4) 763 cards should be configured using ifconfig(8), see the man page for more 764 information. 765 76620070612: 767 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 768 instead of the nve(4) driver. Please update your configuration 769 accordingly. 770 77120070612: 772 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 773 database if it is missing or older than the aliases file. If 774 desired, set the new rc.conf option sendmail_rebuild_aliases 775 to "YES" to restore that functionality. 776 77720070612: 778 The IPv4 multicast socket code has been considerably modified, and 779 moved to the file sys/netinet/in_mcast.c. Initial support for the 780 RFC 3678 Source-Specific Multicast Socket API has been added to 781 the IPv4 network stack. 782 783 Strict multicast and broadcast reception is now the default for 784 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 785 has now been removed. 786 787 The RFC 1724 hack for interface selection has been removed; the use 788 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 789 been added to replace it. Consumers such as routed will soon be 790 updated to reflect this. 791 792 These changes affect users who are running routed(8) or rdisc(8) 793 from the FreeBSD base system on point-to-point or unnumbered 794 interfaces. 795 79620070610: 797 The net80211 layer has changed significantly and all wireless 798 drivers that depend on it need to be recompiled. Further these 799 changes require that any program that interacts with the wireless 800 support in the kernel be recompiled; this includes: ifconfig, 801 wpa_supplicant, hostapd, and wlanstats. Users must also, for 802 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 803 if they use modules for wireless support. These modules implement 804 scanning support for station and ap modes, respectively. Failure 805 to load the appropriate module before marking a wireless interface 806 up will result in a message to the console and the device not 807 operating properly. 808 80920070610: 810 The pam_nologin(8) module ceases to provide an authentication 811 function and starts providing an account management function. 812 Consequent changes to /etc/pam.d should be brought in using 813 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 814 need manual editing as follows. Locate this line (or similar): 815 816 auth required pam_nologin.so no_warn 817 818 and change it according to this example: 819 820 account required pam_nologin.so no_warn 821 822 That is, the first word needs to be changed from "auth" to 823 "account". The new line can be moved to the account section 824 within the file for clarity. Not updating pam.conf(5) files 825 will result in nologin(5) ignored by the respective services. 826 82720070529: 828 The ether_ioctl() function has been synchronized with ioctl(2) 829 and ifnet.if_ioctl. Due to that, the size of one of its arguments 830 has changed on 64-bit architectures. All kernel modules using 831 ether_ioctl() need to be rebuilt on such architectures. 832 83320070516: 834 Improved INCLUDE_CONFIG_FILE support has been introduced to the 835 config(8) utility. In order to take advantage of this new 836 functionality, you are expected to recompile and install 837 src/usr.sbin/config. If you don't rebuild config(8), and your 838 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 839 build will be broken because of a missing "kernconfstring" 840 symbol. 841 84220070513: 843 Symbol versioning is enabled by default. To disable it, use 844 option WITHOUT_SYMVER. It is not advisable to attempt to 845 disable symbol versioning once it is enabled; your installworld 846 will break because a symbol version-less libc will get installed 847 before the install tools. As a result, the old install tools, 848 which previously had symbol dependencies to FBSD_1.0, will fail 849 because the freshly installed libc will not have them. 850 851 The default threading library (providing "libpthread") has been 852 changed to libthr. If you wish to have libkse as your default, 853 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 854 85520070423: 856 The ABI breakage in sendmail(8)'s libmilter has been repaired 857 so it is no longer necessary to recompile mail filters (aka, 858 milters). If you recompiled mail filters after the 20070408 859 note, it is not necessary to recompile them again. 860 86120070417: 862 The new trunk(4) driver has been renamed to lagg(4) as it better 863 reflects its purpose. ifconfig will need to be recompiled. 864 86520070408: 866 sendmail(8) has been updated to version 8.14.1. Mail filters 867 (aka, milters) compiled against the libmilter included in the 868 base operating system should be recompiled. 869 87020070302: 871 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 872 In order to use them one must agree to the respective LICENSE in 873 share/doc/legal and define legal.intel_<name>.license_ack=1 via 874 loader.conf(5) or kenv(1). Make sure to deinstall the now 875 deprecated modules from the respective firmware ports. 876 87720070228: 878 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 879 were removed from FreeBSD's libc. These originally came from INRIA 880 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 881 deprecated in previous releases. 882 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 883 replace it as a more portable (and re-entrant) API. 884 88520070224: 886 To support interrupt filtering a modification to the newbus API 887 has occurred, ABI was broken and __FreeBSD_version was bumped 888 to 700031. Please make sure that your kernel and modules are in 889 sync. For more info: 890 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 891 89220070224: 893 The IPv6 multicast forwarding code may now be loaded into GENERIC 894 kernels by loading the ip_mroute.ko module. This is built into the 895 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 896 set; see src.conf(5) for more information. 897 89820070214: 899 The output of netstat -r has changed. Without -n, we now only 900 print a "network name" without the prefix length if the network 901 address and mask exactly match a Class A/B/C network, and an entry 902 exists in the nsswitch "networks" map. 903 With -n, we print the full unabbreviated CIDR network prefix in 904 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 905 This change is in preparation for changes such as equal-cost 906 multipath, and to more generally assist operational deployment 907 of FreeBSD as a modern IPv4 router. 908 90920070210: 910 PIM has been turned on by default in the IPv4 multicast 911 routing code. The kernel option 'PIM' has now been removed. 912 PIM is now built by default if option 'MROUTING' is specified. 913 It may now be loaded into GENERIC kernels by loading the 914 ip_mroute.ko module. 915 91620070207: 917 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 918 has been removed. Its functionality may be achieved by explicitly 919 configuring gif(4) interfaces and using the 'phyint' keyword in 920 mrouted.conf. 921 XORP does not support source-routed IPv4 multicast tunnels nor the 922 integrated IPIP tunneling, therefore it is not affected by this 923 change. The __FreeBSD_version macro has been bumped to 700030. 924 92520061221: 926 Support for PCI Message Signalled Interrupts has been 927 re-enabled in the bge driver, only for those chips which are 928 believed to support it properly. If there are any problems, 929 MSI can be disabled completely by setting the 930 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 931 in the loader. 932 93320061214: 934 Support for PCI Message Signalled Interrupts has been 935 disabled again in the bge driver. Many revisions of the 936 hardware fail to support it properly. Support can be 937 re-enabled by removing the #define of BGE_DISABLE_MSI in 938 "src/sys/dev/bge/if_bge.c". 939 94020061214: 941 Support for PCI Message Signalled Interrupts has been added 942 to the bge driver. If there are any problems, MSI can be 943 disabled completely by setting the 'hw.pci.enable_msi' and 944 'hw.pci.enable_msix' tunables to 0 in the loader. 945 94620061205: 947 The removal of several facets of the experimental Threading 948 system from the kernel means that the proc and thread structures 949 have changed quite a bit. I suggest all kernel modules that might 950 reference these structures be recompiled.. Especially the 951 linux module. 952 95320061126: 954 Sound infrastructure has been updated with various fixes and 955 improvements. Most of the changes are pretty much transparent, 956 with exceptions of followings: 957 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 958 moved to their own dev sysctl nodes, for example: 959 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 960 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 961 own chardev in the form of "dsp%d.<function>%d", where <function> 962 is p = playback, r = record and v = virtual, respectively. Users 963 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 964 This does not affect those who are using "/dev/dsp". 965 96620061122: 967 geom(4)'s gmirror(8) class metadata structure has been 968 rev'd from v3 to v4. If you update across this point and 969 your metadata is converted for you, you will not be easily 970 able to downgrade since the /boot/kernel.old/geom_mirror.ko 971 kernel module will be unable to read the v4 metadata. You 972 can resolve this by doing from the loader(8) prompt: 973 974 set vfs.root.mountfrom="ufs:/dev/XXX" 975 976 where XXX is the root slice of one of the disks that composed 977 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 978 the array the same way you built it originally. 979 98020061122: 981 The following binaries have been disconnected from the build: 982 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 983 and mount_std. The functionality of these programs has been 984 moved into the mount program. For example, to mount a devfs 985 filesystem, instead of using mount_devfs, use: "mount -t devfs". 986 This does not affect entries in /etc/fstab, since entries in 987 /etc/fstab are always processed with "mount -t fstype". 988 98920061113: 990 Support for PCI Message Signalled Interrupts on i386 and amd64 991 has been added to the kernel and various drivers will soon be 992 updated to use MSI when it is available. If there are any problems, 993 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 994 and 'hw.pci.enable_msix' tunables to 0 in the loader. 995 99620061110: 997 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 998 The lockmgr object layout has been changed as a result of having 999 a lock_object embedded in it. As a consequence all file system 1000 kernel modules must be re-compiled. The mutex profiling man page 1001 has not yet been updated to reflect this change. 1002 100320061026: 1004 KSE in the kernel has now been made optional and turned on by 1005 default. Use 'nooption KSE' in your kernel config to turn it 1006 off. All kernel modules *must* be recompiled after this change. 1007 There-after, modules from a KSE kernel should be compatible with 1008 modules from a NOKSE kernel due to the temporary padding fields 1009 added to 'struct proc'. 1010 101120060929: 1012 mrouted and its utilities have been removed from the base system. 1013 101420060927: 1015 Some ioctl(2) command codes have changed. Full backward ABI 1016 compatibility is provided if the "options COMPAT_FREEBSD6" is 1017 present in the kernel configuration file. Make sure to add 1018 this option to your kernel config file, or recompile X.Org 1019 and the rest of ports; otherwise they may refuse to work. 1020 102120060924: 1022 tcpslice has been removed from the base system. 1023 102420060913: 1025 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 1026 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 1027 systat needs to be rebuilt. 1028 102920060903: 1030 libpcap updated to v0.9.4 and tcpdump to v3.9.4 1031 103220060816: 1033 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 1034 for IPFIREWALL_FORWARD is now as it was before when it was first 1035 committed and for years after. The behaviour is now ON. 1036 103720060725: 1038 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 1039 Now it can decrypt files created from different architectures. 1040 Unfortunately, it is no longer able to decrypt a cipher text 1041 generated with an older version on 64 bit architectures. 1042 If you have such a file, you need old utility to decrypt it. 1043 104420060709: 1045 The interface version of the i4b kernel part has changed. So 1046 after updating the kernel sources and compiling a new kernel, 1047 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 1048 be rebuilt, and vice versa. 1049 105020060627: 1051 The XBOX kernel now defaults to the nfe(4) driver instead of 1052 the nve(4) driver. Please update your configuration 1053 accordingly. 1054 105520060514: 1056 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 1057 PCnet family of NICs has been removed. The new le(4) driver serves 1058 as an equivalent but cross-platform replacement with the pcn(4) 1059 driver still providing performance-optimized support for the subset 1060 of AMD Am79C971 PCnet-FAST and greater chips as before. 1061 106220060511: 1063 The machdep.* sysctls and the adjkerntz utility have been 1064 modified a bit. The new adjkerntz utility uses the new 1065 sysctl names and sysctlbyname() calls, so it may be impossible 1066 to run an old /sbin/adjkerntz utility in single-user mode 1067 with a new kernel. Replace the `adjkerntz -i' step before 1068 `make installworld' with: 1069 1070 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 1071 1072 and proceed as usual with the rest of the installworld-stage 1073 steps. Otherwise, you risk installing binaries with their 1074 timestamp set several hours in the future, especially if 1075 you are running with local time set to GMT+X hours. 1076 107720060412: 1078 The ip6fw utility has been removed. The behavior provided by 1079 ip6fw has been in ipfw2 for a good while and the rc.d scripts 1080 have been updated to deal with it. There are some rules that 1081 might not migrate cleanly. Use rc.firewall6 as a template to 1082 rewrite rules. 1083 108420060428: 1085 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 1086 attachments have been removed. Make sure to configure scc(4) 1087 on sparc64. Note also that by default puc(4) will use uart(4) 1088 and not sio(4) for serial ports because interrupt handling has 1089 been optimized for multi-port serial cards and only uart(4) 1090 implements the interface to support it. 1091 109220060330: 1093 The scc(4) driver replaces puc(4) for Serial Communications 1094 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 1095 Z8530. On sparc64, it is advised to add scc(4) to the kernel 1096 configuration to make sure that the serial ports remain 1097 functional. 1098 109920060317: 1100 Most world/kernel related NO_* build options changed names. 1101 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 1102 after FreeBSD ports) and should be set in /etc/src.conf 1103 (the src.conf(5) manpage is provided). Full backwards 1104 compatibility is maintained for the time being though it's 1105 highly recommended to start moving old options out of the 1106 system-wide /etc/make.conf file into the new /etc/src.conf 1107 while also properly renaming them. More conversions will 1108 likely follow. Posting to current@: 1109 1110 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 1111 111220060305: 1113 The NETSMBCRYPTO kernel option has been retired because its 1114 functionality is always included in NETSMB and smbfs.ko now. 1115 111620060303: 1117 The TDFX_LINUX kernel option was retired and replaced by the 1118 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 1119 kernel module. Loading it alone should suffice to get 3dfx support 1120 for Linux apps because it will pull in 3dfx.ko and linux.ko through 1121 its dependencies. 1122 112320060204: 1124 The 'audit' group was added to support the new auditing functionality 1125 in the base system. Be sure to follow the directions for updating, 1126 including the requirement to run mergemaster -p. 1127 112820060201: 1129 The kernel ABI to file system modules was changed on i386. 1130 Please make sure that your kernel and modules are in sync. 1131 113220060118: 1133 This actually occured some time ago, but installing the kernel 1134 now also installs a bunch of symbol files for the kernel modules. 1135 This increases the size of /boot/kernel to about 67Mbytes. You 1136 will need twice this if you will eventually back this up to kernel.old 1137 on your next install. 1138 If you have a shortage of room in your root partition, you should add 1139 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 1140 to your /etc/make.conf. 1141 114220060113: 1143 libc's malloc implementation has been replaced. This change has the 1144 potential to uncover application bugs that previously went unnoticed. 1145 See the malloc(3) manual page for more details. 1146 114720060112: 1148 The generic netgraph(4) cookie has been changed. If you upgrade 1149 kernel passing this point, you also need to upgrade userland 1150 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 1151 115220060106: 1153 si(4)'s device files now contain the unit number. 1154 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 1155 115620060106: 1157 The kernel ABI was mostly destroyed due to a change in the size 1158 of struct lock_object which is nested in other structures such 1159 as mutexes which are nested in all sorts of other structures. 1160 Make sure your kernel and modules are in sync. 1161 116220051231: 1163 The page coloring algorithm in the VM subsystem was converted 1164 from tuning with kernel options to autotuning. Please remove 1165 any PQ_* option except PQ_NOOPT from your kernel config. 1166 116720051211: 1168 The net80211-related tools in the tools/tools/ath directory 1169 have been moved to tools/tools/net80211 and renamed with a 1170 "wlan" prefix. Scripts that use them should be adjusted 1171 accordingly. 1172 117320051202: 1174 Scripts in the local_startup directories (as defined in 1175 /etc/defaults/rc.conf) that have the new rc.d semantics will 1176 now be run as part of the base system rcorder. If there are 1177 errors or problems with one of these local scripts, it could 1178 cause boot problems. If you encounter such problems, boot in 1179 single user mode, remove that script from the */rc.d directory. 1180 Please report the problem to the port's maintainer, and the 1181 freebsd-ports@freebsd.org mailing list. 1182 118320051129: 1184 The nodev mount option was deprecated in RELENG_6 (where it 1185 was a no-op), and is now unsupported. If you have nodev or dev listed 1186 in /etc/fstab, remove it, otherwise it will result in a mount error. 1187 118820051129: 1189 ABI between ipfw(4) and ipfw(8) has been changed. You need 1190 to rebuild ipfw(8) when rebuilding kernel. 1191 119220051108: 1193 rp(4)'s device files now contain the unit number. 1194 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 1195 119620051029: 1197 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 1198 Its /etc/rc.conf.d configuration file has been `ppp' from 1199 the beginning, and hence there is no need to touch it. 1200 120120051014: 1202 Now most modules get their build-time options from the kernel 1203 configuration file. A few modules still have fixed options 1204 due to their non-conformant implementation, but they will be 1205 corrected eventually. You may need to review the options of 1206 the modules in use, explicitly specify the non-default options 1207 in the kernel configuration file, and rebuild the kernel and 1208 modules afterwards. 1209 121020051001: 1211 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 1212 to turn polling(4) on your interfaces. 1213 121420050927: 1215 The old bridge(4) implementation was retired. The new 1216 if_bridge(4) serves as a full functional replacement. 1217 121820050722: 1219 The ai_addrlen of a struct addrinfo was changed to a socklen_t 1220 to conform to POSIX-2001. This change broke an ABI 1221 compatibility on 64 bit architecture. You have to recompile 1222 userland programs that use getaddrinfo(3) on 64 bit 1223 architecture. 1224 122520050711: 1226 RELENG_6 branched here. 1227 122820050629: 1229 The pccard_ifconfig rc.conf variable has been removed and a new 1230 variable, ifconfig_DEFAULT has been introduced. Unlike 1231 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 1232 do not have ifconfig_ifn entries rather than just those in 1233 removable_interfaces. 1234 123520050616: 1236 Some previous versions of PAM have permitted the use of 1237 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 1238 to third party PAM modules in /usr/local/lib. A change has been 1239 made to require the use of absolute paths in order to avoid 1240 ambiguity and dependence on library path configuration, which may 1241 affect existing configurations. 1242 124320050610: 1244 Major changes to network interface API. All drivers must be 1245 recompiled. Drivers not in the base system will need to be 1246 updated to the new APIs. 1247 124820050609: 1249 Changes were made to kinfo_proc in sys/user.h. Please recompile 1250 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 1251 will not behave correctly. 1252 1253 The API and ABI for hwpmc(4) have changed with the addition 1254 of sampling support. Please recompile lib/libpmc(3) and 1255 usr.sbin/{pmcstat,pmccontrol}. 1256 125720050606: 1258 The OpenBSD dhclient was imported in place of the ISC dhclient 1259 and the network interface configuration scripts were updated 1260 accordingly. If you use DHCP to configure your interfaces, you 1261 must now run devd. Also, DNS updating was lost so you will need 1262 to find a workaround if you use this feature. 1263 1264 The '_dhcp' user was added to support the OpenBSD dhclient. Be 1265 sure to run mergemaster -p (like you are supposed to do every time 1266 anyway). 1267 126820050605: 1269 if_bridge was added to the tree. This has changed struct ifnet. 1270 Please recompile userland and all network related modules. 1271 127220050603: 1273 The n_net of a struct netent was changed to an uint32_t, and 1274 1st argument of getnetbyaddr() was changed to an uint32_t, to 1275 conform to POSIX-2001. These changes broke an ABI 1276 compatibility on 64 bit architecture. With these changes, 1277 shlib major of libpcap was bumped. You have to recompile 1278 userland programs that use getnetbyaddr(3), getnetbyname(3), 1279 getnetent(3) and/or libpcap on 64 bit architecture. 1280 128120050528: 1282 Kernel parsing of extra options on '#!' first lines of shell 1283 scripts has changed. Lines with multiple options likely will 1284 fail after this date. For full details, please see 1285 http://people.freebsd.org/~gad/Updating-20050528.txt 1286 128720050503: 1288 The packet filter (pf) code has been updated to OpenBSD 3.7 1289 Please note the changed anchor syntax and the fact that 1290 authpf(8) now needs a mounted fdescfs(5) to function. 1291 129220050415: 1293 The NO_MIXED_MODE kernel option has been removed from the i386 1294 amd64 platforms as its use has been superceded by the new local 1295 APIC timer code. Any kernel config files containing this option 1296 should be updated. 1297 129820050227: 1299 The on-disk format of LC_CTYPE files was changed to be machine 1300 independent. Please make sure NOT to use NO_CLEAN buildworld 1301 when crossing this point. Crossing this point also requires 1302 recompile or reinstall of all locale depended packages. 1303 130420050225: 1305 The ifi_epoch member of struct if_data has been changed to 1306 contain the uptime at which the interface was created or the 1307 statistics zeroed rather then the wall clock time because 1308 wallclock time may go backwards. This should have no impact 1309 unless an snmp implementation is using this value (I know of 1310 none at this point.) 1311 131220050224: 1313 The acpi_perf and acpi_throttle drivers are now part of the 1314 acpi(4) main module. They are no longer built separately. 1315 131620050223: 1317 The layout of struct image_params has changed. You have to 1318 recompile all compatibility modules (linux, svr4, etc) for use 1319 with the new kernel. 1320 132120050223: 1322 The p4tcc driver has been merged into cpufreq(4). This makes 1323 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 1324 compile in "device cpufreq" to restore this functionality. 1325 132620050220: 1327 The responsibility of recomputing the file system summary of 1328 a SoftUpdates-enabled dirty volume has been transferred to the 1329 background fsck. A rebuild of fsck(8) utility is recommended 1330 if you have updated the kernel. 1331 1332 To get the old behavior (recompute file system summary at mount 1333 time), you can set vfs.ffs.compute_summary_at_mount=1 before 1334 mounting the new volume. 1335 133620050206: 1337 The cpufreq import is complete. As part of this, the sysctls for 1338 acpi(4) throttling have been removed. The power_profile script 1339 has been updated, so you can use performance/economy_cpu_freq in 1340 rc.conf(5) to set AC on/offline cpu frequencies. 1341 134220050206: 1343 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 1344 requires recompiling libnetgraph and userland netgraph utilities. 1345 134620050114: 1347 Support for abbreviated forms of a number of ipfw options is 1348 now deprecated. Warnings are printed to stderr indicating the 1349 correct full form when a match occurs. Some abbreviations may 1350 be supported at a later date based on user feedback. To be 1351 considered for support, abbreviations must be in use prior to 1352 this commit and unlikely to be confused with current key words. 1353 135420041221: 1355 By a popular demand, a lot of NOFOO options were renamed 1356 to NO_FOO (see bsd.compat.mk for a full list). The old 1357 spellings are still supported, but will cause annoying 1358 warnings on stderr. Make sure you upgrade properly (see 1359 the COMMON ITEMS: section later in this file). 1360 136120041219: 1362 Auto-loading of ancillary wlan modules such as wlan_wep has 1363 been temporarily disabled; you need to statically configure 1364 the modules you need into your kernel or explicitly load them 1365 prior to use. Specifically, if you intend to use WEP encryption 1366 with an 802.11 device load/configure wlan_wep; if you want to 1367 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 1368 and wlan_xauth as required. 1369 137020041213: 1371 The behaviour of ppp(8) has changed slightly. If lqr is enabled 1372 (``enable lqr''), older versions would revert to LCP ECHO mode on 1373 negotiation failure. Now, ``enable echo'' is required for this 1374 behaviour. The ppp version number has been bumped to 3.4.2 to 1375 reflect the change. 1376 137720041201: 1378 The wlan support has been updated to split the crypto support 1379 into separate modules. For static WEP you must configure the 1380 wlan_wep module in your system or build and install the module 1381 in place where it can be loaded (the kernel will auto-load 1382 the module when a wep key is configured). 1383 138420041201: 1385 The ath driver has been updated to split the tx rate control 1386 algorithm into a separate module. You need to include either 1387 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1388 138920041116: 1390 Support for systems with an 80386 CPU has been removed. Please 1391 use FreeBSD 5.x or earlier on systems with an 80386. 1392 139320041110: 1394 We have had a hack which would mount the root filesystem 1395 R/W if the device were named 'md*'. As part of the vnode 1396 work I'm doing I have had to remove this hack. People 1397 building systems which use preloaded MD root filesystems 1398 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1399 their /etc/rc scripts. 1400 140120041104: 1402 FreeBSD 5.3 shipped here. 1403 140420041102: 1405 The size of struct tcpcb has changed again due to the removal 1406 of RFC1644 T/TCP. You have to recompile userland programs that 1407 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1408 140920041022: 1410 The size of struct tcpcb has changed. You have to recompile 1411 userland programs that read kmem for tcp sockets directly 1412 (netstat, sockstat, etc.) 1413 141420041016: 1415 RELENG_5 branched here. For older entries, please see updating 1416 in the RELENG_5 branch. 1417 1418COMMON ITEMS: 1419 1420 General Notes 1421 ------------- 1422 Avoid using make -j when upgrading. From time to time in the 1423 past there have been problems using -j with buildworld and/or 1424 installworld. This is especially true when upgrading between 1425 "distant" versions (eg one that cross a major release boundary 1426 or several minor releases, or when several months have passed 1427 on the -current branch). 1428 1429 Sometimes, obscure build problems are the result of environment 1430 poisoning. This can happen because the make utility reads its 1431 environment when searching for values for global variables. 1432 To run your build attempts in an "environmental clean room", 1433 prefix all make commands with 'env -i '. See the env(1) manual 1434 page for more details. 1435 1436 When upgrading from one major version to another it is generally 1437 best to upgrade to the latest code in the currently installed branch 1438 first, then do an upgrade to the new branch. This is the best-tested 1439 upgrade path, and has the highest probability of being successful. 1440 Please try this approach before reporting problems with a major 1441 version upgrade. 1442 1443 To build a kernel 1444 ----------------- 1445 If you are updating from a prior version of FreeBSD (even one just 1446 a few days old), you should follow this procedure. It is the most 1447 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1448 1449 make kernel-toolchain 1450 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1451 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1452 1453 To test a kernel once 1454 --------------------- 1455 If you just want to boot a kernel once (because you are not sure 1456 if it works, or if you want to boot a known bad kernel to provide 1457 debugging information) run 1458 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1459 nextboot -k testkernel 1460 1461 To just build a kernel when you know that it won't mess you up 1462 -------------------------------------------------------------- 1463 This assumes you are already running a 5.X system. Replace 1464 ${arch} with the architecture of your machine (e.g. "i386", 1465 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1466 1467 cd src/sys/${arch}/conf 1468 config KERNEL_NAME_HERE 1469 cd ../compile/KERNEL_NAME_HERE 1470 make depend 1471 make 1472 make install 1473 1474 If this fails, go to the "To build a kernel" section. 1475 1476 To rebuild everything and install it on the current system. 1477 ----------------------------------------------------------- 1478 # Note: sometimes if you are running current you gotta do more than 1479 # is listed here if you are upgrading from a really old current. 1480 1481 <make sure you have good level 0 dumps> 1482 make buildworld 1483 make kernel KERNCONF=YOUR_KERNEL_HERE 1484 [1] 1485 <reboot in single user> [3] 1486 mergemaster -p [5] 1487 make installworld 1488 make delete-old 1489 mergemaster [4] 1490 <reboot> 1491 1492 1493 To cross-install current onto a separate partition 1494 -------------------------------------------------- 1495 # In this approach we use a separate partition to hold 1496 # current's root, 'usr', and 'var' directories. A partition 1497 # holding "/", "/usr" and "/var" should be about 2GB in 1498 # size. 1499 1500 <make sure you have good level 0 dumps> 1501 <boot into -stable> 1502 make buildworld 1503 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1504 <maybe newfs current's root partition> 1505 <mount current's root partition on directory ${CURRENT_ROOT}> 1506 make installworld DESTDIR=${CURRENT_ROOT} 1507 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1508 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1509 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1510 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1511 <reboot into current> 1512 <do a "native" rebuild/install as described in the previous section> 1513 <maybe install compatibility libraries from ports/misc/compat*> 1514 <reboot> 1515 1516 1517 To upgrade in-place from 5.x-stable to current 1518 ---------------------------------------------- 1519 <make sure you have good level 0 dumps> 1520 make buildworld [9] 1521 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1522 [1] 1523 <reboot in single user> [3] 1524 mergemaster -p [5] 1525 make installworld 1526 make delete-old 1527 mergemaster -i [4] 1528 <reboot> 1529 1530 Make sure that you've read the UPDATING file to understand the 1531 tweaks to various things you need. At this point in the life 1532 cycle of current, things change often and you are on your own 1533 to cope. The defaults can also change, so please read ALL of 1534 the UPDATING entries. 1535 1536 Also, if you are tracking -current, you must be subscribed to 1537 freebsd-current@freebsd.org. Make sure that before you update 1538 your sources that you have read and understood all the recent 1539 messages there. If in doubt, please track -stable which has 1540 much fewer pitfalls. 1541 1542 [1] If you have third party modules, such as vmware, you 1543 should disable them at this point so they don't crash your 1544 system on reboot. 1545 1546 [3] From the bootblocks, boot -s, and then do 1547 fsck -p 1548 mount -u / 1549 mount -a 1550 cd src 1551 adjkerntz -i # if CMOS is wall time 1552 Also, when doing a major release upgrade, it is required that 1553 you boot into single user mode to do the installworld. 1554 1555 [4] Note: This step is non-optional. Failure to do this step 1556 can result in a significant reduction in the functionality of the 1557 system. Attempting to do it by hand is not recommended and those 1558 that pursue this avenue should read this file carefully, as well 1559 as the archives of freebsd-current and freebsd-hackers mailing lists 1560 for potential gotchas. 1561 1562 [5] Usually this step is a noop. However, from time to time 1563 you may need to do this if you get unknown user in the following 1564 step. It never hurts to do it all the time. You may need to 1565 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1566 install) after the buildworld before this step if you last updated 1567 from current before 20020224 or from -stable before 20020408. 1568 1569 [8] In order to have a kernel that can run the 4.x binaries 1570 needed to do an installworld, you must include the COMPAT_FREEBSD4 1571 option in your kernel. Failure to do so may leave you with a system 1572 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1573 is required to run the 5.x binaries on more recent kernels. 1574 1575 Make sure that you merge any new devices from GENERIC since the 1576 last time you updated your kernel config file. 1577 1578 [9] When checking out sources, you must include the -P flag to have 1579 cvs prune empty directories. 1580 1581 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1582 "?=" instead of the "=" assignment operator, so that buildworld can 1583 override the CPUTYPE if it needs to. 1584 1585 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1586 not on the command line, or in /etc/make.conf. buildworld will 1587 warn if it is improperly defined. 1588FORMAT: 1589 1590This file contains a list, in reverse chronological order, of major 1591breakages in tracking -current. Not all things will be listed here, 1592and it only starts on October 16, 2004. Updating files can found in 1593previous releases if your system is older than this. 1594 1595Copyright information: 1596 1597Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1598 1599Redistribution, publication, translation and use, with or without 1600modification, in full or in part, in any form or format of this 1601document are permitted without further permission from the author. 1602 1603THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1604IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1605WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1606DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1607INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1608(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1609SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1610HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1611STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1612IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1613POSSIBILITY OF SUCH DAMAGE. 1614 1615If you find this document useful, and you want to, you may buy the 1616author a beer. 1617 1618Contact Warner Losh if you have any questions about your use of 1619this document. 1620 1621$FreeBSD: head/UPDATING 195028 2009-06-26 01:10:10Z dougb $ 1622