UPDATING revision 176717
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 2520080301: 26 The layout of struct vmspace has changed. This affects libkvm 27 and any executables that link against libkvm and use the 28 kvm_getprocs() function. In particular, but not exclusively, 29 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 30 The effects are minimal, but it's advisable to upgrade world 31 nonetheless. 32 3320080229: 34 The latest em driver no longer has support in it for the 35 82575 adapter, this is now moved to the igb driver. The 36 split was done to make new features that are incompatible 37 with older hardware easier to do. 38 3920080220: 40 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 41 likewise the kernel option is now GEOM_LINUX_LVM. 42 4320080211: 44 The default NFS mount mode has changed from UDP to TCP for 45 increased reliability. If you rely on (insecurely) NFS 46 mounting across a firewall you may need to update your 47 firewall rules. 48 4920080208: 50 Belatedly note the addition of m_collapse for compacting 51 mbuf chains. 52 5320080126: 54 The fts(3) structures have been changed to use adequate 55 integer types for their members and so to be able to cope 56 with huge file trees. The old fts(3) ABI is preserved 57 through symbol versioning in libc, so third-party binaries 58 using fts(3) should still work, although they will not take 59 advantage of the extended types. At the same time, some 60 third-party software might fail to build after this change 61 due to unportable assumptions made in its source code about 62 fts(3) structure members. Such software should be fixed 63 by its vendor or, in the worst case, in the ports tree. 64 FreeBSD_version 800015 marks this change for the unlikely 65 case that a portable fix is impossible. 66 6720080123: 68 To upgrade to -current after this date, you must be running 69 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 70 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 71 7220071128: 73 The ADAPTIVE_GIANT kernel option has been retired because its 74 functionality is the default now. 75 7620071118: 77 The AT keyboard emulation of sunkbd(4) has been turned on 78 by default. In order to make the special symbols of the Sun 79 keyboards driven by sunkbd(4) work under X these now have 80 to be configured the same way as Sun USB keyboards driven 81 by ukbd(4) (which also does AT keyboard emulation), f.e.: 82 83 Option "XkbLayout" "us" 84 Option "XkbRules" "xorg" 85 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 86 8720071024: 88 It has been decided that it is desirable to provide ABI 89 backwards compatibility to the FreeBSD 4/5/6 versions of the 90 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 91 broken with the introduction of PCI domain support (see the 92 20070930 entry). Unfortunately, this required the ABI of 93 PCIOCGETCONF to be broken again in order to be able to 94 provide backwards compatibility to the old version of that 95 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 96 again. As for prominent ports this affects neither pciutils 97 nor xorg-server this time, the hal port needs to be rebuilt 98 however. 99 10020071020: 101 The misnamed kthread_create() and friends have been renamed 102 to kproc_create() etc. Many of the callers already 103 used kproc_start().. 104 I will return kthread_create() and friends in a while 105 with implementations that actually create threads, not procs. 106 Renaming corresponds with version 800002. 107 10820071010: 109 RELENG_7 branched. 110 11120071009: 112 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 113 WITHOUT_LIBTHR are set. 114 11520070930: 116 The PCI code has been made aware of PCI domains. This means that 117 the location strings as used by pciconf(8) etc are now in the 118 following format: pci<domain>:<bus>:<device>[:<function>]. It 119 also means that consumers of <sys/pciio.h> potentially need to 120 be recompiled; this includes the hal and xorg-server ports. 121 12220070928: 123 The caching daemon (cached) was renamed to nscd. nscd.conf 124 configuration file should be used instead of cached.conf and 125 nscd_enable, nscd_pidfile and nscd_flags options should be used 126 instead of cached_enable, cached_pidfile and cached_flags in 127 rc.conf. 128 12920070921: 130 The getfacl(1) utility now prints owning user and group name 131 instead of owning uid and gid in the three line comment header. 132 This is the same behavior as getfacl(1) on Solaris and Linux. 133 13420070704: 135 The new IPsec code is now compiled in using the IPSEC option. The 136 IPSEC option now requires "device crypto" be defined in your kernel 137 configuration. The FAST_IPSEC kernel option is now deprecated. 138 13920070702: 140 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 141 note the changed syntax - keep state is now on by default. Also 142 note the fact that ftp-proxy(8) has been changed from bottom up and 143 has been moved from libexec to usr/sbin. Changes in the ALTQ 144 handling also affect users of IPFW's ALTQ capabilities. 145 14620070701: 147 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 148 only IPsec supported by FreeBSD. The new IPsec stack 149 supports both IPv4 and IPv6. The kernel option will change 150 after the code changes have settled in. For now the kernel 151 option IPSEC is deprecated and FAST_IPSEC is the only option, that 152 will change after some settling time. 153 15420070701: 155 The wicontrol(8) utility has been removed from the base system. wi(4) 156 cards should be configured using ifconfig(8), see the man page for more 157 information. 158 15920070612: 160 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 161 instead of the nve(4) driver. Please update your configuration 162 accordingly. 163 16420070612: 165 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 166 database if it is missing or older than the aliases file. If 167 desired, set the new rc.conf option sendmail_rebuild_aliases 168 to "YES" to restore that functionality. 169 17020070612: 171 The IPv4 multicast socket code has been considerably modified, and 172 moved to the file sys/netinet/in_mcast.c. Initial support for the 173 RFC 3678 Source-Specific Multicast Socket API has been added to 174 the IPv4 network stack. 175 176 Strict multicast and broadcast reception is now the default for 177 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 178 has now been removed. 179 180 The RFC 1724 hack for interface selection has been removed; the use 181 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 182 been added to replace it. Consumers such as routed will soon be 183 updated to reflect this. 184 185 These changes affect users who are running routed(8) or rdisc(8) 186 from the FreeBSD base system on point-to-point or unnumbered 187 interfaces. 188 18920070610: 190 The net80211 layer has changed significantly and all wireless 191 drivers that depend on it need to be recompiled. Further these 192 changes require that any program that interacts with the wireless 193 support in the kernel be recompiled; this includes: ifconfig, 194 wpa_supplicant, hostapd, and wlanstats. Users must also, for 195 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 196 if they use modules for wireless support. These modules implement 197 scanning support for station and ap modes, respectively. Failure 198 to load the appropriate module before marking a wireless interface 199 up will result in a message to the console and the device not 200 operating properly. 201 20220070610: 203 The pam_nologin(8) module ceases to provide an authentication 204 function and starts providing an account management function. 205 Consequent changes to /etc/pam.d should be brought in using 206 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 207 need manual editing as follows. Locate this line (or similar): 208 209 auth required pam_nologin.so no_warn 210 211 and change it according to this example: 212 213 account required pam_nologin.so no_warn 214 215 That is, the first word needs to be changed from "auth" to 216 "account". The new line can be moved to the account section 217 within the file for clarity. Not updating pam.conf(5) files 218 will result in nologin(5) ignored by the respective services. 219 22020070529: 221 The ether_ioctl() function has been synchronized with ioctl(2) 222 and ifnet.if_ioctl. Due to that, the size of one of its arguments 223 has changed on 64-bit architectures. All kernel modules using 224 ether_ioctl() need to be rebuilt on such architectures. 225 22620070516: 227 Improved INCLUDE_CONFIG_FILE support has been introduced to the 228 config(8) utility. In order to take advantage of this new 229 functionality, you are expected to recompile and install 230 src/usr.sbin/config. If you don't rebuild config(8), and your 231 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 232 build will be broken because of a missing "kernconfstring" 233 symbol. 234 23520070513: 236 Symbol versioning is enabled by default. To disable it, use 237 option WITHOUT_SYMVER. It is not advisable to attempt to 238 disable symbol versioning once it is enabled; your installworld 239 will break because a symbol version-less libc will get installed 240 before the install tools. As a result, the old install tools, 241 which previously had symbol dependencies to FBSD_1.0, will fail 242 because the freshly installed libc will not have them. 243 244 The default threading library (providing "libpthread") has been 245 changed to libthr. If you wish to have libkse as your default, 246 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 247 24820070423: 249 The ABI breakage in sendmail(8)'s libmilter has been repaired 250 so it is no longer necessary to recompile mail filters (aka, 251 milters). If you recompiled mail filters after the 20070408 252 note, it is not necessary to recompile them again. 253 25420070417: 255 The new trunk(4) driver has been renamed to lagg(4) as it better 256 reflects its purpose. ifconfig will need to be recompiled. 257 25820070408: 259 sendmail(8) has been updated to version 8.14.1. Mail filters 260 (aka, milters) compiled against the libmilter included in the 261 base operating system should be recompiled. 262 26320070302: 264 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 265 In order to use them one must agree to the respective LICENSE in 266 share/doc/legal and define legal.intel_<name>.license_ack=1 via 267 loader.conf(5) or kenv(1). Make sure to deinstall the now 268 deprecated modules from the respective firmware ports. 269 27020070228: 271 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 272 were removed from FreeBSD's libc. These originally came from INRIA 273 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 274 deprecated in previous releases. 275 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 276 replace it as a more portable (and re-entrant) API. 277 27820070224: 279 To support interrupt filtering a modification to the newbus API 280 has occurred, ABI was broken and __FreeBSD_version was bumped 281 to 700031. Please make sure that your kernel and modules are in 282 sync. For more info: 283 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 284 28520070224: 286 The IPv6 multicast forwarding code may now be loaded into GENERIC 287 kernels by loading the ip_mroute.ko module. This is built into the 288 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 289 set; see src.conf(5) for more information. 290 29120070214: 292 The output of netstat -r has changed. Without -n, we now only 293 print a "network name" without the prefix length if the network 294 address and mask exactly match a Class A/B/C network, and an entry 295 exists in the nsswitch "networks" map. 296 With -n, we print the full unabbreviated CIDR network prefix in 297 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 298 This change is in preparation for changes such as equal-cost 299 multipath, and to more generally assist operational deployment 300 of FreeBSD as a modern IPv4 router. 301 30220070210: 303 PIM has been turned on by default in the IPv4 multicast 304 routing code. The kernel option 'PIM' has now been removed. 305 PIM is now built by default if option 'MROUTING' is specified. 306 It may now be loaded into GENERIC kernels by loading the 307 ip_mroute.ko module. 308 30920070207: 310 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 311 has been removed. Its functionality may be achieved by explicitly 312 configuring gif(4) interfaces and using the 'phyint' keyword in 313 mrouted.conf. 314 XORP does not support source-routed IPv4 multicast tunnels nor the 315 integrated IPIP tunneling, therefore it is not affected by this 316 change. The __FreeBSD_version macro has been bumped to 700030. 317 31820061221: 319 Support for PCI Message Signalled Interrupts has been 320 re-enabled in the bge driver, only for those chips which are 321 believed to support it properly. If there are any problems, 322 MSI can be disabled completely by setting the 323 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 324 in the loader. 325 32620061214: 327 Support for PCI Message Signalled Interrupts has been 328 disabled again in the bge driver. Many revisions of the 329 hardware fail to support it properly. Support can be 330 re-enabled by removing the #define of BGE_DISABLE_MSI in 331 "src/sys/dev/bge/if_bge.c". 332 33320061214: 334 Support for PCI Message Signalled Interrupts has been added 335 to the bge driver. If there are any problems, MSI can be 336 disabled completely by setting the 'hw.pci.enable_msi' and 337 'hw.pci.enable_msix' tunables to 0 in the loader. 338 33920061205: 340 The removal of several facets of the experimental Threading 341 system from the kernel means that the proc and thread structures 342 have changed quite a bit. I suggest all kernel modules that might 343 reference these structures be recompiled.. Especially the 344 linux module. 345 34620061126: 347 Sound infrastructure has been updated with various fixes and 348 improvements. Most of the changes are pretty much transparent, 349 with exceptions of followings: 350 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 351 moved to their own dev sysctl nodes, for example: 352 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 353 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 354 own chardev in the form of "dsp%d.<function>%d", where <function> 355 is p = playback, r = record and v = virtual, respectively. Users 356 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 357 This does not affect those who are using "/dev/dsp". 358 35920061122: 360 The following binaries have been disconnected from the build: 361 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 362 and mount_std. The functionality of these programs has been 363 moved into the mount program. For example, to mount a devfs 364 filesystem, instead of using mount_devfs, use: "mount -t devfs". 365 This does not affect entries in /etc/fstab, since entries in 366 /etc/fstab are always processed with "mount -t fstype". 367 36820061113: 369 Support for PCI Message Signalled Interrupts on i386 and amd64 370 has been added to the kernel and various drivers will soon be 371 updated to use MSI when it is available. If there are any problems, 372 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 373 and 'hw.pci.enable_msix' tunables to 0 in the loader. 374 37520061110: 376 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 377 The lockmgr object layout has been changed as a result of having 378 a lock_object embedded in it. As a consequence all file system 379 kernel modules must be re-compiled. The mutex profiling man page 380 has not yet been updated to reflect this change. 381 38220061026: 383 KSE in the kernel has now been made optional and turned on by 384 default. Use 'nooption KSE' in your kernel config to turn it 385 off. All kernel modules *must* be recompiled after this change. 386 There-after, modules from a KSE kernel should be compatible with 387 modules from a NOKSE kernel due to the temporary padding fields 388 added to 'struct proc'. 389 39020060929: 391 mrouted and its utilities have been removed from the base system. 392 39320060927: 394 Some ioctl(2) command codes have changed. Full backward ABI 395 compatibility is provided if the "options COMPAT_FREEBSD6" is 396 present in the kernel configuration file. Make sure to add 397 this option to your kernel config file, or recompile X.Org 398 and the rest of ports; otherwise they may refuse to work. 399 40020060924: 401 tcpslice has been removed from the base system. 402 40320060913: 404 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 405 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 406 systat needs to be rebuilt. 407 40820060903: 409 libpcap updated to v0.9.4 and tcpdump to v3.9.4 410 41120060816: 412 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 413 for IPFIREWALL_FORWARD is now as it was before when it was first 414 committed and for years after. The behaviour is now ON. 415 41620060725: 417 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 418 Now it can decrypt files created from different architectures. 419 Unfortunately, it is no longer able to decrypt a cipher text 420 generated with an older version on 64 bit architectures. 421 If you have such a file, you need old utility to decrypt it. 422 42320060709: 424 The interface version of the i4b kernel part has changed. So 425 after updating the kernel sources and compiling a new kernel, 426 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 427 be rebuilt, and vice versa. 428 42920060627: 430 The XBOX kernel now defaults to the nfe(4) driver instead of 431 the nve(4) driver. Please update your configuration 432 accordingly. 433 43420060514: 435 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 436 PCnet family of NICs has been removed. The new le(4) driver serves 437 as an equivalent but cross-platform replacement with the pcn(4) 438 driver still providing performance-optimized support for the subset 439 of AMD Am79C971 PCnet-FAST and greater chips as before. 440 44120060511: 442 The machdep.* sysctls and the adjkerntz utility have been 443 modified a bit. The new adjkerntz utility uses the new 444 sysctl names and sysctlbyname() calls, so it may be impossible 445 to run an old /sbin/adjkerntz utility in single-user mode 446 with a new kernel. Replace the `adjkerntz -i' step before 447 `make installworld' with: 448 449 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 450 451 and proceed as usual with the rest of the installworld-stage 452 steps. Otherwise, you risk installing binaries with their 453 timestamp set several hours in the future, especially if 454 you are running with local time set to GMT+X hours. 455 45620060412: 457 The ip6fw utility has been removed. The behavior provided by 458 ip6fw has been in ipfw2 for a good while and the rc.d scripts 459 have been updated to deal with it. There are some rules that 460 might not migrate cleanly. Use rc.firewall6 as a template to 461 rewrite rules. 462 46320060428: 464 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 465 attachments have been removed. Make sure to configure scc(4) 466 on sparc64. Note also that by default puc(4) will use uart(4) 467 and not sio(4) for serial ports because interrupt handling has 468 been optimized for multi-port serial cards and only uart(4) 469 implements the interface to support it. 470 47120060330: 472 The scc(4) driver replaces puc(4) for Serial Communications 473 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 474 Z8530. On sparc64, it is advised to add scc(4) to the kernel 475 configuration to make sure that the serial ports remain 476 functional. 477 47820060317: 479 Most world/kernel related NO_* build options changed names. 480 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 481 after FreeBSD ports) and should be set in /etc/src.conf 482 (the src.conf(5) manpage is provided). Full backwards 483 compatibility is maintained for the time being though it's 484 highly recommended to start moving old options out of the 485 system-wide /etc/make.conf file into the new /etc/src.conf 486 while also properly renaming them. More conversions will 487 likely follow. Posting to current@: 488 489 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 490 49120060305: 492 The NETSMBCRYPTO kernel option has been retired because its 493 functionality is always included in NETSMB and smbfs.ko now. 494 49520060303: 496 The TDFX_LINUX kernel option was retired and replaced by the 497 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 498 kernel module. Loading it alone should suffice to get 3dfx support 499 for Linux apps because it will pull in 3dfx.ko and linux.ko through 500 its dependencies. 501 50220060204: 503 The 'audit' group was added to support the new auditing functionality 504 in the base system. Be sure to follow the directions for updating, 505 including the requirement to run mergemaster -p. 506 50720060201: 508 The kernel ABI to file system modules was changed on i386. 509 Please make sure that your kernel and modules are in sync. 510 51120060118: 512 This actually occured some time ago, but installing the kernel 513 now also installs a bunch of symbol files for the kernel modules. 514 This increases the size of /boot/kernel to about 67Mbytes. You 515 will need twice this if you will eventually back this up to kernel.old 516 on your next install. 517 If you have a shortage of room in your root partition, you should add 518 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 519 to your /etc/make.conf. 520 52120060113: 522 libc's malloc implementation has been replaced. This change has the 523 potential to uncover application bugs that previously went unnoticed. 524 See the malloc(3) manual page for more details. 525 52620060112: 527 The generic netgraph(4) cookie has been changed. If you upgrade 528 kernel passing this point, you also need to upgrade userland 529 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 530 53120060106: 532 si(4)'s device files now contain the unit number. 533 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 534 53520060106: 536 The kernel ABI was mostly destroyed due to a change in the size 537 of struct lock_object which is nested in other structures such 538 as mutexes which are nested in all sorts of other structures. 539 Make sure your kernel and modules are in sync. 540 54120051231: 542 The page coloring algorithm in the VM subsystem was converted 543 from tuning with kernel options to autotuning. Please remove 544 any PQ_* option except PQ_NOOPT from your kernel config. 545 54620051211: 547 The net80211-related tools in the tools/tools/ath directory 548 have been moved to tools/tools/net80211 and renamed with a 549 "wlan" prefix. Scripts that use them should be adjusted 550 accordingly. 551 55220051202: 553 Scripts in the local_startup directories (as defined in 554 /etc/defaults/rc.conf) that have the new rc.d semantics will 555 now be run as part of the base system rcorder. If there are 556 errors or problems with one of these local scripts, it could 557 cause boot problems. If you encounter such problems, boot in 558 single user mode, remove that script from the */rc.d directory. 559 Please report the problem to the port's maintainer, and the 560 freebsd-ports@freebsd.org mailing list. 561 56220051129: 563 The nodev mount option was deprecated in RELENG_6 (where it 564 was a no-op), and is now unsupported. If you have nodev or dev listed 565 in /etc/fstab, remove it, otherwise it will result in a mount error. 566 56720051129: 568 ABI between ipfw(4) and ipfw(8) has been changed. You need 569 to rebuild ipfw(8) when rebuilding kernel. 570 57120051108: 572 rp(4)'s device files now contain the unit number. 573 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 574 57520051029: 576 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 577 Its /etc/rc.conf.d configuration file has been `ppp' from 578 the beginning, and hence there is no need to touch it. 579 58020051014: 581 Now most modules get their build-time options from the kernel 582 configuration file. A few modules still have fixed options 583 due to their non-conformant implementation, but they will be 584 corrected eventually. You may need to review the options of 585 the modules in use, explicitly specify the non-default options 586 in the kernel configuration file, and rebuild the kernel and 587 modules afterwards. 588 58920051001: 590 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 591 to turn polling(4) on your interfaces. 592 59320050927: 594 The old bridge(4) implementation was retired. The new 595 if_bridge(4) serves as a full functional replacement. 596 59720050722: 598 The ai_addrlen of a struct addrinfo was changed to a socklen_t 599 to conform to POSIX-2001. This change broke an ABI 600 compatibility on 64 bit architecture. You have to recompile 601 userland programs that use getaddrinfo(3) on 64 bit 602 architecture. 603 60420050711: 605 RELENG_6 branched here. 606 60720050629: 608 The pccard_ifconfig rc.conf variable has been removed and a new 609 variable, ifconfig_DEFAULT has been introduced. Unlike 610 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 611 do not have ifconfig_ifn entries rather than just those in 612 removable_interfaces. 613 61420050616: 615 Some previous versions of PAM have permitted the use of 616 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 617 to third party PAM modules in /usr/local/lib. A change has been 618 made to require the use of absolute paths in order to avoid 619 ambiguity and dependence on library path configuration, which may 620 affect existing configurations. 621 62220050610: 623 Major changes to network interface API. All drivers must be 624 recompiled. Drivers not in the base system will need to be 625 updated to the new APIs. 626 62720050609: 628 Changes were made to kinfo_proc in sys/user.h. Please recompile 629 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 630 will not behave correctly. 631 632 The API and ABI for hwpmc(4) have changed with the addition 633 of sampling support. Please recompile lib/libpmc(3) and 634 usr.sbin/{pmcstat,pmccontrol}. 635 63620050606: 637 The OpenBSD dhclient was imported in place of the ISC dhclient 638 and the network interface configuration scripts were updated 639 accordingly. If you use DHCP to configure your interfaces, you 640 must now run devd. Also, DNS updating was lost so you will need 641 to find a workaround if you use this feature. 642 643 The '_dhcp' user was added to support the OpenBSD dhclient. Be 644 sure to run mergemaster -p (like you are supposed to do every time 645 anyway). 646 64720050605: 648 if_bridge was added to the tree. This has changed struct ifnet. 649 Please recompile userland and all network related modules. 650 65120050603: 652 The n_net of a struct netent was changed to an uint32_t, and 653 1st argument of getnetbyaddr() was changed to an uint32_t, to 654 conform to POSIX-2001. These changes broke an ABI 655 compatibility on 64 bit architecture. With these changes, 656 shlib major of libpcap was bumped. You have to recompile 657 userland programs that use getnetbyaddr(3), getnetbyname(3), 658 getnetent(3) and/or libpcap on 64 bit architecture. 659 66020050528: 661 Kernel parsing of extra options on '#!' first lines of shell 662 scripts has changed. Lines with multiple options likely will 663 fail after this date. For full details, please see 664 http://people.freebsd.org/~gad/Updating-20050528.txt 665 66620050503: 667 The packet filter (pf) code has been updated to OpenBSD 3.7 668 Please note the changed anchor syntax and the fact that 669 authpf(8) now needs a mounted fdescfs(5) to function. 670 67120050415: 672 The NO_MIXED_MODE kernel option has been removed from the i386 673 amd64 platforms as its use has been superceded by the new local 674 APIC timer code. Any kernel config files containing this option 675 should be updated. 676 67720050227: 678 The on-disk format of LC_CTYPE files was changed to be machine 679 independent. Please make sure NOT to use NO_CLEAN buildworld 680 when crossing this point. Crossing this point also requires 681 recompile or reinstall of all locale depended packages. 682 68320050225: 684 The ifi_epoch member of struct if_data has been changed to 685 contain the uptime at which the interface was created or the 686 statistics zeroed rather then the wall clock time because 687 wallclock time may go backwards. This should have no impact 688 unless an snmp implementation is using this value (I know of 689 none at this point.) 690 69120050224: 692 The acpi_perf and acpi_throttle drivers are now part of the 693 acpi(4) main module. They are no longer built separately. 694 69520050223: 696 The layout of struct image_params has changed. You have to 697 recompile all compatibility modules (linux, svr4, etc) for use 698 with the new kernel. 699 70020050223: 701 The p4tcc driver has been merged into cpufreq(4). This makes 702 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 703 compile in "device cpufreq" to restore this functionality. 704 70520050220: 706 The responsibility of recomputing the file system summary of 707 a SoftUpdates-enabled dirty volume has been transferred to the 708 background fsck. A rebuild of fsck(8) utility is recommended 709 if you have updated the kernel. 710 711 To get the old behavior (recompute file system summary at mount 712 time), you can set vfs.ffs.compute_summary_at_mount=1 before 713 mounting the new volume. 714 71520050206: 716 The cpufreq import is complete. As part of this, the sysctls for 717 acpi(4) throttling have been removed. The power_profile script 718 has been updated, so you can use performance/economy_cpu_freq in 719 rc.conf(5) to set AC on/offline cpu frequencies. 720 72120050206: 722 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 723 requires recompiling libnetgraph and userland netgraph utilities. 724 72520050114: 726 Support for abbreviated forms of a number of ipfw options is 727 now deprecated. Warnings are printed to stderr indicating the 728 correct full form when a match occurs. Some abbreviations may 729 be supported at a later date based on user feedback. To be 730 considered for support, abbreviations must be in use prior to 731 this commit and unlikely to be confused with current key words. 732 73320041221: 734 By a popular demand, a lot of NOFOO options were renamed 735 to NO_FOO (see bsd.compat.mk for a full list). The old 736 spellings are still supported, but will cause annoying 737 warnings on stderr. Make sure you upgrade properly (see 738 the COMMON ITEMS: section later in this file). 739 74020041219: 741 Auto-loading of ancillary wlan modules such as wlan_wep has 742 been temporarily disabled; you need to statically configure 743 the modules you need into your kernel or explicitly load them 744 prior to use. Specifically, if you intend to use WEP encryption 745 with an 802.11 device load/configure wlan_wep; if you want to 746 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 747 and wlan_xauth as required. 748 74920041213: 750 The behaviour of ppp(8) has changed slightly. If lqr is enabled 751 (``enable lqr''), older versions would revert to LCP ECHO mode on 752 negotiation failure. Now, ``enable echo'' is required for this 753 behaviour. The ppp version number has been bumped to 3.4.2 to 754 reflect the change. 755 75620041201: 757 The wlan support has been updated to split the crypto support 758 into separate modules. For static WEP you must configure the 759 wlan_wep module in your system or build and install the module 760 in place where it can be loaded (the kernel will auto-load 761 the module when a wep key is configured). 762 76320041201: 764 The ath driver has been updated to split the tx rate control 765 algorithm into a separate module. You need to include either 766 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 767 76820041116: 769 Support for systems with an 80386 CPU has been removed. Please 770 use FreeBSD 5.x or earlier on systems with an 80386. 771 77220041110: 773 We have had a hack which would mount the root filesystem 774 R/W if the device were named 'md*'. As part of the vnode 775 work I'm doing I have had to remove this hack. People 776 building systems which use preloaded MD root filesystems 777 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 778 their /etc/rc scripts. 779 78020041104: 781 FreeBSD 5.3 shipped here. 782 78320041102: 784 The size of struct tcpcb has changed again due to the removal 785 of RFC1644 T/TCP. You have to recompile userland programs that 786 read kmem for tcp sockets directly (netstat, sockstat, etc.) 787 78820041022: 789 The size of struct tcpcb has changed. You have to recompile 790 userland programs that read kmem for tcp sockets directly 791 (netstat, sockstat, etc.) 792 79320041016: 794 RELENG_5 branched here. For older entries, please see updating 795 in the RELENG_5 branch. 796 797COMMON ITEMS: 798 799 General Notes 800 ------------- 801 Avoid using make -j when upgrading. From time to time in the 802 past there have been problems using -j with buildworld and/or 803 installworld. This is especially true when upgrading between 804 "distant" versions (eg one that cross a major release boundary 805 or several minor releases, or when several months have passed 806 on the -current branch). 807 808 Sometimes, obscure build problems are the result of environment 809 poisoning. This can happen because the make utility reads its 810 environment when searching for values for global variables. 811 To run your build attempts in an "environmental clean room", 812 prefix all make commands with 'env -i '. See the env(1) manual 813 page for more details. 814 815 When upgrading from one major version to another it is generally 816 best to upgrade to the latest code in the currently installed branch 817 first, then do an upgrade to the new branch. This is the best-tested 818 upgrade path, and has the highest probability of being successful. 819 Please try this approach before reporting problems with a major 820 version upgrade. 821 822 To build a kernel 823 ----------------- 824 If you are updating from a prior version of FreeBSD (even one just 825 a few days old), you should follow this procedure. It is the most 826 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 827 828 make kernel-toolchain 829 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 830 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 831 832 To test a kernel once 833 --------------------- 834 If you just want to boot a kernel once (because you are not sure 835 if it works, or if you want to boot a known bad kernel to provide 836 debugging information) run 837 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 838 nextboot -k testkernel 839 840 To just build a kernel when you know that it won't mess you up 841 -------------------------------------------------------------- 842 This assumes you are already running a 5.X system. Replace 843 ${arch} with the architecture of your machine (e.g. "i386", 844 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 845 846 cd src/sys/${arch}/conf 847 config KERNEL_NAME_HERE 848 cd ../compile/KERNEL_NAME_HERE 849 make depend 850 make 851 make install 852 853 If this fails, go to the "To build a kernel" section. 854 855 To rebuild everything and install it on the current system. 856 ----------------------------------------------------------- 857 # Note: sometimes if you are running current you gotta do more than 858 # is listed here if you are upgrading from a really old current. 859 860 <make sure you have good level 0 dumps> 861 make buildworld 862 make kernel KERNCONF=YOUR_KERNEL_HERE 863 [1] 864 <reboot in single user> [3] 865 mergemaster -p [5] 866 make installworld 867 make delete-old 868 mergemaster [4] 869 <reboot> 870 871 872 To cross-install current onto a separate partition 873 -------------------------------------------------- 874 # In this approach we use a separate partition to hold 875 # current's root, 'usr', and 'var' directories. A partition 876 # holding "/", "/usr" and "/var" should be about 2GB in 877 # size. 878 879 <make sure you have good level 0 dumps> 880 <boot into -stable> 881 make buildworld 882 make buildkernel KERNCONF=YOUR_KERNEL_HERE 883 <maybe newfs current's root partition> 884 <mount current's root partition on directory ${CURRENT_ROOT}> 885 make installworld DESTDIR=${CURRENT_ROOT} 886 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 887 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 888 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 889 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 890 <reboot into current> 891 <do a "native" rebuild/install as described in the previous section> 892 <maybe install compatibility libraries from src/lib/compat> 893 <reboot> 894 895 896 To upgrade in-place from 5.x-stable to current 897 ---------------------------------------------- 898 <make sure you have good level 0 dumps> 899 make buildworld [9] 900 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 901 [1] 902 <reboot in single user> [3] 903 mergemaster -p [5] 904 make installworld 905 make delete-old 906 mergemaster -i [4] 907 <reboot> 908 909 Make sure that you've read the UPDATING file to understand the 910 tweaks to various things you need. At this point in the life 911 cycle of current, things change often and you are on your own 912 to cope. The defaults can also change, so please read ALL of 913 the UPDATING entries. 914 915 Also, if you are tracking -current, you must be subscribed to 916 freebsd-current@freebsd.org. Make sure that before you update 917 your sources that you have read and understood all the recent 918 messages there. If in doubt, please track -stable which has 919 much fewer pitfalls. 920 921 [1] If you have third party modules, such as vmware, you 922 should disable them at this point so they don't crash your 923 system on reboot. 924 925 [3] From the bootblocks, boot -s, and then do 926 fsck -p 927 mount -u / 928 mount -a 929 cd src 930 adjkerntz -i # if CMOS is wall time 931 Also, when doing a major release upgrade, it is required that 932 you boot into single user mode to do the installworld. 933 934 [4] Note: This step is non-optional. Failure to do this step 935 can result in a significant reduction in the functionality of the 936 system. Attempting to do it by hand is not recommended and those 937 that pursue this avenue should read this file carefully, as well 938 as the archives of freebsd-current and freebsd-hackers mailing lists 939 for potential gotchas. 940 941 [5] Usually this step is a noop. However, from time to time 942 you may need to do this if you get unknown user in the following 943 step. It never hurts to do it all the time. You may need to 944 install a new mergemaster (cd src/usr.sbin/mergemaster && make 945 install) after the buildworld before this step if you last updated 946 from current before 20020224 or from -stable before 20020408. 947 948 [8] In order to have a kernel that can run the 4.x binaries 949 needed to do an installworld, you must include the COMPAT_FREEBSD4 950 option in your kernel. Failure to do so may leave you with a system 951 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 952 is required to run the 5.x binaries on more recent kernels. 953 954 Make sure that you merge any new devices from GENERIC since the 955 last time you updated your kernel config file. 956 957 [9] When checking out sources, you must include the -P flag to have 958 cvs prune empty directories. 959 960 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 961 "?=" instead of the "=" assignment operator, so that buildworld can 962 override the CPUTYPE if it needs to. 963 964 MAKEOBJDIRPREFIX must be defined in an environment variable, and 965 not on the command line, or in /etc/make.conf. buildworld will 966 warn if it is improperly defined. 967FORMAT: 968 969This file contains a list, in reverse chronological order, of major 970breakages in tracking -current. Not all things will be listed here, 971and it only starts on October 16, 2004. Updating files can found in 972previous releases if your system is older than this. 973 974Copyright information: 975 976Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 977 978Redistribution, publication, translation and use, with or without 979modification, in full or in part, in any form or format of this 980document are permitted without further permission from the author. 981 982THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 983IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 984WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 985DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 986INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 987(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 988SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 989HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 990STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 991IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 992POSSIBILITY OF SUCH DAMAGE. 993 994If you find this document useful, and you want to, you may buy the 995author a beer. 996 997Contact Warner Losh if you have any questions about your use of 998this document. 999 1000$FreeBSD: head/UPDATING 176717 2008-03-01 22:54:42Z marcel $ 1001